mit-scheme.git
6 years agoPut guarantee and friends into "boot" for cold-load access.
Chris Hanson [Tue, 16 Jan 2018 04:05:18 +0000 (20:05 -0800)]
Put guarantee and friends into "boot" for cold-load access.

6 years agoImplement simple weak sets.
Chris Hanson [Tue, 16 Jan 2018 04:02:20 +0000 (20:02 -0800)]
Implement simple weak sets.

6 years agoblowfish: Doco typo.
Matt Birkholz [Mon, 15 Jan 2018 17:38:52 +0000 (10:38 -0700)]
blowfish: Doco typo.

6 years agogdbm: Doco typos.
Matt Birkholz [Mon, 15 Jan 2018 17:36:56 +0000 (10:36 -0700)]
gdbm: Doco typos.

6 years agoffi: Missing alienate_float_environment causes foreigners to SIGFPE.
Matt Birkholz [Mon, 15 Jan 2018 17:27:01 +0000 (10:27 -0700)]
ffi: Missing alienate_float_environment causes foreigners to SIGFPE.

6 years agoRefactor handling of explicit tag supersets.
Chris Hanson [Sun, 14 Jan 2018 04:16:52 +0000 (20:16 -0800)]
Refactor handling of explicit tag supersets.

Was hash table, now is weak list.

6 years agoImplement weak-pair procedures as primitives and open-code them.
Chris Hanson [Sun, 14 Jan 2018 03:32:53 +0000 (19:32 -0800)]
Implement weak-pair procedures as primitives and open-code them.

Also put the primitives in "boot" so they are available early.

6 years agoEliminate tagging strategies altogether.
Chris Hanson [Sat, 13 Jan 2018 21:30:07 +0000 (13:30 -0800)]
Eliminate tagging strategies altogether.

The structure of the tagged data belongs outside of the core code.

6 years agoFix test: was depending on tagging strategy to differentiate datum tests.
Chris Hanson [Sat, 13 Jan 2018 21:29:13 +0000 (13:29 -0800)]
Fix test: was depending on tagging strategy to differentiate datum tests.

6 years agoFix bug: two copies of unicode-char? were causing confusion.
Chris Hanson [Sat, 13 Jan 2018 21:07:38 +0000 (13:07 -0800)]
Fix bug: two copies of unicode-char? were causing confusion.

6 years agoAdd "assertion number" to failure reports.
Chris Hanson [Sat, 13 Jan 2018 21:06:23 +0000 (13:06 -0800)]
Add "assertion number" to failure reports.

This is clumsy but better than nothing.

6 years agoEliminate tagged-object-{tag,datum} since they're identical to the % ones.
Chris Hanson [Sat, 13 Jan 2018 19:13:38 +0000 (11:13 -0800)]
Eliminate tagged-object-{tag,datum} since they're identical to the % ones.

6 years agoDo stupid macrology to work around lack of vector-ish open coding.
Chris Hanson [Sat, 13 Jan 2018 07:16:13 +0000 (23:16 -0800)]
Do stupid macrology to work around lack of vector-ish open coding.

6 years agoFix open-coding of default-object?.
Chris Hanson [Sat, 13 Jan 2018 06:28:54 +0000 (22:28 -0800)]
Fix open-coding of default-object?.

Not sure why this makes any difference, but it seems to.

6 years agoFix bug in compilation of %record with 0 or 1 arguments.
Chris Hanson [Sat, 13 Jan 2018 05:44:59 +0000 (21:44 -0800)]
Fix bug in compilation of %record with 0 or 1 arguments.

6 years agoImplement tagged-object primitives and open-code them in compiler.
Chris Hanson [Sat, 13 Jan 2018 05:03:03 +0000 (21:03 -0800)]
Implement tagged-object primitives and open-code them in compiler.

Also push record and tagged-object primitives into "boot" so they are available
early in the cold load.

6 years agoSimplify the story of tagging strategy.
Chris Hanson [Fri, 12 Jan 2018 07:47:18 +0000 (23:47 -0800)]
Simplify the story of tagging strategy.

It's still not quite right, but it is at least somewhat closer.

6 years agoUse macro to speed up implementations of record accessors.
Chris Hanson [Thu, 11 Jan 2018 07:54:03 +0000 (23:54 -0800)]
Use macro to speed up implementations of record accessors.

6 years agoRemove documentation for now-obsolete generic-procedure dispatch.
Chris Hanson [Thu, 11 Jan 2018 07:24:10 +0000 (23:24 -0800)]
Remove documentation for now-obsolete generic-procedure dispatch.

6 years agoSimplify predicate-tagging so that it provides only the essentials.
Chris Hanson [Thu, 11 Jan 2018 07:15:31 +0000 (23:15 -0800)]
Simplify predicate-tagging so that it provides only the essentials.

This too is subject to change.  The tagging strategy idea needs to be revisited
in a larger context since it doesn't account complex structures like records.

6 years agoEliminate record-entity names and support.
Chris Hanson [Thu, 11 Jan 2018 04:03:17 +0000 (20:03 -0800)]
Eliminate record-entity names and support.

6 years agoDelete some unnecessary procedures.
Chris Hanson [Thu, 11 Jan 2018 03:37:47 +0000 (19:37 -0800)]
Delete some unnecessary procedures.

6 years agoTweak dispatch-tag slightly.
Chris Hanson [Thu, 11 Jan 2018 03:19:58 +0000 (19:19 -0800)]
Tweak dispatch-tag slightly.

6 years agoPush definition of register-predicate! to beginning of cold load.
Chris Hanson [Wed, 10 Jan 2018 06:00:39 +0000 (22:00 -0800)]
Push definition of register-predicate! to beginning of cold load.

6 years agoEliminate use of record-specific printing registration.
Chris Hanson [Wed, 10 Jan 2018 05:02:06 +0000 (21:02 -0800)]
Eliminate use of record-specific printing registration.

6 years agoClean up the ad hoc handling of boot-time predicate registrations.
Chris Hanson [Wed, 10 Jan 2018 04:47:55 +0000 (20:47 -0800)]
Clean up the ad hoc handling of boot-time predicate registrations.

6 years agoUse weak hash tables for predicate lattice.
Chris Hanson [Wed, 10 Jan 2018 04:30:12 +0000 (20:30 -0800)]
Use weak hash tables for predicate lattice.

6 years agoEliminate unused (and not fully thought out) unregister-predicate!.
Chris Hanson [Wed, 10 Jan 2018 04:25:25 +0000 (20:25 -0800)]
Eliminate unused (and not fully thought out) unregister-predicate!.

6 years agoFix cold-load initialization so that predicate tag tables are built right.
Chris Hanson [Wed, 10 Jan 2018 04:06:58 +0000 (20:06 -0800)]
Fix cold-load initialization so that predicate tag tables are built right.

6 years agoThanks Joe! Fix thinko in code generation for define-structure.
Chris Hanson [Wed, 10 Jan 2018 04:06:27 +0000 (20:06 -0800)]
Thanks Joe!  Fix thinko in code generation for define-structure.

6 years agoRemove some unused and undocumented record-type accessors.
Chris Hanson [Tue, 9 Jan 2018 04:00:15 +0000 (23:00 -0500)]
Remove some unused and undocumented record-type accessors.

Included are record-type-extension, set-record-type-extension!,
set-record-type-default-inits!, and %set-record-type-default-inits!.

6 years agoMove srfi-1 support to beginning of cold load.
Chris Hanson [Tue, 9 Jan 2018 03:50:17 +0000 (22:50 -0500)]
Move srfi-1 support to beginning of cold load.

6 years agoMinor simplification.
Chris Hanson [Tue, 9 Jan 2018 03:05:52 +0000 (22:05 -0500)]
Minor simplification.

6 years agoMove dispatch-tag print method into gentag.scm.
Chris Hanson [Tue, 9 Jan 2018 03:01:58 +0000 (22:01 -0500)]
Move dispatch-tag print method into gentag.scm.

6 years agoEliminate special support for defstruct printers.
Chris Hanson [Tue, 9 Jan 2018 02:58:48 +0000 (21:58 -0500)]
Eliminate special support for defstruct printers.

In future just use define-unparser-method.

6 years agoSearch for root-level "build" directory when finding STAGE0.
Chris Hanson [Tue, 9 Jan 2018 02:06:30 +0000 (21:06 -0500)]
Search for root-level "build" directory when finding STAGE0.

6 years agoAdd optional argument to specify build directory.
Chris Hanson [Tue, 9 Jan 2018 02:00:30 +0000 (21:00 -0500)]
Add optional argument to specify build directory.

6 years agoImplement simple script to show all of the .crf files.
Chris Hanson [Tue, 9 Jan 2018 01:57:33 +0000 (20:57 -0500)]
Implement simple script to show all of the .crf files.

6 years agoMove all of the generic-procedure support from runtime into sos.
Chris Hanson [Tue, 9 Jan 2018 01:31:07 +0000 (20:31 -0500)]
Move all of the generic-procedure support from runtime into sos.

It's slated to be entirely replaced by predicate dispatchers.

6 years agoIgnore build directory called "build".
Chris Hanson [Mon, 8 Jan 2018 05:00:17 +0000 (00:00 -0500)]
Ignore build directory called "build".

6 years agoMake sure that a record's type name is an immutable string.
Chris Hanson [Sun, 7 Jan 2018 20:36:18 +0000 (15:36 -0500)]
Make sure that a record's type name is an immutable string.

6 years agoImplement string->immutable.
Chris Hanson [Sun, 7 Jan 2018 20:32:33 +0000 (15:32 -0500)]
Implement string->immutable.

6 years agoClean up handling of entities with records as extra.
Chris Hanson [Sun, 7 Jan 2018 20:28:40 +0000 (15:28 -0500)]
Clean up handling of entities with records as extra.

Implement record-entity? and record-entity-predicate.
Also clean up printing support for these.

6 years agoConvert record support to use new predicate dispatchers.
Chris Hanson [Sun, 7 Jan 2018 20:09:33 +0000 (15:09 -0500)]
Convert record support to use new predicate dispatchers.

6 years agoImplement real define-pp-describer.
Chris Hanson [Sun, 7 Jan 2018 19:45:40 +0000 (14:45 -0500)]
Implement real define-pp-describer.

6 years agoImplement real define-unparser-method.
Chris Hanson [Sun, 7 Jan 2018 19:38:44 +0000 (14:38 -0500)]
Implement real define-unparser-method.

6 years agoImplement define-unparser-method and define-pp-describer as deferred actions.
Chris Hanson [Sun, 7 Jan 2018 19:33:02 +0000 (14:33 -0500)]
Implement define-unparser-method and define-pp-describer as deferred actions.

6 years agoChange record to use predicate dispatchers instead of generics.
Chris Hanson [Sun, 7 Jan 2018 05:31:38 +0000 (00:31 -0500)]
Change record to use predicate dispatchers instead of generics.

6 years agoTweak.
Chris Hanson [Sun, 7 Jan 2018 04:48:55 +0000 (23:48 -0500)]
Tweak.

6 years agoChange predicate-dispatcher to be an entity.
Chris Hanson [Sun, 7 Jan 2018 04:36:05 +0000 (23:36 -0500)]
Change predicate-dispatcher to be an entity.

6 years agoFix compiler warning.
Chris Hanson [Sun, 7 Jan 2018 04:35:57 +0000 (23:35 -0500)]
Fix compiler warning.

6 years agoAdd two tests that were missing from known-tests.
Chris Hanson [Sun, 7 Jan 2018 04:35:07 +0000 (23:35 -0500)]
Add two tests that were missing from known-tests.

6 years agoImplement deferred boot actions and use them for the record.scm actions.
Chris Hanson [Sat, 6 Jan 2018 22:47:46 +0000 (17:47 -0500)]
Implement deferred boot actions and use them for the record.scm actions.

6 years agoEstablish an explicit booting? flag that controls boot inits.
Chris Hanson [Sat, 6 Jan 2018 22:45:59 +0000 (17:45 -0500)]
Establish an explicit booting? flag that controls boot inits.

6 years agoChange boot-time deferrals to use variable-setter.
Chris Hanson [Sat, 6 Jan 2018 21:29:19 +0000 (16:29 -0500)]
Change boot-time deferrals to use variable-setter.

6 years agoImplement variable-setter macro.
Chris Hanson [Sat, 6 Jan 2018 21:29:08 +0000 (16:29 -0500)]
Implement variable-setter macro.

6 years agoMust load host-adapter for syntax definitions when compiling.
Chris Hanson [Sat, 6 Jan 2018 21:28:38 +0000 (16:28 -0500)]
Must load host-adapter for syntax definitions when compiling.

6 years agoReorganize boot.scm into logical sections.
Chris Hanson [Sat, 6 Jan 2018 21:05:09 +0000 (16:05 -0500)]
Reorganize boot.scm into logical sections.

In preparation for new support to be added.

6 years agoEliminate less-than-useful comment.
Chris Hanson [Sat, 6 Jan 2018 04:18:50 +0000 (23:18 -0500)]
Eliminate less-than-useful comment.

6 years agoRewrite the bundle machinery to separate interface and predicate.
Chris Hanson [Sat, 6 Jan 2018 02:58:26 +0000 (21:58 -0500)]
Rewrite the bundle machinery to separate interface and predicate.

Change define-bundle-interface to require its definition names to be
spelled out in the definition rather than being constructed by the macro; the
result is much like define-record-type.

Change the bundle lookup to use a binary search rather than a linear search,
which will help when using large bundles.  Although we might want to have a more
flexible search strategy since it's not exposed to the end user.

Add support for pretty-printing bundles similarly to records.

6 years agoFix typo.
Chris Hanson [Sat, 6 Jan 2018 02:58:08 +0000 (21:58 -0500)]
Fix typo.

6 years agoRefactor record implementation to support setting descriptions during boot.
Chris Hanson [Sat, 6 Jan 2018 02:56:47 +0000 (21:56 -0500)]
Refactor record implementation to support setting descriptions during boot.

Also clean up the way boot deferrals are done to make this simpler.

6 years agoReimplement bundle printers to be more like other printers.
Chris Hanson [Fri, 5 Jan 2018 20:19:42 +0000 (15:19 -0500)]
Reimplement bundle printers to be more like other printers.

6 years agoSome name changes and small cleanups.
Chris Hanson [Fri, 5 Jan 2018 07:34:28 +0000 (02:34 -0500)]
Some name changes and small cleanups.

6 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Fri, 5 Jan 2018 07:12:22 +0000 (02:12 -0500)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

6 years agoFirst draft of "bundle" support.
Chris Hanson [Fri, 5 Jan 2018 07:11:29 +0000 (02:11 -0500)]
First draft of "bundle" support.

6 years agoAllow set-record-type-entity-unparser-method! to be used during cold load.
Chris Hanson [Fri, 5 Jan 2018 07:10:45 +0000 (02:10 -0500)]
Allow set-record-type-entity-unparser-method! to be used during cold load.

6 years agoFix emacs interface breakage caused by string rewrite.
Chris Hanson [Fri, 5 Jan 2018 07:10:08 +0000 (02:10 -0500)]
Fix emacs interface breakage caused by string rewrite.

6 years agoEliminate non-hygienic-macro-transformer.
Chris Hanson [Tue, 26 Dec 2017 19:03:52 +0000 (14:03 -0500)]
Eliminate non-hygienic-macro-transformer.

6 years agoEliminate unused inerly files.
Chris Hanson [Tue, 26 Dec 2017 06:23:52 +0000 (01:23 -0500)]
Eliminate unused inerly files.

6 years agoEliminate unused and unneeded definition-environment in syntaxer.
Chris Hanson [Tue, 26 Dec 2017 05:09:51 +0000 (00:09 -0500)]
Eliminate unused and unneeded definition-environment in syntaxer.

6 years agoFold over-long lines.
Chris Hanson [Tue, 26 Dec 2017 05:09:20 +0000 (00:09 -0500)]
Fold over-long lines.

6 years agoEliminate no-longer-used binding genrated by define-structure.
Chris Hanson [Tue, 26 Dec 2017 04:54:30 +0000 (23:54 -0500)]
Eliminate no-longer-used binding genrated by define-structure.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Mon, 25 Dec 2017 01:21:01 +0000 (20:21 -0500)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

7 years agogdbm plugin: Add a manual, a translation of the gdbm texinfo manual.
Matt Birkholz [Sat, 23 Dec 2017 18:06:56 +0000 (11:06 -0700)]
gdbm plugin: Add a manual, a translation of the gdbm texinfo manual.

And take advantage of new Unicode string support in the FFI.

7 years agoffi: Peek C strings as non-legacy strings, else bytevectors.
Matt Birkholz [Sat, 23 Dec 2017 09:52:49 +0000 (02:52 -0700)]
ffi: Peek C strings as non-legacy strings, else bytevectors.

When the FFI peeks at a C string (ASCII and null terminated) it now
copies the characters into a ustring (rather than a deprecated legacy
string).  If the C string contains non-ASCII characters, the FFI
returns a bytevector, passing the decoding problem on to higher
levels, and avoiding an extra copy (from bytes to string) when no
translation is needed.

Add c-peek-csubstring, a version of c-peek-cstring that takes a byte
count and does NOT require the C string to be null terminated.

7 years agoSupport OR in syntax-check.
Chris Hanson [Thu, 21 Dec 2017 06:17:41 +0000 (22:17 -0800)]
Support OR in syntax-check.

7 years agoHandle case where XCode SDK doesn't match running OS.
Chris Hanson [Thu, 21 Dec 2017 06:17:13 +0000 (22:17 -0800)]
Handle case where XCode SDK doesn't match running OS.

7 years agoRestore SIGQUIT handler so I can enter breakpoints again.
Taylor R Campbell [Tue, 19 Dec 2017 14:53:44 +0000 (14:53 +0000)]
Restore SIGQUIT handler so I can enter breakpoints again.

7 years agoCall close-textual-in/output-port, not close-in/output-port.
Taylor R Campbell [Tue, 19 Dec 2017 14:15:22 +0000 (14:15 +0000)]
Call close-textual-in/output-port, not close-in/output-port.

Former is noop for non-input or non-output port; latter is error.

Fixes close-port on something that is only a textual input port or
only a textual output port.

7 years agoAvoid stack overflow with long responses.
Taylor R Campbell [Tue, 19 Dec 2017 14:14:46 +0000 (14:14 +0000)]
Avoid stack overflow with long responses.

7 years agoAdd blowfish-cbc tests.
Taylor R Campbell [Tue, 28 Nov 2017 06:10:17 +0000 (06:10 +0000)]
Add blowfish-cbc tests.

7 years agoAdd standard Blowfish tests.
Taylor R Campbell [Tue, 28 Nov 2017 05:08:59 +0000 (05:08 +0000)]
Add standard Blowfish tests.

7 years agoFix test failures caused when no support for non-standard fp traps.
Chris Hanson [Sat, 4 Nov 2017 05:06:05 +0000 (22:06 -0700)]
Fix test failures caused when no support for non-standard fp traps.

This is the case on macOS.

7 years agoSimplify previous fix to string-trimmer.
Chris Hanson [Sat, 4 Nov 2017 04:11:36 +0000 (21:11 -0700)]
Simplify previous fix to string-trimmer.

7 years agoFix warnings from macOS compiler.
Chris Hanson [Sat, 4 Nov 2017 04:01:55 +0000 (21:01 -0700)]
Fix warnings from macOS compiler.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Sat, 4 Nov 2017 03:23:59 +0000 (20:23 -0700)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

7 years agoFix incorrect use of && where & should have been used.
Chris Hanson [Sat, 4 Nov 2017 03:23:26 +0000 (20:23 -0700)]
Fix incorrect use of && where & should have been used.

7 years agoIf n is zero, there will be no higher bits set; skip this test.
Taylor R Campbell [Sat, 4 Nov 2017 03:19:51 +0000 (03:19 +0000)]
If n is zero, there will be no higher bits set; skip this test.

7 years agoRip out microcode mhash module.
Taylor R Campbell [Sat, 4 Nov 2017 03:18:32 +0000 (03:18 +0000)]
Rip out microcode mhash module.

7 years agoEliminate optional mhash dependency in fasdump.c.
Taylor R Campbell [Sat, 4 Nov 2017 03:09:16 +0000 (03:09 +0000)]
Eliminate optional mhash dependency in fasdump.c.

7 years agoRip out vestiges of MD5 loadables.
Taylor R Campbell [Sat, 4 Nov 2017 03:01:46 +0000 (03:01 +0000)]
Rip out vestiges of MD5 loadables.

7 years agoEliminate MD5 as a loadable microcode module.
Taylor R Campbell [Sat, 4 Nov 2017 02:56:22 +0000 (02:56 +0000)]
Eliminate MD5 as a loadable microcode module.

Unconditionally include a new portable C implementation.

7 years agoFirst draft of SHA3-256 with minimal tests.
Taylor R Campbell [Fri, 3 Nov 2017 21:15:11 +0000 (21:15 +0000)]
First draft of SHA3-256 with minimal tests.

Probably full of fenceposts but this is all I have energy for at the
moment.

7 years agoblowfish plugin: Add texinfo manual, scraped from OpenSSL manpages.
Matt Birkholz [Thu, 2 Nov 2017 23:56:48 +0000 (16:56 -0700)]
blowfish plugin: Add texinfo manual, scraped from OpenSSL manpages.

7 years agox11/x11-base (->cstring): Convert 0 to the null pointer.
Matt Birkholz [Thu, 2 Nov 2017 16:12:30 +0000 (09:12 -0700)]
x11/x11-base (->cstring): Convert 0 to the null pointer.

7 years agopgsql plugin: typos, e.g. banish vagrant scminfodir.
Matt Birkholz [Thu, 2 Nov 2017 16:06:05 +0000 (09:06 -0700)]
pgsql plugin: typos, e.g. banish vagrant scminfodir.

7 years agoustring (string-trim): Handle strings trimmed to nothing.
Matt Birkholz [Thu, 2 Nov 2017 16:00:09 +0000 (09:00 -0700)]
ustring (string-trim): Handle strings trimmed to nothing.

Also added tests for string-trim.  Thanks to Peter <craven@gmx.net>.

7 years agoAdd common integer bit string ffs, fls, ctz, and clz.
Taylor R Campbell [Thu, 26 Oct 2017 22:13:56 +0000 (22:13 +0000)]
Add common integer bit string ffs, fls, ctz, and clz.

(ffs x): find first set, 1-indexed with 0 for 0
(fls x): find last set, 1-indexed with 0 for 0 (same as integer-length)
(ctz x): count trailing zeros (same as ffs)
((clz n) x): count leading zeros in n-bit word x

7 years agoFix typo: port/state should give the state, not the type.
Taylor R Campbell [Mon, 16 Oct 2017 14:35:03 +0000 (14:35 +0000)]
Fix typo: port/state should give the state, not the type.

Noted by ecraven.