view src/s/netbsd.h @ 5253:b6a398dbb403

Fewer algorithmic complexity surprises, nicer errors, mapcarX(), maplist() src/ChangeLog addition: 2010-09-01 Aidan Kehoe <kehoea@parhasard.net> * fns.c (list_merge, list_array_merge_into_list) (list_array_merge_into_array): Avoid algorithmic complexity surprises when checking for circularity in these functions. (Freduce): Fix some formatting, in passing. (mapcarX): Drop the SOME_OR_EVERY argument to this function; instead, take CALLER, a symbol reflecting the Lisp-visible function that called mapcarX(). Use CALLER with mapping_interaction_error() when sequences are modified illegally. Don't cons with #'some, #'every, not even a little. (Fmapconcat, FmapcarX, Fmapvector, Fmapcan, Fmapc, Fmap) (Fmap_into, Fsome, Fevery): Call mapcarX() with its new arguments. (Fmapcan): Don't unnecessarily complicate the nconc call. (maplist): Take CALLER, a symbol reflecting the Lisp-visible function that called maplist(), rather than having separate arguments to indicate mapl vs. mapcon. Avoid algorithmic complexity surprises when checking for circularity. In #'mapcon, check a given stretch of result for well-formedness once, which was not previously the case, despite what the comments said. (Fmaplist, Fmapl, Fmapcon): Call maplist() with its new arguments.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 01 Sep 2010 12:51:32 +0100
parents 14227e8a3f1f
children 2a8a04f73c15 861f2601a38b
line wrap: on
line source

/* Synched up with: FSF 19.31. */

/* s/ file for netbsd system.  */

/* Get most of the stuff from bsd4.3 */
#include "bsd4-3.h"

#undef BSD

#ifndef NOT_C_CODE
#include <sys/param.h>
#include <sys/exec.h>
#endif /* C_CODE */

/* For mem-limits.h.  */
#define BSD4_2

#undef KERNEL_FILE
#undef LDAV_SYMBOL

#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)

#define A_TEXT_OFFSET(x) (sizeof (struct exec))
#define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr))

#define LIBS_DEBUG
/* -lutil is not needed for NetBSD >0.9.  */
/* #define LIBS_SYSTEM -lutil */
/* XEmacs change */
#define LIBS_TERMCAP "-ltermcap"

#define NEED_ERRNO

#if 0 /* mrb */
#ifndef NO_SHARED_LIBS
/* These definitions should work for either dynamic or static linking,
   whichever is the default for `cc -nostdlib'.  */
/* but they probably don't, and life's too short - jrg@doc.ic.ac.uk
   ask for no shared libs if you have 0.9 */
/* mrb -- ORDINARY_LINK works just fine... */
#define LD_SWITCH_SYSTEM "-e start"
#define START_FILES "pre-crt0.o /usr/lib/crt0.o"
#define RUN_TIME_REMAP
#else
#define START_FILES "crt0.o"

#endif /* not NO_SHARED_LIBS */
#endif /* 0 - mrb */

#define HAVE_TEXT_START		/* No need to define `start_of_text'.  */
#define ORDINARY_LINK

/* As of this writing (Netbsd 1.5 was just released), Netbsd is
   converting from a.out to elf - x86 and Sparc are using ELF.
   But we're clever and let the compiler tell us which one to use.  */
#ifdef __ELF__
#define UNEXEC "unexelf.o"
#else
#define UNEXEC "unexfreebsd.o"  /* ironic, considering history of unexfreebsd */
#endif

#if 0
/* Try to make this work for both 0.9 and >0.9.  */
#define N_PAGSIZ(x) __LDPGSZ
#define N_BSSADDR(x) (N_ALIGN(x, N_DATADDR(x)+x.a_data))
/* #define N_TRELOFF(x) N_RELOFF(x) */
/* the 1.0 way.. */
#endif /* 0 */

#define N_RELOFF(x) N_TRELOFF(x)

#define NO_MATHERR

#define AMPERSAND_FULL_NAME