mit-scheme.git
6 years agoDon't wrap a compiled-expression object in scode-quote.
Chris Hanson [Mon, 8 Oct 2018 05:55:24 +0000 (22:55 -0700)]
Don't wrap a compiled-expression object in scode-quote.

It only causes confusion when expecting a bare expression and instead see it as
quoted.

6 years agoGet loader to work with R7RS files processed with SF.
Chris Hanson [Mon, 8 Oct 2018 01:07:19 +0000 (18:07 -0700)]
Get loader to work with R7RS files processed with SF.

6 years agoFix typo.
Chris Hanson [Mon, 8 Oct 2018 01:07:09 +0000 (18:07 -0700)]
Fix typo.

6 years agoMake better abstraction for scode-library files.
Chris Hanson [Sun, 7 Oct 2018 22:16:40 +0000 (15:16 -0700)]
Make better abstraction for scode-library files.

6 years agoChange printer to prefix scode types with "scode-".
Chris Hanson [Sun, 7 Oct 2018 22:15:48 +0000 (15:15 -0700)]
Change printer to prefix scode types with "scode-".

6 years agoGet SF working on R7RS files. Loader needs to be modified to load them.
Chris Hanson [Sun, 7 Oct 2018 20:27:04 +0000 (13:27 -0700)]
Get SF working on R7RS files.  Loader needs to be modified to load them.

6 years agoChange automatic-properties to support multiple values.
Chris Hanson [Sun, 7 Oct 2018 04:12:45 +0000 (21:12 -0700)]
Change automatic-properties to support multiple values.

6 years agoChange the loader so that it can load R7RS source files.
Chris Hanson [Sun, 7 Oct 2018 00:06:49 +0000 (17:06 -0700)]
Change the loader so that it can load R7RS source files.

Now to make compiled files work.  :)

6 years agoAnother rewrite, this time to treat programs as anonymous libraries.
Chris Hanson [Sat, 6 Oct 2018 23:28:42 +0000 (16:28 -0700)]
Another rewrite, this time to treat programs as anonymous libraries.

This change simplifies handling programs since they can now use the machinery
developed for libraries.  So now r7rs-source is just a combination of some
libraries and an optional program.

Also added property 'imports-environment to get the environment prior to
evaluation.

6 years agoMajor rewrite of library support.
Chris Hanson [Sat, 6 Oct 2018 05:31:21 +0000 (22:31 -0700)]
Major rewrite of library support.

New design is organized around adding properties to a library as they are
computed, coupled with "automatic" properties that can compute themselves from
existing ones.

Basic stuff all works, and I'm able to get the R7RS example running.

6 years agoImplement test-library-standard and fix bugs.
Chris Hanson [Fri, 5 Oct 2018 03:35:45 +0000 (20:35 -0700)]
Implement test-library-standard and fix bugs.

6 years agoReverse order of args to make-library-import and make last optional.
Chris Hanson [Fri, 5 Oct 2018 03:17:33 +0000 (20:17 -0700)]
Reverse order of args to make-library-import and make last optional.

6 years agoFix over-long line.
Chris Hanson [Thu, 4 Oct 2018 06:00:04 +0000 (23:00 -0700)]
Fix over-long line.

6 years agoInitial draft of test-library-imports, plus bug fixes.
Chris Hanson [Thu, 4 Oct 2018 05:59:25 +0000 (22:59 -0700)]
Initial draft of test-library-imports, plus bug fixes.

6 years agoImplement test-library-parser and fix bugs in library-parser.
Chris Hanson [Wed, 3 Oct 2018 23:53:20 +0000 (16:53 -0700)]
Implement test-library-parser and fix bugs in library-parser.

6 years agoSimplify implementation slightly.
Chris Hanson [Tue, 2 Oct 2018 06:15:02 +0000 (23:15 -0700)]
Simplify implementation slightly.

6 years agoAllow more general record predicates.
Chris Hanson [Tue, 2 Oct 2018 06:13:38 +0000 (23:13 -0700)]
Allow more general record predicates.

Rather than insisting on a linear inheritance of record types, the record
predicate now allows arbitrary sub-type relations.  This can of course cause
problems if misused, so use with care.

6 years agoChange default text I/O format to be UTF-8.
Chris Hanson [Mon, 1 Oct 2018 06:25:15 +0000 (23:25 -0700)]
Change default text I/O format to be UTF-8.

6 years agoChange random to use a binary input file for initializing.
Chris Hanson [Mon, 1 Oct 2018 06:24:50 +0000 (23:24 -0700)]
Change random to use a binary input file for initializing.

6 years agoUse (further-load-options #t); recommend it in the plugin READMEs.
Matt Birkholz [Thu, 20 Sep 2018 07:50:18 +0000 (00:50 -0700)]
Use (further-load-options #t); recommend it in the plugin READMEs.

6 years agoAdd (further-load-options #t): continue with the next optiondb.
Matt Birkholz [Thu, 20 Sep 2018 07:37:22 +0000 (00:37 -0700)]
Add (further-load-options #t): continue with the next optiondb.

This is intended for test optiondbs or optiondbs in user directories
prepended to the system library-directory-path.

6 years agoUser manual: move plugin build hints to plugin READMEs.
Matt Birkholz [Thu, 20 Sep 2018 07:33:18 +0000 (00:33 -0700)]
User manual: move plugin build hints to plugin READMEs.

6 years agoFix Edwin to recognize the x11-screen option during testing.
Matt Birkholz [Sun, 16 Sep 2018 22:12:04 +0000 (15:12 -0700)]
Fix Edwin to recognize the x11-screen option during testing.

6 years agoTweak README to indicate correct order for tests.
Chris Hanson [Fri, 14 Sep 2018 23:06:11 +0000 (19:06 -0400)]
Tweak README to indicate correct order for tests.

6 years agoFix indentation.
Chris Hanson [Fri, 14 Sep 2018 23:04:57 +0000 (19:04 -0400)]
Fix indentation.

6 years agoTweaks to get Edwin running on macos.
Chris Hanson [Fri, 14 Sep 2018 23:04:24 +0000 (19:04 -0400)]
Tweaks to get Edwin running on macos.

6 years agoCouple more tweaks to get macos running.
Chris Hanson [Fri, 14 Sep 2018 18:38:04 +0000 (14:38 -0400)]
Couple more tweaks to get macos running.

6 years agoChanges to get X11 module to compile on macos.
Chris Hanson [Fri, 14 Sep 2018 18:13:53 +0000 (14:13 -0400)]
Changes to get X11 module to compile on macos.

6 years agoReset start times of threads when restoring image.
Chris Hanson [Thu, 6 Sep 2018 01:26:12 +0000 (18:26 -0700)]
Reset start times of threads when restoring image.

6 years agoFix problem with printing of SOS instances.
Chris Hanson [Thu, 6 Sep 2018 01:09:56 +0000 (18:09 -0700)]
Fix problem with printing of SOS instances.

6 years agox11: Fix x-list-fonts procedure.
Matt Birkholz [Mon, 30 Jul 2018 01:10:33 +0000 (18:10 -0700)]
x11: Fix x-list-fonts procedure.

6 years agoblowfish: Remove boast from ancient description in manual.
Matt Birkholz [Mon, 30 Jul 2018 01:09:38 +0000 (18:09 -0700)]
blowfish: Remove boast from ancient description in manual.

6 years agox11: version 1.1
Matt Birkholz [Thu, 19 Jul 2018 15:18:11 +0000 (08:18 -0700)]
x11: version 1.1

6 years agomicrocode/uxio.c (OS_channel_read): Return 0 for EIO from pty master
Matt Birkholz [Mon, 16 Jul 2018 23:05:24 +0000 (16:05 -0700)]
microcode/uxio.c (OS_channel_read): Return 0 for EIO from pty master

6 years agoffi: Avoid 9.1's expansion of define-print-method.
Matt Birkholz [Tue, 3 Jul 2018 15:05:37 +0000 (10:05 -0500)]
ffi: Avoid 9.1's expansion of define-print-method.

6 years agoblowfish/Makefile.am: compile.sh missing from EXTRA_DIST.
Matt Birkholz [Mon, 25 Jun 2018 21:57:36 +0000 (14:57 -0700)]
blowfish/Makefile.am: compile.sh missing from EXTRA_DIST.

6 years agox11: Actually export import-x11.
Matt Birkholz [Mon, 25 Jun 2018 21:56:40 +0000 (14:56 -0700)]
x11: Actually export import-x11.

6 years agoFix x11-screen plugin for autoloading by Edwin's new x-display-type.
Matt Birkholz [Fri, 22 Jun 2018 10:19:33 +0000 (03:19 -0700)]
Fix x11-screen plugin for autoloading by Edwin's new x-display-type.

6 years agoReplace Edwin's X display type with the x11-screen plugin.
Matt Birkholz [Fri, 22 Jun 2018 10:14:45 +0000 (03:14 -0700)]
Replace Edwin's X display type with the x11-screen plugin.

6 years agoPunt remains of µmodule support.
Matt Birkholz [Fri, 22 Jun 2018 10:06:29 +0000 (03:06 -0700)]
Punt remains of µmodule support.

6 years agoPunt x11 µmodule; autoload x11 plugin version 1.0.
Matt Birkholz [Fri, 22 Jun 2018 11:10:28 +0000 (04:10 -0700)]
Punt x11 µmodule; autoload x11 plugin version 1.0.

6 years agoPunt mcrypt µmodule; autoload mcrypt plugin version 1.0.
Matt Birkholz [Fri, 22 Jun 2018 09:20:22 +0000 (02:20 -0700)]
Punt mcrypt µmodule; autoload mcrypt plugin version 1.0.

6 years agoPunt db4 µmodule; remove to incomplete berkeley-db plugin.
Matt Birkholz [Fri, 22 Jun 2018 10:37:10 +0000 (03:37 -0700)]
Punt db4 µmodule; remove to incomplete berkeley-db plugin.

6 years agoPunt pgsql µmodule; autoload pgsql plugin version 1.0.
Matt Birkholz [Fri, 22 Jun 2018 11:30:45 +0000 (04:30 -0700)]
Punt pgsql µmodule; autoload pgsql plugin version 1.0.

6 years agoPunt bfish µmodule; autoload blowfish plugin version 1.0.
Matt Birkholz [Fri, 22 Jun 2018 10:35:31 +0000 (03:35 -0700)]
Punt bfish µmodule; autoload blowfish plugin version 1.0.

6 years agoPunt gdbm µmodule; autoload gdbm plugin version 1.0.
Matt Birkholz [Fri, 22 Jun 2018 08:16:54 +0000 (01:16 -0700)]
Punt gdbm µmodule; autoload gdbm plugin version 1.0.

6 years agoDeprecate without-interrupts.
Matt Birkholz [Fri, 22 Jun 2018 10:21:04 +0000 (03:21 -0700)]
Deprecate without-interrupts.

6 years agoMake FFI a non-optional subsystem.
Matt Birkholz [Fri, 22 Jun 2018 10:23:01 +0000 (03:23 -0700)]
Make FFI a non-optional subsystem.

6 years agoExport FFI's delete-plugin-list and update-plugin-indices.
Matt Birkholz [Fri, 22 Jun 2018 10:22:08 +0000 (03:22 -0700)]
Export FFI's delete-plugin-list and update-plugin-indices.

6 years agoUpdate FFI manual.
Matt Birkholz [Fri, 22 Jun 2018 10:20:04 +0000 (03:20 -0700)]
Update FFI manual.

6 years agoChange nearly all code to use parameterize rather than parameterize*.
Chris Hanson [Wed, 13 Jun 2018 03:51:48 +0000 (20:51 -0700)]
Change nearly all code to use parameterize rather than parameterize*.

6 years agoDefine parameterize using syntax-rules and add it to the host adapter.
Chris Hanson [Wed, 13 Jun 2018 03:10:50 +0000 (20:10 -0700)]
Define parameterize using syntax-rules and add it to the host adapter.

6 years agoNot-yet-complete implementation of R7RS libraries.
Chris Hanson [Sun, 10 Jun 2018 03:51:54 +0000 (20:51 -0700)]
Not-yet-complete implementation of R7RS libraries.

6 years agomicrocode/extern.h (HASH_TO_FIXNUM): typo
Matt Birkholz [Wed, 6 Jun 2018 15:49:35 +0000 (08:49 -0700)]
microcode/extern.h (HASH_TO_FIXNUM): typo

6 years agoi386/compiler.pkg: Add missing scode/definition?.
Matt Birkholz [Wed, 6 Jun 2018 15:44:40 +0000 (08:44 -0700)]
i386/compiler.pkg: Add missing scode/definition?.

6 years agoSVM assembler needs hash-table-clear!.
Matt Birkholz [Wed, 6 Jun 2018 15:42:23 +0000 (08:42 -0700)]
SVM assembler needs hash-table-clear!.

6 years agomhash: Punt. The µmodule-based package disappeared long ago.
Matt Birkholz [Tue, 5 Jun 2018 20:46:27 +0000 (13:46 -0700)]
mhash: Punt.  The µmodule-based package disappeared long ago.

6 years agoSerialize access to thread/properties via thread-get, thread-put./fetch 69
Matt Birkholz [Tue, 5 Jun 2018 19:51:06 +0000 (12:51 -0700)]
Serialize access to thread/properties via thread-get, thread-put./fetch 69

6 years agoName the initial thread.
Matt Birkholz [Tue, 5 Jun 2018 19:50:06 +0000 (12:50 -0700)]
Name the initial thread.

6 years agoimail: Like probe-folder-output-processor, avoid referencing folder.
Matt Birkholz [Tue, 5 Jun 2018 19:43:04 +0000 (12:43 -0700)]
imail: Like probe-folder-output-processor, avoid referencing folder.

6 years agoffi: version 1.0
Matt Birkholz [Tue, 5 Jun 2018 16:45:36 +0000 (09:45 -0700)]
ffi: version 1.0

6 years agoplugin tags-fix.sh: Use command-line-arguments.
Matt Birkholz [Tue, 5 Jun 2018 16:37:51 +0000 (09:37 -0700)]
plugin tags-fix.sh: Use command-line-arguments.

6 years agoA couple more fall-through comments.
Matt Birkholz [Tue, 5 Jun 2018 14:33:05 +0000 (07:33 -0700)]
A couple more fall-through comments.

6 years agoName most threads.
Matt Birkholz [Tue, 5 Jun 2018 08:15:56 +0000 (01:15 -0700)]
Name most threads.

6 years agoPrint Edwin buffer names.
Matt Birkholz [Tue, 5 Jun 2018 17:54:41 +0000 (10:54 -0700)]
Print Edwin buffer names.

6 years agoworld-report: Display thread names instead of associated "flags".
Matt Birkholz [Tue, 5 Jun 2018 08:15:36 +0000 (01:15 -0700)]
world-report: Display thread names instead of associated "flags".

6 years agoAdd optional name parameter to create-thread.
Matt Birkholz [Fri, 1 Jun 2018 21:15:27 +0000 (14:15 -0700)]
Add optional name parameter to create-thread.

6 years agoAdd thread-get and thread-put! for e.g. giving threads names.
Matt Birkholz [Tue, 5 Jun 2018 17:11:05 +0000 (10:11 -0700)]
Add thread-get and thread-put! for e.g. giving threads names.

6 years agoblowfish: typo in manual
Matt Birkholz [Tue, 5 Jun 2018 06:44:29 +0000 (23:44 -0700)]
blowfish: typo in manual

6 years agox11: version 0.3
Matt Birkholz [Fri, 1 Jun 2018 22:37:07 +0000 (15:37 -0700)]
x11: version 0.3

6 years agox11: Allow CurrentTime.
Matt Birkholz [Fri, 1 Jun 2018 21:41:05 +0000 (14:41 -0700)]
x11: Allow CurrentTime.

6 years agoffi: Add delete-plugin-list and update-plugin-indices
Matt Birkholz [Fri, 1 Jun 2018 21:32:57 +0000 (14:32 -0700)]
ffi: Add delete-plugin-list and update-plugin-indices

for the Debian install/uninstall scripts.

6 years agoruntime/ffi: Save/restore floenv around callouts.
Matt Birkholz [Fri, 1 Jun 2018 21:17:58 +0000 (14:17 -0700)]
runtime/ffi: Save/restore floenv around callouts.

The c-call primitive can "alienate" the floenv, but cooperating with
c-call-continue to save/restore it is... more difficult than doing it
in Scheme.

And fix some trailing whitespace, indentation.

6 years agoSignal an error in unlock-thread-mutex when mutex is not owned,
Matt Birkholz [Tue, 5 Jun 2018 07:22:28 +0000 (00:22 -0700)]
Signal an error in unlock-thread-mutex when mutex is not owned,

before applying remove-thread-mutex! to #f, which produces a less
helpful error message.

6 years agoUse with-interrupts-reduced in with-limited-interrupts.
Matt Birkholz [Fri, 1 Jun 2018 21:01:34 +0000 (14:01 -0700)]
Use with-interrupts-reduced in with-limited-interrupts.

Save a primitive apply.

6 years agouser.texinfo: typos
Matt Birkholz [Fri, 1 Jun 2018 20:58:37 +0000 (13:58 -0700)]
user.texinfo: typos

Need ./configure when building gdbm.  Prefer --prepend-library where
applicable.  Mention all 6 sample plugins.  Do *not* mention the
defunct --edwin option.

6 years agoplugins: Copy .crf reports into the build log.
Matt Birkholz [Fri, 1 Jun 2018 20:45:13 +0000 (13:45 -0700)]
plugins: Copy .crf reports into the build log.

6 years agogdbm: version 0.4
Matt Birkholz [Fri, 1 Jun 2018 19:51:31 +0000 (12:51 -0700)]
gdbm: version 0.4

6 years agogdbm: Update documentation regarding file locks.
Matt Birkholz [Fri, 1 Jun 2018 19:49:36 +0000 (12:49 -0700)]
gdbm: Update documentation regarding file locks.

6 years agogdbm: Accommodate 1.14 (in Ubuntu 18.04) but disable file locking.
Matt Birkholz [Tue, 5 Jun 2018 06:51:13 +0000 (23:51 -0700)]
gdbm: Accommodate 1.14 (in Ubuntu 18.04) but disable file locking.

6 years agoFix fencepost error reported by Patric Jonsson.
Chris Hanson [Tue, 5 Jun 2018 04:43:13 +0000 (21:43 -0700)]
Fix fencepost error reported by Patric Jonsson.

Also handle limited kinds of redundant clauses, and special case where there's
exactly one clause.

6 years agoUpdate copyrights.
Chris Hanson [Sat, 2 Jun 2018 05:42:56 +0000 (22:42 -0700)]
Update copyrights.

6 years agoChange subexpression marker to not require quoting.
Chris Hanson [Sat, 2 Jun 2018 05:26:32 +0000 (22:26 -0700)]
Change subexpression marker to not require quoting.

6 years agoNo need to quote weird symbols as strings.
Chris Hanson [Sat, 2 Jun 2018 05:20:08 +0000 (22:20 -0700)]
No need to quote weird symbols as strings.

6 years agoRefactor promises again, to support delay-force.
Chris Hanson [Tue, 29 May 2018 06:53:16 +0000 (23:53 -0700)]
Refactor promises again, to support delay-force.

This no longer uses scode DELAY expressions, which can be deleted after 9.3 is
released.  It does continue to use DELAYED objects for type convenience.

6 years agoImplement make-promise for R7RS.
Chris Hanson [Tue, 29 May 2018 01:22:13 +0000 (18:22 -0700)]
Implement make-promise for R7RS.

Also clean up promise implementation a bit.

6 years agoFill in pseudo-keywords so that they can be imported from libraries.
Chris Hanson [Tue, 29 May 2018 00:55:24 +0000 (17:55 -0700)]
Fill in pseudo-keywords so that they can be imported from libraries.

6 years agoImplement call-with-port for R7RS.
Chris Hanson [Tue, 29 May 2018 00:35:07 +0000 (17:35 -0700)]
Implement call-with-port for R7RS.

6 years agoAdd definitions of standard libraries.
Chris Hanson [Mon, 28 May 2018 20:54:43 +0000 (13:54 -0700)]
Add definitions of standard libraries.

6 years agoFix thinko: forgot to provide definition of file-error?.
Chris Hanson [Mon, 28 May 2018 20:54:17 +0000 (13:54 -0700)]
Fix thinko: forgot to provide definition of file-error?.

6 years agoImplement target-metadata declaration.
Chris Hanson [Mon, 28 May 2018 05:05:33 +0000 (22:05 -0700)]
Implement target-metadata declaration.

This declaration has a body that's an alist keyed by symbols.  The information
in the declaration is carried through the compiler and attached to the compiled
code in the wrapper comment.

The short-term purpose of this declaration is to attach R7RS library information
to compiled code.  But it's general enough for other uses too.

6 years agoImplement vector-any and vector-every.
Chris Hanson [Mon, 28 May 2018 02:47:13 +0000 (19:47 -0700)]
Implement vector-any and vector-every.

6 years agoFix equal-hash to return the same value as eq-hash on non-pointers.
Chris Hanson [Thu, 24 May 2018 03:49:51 +0000 (20:49 -0700)]
Fix equal-hash to return the same value as eq-hash on non-pointers.

6 years agoUse the new hashing primitives to simplify standard hashes.
Chris Hanson [Wed, 23 May 2018 07:18:42 +0000 (00:18 -0700)]
Use the new hashing primitives to simplify standard hashes.

Also, the standard hashes now always return a fixnum.

6 years agoRewrite the hashing primitives to support runtime-level hashing.
Chris Hanson [Wed, 23 May 2018 07:17:55 +0000 (00:17 -0700)]
Rewrite the hashing primitives to support runtime-level hashing.

6 years agoFix thinko in hash-simple-object and add primitive-memory-hash.
Chris Hanson [Wed, 23 May 2018 05:17:51 +0000 (22:17 -0700)]
Fix thinko in hash-simple-object and add primitive-memory-hash.

6 years agoUse bytevector instead of string when detecting endianness.
Chris Hanson [Wed, 23 May 2018 05:03:15 +0000 (22:03 -0700)]
Use bytevector instead of string when detecting endianness.

6 years agoImplement hash-simple-object.
Chris Hanson [Tue, 22 May 2018 07:47:12 +0000 (00:47 -0700)]
Implement hash-simple-object.

This works for any object that can be viewed as a contiguous sequence of bytes
in memory, so includes strings, bytevectors, symbols, bignums, flonums, and
non-pointer objects.

This is not tested but also not yet used.

6 years agoMove knowledge of unicode strings into sdata.h and object.h.
Chris Hanson [Tue, 22 May 2018 07:46:51 +0000 (00:46 -0700)]
Move knowledge of unicode strings into sdata.h and object.h.

6 years agoActually implement a library and imports parser.
Chris Hanson [Mon, 21 May 2018 06:16:48 +0000 (23:16 -0700)]
Actually implement a library and imports parser.

This one isn't done as macros, since these "forms" are a specialized syntax that
is available only in constrained contexts.  This implementation handles both
cond-expand and include-library-declarations.

This isn't yet tested, so don't expect it to work.