mit-scheme.git
27 years ago8.0 debugging changes.
Stephen Adams [Sat, 12 Jul 1997 04:23:26 +0000 (04:23 +0000)]
8.0 debugging changes.

Added a procedure COMPILED-CODE-BLOCK/NAME to guess the name of the
procedure in the compiled code block.  If the dbg info has only one
top-level procedure then use the name of that procedure, otherwise
return false.  Requires LOAD-DEBUGGING-INFO-ON-DEMAND? to be true to
load the dbg info.

Fixed HARDWARE-TRAP-FRAME/DESCRIBE to use the new 8.0 debugging
information - it was an oversight that it was still trying to use the
old debugging locator to identify the file name for the compiled code
block.  Also use COMPILED-CODE-BLOCK/NAME to identify the procedure.

Together, these changes mean that (with LOAD-DEBUGGING-INFO-ON-DEMAND?
true), SIGSEGVs and SIGFPEs can usually identify the offending
procedure by name.

27 years agoChanged INT:->INEXACT to use INTEGER->FLONUM and FIXNUM->FLONUM, now
Stephen Adams [Fri, 11 Jul 1997 03:24:10 +0000 (03:24 +0000)]
Changed INT:->INEXACT to use INTEGER->FLONUM and FIXNUM->FLONUM, now
that INTEGER->FLONUM has been fixed to work correctly.  Note that the
8.0 compiler can open-code FIXNUM->FLONUM.

27 years agoFIXNUM->FLONUM is open-coded, but only if argument is a known fixnum.
Stephen Adams [Fri, 11 Jul 1997 02:35:04 +0000 (02:35 +0000)]
FIXNUM->FLONUM is open-coded, but only if argument is a known fixnum.

27 years agoBug fixes:
Stephen Adams [Thu, 10 Jul 1997 09:25:06 +0000 (09:25 +0000)]
Bug fixes:

  . "1/"  returns #F instead of signalling divide by zero.

  . "1.2345e-306" and "1e-400" with FLONUM-PARSER-FAST? true no longer
     signal arithmetic errors.

  . STRING->NUMBER and SUBSTRING->NUMBER now check their arguments

Other changes: FINISH-REAL now exploits the fact that some integers
have exact floating point representations and so flonum arithmetic can
be used to compute the correct result.  Note that to maintain
correctness, i*10^-e must be calculated as i/10^e.  The results are a
modest improvement on free-formatted random flonums (typically 16
digit) in the range 1e-7 to 1e35:

Times for 10000 flonums generated by (random range)

range 1e-100 1e-10 1e-5 1. 1e5 1e10 1e35 1e40
old 10180 8200 8210 7490 5610 3970 3990 4030
new 10280 8350 4690 4390 3930 3230 3180 4170

With FLONUM-PARSER-FAST? true, using the division trick gives better
error rates over a larger range.  Number of errors in 10000 random
flonums

range 1e-20 1e-10 1e-6 1. 1e10 1e20 1e35 1e40
old 3573 2400 3309 2798 3025  685  722 2730
new 2594 2778 1907 1010  761  685  772 2730

27 years agoBug fixes:
Stephen Adams [Thu, 10 Jul 1997 09:16:23 +0000 (09:16 +0000)]
Bug fixes:

  . "1/"  returns #F instead of signalling divide by zero.

  . "1.2345e-306" and "1e-400" with FLONUM-PARSER-FAST? true no longer
     signal arithmetic errors.

  . STRING->NUMBER and SUBSTRING->NUMBER now check their arguments

Other changes: FINISH-REAL now exploits the fact that some integers
have exact floating point representations and so flonum arithmetic can
be used to compute the correct result.  Note that to maintain
correctness, i*10^-e must be calculated as i/10^e.  The results are a
modest improvement on free-formatted random flonums (typically 16
digit) in the range 1e-7 to 1e35:

Times for 10000 flonums generated by (random range)

range 1e-100 1e-10 1e-5 1. 1e5 1e10 1e35 1e40
old 10180 8200 8210 7490 5610 3970 3990 4030
new 10280 8350 4690 4390 3930 3230 3180 4170

With FLONUM-PARSER-FAST? true, using the division trick gives better
error rates over a larger range.  Number of errors in 10000 random
flonums

range 1e-20 1e-10 1e-6 1. 1e10 1e20 1e35 1e40
old 3573 2400 3309 2798 3025  685  722 2730
new 2594 2778 1907 1010  761  685  772 2730

27 years agoFix a couple of typos.
Chris Hanson [Thu, 10 Jul 1997 06:35:34 +0000 (06:35 +0000)]
Fix a couple of typos.

27 years agoAdded missing open-coders for:
Stephen Adams [Wed, 9 Jul 1997 15:12:44 +0000 (15:12 +0000)]
Added missing open-coders for:

SYSTEM-PAIR-SET-CAR! SYSTEM-PAIR-SET-CDR!
SYSTEM-HUNK3-SET-CXR0! SYSTEM-HUNK3-SET-CXR1! SYSTEM-HUNK3-SET-CXR2!

27 years agoImplemented FORCE as a compiled procedure. SF no longer integrates
Stephen Adams [Wed, 9 Jul 1997 14:40:07 +0000 (14:40 +0000)]
Implemented FORCE as a compiled procedure.  SF no longer integrates
FORCE as a primitive procedure.

There is a minor bootstrapping problem with the standard build
scripts since any pre-existing version of SF will integrate the
primitive FORCE, and SF is only run on files that have changed.
A solution is:

    1. rebuild the system
    2. remove any .bin files that call FORCE
    3. rebuild the system using bands produced in step 1.

Timings under Scheme 8.0 on plex:

Test Primitive Compiled
 [1]  10370ms   560ms
 [2]    180ms   130ms
 [3]       440ms   270ms

(let ((nums (list->stream (make-initialized-list 100001 identity-procedure)))
      (primes
       ((access make-prime-numbers-stream (->environment '(runtime stream))))))
  (show-time (lambda () (stream-ref nums 100000)))    ; [1]
  (show-time (lambda () (stream-ref nums 100000)))    ; [2]
  (show-time (lambda () (stream-ref primes 1000))))   ; [3]

27 years agoAdded rules for rewriting (INTEGER->FLONUM N <flags>) to (FIXNUM->FLONUM N).
Stephen Adams [Wed, 9 Jul 1997 06:44:01 +0000 (06:44 +0000)]
Added rules for rewriting (INTEGER->FLONUM N <flags>) to (FIXNUM->FLONUM N).

27 years agoImproved range of analysis for REMAINDER & INTEGER-REMAINDER.
Stephen Adams [Wed, 9 Jul 1997 02:25:53 +0000 (02:25 +0000)]
Improved range of analysis for REMAINDER & INTEGER-REMAINDER.
INT:comparisons reduce to FIX: version for suitable arguments.
INTEGER-ZERO? reduced to EQ? for exact integer arguments.

27 years agoChanged bignum_to_double to produce a correctly rounded result. The
Stephen Adams [Tue, 8 Jul 1997 19:12:51 +0000 (19:12 +0000)]
Changed bignum_to_double to produce a correctly rounded result.  The
code is a lot hairier since it implements IEEE style round to even,
but it is not much slower than the old `accumulate' loop since it
rarely has to look at more that two or three words.

The new version no longer signals an floating point overflow error on

(INTEGER->FLONUM (- (EXPT 2 1024) 1) #b10)

This means that (INTEGER->FLONUM N #b10) can again be used for computing
EXACT->INEXACT on exact integers, which should be 5-15x faster.

There were several places which has a loop to find the bit position of
the most significant bit in a word.  This code has been converted into
a macro, and tweaked to be a bit faster.  Presumably some machines
have this operation as an instruction.

27 years agoChange integer_length_in_bits to return a fixnum if possible.
Stephen Adams [Tue, 8 Jul 1997 06:25:59 +0000 (06:25 +0000)]
Change integer_length_in_bits to return a fixnum if possible.

27 years agoSpeed up RATIO->FLONUM and INT:->INEXACT by using (INTEGER->FLONUM N
Stephen Adams [Tue, 8 Jul 1997 06:04:02 +0000 (06:04 +0000)]
Speed up RATIO->FLONUM and INT:->INEXACT by using (INTEGER->FLONUM N
#b11) when N is small enough that it has an `exact' flonum
representation.  A prior log message comments on this, but the code
does not seem to take advantage.

DISCUSSION:

Question:  why is (INT:->INEXACT N) not simply (INTEGER->FLONUM N #b10) ?

(EXACT->INEXACT (expt 2 3000)) used to fail in INTEGER->FLONUM,
but now it returns MAXDOUBLE (due to ldexp), but an Infinity or an error
would seem better.

R4RS says: If an exact argument has no reasonably close inexact
equivalent, the a violation of an implementation restriction may be
reported.

I would read this as NOT returning MAXDOUBLE as, say, 2^3000 is not
`reasonably close' to any FP number.

A previous log entry says INTEGER->FLONUM does not round reliably.
This is because bignum_to_double in "bignum.c" accumulates, which may
cause error due to intermediate rounding.

Perhaps bignum_to_double should be changed to extract the top 53 bits
and explicitly calculate the exponent; another test would be required
in place of bignum_fits_in_word_p, which does not (and should not)
understand rounding carry.  Currently, calling bignum_to_double on

(- (expt 2 1024) 1)

signals a floating point overflow or returns an infinity depending on
which FPU exceptions are enabled.

If bignum_to_double was fixed it could be a lot faster than all the
current bignum arithmetic.

27 years agoFixed thinko in FIXNUM->FLONUM.
Stephen Adams [Tue, 8 Jul 1997 03:07:06 +0000 (03:07 +0000)]
Fixed thinko in FIXNUM->FLONUM.

27 years agoChanges in INT:->STRING to improve performance. 30% faster for huge
Stephen Adams [Tue, 8 Jul 1997 01:22:28 +0000 (01:22 +0000)]
Changes in INT:->STRING to improve performance.  30% faster for huge
bignums (10^1000), up to 2x-3x faster for small bignums (up to
10^100), slightly faster for fixnums.

 . Use a local version of DIGIT->CHAR since we don't need to check the
   radix.

 . PRINT-FIXNUM modified to be useful for generating digits in the
   middle of a number.

 . PRINT-MEDIUM and PRINT-LARGE work in units of several digits, the
   length of a unit pre-computed so that a unit can be printed using
   fixnum arithmetic.

 . PRINT-MEDIUM chops off groups of digits that can be printed by
   PRINT-FIXNUM.  The microcode primitive LISTIFY-BIGNUM is no longer
   used.

 . PRINT-LARGE has a special check to try to avoid the last multiply
   in building the power stack (which is asymptotically 2/3 of the
   cost of building the stack).  The recursion termination check is
   generalized to also catch sequences of digits with enough leading
   zeroes to be formatted by PRINT-FIXNUM (this can double the speed
   of printing numbers with many zeros).

27 years agoRename "c+e" to "all".
Chris Hanson [Mon, 7 Jul 1997 23:27:44 +0000 (23:27 +0000)]
Rename "c+e" to "all".

27 years agoChanges in INT:->STRING to improve performance. 30% faster for huge
Stephen Adams [Mon, 7 Jul 1997 20:24:45 +0000 (20:24 +0000)]
Changes in INT:->STRING to improve performance.  30% faster for huge
bignums (10^1000), up to 2x-3x faster for small bignums (up to
10^100), slightly faster for fixnums.

 . Use a local version of DIGIT->CHAR since we don't need to check the
   radix.

 . PRINT-FIXNUM modified to be useful for generating digits in the
   middle of a number.

 . PRINT-MEDIUM and PRINT-LARGE work in units of several digits, the
   length of a unit pre-computed so that a unit can be printed using
   fixnum arithmetic.

 . PRINT-MEDIUM chops off groups of digits that can be printed by
   PRINT-FIXNUM.  The microcode primitive LISTIFY-BIGNUM is no longer
   used.

 . PRINT-LARGE has a special check to try to avoid the last multiply
   in building the power stack (which is asymptotically 2/3 of the
   cost of building the stack).  The recursion termination check is
   generalized to also catch sequences of digits with enough leading
   zeroes to be formatted by PRINT-FIXNUM (this can double the speed
   of printing numbers with many zeros).

27 years agoIn bignum_remainder, replaced special case for remainder by `1' with a
Stephen Adams [Fri, 4 Jul 1997 16:02:18 +0000 (16:02 +0000)]
In bignum_remainder, replaced special case for remainder by `1' with a
special case for remainder by small power of two.

27 years agoPerformance enhancements:
Stephen Adams [Thu, 3 Jul 1997 21:55:23 +0000 (21:55 +0000)]
Performance enhancements:

1. Changed DRAGON4-FIXUP to use fast scaling similar to described in
   Burger and Dybvig (reference in file).  This makes an order of
   magnitude difference for unparsing flonums with large exponents.

2. Changed DRAGON4 to pass exponent to DRAGON4-FIXUP for scaling
   estimate.

3. Systematically replaced calls to generic operators with calls to
   int: variants (and rat:expt).  The vast majority of operations are
   on bignums.  Gives a gain of about 20%.

Timings (Non-GC runtime) in msec for 1000 calls on 200Mhz Pentium Pro.

Example Number Original Fast Scaling and INT:ops

3.141592653589793 840 820 580
1022. 320 300 230
1.234e300 4870 490 400
1.23456e-300 7130 680 540

It is still pretty sad that you can format only a few thousand numbers
per second.

PC-sampling shows that most of the time is spent as follows:

 (27% primitive 253 "INTEGER-MULTIPLY")
 (24% primitive 200 "GARBAGE-COLLECT")
 (24% primitive 248 "INTEGER-DIVIDE")
 (5%. primitive 260 "INTEGER-SUBTRACT")

27 years agoMake sure that RMAIL variables are initialized before they are used.
Chris Hanson [Thu, 3 Jul 1997 07:23:07 +0000 (07:23 +0000)]
Make sure that RMAIL variables are initialized before they are used.

27 years agoFix bug introduced by last change.
Chris Hanson [Fri, 27 Jun 1997 20:56:18 +0000 (20:56 +0000)]
Fix bug introduced by last change.

27 years agoToe the current ideological line.
Chris Hanson [Fri, 27 Jun 1997 18:51:46 +0000 (18:51 +0000)]
Toe the current ideological line.

27 years agoFix typo.
Stephen Adams [Fri, 27 Jun 1997 14:06:10 +0000 (14:06 +0000)]
Fix typo.

27 years agoFixed a bug in argument checking SUBSTRING. Introduced
Stephen Adams [Thu, 26 Jun 1997 23:40:24 +0000 (23:40 +0000)]
Fixed a bug in argument checking SUBSTRING.  Introduced
GUARANTEE-SUBSTRING and edited other procedures to use it.

27 years agoFixed a bug in argument checking SUBSTRING. Introduced
Stephen Adams [Thu, 26 Jun 1997 22:55:46 +0000 (22:55 +0000)]
Fixed a bug in argument checking SUBSTRING.  Introduced
GUARANTEE-SUBSTRING and edited other procedures to use it.

27 years agoDon't use the external Scheme DLL any more. This is important for the
Chris Hanson [Thu, 26 Jun 1997 07:05:11 +0000 (07:05 +0000)]
Don't use the external Scheme DLL any more.  This is important for the
moment as I have not yet figured out how to make working DLLs with the
new Watcom compiler.  However, the Scheme DLL probably doesn't matter
any more as we no longer care about Windows 3.1.

27 years agoWatcom 11: use __try/__except for new version of Watcom compiler, as
Chris Hanson [Thu, 26 Jun 1997 07:02:22 +0000 (07:02 +0000)]
Watcom 11: use __try/__except for new version of Watcom compiler, as
it is now fixed and works properly.

27 years agoWatcom 11: eliminate compiler warning.
Chris Hanson [Thu, 26 Jun 1997 06:59:54 +0000 (06:59 +0000)]
Watcom 11: eliminate compiler warning.

27 years agoWatcom 11: various changes.
Chris Hanson [Thu, 26 Jun 1997 06:56:24 +0000 (06:56 +0000)]
Watcom 11: various changes.

27 years agoWatcom 11: needs kernel and user librarys named explicitly now.
Chris Hanson [Thu, 26 Jun 1997 06:56:04 +0000 (06:56 +0000)]
Watcom 11: needs kernel and user librarys named explicitly now.

27 years agoChange for Watcom 11: documentation claims that 0 is not a valid value
Chris Hanson [Thu, 26 Jun 1997 06:55:29 +0000 (06:55 +0000)]
Change for Watcom 11: documentation claims that 0 is not a valid value
for the stack-size parameter to beginthreadx.

27 years agoChange RCS-FIND-DELTA to have an extra argument saying whether or not
Chris Hanson [Wed, 25 Jun 1997 07:26:48 +0000 (07:26 +0000)]
Change RCS-FIND-DELTA to have an extra argument saying whether or not
to signal an error if there is no such delta.  Use this feature to
make VC-NEXT-ACTION do the right thing when it is given a version
number that doesn't exist.

27 years agoChange RCS-FIND-DELTA to have an extra argument saying whether or not
Chris Hanson [Wed, 25 Jun 1997 07:25:08 +0000 (07:25 +0000)]
Change RCS-FIND-DELTA to have an extra argument saying whether or not
to signal an error if there is no such delta.

27 years agoExtensive changes corresponding to new release of SOS that uses
Chris Hanson [Wed, 25 Jun 1997 07:23:10 +0000 (07:23 +0000)]
Extensive changes corresponding to new release of SOS that uses
generic procedure support provided by the runtime system.

27 years agoExtensive changes corresponding to new release of SOS that uses
Chris Hanson [Wed, 25 Jun 1997 07:22:56 +0000 (07:22 +0000)]
Extensive changes corresponding to new release of SOS that uses
generic procedure support provided by the runtime system.

27 years agoAllow computed methods to return concrete methods as well as
Chris Hanson [Wed, 25 Jun 1997 06:18:30 +0000 (06:18 +0000)]
Allow computed methods to return concrete methods as well as
procedures, provided that the returned method's specializers are
restrictions of the computed method's specializers.

27 years agoDelete accessor slot properties after they are used. This prevents
Chris Hanson [Wed, 25 Jun 1997 05:31:31 +0000 (05:31 +0000)]
Delete accessor slot properties after they are used.  This prevents
them from holding on to the generic procedures, and from defining
identical methods for each subclass.

27 years agoFix typo.
Chris Hanson [Wed, 25 Jun 1997 04:03:55 +0000 (04:03 +0000)]
Fix typo.

27 years agoFix think-o.
Chris Hanson [Wed, 25 Jun 1997 04:02:57 +0000 (04:02 +0000)]
Fix think-o.

27 years agoAllow INSTANCE-PREDICATE to take a specializer as an argument rather
Chris Hanson [Wed, 25 Jun 1997 03:52:41 +0000 (03:52 +0000)]
Allow INSTANCE-PREDICATE to take a specializer as an argument rather
than just a class.

27 years agoError-check arguments to MAKE-CLASS. Make sure that dispatch tag of
Chris Hanson [Wed, 25 Jun 1997 03:51:58 +0000 (03:51 +0000)]
Error-check arguments to MAKE-CLASS.  Make sure that dispatch tag of
record-type class is correct.

27 years agoAllow record types to be used in place of classes wherever sensible.
Chris Hanson [Wed, 25 Jun 1997 03:44:50 +0000 (03:44 +0000)]
Allow record types to be used in place of classes wherever sensible.

27 years agoSignal CONDITION-TYPE:NO-SUCH-SLOT when given an invalid slot name.
Chris Hanson [Wed, 25 Jun 1997 03:43:03 +0000 (03:43 +0000)]
Signal CONDITION-TYPE:NO-SUCH-SLOT when given an invalid slot name.

27 years agoSignal CONDITION-TYPE:NO-SUCH-SLOT when given an invalid slot name.
Chris Hanson [Wed, 25 Jun 1997 03:28:58 +0000 (03:28 +0000)]
Signal CONDITION-TYPE:NO-SUCH-SLOT when given an invalid slot name.

27 years agoAdd CONDITION-TYPE:NO-SUCH-SLOT and modify record code to signal this
Chris Hanson [Wed, 25 Jun 1997 03:28:26 +0000 (03:28 +0000)]
Add CONDITION-TYPE:NO-SUCH-SLOT and modify record code to signal this
error when given an invalid slot name.

27 years agoModify %RECORD-ACCESSOR to signal an error if the accessed slot is
Chris Hanson [Tue, 24 Jun 1997 05:34:28 +0000 (05:34 +0000)]
Modify %RECORD-ACCESSOR to signal an error if the accessed slot is
uninitialized.

27 years agoSPECIALIZER=? was not handling the case of mixed arguments properly.
Chris Hanson [Thu, 19 Jun 1997 21:52:15 +0000 (21:52 +0000)]
SPECIALIZER=? was not handling the case of mixed arguments properly.

27 years agoEliminate UNION-SPECIALIZER=? and UNION-SPECIALIZER-CLASSES.
Chris Hanson [Thu, 19 Jun 1997 21:45:12 +0000 (21:45 +0000)]
Eliminate UNION-SPECIALIZER=? and UNION-SPECIALIZER-CLASSES.

27 years agoAdd option to allow user to specify a different name for the type
Chris Hanson [Thu, 19 Jun 1997 21:43:01 +0000 (21:43 +0000)]
Add option to allow user to specify a different name for the type
descriptor.

27 years agoEliminate UNION-SPECIALIZER=? and UNION-SPECIALIZER-CLASSES.
Chris Hanson [Thu, 19 Jun 1997 21:35:04 +0000 (21:35 +0000)]
Eliminate UNION-SPECIALIZER=? and UNION-SPECIALIZER-CLASSES.

27 years agoEliminate UNION-SPECIALIZER=? and UNION-SPECIALIZER-CLASSES.
Chris Hanson [Thu, 19 Jun 1997 21:28:26 +0000 (21:28 +0000)]
Eliminate UNION-SPECIALIZER=? and UNION-SPECIALIZER-CLASSES.

27 years agoEliminate unused definition.
Chris Hanson [Thu, 19 Jun 1997 21:17:12 +0000 (21:17 +0000)]
Eliminate unused definition.

27 years agoAdd procedure SPECIALIZER-CLASSES.
Chris Hanson [Thu, 19 Jun 1997 20:22:51 +0000 (20:22 +0000)]
Add procedure SPECIALIZER-CLASSES.

27 years agoSUBCLASS? must allow its second argument to be any specializer.
Chris Hanson [Thu, 19 Jun 1997 20:12:30 +0000 (20:12 +0000)]
SUBCLASS? must allow its second argument to be any specializer.

27 years agoFix bug: microcode was forgetting about file being opened when it ran
Chris Hanson [Thu, 19 Jun 1997 05:55:51 +0000 (05:55 +0000)]
Fix bug: microcode was forgetting about file being opened when it ran
out of channel-table entries.  This left the file locked until Scheme
was exited.

Additionally, the size of the channel table has been increased, and
the number of allowable handles set to its maximum value.

27 years agoWhen trying to get information about a file, if we get permission
Chris Hanson [Thu, 19 Jun 1997 05:17:14 +0000 (05:17 +0000)]
When trying to get information about a file, if we get permission
denied, try again using the directory reader.  Some files, e.g.
"\pagefile.sys", cannot be interrogated in the normal fashion, but are
given in a directory listing.  (More quality software design.)

In SET-FILE-TIMES!, temporarily disable the read-only bit if it is
enabled, as this prevents the primitive from completing successfully.

27 years agoIgnore the mouse click that activates a window.
Chris Hanson [Thu, 19 Jun 1997 05:14:14 +0000 (05:14 +0000)]
Ignore the mouse click that activates a window.

27 years agoFix two bugs in article-posting code.
Chris Hanson [Wed, 18 Jun 1997 07:55:26 +0000 (07:55 +0000)]
Fix two bugs in article-posting code.

27 years agoMake sure that all article ranges are clipped when the group is
Chris Hanson [Wed, 18 Jun 1997 07:05:46 +0000 (07:05 +0000)]
Make sure that all article ranges are clipped when the group is
updated.

27 years agoChange slot-option merging code so that INITIAL-VALUE and INITIALIZER
Chris Hanson [Tue, 17 Jun 1997 08:40:02 +0000 (08:40 +0000)]
Change slot-option merging code so that INITIAL-VALUE and INITIALIZER
shadow each other properly.

27 years agoChange slot-option merging code so that INITIAL-VALUE and INITIALIZER
Chris Hanson [Tue, 17 Jun 1997 08:10:41 +0000 (08:10 +0000)]
Change slot-option merging code so that INITIAL-VALUE and INITIALIZER
shadow each other properly.

27 years agoAdd code to compute MD5 checksum for a file; to convert a checksum to
Chris Hanson [Tue, 17 Jun 1997 04:59:30 +0000 (04:59 +0000)]
Add code to compute MD5 checksum for a file; to convert a checksum to
either a number or a hex string; and to encrypt a substring.

27 years agoAdd primitive that accepts input as a substring rather than a string.
Chris Hanson [Tue, 17 Jun 1997 04:58:41 +0000 (04:58 +0000)]
Add primitive that accepts input as a substring rather than a string.

27 years agoAdd new primitives to simplify writing code to perform MD5 checksum on
Chris Hanson [Tue, 17 Jun 1997 04:58:06 +0000 (04:58 +0000)]
Add new primitives to simplify writing code to perform MD5 checksum on
arbitrary-length streams.

27 years agoChanges to interface and semantics of INSTANCE-CONSTRUCTOR.
Chris Hanson [Mon, 16 Jun 1997 09:01:25 +0000 (09:01 +0000)]
Changes to interface and semantics of INSTANCE-CONSTRUCTOR.

27 years agoNow that MAKE-METHOD calls INITIALIZE-INSTANCE, it is necessary to
Chris Hanson [Mon, 16 Jun 1997 09:00:48 +0000 (09:00 +0000)]
Now that MAKE-METHOD calls INITIALIZE-INSTANCE, it is necessary to
provide a default EMP for INITIALIZE-INSTANCE until the default method
is installed.  This is done by means of the runtime system's default
EMP kludge.

27 years agoExtensive revamp of INSTANCE-CONSTRUCTOR. Optional argument now
Chris Hanson [Mon, 16 Jun 1997 08:59:06 +0000 (08:59 +0000)]
Extensive revamp of INSTANCE-CONSTRUCTOR.  Optional argument now
specifies how many additional arguments the constructor accepts; the
additional arguments are passed to INITIALIZE-INSTANCE.  By default,
any number of additional arguments are accepted and passed.

27 years agoModify the CONSTRUCTOR class option to DEFINE-CLASS to allow it to
Chris Hanson [Sun, 15 Jun 1997 07:02:16 +0000 (07:02 +0000)]
Modify the CONSTRUCTOR class option to DEFINE-CLASS to allow it to
specify the CALL-INIT-INSTANCE? argument to INSTANCE-CONSTRUCTOR.

27 years agoImplement support for INITIAL-VALUE slot keyword. Add new generic
Chris Hanson [Sun, 15 Jun 1997 06:41:44 +0000 (06:41 +0000)]
Implement support for INITIAL-VALUE slot keyword.  Add new generic
procedure INITIALIZE-INSTANCE, and give INSTANCE-CONSTRUCTOR and
optional boolean argument that, if true, says to call
INITIALIZE-INSTANCE on the instance before it is returned.

27 years agoAdd blowfish and MD5 support.
Chris Hanson [Sun, 15 Jun 1997 03:43:43 +0000 (03:43 +0000)]
Add blowfish and MD5 support.

27 years agoFix bug that could cause SEGV when downloading article bodies.
Chris Hanson [Sat, 14 Jun 1997 07:34:04 +0000 (07:34 +0000)]
Fix bug that could cause SEGV when downloading article bodies.

27 years agoFix typo.
Chris Hanson [Sat, 14 Jun 1997 01:22:05 +0000 (01:22 +0000)]
Fix typo.

27 years agoAdd definition for SQUARE.
Chris Hanson [Thu, 12 Jun 1997 21:10:43 +0000 (21:10 +0000)]
Add definition for SQUARE.

27 years agoFix bug: when CALL-NEXT-METHOD used in DEFINE-METHOD, the generated
Chris Hanson [Thu, 12 Jun 1997 07:33:58 +0000 (07:33 +0000)]
Fix bug: when CALL-NEXT-METHOD used in DEFINE-METHOD, the generated
code was using old calling conventions.

27 years agoMove COMPILE-FILE into the compiler proper.
Chris Hanson [Thu, 12 Jun 1997 04:37:55 +0000 (04:37 +0000)]
Move COMPILE-FILE into the compiler proper.

27 years agoAdd COMPILE-FILE incremental file compilation procedure.
Chris Hanson [Thu, 12 Jun 1997 04:36:25 +0000 (04:36 +0000)]
Add COMPILE-FILE incremental file compilation procedure.

27 years agoFix bug: predicate not being generated when other class options given.
Chris Hanson [Wed, 11 Jun 1997 07:45:04 +0000 (07:45 +0000)]
Fix bug: predicate not being generated when other class options given.

27 years agoFix bug: Scheme variable completion was failing in some cases because
Chris Hanson [Tue, 10 Jun 1997 05:58:13 +0000 (05:58 +0000)]
Fix bug: Scheme variable completion was failing in some cases because
the completion code was unable to obtain the correct environment in
which to look up the variables.

27 years agoFix typo.
Chris Hanson [Mon, 9 Jun 1997 21:17:48 +0000 (21:17 +0000)]
Fix typo.

27 years agoAdd support for Blowfish.
Chris Hanson [Mon, 9 Jun 1997 08:12:28 +0000 (08:12 +0000)]
Add support for Blowfish.

27 years agoAdd procedure to test for availability of Blowfish primitives.
Chris Hanson [Mon, 9 Jun 1997 08:08:00 +0000 (08:08 +0000)]
Add procedure to test for availability of Blowfish primitives.
Modularize ciphertext-file support.

27 years agoAdd interfaces to MD5 and Blowfish.
Chris Hanson [Mon, 9 Jun 1997 07:45:43 +0000 (07:45 +0000)]
Add interfaces to MD5 and Blowfish.

27 years agoInitial revision
Chris Hanson [Mon, 9 Jun 1997 07:43:58 +0000 (07:43 +0000)]
Initial revision

27 years agoChange regular-expression primitives to treat failure-stack overflow
Chris Hanson [Fri, 6 Jun 1997 07:00:53 +0000 (07:00 +0000)]
Change regular-expression primitives to treat failure-stack overflow
as equivalent to "no match".  Also, increase the maximum size of the
failure stack from 1000 to 20000.  This is important because it is far
too easy to overflow the stack, the stack-overflow errors cause Edwin
to bomb out.  This is a problem because stack-overflow errors can be
caused by user data -- the proximate example being a News message that
bombed out the News reader because it had a header line was too
complicated to match.  Better to fail in these situations than to
error.

27 years agoChange regular-expression searches to treat failure-stack overflow as
Chris Hanson [Fri, 6 Jun 1997 06:56:42 +0000 (06:56 +0000)]
Change regular-expression searches to treat failure-stack overflow as
a failure to match, and to continue the search.

27 years agoModify encrypted-file support to allow the ".ky" suffix. This is
Chris Hanson [Fri, 6 Jun 1997 05:06:04 +0000 (05:06 +0000)]
Modify encrypted-file support to allow the ".ky" suffix.  This is
desirable because mixed-case filenames cause trouble when mapping
between unix and case-insensitive file systems.

27 years agoModify encrypted-file support to allow the ".ky" suffix. This is
Chris Hanson [Fri, 6 Jun 1997 05:04:57 +0000 (05:04 +0000)]
Modify encrypted-file support to allow the ".ky" suffix.  This is
desirable because mixed-case filenames cause trouble when mapping
between unix and case-insensitive file systems.

27 years agoFix thinko in SET-RECORD-TYPE-UNPARSER-METHOD!.
Chris Hanson [Thu, 5 Jun 1997 03:06:03 +0000 (03:06 +0000)]
Fix thinko in SET-RECORD-TYPE-UNPARSER-METHOD!.

27 years agoReimplement INSTANCE-PREDICATE to return a generic procedure. Move
Chris Hanson [Wed, 4 Jun 1997 22:44:21 +0000 (22:44 +0000)]
Reimplement INSTANCE-PREDICATE to return a generic procedure.  Move
INSTANCE-PREDICATE and INSTANCE-OF? to "instance.scm".

27 years agoAdd SOS to list of directories needing to be processed.
Chris Hanson [Wed, 4 Jun 1997 22:29:57 +0000 (22:29 +0000)]
Add SOS to list of directories needing to be processed.

27 years agoReimplement INSTANCE-PREDICATE to return a generic procedure. Move
Chris Hanson [Wed, 4 Jun 1997 22:29:00 +0000 (22:29 +0000)]
Reimplement INSTANCE-PREDICATE to return a generic procedure.  Move
INSTANCE-PREDICATE and INSTANCE-OF? to "instance.scm".

27 years agoEliminate references to INSTANCE-PREDICATE.
Chris Hanson [Wed, 4 Jun 1997 22:24:21 +0000 (22:24 +0000)]
Eliminate references to INSTANCE-PREDICATE.

27 years agoAdd options allowing DEFINE-CLASS to automatically generate predicate
Chris Hanson [Wed, 4 Jun 1997 22:15:31 +0000 (22:15 +0000)]
Add options allowing DEFINE-CLASS to automatically generate predicate
and constructor procedures.  By default, generate a predicate.

27 years agoModify undigestifier so that it handles newer digests, e.g. the Debian
Chris Hanson [Wed, 4 Jun 1997 21:58:14 +0000 (21:58 +0000)]
Modify undigestifier so that it handles newer digests, e.g. the Debian
mailing-list digestifier.

27 years agoInitial revision
Chris Hanson [Wed, 4 Jun 1997 20:01:31 +0000 (20:01 +0000)]
Initial revision

27 years agoAdd line to startup banner.
Chris Hanson [Wed, 4 Jun 1997 06:11:24 +0000 (06:11 +0000)]
Add line to startup banner.

27 years agoInitial revision
Chris Hanson [Wed, 4 Jun 1997 06:09:57 +0000 (06:09 +0000)]
Initial revision

27 years agoChange Linux file-system-type code to define explicit constants for
Chris Hanson [Sun, 1 Jun 1997 17:54:27 +0000 (17:54 +0000)]
Change Linux file-system-type code to define explicit constants for
many types.  The reason is that many of these types are hard to get
from the headers, either due to versioning problems with the header
files, or because the desired definitions are hidden behind kernel
conditionalizations.

27 years agoFix bug: news server can return #(0 0 0) as server-info for a news
Chris Hanson [Tue, 27 May 1997 19:35:17 +0000 (19:35 +0000)]
Fix bug: news server can return #(0 0 0) as server-info for a news
group, indicating that there are no articles on the server.  News
reader was expecting the last two numbers to be article numbers, but
zero is not a valid article number.

27 years agoFix bug: news server can return #(0 0 0) as server-info for a news
Chris Hanson [Tue, 27 May 1997 07:30:31 +0000 (07:30 +0000)]
Fix bug: news server can return #(0 0 0) as server-info for a news
group, indicating that there are no articles on the server.  News
reader was expecting the last two numbers to be article numbers, but
zero is not a valid article number.