mit-scheme.git
16 years agoChange DETERMINE-CODING to use the new prefix mechanism of the parser
Chris Hanson [Mon, 18 Aug 2008 06:59:42 +0000 (06:59 +0000)]
Change DETERMINE-CODING to use the new prefix mechanism of the parser
buffer.

16 years agoAdd optional argument to INPUT-PORT->PARSER-BUFFER so that a prefix
Chris Hanson [Mon, 18 Aug 2008 06:56:14 +0000 (06:56 +0000)]
Add optional argument to INPUT-PORT->PARSER-BUFFER so that a prefix
string can be specified.  This is needed for injecting readahead from
a previous process -- for example, character coding detection.

16 years agoin PROVIDE-INPUT-FEATURES, don't advertise operations that aren't
Chris Hanson [Mon, 18 Aug 2008 06:40:18 +0000 (06:40 +0000)]
in PROVIDE-INPUT-FEATURES, don't advertise operations that aren't
supported.

16 years agoSimplify DETERMINE-CODING.
Chris Hanson [Mon, 18 Aug 2008 00:19:46 +0000 (00:19 +0000)]
Simplify DETERMINE-CODING.

16 years agoUse UTF-16 surrogate support.
Chris Hanson [Mon, 18 Aug 2008 00:15:17 +0000 (00:15 +0000)]
Use UTF-16 surrogate support.

16 years agoExport procedures for managing UTF-16 surrogate pairs.
Chris Hanson [Mon, 18 Aug 2008 00:12:53 +0000 (00:12 +0000)]
Export procedures for managing UTF-16 surrogate pairs.

16 years agoFix fencepost error in UNICODE-CODE-POINT?.
Chris Hanson [Sun, 17 Aug 2008 09:42:29 +0000 (09:42 +0000)]
Fix fencepost error in UNICODE-CODE-POINT?.

16 years agoRevert previous change to close I/O ports of subprocesses when they
Taylor R. Campbell [Sat, 16 Aug 2008 17:57:11 +0000 (17:57 +0000)]
Revert previous change to close I/O ports of subprocesses when they
exit.

16 years agoUse MAKE-INITIALIZED-MAIL-BUFFER rather than MAKE-MAIL-BUFFER.
Taylor R. Campbell [Fri, 15 Aug 2008 22:46:42 +0000 (22:46 +0000)]
Use MAKE-INITIALIZED-MAIL-BUFFER rather than MAKE-MAIL-BUFFER.
Initialization is separate from selection.

16 years agoNew procedure MAKE-INITIALIZED-MAIL-BUFFER creates a mail buffer and
Taylor R. Campbell [Fri, 15 Aug 2008 20:46:12 +0000 (20:46 +0000)]
New procedure MAKE-INITIALIZED-MAIL-BUFFER creates a mail buffer and
initializes it with a user-supplied initialization procedure, after it
is created or after confirmation to discard the contents of any
existing mail buffer.

16 years agoSplit COMPUTE-MIME-MESSAGE-OUTLINE's method on <MIME-BODY> into one on
Taylor R. Campbell [Fri, 15 Aug 2008 17:08:10 +0000 (17:08 +0000)]
Split COMPUTE-MIME-MESSAGE-OUTLINE's method on <MIME-BODY> into one on
<MIME-BODY> and one on <MIME-BODY-ONE-PART>, so that the method on the
more general <MIME-BODY> will not accidentally call procedures
applicable only to <MIME-BODY-ONE-PART> instances.

16 years agoRearrange MIME part parsing entry points so that MIME:PARSE-PART can
Taylor R. Campbell [Fri, 15 Aug 2008 15:44:37 +0000 (15:44 +0000)]
Rearrange MIME part parsing entry points so that MIME:PARSE-PART can
be used to parse parts with and without headers, rather than embedding
that logic in MIME:PARSE-PARTS.

16 years agoWhen making new cache entries, write them to a file in a temporary
Taylor R. Campbell [Tue, 12 Aug 2008 01:46:53 +0000 (01:46 +0000)]
When making new cache entries, write them to a file in a temporary
directory first, and move the file to its permanent location only
after it has been fully written.  This prevents C-g from leaving
half-written cache entries.  (File folders should perhaps do this too,
but it is not clear where the temporary directory should be located,
and using /tmp or /var/tmp is not appropriate, since those directories
may reside on another file system, rendering rename(2) useless.)

16 years agoRemove or ignore the now unused variables since the last commit.
Taylor R. Campbell [Tue, 12 Aug 2008 01:36:52 +0000 (01:36 +0000)]
Remove or ignore the now unused variables since the last commit.

16 years agoRemove vestige of progress metering in CACHE-FOLDER-CONTENTS. The
Taylor R. Campbell [Tue, 12 Aug 2008 00:49:03 +0000 (00:49 +0000)]
Remove vestige of progress metering in CACHE-FOLDER-CONTENTS.  The
procedures that fetch the body parts already indicate their progress
with the message indices, and would overwrite a meter of the cache's
progress anyway except for fractions of seconds between messages.

16 years agoRetain names with addresses when replying to mail.
Taylor R. Campbell [Mon, 11 Aug 2008 22:48:50 +0000 (22:48 +0000)]
Retain names with addresses when replying to mail.

16 years agoUse APPEND-MAP, not MAP, over the list of internal header fields in
Taylor R. Campbell [Mon, 11 Aug 2008 22:27:26 +0000 (22:27 +0000)]
Use APPEND-MAP, not MAP, over the list of internal header fields in
HEADER-FIELDS->MESSAGE-FLAGS: BURST-STRING returns a list of flags
each time, the collection of which we want to concatenate before
deleting duplicates.

16 years agoPreload folder outlines before popping up a summary of messages to
Taylor R. Campbell [Mon, 11 Aug 2008 17:53:51 +0000 (17:53 +0000)]
Preload folder outlines before popping up a summary of messages to
expunge.

16 years agoRemember what IMAP message keywords have been cached on disk, and
Taylor R. Campbell [Mon, 11 Aug 2008 17:51:12 +0000 (17:51 +0000)]
Remember what IMAP message keywords have been cached on disk, and
avoid stat(2)ing the cache files if we already expect them to exist.
This dramatically expedites repeated scanning of the message cache
(for preloading folder outlines when sorting or summarizing).

16 years agoIn GUARANTEE-IMAP-FOLDER-OPEN, send a SELECT command if the folder's
Taylor R. Campbell [Mon, 11 Aug 2008 17:44:50 +0000 (17:44 +0000)]
In GUARANTEE-IMAP-FOLDER-OPEN, send a SELECT command if the folder's
messages are not synchronized.  This fixes

   (with-open-resource <url> folder-length)
   ;Value: 0

where <url> is an IMAP URL for a folder that was recently open.

16 years agoChange IMAIL-READ-FLAG to use visible defaults, rather than inserted
Taylor R. Campbell [Fri, 8 Aug 2008 03:40:49 +0000 (03:40 +0000)]
Change IMAIL-READ-FLAG to use visible defaults, rather than inserted
defaults, and to specify the history index, so that the prompting
facility will select a default at all.

16 years agoClosing string and octet ports is a no-op, so don't bother closing in
Chris Hanson [Thu, 31 Jul 2008 05:23:39 +0000 (05:23 +0000)]
Closing string and octet ports is a no-op, so don't bother closing in
CALL-WITH-INPUT-STRING and CALL-WITH-INPUT-OCTETS.

16 years agoEliminate now-unused helper procedures.
Chris Hanson [Thu, 31 Jul 2008 05:22:03 +0000 (05:22 +0000)]
Eliminate now-unused helper procedures.

16 years agoChange mime-type parsing to use parser language; export the relevant
Chris Hanson [Sun, 27 Jul 2008 04:24:26 +0000 (04:24 +0000)]
Change mime-type parsing to use parser language; export the relevant
matchers and parsers.

16 years agoExport CHAR-SET:MIME-TOKEN.
Chris Hanson [Sat, 26 Jul 2008 22:53:55 +0000 (22:53 +0000)]
Export CHAR-SET:MIME-TOKEN.

16 years agoExport STRING-IS-MIME-TOKEN? and STRING-IS-MIME-TYPE?, and add
Chris Hanson [Sat, 26 Jul 2008 22:51:29 +0000 (22:51 +0000)]
Export STRING-IS-MIME-TOKEN? and STRING-IS-MIME-TYPE?, and add
substring args to them.

16 years agoAdd HTTP line ending.
Chris Hanson [Sat, 26 Jul 2008 20:35:25 +0000 (20:35 +0000)]
Add HTTP line ending.

16 years agoProvide better error for invalid match index in RE-MATCH-EXTRACT.
Chris Hanson [Sat, 26 Jul 2008 07:10:27 +0000 (07:10 +0000)]
Provide better error for invalid match index in RE-MATCH-EXTRACT.

16 years agoFix CALL-WITH-TRUNCATED-OUTPUT-STRING: return type plain wrong.
Chris Hanson [Sat, 26 Jul 2008 07:02:12 +0000 (07:02 +0000)]
Fix CALL-WITH-TRUNCATED-OUTPUT-STRING: return type plain wrong.

16 years agoFix stupid typo in CALL-WITH-TRUNCATED-OUTPUT-PORT.
Chris Hanson [Sat, 26 Jul 2008 07:01:34 +0000 (07:01 +0000)]
Fix stupid typo in CALL-WITH-TRUNCATED-OUTPUT-PORT.

16 years agoRename 'bytes' I/O to 'octets'.
Chris Hanson [Sat, 26 Jul 2008 05:45:36 +0000 (05:45 +0000)]
Rename 'bytes' I/O to 'octets'.

16 years agoEliminate port operations {READ,WRITE}-{WIDE,EXTERNAL}-SUBSTRING by
Chris Hanson [Sat, 26 Jul 2008 05:12:20 +0000 (05:12 +0000)]
Eliminate port operations {READ,WRITE}-{WIDE,EXTERNAL}-SUBSTRING by
pushing the functionality into the {READ,WRITE}-SUBSTRING operations.

16 years agoFix input transcription problem that was introduced in revision 1.55.
Chris Hanson [Thu, 24 Jul 2008 06:58:08 +0000 (06:58 +0000)]
Fix input transcription problem that was introduced in revision 1.55.

16 years agoEliminate explicit operations on wide and external strings (part 1):
Chris Hanson [Wed, 23 Jul 2008 11:12:34 +0000 (11:12 +0000)]
Eliminate explicit operations on wide and external strings (part 1):
remove INPUT-PORT/READ-{WIDE,EXTERNAL}-SUBSTRING! and
OUTPUT-PORT/WRITE-{WIDE,EXTERNAL}-SUBSTRING.  (Part 2 will push this
multiplexing down into the port operations themselves.)

16 years agoBroaden definitions of XSTRING?, XSTRING-LENGTH, XSTRING-REF, and
Chris Hanson [Wed, 23 Jul 2008 11:10:56 +0000 (11:10 +0000)]
Broaden definitions of XSTRING?, XSTRING-LENGTH, XSTRING-REF, and
XSTRING-SET! to also handle wide strings.  Other xstring operations
aren't updated by this change, but will be soon.

16 years agoRewrite I/O string implementation to eliminate coding on strings --
Chris Hanson [Sat, 19 Jul 2008 01:41:18 +0000 (01:41 +0000)]
Rewrite I/O string implementation to eliminate coding on strings --
input from a string is just the characters in the string.  The old
string I/O is renamed to refer to byte vectors, and a collection of
convenience procedurs that use byte-vector I/O to do UTF-xx coding.
Additionally, rewrite unicode support to use these I/O ports to do
format conversions.

16 years agoEliminate reference to PORT/UNREAD by implementing UNREAD-CHAR
Chris Hanson [Sat, 19 Jul 2008 00:56:19 +0000 (00:56 +0000)]
Eliminate reference to PORT/UNREAD by implementing UNREAD-CHAR
operation.

16 years agoTighten up handling of UNREAD-CHAR: a READ-CHAR followed by any other
Chris Hanson [Fri, 18 Jul 2008 10:20:30 +0000 (10:20 +0000)]
Tighten up handling of UNREAD-CHAR: a READ-CHAR followed by any other
operation on the same port can prevent UNREAD-CHAR from working.

16 years agoEliminate cold-load call to SYMBOL->STRING.
Chris Hanson [Fri, 18 Jul 2008 10:18:00 +0000 (10:18 +0000)]
Eliminate cold-load call to SYMBOL->STRING.

16 years agoForce errors for coding operations when the given port doesn't support
Chris Hanson [Fri, 18 Jul 2008 10:16:54 +0000 (10:16 +0000)]
Force errors for coding operations when the given port doesn't support
them.

16 years agoChange terminology slight to emphasize that sources manipulate bytes
Chris Hanson [Mon, 14 Jul 2008 08:23:04 +0000 (08:23 +0000)]
Change terminology slight to emphasize that sources manipulate bytes
rather than characters.

16 years agoChange handling of PEEK-CHAR and UNREAD-CHAR so that it's done in the
Chris Hanson [Fri, 11 Jul 2008 05:26:43 +0000 (05:26 +0000)]
Change handling of PEEK-CHAR and UNREAD-CHAR so that it's done in the
generic I/O port operations.  This is easy to handle by simple hacking
of the byte-buffer indexes, and provides better semantics when the
port coding is changed on the fly.

This breaks transcripting, which must also be migrated to the generic
operations.

Add PEEK-CHAR and UNREAD-CHAR operations to ports that don't inherit
the generic operations.

16 years agoFix typo: ASCII -> US-ASCII. Eliminate unused loop binding.
Chris Hanson [Tue, 8 Jul 2008 10:36:17 +0000 (10:36 +0000)]
Fix typo: ASCII -> US-ASCII.  Eliminate unused loop binding.

16 years agoAdd a few char sets used in many RFCs.
Chris Hanson [Tue, 8 Jul 2008 06:14:43 +0000 (06:14 +0000)]
Add a few char sets used in many RFCs.

16 years agoUpdate (EDWIN IMAIL FRONT-END) package to reflect removal of Edwin
Taylor R. Campbell [Mon, 7 Jul 2008 01:36:24 +0000 (01:36 +0000)]
Update (EDWIN IMAIL FRONT-END) package to reflect removal of Edwin
variable IMAIL-PASS-PHRASE-RETENTION-TIME.

16 years agoRemove now unused Edwin variable IMAIL-PASS-PHRASE-RETENTION-TIME.
Taylor R. Campbell [Mon, 7 Jul 2008 01:35:44 +0000 (01:35 +0000)]
Remove now unused Edwin variable IMAIL-PASS-PHRASE-RETENTION-TIME.
This has been subsumed by PASS-PHRASE-RETENTION-TIME in Edwin proper
since the passphrase cache was moved there.

16 years agoEliminate problem where RMAIL and IMAIL are both trying to insert
Chris Hanson [Thu, 3 Jul 2008 20:08:15 +0000 (20:08 +0000)]
Eliminate problem where RMAIL and IMAIL are both trying to insert
internal headers at the beginning of the message, and then assuming
their own headers are first.  IMAIL now strips out all of its internal
headers when a message is read, regardless of their position, and
appends new ones to the end of the headers block when the message is
written.

16 years agoCheck for end of input from server in SMTP-READ-LINE, and deliver a
Taylor R. Campbell [Fri, 20 Jun 2008 06:10:13 +0000 (06:10 +0000)]
Check for end of input from server in SMTP-READ-LINE, and deliver a
sensible error message in that case.

16 years agoWhen attaching MIME info records to the buffer, respect nested MIME
Taylor R. Campbell [Fri, 20 Jun 2008 02:32:11 +0000 (02:32 +0000)]
When attaching MIME info records to the buffer, respect nested MIME
entities so that for each point in the buffer only the most specific
MIME entity is attached.  It would be nice if there were a variant of
REGION-PUT! that layered text properties `under' existing ones, but
since there isn't, we make do by scanning the text for the property
changes and associating records for parents wherever their children
had not been attached.

16 years agoUse the name LIAR/C to find the subsystem's version, not just LIAR.
Taylor R. Campbell [Wed, 18 Jun 2008 06:31:49 +0000 (06:31 +0000)]
Use the name LIAR/C to find the subsystem's version, not just LIAR.

16 years agoDon't inline sin, cos, or tan: Intel instruction has limit on operand.
Chris Hanson [Mon, 9 Jun 2008 01:39:29 +0000 (01:39 +0000)]
Don't inline sin, cos, or tan: Intel instruction has limit on operand.
Comment out and document disabled inlining rules.  Remove obsolete
alternative instruction sequences.

16 years agoEliminate use of kinit/aklog so this script can be run outside of
Chris Hanson [Tue, 20 May 2008 05:03:06 +0000 (05:03 +0000)]
Eliminate use of kinit/aklog so this script can be run outside of
cron.

16 years agoUse BODY.PEEK[...] rather than BODY[...] when fetching body parts to
Taylor R. Campbell [Mon, 19 May 2008 05:21:19 +0000 (05:21 +0000)]
Use BODY.PEEK[...] rather than BODY[...] when fetching body parts to
fill folders' caches, to avoid effects on \Seen flags.

16 years agoFix typo: the word `transact' has two `a's in it. Remarkably, I
Taylor R. Campbell [Mon, 19 May 2008 05:18:21 +0000 (05:18 +0000)]
Fix typo: the word `transact' has two `a's in it.  Remarkably, I
managed to mistype it in both the definition and use of TRANSCT-SMTP,
which must be why no one noticed.

16 years agoDon't cache messages' envelopes in folder outlines after all. None of
Taylor R. Campbell [Mon, 19 May 2008 05:06:26 +0000 (05:06 +0000)]
Don't cache messages' envelopes in folder outlines after all.  None of
IMAIL uses the envelopes (why not?), and they tickle a problem with a
certain (buggy) IMAP server.

16 years agoElaborate upon an important detail of the comment above
Taylor R. Campbell [Mon, 19 May 2008 00:00:12 +0000 (00:00 +0000)]
Elaborate upon an important detail of the comment above
CACHE-FOLDER-CONTENTS concerning its relation to
PRELOAD-FOLDER-OUTLINES.

16 years agoEnhance preloading of folder outlines for IMAP folders, and implement
Taylor R. Campbell [Sun, 18 May 2008 23:58:38 +0000 (23:58 +0000)]
Enhance preloading of folder outlines for IMAP folders, and implement
caching of entire folders' contents.

PRELOAD-FOLDER-OUTLINES on IMAP folders will now be much cleverer
(read: not stupid) about what items to fetch for what messages, so that
we fetch only what we need from each message.  This means that summary
buffer generation will now spend much less time (i.e. as much time as
it did six months ago) fetching message items.

New generic procedure CACHE-FOLDER-CONTENTS works similarly to
PRELOAD-FOLDER-OUTLINES, but also fetches requested body parts of
messages.

New Edwin command IMAIL-CACHE uses CACHE-FOLDER-CONTENTS to fill the
cache of the selected folder.  The front end's generic procedure
WALK-MIME-MESSAGE-PART is now a little more general, so that it can be
used to work together with with CACHE-FOLDER-CONTENTS.

16 years agoFix typo in READ-QUOTED-TO-PORT: READ-CHAR-NO-EOF wants an input port,
Taylor R. Campbell [Sun, 18 May 2008 22:46:36 +0000 (22:46 +0000)]
Fix typo in READ-QUOTED-TO-PORT: READ-CHAR-NO-EOF wants an input port,
not a character.

16 years agoAllow service numbers in news server proxy entries.
Taylor R. Campbell [Sat, 17 May 2008 02:18:27 +0000 (02:18 +0000)]
Allow service numbers in news server proxy entries.

16 years agoImplement mail-yank-prefix (closes Bug#22946).
Chris Hanson [Mon, 5 May 2008 04:42:08 +0000 (04:42 +0000)]
Implement mail-yank-prefix (closes Bug#22946).

16 years agoAdd workaround for AppArmor rule that blocks use of low memory
Chris Hanson [Sun, 4 May 2008 07:13:37 +0000 (07:13 +0000)]
Add workaround for AppArmor rule that blocks use of low memory
addresses.  This is causing trouble on Ubuntu 8.04.

16 years agoChange mode in BIND-MODE only if the port is still open.
Taylor R. Campbell [Fri, 2 May 2008 03:20:36 +0000 (03:20 +0000)]
Change mode in BIND-MODE only if the port is still open.

16 years agoHandle NaN objects specially when comparing them against rational
Chris Hanson [Fri, 25 Apr 2008 01:20:24 +0000 (01:20 +0000)]
Handle NaN objects specially when comparing them against rational
numbers.  We should probably do something similar for infinities.

16 years agoEliminate special cases for flonums in generic predicates. These were
Chris Hanson [Fri, 25 Apr 2008 01:19:04 +0000 (01:19 +0000)]
Eliminate special cases for flonums in generic predicates.  These were
doing the wrong thing for NaNs.

16 years agoReword missing-support error message to clarify its meaning.
Chris Hanson [Tue, 11 Mar 2008 04:00:52 +0000 (04:00 +0000)]
Reword missing-support error message to clarify its meaning.

16 years agoEliminate type-size errors and warnings; some NO_CHANNEL and
Chris Hanson [Sun, 9 Mar 2008 20:24:33 +0000 (20:24 +0000)]
Eliminate type-size errors and warnings; some NO_CHANNEL and
NO_PROCESS were long types, while the corresponding Tchannel and
Tprocess were int types.  Now all are int types.

16 years agoCan't use UCODE-PRIMITIVE in this file; it breaks the initial build.
Chris Hanson [Sat, 8 Mar 2008 18:46:41 +0000 (18:46 +0000)]
Can't use UCODE-PRIMITIVE in this file; it breaks the initial build.

16 years agoPrioritize .so files over .bin files -- we were loading .bin files
Chris Hanson [Sat, 8 Mar 2008 17:43:12 +0000 (17:43 +0000)]
Prioritize .so files over .bin files -- we were loading .bin files
when .so files were available.  (Thanks to Don Allen for catching
this.)

16 years agoUnsyntax conditionals with the primitive NOT procedure, not the global
Taylor R. Campbell [Fri, 29 Feb 2008 16:06:34 +0000 (16:06 +0000)]
Unsyntax conditionals with the primitive NOT procedure, not the global
binding of NOT.

16 years agoRegenerate tables with proper 0x prefix.
Chris Hanson [Thu, 21 Feb 2008 03:54:11 +0000 (03:54 +0000)]
Regenerate tables with proper 0x prefix.

16 years agoDoh... Forgot to add missing 0x prefix to hex constants.
Chris Hanson [Thu, 21 Feb 2008 03:52:10 +0000 (03:52 +0000)]
Doh... Forgot to add missing 0x prefix to hex constants.

16 years agoEliminate now-unused exports.
Chris Hanson [Fri, 15 Feb 2008 05:06:01 +0000 (05:06 +0000)]
Eliminate now-unused exports.

16 years agoWhen calling %MAYBE-TOGGLE-THREAD-TIMER from WAIT-FOR-IO, disregard
Taylor R. Campbell [Fri, 15 Feb 2008 04:19:00 +0000 (04:19 +0000)]
When calling %MAYBE-TOGGLE-THREAD-TIMER from WAIT-FOR-IO, disregard
the value of TIMER-INTERVAL, since we are waiting only until I/O or
the next timer event.

16 years agoExport MHASH-HMAC-UPDATE from (RUNTIME CRYPTO).
Taylor R. Campbell [Thu, 14 Feb 2008 09:51:36 +0000 (09:51 +0000)]
Export MHASH-HMAC-UPDATE from (RUNTIME CRYPTO).

16 years agoIron out two remaining little bugs in the recent flurry of changes
Taylor R. Campbell [Thu, 14 Feb 2008 08:20:22 +0000 (08:20 +0000)]
Iron out two remaining little bugs in the recent flurry of changes
surrounding errors during compiled invocation setup from primitives.

16 years agoFix errors in output for rewriting example.
Chris Hanson [Thu, 14 Feb 2008 06:48:45 +0000 (06:48 +0000)]
Fix errors in output for rewriting example.

16 years agoUndo previous change that removed primitive apply optimizations. (It
Chris Hanson [Thu, 14 Feb 2008 06:47:37 +0000 (06:47 +0000)]
Undo previous change that removed primitive apply optimizations.  (It
turns out that my analysis was incomplete and further changes would
have been required.)  Fix the problem with the apply hacks by
introducing a new exception code PRIM_APPLY_ERROR, which provides an
alternate path for signaling an error to the interpreter, _without_
backing out of the primitive (since we've already made all the
necessary changes to the stack).

16 years agoFix various places where variables defined with DEFINE-PRIMITIVES were
Chris Hanson [Thu, 14 Feb 2008 03:34:11 +0000 (03:34 +0000)]
Fix various places where variables defined with DEFINE-PRIMITIVES were
assumed have primitive-procedure values.

16 years agoOn Taylor's suggestion, change DEFINE-PRIMITIVES so that it generates
Chris Hanson [Thu, 14 Feb 2008 02:35:05 +0000 (02:35 +0000)]
On Taylor's suggestion, change DEFINE-PRIMITIVES so that it generates
compound procedures rather than just binding the variables to the
primitive-procedure objects.  This allows us to drop the new macros
needed by fixart, eliminating the need to patch older compilers to
compile this code.

16 years agoDon't insert top-level bindings of procedures into code, assuming that
Chris Hanson [Thu, 14 Feb 2008 02:12:52 +0000 (02:12 +0000)]
Don't insert top-level bindings of procedures into code, assuming that
they are primitives.  Use explicit references to primitives.

16 years agoFix a few bad instances of (ACCESS ...).
Chris Hanson [Thu, 14 Feb 2008 00:45:17 +0000 (00:45 +0000)]
Fix a few bad instances of (ACCESS ...).

16 years agoDon't write (ACCESS <foo> ()).
Chris Hanson [Wed, 13 Feb 2008 23:36:15 +0000 (23:36 +0000)]
Don't write (ACCESS <foo> ()).

16 years agoAdd SYSTEM-GLOBAL-ENVIRONMENT to global constants; this will suppress
Chris Hanson [Wed, 13 Feb 2008 23:30:18 +0000 (23:30 +0000)]
Add SYSTEM-GLOBAL-ENVIRONMENT to global constants; this will suppress
warnings about (ACCESS <foo> SYSTEM-GLOBAL-ENVIRONMENT).

16 years agoFix fatal error: FASDUMP wasn't cleaning up correctly when signalling
Chris Hanson [Wed, 13 Feb 2008 23:26:23 +0000 (23:26 +0000)]
Fix fatal error: FASDUMP wasn't cleaning up correctly when signalling
an error.

16 years agoAdd an error check to MAKE-COMBINATION for an operator that's a
Chris Hanson [Wed, 13 Feb 2008 14:26:47 +0000 (14:26 +0000)]
Add an error check to MAKE-COMBINATION for an operator that's a
non-primitive procedure.  This is the most likely screw case from the
recent change in the handling of primitive integrations.

16 years agoRewrite some more variable references as explicit primitive constants.
Chris Hanson [Wed, 13 Feb 2008 14:25:33 +0000 (14:25 +0000)]
Rewrite some more variable references as explicit primitive constants.
This includes one instance, in MAKE-MACRO-REFERENCE-TRAP-EXPRESSION,
that was causing a fatal error.

16 years agoRedo the previous change: it was causing VERY BAD things to happen.
Chris Hanson [Wed, 13 Feb 2008 06:21:07 +0000 (06:21 +0000)]
Redo the previous change: it was causing VERY BAD things to happen.
This one should be considerably safer.

16 years agoEliminate three special cases (compiled_with_interrupt_mask,
Chris Hanson [Wed, 13 Feb 2008 04:28:27 +0000 (04:28 +0000)]
Eliminate three special cases (compiled_with_interrupt_mask,
compiled_with_stack_marker, and apply_compiled_from_primitive) that
were adding hairy edge cases to gain a small amount of efficiency.

16 years agoFix bug: setup_compiled_invocation_from_primitive wasn't calling
Chris Hanson [Tue, 12 Feb 2008 19:10:13 +0000 (19:10 +0000)]
Fix bug: setup_compiled_invocation_from_primitive wasn't calling
PRIMITIVE_ABORT when it should have been.

16 years agoFix bug: setup_compiled_invocation_from_primitive wasn't calling
Chris Hanson [Tue, 12 Feb 2008 19:09:44 +0000 (19:09 +0000)]
Fix bug: setup_compiled_invocation_from_primitive wasn't calling
PRIMITIVE_ABORT when it should have been.

16 years agoFix bug in last commit. %MESSAGE-ORDER-KEY yields a pair of the key
Taylor R. Campbell [Tue, 12 Feb 2008 00:37:54 +0000 (00:37 +0000)]
Fix bug in last commit.  %MESSAGE-ORDER-KEY yields a pair of the key
and index already, so MESSAGE-ORDER-KEY doesn't need to add the index.

16 years agoOne more stab at it: turns out that what I thought APPLY wanted to do
Taylor R. Campbell [Tue, 12 Feb 2008 00:16:57 +0000 (00:16 +0000)]
One more stab at it: turns out that what I thought APPLY wanted to do
is actually what WITH-INTERRUPT-MASK and WITH-STACK-MARKER also want
to do, instead of aborting the primitive.  So we can, after all, use
`setup_compiled_invocation_from_primitive' in
`apply_compiled_from_primitive'.

16 years agoFix think-o in previous commit -- wetware pattern matcher failed in
Taylor R. Campbell [Mon, 11 Feb 2008 23:59:24 +0000 (23:59 +0000)]
Fix think-o in previous commit -- wetware pattern matcher failed in
`apply_compiled_from_primitive', which obviously can't use the new
`setup_compiled_invocation_from_primitive' because the latter does a
primitive abort if an error happens, whereas APPLY just wants to
return.

16 years agoMeter the progress of summary buffer generation.
Taylor R. Campbell [Mon, 11 Feb 2008 22:49:10 +0000 (22:49 +0000)]
Meter the progress of summary buffer generation.

16 years agoCache the keys by which messages are ordered in a hash table, so that
Taylor R. Campbell [Mon, 11 Feb 2008 22:48:02 +0000 (22:48 +0000)]
Cache the keys by which messages are ordered in a hash table, so that
we need not repeatedly fetch and parse header fields and such for the
same messages.  (The cache may be optionally disabled by passing a
switch to MAKE-FOLDER-ORDER if it is concluded superfluous.)

16 years agoImplement incremental processing of IMAP responses, so that long lists
Taylor R. Campbell [Mon, 11 Feb 2008 22:45:43 +0000 (22:45 +0000)]
Implement incremental processing of IMAP responses, so that long lists
of large responses, such as all the header fields in a large folder,
will not be queued up to exhaust the heap space.  Exploit this when
preloading folder outlines, and don't fetch the header fields when
only the size is needed.  (Preloading folder outlines no longer even
fetches the size -- but to do this right requires a lot more work and
would probably make preloading the outlines slower anyway, and I can
live with slightly more network-intensive summary buffer generation
for folders never before summarized.)  Store messages' header fields
and envelopes only weakly in memory to conserve space.

16 years agoSimplify code to invoke compiled procedures from primitives. Fix bug
Taylor R. Campbell [Mon, 11 Feb 2008 21:07:21 +0000 (21:07 +0000)]
Simplify code to invoke compiled procedures from primitives.  Fix bug
in APPLY that would cause the stack to be munged when errors or
interrupts occur during the invocation setup.

16 years agoActually do avoid the race condition.
Taylor R. Campbell [Mon, 11 Feb 2008 07:52:06 +0000 (07:52 +0000)]
Actually do avoid the race condition.

16 years agoFix bug: it's necessary to close the I/O channels of a subprocess when
Chris Hanson [Mon, 11 Feb 2008 07:23:21 +0000 (07:23 +0000)]
Fix bug: it's necessary to close the I/O channels of a subprocess when
it has finished running.  Otherwise we can end up blocked on one of
those channels, with no way to unblock.

16 years agoAvoid a race condition with the GC daemon in LOOKUP-UNCOMPRESSED-FILE.
Taylor R. Campbell [Sun, 10 Feb 2008 21:35:46 +0000 (21:35 +0000)]
Avoid a race condition with the GC daemon in LOOKUP-UNCOMPRESSED-FILE.