On OS X, add -Wl,-pagezero_size,04000000 to DLD_LDFLAGS, not LDFLAGS,
so that it is passed only when building the `scheme' and `bchscheme'
binaries, not when compiling all object files.
Specialize mmap_heap_malloc on OS X to pass MAP_FIXED always.
This conditional is ugly; perhaps it ought to be refactored. However,
after the change to the configuration script to add the linker option
reserving low address space, this is necessary for anything to work at
all on OS X for the moment.
Hack STRINGIFY to support lap comments, in case the user set
COMPILER:GENERATE-LAP-FILES? and COMPILER:INTERSPERSE-RTL-IN-LAP?, so
that it puts comments in the C output instead of signalling an obscure
error, even though the resulting *.lap files are not very useful.
Fix bug in the open-coder for HEAP-AVAILABLE? with type checking
turned on. It was passing the FINISH continuation on to
OPEN-CODE:WITH-CHECKS, but that would call FINISH with an RTL
expression, whereas the callers of the open-coder want an RTL
predicate CFG. Now, like other predicate open-coders,
HEAP-AVAILABLE?'s wraps the expression in a true test.
Pass `-MG' to `gcc' in the generated `makegen-cc' script. The meaning
of `-MM' was changed in recent versions of GCC so that it does not
mask errors about absent system headers, but with `-MG' it uses the
old semantics.
In wrong-number-of-arguments errors where the minimum number of
arguments is equal to the maximum number of arguments, write that
number, not the confusing arity object, in the condition report.
In DEFINE-STANDARD-KEYWORD, pass a list of fragments to
DEFINE-KEYPARSER-PATTERN as one argument, not the fragments as
separate arguments. This is supposed to be a `pattern' structure,
although it might be better to have an abstract MAKE-PATTERN
constructor or something instead of exposing the representation of
patterns as lists.
In PROMPT-FOR-EXPRESSION, don't pass the default expression through
WRITE-TO-STRING before handing it to PROMPT-FOR-STRING, because
PROMPT-FOR-STRING already does that.
Chris Hanson [Sat, 13 Jan 2007 07:12:29 +0000 (07:12 +0000)]
Berkeley DB uses versioned symbols in older versions, so AC_CHECK_LIB
can't be used; instead use AC_LINK_IFELSE. Also, comment out C99
fixed-width integer type tests which are (a) not used, and (b) only in
the latest version of autoconf.
Use FILE-REGULAR?, not FILE-EXISTS?, to test for the existence of files
to load, to avoid accidentally trying to load directories that happen
to have the same name sans type as files we're interested in.
Chris Hanson [Wed, 10 Jan 2007 08:00:38 +0000 (08:00 +0000)]
Restructure handling of optional libraries; new code is simpler and
hopefully more effective. In particular, problems identified by Aaron
Hsu should now be addressed. Additionally, many changes were made to
conform to the autoconf shell programming guidelines.
A user-visible change is that --with-FOO may now specify a path, so
that --with-FOO=BAR adds "-IBAR/include" to CFLAGS and "-LBAR/lib" to
LDFLAGS.
Chris Hanson [Tue, 9 Jan 2007 06:17:04 +0000 (06:17 +0000)]
Fix echoing of input when standard input is redirected to a file.
Eliminate separate implementation of DISCARD-CHAR; the top-level
procedures are now aliases for READ-CHAR.
Chris Hanson [Mon, 8 Jan 2007 14:45:17 +0000 (14:45 +0000)]
Conditionally include C-back-end rules in Makefile, since it seems
these are stimulating the bug in make. Undo previous change since it
did not fix the problem.
Fix bug in paredit forward character deletion at the beginning of the
buffer: formerly it would cause a hardware trap, because it would ask
for the non-existent character before the point, without checking
whether there is in fact a valid character position in the buffer
there.
Twiddle default heap size for shell scripts that invoke Scheme with the
compiler loaded, so that they fit in the absurdly small limits on OS
X/Intel. 3000 seems to be the largest number of blocks we can rely on.
Chris Hanson [Wed, 20 Dec 2006 07:22:23 +0000 (07:22 +0000)]
Defer call to OS/SENDMAIL-PROGRAM until mail is to be sent. Otherwise
it is run when Edwin is built, and will probably be incorrect for the
target system.
Arthur Gleckler [Mon, 11 Dec 2006 07:37:46 +0000 (07:37 +0000)]
Reverted change 1.30-1.31, which was supposed to require that output
ports passed to `port-position' and `set-port-positon!' also be input
ports. This restriction was unnecessary and the change had a bug
anyway.
Apply some improvements on Aaron Hawley's long-overdue patch to the
Info mode. TAB now cycles through references (menu items and cross
references); M-TAB cycles backward; RET by default runs
`info-current-menu-item', without having to customize the
`info-selection-key' variable; and all of the relevant regular
expressions now are defined at the top level, not hard-coded as
literals in the procedures that refer to them, and use the REXP
abstraction for clarity, since I couldn't follow the baroque string
notation without painstakingly rewriting it character by character.
Chris Hanson [Thu, 9 Nov 2006 20:07:42 +0000 (20:07 +0000)]
Change bnodes so they don't carry their names around. Instead,
generate the names on demand from their hash numbers, which guarantees
uniqueness without a lot of digits. As a corollary this obviates the
bnode "handle" mechanism, so that's removed.