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.
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.
Chris Hanson [Fri, 5 Oct 2018 03:35:45 +0000 (20:35 -0700)]
Implement test-library-standard and fix bugs.
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.
Chris Hanson [Thu, 4 Oct 2018 06:00:04 +0000 (23:00 -0700)]
Fix over-long line.
Chris Hanson [Thu, 4 Oct 2018 05:59:25 +0000 (22:59 -0700)]
Initial draft of test-library-imports, plus bug fixes.
Chris Hanson [Wed, 3 Oct 2018 23:53:20 +0000 (16:53 -0700)]
Implement test-library-parser and fix bugs in library-parser.
Chris Hanson [Tue, 2 Oct 2018 06:15:02 +0000 (23:15 -0700)]
Simplify implementation slightly.
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.
Chris Hanson [Mon, 1 Oct 2018 06:25:15 +0000 (23:25 -0700)]
Change default text I/O format to be UTF-8.
Chris Hanson [Mon, 1 Oct 2018 06:24:50 +0000 (23:24 -0700)]
Change random to use a binary input file for initializing.
Matt Birkholz [Thu, 20 Sep 2018 07:50:18 +0000 (00:50 -0700)]
Use (further-load-options #t); recommend it in the plugin READMEs.
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.
Matt Birkholz [Thu, 20 Sep 2018 07:33:18 +0000 (00:33 -0700)]
User manual: move plugin build hints to plugin READMEs.
Matt Birkholz [Sun, 16 Sep 2018 22:12:04 +0000 (15:12 -0700)]
Fix Edwin to recognize the x11-screen option during testing.
Chris Hanson [Fri, 14 Sep 2018 23:06:11 +0000 (19:06 -0400)]
Tweak README to indicate correct order for tests.
Chris Hanson [Fri, 14 Sep 2018 23:04:57 +0000 (19:04 -0400)]
Fix indentation.
Chris Hanson [Fri, 14 Sep 2018 23:04:24 +0000 (19:04 -0400)]
Tweaks to get Edwin running on macos.
Chris Hanson [Fri, 14 Sep 2018 18:38:04 +0000 (14:38 -0400)]
Couple more tweaks to get macos running.
Chris Hanson [Fri, 14 Sep 2018 18:13:53 +0000 (14:13 -0400)]
Changes to get X11 module to compile on macos.
Chris Hanson [Thu, 6 Sep 2018 01:26:12 +0000 (18:26 -0700)]
Reset start times of threads when restoring image.
Chris Hanson [Thu, 6 Sep 2018 01:09:56 +0000 (18:09 -0700)]
Fix problem with printing of SOS instances.
Matt Birkholz [Mon, 30 Jul 2018 01:10:33 +0000 (18:10 -0700)]
x11: Fix x-list-fonts procedure.
Matt Birkholz [Mon, 30 Jul 2018 01:09:38 +0000 (18:09 -0700)]
blowfish: Remove boast from ancient description in manual.
Matt Birkholz [Thu, 19 Jul 2018 15:18:11 +0000 (08:18 -0700)]
x11: version 1.1
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
Matt Birkholz [Tue, 3 Jul 2018 15:05:37 +0000 (10:05 -0500)]
ffi: Avoid 9.1's expansion of define-print-method.
Matt Birkholz [Mon, 25 Jun 2018 21:57:36 +0000 (14:57 -0700)]
blowfish/Makefile.am: compile.sh missing from EXTRA_DIST.
Matt Birkholz [Mon, 25 Jun 2018 21:56:40 +0000 (14:56 -0700)]
x11: Actually export import-x11.
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.
Matt Birkholz [Fri, 22 Jun 2018 10:14:45 +0000 (03:14 -0700)]
Replace Edwin's X display type with the x11-screen plugin.
Matt Birkholz [Fri, 22 Jun 2018 10:06:29 +0000 (03:06 -0700)]
Punt remains of µmodule support.
Matt Birkholz [Fri, 22 Jun 2018 11:10:28 +0000 (04:10 -0700)]
Punt x11 µmodule; autoload x11 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.
Matt Birkholz [Fri, 22 Jun 2018 10:37:10 +0000 (03:37 -0700)]
Punt db4 µmodule; remove to incomplete berkeley-db plugin.
Matt Birkholz [Fri, 22 Jun 2018 11:30:45 +0000 (04:30 -0700)]
Punt pgsql µmodule; autoload pgsql 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.
Matt Birkholz [Fri, 22 Jun 2018 08:16:54 +0000 (01:16 -0700)]
Punt gdbm µmodule; autoload gdbm plugin version 1.0.
Matt Birkholz [Fri, 22 Jun 2018 10:21:04 +0000 (03:21 -0700)]
Deprecate without-interrupts.
Matt Birkholz [Fri, 22 Jun 2018 10:23:01 +0000 (03:23 -0700)]
Make FFI a non-optional subsystem.
Matt Birkholz [Fri, 22 Jun 2018 10:22:08 +0000 (03:22 -0700)]
Export FFI's delete-plugin-list and update-plugin-indices.
Matt Birkholz [Fri, 22 Jun 2018 10:20:04 +0000 (03:20 -0700)]
Update FFI manual.
Chris Hanson [Wed, 13 Jun 2018 03:51:48 +0000 (20:51 -0700)]
Change nearly all code to use parameterize rather than parameterize*.
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.
Chris Hanson [Sun, 10 Jun 2018 03:51:54 +0000 (20:51 -0700)]
Not-yet-complete implementation of R7RS libraries.
Matt Birkholz [Wed, 6 Jun 2018 15:49:35 +0000 (08:49 -0700)]
microcode/extern.h (HASH_TO_FIXNUM): typo
Matt Birkholz [Wed, 6 Jun 2018 15:44:40 +0000 (08:44 -0700)]
i386/compiler.pkg: Add missing scode/definition?.
Matt Birkholz [Wed, 6 Jun 2018 15:42:23 +0000 (08:42 -0700)]
SVM assembler needs hash-table-clear!.
Matt Birkholz [Tue, 5 Jun 2018 20:46:27 +0000 (13:46 -0700)]
mhash: Punt. The µmodule-based package disappeared long ago.
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
Matt Birkholz [Tue, 5 Jun 2018 19:50:06 +0000 (12:50 -0700)]
Name the initial thread.
Matt Birkholz [Tue, 5 Jun 2018 19:43:04 +0000 (12:43 -0700)]
imail: Like probe-folder-output-processor, avoid referencing folder.
Matt Birkholz [Tue, 5 Jun 2018 16:45:36 +0000 (09:45 -0700)]
ffi: version 1.0
Matt Birkholz [Tue, 5 Jun 2018 16:37:51 +0000 (09:37 -0700)]
plugin tags-fix.sh: Use command-line-arguments.
Matt Birkholz [Tue, 5 Jun 2018 14:33:05 +0000 (07:33 -0700)]
A couple more fall-through comments.
Matt Birkholz [Tue, 5 Jun 2018 08:15:56 +0000 (01:15 -0700)]
Name most threads.
Matt Birkholz [Tue, 5 Jun 2018 17:54:41 +0000 (10:54 -0700)]
Print Edwin buffer names.
Matt Birkholz [Tue, 5 Jun 2018 08:15:36 +0000 (01:15 -0700)]
world-report: Display thread names instead of associated "flags".
Matt Birkholz [Fri, 1 Jun 2018 21:15:27 +0000 (14:15 -0700)]
Add optional name parameter to create-thread.
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.
Matt Birkholz [Tue, 5 Jun 2018 06:44:29 +0000 (23:44 -0700)]
blowfish: typo in manual
Matt Birkholz [Fri, 1 Jun 2018 22:37:07 +0000 (15:37 -0700)]
x11: version 0.3
Matt Birkholz [Fri, 1 Jun 2018 21:41:05 +0000 (14:41 -0700)]
x11: Allow CurrentTime.
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.
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.
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.
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.
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.
Matt Birkholz [Fri, 1 Jun 2018 20:45:13 +0000 (13:45 -0700)]
plugins: Copy .crf reports into the build log.
Matt Birkholz [Fri, 1 Jun 2018 19:51:31 +0000 (12:51 -0700)]
gdbm: version 0.4
Matt Birkholz [Fri, 1 Jun 2018 19:49:36 +0000 (12:49 -0700)]
gdbm: Update documentation regarding file locks.
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.
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.
Chris Hanson [Sat, 2 Jun 2018 05:42:56 +0000 (22:42 -0700)]
Update copyrights.
Chris Hanson [Sat, 2 Jun 2018 05:26:32 +0000 (22:26 -0700)]
Change subexpression marker to not require quoting.
Chris Hanson [Sat, 2 Jun 2018 05:20:08 +0000 (22:20 -0700)]
No need to quote weird symbols as strings.
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.
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.
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.
Chris Hanson [Tue, 29 May 2018 00:35:07 +0000 (17:35 -0700)]
Implement call-with-port for R7RS.
Chris Hanson [Mon, 28 May 2018 20:54:43 +0000 (13:54 -0700)]
Add definitions of standard libraries.
Chris Hanson [Mon, 28 May 2018 20:54:17 +0000 (13:54 -0700)]
Fix thinko: forgot to provide definition of file-error?.
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.
Chris Hanson [Mon, 28 May 2018 02:47:13 +0000 (19:47 -0700)]
Implement vector-any and vector-every.
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.
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.
Chris Hanson [Wed, 23 May 2018 07:17:55 +0000 (00:17 -0700)]
Rewrite the hashing primitives to support runtime-level hashing.
Chris Hanson [Wed, 23 May 2018 05:17:51 +0000 (22:17 -0700)]
Fix thinko in hash-simple-object and add primitive-memory-hash.
Chris Hanson [Wed, 23 May 2018 05:03:15 +0000 (22:03 -0700)]
Use bytevector instead of string when detecting endianness.
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.
Chris Hanson [Tue, 22 May 2018 07:46:51 +0000 (00:46 -0700)]
Move knowledge of unicode strings into sdata.h and object.h.
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.
Chris Hanson [Mon, 21 May 2018 05:42:00 +0000 (22:42 -0700)]
Refactor cond-expand to separate out the clauses evaluator.
Also change cond-expand to use new id!=? for else clause.
Chris Hanson [Mon, 21 May 2018 05:35:26 +0000 (22:35 -0700)]
Implement spar-arg:id!=? to handle useful case.
Chris Hanson [Mon, 21 May 2018 00:27:50 +0000 (17:27 -0700)]
Change symbol<? to sort interned symbols before uninterned.
Chris Hanson [Sun, 20 May 2018 23:59:38 +0000 (16:59 -0700)]
Clean up loader's handling of pathname and environment.
Chris Hanson [Sun, 20 May 2018 23:59:02 +0000 (16:59 -0700)]
Move magit-diff-arguments from custom.el to init.el.
Chris Hanson [Sun, 20 May 2018 21:03:22 +0000 (14:03 -0700)]
Implement interaction-environment for R7RS.
Chris Hanson [Sun, 20 May 2018 21:03:13 +0000 (14:03 -0700)]
Fix title.
Chris Hanson [Sun, 20 May 2018 05:30:49 +0000 (22:30 -0700)]
Implement include and include-ci for R7RS.