Matt Birkholz [Fri, 15 May 2009 07:09:40 +0000 (00:09 -0700)]
GNOME Toolkit Interface, as released 2009-03-18.
* doc/Makefile.in:
Include gtk in SUBDIRS.
* doc/configure.ac:
Include gtk/Makefile.
* doc/gtk/Makefile.in:
Build the Users' Manual for the GTK.
* doc/gtk/gtk.texinfo:
The Users' Manual for the GTK.
* doc/index.html:
Include mit-scheme-gtk/index.html.
* src/Clean.sh:
Clean up new symlinks config.sub and config.guess, used by
AZ_CANONICAL_HOST in configure.ac.
* src/Makefile.in:
Added new file category "FFIS". Include gtk in FFIS.
`make generate' in FFIS before compiling their Scheme source, so
they can C-include later -- much later.
`make build' in FFIS after dumping the new bands, so the FFIS are
compiled with the shims installed in lib/lib/. The new bands are
not strictly necessary, but they complete lib/lib/, so the
commandline in FFI Makefiles can be this simple:
`../microcode/scheme --library ../lib'.
Added similar commands to the all-liarc target, though I have yet
to build a lairc-based system.
Install conses.png in lib/ for the scm-layout-demo.
* src/README.txt:
Describe gtk as part of the core.
* src/Setup.sh:
Include gtk in INSTALLED_SUBDIRS. Include rcs in OTHER_SUBDIRS,
so `make tags' does not fail.
Symlink to microcode/config.sub and config.guess, so configure.ac
can share with microcode/configure.ac. Create lib/lib/prgtkio.so
and lib/gtk symlinks too.
* src/configure.ac:
Include AC_CANONICAL_HOST and related C compilation variables,
esp. SHIM_CFLAGS and SHIM_LDFLAGS, shared with
microcode/configure.ac via microcode/achost.ac. Echo the
create-makefiles.sh commandline. Generate gtk/Makefile. Added
gtk to liarc BUNDLEs.
* src/etc/create-makefiles.sh:
Include gtk in BUNDLES.
* src/etc/optiondb.scm:
Define loadable option GTK.
* src/etc/std-makefile-prefix:
Added C compilation variables, esp. COMPILE_SHIM and LINK_SHIM.
* src/gtk/Clean.sh:
Clean up after building the shim.
* src/gtk/Includes/: cairo-xlib.cdecl, cairo.cdecl,
gdk-pixbuf-core.cdecl, gdk-pixbuf-loader.cdecl,
gdk-pixbuf.cdecl, gdk.cdecl, gdkcolor.cdecl, gdkcursor.cdecl,
gdkdrawable.cdecl, gdkevents.cdecl, gdkfont.cdecl, gdkgc.cdecl,
gdkkeys.cdecl, gdkkeysyms.cdecl, gdkrgb.cdecl, gdktypes.cdecl,
gdkwindow.cdecl, genums.cdecl, gerror.cdecl, glib.cdecl,
gobject.cdecl, gparam.cdecl, gparamspecs.cdecl, gquark.cdecl,
gsignal.cdecl, gtk.cdecl, gtkadjustment.cdecl, gtkbox.cdecl,
gtkenums.cdecl, gtkobject.cdecl, gtkstyle.cdecl,
gtktypeutils.cdecl, gtkvbox.cdecl, gtkwidget.cdecl, gtype.cdecl,
gtypes.cdecl, gvalue.cdecl, gvaluetypes.cdecl,
pango-context.cdecl, pango-font.cdecl, pango-layout.cdecl,
pango-types.cdecl, pango.cdecl, pangocairo.cdecl:
C declarations corresponding to SOME of
/usr/include/g{lib,tk}-2.0/**/*.h.
* src/gtk/Makefile-fragment:
Generate the gtk shim, and build Scheme code that uses it. Keep
the ScmWidget methods in a .c.stay file so it does not get cleaned
up by `Clean.sh maintainer-clean' nor `Clean.sh c-clean'. Create
conses.png from conses.png.uu because I cannot distribute a binary
in a patchfile.
* src/gtk/Tags.sh:
Include auxiliary ScmWidget code, and NOT gtk-const.scm.
* src/gtk/compile.scm:
Build the GTK system. Expects the shim to be available in ../lib.
* src/gtk/conses.png.uu:
Because I cannot distribute a binary in a patchfile.
* src/gtk/: demo.scm, gtk-ev.scm, hello.scm, pango-cairo.scm:
Peripheral hacks.
* src/gtk/: gobject.scm, gtk-object.scm, gtk.pkg, gtk.scm, load.scm,
main.scm, scm-layout.scm, scm-widget.scm:
The core of the GTK system.
* src/gtk/gtk.cdecl:
The C types and externs needed in the GTK shim.
* src/gtk/gtk-shim.h:
C declarations for gtk-shim.c, gtk-const.c and scmwidget.c. Includes
the ScmWidget and ScmWidgetClass struct declarations.
* src/gtk/scmwidget.c.stay:
ScmWidget methods. The ".stay" suffix keeps this code from being
"cleaned up" by `Clean.sh maintainer-clean' or `Clean.sh c-clean'.
* src/gtk/thread.scm:
The Scheme thread that "runs" the toolkit.
* src/microcode/configure.ac, src/microcode/achost.ac:
Moved the AC_CANONICAL_HOST code from microcode/configure.ac to
microcode/achost.ac, so it can be shared with configure.ac.
Implement a --with-gtk argument.
* src/microcode/makegen/: Makefile.in.in, files-optional.scm:
Added new module prgtkio.so.
* src/microcode/makegen/makeinit.sh:
Use --batch-mode and `mit-scheme' instead of `scheme'.
* src/microcode/osio.h, microcode/prosio.c:
Changed the declarations of OS_select_registry_entry and
arg_select_registry so they can be used in the new prgtkio module.
* src/microcode/prgtkio.c:
The prgtkio module. New primitives that arrange to run Scheme in an
idle task of a GMainLoop.
* src/microcode/utabmd.sh:
Use --batch-mode and `mit-scheme'. Echo the commandline.
* src/microcode/uxio.c:
Added an OS_select_registry_entry function that extracts a file
descriptor and a mode from an indexed registry entry, for prgtkio.
* src/runtime/Makefile-fragment:
Install runtime-*.pkd so lusers can cref imports.
* src/runtime/thread.scm:
Added some tracing, conditioned on a tracing? binding.
Matt Birkholz [Mon, 18 May 2009 17:25:57 +0000 (10:25 -0700)]
Cleaned up for release.
* .gitignore, doc/.gitignore, src/.gitignore:
These versions are perhaps too narrow. They are just sufficient for a
i386-linux build.
* doc/user-manual/user.texinfo:
Quieted a bogus texinfo warning with whitespace.
* src/microcode/Tags.sh:
`make tags' in src/ (the src/Tags.sh script) expects a Tags.sh in all
SUBDIR.
* src/microcode/configure.ac:
Avoid duplicate prbfish and prmd5 in MODULE_BASES, to quiet a make
warning. I do not see why this is happening, but it is happening in
master as well.
Matt Birkholz [Fri, 15 May 2009 08:06:16 +0000 (01:06 -0700)]
Simplified interrupt frobination. Fixed malloced-aliens cleanup.
* src/microcode/pruxffi.c:
Punted fiddling the interrupt mask in callback_run_kernel and(!)
callback_run_handler. It should already be set up by the callout.
* src/runtime/ffi.scm, src/runtime/runtime.pkg:
Punted without-timer-interrupts; used without-interrupts instead.
Push malloced-aliens atomically. Fixed bug in call to c-free.
Actually register the free-malloced-aliens gc-daemon.
Matt Birkholz [Fri, 15 May 2009 06:31:31 +0000 (23:31 -0700)]
Foreign Function Interface, as released 2009-03-18.
* doc/Makefile.in:
Include ffi in SUBDIRS. Fixed a command that halted `make install`
whenever $(DESTDIR)$(infodir)/dir existed.
* doc/configure.ac:
Include ffi/Makefile.
* doc/ffi/Makefile.in:
Build the Users' Manual for the FFI.
* doc/ffi/ffi.texinfo:
The Users' Manual for the FFI.
* doc/index.html:
Include mit-scheme-ffi/index.html, and an $Id:$ stamp.
* src/Makefile.in:
Optimistically included ffi in LIARC_BUNDLES. Use --batch-mode more.
* src/README.txt:
Punted mention of bchscheme. Describe ffi as part of the core.
* src/Setup.sh:
Include ffi in INSTALLED_SUBDIRS. Create lib/mit-scheme.h and
lib/ffi.
* src/configure.ac:
Include ffi/Makefile. Include ffi in liarc BUNDLEs.
* src/etc/compile.scm:
Include ffi in list for compile-dir.
* src/etc/create-makefiles.sh:
Include ffi in BUNDLES. Use --batch-mode.
* src/etc/optiondb.scm:
Define loadable option 'FFI.
* src/ffi/Makefile-fragment:
Install the FFI. Show how to build the example.
* src/ffi/: cdecls.scm, compile.scm, ctypes.scm, ed-ffi.scm, ffi.pkg,
generator.scm, load.scm, syntax.scm:
The FFI .cdecl file reader, syntax expanders and trampoline generator.
* src/ffi/prhello.cdecl, src/ffi/prhello.scm:
The example, Gtk 2.0, primitive "Hello, World!" program.
* src/microcode/boot.c:
Initialize the C data stack (ffi_obstack) alongside scratch_obstack.
Give Interpret() a pop_return_p argument.
* src/microcode/configure.ac:
Include pruxffi whenever pruxdld is available.
* src/microcode/const.h:
Declare PRIM_RETURN_TO_C and PRIM_ABORT_TO_C -- two new ways to exit
the interpreter that leave it ready for re-entry via Interpret(1).
* src/microcode/extern.h:
Declare ffi_obstack, find_primitive_cname, and a pop_return_p
parameter to Interpret().
* src/microcode/fixobj.h, src/microcode/utabmd.scm:
Include a CALLBACK-HANDLER slot in the fixed objects vector.
* src/microcode/interp.c:
Added a pop_return_p parameter to Interpret(). Implemented the new
PRIM_RETURN_TO_C and PRIM_ABORT_TO_C aborts.
* src/microcode/makegen/Makefile.in.in:
Install mit-scheme.h.
* src/microcode/makegen/files-optional.scm:
Include pruxffi in the list.
* src/microcode/primutl.c:
Needed a find_primitive_cname function taking a C string. A similar
function, find_primitive, already takes a Scheme string. Modified it
into find_primitive_cname, in terms of which find_primitive was easily
re-implemented.
* src/microcode/pruxdld.c:
Failed function is "dlsym", not "dlopen", in dld_lookup.
* src/microcode/pruxffi.c, src/microcode/pruxffi.h:
The FFI's C/Unix primitives.
* src/runtime/ed-ffi.scm, src/runtime/ffi.scm:
Runtime support for the FFI: aliens, alien-functions, malloc/free, a
callback-handler...
* src/runtime/make.scm:
Include (runtime ffi) in the package-initialization-sequence.
* src/runtime/runtime.pkg:
Declare a (runtime ffi) package, with a link to without-preemption in
(runtime thread).
* src/runtime/thread.scm:
Added the without-timer-interrupts procedure for use by the call-alien
procedure in (runtime ffi). This halts thread switching during the
callout, forcing all chains of callouts interrupted by callbacks who
make callouts that are interrupted by callbacks... to run in one
thread, preserving the order imposed by one C stack. If two
callbacks, "Newer" nested inside "Older" on the C stack, are running
in two Scheme threads, Scheme could proceed with Older before Newer,
returning a value for Older to a callback trampoline expecting the
value of Newer. Blam!
Chris Hanson [Mon, 18 May 2009 09:36:24 +0000 (02:36 -0700)]
Provide abstractions for writing copyright and license statements.
These are useful for generating code files.
Chris Hanson [Mon, 18 May 2009 09:34:48 +0000 (02:34 -0700)]
Ignore .edwin-ffi files.
Chris Hanson [Sat, 9 May 2009 23:21:16 +0000 (16:21 -0700)]
Fix thinko.
Chris Hanson [Sat, 9 May 2009 23:20:23 +0000 (16:20 -0700)]
Ignore LOG file.
Chris Hanson [Sat, 9 May 2009 23:20:00 +0000 (16:20 -0700)]
Add script to generate git log.
Chris Hanson [Sat, 9 May 2009 23:05:42 +0000 (16:05 -0700)]
Add .gitignore
Chris Hanson [Sat, 9 May 2009 21:16:21 +0000 (14:16 -0700)]
Eliminate v7 directory, moving subdirs up one level.
Chris Hanson [Sat, 9 May 2009 21:07:05 +0000 (14:07 -0700)]
Fix typo in MIME:PARSE-MULTIPART-PARTS-1.
Chris Hanson [Sat, 9 May 2009 21:06:41 +0000 (14:06 -0700)]
Fix bug: read-substring wasn't updating the buffer position.
Taylor R. Campbell [Fri, 1 May 2009 20:04:45 +0000 (20:04 +0000)]
Don't enable blowfish and MD5 support if the OpenSSL header files
are unavailable.
Taylor R. Campbell [Fri, 1 May 2009 17:50:05 +0000 (17:50 +0000)]
ARCH is not spelled with a G.
Taylor R. Campbell [Fri, 1 May 2009 12:47:08 +0000 (12:47 +0000)]
Write only permanent flags, not all flags, in RMAIL attribute lines.
Taylor R. Campbell [Thu, 30 Apr 2009 18:00:51 +0000 (18:00 +0000)]
Don't clear AS_FLAGS, so that it can be passed to configure.
Taylor R. Campbell [Thu, 30 Apr 2009 17:52:36 +0000 (17:52 +0000)]
Add comment about disagreement between compiler and microcode over
architecture names.
Taylor R. Campbell [Thu, 30 Apr 2009 17:48:45 +0000 (17:48 +0000)]
Allow --enable-native-code=ARCH to specify a particular native-code
architecture when multiple can coexist on a single machine (e.g.,
x86_64, i386, and C).
Taylor R. Campbell [Wed, 29 Apr 2009 23:00:02 +0000 (23:00 +0000)]
Reflect changes made on AFS: Use `touch -r', not `chtime'.
Taylor R. Campbell [Wed, 29 Apr 2009 18:34:55 +0000 (18:34 +0000)]
Call %MAYBE-TOGGLE-THREAD-TIMER after registering a timer event.
mhb [Tue, 28 Apr 2009 23:10:02 +0000 (23:10 +0000)]
Added mhb (Matt Birkholz).
mhb [Tue, 28 Apr 2009 22:10:26 +0000 (22:10 +0000)]
New, optional argument to simple-command-line-parser and
argument-command-line-parser.
Taylor R. Campbell [Mon, 27 Apr 2009 23:40:57 +0000 (23:40 +0000)]
Use UX_prim_check_fd_errno to check errors after accept(2) so that
file descriptor exhaustion can trigger garbage collection.
Taylor R. Campbell [Sun, 26 Apr 2009 00:28:49 +0000 (00:28 +0000)]
Gracefully handle recursive locking of folders' caches.
Taylor R. Campbell [Sat, 25 Apr 2009 23:47:08 +0000 (23:47 +0000)]
Simplify use of DECORATED-STRING-APPEND.
Taylor R. Campbell [Sat, 25 Apr 2009 23:43:31 +0000 (23:43 +0000)]
Break last page into two.
Taylor R. Campbell [Sat, 25 Apr 2009 23:40:00 +0000 (23:40 +0000)]
Add support for multiline descriptions in SIMPLE-COMMAND-LINE-PARSER
and ARGUMENT-COMMAND-LINE-PARSER. Change verbs to present tense, to
match microcode option descriptions, and elaborate on some options.
Taylor R. Campbell [Sat, 25 Apr 2009 23:17:04 +0000 (23:17 +0000)]
Fix typos in option summary. For `--version', use PACKAGE_STRING,
rather than copying it in a format string with PACKAGE_VERSION.
mhb [Sat, 25 Apr 2009 03:38:12 +0000 (03:38 +0000)]
Added a doc. string for the --edit command line option.
mhb [Sat, 25 Apr 2009 03:37:52 +0000 (03:37 +0000)]
Punt the usual start_scheme announcements when --version or --help is
among the machine options.
mhb [Sat, 25 Apr 2009 03:37:27 +0000 (03:37 +0000)]
Removed mention of bchscheme, --compiler and --edwin. Mention --help
and --version. Removed ancient default values and emphasized
--option-summary.
mhb [Sat, 25 Apr 2009 03:35:45 +0000 (03:35 +0000)]
Added GNUish options --help, --quiet, --silent and --version.
Converted old comment about machine options into new function
print_help(). Hack argv at the end of parse_options() to get --help
and --version through to the band. (Ick.)
mhb [Sat, 25 Apr 2009 03:35:02 +0000 (03:35 +0000)]
Added optional argument for set-command-line-parser!,
simple-command-line-parser, and argument-command-line-parser -- a
short string describing the command line option. These are displayed
by a new --help command line parser. A new --version parser just
exits, assuming identify-world has already done the right thing.
Taylor R. Campbell [Thu, 23 Apr 2009 23:49:41 +0000 (23:49 +0000)]
Fix whitespace.
Taylor R. Campbell [Thu, 16 Apr 2009 13:06:31 +0000 (13:06 +0000)]
Fix whitespace.
Taylor R. Campbell [Wed, 15 Apr 2009 19:30:53 +0000 (19:30 +0000)]
New primitive NEW-MAKE-PIPE does what MAKE-PIPE does but stores its
results in weak pairs so that it can be used with GC finalizers. Use
this in the runtime's MAKE-PIPE procedure so that interrupts need not
be disabled, and file descriptor exhaustion can trigger garbage
collection which can trigger GC daemons that close files.
Taylor R. Campbell [Wed, 15 Apr 2009 19:19:40 +0000 (19:19 +0000)]
Use the argument count, not the operand count (which includes the
continuation), when reporting arity mismatch warnings.
Taylor R. Campbell [Wed, 15 Apr 2009 13:33:41 +0000 (13:33 +0000)]
New macro STD_FD_VOID_SYSTEM_CALL to be used after system calls that
create file descriptors but yield them in some way other than as
their return values, such as pipe(2). Use this in OS_make_pipe so
that the file exhaustion state is maintained correctly.
Taylor R. Campbell [Wed, 15 Apr 2009 13:09:20 +0000 (13:09 +0000)]
Fix mistake in previous commit: STD_FD_SYSTEM_CALL needs to record
that we are not out of files if the system call succeeds so that the
loop detection in UX_prim_check_fd_errno actually works.
Taylor R. Campbell [Wed, 15 Apr 2009 13:00:32 +0000 (13:00 +0000)]
New function UX_prim_check_fd_errno to to be used after a system call
that creates file descriptors fails. If errno is EMFILE or ENFILE,
this requests a garbage collection in case any unreferenced file
descriptors can be closed. Change OS_make_pipe to call this if
pipe(2) fails.
New macro STD_FD_SYSTEM_CALL is like STD_UINT_SYSTEM_CALL but uses
UX_prim_check_fd_errno rather than UX_prim_check_errno. Change
OS_open_*_file and OS_open_*_socket to use STD_FD_SYSTEM_CALL to call
open(2) and socket(2).
Change STD_*_SYSTEM_CALL to use do/while rather than braces for
compound statements and to call UX_prim_check_errno rather than
copying it in-line.
Taylor R. Campbell [Wed, 15 Apr 2009 03:02:48 +0000 (03:02 +0000)]
If open(2) fails with EMFILE or ENFILE, trigger a garbage collection
to attempt to free up file descriptors, but avoid looping in this
state if there really are too many open file descriptors still
referenced.
Taylor R. Campbell [Sat, 4 Apr 2009 18:41:23 +0000 (18:41 +0000)]
Use COMPILER:NOISY? to toggle whether to echo liarc-cc and liarc-ld
output. Eliminate non-exported COMPILER:INVOKE-VERBOSE? variable
whose purpose has been hereby subsumed.
Taylor R. Campbell [Sun, 22 Mar 2009 16:12:41 +0000 (16:12 +0000)]
Add (GLOBAL-DEFINITIONS "../sf/sf") to compiler.pkg.
Taylor R. Campbell [Sat, 21 Mar 2009 22:10:28 +0000 (22:10 +0000)]
Simplify invocations of the stat-like system calls and deliver
pending interrupts on EINTR.
Taylor R. Campbell [Sat, 21 Mar 2009 21:23:22 +0000 (21:23 +0000)]
Call fsync_range more carefully. It differs between NetBSD and AIX,
and FDISKSYNC was added after fsync_range to NetBSD. Someone else
will need to test the AIX code (ha).
Taylor R. Campbell [Sat, 21 Mar 2009 19:34:27 +0000 (19:34 +0000)]
Change CHANNEL-SYNCHRONIZE so that it is a no-op on files not backed
by permanent storage.
Taylor R. Campbell [Sat, 21 Mar 2009 16:50:26 +0000 (16:50 +0000)]
New output port operation SYNCHRONIZE-OUTPUT requests all data output
to be forced to permanent storage. Implement this for generic I/O
ports using the CHANNEL-SYNCHRONIZE primitive. Call this in Edwin
after writing regions to files on disk.
Taylor R. Campbell [Sat, 21 Mar 2009 16:28:35 +0000 (16:28 +0000)]
Signal a better error in PORT-POSITION and SET-PORT-POSITION! if the
port does not support these operations.
Taylor R. Campbell [Sat, 21 Mar 2009 08:06:00 +0000 (08:06 +0000)]
Periodically synchronize only the tty's x and y sizes. Initialize
the command strings only once; they are unlikely to change, and used
in signal handlers.
Taylor R. Campbell [Sat, 21 Mar 2009 07:34:36 +0000 (07:34 +0000)]
Change UX_reinitialize_tty so that it only sets a flag which code
will later check. UX_reinitialize_tty is called in a signal handler,
so it shouldn't do anything interesting, such as invoking termcap
library routines.
Taylor R. Campbell [Sat, 21 Mar 2009 07:14:23 +0000 (07:14 +0000)]
Fix same typo in OPEN-EXCLUSIVE-BINARY-OUTPUT-FILE.
Taylor R. Campbell [Sat, 21 Mar 2009 07:13:43 +0000 (07:13 +0000)]
Fix typo in definition of OPEN-EXCLUSIVE-OUTPUT-FILE.
Taylor R. Campbell [Sat, 21 Mar 2009 07:09:09 +0000 (07:09 +0000)]
New primitives for fsync and exclusive output files.
The primitive procedure CHANNEL-SYNCHRONIZE attempts to guarantee
that any data associated with the channel are written to permanent
storage. Passing channels not backed by files in permanent storage
is currently an error, but perhaps should be a no-op instead. This
procedure does what the fsync system call ought to do, which on most
operating systems it does not necessarily do; this procedure attempts
various different methods from different operating systems to ensure
that data are written to disk and that any disk caches for them are
forced to physical media.
New procedures OPEN-EXCLUSIVE-OUTPUT-FILE and CALL-WITH-*, WITH-*
variants, and binary output file variants, create files at pathnames
that currently have no links, or signal errors if they do. Errors on
opening files now establish restarts to replace pathnames.
These new primitives are implemented only on Unix; Windows and OS/2
implementations are missing.
Taylor R. Campbell [Sat, 21 Mar 2009 06:27:27 +0000 (06:27 +0000)]
(GARBAGE-COLLECT) Fix quotes in the documentation string. Set
heap_reserved only if the argument is valid, and if so also set
heap_alloc_limit.
Taylor R. Campbell [Sat, 14 Mar 2009 19:52:18 +0000 (19:52 +0000)]
Upcase the switch `on' in `#pragma STDC FENV_ACCESS ON'. Fixes
Savannah bug #25867.
Taylor R. Campbell [Tue, 10 Mar 2009 05:13:24 +0000 (05:13 +0000)]
Check, or ignore by casting to void, the values returned by system
calls in OS_make_subprocess, and kill the child if they fail. To
change the working directory, the parent really ought to open the
directory to check for errors before calling fchdir(2) in the child,
but this will do for now.
Taylor R. Campbell [Mon, 9 Mar 2009 21:35:52 +0000 (21:35 +0000)]
In OS_process_clock and OS_real_time_clock, don't signal errors, and
handle interrupted system calls more robustly. This prevents the
symptom exhibited by Savannah bug #17452 (which is probably really a
bug in the Linux kernel).
Taylor R. Campbell [Mon, 9 Mar 2009 03:46:22 +0000 (03:46 +0000)]
In batch mode, suppress loading notifications for `--load' arguments.
Taylor R. Campbell [Sun, 8 Mar 2009 21:47:00 +0000 (21:47 +0000)]
Use $< and $@ rather than $* because GNU make and BSD make have
different interpretations of $* but seem to agree on $< and $@ for
the ways we use them. POSIX agrees too.
Taylor R. Campbell [Sun, 8 Mar 2009 02:25:06 +0000 (02:25 +0000)]
Avoid consing in the secondary GC daemon DISCARD-DEBUGGING-INFO!.
Fix whitespace mistakes in previous changes.
Taylor R. Campbell [Sun, 8 Mar 2009 00:02:09 +0000 (00:02 +0000)]
In the STD_*_SYSTEM_CALL macros, if the system call returns EINTR,
deliver pending Scheme interrupts. This prevents most system calls
from indefinitely blocking all Scheme threads and keyboard
interruptions.
Taylor R. Campbell [Sat, 7 Mar 2009 22:03:38 +0000 (22:03 +0000)]
Info files are now stored in the `info/' subdirectory of the Edwin
system library directory. Reflect this in EDWIN-INFO-DIRECTORY.
Taylor R. Campbell [Thu, 5 Mar 2009 20:09:21 +0000 (20:09 +0000)]
Suffix a colon to the value of the TERMCAP environment variable.
Taylor R. Campbell [Tue, 24 Feb 2009 23:09:56 +0000 (23:09 +0000)]
Re-enable open-coding of FLONUM-ASIN and FLONUM-ACOS on i386, and
implement FLONUM-EXP using F2XM1 for the fractional part and FSCALE for
the integral part of the argument. This about trebles the speed of
these primitives in compiled code, without giving answers substantially
different from what the microcode computes.
When open-coding of FLONUM-EXP was disabled in 1992, a comment was
added to the effect that some i387 implementations had bugs in their
F2XM1 instructions. I imagine that these bugs have been fixed in more
recent hardware, and that few users care about seventeen-year-old i387
units. If this is a problem we can always disable it again.
Taylor R. Campbell [Mon, 23 Feb 2009 22:40:12 +0000 (22:40 +0000)]
In FIXNUM-LSH, if the count exceeds the Scheme datum width in absolute
value, return zero. Intel's brain-damaged shift instructions on the
i386 and later (but not the 8086 -- go figure) ignore all but the
low-order five bits of the count.
Chris Hanson [Mon, 23 Feb 2009 02:02:44 +0000 (02:02 +0000)]
Annotate compiled-code binary files with sets of bound and free names.
This allows the loader to incorporate a "module system".
Chris Hanson [Sun, 22 Feb 2009 09:00:47 +0000 (09:00 +0000)]
Implement primitive to read linkage-section info.
Taylor R. Campbell [Fri, 20 Feb 2009 13:34:17 +0000 (13:34 +0000)]
Fix last change so that non-empty blank nodes are not errors.
Remove out-of-date comment.
Chris Hanson [Thu, 19 Feb 2009 05:27:40 +0000 (05:27 +0000)]
Type check args to scode procedures.
Taylor R. Campbell [Wed, 18 Feb 2009 07:57:41 +0000 (07:57 +0000)]
Fix parsing and unparsing XML-RPC's `dateTime.iso8601' format, which
might be a confused, bastard hybrid of ISO 8601's extended and basic
formats without time zones, depending on how strictly one reads the
`specification'. Accept liberally, generate conservatively, &c.
Yechhh.
Taylor R. Campbell [Wed, 18 Feb 2009 07:46:59 +0000 (07:46 +0000)]
Name the lisppaste message pop-up buffer `*lisppaste*', not
`*lisppaste-error*', since the message is not necessarily of an
error.
Taylor R. Campbell [Mon, 16 Feb 2009 15:18:11 +0000 (15:18 +0000)]
Eliminate spurious semicolon in EXIT_CRITICAL_SECTION.
Taylor R. Campbell [Wed, 11 Feb 2009 02:42:38 +0000 (02:42 +0000)]
Use generic arithmetic for external string indices.
Taylor R. Campbell [Thu, 5 Feb 2009 02:09:14 +0000 (02:09 +0000)]
Add `.so' to the list of file extensions ignored by completion.
Arthur Gleckler [Wed, 4 Feb 2009 16:00:45 +0000 (16:00 +0000)]
Added POSITION operation back to string output ports. My earlier implementation had been removed.
Taylor R. Campbell [Tue, 3 Feb 2009 03:33:44 +0000 (03:33 +0000)]
When signalling an error for primitive invocations with incorrect
numbers of arguments, omit the arity from the irritants, since we no
longer have it.
Taylor R. Campbell [Tue, 3 Feb 2009 01:42:10 +0000 (01:42 +0000)]
Parse malformed multipart parts as application/octet-stream, not by
exploding.
Taylor R. Campbell [Tue, 3 Feb 2009 01:33:16 +0000 (01:33 +0000)]
There is no (EDWIN IMAIL MIME) package. imail-mime.scm is in the
(EDWIN IMAIL) package.
Taylor R. Campbell [Tue, 3 Feb 2009 01:16:52 +0000 (01:16 +0000)]
Ask STRING? before calling STRING-LENGTH when parsing tokenized
header fields.
Taylor R. Campbell [Mon, 2 Feb 2009 20:09:20 +0000 (20:09 +0000)]
Fix more mistaken references to top-level variables for primitives.
Taylor R. Campbell [Mon, 2 Feb 2009 20:06:33 +0000 (20:06 +0000)]
Use SCODE/PRIMITIVE-PROCEDURE?, not PRIMITIVE-PROCEDURE?, before
calling PRIMITIVE-PROCEDURE-NAME or PRIMITIVE-PROCEDURE-ARITY in the
compiler. The SCODE/ variant excludes the compiled error procedure
`primitive', which is actually a string employed as a token, not a
primitive proper.
Taylor R. Campbell [Mon, 2 Feb 2009 19:42:46 +0000 (19:42 +0000)]
Fix another CONS -> (UCODE-PRIMITIVE CONS).
Taylor R. Campbell [Mon, 2 Feb 2009 16:02:17 +0000 (16:02 +0000)]
Use the CONS primitive, not the value of the top-level variable named
CONS, to detect error combinations. Use PRIMITIVE-ARITY-CORRECT?
during RTL generation to check primitive arities, so that error
combinations are handled correctly.
Taylor R. Campbell [Mon, 2 Feb 2009 15:33:38 +0000 (15:33 +0000)]
When testing for combinations of NOT and GENERAL-CAR-CDR, refer to
the primitives, not to the values of the top-level variables by those
names.
Taylor R. Campbell [Mon, 2 Feb 2009 15:03:21 +0000 (15:03 +0000)]
Expand the list of declarations known to be handled by the compiler.
Taylor R. Campbell [Thu, 15 Jan 2009 16:32:17 +0000 (16:32 +0000)]
(FIX:> 0 (STRING-LENGTH LINE)) is always false. No wonder leading
dots on lines were being eaten.
Taylor R. Campbell [Wed, 24 Dec 2008 01:40:12 +0000 (01:40 +0000)]
If a message's header claims a structure that is not reflected in the
body, and the IMAP server reports the body structure derived from the
message's header but returns NIL for a part when it fails to parse the
body, treat that part part as empty.
Taylor R. Campbell [Fri, 12 Dec 2008 20:22:03 +0000 (20:22 +0000)]
Add the name #\formfeed to #\U+0C.
Taylor R. Campbell [Sat, 6 Dec 2008 23:00:31 +0000 (23:00 +0000)]
Pass the history to MAKE-KEYWORD-VALUE-ITEM.
Taylor R. Campbell [Sat, 6 Dec 2008 19:42:15 +0000 (19:42 +0000)]
Store histories with keyword value items so that passing them to
ILLEGAL-EXPRESSION-ITEM will report errors with useful messages.
Taylor R. Campbell [Tue, 2 Dec 2008 22:19:34 +0000 (22:19 +0000)]
Exclude \Recent flags from STORE and APPEND commands and from IMAP
messages' permanent flags for filing to other folders. Include all
other flags, even if the server will not store them permanently. The
PERMANENTFLAGS list is no longer used for any purpose.
Taylor R. Campbell [Wed, 12 Nov 2008 03:14:33 +0000 (03:14 +0000)]
Unstackify the components of rectangular numbers in the right order.
Chris Hanson [Wed, 29 Oct 2008 02:19:24 +0000 (02:19 +0000)]
Don't follow semicolon by space in parameter lists.
Chris Hanson [Sun, 26 Oct 2008 23:35:24 +0000 (23:35 +0000)]
Allow XML I/O on ports that don't support coding.
Chris Hanson [Sun, 26 Oct 2008 23:30:38 +0000 (23:30 +0000)]
Add FRESH-LINE operation.
Chris Hanson [Sun, 26 Oct 2008 20:14:34 +0000 (20:14 +0000)]
On input, allow any combination of ISO 8601 basic and extended
formats. This compensates for broken xml-rpc "spec".
Taylor R. Campbell [Thu, 23 Oct 2008 19:07:03 +0000 (19:07 +0000)]
New variable DEFAULT-MIME-TEXT-CHARSET to support specifying charsets
other than ISO-8859-1 in MIME text attachments. The existing
behaviour is preserved; set this variable to the symbol PROMPT to
change it. This is not carefully conceived, but I need it this hour!
Taylor R. Campbell [Sun, 19 Oct 2008 01:56:01 +0000 (01:56 +0000)]
Remove spurious parameter in STRINGIFY-DATA/TRADITIONAL, as a vestige
of earlier changes. This bug had no effect except when explicitly
setting *USE-STACKIFY?* to true, which nothing in the system does at
the moment.
Taylor R. Campbell [Sat, 18 Oct 2008 21:20:25 +0000 (21:20 +0000)]
Minor improvements.