Chris Hanson [Sun, 17 Aug 2008 09:42:29 +0000 (09:42 +0000)]
Fix fencepost error in UNICODE-CODE-POINT?.
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.
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.
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.
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.
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.
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.)
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.
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.
Taylor R. Campbell [Mon, 11 Aug 2008 22:48:50 +0000 (22:48 +0000)]
Retain names with addresses when replying to mail.
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.
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.
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).
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.
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.
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.
Chris Hanson [Thu, 31 Jul 2008 05:22:03 +0000 (05:22 +0000)]
Eliminate now-unused helper procedures.
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.
Chris Hanson [Sat, 26 Jul 2008 22:53:55 +0000 (22:53 +0000)]
Export CHAR-SET:MIME-TOKEN.
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.
Chris Hanson [Sat, 26 Jul 2008 20:35:25 +0000 (20:35 +0000)]
Add HTTP line ending.
Chris Hanson [Sat, 26 Jul 2008 07:10:27 +0000 (07:10 +0000)]
Provide better error for invalid match index in RE-MATCH-EXTRACT.
Chris Hanson [Sat, 26 Jul 2008 07:02:12 +0000 (07:02 +0000)]
Fix CALL-WITH-TRUNCATED-OUTPUT-STRING: return type plain wrong.
Chris Hanson [Sat, 26 Jul 2008 07:01:34 +0000 (07:01 +0000)]
Fix stupid typo in CALL-WITH-TRUNCATED-OUTPUT-PORT.
Chris Hanson [Sat, 26 Jul 2008 05:45:36 +0000 (05:45 +0000)]
Rename 'bytes' I/O to 'octets'.
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.
Chris Hanson [Thu, 24 Jul 2008 06:58:08 +0000 (06:58 +0000)]
Fix input transcription problem that was introduced in revision 1.55.
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.)
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.
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.
Chris Hanson [Sat, 19 Jul 2008 00:56:19 +0000 (00:56 +0000)]
Eliminate reference to PORT/UNREAD by implementing UNREAD-CHAR
operation.
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.
Chris Hanson [Fri, 18 Jul 2008 10:18:00 +0000 (10:18 +0000)]
Eliminate cold-load call to SYMBOL->STRING.
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.
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.
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.
Chris Hanson [Tue, 8 Jul 2008 10:36:17 +0000 (10:36 +0000)]
Fix typo: ASCII -> US-ASCII. Eliminate unused loop binding.
Chris Hanson [Tue, 8 Jul 2008 06:14:43 +0000 (06:14 +0000)]
Add a few char sets used in many RFCs.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Taylor R. Campbell [Sat, 17 May 2008 02:18:27 +0000 (02:18 +0000)]
Allow service numbers in news server proxy entries.
Chris Hanson [Mon, 5 May 2008 04:42:08 +0000 (04:42 +0000)]
Implement mail-yank-prefix (closes Bug#22946).
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.
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.
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.
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.
Chris Hanson [Tue, 11 Mar 2008 04:00:52 +0000 (04:00 +0000)]
Reword missing-support error message to clarify its meaning.
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.
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.
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.)
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.
Chris Hanson [Thu, 21 Feb 2008 03:54:11 +0000 (03:54 +0000)]
Regenerate tables with proper 0x prefix.
Chris Hanson [Thu, 21 Feb 2008 03:52:10 +0000 (03:52 +0000)]
Doh... Forgot to add missing 0x prefix to hex constants.
Chris Hanson [Fri, 15 Feb 2008 05:06:01 +0000 (05:06 +0000)]
Eliminate now-unused exports.
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.
Taylor R. Campbell [Thu, 14 Feb 2008 09:51:36 +0000 (09:51 +0000)]
Export MHASH-HMAC-UPDATE from (RUNTIME CRYPTO).
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.
Chris Hanson [Thu, 14 Feb 2008 06:48:45 +0000 (06:48 +0000)]
Fix errors in output for rewriting example.
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).
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.
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.
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.
Chris Hanson [Thu, 14 Feb 2008 00:45:17 +0000 (00:45 +0000)]
Fix a few bad instances of (ACCESS ...).
Chris Hanson [Wed, 13 Feb 2008 23:36:15 +0000 (23:36 +0000)]
Don't write (ACCESS <foo> ()).
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).
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.
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.
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.
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.
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.
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.
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.
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.
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'.
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.
Taylor R. Campbell [Mon, 11 Feb 2008 22:49:10 +0000 (22:49 +0000)]
Meter the progress of summary buffer generation.
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.)
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.
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.
Taylor R. Campbell [Mon, 11 Feb 2008 07:52:06 +0000 (07:52 +0000)]
Actually do avoid the race condition.
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.
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.
Taylor R. Campbell [Sun, 10 Feb 2008 10:44:13 +0000 (10:44 +0000)]
Implement SMTP AUTH LOGIN and AUTH PLAIN extensions for authentication
when sending mail by SMTP. New Edwin variable MAIL-AUTHENTICATION
controls whether to authenticate; set it to #T to enable authentication
by default. New Edwin variable SMTP-USER-NAME can be set to specify a
user name.
Still to do: CRAM-MD5 (shouldn't be hard, but I don't need it now),
and automatic detection of necessity of authentication. Is there an
SMTP reply code to tell us that we must authenticate?
Taylor R. Campbell [Sun, 10 Feb 2008 10:06:51 +0000 (10:06 +0000)]
Move support for temporarily stored pass-phrases into Edwin from
IMAIL's front end.
Chris Hanson [Sun, 10 Feb 2008 06:14:19 +0000 (06:14 +0000)]
Change lots of global primitives to be defined as compound procedures.
The compiler will still open-code them appropriately when the appear
in the operator position. However, this change means that
non-operator references to these primitives avoid passing a primitive
object around, which improves performance when the object is
eventually called.
Chris Hanson [Sun, 10 Feb 2008 06:12:08 +0000 (06:12 +0000)]
Add LAMBDA-TAG:UNNAMED, needed for cold load.
Chris Hanson [Sun, 10 Feb 2008 05:02:21 +0000 (05:02 +0000)]
Add FIXNUM? to list of primitives.
Chris Hanson [Sun, 10 Feb 2008 04:42:43 +0000 (04:42 +0000)]
Change handling of global primitives; they are now integrated only
when they appear in operator position.