mit-scheme.git
6 years agoSplit handling of compiler target from host architecture.
Chris Hanson [Wed, 17 Oct 2018 02:28:14 +0000 (19:28 -0700)]
Split handling of compiler target from host architecture.

6 years agoMerge branch 'master' into makefile-refactor
Chris Hanson [Tue, 16 Oct 2018 04:22:23 +0000 (00:22 -0400)]
Merge branch 'master' into makefile-refactor

6 years agoLoad macros needed by machines/svm/machine.
Chris Hanson [Tue, 16 Oct 2018 04:14:55 +0000 (21:14 -0700)]
Load macros needed by machines/svm/machine.

6 years agoForgot to make changes to other compiler.pkg files.
Chris Hanson [Tue, 16 Oct 2018 04:14:06 +0000 (21:14 -0700)]
Forgot to make changes to other compiler.pkg files.

One of these days this stuff will be shared.

6 years agoEliminate warning about old-style function declaration.
Chris Hanson [Tue, 16 Oct 2018 04:07:20 +0000 (21:07 -0700)]
Eliminate warning about old-style function declaration.

6 years agoLoad macros needed by machines/svm/machine.
Chris Hanson [Mon, 15 Oct 2018 06:18:15 +0000 (23:18 -0700)]
Load macros needed by machines/svm/machine.

6 years agoAdd back guarantee since it's needed for compiling svm.
Chris Hanson [Mon, 15 Oct 2018 04:54:12 +0000 (21:54 -0700)]
Add back guarantee since it's needed for compiling svm.

6 years agoGuarantee that SF is loaded by compiler.sf.
Chris Hanson [Mon, 15 Oct 2018 04:53:52 +0000 (21:53 -0700)]
Guarantee that SF is loaded by compiler.sf.

6 years agoEliminate a bunch of now-unnecessary stuff from host-adapter.
Chris Hanson [Mon, 15 Oct 2018 03:50:20 +0000 (20:50 -0700)]
Eliminate a bunch of now-unnecessary stuff from host-adapter.

6 years agoRefactor top-level Makefile to use a single pass.
Chris Hanson [Mon, 15 Oct 2018 02:48:43 +0000 (19:48 -0700)]
Refactor top-level Makefile to use a single pass.

6 years agoFix bug where the result of char-upcase is multibyte.
Chris Hanson [Mon, 15 Oct 2018 01:46:32 +0000 (18:46 -0700)]
Fix bug where the result of char-upcase is multibyte.

This was previously hidden because the compiler isn't doing range checking on
the third argument to bytevector-u8-set!.

6 years agoRemove redundant clause from test for unquoted symbols.
Chris Hanson [Sun, 14 Oct 2018 04:38:16 +0000 (21:38 -0700)]
Remove redundant clause from test for unquoted symbols.

6 years agoDon't print "program" for R7RS top-level.
Chris Hanson [Sun, 14 Oct 2018 03:03:39 +0000 (20:03 -0700)]
Don't print "program" for R7RS top-level.

6 years agoExtensive work to get compiler to work with R7RS libraries.
Chris Hanson [Sun, 14 Oct 2018 02:54:58 +0000 (19:54 -0700)]
Extensive work to get compiler to work with R7RS libraries.

The bulk of the work is to refactor the debugging info so that it's generated
and consumed properly; this required upgrading the version and introducing a new
top-level info form.

I also eliminated the now-ancient and unused BSM file support, which was making
things more difficult than necessary.

The compiler top level required only to detect an R7RS input file and to compile
each part separately, plus collecting all of the debugging information from the
parts.  Some tweaks were used to make RTL/LAP files work right with multiple
roots.

Finally, the runtime system was modified so that compiled-code blocks and
entries now show the R7RS library name if there is one, both when printed and in
various other places.

6 years agoFix bug: reference caches weren't working right without global env.
Chris Hanson [Sun, 14 Oct 2018 02:44:40 +0000 (19:44 -0700)]
Fix bug: reference caches weren't working right without global env.

The problem arises when there's a compiled file that does something like this:

    (define foo ...)
    ...
    foo

What happens is that the linker creates a cache for 'foo' before evaluating
code; there's no binding for 'foo' yet but one is needed for the cache.  In the
case where the evaluation environment extends to the global environment, this is
handled by making a placeholder in the global environment.

However, if the topmost frame is not the global environment, it was creating a
dummy cell that wasn't connected to any environment.  Consequently, when the
definition was evaluated, it created a new binding, but since there was no old
binding in the environment chain, the dummy cache wasn't updated to the new
binding's cell.

I've fixed this by forcing the creation of an unbound cell in the outermost
environment (i.e. the one with the null environment as its parent).  This is
essentially the same solution that's used when the global environment is
present, with the outermost environment playing the role of global.

6 years agoRefactor compiler top level to do info-file dump as late as possible.
Chris Hanson [Fri, 12 Oct 2018 22:49:43 +0000 (15:49 -0700)]
Refactor compiler top level to do info-file dump as late as possible.

This is to support compiling R7RS libraries as if they were independent files,
and gathering all their debug info together before writing it out.

6 years agoInstall plugin html/pdf documentation in project docdir.
Matt Birkholz [Sat, 13 Oct 2018 06:32:26 +0000 (23:32 -0700)]
Install plugin html/pdf documentation in project docdir.

Override docdir.  Enhance the update-html-index procedure to look for
PROJECT-PLUGIN.html as well as PLUGIN.html.

6 years agoMake Edwin and Imail separately installable projects.
Matt Birkholz [Wed, 10 Oct 2018 06:56:34 +0000 (23:56 -0700)]
Make Edwin and Imail separately installable projects.

Do not build them with the core.  Build them after certain plugins are
installed.

6 years agoruntime/optiondb: Document new arg for further-load-options.
Matt Birkholz [Wed, 10 Oct 2018 04:05:03 +0000 (21:05 -0700)]
runtime/optiondb: Document new arg for further-load-options.

6 years agoFix bug in test-rgxcmp: was using iso-8859-1 coding, not utf-8.
Chris Hanson [Wed, 10 Oct 2018 02:53:29 +0000 (19:53 -0700)]
Fix bug in test-rgxcmp: was using iso-8859-1 coding, not utf-8.

6 years agoFix thinko in string reader: first octal digit is in range 0-3.
Chris Hanson [Wed, 10 Oct 2018 02:52:46 +0000 (19:52 -0700)]
Fix thinko in string reader: first octal digit is in range 0-3.

6 years agoAdd stubs for R7RS library support so that SF works.
Chris Hanson [Mon, 8 Oct 2018 23:11:55 +0000 (16:11 -0700)]
Add stubs for R7RS library support so that SF works.

6 years agoSplit library scode to a package; raise abstraction level.
Chris Hanson [Mon, 8 Oct 2018 05:56:24 +0000 (22:56 -0700)]
Split library scode to a package; raise abstraction level.

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.