Taylor R Campbell [Sat, 25 Jun 2011 19:28:48 +0000 (19:28 +0000)]
Use %READ-CHAR/%WRITE-CHAR in coding conversions.
Elides redundant port checks.
Taylor R Campbell [Sat, 25 Jun 2011 16:16:15 +0000 (16:16 +0000)]
Elide intermediate wide string in SYMBOL->STRING.
Taylor R Campbell [Sat, 25 Jun 2011 16:12:51 +0000 (16:12 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Joe Marshall [Tue, 21 Jun 2011 21:42:27 +0000 (14:42 -0700)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Chris Hanson [Tue, 21 Jun 2011 04:53:12 +0000 (21:53 -0700)]
Initial revision: a shell script to put on your PATH that runs an MIT Scheme application from the command line.
Chris Hanson [Mon, 20 Jun 2011 08:09:29 +0000 (01:09 -0700)]
Set SIGNAL_HANDLERS_CAN_USE_SCHEME_STACK under MacOS.
Taylor R Campbell [Sat, 18 Jun 2011 23:37:06 +0000 (23:37 +0000)]
On x86, align stack to 16 bytes for all calls to C.
Should fix random hangs on Mac OS X, whose ABI requires 16-byte
stack alignment. Should be harmless on other operating systems.
Taylor R Campbell [Sat, 18 Jun 2011 22:22:46 +0000 (22:22 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Joe Marshall [Fri, 17 Jun 2011 15:20:58 +0000 (08:20 -0700)]
Slight cleanup.
Joe Marshall [Fri, 17 Jun 2011 15:11:26 +0000 (08:11 -0700)]
Add optional port argument to debugging utility procedure.
Joe Marshall [Wed, 15 Jun 2011 04:44:35 +0000 (21:44 -0700)]
Revert unintended change.
Joe Marshall [Wed, 15 Jun 2011 04:33:54 +0000 (21:33 -0700)]
Revert unintended change.
Taylor R Campbell [Tue, 14 Jun 2011 03:28:23 +0000 (03:28 +0000)]
Fix calls to tcsetpgrp to avoid infinite loops on ENOSYS.
Joe Marshall [Mon, 13 Jun 2011 23:08:33 +0000 (16:08 -0700)]
Add ability to expand named-let as pure function.
Joe Marshall [Mon, 13 Jun 2011 23:07:02 +0000 (16:07 -0700)]
Fix missing call to loop in buffer-layout-visible?
Joe Marshall [Mon, 13 Jun 2011 23:04:27 +0000 (16:04 -0700)]
Remove list-ref and list-set! definitions (duplicates).
Joe Marshall [Mon, 13 Jun 2011 23:02:13 +0000 (16:02 -0700)]
Tweak integrations.
Joe Marshall [Mon, 13 Jun 2011 22:46:36 +0000 (15:46 -0700)]
Integrate DISCRIMINATE-PROCEDURE
Joe Marshall [Mon, 13 Jun 2011 22:42:07 +0000 (15:42 -0700)]
Add ability to warn about integrated operators used as arguments.
Joe Marshall [Mon, 13 Jun 2011 14:59:30 +0000 (07:59 -0700)]
Export list-set\!
Joe Marshall [Mon, 13 Jun 2011 14:58:29 +0000 (07:58 -0700)]
Define list-set\!
Joe Marshall [Mon, 13 Jun 2011 14:56:03 +0000 (07:56 -0700)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Matt Birkholz [Fri, 10 Jun 2011 15:54:44 +0000 (08:54 -0700)]
Alienate_float_env. before callouts, after callbacks.
Matt Birkholz [Fri, 10 Jun 2011 15:53:12 +0000 (08:53 -0700)]
Fix compile-system's dependencies option.
Taylor R Campbell [Fri, 10 Jun 2011 00:33:50 +0000 (00:33 +0000)]
Fix use of the close system call.
When close returns, it guarantees that the file descriptor given will
be closed, even if it fails. (The documentation is extremely poor,
but this is what every operating system does.) Consequently, it is a
bug to retry close. Every use now either ignores the return value of
close or takes a specific action based on it; it is incorrect to use
STD_VOID_SYSTEM_CALL with close.
Some calls that ignore the return value really need to check for
EINTR and deliver pending interrupts, but I'll get to that later.
Joe Marshall [Thu, 9 Jun 2011 21:45:35 +0000 (14:45 -0700)]
Remove jrm cruft and speed things up.
Joe Marshall [Thu, 9 Jun 2011 21:31:40 +0000 (14:31 -0700)]
Remove limits on expansion of cons* and list. Improve apply expansion.
Joe Marshall [Thu, 9 Jun 2011 21:14:15 +0000 (14:14 -0700)]
Get rid of boot dependency on MEMQ.
Joe Marshall [Thu, 9 Jun 2011 20:52:56 +0000 (13:52 -0700)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Joe Marshall [Thu, 9 Jun 2011 20:52:35 +0000 (13:52 -0700)]
Re-order some code to eliminate forward references.
Taylor R Campbell [Wed, 8 Jun 2011 18:23:31 +0000 (18:23 +0000)]
Omit some vestiges in nntp.scm.
Taylor R Campbell [Wed, 8 Jun 2011 18:21:07 +0000 (18:21 +0000)]
Fix order of arguments to HASH-TABLE/MODIFY!.
With any luck, nobody was using this except me outside the tree.
And it's not documented, so that nobody character will get what he
deserves.
Before:
(hash-table/modify! hash-table key
(lambda ()
...
a gigantic
heffable hoary herralump of
an expression
...)
tiny)
After:
(hash-table/modify! hash-table key tiny
(lambda ()
...
a gigantic
heffable hoary herralump of
an expression
...))
Taylor R Campbell [Wed, 8 Jun 2011 17:15:40 +0000 (17:15 +0000)]
Kludge up wrong-number-of-arguments error parsing for entities.
Before:
(min)
;The procedure #[compiled-procedure 11 (min "arith" #x16) #x1b1a #x1c8ac2] has been called with 1 argument; it requires at least 2 arguments.
After:
(min)
;The procedure #[arity-dispatched-procedure 11 min] has been called with 0 arguments; it requires at least 1 argument.
Screw cases be damned.
Taylor R Campbell [Wed, 8 Jun 2011 15:55:09 +0000 (15:55 +0000)]
Fix up bit-indexed integer operations.
. Fix sense of BIT-SET?.
. Add BIT-CLEAR?, for symmetry.
. Export forgotten TOGGLE-BIT.
. Add some tests for these operations.
Joe Marshall [Mon, 6 Jun 2011 18:34:47 +0000 (11:34 -0700)]
Trivial cleanup.
Taylor R Campbell [Wed, 25 May 2011 19:54:46 +0000 (19:54 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Joe Marshall [Tue, 24 May 2011 17:15:37 +0000 (10:15 -0700)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Joe Marshall [Tue, 24 May 2011 17:15:18 +0000 (10:15 -0700)]
A small simplification.
Joe Marshall [Tue, 24 May 2011 17:12:35 +0000 (10:12 -0700)]
Avoid leaving trailing whitespace on notifications.
Taylor R Campbell [Mon, 23 May 2011 15:36:07 +0000 (15:36 +0000)]
Call the procedure in HASH-TABLE/MODIFY! before blocking interrupts.
Previously the interrupt mask during the call to the procedure
depended on whether there was already an entry in the table, which
is silly.
Taylor R Campbell [Mon, 23 May 2011 15:34:10 +0000 (15:34 +0000)]
Must disable interrupts for SET-ENTRY-DATUM!.
It would probably be better to add a DISCRETIONARY-WITH-TABLE-LOCKED
operation to the entry type abstraction, so that the overhead of
blocking interrupts would be incurred only for key&datum-ephemeral
tables, which are the only ones that need it.
Taylor R Campbell [Mon, 23 May 2011 14:38:48 +0000 (14:38 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Taylor R Campbell [Sun, 22 May 2011 21:50:50 +0000 (21:50 +0000)]
Use MAKE-STRONG-EQ-HASH-TABLE for SOS's built-in class table.
Should be ephemeral of some flavour, but we can't do that yet. See
the comments for details.
Taylor R Campbell [Sun, 22 May 2011 21:12:18 +0000 (21:12 +0000)]
Use MAKE-STRONG-EQV-HASH-TABLE for Swank inspector parts.
Don't use deprecated MAKE-EQV-HASH-TABLE.
Keys are numbers anyway, so this may as well be strong.
Taylor R Campbell [Sun, 22 May 2011 21:09:16 +0000 (21:09 +0000)]
Missed a spot in parse.scm: MAKE-EQV-HASH-TABLE is deprecated.
Use MAKE-STRONG-EQV-HASH-TABLE here; the keys are numbers anyway.
Taylor R Campbell [Sun, 22 May 2011 20:49:50 +0000 (20:49 +0000)]
Fix HASH-TABLE-UPDATE!/DEFAULT to conform to silly specification.
Add regression tests.
I missed this when I fixed HASH-TABLE-UPDATE! a while ago.
Matt Birkholz [Wed, 18 May 2011 01:51:12 +0000 (18:51 -0700)]
Trying to get FFI test shim to link on Mac OS X.
Following the linking of microcode modules more closely, including
SHIM_LOADER in the prerequisites for the -shim.so, and the curiously
brief SHIM_LIBS for the LINK_SHIM commandline. Both are from
microcode/makegen/Makefile.in.in analogs, like MODULE_LIBS.
I'm not sure that this helps the Mac OS X build at all... so I'm
leaving build-ffis (and its test) disabled.
Taylor R Campbell [Tue, 10 May 2011 16:17:30 +0000 (16:17 +0000)]
Fix wait loop logic in synchronous subprocesses.
Previous trivial tests now pass.
Taylor R Campbell [Tue, 10 May 2011 16:14:57 +0000 (16:14 +0000)]
Add some trivial synchronous subprocess tests.
Taylor R Campbell [Mon, 9 May 2011 21:37:52 +0000 (21:37 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Taylor R Campbell [Mon, 9 May 2011 21:30:19 +0000 (21:30 +0000)]
Permit `--constant 0'.
The band loader figures out the size of the constant space anyway.
Is there ever any reason to use the `--constant' option at all?
Joe Marshall [Mon, 9 May 2011 19:49:10 +0000 (12:49 -0700)]
Fix whitespace.
Joe Marshall [Mon, 9 May 2011 19:41:54 +0000 (12:41 -0700)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Joe Marshall [Mon, 9 May 2011 19:41:32 +0000 (12:41 -0700)]
Remove overly complex code.
Taylor R Campbell [Mon, 9 May 2011 04:14:09 +0000 (04:14 +0000)]
Prefer (NOT (PAIR? ...)) over (NULL? ...) in unxpth.scm.
Taylor R Campbell [Mon, 9 May 2011 04:05:50 +0000 (04:05 +0000)]
Permit consecutive slashes in Unix namestrings.
POSIX sez it's kosher:
<http://pubs.opengroup.org/onlinepubs/
9699919799/basedefs/V1_chap03.html#tag_03_266>
I don't know any Unix that treats two leading slashes differently, so
I won't reject that case. However, maybe the pathname abstraction
needs to handle it differently if there are such Unices.
Chris Hanson [Mon, 2 May 2011 05:35:23 +0000 (22:35 -0700)]
Don't run build-ffis.
Chris Hanson [Mon, 2 May 2011 03:52:10 +0000 (20:52 -0700)]
Missed a copyright.
Chris Hanson [Mon, 2 May 2011 03:51:49 +0000 (20:51 -0700)]
Update version number.
Chris Hanson [Mon, 2 May 2011 01:56:20 +0000 (18:56 -0700)]
Update copyright years.
Chris Hanson [Mon, 2 May 2011 01:49:41 +0000 (18:49 -0700)]
Update version number.
Chris Hanson [Mon, 2 May 2011 01:49:02 +0000 (18:49 -0700)]
Update version number.
Chris Hanson [Mon, 2 May 2011 01:46:03 +0000 (18:46 -0700)]
Update version number.
Chris Hanson [Mon, 2 May 2011 01:43:20 +0000 (18:43 -0700)]
Initial revision: imported from cph's private sources.
Chris Hanson [Sun, 1 May 2011 23:37:37 +0000 (16:37 -0700)]
Add patterns for ffi documentation.
Chris Hanson [Sun, 1 May 2011 09:07:36 +0000 (02:07 -0700)]
Don't run "build-ffis"; this rule is broken on Mac OS X.
Chris Hanson [Sun, 1 May 2011 09:03:47 +0000 (02:03 -0700)]
Revert misguided change.
Taylor R Campbell [Sat, 30 Apr 2011 19:44:58 +0000 (19:44 +0000)]
Fix configure with host Scheme check disabled.
Taylor R Campbell [Sat, 30 Apr 2011 19:25:11 +0000 (19:25 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Taylor R Campbell [Sat, 30 Apr 2011 19:20:53 +0000 (19:20 +0000)]
Tighten host Scheme detection in configure script.
Now the script requires MIT_SCHEME_EXE to work if it is set, in order
to detect early the legitimate error of setting it wrong.
Matt Birkholz [Sat, 30 Apr 2011 18:20:19 +0000 (11:20 -0700)]
Oops, remove ALL "debugging printfs".
Matt Birkholz [Sat, 30 Apr 2011 17:43:16 +0000 (10:43 -0700)]
Added compile-time 'imports option to compile-system.
Matt Birkholz [Sat, 30 Apr 2011 17:41:28 +0000 (10:41 -0700)]
Cut out the SHELL middleman; use run-synchronous-subprocess.
Matt Birkholz [Sat, 30 Apr 2011 17:40:09 +0000 (10:40 -0700)]
Un-distinguish LDFLAGS et al for shims or modules.
Taylor R Campbell [Sat, 30 Apr 2011 15:37:15 +0000 (15:37 +0000)]
Suppress host Scheme test by default only if lib/all.com exists.
Taylor R Campbell [Sat, 30 Apr 2011 15:36:28 +0000 (15:36 +0000)]
Make configure fail if create-makefiles or compiler/configure fails.
Taylor R Campbell [Sat, 30 Apr 2011 15:30:20 +0000 (15:30 +0000)]
Reflect autoconf invocation in Setup.sh's output.
Taylor R Campbell [Thu, 28 Apr 2011 22:11:02 +0000 (22:11 +0000)]
Update terminal drawing operation costs on resize.
Fixes random errors during redraw after expanding your terminal.
Evidently nobody uses Edwin in a terminal, at least since I broke
this five years ago...
Taylor R Campbell [Thu, 28 Apr 2011 14:34:18 +0000 (14:34 +0000)]
Omit unreferenced GEN-DELIMS in url.scm.
Taylor R Campbell [Thu, 28 Apr 2011 05:37:04 +0000 (05:37 +0000)]
Check whether requested memory size fits in object datum.
Do this before even trying to allocate the memory.
Taylor R Campbell [Wed, 27 Apr 2011 21:16:04 +0000 (21:16 +0000)]
Fix some header files in the FFI.
Taylor R Campbell [Wed, 27 Apr 2011 21:14:55 +0000 (21:14 +0000)]
Avoid GNUism $^ in makefiles.
Taylor R Campbell [Wed, 27 Apr 2011 20:39:07 +0000 (20:39 +0000)]
Omit unreferenced variable in COMPILE-SYSTEM.
Taylor R Campbell [Wed, 27 Apr 2011 20:30:47 +0000 (20:30 +0000)]
Simplify PARSE-PACKAGE-EXPRESSIONS with FILTER-MAP.
Taylor R Campbell [Wed, 27 Apr 2011 19:23:38 +0000 (19:23 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Matt Birkholz [Tue, 26 Apr 2011 20:09:24 +0000 (13:09 -0700)]
Oops, for-all?'s arguments are "backward".
Matt Birkholz [Tue, 26 Apr 2011 17:48:28 +0000 (10:48 -0700)]
Turned off c-include-noisily? by default.
Turned it on in the FFI generator. Use it to suppress the "Loading
gtk-types.bin..." notifications when compiling files that c-include.
Matt Birkholz [Tue, 26 Apr 2011 17:47:42 +0000 (10:47 -0700)]
Fixed compile-ffi to use run-shell-command.
Now sets the working directory and checks make's exit code.
Matt Birkholz [Tue, 26 Apr 2011 17:42:52 +0000 (10:42 -0700)]
Ignore unknown options/descriptions in .pkg files.
Matt Birkholz [Mon, 25 Apr 2011 20:39:50 +0000 (13:39 -0700)]
Removed redundant --preserve-timestamps.
Matt Birkholz [Mon, 25 Apr 2011 20:00:09 +0000 (13:00 -0700)]
Fixed recent enhancement to compile-file.
Matt Birkholz [Wed, 20 Apr 2011 15:26:08 +0000 (08:26 -0700)]
Fix compile-system to load into the correct environment.
Matt Birkholz [Tue, 19 Apr 2011 07:49:14 +0000 (00:49 -0700)]
New compile-system procedure. Replaced ffi.sf and ffi.cbf.
* src/compiler/base/toplev.scm (compile-file): Only declare
integrate-external when dependencies have no type. Thus a dependency
on e.g. "gtk-const.bin" might cause the dependent file to be
re-compiled without a spurious warning about a missing .ext file.
* src/cref/: butils.scm, cref.pkg: Added new file butils.scm,
containing a compile-system procedure that applies compile-file to
each file mentioned in a .pkg file.
* src/ffi/: compile.scm, ffi.cbf, ffi.sf: Replaced the old .cbf and
.sf files with a new, modern compile.scm file.
Matt Birkholz [Mon, 18 Apr 2011 15:25:25 +0000 (08:25 -0700)]
Fixed ffi/Makefile-fragment install target.
* src/Setup.sh: Create src/lib/ links to the ffi-test FFI.
* src/ffi/Makefile-fragment: Punt installing the ffi-test FFI, which
is intended for `make check', which developers run in the source tree.
The links in src/lib/ are enough; no need to copy files there.
Taylor R Campbell [Mon, 18 Apr 2011 02:33:51 +0000 (02:33 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Matt Birkholz [Mon, 18 Apr 2011 00:08:38 +0000 (17:08 -0700)]
Added FFI test.
* doc/ffi/ffi.texinfo: Punt the Makefile fragments for the example,
and the logic behind the leak-proof malloc/free procedures.
* doc/user-manual/user.texinfo: Needlessly picked some consistency nits.
* src/Clean.sh, src/Setup.sh: Link config.sub and config.guess to
microcode/*, and clean them too. These scripts are used by
src/configure.ac, which uses AC_CANONICAL_HOST to configure the
compilation and linking of FFIs.
* src/Makefile.in (FFIS, build-ffis): Added FFIS, the list of
configured foreign library interfaces (subdirs). These are built by
the new build-ffis target, which follows build-bands in most places,
and does `make build' in each ffi subdir.
* src/configure.ac: Added --enable-debugging, FFIS, CCLD, DEFS,
CFLAGS, CPPFLAGS, LDFLAGS, SHIM_CFLAGS and SHIM_LDFLAGS. Include
microcode/achost.ac. Added FFIS to the bundles list.
* src/etc/compile.scm (compile-ffi): New. This procedure arranges to
compile an FFI subdir as a LIARC bundle when LIARC is in use.
* src/etc/functions.sh (maybe_rm): Remove symlinks too.
* src/etc/make-liarc.sh: Added build-ffis after build-bands.
* src/etc/std-makefile-prefix: Added CC, CCLD, DEFS, CFLAGS, CPPFLAGS,
LDFLAGS, COMPILE, LINK, SHIM_CFLAGS, SHIM_LDFLAGS, COMPILE_SHIM and
LINK_SHIM, useful when building a foreign library interface shim.
* src/ffi/.gitignore: Ignore ffi-test-* build products.
* src/ffi/Clean.sh: Punt prhello example. Clean up ffi-test-* build
products.
* src/ffi/Makefile-fragment: Punt prhello example. Build and install
an FFI test lib instead.
* src/ffi/: ffi-test.c.stay, ffi-test.cdecl, ffi-test.h: The new test
foreign library and interface.
* src/ffi/: prhello.cdecl, prhello.scm: Removed. Now in doc/;
replaced in src/ by ffi-test*.*.
* src/microcode/: achost.ac, configure.ac: Moved the host
configuration from configure.ac to the new achost.ac, to share with
src/configure.ac.
* src/runtime/ffi.scm (guarantee-alien, error:not-alien): Use the
standard arglist (object operator), not (operator object #!optional
ctype), and do not loop insisting on a qualifying object. Integrate
the test, separated from the restart code, which goes in the new,
global error:not-alien procedure.
(guarantee-alien-function, error:not-alien-function): New, like
guarantee-alien and error:not-alien. Use them in call-alien.
(make-alien-to-free): New, for interfacing to C functions like
malloc() that return something that needs to be freed with free().
Use it in the Scheme malloc procedure, and the test FFI.
* src/runtime/runtime.pkg: Added error:not-alien,
guarantee-alien-function, error:not-alien-function and
make-alien-to-free.
* tests/Clean.sh: New, for cleaning up after tests.
* tests/check.scm: Added tests/ffi/test-ffi.scm. Hacked handling of
test-flonum-casts.com so that `make check' works on portable C.
* tests/ffi/test-ffi-wrapper.scm: New. Code that needs to be
syntaxed/compiled as part of the FFI test.
* tests/ffi/test-ffi.scm: New. A test of the C/Unix FFI.
Taylor R Campbell [Sat, 16 Apr 2011 00:40:37 +0000 (00:40 +0000)]
Run Scheme in batch mode in the scripts in src/etc/.
Taylor R Campbell [Sat, 16 Apr 2011 00:25:41 +0000 (00:25 +0000)]
Make `--batch-mode' without `--interactive' imply non-interactive.
In this case, don't check whether stdin/stdout/stderr are ttys to
determine whether we are interactive.
This keeps `scheme --batch-mode' from futzing with the tty interrupt
characters, so that if you run it from a script, there is no window
during which ^G becomes the terminal's interrupt character and ^C its
quit character. E.g., if you have set `stty intr ^C', then Scheme
won't interfere with that while you run your script.
Taylor R Campbell [Sun, 10 Apr 2011 21:17:29 +0000 (21:17 +0000)]
Use do { ... } while (0) for command macros in uxproc.c.
Omit needless curly braces in subprocess_death.
Taylor R Campbell [Sun, 10 Apr 2011 19:34:53 +0000 (19:34 +0000)]
Check for tcsetpgrp failure.