Matt Birkholz [Wed, 6 Jun 2018 00:20:06 +0000 (17:20 -0700)]
Update copyright notices.
Matt Birkholz [Tue, 5 Jun 2018 23:17:04 +0000 (16:17 -0700)]
Merge branch 'master' into pucked.
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.
Matt Birkholz [Tue, 5 Jun 2018 06:20:56 +0000 (23:20 -0700)]
Merge branch 'master' into pucked.
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.
Matt Birkholz [Wed, 30 May 2018 15:48:39 +0000 (08:48 -0700)]
gdbm: version 0.3.4
Matt Birkholz [Wed, 30 May 2018 14:43:32 +0000 (07:43 -0700)]
gdbm: Accommodate gdbm 1.14.
Add const declarations. Rename struct member gdbm_errno, which
conflicts with a new pre-processor macro.
Presume external locking is already in place where necessary. Add
GDBM_NOLOCK to the gdbm_open flags in versions >= 1.13. Gdbm 1.14 on
Ubuntu 18.04 fails to lock a DB file it just created (during `make
check`).
Matt Birkholz [Mon, 28 May 2018 21:55:59 +0000 (14:55 -0700)]
devops: Capitalize error messages; end them with a colon or period.
Matt Birkholz [Mon, 28 May 2018 21:52:45 +0000 (14:52 -0700)]
user.texinfo: A typo. And punt mention of gdbm microcode module.
Matt Birkholz [Wed, 30 May 2018 14:39:36 +0000 (07:39 -0700)]
runtime/ffi: Do not dynamic-wind around callouts and callbacks.
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.
Chris Hanson [Sun, 20 May 2018 05:21:07 +0000 (22:21 -0700)]
READ no longer uses its environment arg, so remove it.
Chris Hanson [Sun, 20 May 2018 01:05:44 +0000 (18:05 -0700)]
Non-functioning implementation of import and define-library.
Chris Hanson [Sun, 20 May 2018 00:47:08 +0000 (17:47 -0700)]
Capture useful pattern with spar-pattern-fixed-point.
Chris Hanson [Sun, 20 May 2018 00:23:29 +0000 (17:23 -0700)]
Rewrite cond-expand-pattern as cond-expand-clause-pattern.
This will allow it to be reused for define-library.
Chris Hanson [Sun, 20 May 2018 00:23:03 +0000 (17:23 -0700)]
Tweak pattern->spar to make it more useful.
Also add (cons* ...) pattern.
Chris Hanson [Sat, 19 May 2018 22:06:29 +0000 (15:06 -0700)]
Fix typo in DISPLAY.
Chris Hanson [Sat, 19 May 2018 06:42:54 +0000 (23:42 -0700)]
Implement define-values for R7RS.
Chris Hanson [Sat, 19 May 2018 06:21:05 +0000 (23:21 -0700)]
Split command-line processing out of load into its own file.
Also implement command-line for R7RS, renaming existing command-line to
command-line-arguments.
Chris Hanson [Sat, 19 May 2018 04:24:53 +0000 (21:24 -0700)]
Implement exact-integer-sqrt for R7RS.
Chris Hanson [Thu, 17 May 2018 07:08:53 +0000 (00:08 -0700)]
Implement CASE-LAMBDA for R7RS.
Chris Hanson [Thu, 17 May 2018 05:37:24 +0000 (22:37 -0700)]
Make sure that value of r4rs-lambda-list-arity is simplified.
Chris Hanson [Thu, 17 May 2018 05:16:19 +0000 (22:16 -0700)]
Implement fold-r4rs-lambda-list and r4rs-lambda-list-arity.
Chris Hanson [Wed, 16 May 2018 05:32:46 +0000 (22:32 -0700)]
Implement GUARD for R7RS.
Chris Hanson [Tue, 15 May 2018 04:48:25 +0000 (21:48 -0700)]
Change users of arity-dispatched-procedure to use the abstraction.
Chris Hanson [Tue, 15 May 2018 04:36:22 +0000 (21:36 -0700)]
Move the arity-dispatcher-tag from the microcode to the runtime system.
Chris Hanson [Tue, 15 May 2018 04:35:24 +0000 (21:35 -0700)]
Rewrite microcode-tables.scm for simplicity.
Also add a 'fixed-objects boot-actions list and change record.scm to use it.
Chris Hanson [Mon, 14 May 2018 19:31:25 +0000 (12:31 -0700)]
A few more fall-through comments.
Chris Hanson [Mon, 14 May 2018 19:29:35 +0000 (12:29 -0700)]
Add comments to suppress fall-through warnings in GCC 7.
Chris Hanson [Mon, 14 May 2018 04:54:30 +0000 (21:54 -0700)]
Apple doesn't need special definition for jiffies-per-second.
Chris Hanson [Mon, 14 May 2018 04:52:51 +0000 (21:52 -0700)]
Don't use CLOCKS_PER_SEC for the value returned by times().
Chris Hanson [Mon, 14 May 2018 04:29:35 +0000 (21:29 -0700)]
Add missing procedure in host-adapter.
Chris Hanson [Mon, 14 May 2018 04:20:23 +0000 (21:20 -0700)]
Implement CURRENT-JIFFY and JIFFIES-PER-SECOND for R7RS.
Very rough implementation, may return process time instead of real time on
non-POSIX systems.
Chris Hanson [Mon, 14 May 2018 03:06:41 +0000 (20:06 -0700)]
Implement CURRENT-SECOND for R7RS.
Chris Hanson [Mon, 14 May 2018 03:02:16 +0000 (20:02 -0700)]
Fix bug: earlier rewrite of printer broke pp.
Chris Hanson [Mon, 14 May 2018 02:43:57 +0000 (19:43 -0700)]
Implement get-environment-variables for R7RS.
Chris Hanson [Mon, 14 May 2018 02:43:42 +0000 (19:43 -0700)]
More R7RS tags.
Chris Hanson [Mon, 14 May 2018 00:15:59 +0000 (17:15 -0700)]
Rename GET-SUPPORTED-FEATURES to FEATURES for R7RS.
Also add some more R7RS comments to runtime.pkg.
Chris Hanson [Mon, 14 May 2018 00:13:21 +0000 (17:13 -0700)]
A bunch of changes to implement R7RS exit/emergency-exit.
* The EXIT procedure has been removed.
* The %EXIT procedure has been renamed to EXIT.
* The EMERGENCY-EXIT procedure has been added.
* The optional argument to the above has been generalized to meet R7RS
requirements.
* The QUIT procedure has been renamed to SUSPEND to more accurately reflect what
it does.
* The names %EXIT and QUIT are deprecated aliases for EXIT and SUSPEND.
Chris Hanson [Sun, 13 May 2018 23:05:37 +0000 (16:05 -0700)]
Don't expose internal structure of continuations.
Chris Hanson [Sun, 13 May 2018 06:22:28 +0000 (23:22 -0700)]
Eliminate two unused exports.
Chris Hanson [Sun, 13 May 2018 06:19:18 +0000 (23:19 -0700)]
Eliminate uses of unparser/set-tagged-{pair,vector}-unparser!.
Also change their implementation to use define-print-method.
Chris Hanson [Sun, 13 May 2018 06:18:05 +0000 (23:18 -0700)]
Rename a bunch of places from "unparse" to "print".
Chris Hanson [Sun, 13 May 2018 06:15:36 +0000 (23:15 -0700)]
Eliminate other references to "unparser" in the documentation.
Chris Hanson [Sun, 13 May 2018 05:33:03 +0000 (22:33 -0700)]
Simplify *print-with-brackets a bit.
Chris Hanson [Sun, 13 May 2018 05:32:36 +0000 (22:32 -0700)]
Assume that named vector/list unparsers are in fact print methods.
Chris Hanson [Sun, 13 May 2018 05:30:48 +0000 (22:30 -0700)]
Clean up printer bindings.
Chris Hanson [Sun, 13 May 2018 05:30:12 +0000 (22:30 -0700)]
Change "unparser" to "printer" in number printer.
Chris Hanson [Sun, 13 May 2018 04:36:32 +0000 (21:36 -0700)]
Update document to reflect new print-method implementation.
Chris Hanson [Sun, 13 May 2018 04:23:21 +0000 (21:23 -0700)]
Major refactor to how printer methods work.
* Replaced define-unparser-method with define-print-method. A print method is
an ordinary procedure that accepts an object and an output port as its
arguments and prints whatever it wants to. The translation layer required by
older unparser methods is no longer needed.
* New standard-print-method is roughly equivalent to simple-unparser-method.
* New bracketed-print-method is roughly equivalent to standard-unparser-method.
* Changed the printer to handle standard-print-method specially when detecting
cycles and shared structure, so that an object using that print method has its
parts walked when looking for shared/cyclic structure.
Chris Hanson [Sat, 12 May 2018 06:20:31 +0000 (23:20 -0700)]
Implement R7RS write procedures with datum labels.
For now, write and write-shared do the same thing. Limiting the labeling to
circularities is harder than doing all sharing, and unless I can find some new
algorithms, it is slower too. So write will generate more datum labels than
strictly necessary, but it is safe for printing circular structures.