mit-scheme.git
11 years agoUse a compile-test, not a run-test, for __ELF__.
Taylor R Campbell [Sun, 6 Oct 2013 18:14:53 +0000 (18:14 +0000)]
Use a compile-test, not a run-test, for __ELF__.

11 years agoUse CAREFUL-OBJECT-DATUM in i386 MULTIPLY-OBJECT-BY-2.
Taylor R Campbell [Sun, 6 Oct 2013 18:14:28 +0000 (18:14 +0000)]
Use CAREFUL-OBJECT-DATUM in i386 MULTIPLY-OBJECT-BY-2.

11 years agoMerge branch 'make-cross-tools'
Taylor R Campbell [Sun, 6 Oct 2013 18:11:00 +0000 (18:11 +0000)]
Merge branch 'make-cross-tools'

11 years agoMake the `save' makefile targets fail noisily.
Taylor R Campbell [Sun, 6 Oct 2013 18:10:33 +0000 (18:10 +0000)]
Make the `save' makefile targets fail noisily.

11 years agoFix missing close paren in Makefile.in.
Taylor R Campbell [Sun, 6 Oct 2013 16:17:19 +0000 (16:17 +0000)]
Fix missing close paren in Makefile.in.

11 years agoCall it the toolchain, not the bootstrap toolchain.
Taylor R Campbell [Sun, 6 Oct 2013 16:07:06 +0000 (16:07 +0000)]
Call it the toolchain, not the bootstrap toolchain.

Rename Makefile.boot -> Makefile.tools, boot/ -> tools/.

`Bootstrap toolchain' sounds like something that is useful only to
bootstrap MIT Scheme, when in fact the object of the exercise is to
make it a general-purpose cross-compilation toolchain application
that you can use to cross-compile anything.

11 years agoTweak native rules so they work for svm too.
Taylor R Campbell [Sat, 5 Oct 2013 21:55:06 +0000 (21:55 +0000)]
Tweak native rules so they work for svm too.

11 years agoRename @CROSS@ to @IF_CROSS@.
Taylor R Campbell [Sat, 5 Oct 2013 21:54:52 +0000 (21:54 +0000)]
Rename @CROSS@ to @IF_CROSS@.

11 years agoLoad crsend.scm into the right environment.
Taylor R Campbell [Sat, 5 Oct 2013 21:42:03 +0000 (21:42 +0000)]
Load crsend.scm into the right environment.

11 years agoRemove Makefile.boot on distclean too.
Taylor R Campbell [Sat, 5 Oct 2013 20:53:11 +0000 (20:53 +0000)]
Remove Makefile.boot on distclean too.

11 years agoAvoid CBF in win32.sf.
Taylor R Campbell [Sat, 5 Oct 2013 20:33:00 +0000 (20:33 +0000)]
Avoid CBF in win32.sf.

11 years agoUse CREF/GENERATE-TRIVIAL-CONSTRUCTOR for makefile cref-* rules.
Taylor R Campbell [Sat, 5 Oct 2013 20:28:33 +0000 (20:28 +0000)]
Use CREF/GENERATE-TRIVIAL-CONSTRUCTOR for makefile cref-* rules.

That way cref-foo need not wait for syntax-foo to complete, which
substantially increases parallelism of the build.

11 years agoMake cross-compilation a configure-time option.
Taylor R Campbell [Sat, 5 Oct 2013 19:59:04 +0000 (19:59 +0000)]
Make cross-compilation a configure-time option.

Eventually I would like to get rid of non-cross-compilation, but it's
probably a good idea to keep it for now.

11 years agoMake every build a cross-build.
Taylor R Campbell [Sat, 5 Oct 2013 19:03:49 +0000 (19:03 +0000)]
Make every build a cross-build.

11 years agoParallelize compiling compiler subdirectories.
Taylor R Campbell [Sat, 5 Oct 2013 19:02:13 +0000 (19:02 +0000)]
Parallelize compiling compiler subdirectories.

All the compiler.cbfs are the same except for the machine directory,
which is available as a symlink.

11 years agoSeparate tools from target in the build.
Taylor R Campbell [Sat, 5 Oct 2013 18:06:59 +0000 (18:06 +0000)]
Separate tools from target in the build.

To build a native Scheme, instead of just running `make', you must
first run

make -f Makefile.boot

to get a bootstrap toolchain in boot/, every time you want to use a
new compiler or cref or sf or star-parser to compile Scheme.

11 years agoWrite files atomically in the microcode makefile.
Taylor R Campbell [Mon, 30 Sep 2013 22:56:19 +0000 (22:56 +0000)]
Write files atomically in the microcode makefile.

Use a temporary file and rename it over the permanent one only if the
command succeeded.  That way, we don't leave truncated files around
on failure.

11 years agoUse <ucontext.h>, not <sys/ucontext.h>, on Linux.
Taylor R Campbell [Mon, 30 Sep 2013 20:07:42 +0000 (20:07 +0000)]
Use <ucontext.h>, not <sys/ucontext.h>, on Linux.

11 years agoLinux defines NGREG in <sys/ucontext.h>, which <signal.h> may not get.
Taylor R Campbell [Mon, 30 Sep 2013 18:43:29 +0000 (18:43 +0000)]
Linux defines NGREG in <sys/ucontext.h>, which <signal.h> may not get.

11 years agoUse <poll.h>, not <sys/poll.h>, per POSIX.
Taylor R Campbell [Mon, 30 Sep 2013 17:48:29 +0000 (17:48 +0000)]
Use <poll.h>, not <sys/poll.h>, per POSIX.

11 years agosynchronous-process-wait: (copy-output) can be #f
Matt Birkholz [Tue, 17 Sep 2013 17:15:23 +0000 (10:15 -0700)]
synchronous-process-wait: (copy-output) can be #f

Fix intermittent error: wrong-type-argument #f to integer-zero?.

11 years agoffi/build.scm.in: Simplify commandline echoing.
Matt Birkholz [Tue, 17 Sep 2013 17:14:32 +0000 (10:14 -0700)]
ffi/build.scm.in: Simplify commandline echoing.

11 years agomd5/Makefile.in, mhash/Makefile.in: missing line continuation chars
Matt Birkholz [Tue, 17 Sep 2013 04:27:23 +0000 (21:27 -0700)]
md5/Makefile.in, mhash/Makefile.in: missing line continuation chars

11 years agoffi: Fix install-shim's installation directory.
Matt Birkholz [Tue, 17 Sep 2013 03:56:47 +0000 (20:56 -0700)]
ffi: Fix install-shim's installation directory.

Write to the first directory on the library-directory-path.

11 years agogdbm/Makefile: missing close paren.
Matt Birkholz [Tue, 17 Sep 2013 01:00:41 +0000 (18:00 -0700)]
gdbm/Makefile: missing close paren.

11 years agoffi: install-load-option needs file list, not install-shim.
Matt Birkholz [Mon, 16 Sep 2013 23:55:05 +0000 (16:55 -0700)]
ffi: install-load-option needs file list, not install-shim.

11 years agostandard-system-loader: typo
Matt Birkholz [Mon, 16 Sep 2013 19:16:32 +0000 (12:16 -0700)]
standard-system-loader: typo

11 years agoffi: Remove old generate-shim export.
Matt Birkholz [Sun, 15 Sep 2013 06:49:04 +0000 (23:49 -0700)]
ffi: Remove old generate-shim export.

11 years agoAdd install-load-option.
Matt Birkholz [Sun, 15 Sep 2013 03:48:26 +0000 (20:48 -0700)]
Add install-load-option.

Use install-load-option in the four FFI wrappers' Makefiles (and the
GNU convention of lowercasing internal makefile variables).  Delete
corresponding instruction from their READMEs.  Presume there is an
optiondb.scm in the system library path and that its directory is
writable by the installer.

11 years agoAdd xstring-byte-ref and xstring-byte-set!.
Matt Birkholz [Thu, 12 Sep 2013 19:07:57 +0000 (12:07 -0700)]
Add xstring-byte-ref and xstring-byte-set!.

Made external-string-ref and external-string-set! integrable.

11 years agotests/ffi/: Symlinks in src/lib/ are no longer necessary.
Matt Birkholz [Thu, 12 Sep 2013 17:05:25 +0000 (10:05 -0700)]
tests/ffi/: Symlinks in src/lib/ are no longer necessary.

11 years agochannel-read/write: apply channel-blocking? to a closed channel NOT.
Matt Birkholz [Thu, 12 Sep 2013 16:45:50 +0000 (09:45 -0700)]
channel-read/write: apply channel-blocking? to a closed channel NOT.

11 years agoffi-test: Catch up with the new (old) generate-shim behavior.
Matt Birkholz [Tue, 10 Sep 2013 00:11:50 +0000 (17:11 -0700)]
ffi-test: Catch up with the new (old) generate-shim behavior.

Add 4 tedious little rules to the Makefile and copyright notices.
Make the test definition conditional on the wrapper build.

11 years agoffi: generate-shim no longer produces -const.bin.
Matt Birkholz [Mon, 9 Sep 2013 19:57:16 +0000 (12:57 -0700)]
ffi: generate-shim no longer produces -const.bin.

Some -const.c files require library-specific cc and ld flags, so
generate-shim cannot work the whole process.  Re-introduced the "4
tedious little rules" that compile, link and execute the -const
program, and fasdump the resulting -const.scm.

11 years agomhash: A separately buildable FFI wrapper.
Matt Birkholz [Sun, 8 Sep 2013 19:34:54 +0000 (12:34 -0700)]
mhash: A separately buildable FFI wrapper.

11 years agogdbm: Add event:after-restart receiver reset-open-gdbfs.
Matt Birkholz [Sun, 8 Sep 2013 19:32:30 +0000 (12:32 -0700)]
gdbm: Add event:after-restart receiver reset-open-gdbfs.

11 years agoblowfish,gdbm,md5: Expand on note about importing bindings.
Matt Birkholz [Sun, 8 Sep 2013 19:30:32 +0000 (12:30 -0700)]
blowfish,gdbm,md5: Expand on note about importing bindings.

11 years agomd5: A separately buildable FFI wrapper.
Matt Birkholz [Sun, 8 Sep 2013 01:46:56 +0000 (18:46 -0700)]
md5: A separately buildable FFI wrapper.

11 years agoblowfish: Random cleanup. Use guarantee-substring.
Matt Birkholz [Sat, 7 Sep 2013 23:56:48 +0000 (16:56 -0700)]
blowfish: Random cleanup.  Use guarantee-substring.

11 years agosrc/etc/std-makefile-prefix: Punt SHIM variables.
Matt Birkholz [Sat, 7 Sep 2013 23:50:44 +0000 (16:50 -0700)]
src/etc/std-makefile-prefix: Punt SHIM variables.

FFIs are no longer built inside the core build tree.

11 years agoinstall-shim: Create directory in first directory of library path.
Matt Birkholz [Sat, 7 Sep 2013 23:30:18 +0000 (16:30 -0700)]
install-shim: Create directory in first directory of library path.

Also, locate the directory for the -I CFLAG by searching the library
path for mit-scheme.h.

11 years agowith-system-library-directories: prepend to library directory path.
Matt Birkholz [Sat, 7 Sep 2013 22:59:44 +0000 (15:59 -0700)]
with-system-library-directories: prepend to library directory path.

This is for test scripts that want a new FFI shim to shadow an
installed shim, and requires canonicalize-debug-info-pathname to be
fixed to deal -- to SEARCH the library-directory-path.  At least, for
relative pathnames with at least one directory name, it now searches
the directory path for that name.

11 years agoblowfish: Typo in blowfish.cdecls.
Matt Birkholz [Sat, 7 Sep 2013 04:36:17 +0000 (21:36 -0700)]
blowfish: Typo in blowfish.cdecls.

11 years agosrc/Makefile.in: Punt $(FFIS) and build-ffis target.
Matt Birkholz [Sat, 7 Sep 2013 04:33:06 +0000 (21:33 -0700)]
src/Makefile.in: Punt $(FFIS) and build-ffis target.

Moved the test wrapper to tests/ffi/ though it is still commented out
of tests/check.scm.

11 years agogdbm: Update README. Fix test. Nomenclature.
Matt Birkholz [Fri, 6 Sep 2013 23:55:50 +0000 (16:55 -0700)]
gdbm: Update README.  Fix test.  Nomenclature.

Add installation instructions from the previous commit message.  Test
with the newly built shim (not an installed shim).  Call the Scheme
code that interfaces to C "the wrapper", as in blowfish/README.

11 years agoblowfish: A separately buildable FFI wrapper.
Matt Birkholz [Fri, 6 Sep 2013 23:52:14 +0000 (16:52 -0700)]
blowfish: A separately buildable FFI wrapper.

11 years agogdbm: Add generate-shim. Drop compile-bundle and install-bundle.
Matt Birkholz [Thu, 5 Sep 2013 17:19:56 +0000 (10:19 -0700)]
gdbm: Add generate-shim.  Drop compile-bundle and install-bundle.

LIAR/C's bundles cannot be built outside the core build tree.  So
compile-bundle is just e.g. compile.scm, and install-bundle is merged
with install-shim.  Generate-shim actually handles the whole process
from *.cdecl's to -shim.c and -const.bin, eliminating 4 tedious little
rules from every wrapper's Makefile.

11 years agogdbm: A separately buildable FFI wrapper.
Matt Birkholz [Sun, 1 Sep 2013 01:12:05 +0000 (18:12 -0700)]
gdbm: A separately buildable FFI wrapper.

This is a drop-in replacement for the gdbm microcode module and
runtime/gdbm.scm.  Run `make install' and install the following in
your optiondb.scm.

(define-load-option 'GDBM2 (guarded-system-loader '(gdbm) "gdbm"))

You will need to call it GDBM2 while GDBM refers to the original
microcode module wrapper.

11 years agoffi/build.scm.in: Support building shims separately.
Matt Birkholz [Sun, 1 Sep 2013 01:10:40 +0000 (18:10 -0700)]
ffi/build.scm.in: Support building shims separately.

A handful of new top-level bindings make a portickle Makefile.

gdbm-shim.so: gdbm-shim.o gdbm-adapter.o
echo "(link-shim)" | mit-scheme --batch-mode -- -o $@ $^ -lgdbm

The new procedures (generate-shim, compile-shim, link-shim and
install-shim) autoload ffi/build.scm, which captured the build
configuration of the machine.  Compile-bundle and install-bundle are
also provided.

11 years agoffi: Search the library path for shims and their C types/const.
Matt Birkholz [Sat, 31 Aug 2013 22:18:27 +0000 (15:18 -0700)]
ffi: Search the library path for shims and their C types/const.

11 years agoInstall all .pkd, not just <various>-unx.pkd.
Matt Birkholz [Sat, 31 Aug 2013 22:13:48 +0000 (15:13 -0700)]
Install all .pkd, not just <various>-unx.pkd.

11 years agocref: (package-set-pathname "dir/") => "dir/dir-OS.pkd"
Matt Birkholz [Sat, 31 Aug 2013 22:10:22 +0000 (15:10 -0700)]
cref: (package-set-pathname "dir/") => "dir/dir-OS.pkd"

11 years agocref: (global-definitions symbol) looks in library path.
Matt Birkholz [Sat, 31 Aug 2013 22:05:40 +0000 (15:05 -0700)]
cref: (global-definitions symbol) looks in library path.

(global-definitions "string") is still relative to the .pkg file's
directory.

11 years agoruntime/unxpth: Remove ./ when simplifying.
Matt Birkholz [Sat, 31 Aug 2013 21:59:26 +0000 (14:59 -0700)]
runtime/unxpth: Remove ./ when simplifying.

11 years agoCapitalize word after `Caution:'.
Taylor R Campbell [Fri, 30 Aug 2013 15:52:18 +0000 (15:52 +0000)]
Capitalize word after `Caution:'.

11 years agotexinfo strong note
Barak A. Pearlmutter [Mon, 12 Aug 2013 13:22:26 +0000 (15:22 +0200)]
texinfo strong note

Mollify makeinfo with regard to this issue:

$ makeinfo --output=mit-scheme-user.info user.texinfo
user.texinfo:1552: warning: @strong{Note...} produces a spurious cross-reference in Info; reword to avoid that.

The relevant portion of the manual states:

    Caution: Do not use `@strong' with the word `Note'; Info will
    mistake the combination for a cross reference.  (It's usually
    redundant, anyway.)  Use a phrase such as *Please notice* or
    *Caution* instead, or ...

11 years agoUse `texi2dvi --pdf', not `texi2pdf'.
Taylor R Campbell [Fri, 30 Aug 2013 15:45:21 +0000 (15:45 +0000)]
Use `texi2dvi --pdf', not `texi2pdf'.

No functional difference, but texi2pdf is a newer utility not found
in older versions of GNU Texinfo that are still prevalent.

11 years agoFix missing * in one definition of OS_nanotime_since_utc_epoch.
Taylor R Campbell [Fri, 30 Aug 2013 15:32:10 +0000 (15:32 +0000)]
Fix missing * in one definition of OS_nanotime_since_utc_epoch.

From Igor Pashev.

11 years agoMake `news-select-buffer' select in other window by default.
Taylor R Campbell [Fri, 30 Aug 2013 15:30:20 +0000 (15:30 +0000)]
Make `news-select-buffer' select in other window by default.

From Rich Loveland.

11 years agoShow procedure name too in Edwin `show-parameter-list' command.
Taylor R Campbell [Fri, 30 Aug 2013 15:27:12 +0000 (15:27 +0000)]
Show procedure name too in Edwin `show-parameter-list' command.

From Rich Loveland.

11 years agosvm: Add lost flonum-pred-2-args rule.
Matt Birkholz [Sat, 24 Aug 2013 22:03:06 +0000 (15:03 -0700)]
svm: Add lost flonum-pred-2-args rule.

The "new" rule escaped the copying from i386/rulflo.scm(?).  Also
added symlink src/lib/compiler, useful when debugging a broken build.

11 years agoRemove logic to lock IMAIL's IMAP folder cache.
Taylor R Campbell [Sat, 10 Aug 2013 21:11:17 +0000 (21:11 +0000)]
Remove logic to lock IMAIL's IMAP folder cache.

Keep WITH-FOLDER-LOCKED as an empty stub so we might use it later to
let the user control whether to use a cache at all.

There are no invariants that need to be preserved, so locking only
slows us down and reduces concurrency.  Two clients fetching the same
item may collide, but the collision is harmless -- unless the server
is bogus, they will be writing the same data.  Adding an entry to the
cache is already atomic (unless the system fails before the blocks
have hit the disk) through the use of a temporary directory.

11 years agoDon't assume there is a current thread when interrupted.
Taylor R Campbell [Mon, 1 Jul 2013 15:15:25 +0000 (15:15 +0000)]
Don't assume there is a current thread when interrupted.

Fixes error `No current thread!' when the thread timer interrupt
handler tries to find the interrupted thread's floating-point
environment and there is no current thread.

11 years agoFix makefile's IMAIL rule: Edwin must be loaded first.
Taylor R Campbell [Mon, 1 Jul 2013 14:23:47 +0000 (14:23 +0000)]
Fix makefile's IMAIL rule: Edwin must be loaded first.

11 years agoApply patch updating list of windows OS versions.
Chris Hanson [Sun, 23 Jun 2013 07:14:30 +0000 (00:14 -0700)]
Apply patch updating list of windows OS versions.

11 years agoFix MIT Scheme's web site URI in the user manual.
Taylor R Campbell [Thu, 20 Jun 2013 23:42:40 +0000 (23:42 +0000)]
Fix MIT Scheme's web site URI in the user manual.

From Richard M. Loveland.

11 years agoMerge branch 'lazy-floenv'
Taylor R Campbell [Thu, 20 Jun 2013 15:46:19 +0000 (15:46 +0000)]
Merge branch 'lazy-floenv'

11 years agoTweak floenv tests so they preserve the floating-point environment.
Taylor R Campbell [Thu, 20 Jun 2013 15:45:51 +0000 (15:45 +0000)]
Tweak floenv tests so they preserve the floating-point environment.

11 years agoImplement lazy switching of thread floating-point environments.
Taylor R Campbell [Wed, 29 May 2013 03:10:52 +0000 (03:10 +0000)]
Implement lazy switching of thread floating-point environments.

Should reduce the overhead of thread switching and avoid
platform-dependent objects in threads that don't mess with the
floating-point environment so that they can be dumped in bands.

11 years agoUse WITH-LIMITED-INTERRUPTS, not WITH-INTERRUPT-MASK, for IMAP update.
Taylor R Campbell [Thu, 20 Jun 2013 15:32:16 +0000 (15:32 +0000)]
Use WITH-LIMITED-INTERRUPTS, not WITH-INTERRUPT-MASK, for IMAP update.

11 years agoPass RTLD_NOW, not RTLD_LAZY, to dlopen.
Taylor R Campbell [Thu, 20 Jun 2013 15:18:19 +0000 (15:18 +0000)]
Pass RTLD_NOW, not RTLD_LAZY, to dlopen.

Let dlopen fail recoverably if there are missing symbols, rather than
aborting the hapless process when it tries to use them later.

11 years agoPut a space after the colon when reporting an undefined command.
Taylor R Campbell [Wed, 12 Jun 2013 20:09:02 +0000 (20:09 +0000)]
Put a space after the colon when reporting an undefined command.

11 years agoFix typo in i386/rulflo.scm signed zero test.
Taylor R Campbell [Tue, 11 Jun 2013 16:17:32 +0000 (16:17 +0000)]
Fix typo in i386/rulflo.scm signed zero test.

Missed these typos because although I checked for (constant 0.) and
(constant -0.) in the RTL, I didn't check whether they were being
immediately passed to OBJECT->FLOAT...

11 years agoThe gdbm error handler takes a const char *, not a char *.
Taylor R Campbell [Tue, 4 Jun 2013 20:52:23 +0000 (20:52 +0000)]
The gdbm error handler takes a const char *, not a char *.

11 years agoUpdate copyrights to 2013.
Chris Hanson [Sun, 9 Jun 2013 08:05:26 +0000 (01:05 -0700)]
Update copyrights to 2013.

11 years agoDon't allow AC_CHECK_DECL([__x86_64__]) to override user-specified cpu spec.
Chris Hanson [Sun, 9 Jun 2013 07:25:33 +0000 (00:25 -0700)]
Don't allow AC_CHECK_DECL([__x86_64__]) to override user-specified cpu spec.

11 years agoSome tweaks while debugging a problem.
Chris Hanson [Sun, 9 Jun 2013 07:24:05 +0000 (00:24 -0700)]
Some tweaks while debugging a problem.

11 years agoFix typo.
Chris Hanson [Sun, 9 Jun 2013 00:37:36 +0000 (17:37 -0700)]
Fix typo.

11 years agoSyntax and compile win32 separately in the top-level makefile.
Taylor R Campbell [Tue, 4 Jun 2013 17:19:21 +0000 (17:19 +0000)]
Syntax and compile win32 separately in the top-level makefile.

11 years agoMake NUMBER->STRING give negative flonum zero a minus sign.
Taylor R Campbell [Tue, 4 Jun 2013 17:18:36 +0000 (17:18 +0000)]
Make NUMBER->STRING give negative flonum zero a minus sign.

11 years agoMake EQV? distinguish signed flonum zeros.
Taylor R Campbell [Tue, 4 Jun 2013 17:18:11 +0000 (17:18 +0000)]
Make EQV? distinguish signed flonum zeros.

11 years agoFix i386 and amd64 lapgen rules to load negative zero correctly.
Taylor R Campbell [Tue, 4 Jun 2013 17:17:28 +0000 (17:17 +0000)]
Fix i386 and amd64 lapgen rules to load negative zero correctly.

11 years agoFix floating-point underflow tests with a suggestion from Bill Kahan.
Taylor R Campbell [Tue, 4 Jun 2013 08:50:24 +0000 (08:50 +0000)]
Fix floating-point underflow tests with a suggestion from Bill Kahan.

11 years agoDisregard ERANGE from libm log when x = 0.
Taylor R Campbell [Tue, 4 Jun 2013 08:47:43 +0000 (08:47 +0000)]
Disregard ERANGE from libm log when x = 0.

This enables log to usefully raise the IEEE 754 divide-by-zero
exception when the divide-by-zero exception is untrapped.

11 years agoAdd some tests for floating-point comparison screw cases.
Taylor R Campbell [Tue, 4 Jun 2013 05:29:03 +0000 (05:29 +0000)]
Add some tests for floating-point comparison screw cases.

11 years agoAdd unordered branches for NaN cases to amd64 comparison trampolines.
Taylor R Campbell [Tue, 4 Jun 2013 05:27:11 +0000 (05:27 +0000)]
Add unordered branches for NaN cases to amd64 comparison trampolines.

11 years agoFix various infinity and NaN screw cases for <, MIN, MAX, *, and /.
Taylor R Campbell [Tue, 4 Jun 2013 05:22:42 +0000 (05:22 +0000)]
Fix various infinity and NaN screw cases for <, MIN, MAX, *, and /.

Behaviour is as prescribed by IEEE 754.  Most of the changes that
involve FLO:NAN? use it only in mixed-exactness branches, which are
not particularly performance-critical anyway.  Eventually we ought to
make FLO:NAN? and FLO:FINITE? open-codable primitives, and add
FLO:INFINITE?, FLO:NORMAL?, and FLO:SUBNORMAL? likewise.

11 years agoOn Mac OS X, use mmap(MAP_FIXED) only for i386.
Taylor R Campbell [Mon, 3 Jun 2013 19:17:41 +0000 (19:17 +0000)]
On Mac OS X, use mmap(MAP_FIXED) only for i386.

11 years agoRework heap mmapping once more.
Taylor R Campbell [Mon, 3 Jun 2013 17:53:59 +0000 (17:53 +0000)]
Rework heap mmapping once more.

- Ensure that if we pass mmap a nonzero address, we are requesting
  MAP_FIXED or MAP_TRYFIXED.

- Try grovelling through /proc/self/maps on NetBSD too -- it might be
  there.

11 years agoFix thinko in BITS.
Taylor R Campbell [Sun, 2 Jun 2013 22:31:19 +0000 (22:31 +0000)]
Fix thinko in BITS.

11 years agoFix for fix for bug #36887: return '() from IGNORABLE parser.
Matt Birkholz [Mon, 3 Jun 2013 16:40:57 +0000 (09:40 -0700)]
Fix for fix for bug #36887: return '() from IGNORABLE parser.

The tail expr was accidentally deleted in the previous commit.

11 years agoFix for bug #36887: Ignore a free variable and sf fails.
Matt Birkholz [Mon, 3 Jun 2013 15:33:57 +0000 (08:33 -0700)]
Fix for bug #36887: Ignore a free variable and sf fails.

Ignoring a free variable now just causes a warning (and names the variable).

11 years agoDon't setsid Scheme.
Taylor R Campbell [Sun, 2 Jun 2013 15:33:41 +0000 (15:33 +0000)]
Don't setsid Scheme.

If you want to detach from the controlling terminal, use a trivial
wrapper program that calls setsid and then exec (e.g., pgrphack from
daemontools), or add a primitive to Scheme to daemonize without race
conditions.

Hitting ^C at the terminal now works to interrupt Scheme in batch
mode, e.g. when run under make during the build.

11 years agocompiler: Don't let continuation-analysis add a cycle...
Matt Birkholz [Sun, 2 Jun 2013 01:53:24 +0000 (18:53 -0700)]
compiler: Don't let continuation-analysis add a cycle...

...to the block tree, which it would do (causing a "maximum recursion
depth exceeded" abort during block->dbg-block) when compiling crazy
code like:

      (define (fubar param)
(define (closure) param)
(define (loop)
  (closure)
  (loop)
  ;; It doesn't break without this
  (tail-call)))
      (fubar sumpn)

This patch checks that the "Acceptable substitute" for a block's
stack-link is not inside the block.

11 years agoMissed a dependency: edwin needs win32 syntaxed first.
Taylor R Campbell [Fri, 31 May 2013 03:53:55 +0000 (03:53 +0000)]
Missed a dependency: edwin needs win32 syntaxed first.

11 years agoRevert tterm.c changes.
Matt Birkholz [Wed, 29 May 2013 22:56:48 +0000 (15:56 -0700)]
Revert tterm.c changes.

tterm.c is not used when not USE_TERMCAP, so these old changes are
unnecessary... and potentially confusing.

11 years agoAdd configure option `--without-termcap'.
Matt Birkholz [Wed, 29 May 2013 22:50:34 +0000 (15:50 -0700)]
Add configure option `--without-termcap'.

Punt the termcap primitives (all of microcode/tterm.c!) if configured
--with-termpcap=no.  The console port ops like clear and x-size were
already equipped with useful(?) defaults.  In fact Edwin (on X11)
still works!

11 years agoMerge branch 'make-jobs'
Taylor R Campbell [Wed, 29 May 2013 14:25:00 +0000 (14:25 +0000)]
Merge branch 'make-jobs'

11 years agoReduce loading verbiage in compile-imail and compile-xml targets.
Taylor R Campbell [Wed, 29 May 2013 14:10:05 +0000 (14:10 +0000)]
Reduce loading verbiage in compile-imail and compile-xml targets.

Their respective compile.scm scripts load everything anyway.

11 years agoSplit compile-edwin target into syntax-edwin/compile-edwin.
Taylor R Campbell [Wed, 29 May 2013 14:07:14 +0000 (14:07 +0000)]
Split compile-edwin target into syntax-edwin/compile-edwin.