Chris Hanson [Tue, 20 Nov 2001 04:13:00 +0000 (04:13 +0000)]
Optimizer wasn't deleting unused procedure-valued bindings if the
procedure had side-effects. The bug fix to make top-level failure
continuations do backtracking prevented them from being substituted
properly; the substitution predicate was extended to allow this.
Also, some valuable substitutions weren't being seen because the
optimizers were being run in a fixed order. After the peephole
optimization is done, it reveals more possibilities for substitution.
So now the optimizers are re-run until nothing more can be done.
Chris Hanson [Mon, 19 Nov 2001 20:19:48 +0000 (20:19 +0000)]
Change imap-url-mailbox to always be a string. The root "mailbox" is
"", and the root container is "/". Both of these are handled
specially when converting the URL to a string.
This fixes the bug that allowed the malformed container URL
"imap://localhost//".
Chris Hanson [Sun, 18 Nov 2001 04:58:19 +0000 (04:58 +0000)]
Change file naming for cache files, so that it satisfies more
stringent Windows requirements. Make sure that directory structure
exists before locking a folder.
Chris Hanson [Sun, 18 Nov 2001 04:53:04 +0000 (04:53 +0000)]
Change file naming for cache files, so that it satisfies more
stringent Windows requirements. Make sure that directory structure
exists before locking a folder.
Chris Hanson [Wed, 14 Nov 2001 20:53:32 +0000 (20:53 +0000)]
Fix some problems in the pointer optimization: pointers were being
incorrect elided across lambda expressions, and external pointer
bindings were being elided. The latter is fixed by introducing a
mechanism to distinguish internal identifiers, which eliminates the
need for the WITH-POINTER kludge.
Chris Hanson [Wed, 14 Nov 2001 20:19:13 +0000 (20:19 +0000)]
Fix some problems in the pointer optimization: pointers were being
incorrect elided across lambda expressions, and external pointer
bindings were being elided. The latter is fixed by introducing a
mechanism to distinguish internal identifiers, which eliminates the
need for the WITH-POINTER kludge.
Chris Hanson [Sun, 11 Nov 2001 05:45:57 +0000 (05:45 +0000)]
Reorganize code for presentation style -- no change in function. Add
comments explaining how new optimizer works. Split up some large
procedures into smaller focused pieces. Reorder code to improve
readability.
Chris Hanson [Tue, 6 Nov 2001 05:01:50 +0000 (05:01 +0000)]
Add locking mechanism for the IMAP folder cache. There is one lock
per folder, and the lock is held only while the folder cache is being
read and/or written. IMAIL will try three times to obtain the lock,
waiting one second between retries; thereafter it ignores the cache
until the lock becomes available.
Chris Hanson [Tue, 6 Nov 2001 04:48:23 +0000 (04:48 +0000)]
Add locking mechanism for the IMAP folder cache. There is one lock
per folder, and the lock is held only while the folder cache is being
read and/or written. IMAIL will try three times to obtain the lock,
waiting one second between retries; thereafter it ignores the cache
until the lock becomes available.
Chris Hanson [Mon, 5 Nov 2001 21:05:56 +0000 (21:05 +0000)]
Move this back to IMAIL from the runtime system. Unlike anything else
in the runtime system, it requires *PARSER to compile, and I'm not
ready to add that dependency.
Chris Hanson [Mon, 5 Nov 2001 18:12:13 +0000 (18:12 +0000)]
Three fixes that together resolve the problem of compiling the XML
parser. (1) FOR-EACH-CALLEE! claimed to examine all of the callees,
but it wasn't looking at procedures called from descendant blocks that
had been disowned. (2) When removing dependent constraints, due to
closure, constraints that had indirect dependencies on the now-closed
procedure weren't being removed. (3) When adding undrifting
constraints due to closure contagion, it's wrong to constrain the
invocation block of a trivial closure.
Chris Hanson [Sat, 3 Nov 2001 05:16:48 +0000 (05:16 +0000)]
Use new names for LIST-TRANSFORM- procedures; eliminate private
definition for LIST-TRANSFORM-NEGATIVE!. Open up definition of
FOR-EACH-CALLEE! so that it can be experimented with. Change
implementation of undrifting conditions so that they can have multiple
dependencies.
Chris Hanson [Thu, 25 Oct 2001 17:17:19 +0000 (17:17 +0000)]
Add code to reinitialize the floating-point control word on IA-32
machines when SIGFPE is received. When this isn't done, all of the
traps are disabled.
Chris Hanson [Tue, 16 Oct 2001 17:56:47 +0000 (17:56 +0000)]
Fix bug: don't avoid coloring part of the graph just because it is
going to be inlined later. There is probably a subtle bug here, but
finding it will require too much thought, and this fix appears to
work.
Chris Hanson [Tue, 16 Oct 2001 16:41:13 +0000 (16:41 +0000)]
OK, this time it's right. I've gone through all the combinations, and
everything makes sense. There are some minor efficiency issues which
will be resolved in the next revision.
Chris Hanson [Tue, 16 Oct 2001 16:38:37 +0000 (16:38 +0000)]
Fix bug: don't avoid coloring part of the graph just because it is
going to be inlined later. There is probably a subtle bug here, but
finding it will require too much thought, and this fix appears to
work.
Chris Hanson [Tue, 16 Oct 2001 04:59:25 +0000 (04:59 +0000)]
Rewrite control structures again. These seem correct, after many
hours of thought and testing. Also make new top-level wrapper for
code generators, and eliminate a couple of unused definitions.
Chris Hanson [Mon, 15 Oct 2001 17:01:10 +0000 (17:01 +0000)]
Complete rewrite of output control structure. New structure supports
backtracking properly, doing greedy matching until a failure occurs,
then backtracking arbitrarily deeply to find a way forward.
Chris Hanson [Fri, 5 Oct 2001 15:43:04 +0000 (15:43 +0000)]
Update copyright. Add comment explaining contents of file. Change
logic since character sets are no longer represented as strings. If
character set is argument to CASE-FOLD, then case-fold it.