mit-scheme.git
20 years agoDon't read more characters than are needed. The XML character-coding
Chris Hanson [Tue, 24 Feb 2004 20:34:50 +0000 (20:34 +0000)]
Don't read more characters than are needed.  The XML character-coding
detection depends on this.

20 years agoExport DISCARD-CHAR.
Chris Hanson [Tue, 24 Feb 2004 05:51:12 +0000 (05:51 +0000)]
Export DISCARD-CHAR.

20 years agoExport UNREAD-CHAR.
Chris Hanson [Tue, 24 Feb 2004 05:50:44 +0000 (05:50 +0000)]
Export UNREAD-CHAR.

20 years agoCanonicalize UTF-16 and UTF-32 names.
Chris Hanson [Tue, 24 Feb 2004 04:23:12 +0000 (04:23 +0000)]
Canonicalize UTF-16 and UTF-32 names.

20 years agoClean up output a little.
Chris Hanson [Tue, 24 Feb 2004 01:51:00 +0000 (01:51 +0000)]
Clean up output a little.

20 years agoWhen using XML line ending on I/O port, treat output side as TEXT.
Chris Hanson [Tue, 24 Feb 2004 01:45:53 +0000 (01:45 +0000)]
When using XML line ending on I/O port, treat output side as TEXT.

20 years agoEliminate PARSE-XML-DOCUMENT. Merge STRING->XML and SUBSTRING->XML.
Chris Hanson [Mon, 23 Feb 2004 20:56:21 +0000 (20:56 +0000)]
Eliminate PARSE-XML-DOCUMENT.  Merge STRING->XML and SUBSTRING->XML.
Force input coding to UTF-8 (for now).  Force input line ending to
XML-1.0.

20 years agoSome tweaks to handle changes in I/O subsystem. Force UTF-8 coding on
Chris Hanson [Mon, 23 Feb 2004 20:55:11 +0000 (20:55 +0000)]
Some tweaks to handle changes in I/O subsystem.  Force UTF-8 coding on
output (for now).

20 years agoUse STRING->PARSER-BUFFER rather than WIDE-STRING->PARSER-BUFFER,
Chris Hanson [Mon, 23 Feb 2004 20:53:22 +0000 (20:53 +0000)]
Use STRING->PARSER-BUFFER rather than WIDE-STRING->PARSER-BUFFER,
since the former has replaced the latter.

20 years agoUse wide string to test re-reading of document.
Chris Hanson [Mon, 23 Feb 2004 20:52:49 +0000 (20:52 +0000)]
Use wide string to test re-reading of document.

20 years agoEliminate SOURCE->PARSER-BUFFER. Merge procedures
Chris Hanson [Mon, 23 Feb 2004 20:51:47 +0000 (20:51 +0000)]
Eliminate SOURCE->PARSER-BUFFER.  Merge procedures
*STRING->PARSER-BUFFER into a single procedure.

20 years agoRewrite STRING->WIDE-STRING to make it more efficient.
Chris Hanson [Mon, 23 Feb 2004 20:50:33 +0000 (20:50 +0000)]
Rewrite STRING->WIDE-STRING to make it more efficient.

20 years agoAdd support for UTF-32.
Chris Hanson [Mon, 23 Feb 2004 20:49:32 +0000 (20:49 +0000)]
Add support for UTF-32.

20 years agoFix problems with parsing of element content.
Chris Hanson [Wed, 18 Feb 2004 19:52:06 +0000 (19:52 +0000)]
Fix problems with parsing of element content.

20 years agoUse new arguments for OPEN-TCP-STREAM-SOCKET.
Chris Hanson [Tue, 17 Feb 2004 05:53:31 +0000 (05:53 +0000)]
Use new arguments for OPEN-TCP-STREAM-SOCKET.

20 years agoFix some bugs in the parser buffer.
Chris Hanson [Tue, 17 Feb 2004 05:46:20 +0000 (05:46 +0000)]
Fix some bugs in the parser buffer.

20 years agoFix typo.
Chris Hanson [Tue, 17 Feb 2004 05:35:46 +0000 (05:35 +0000)]
Fix typo.

20 years agoAdd kludge to define MATCH-UTF8-CHAR-IN-ALPHABET.
Chris Hanson [Tue, 17 Feb 2004 05:00:18 +0000 (05:00 +0000)]
Add kludge to define MATCH-UTF8-CHAR-IN-ALPHABET.

20 years agoAdd line-ending support.
Chris Hanson [Tue, 17 Feb 2004 04:59:54 +0000 (04:59 +0000)]
Add line-ending support.

20 years agoAdd NEWLINE line-ending.
Chris Hanson [Tue, 17 Feb 2004 04:59:29 +0000 (04:59 +0000)]
Add NEWLINE line-ending.

20 years agoChanges required by reimplementation of I/O subsystem.
Chris Hanson [Mon, 16 Feb 2004 05:50:43 +0000 (05:50 +0000)]
Changes required by reimplementation of I/O subsystem.

20 years agoBump version to reflect major change.
Chris Hanson [Mon, 16 Feb 2004 05:40:46 +0000 (05:40 +0000)]
Bump version to reflect major change.

20 years agoThe I/O subsystem has once again been redesigned. The primary goal of
Chris Hanson [Mon, 16 Feb 2004 05:39:37 +0000 (05:39 +0000)]
The I/O subsystem has once again been redesigned.  The primary goal of
this large change is to integrate support for Unicode and character
coding directly into the I/O subsystem.  Secondary goals are to
improve I/O performance, to simplify the design, and to provide
flexibility for future enhancement.

This change set has received cursory testing, and no doubt a number of
problems remain.  Additionally, there are several unfinished aspects
to the change.  But this version works well enough to run Edwin.

Detailed changes
----------------

The term "line translation" is everywhere replaced with "line ending".
A line ending is now specified by a symbol, such as 'crlf or 'lf;
previously it was a string.  I/O files now support a single line
ending for both input and output sides; previously there were two
independent line translations.

The I/O buffers have been completely redesigned.  They now operate in
three stages: one stage does byte-stream I/O, the second manages
coding (e.g. UTF-8), and the third manages line endings.  Only bytes
are buffered.  As a consequence, READ-CHAR and WRITE-CHAR will now
handle any Unicode character, provided the port's coding is set to an
appropriate value.

The READ-SUBSTRING port operation can now assume that its START
argument is strictly less than its END argument.  Likewise for the new
operations READ-WIDE-SUBSTRING and READ-EXTERNAL-SUBSTRING.

The WRITE-SUBSTRING port operation now returns either #F or a
non-negative integer.  It can also now assume that its START argument
is strictly less than its END argument.  Both of these properties are
true for the new WRITE-WIDE-SUBSTRING and WRITE-EXTERNAL-SUBSTRING.

The WRITE-CHAR port operation now returns either #F, 0, or 1, as if it
was a call to WRITE-SUBSTRING with a one-char string.

The CHAR-READY? port operation and the INPUT-PORT/CHAR-READY?
procedure no longer accept a second "interval" argument.  Handling of
the timeout interval is instead implemented directly in the
CHAR-READY? procedure.

Strings are always considered to be encoded using ISO-8859-1.

The parser-buffer datatype has been widened to handle all Unicode
characters.

All ports now support the FRESH-LINE operation, which is implemented
as a layer on top of the supplied operations.  Similarly, the
PEEK-CHAR, DISCARD-CHAR, and new UNREAD-CHAR operations are
implemented for all ports.

End-of-file objects now have an associated port.

RUN-SHELL-COMMAND and RUN-SYNCHRONOUS-SUBPROCESS now accept a keyword
argument LINE-ENDING, which replaces the old options
INPUT-LINE-TRANSLATION and OUTPUT-LINE-TRANSLATION.

Transcript support has been moved into the core port abstraction.
Consequently, it is no longer necessary to encapsulate a port in order
to get transcript support.  Encapsulated ports have been eliminated,
as this was their only use.

The procedures OPEN-TCP-STREAM-SOCKET, OPEN-UNIX-STREAM-SOCKET,
SUBPROCESS-I/O-PORT, and TCP-SERVER-CONNECTION-ACCEPT have changed
their argument structure.  All arguments dealing with buffer size and
line translation have been eliminated.  In the new implementation, the
buffer size is fixed, and handling of line endings is changed by
calling PORT/SET-LINE-ENDING.

The following variables have been eliminated:

CHANNEL-WRITE-CHAR-BLOCK
CHANNEL-WRITE-STRING-BLOCK
ENCAPSULATED-PORT/PORT
ENCAPSULATED-PORT/STATE
ENCAPSULATED-PORT?
GUARANTEE-ENCAPSULATED-PORT
INPUT-PORT/CHANNEL
INPUT-PORT/COPY
INPUT-PORT/CUSTOM-OPERATION
INPUT-PORT/OPERATION
INPUT-PORT/OPERATION
INPUT-PORT/OPERATION-NAMES
INPUT-PORT/STATE
MAKE-ENCAPSULATED-PORT
MAKE-GENERIC-INPUT-PORT
MAKE-GENERIC-OUTPUT-PORT
MAKE-I/O-PORT
MAKE-INPUT-PORT
MAKE-OUTPUT-PORT
MATCH-UTF8-CHAR-IN-ALPHABET
OUTPUT-PORT/CHANNEL
OUTPUT-PORT/COPY
OUTPUT-PORT/CUSTOM-OPERATION
OUTPUT-PORT/OPERATION
OUTPUT-PORT/OPERATION
OUTPUT-PORT/OPERATION-NAMES
OUTPUT-PORT/STATE
PATHNAME-END-OF-LINE-STRING
PATHNAME-NEWLINE-TRANSLATION
SET-ENCAPSULATED-PORT/STATE!
SET-INPUT-PORT/STATE!
SET-OUTPUT-PORT/STATE!

The following port operations have been eliminated:

BUFFERED-INPUT-CHARS
BUFFERED-OUTPUT-CHARS
CHARS-REMAINING
DISCARD-CHAR
DISCARD-CHARS
FRESH-LINE
INPUT-BUFFER-SIZE
OUTPUT-BUFFER-SIZE
PEEK-CHAR
READ-STRING
REST->STRING
SET-INPUT-BUFFER-SIZE
SET-OUTPUT-BUFFER-SIZE
\f
To do:

* locking
* column tracking
* convert parser from peek/discard to read/unread
* [?] integrate parser-buffer support (port.scm/input.scm)
* change buffer I/O ports to handle line endings as needed

Change arg structure of:
char-ready? port operation
input-port/char-ready?
make-generic-i/o-port
make-input-buffer
make-output-buffer
open-tcp-stream-socket
open-unix-stream-socket
subprocess-i/o-port
tcp-server-connection-accept

Renamed variables:
os/default-end-of-line-translation => default-line-ending
os/file-end-of-line-translation => file-line-ending

New variables:
channel-has-input?
channel-write-byte-block
condition-type:char-decoding-error
condition-type:char-encoding-error
condition-type:not-8-bit-char
console-i/o-port?
eof-object-port
error:char-decoding
error:char-encoding
error:not-8-bit-char
guarantee-wide-substring
input-port/read-external-substring
input-port/read-wide-substring
input-port/unread-char
match-parser-buffer-char-in-alphabet
match-parser-buffer-char-in-alphabet-no-advance
match-parser-buffer-char-not-in-alphabet
match-parser-buffer-char-not-in-alphabet-no-advance
match-parser-buffer-char-not-in-set
match-parser-buffer-char-not-in-set-no-advance
output-port/write-external-substring
output-port/write-wide-substring
port/coding
port/line-ending
port/set-coding
port/set-line-ending
port=?
set-channel-port!
unread-char
wide-string->parser-buffer
wide-substring
wide-substring->parser-buffer

New port operations:
coding
line-ending
read-external-substring
read-wide-substring
set-coding
set-line-ending
write-external-substring
write-wide-substring

20 years agoFix typo.
Chris Hanson [Fri, 6 Feb 2004 18:15:40 +0000 (18:15 +0000)]
Fix typo.

20 years agoFix typos.
Chris Hanson [Wed, 4 Feb 2004 05:02:12 +0000 (05:02 +0000)]
Fix typos.

20 years agoFix CLOSE-ENOUGH?.
Chris Hanson [Wed, 4 Feb 2004 05:01:32 +0000 (05:01 +0000)]
Fix CLOSE-ENOUGH?.

20 years agoDon't set super/hyper bucky bits based on modifier keys.
Chris Hanson [Tue, 3 Feb 2004 18:46:50 +0000 (18:46 +0000)]
Don't set super/hyper bucky bits based on modifier keys.

20 years agoDon't specially handle control/meta-modified alphabetic keys; this
Chris Hanson [Sat, 31 Jan 2004 02:16:53 +0000 (02:16 +0000)]
Don't specially handle control/meta-modified alphabetic keys; this
appears to be a broken optimization from long ago.  Thanks to Joe
Marshall for figuring it out.

20 years agoUpdate CVS access information.
Chris Hanson [Mon, 19 Jan 2004 21:14:56 +0000 (21:14 +0000)]
Update CVS access information.

20 years agoImplement support for associating input-port "position" with each
Chris Hanson [Mon, 19 Jan 2004 05:06:22 +0000 (05:06 +0000)]
Implement support for associating input-port "position" with each
pointer object in the output of the parser.  This is useful for
mapping s-expressions back to positions in the source code, for
example.  Also, rearrange the code a bit to make it clearer.

20 years agoRewrite the CHAR-READY? operation to use TEST-SELECT-DESCRIPTOR rather
Chris Hanson [Mon, 19 Jan 2004 04:37:14 +0000 (04:37 +0000)]
Rewrite the CHAR-READY? operation to use TEST-SELECT-DESCRIPTOR rather
than a non-blocking read.  The latter used five system calls, while
the former uses one to achieve the same effect.  Also, the
INPUT-BUFFER/READ-UNTIL-DELIMITER and
INPUT-BUFFER/DISCARD-UNTIL-DELIMITER procedures were eliminated.

20 years agoEliminate the READ-STRING and DISCARD-CHARS operations.
Chris Hanson [Mon, 19 Jan 2004 04:30:57 +0000 (04:30 +0000)]
Eliminate the READ-STRING and DISCARD-CHARS operations.

20 years agoDeal gracefully with EOF in READ-FINISH operation.
Chris Hanson [Mon, 19 Jan 2004 04:30:41 +0000 (04:30 +0000)]
Deal gracefully with EOF in READ-FINISH operation.

20 years agoUse getpt() if available.
Chris Hanson [Sun, 18 Jan 2004 06:04:49 +0000 (06:04 +0000)]
Use getpt() if available.

20 years agoCombine TABLE and DB parameters.
Chris Hanson [Sat, 17 Jan 2004 13:55:46 +0000 (13:55 +0000)]
Combine TABLE and DB parameters.

20 years agoSimplify table-lookup mechanism.
Chris Hanson [Sat, 17 Jan 2004 13:49:49 +0000 (13:49 +0000)]
Simplify table-lookup mechanism.

20 years agoAdd "autom4te.cache" to cleanup.
Chris Hanson [Sat, 17 Jan 2004 01:40:27 +0000 (01:40 +0000)]
Add "autom4te.cache" to cleanup.

20 years agoAdd ssp.
Chris Hanson [Fri, 16 Jan 2004 21:07:33 +0000 (21:07 +0000)]
Add ssp.

20 years agoAdd ssp.
Chris Hanson [Fri, 16 Jan 2004 21:05:12 +0000 (21:05 +0000)]
Add ssp.

20 years agoFix quoting.
Chris Hanson [Fri, 16 Jan 2004 20:59:05 +0000 (20:59 +0000)]
Fix quoting.

20 years agoEliminate obsolete references to INPUT-PORT/OPERATION and
Chris Hanson [Fri, 16 Jan 2004 20:47:22 +0000 (20:47 +0000)]
Eliminate obsolete references to INPUT-PORT/OPERATION and
OUTPUT-PORT/OPERATION.

20 years agoBump component version to reflect changes since last release.
Chris Hanson [Fri, 16 Jan 2004 20:43:16 +0000 (20:43 +0000)]
Bump component version to reflect changes since last release.

20 years agoEliminate use of obsolete OUTPUT-PORT/OPERATION.
Chris Hanson [Fri, 16 Jan 2004 20:32:40 +0000 (20:32 +0000)]
Eliminate use of obsolete OUTPUT-PORT/OPERATION.

20 years agoEliminate use of obsolete INPUT-PORT/OPERATION.
Chris Hanson [Fri, 16 Jan 2004 20:31:06 +0000 (20:31 +0000)]
Eliminate use of obsolete INPUT-PORT/OPERATION.

20 years agoProvide BASE-PORT to parser.
Chris Hanson [Fri, 16 Jan 2004 19:43:52 +0000 (19:43 +0000)]
Provide BASE-PORT to parser.

20 years agoFix handling of quote within strings.
Chris Hanson [Fri, 16 Jan 2004 19:39:53 +0000 (19:39 +0000)]
Fix handling of quote within strings.

20 years agoFix syntax definitions to reflect what the parser does, and simplify
Chris Hanson [Fri, 16 Jan 2004 19:26:06 +0000 (19:26 +0000)]
Fix syntax definitions to reflect what the parser does, and simplify
them for clarity.

20 years agoQuote some more prefixed atom delimiters.
Chris Hanson [Fri, 16 Jan 2004 19:11:14 +0000 (19:11 +0000)]
Quote some more prefixed atom delimiters.

20 years agoNow that comma is an atom delimiter, it's necessary to quote it in
Chris Hanson [Fri, 16 Jan 2004 19:07:15 +0000 (19:07 +0000)]
Now that comma is an atom delimiter, it's necessary to quote it in
prefixed character constants.

20 years agoPass the shared objects database as an argument to all the handlers,
Chris Hanson [Fri, 16 Jan 2004 19:04:38 +0000 (19:04 +0000)]
Pass the shared objects database as an argument to all the handlers,
rather than using a dynamically-bound variable.  Pass an additional
argument to indicate when close-paren and close-bracket are allowed.
Fix long-standing bug in handling of unmatched close parens at top
level: the port comparison was never true because of encapsulation.

20 years agoFix some minor bugs. Considerably simplify parsing of characters.
Chris Hanson [Fri, 16 Jan 2004 06:33:47 +0000 (06:33 +0000)]
Fix some minor bugs.  Considerably simplify parsing of characters.

20 years agoCompensate for a change to the definition of CHAR-SET/ATOM-DELIMITERS.
Chris Hanson [Fri, 16 Jan 2004 05:48:23 +0000 (05:48 +0000)]
Compensate for a change to the definition of CHAR-SET/ATOM-DELIMITERS.

20 years agoAdd name for non-blocking space.
Chris Hanson [Fri, 16 Jan 2004 05:44:21 +0000 (05:44 +0000)]
Add name for non-blocking space.

20 years agoInitial draft of new parser. Needs more testing, and at least one
Chris Hanson [Thu, 15 Jan 2004 21:00:16 +0000 (21:00 +0000)]
Initial draft of new parser.  Needs more testing, and at least one
feature is missing.

20 years agoImplement %STRING->SYMBOL for to eliminate unnecessary copying in
Chris Hanson [Thu, 15 Jan 2004 20:59:12 +0000 (20:59 +0000)]
Implement %STRING->SYMBOL for to eliminate unnecessary copying in
parser.

20 years agoFix incorrect package references for files loaded at the very
Chris Hanson [Thu, 15 Jan 2004 20:58:36 +0000 (20:58 +0000)]
Fix incorrect package references for files loaded at the very
beginning of the boot.

20 years agoEliminate INPUT-BUFFER/DISCARD-CHAR, which couldn't be used with
Chris Hanson [Sun, 11 Jan 2004 07:18:05 +0000 (07:18 +0000)]
Eliminate INPUT-BUFFER/DISCARD-CHAR, which couldn't be used with
non-blocking input ports because there was no way to tell whether the
char was discarded.  Instead, use INPUT-BUFFER/READ-CHAR in its place,
which is only slightly slower and does provide this indication.

20 years agoFix problem: some uses of terminated-region-matcher must behave as
Chris Hanson [Sun, 11 Jan 2004 05:25:57 +0000 (05:25 +0000)]
Fix problem: some uses of terminated-region-matcher must behave as
they did prior to revision 1.51.

20 years agoImplement REVERSE* and REVERSE*!, like REVERSE and REVERSE! but a
Chris Hanson [Fri, 9 Jan 2004 21:12:19 +0000 (21:12 +0000)]
Implement REVERSE* and REVERSE*!, like REVERSE and REVERSE! but a
non-null tail element can be specified.

20 years agoFix bug: RANDOM-BYTE-VECTOR has to supply a default state object if
Chris Hanson [Fri, 9 Jan 2004 20:22:22 +0000 (20:22 +0000)]
Fix bug: RANDOM-BYTE-VECTOR has to supply a default state object if
none is given.

20 years agoFix thinko in previous change.
Chris Hanson [Thu, 8 Jan 2004 17:52:34 +0000 (17:52 +0000)]
Fix thinko in previous change.

20 years agoEliminate strict-aliasing warning that could potentially cause trouble
Chris Hanson [Wed, 7 Jan 2004 05:30:44 +0000 (05:30 +0000)]
Eliminate strict-aliasing warning that could potentially cause trouble
when compiled with newer GCC.

20 years agoFix compilation error caused by change to "obstack.h".
Chris Hanson [Wed, 7 Jan 2004 04:50:47 +0000 (04:50 +0000)]
Fix compilation error caused by change to "obstack.h".

20 years agoUpdate copyright dates.
Chris Hanson [Wed, 7 Jan 2004 04:50:24 +0000 (04:50 +0000)]
Update copyright dates.

20 years agoEliminate some compiler warnings.
Chris Hanson [Wed, 7 Jan 2004 04:43:34 +0000 (04:43 +0000)]
Eliminate some compiler warnings.

20 years agoImplement SRFI 27, except for RANDOM-SOURCE-PSEUDO-RANDOMIZE!. While
Chris Hanson [Tue, 6 Jan 2004 06:22:37 +0000 (06:22 +0000)]
Implement SRFI 27, except for RANDOM-SOURCE-PSEUDO-RANDOMIZE!.  While
I agree that this could be useful, it effectively mandates a
particular PRNG, and I don't want to be forced to use it.

20 years agoUse FILE-READABLE? instead of FILE-EXISTS? when testing for
Chris Hanson [Tue, 6 Jan 2004 05:54:32 +0000 (05:54 +0000)]
Use FILE-READABLE? instead of FILE-EXISTS? when testing for
"/dev/urandom".

20 years agoRewrite the code that converts the output of the RNG to usable
Chris Hanson [Mon, 5 Jan 2004 21:04:38 +0000 (21:04 +0000)]
Rewrite the code that converts the output of the RNG to usable
numbers.  The old methods didn't work; instead we now use the
rejection method, which is the only known good method.

20 years agoUpdate email addresses from ai->csail.
Chris Hanson [Thu, 1 Jan 2004 06:36:23 +0000 (06:36 +0000)]
Update email addresses from ai->csail.

20 years agoFix typo.
uid67408 [Mon, 29 Dec 2003 07:38:23 +0000 (07:38 +0000)]
Fix typo.

20 years agoRepackage using standard packaging tools.
uid67408 [Mon, 29 Dec 2003 07:34:21 +0000 (07:34 +0000)]
Repackage using standard packaging tools.

20 years agoIntegrate SSP/XDOC into system.
uid67408 [Mon, 29 Dec 2003 07:32:55 +0000 (07:32 +0000)]
Integrate SSP/XDOC into system.

20 years agoImport files from other places.
uid67408 [Mon, 29 Dec 2003 05:25:02 +0000 (05:25 +0000)]
Import files from other places.

20 years agoExport a few more useful procedures.
uid67408 [Mon, 29 Dec 2003 05:08:15 +0000 (05:08 +0000)]
Export a few more useful procedures.

20 years agoFix bug: when parsing bracketed content, signal an appropriate error
uid67408 [Mon, 29 Dec 2003 05:07:54 +0000 (05:07 +0000)]
Fix bug: when parsing bracketed content, signal an appropriate error
when the content contains an illegal character, rather than just
failing to match.

20 years agoFix broken behavior of RANDOM when given modulus that exceeds B. The
Chris Hanson [Wed, 26 Nov 2003 07:00:40 +0000 (07:00 +0000)]
Fix broken behavior of RANDOM when given modulus that exceeds B.  The
old implementation just scaled a random element (uniformly distributed
integer between 0 and B-1 inclusive) into the given range; this
strategy works fine for a modulus <= B but breaks pretty badly for
larger B.

In addition, RANDOM now generates an error if the modulus is a real
number but neither an exact positive integer nor an inexact real.  The
old behavior in this case was arbitrary, not terribly useful, and
likely to be at odds with the user's expectations.

Here are some tests using the "ent" program that show the problem with
the old RANDOM implementation.

The first example is a 128MB file generated by repeatedly calling
(RANDOM (EXPT 2 64)), slicing each random number into bytes, and
writing the bytes to the file.  The result is appalling:

    Entropy = 7.500650 bits per byte.

    Optimum compression would reduce the size
    of this 134217728 byte file by 6 percent.

    Chi square distribution for 134217728 samples is 515675588.87, and
    randomly would exceed this value 0.01 percent of the times.

    Arithmetic mean value of data bytes is 111.9516 (127.5 = random).
    Monte Carlo value for Pi is 3.365650585 (error 7.13 percent).
    Serial correlation coefficient is -0.031868 (totally uncorrelated = 0.0).

In contrast, here is the result from a file of the same length
generated using (RANDOM 256).  This throws away 75% of each random
element, but shows the quality of the underlying generator:

    Entropy = 7.999999 bits per byte.

    Optimum compression would reduce the size
    of this 134217728 byte file by 0 percent.

    Chi square distribution for 134217728 samples is 235.11, and
    randomly would exceed this value 75.00 percent of the times.

    Arithmetic mean value of data bytes is 127.5060 (127.5 = random).
    Monte Carlo value for Pi is 3.141120183 (error 0.02 percent).
    Serial correlation coefficient is -0.000131 (totally uncorrelated = 0.0).

The new design uses enough random elements to guarantee a uniform
distribution, no matter what the size of the modulus, by iteratively
adding and scaling the elements.  This preserves the quality of the
underlying generator, as shown by this result:

    Entropy = 7.999999 bits per byte.

    Optimum compression would reduce the size
    of this 134217728 byte file by 0 percent.

    Chi square distribution for 134217728 samples is 263.59, and
    randomly would exceed this value 50.00 percent of the times.

    Arithmetic mean value of data bytes is 127.5114 (127.5 = random).
    Monte Carlo value for Pi is 3.141132700 (error 0.01 percent).
    Serial correlation coefficient is -0.000044 (totally uncorrelated = 0.0).

20 years agoFix bug: DOUBLE_TO_FIXNUM_P was using limits that assumed the
Chris Hanson [Wed, 26 Nov 2003 05:01:25 +0000 (05:01 +0000)]
Fix bug: DOUBLE_TO_FIXNUM_P was using limits that assumed the
conversion used rounding; in fact, it uses truncation.

20 years agoEliminate optional time-zone argument to iso8601 parsers.
Chris Hanson [Wed, 26 Nov 2003 02:27:14 +0000 (02:27 +0000)]
Eliminate optional time-zone argument to iso8601 parsers.

20 years agoSeveral changes to ISO-8601 time:
Chris Hanson [Tue, 25 Nov 2003 23:55:33 +0000 (23:55 +0000)]
Several changes to ISO-8601 time:
  1. Allow space to separate date and time on input.
  2. Generate space as separator rather than T.
  3. Allow seconds to be omitted on input.

21 years agoImplement PGSQL-CONN-OPEN?.
Chris Hanson [Tue, 11 Nov 2003 04:46:43 +0000 (04:46 +0000)]
Implement PGSQL-CONN-OPEN?.

21 years agoUpdate for changes to finalizer.
Chris Hanson [Tue, 11 Nov 2003 02:03:16 +0000 (02:03 +0000)]
Update for changes to finalizer.

21 years agoAllow a channel to be closed more than once. This is the previous
Chris Hanson [Tue, 11 Nov 2003 01:53:38 +0000 (01:53 +0000)]
Allow a channel to be closed more than once.  This is the previous
behavior, and some callers expect to be able to do this.

21 years agoDon't use pathname as prompt argument to command; instead coerce to
Chris Hanson [Tue, 11 Nov 2003 01:46:43 +0000 (01:46 +0000)]
Don't use pathname as prompt argument to command; instead coerce to
namestring so that command history can be understood.

21 years agoSignal an error if ADD-TO-GC-FINALIZER! or REMOVE-FROM-GC-FINALIZER!
Chris Hanson [Tue, 11 Nov 2003 01:31:28 +0000 (01:31 +0000)]
Signal an error if ADD-TO-GC-FINALIZER! or REMOVE-FROM-GC-FINALIZER!
is passed a finalized object.  In REMOVE-ALL-FROM-GC-FINALIZER!,
finalize each object even if the object is already gone.

21 years agoSimplify gc-finalizer interface to guarantee that it is used
Chris Hanson [Mon, 10 Nov 2003 21:46:35 +0000 (21:46 +0000)]
Simplify gc-finalizer interface to guarantee that it is used
correctly.

21 years agoRemove references to %DELETE-DIB.
Chris Hanson [Mon, 10 Nov 2003 21:33:07 +0000 (21:33 +0000)]
Remove references to %DELETE-DIB.

21 years agoRationalize treatment of gc-finalized data structures.
Chris Hanson [Sun, 9 Nov 2003 04:41:02 +0000 (04:41 +0000)]
Rationalize treatment of gc-finalized data structures.

21 years agoMake sure channel is appropriately marked when it is closed.
Chris Hanson [Fri, 7 Nov 2003 20:35:48 +0000 (20:35 +0000)]
Make sure channel is appropriately marked when it is closed.

21 years agoChange PGSQL-GET-VALUE to return #F if field is NULL.
Chris Hanson [Fri, 7 Nov 2003 20:07:47 +0000 (20:07 +0000)]
Change PGSQL-GET-VALUE to return #F if field is NULL.

21 years agoAdd missing dload_initialize_file().
Chris Hanson [Thu, 6 Nov 2003 04:17:39 +0000 (04:17 +0000)]
Add missing dload_initialize_file().

21 years agoAdd condition types to identify postgresql errors. Add
Chris Hanson [Thu, 6 Nov 2003 04:16:50 +0000 (04:16 +0000)]
Add condition types to identify postgresql errors.  Add
CALL-WITH-PGSQL-CONN.

21 years agoDelete useless PGSQL-RESULT-STATUS-STRING.
Chris Hanson [Thu, 6 Nov 2003 00:16:21 +0000 (00:16 +0000)]
Delete useless PGSQL-RESULT-STATUS-STRING.

21 years agoCanonicalize strings in element content.
Chris Hanson [Mon, 3 Nov 2003 21:32:31 +0000 (21:32 +0000)]
Canonicalize strings in element content.

21 years agoCanonicalize strings in element content.
Chris Hanson [Mon, 3 Nov 2003 21:31:23 +0000 (21:31 +0000)]
Canonicalize strings in element content.

21 years agoFix CPUID instruction test; old test only did 386 detection and
Chris Hanson [Fri, 31 Oct 2003 20:45:35 +0000 (20:45 +0000)]
Fix CPUID instruction test; old test only did 386 detection and
omitted 486 detection.

21 years agoDon't require the target of a rename or copy operation to exist. The
Chris Hanson [Fri, 31 Oct 2003 05:31:15 +0000 (05:31 +0000)]
Don't require the target of a rename or copy operation to exist.  The
server should create the appropriate containers and folders.

21 years agoChange default of X-PASTE-FROM-CLIPBOARD to #T. This is the correct
Chris Hanson [Fri, 24 Oct 2003 04:53:51 +0000 (04:53 +0000)]
Change default of X-PASTE-FROM-CLIPBOARD to #T.  This is the correct
behavior for modern desktops, and for interoperability with Emacs 21.

21 years agoGC was blowing up with SIGSEGV when run under emacs, because recent
Chris Hanson [Wed, 15 Oct 2003 17:07:04 +0000 (17:07 +0000)]
GC was blowing up with SIGSEGV when run under emacs, because recent
changes to add threading support to output ports caused consing during
the GC.

21 years agoDon't put empty character data strings in element content.
Chris Hanson [Wed, 15 Oct 2003 01:25:14 +0000 (01:25 +0000)]
Don't put empty character data strings in element content.

21 years agoChange CALL-ON-PARSER-BUFFER-TAIL to CALL-WITH-PARSER-BUFFER-TAIL.
Chris Hanson [Sat, 11 Oct 2003 04:00:24 +0000 (04:00 +0000)]
Change CALL-ON-PARSER-BUFFER-TAIL to CALL-WITH-PARSER-BUFFER-TAIL.