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.
Chris Hanson [Thu, 11 Jan 2018 04:03:17 +0000 (20:03 -0800)]
Eliminate record-entity names and support.
Chris Hanson [Thu, 11 Jan 2018 03:37:47 +0000 (19:37 -0800)]
Delete some unnecessary procedures.
Chris Hanson [Thu, 11 Jan 2018 03:19:58 +0000 (19:19 -0800)]
Tweak dispatch-tag slightly.
Chris Hanson [Wed, 10 Jan 2018 06:00:39 +0000 (22:00 -0800)]
Push definition of register-predicate! to beginning of cold load.
Chris Hanson [Wed, 10 Jan 2018 05:02:06 +0000 (21:02 -0800)]
Eliminate use of record-specific printing registration.
Chris Hanson [Wed, 10 Jan 2018 04:47:55 +0000 (20:47 -0800)]
Clean up the ad hoc handling of boot-time predicate registrations.
Chris Hanson [Wed, 10 Jan 2018 04:30:12 +0000 (20:30 -0800)]
Use weak hash tables for predicate lattice.
Chris Hanson [Wed, 10 Jan 2018 04:25:25 +0000 (20:25 -0800)]
Eliminate unused (and not fully thought out) unregister-predicate!.
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.
Chris Hanson [Wed, 10 Jan 2018 04:06:27 +0000 (20:06 -0800)]
Thanks Joe! Fix thinko in code generation for define-structure.
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!.
Chris Hanson [Tue, 9 Jan 2018 03:50:17 +0000 (22:50 -0500)]
Move srfi-1 support to beginning of cold load.
Chris Hanson [Tue, 9 Jan 2018 03:05:52 +0000 (22:05 -0500)]
Minor simplification.
Chris Hanson [Tue, 9 Jan 2018 03:01:58 +0000 (22:01 -0500)]
Move dispatch-tag print method into gentag.scm.
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.
Chris Hanson [Tue, 9 Jan 2018 02:06:30 +0000 (21:06 -0500)]
Search for root-level "build" directory when finding STAGE0.
Chris Hanson [Tue, 9 Jan 2018 02:00:30 +0000 (21:00 -0500)]
Add optional argument to specify build directory.
Chris Hanson [Tue, 9 Jan 2018 01:57:33 +0000 (20:57 -0500)]
Implement simple script to show all of the .crf files.
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.
Chris Hanson [Mon, 8 Jan 2018 05:00:17 +0000 (00:00 -0500)]
Ignore build directory called "build".
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.
Chris Hanson [Sun, 7 Jan 2018 20:32:33 +0000 (15:32 -0500)]
Implement string->immutable.
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.
Chris Hanson [Sun, 7 Jan 2018 20:09:33 +0000 (15:09 -0500)]
Convert record support to use new predicate dispatchers.
Chris Hanson [Sun, 7 Jan 2018 19:45:40 +0000 (14:45 -0500)]
Implement real define-pp-describer.
Chris Hanson [Sun, 7 Jan 2018 19:38:44 +0000 (14:38 -0500)]
Implement real define-unparser-method.
Chris Hanson [Sun, 7 Jan 2018 19:33:02 +0000 (14:33 -0500)]
Implement define-unparser-method and define-pp-describer as deferred actions.
Chris Hanson [Sun, 7 Jan 2018 05:31:38 +0000 (00:31 -0500)]
Change record to use predicate dispatchers instead of generics.
Chris Hanson [Sun, 7 Jan 2018 04:48:55 +0000 (23:48 -0500)]
Tweak.
Chris Hanson [Sun, 7 Jan 2018 04:36:05 +0000 (23:36 -0500)]
Change predicate-dispatcher to be an entity.
Chris Hanson [Sun, 7 Jan 2018 04:35:57 +0000 (23:35 -0500)]
Fix compiler warning.
Chris Hanson [Sun, 7 Jan 2018 04:35:07 +0000 (23:35 -0500)]
Add two tests that were missing from known-tests.
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.
Chris Hanson [Sat, 6 Jan 2018 22:45:59 +0000 (17:45 -0500)]
Establish an explicit booting? flag that controls boot inits.
Chris Hanson [Sat, 6 Jan 2018 21:29:19 +0000 (16:29 -0500)]
Change boot-time deferrals to use variable-setter.
Chris Hanson [Sat, 6 Jan 2018 21:29:08 +0000 (16:29 -0500)]
Implement variable-setter macro.
Chris Hanson [Sat, 6 Jan 2018 21:28:38 +0000 (16:28 -0500)]
Must load host-adapter for syntax definitions when compiling.
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.
Chris Hanson [Sat, 6 Jan 2018 04:18:50 +0000 (23:18 -0500)]
Eliminate less-than-useful comment.
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.
Chris Hanson [Sat, 6 Jan 2018 02:58:08 +0000 (21:58 -0500)]
Fix typo.
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.
Chris Hanson [Fri, 5 Jan 2018 20:19:42 +0000 (15:19 -0500)]
Reimplement bundle printers to be more like other printers.
Chris Hanson [Fri, 5 Jan 2018 07:34:28 +0000 (02:34 -0500)]
Some name changes and small cleanups.
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
Chris Hanson [Fri, 5 Jan 2018 07:11:29 +0000 (02:11 -0500)]
First draft of "bundle" support.
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.
Chris Hanson [Fri, 5 Jan 2018 07:10:08 +0000 (02:10 -0500)]
Fix emacs interface breakage caused by string rewrite.
Chris Hanson [Tue, 26 Dec 2017 19:03:52 +0000 (14:03 -0500)]
Eliminate non-hygienic-macro-transformer.
Chris Hanson [Tue, 26 Dec 2017 06:23:52 +0000 (01:23 -0500)]
Eliminate unused inerly files.
Chris Hanson [Tue, 26 Dec 2017 05:09:51 +0000 (00:09 -0500)]
Eliminate unused and unneeded definition-environment in syntaxer.
Chris Hanson [Tue, 26 Dec 2017 05:09:20 +0000 (00:09 -0500)]
Fold over-long lines.
Chris Hanson [Tue, 26 Dec 2017 04:54:30 +0000 (23:54 -0500)]
Eliminate no-longer-used binding genrated by define-structure.
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
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.
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.
Chris Hanson [Thu, 21 Dec 2017 06:17:41 +0000 (22:17 -0800)]
Support OR in syntax-check.
Chris Hanson [Thu, 21 Dec 2017 06:17:13 +0000 (22:17 -0800)]
Handle case where XCode SDK doesn't match running OS.
Taylor R Campbell [Tue, 19 Dec 2017 14:53:44 +0000 (14:53 +0000)]
Restore SIGQUIT handler so I can enter breakpoints again.
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.
Taylor R Campbell [Tue, 19 Dec 2017 14:14:46 +0000 (14:14 +0000)]
Avoid stack overflow with long responses.
Taylor R Campbell [Tue, 28 Nov 2017 06:10:17 +0000 (06:10 +0000)]
Add blowfish-cbc tests.
Taylor R Campbell [Tue, 28 Nov 2017 05:08:59 +0000 (05:08 +0000)]
Add standard Blowfish tests.
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.
Chris Hanson [Sat, 4 Nov 2017 04:11:36 +0000 (21:11 -0700)]
Simplify previous fix to string-trimmer.
Chris Hanson [Sat, 4 Nov 2017 04:01:55 +0000 (21:01 -0700)]
Fix warnings from macOS compiler.
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
Chris Hanson [Sat, 4 Nov 2017 03:23:26 +0000 (20:23 -0700)]
Fix incorrect use of && where & should have been used.
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.
Taylor R Campbell [Sat, 4 Nov 2017 03:18:32 +0000 (03:18 +0000)]
Rip out microcode mhash module.
Taylor R Campbell [Sat, 4 Nov 2017 03:09:16 +0000 (03:09 +0000)]
Eliminate optional mhash dependency in fasdump.c.
Taylor R Campbell [Sat, 4 Nov 2017 03:01:46 +0000 (03:01 +0000)]
Rip out vestiges of MD5 loadables.
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.
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.
Matt Birkholz [Thu, 2 Nov 2017 23:56:48 +0000 (16:56 -0700)]
blowfish plugin: Add texinfo manual, scraped from OpenSSL manpages.
Matt Birkholz [Thu, 2 Nov 2017 16:12:30 +0000 (09:12 -0700)]
x11/x11-base (->cstring): Convert 0 to the null pointer.
Matt Birkholz [Thu, 2 Nov 2017 16:06:05 +0000 (09:06 -0700)]
pgsql plugin: typos, e.g. banish vagrant scminfodir.
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>.
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
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.
Chris Hanson [Sun, 8 Oct 2017 00:41:40 +0000 (17:41 -0700)]
Eliminate no-longer-used conditional.
Chris Hanson [Fri, 6 Oct 2017 23:56:24 +0000 (16:56 -0700)]
Fix typo when reading symbols without #!fold-case.
Matt Birkholz [Thu, 21 Sep 2017 22:25:47 +0000 (15:25 -0700)]
x11: Ensure C strings are null terminated.
Matt Birkholz [Thu, 21 Sep 2017 22:21:15 +0000 (15:21 -0700)]
gdbm: Ensure filename for do_gdbm_open is null terminated.
Matt Birkholz [Tue, 19 Sep 2017 03:15:00 +0000 (20:15 -0700)]
microcode/cmpauxmd/i386.m4: typo
Matt Birkholz [Sat, 16 Sep 2017 22:06:17 +0000 (15:06 -0700)]
runtime/syncproc: Eliminate spinning, and blocking.
The run-shell-command spins when it is copying both stdin and stdout.
E.g.
(call-with-input-string "Lorem ipsum dolor sit amet\n"
(lambda (in)
(run-shell-command "sleep 10; cat" 'input in)))
will keep your machine busy for 10 seconds.
When it is not spinning, the procedure blocks for large bufferfuls.
During the evaluation of
(run-shell-command
"i=0; while [ $i -lt 5 ]; do echo $i; i=$[$i + 1]; sleep 1; done"
'redisplay-hook flush-output-port)
you will not see 5 lines of output, one each second, but all 5 lines
at once after 5 seconds, despite the redisplay hook [Linux 4.10.0
glibc 2.24].
This new copying process eliminates the blocking AND the spinning. It
keeps stdout in nonblocking mode and uses suspend-current-thread to
block. It handles short writes too. The ports sourcing/sinking
stdin/stdout are required to block.
Matt Birkholz [Sat, 16 Sep 2017 22:37:22 +0000 (15:37 -0700)]
microcode/cmpauxmd/x86-64.m4: Wordsmith commentary for specificity.
Matt Birkholz [Sat, 16 Sep 2017 21:56:31 +0000 (14:56 -0700)]
microcode/debug: Add ustring support, Stack(), Print(), brevity.
Print is just the renamed Debug_Print, renamed for brevity in debugger
commands. Rename do_printing to print_object and punt the detailed_p
parameter, and the gotos, and handled_p. Move the bulky compiled
entry handling to a separate function: print_compiled_entry. Punt
checking for a "closed" stack frame in verify_stack().
Matt Birkholz [Sat, 16 Sep 2017 21:38:27 +0000 (14:38 -0700)]
microcode: Do not save history_register locally.
The required change to C_call_scheme is described but not implemented.
C_call_scheme has other problems(?). Preferring a rotated history to
a broken history (broken by a GC during a callback) for now.
Matt Birkholz [Sat, 16 Sep 2017 21:36:58 +0000 (14:36 -0700)]
microcode: Restore frame pointer as well as stack pointer.
Matt Birkholz [Sat, 16 Sep 2017 22:19:27 +0000 (15:19 -0700)]
ffi: Follow example of C_call_scheme; eliminate aborts.
Keep callouts simple, fast. Make callbacks save/restore machine state
(last_return_code, mainly) and use RC_END_OF_COMPUTATION instead of a
special primitive (return-to-c), like C_call_scheme. Punt the
pop_return_p parameter of Interpret; instead, leave #f in EXP and
Re_Enter_Interpreter, also like C_call_scheme. Add re_enter_scheme to
pop machine state pushed by abort_to_c (used when state cannot be
saved locally, as in the glib plugin's run_glib).
Add a gc-flip to the test callback.
Taylor R Campbell [Tue, 12 Sep 2017 03:39:34 +0000 (03:39 +0000)]
Fix syncproc test to avoid bashism.
Taylor R Campbell [Tue, 12 Sep 2017 03:34:42 +0000 (03:34 +0000)]
Add Keccak-f[1600] primitive operating on byte vectors.
Won't break any speed records with all the copying and byte order
conversion but will work at least and be handy for exploration.
Chris Hanson [Wed, 2 Aug 2017 02:31:22 +0000 (22:31 -0400)]
Fix thinko in previous change.
We want to close an I/O port when both channels are the same and the other one
is marked closed.
Matt Birkholz [Sun, 30 Jul 2017 23:08:33 +0000 (16:08 -0700)]
tests/runtime/test-syncproc: Enabled, with 3 more basic tests.
Matt Birkholz [Sun, 30 Jul 2017 22:39:21 +0000 (15:39 -0700)]
runtime/binary-port (close-binary-output-port): Close output chan.
Close-binary-output-port was not closing the output channel of a
binary IO port when input and output channels were not the same
(e.g. when the port is the IO of a subprocess). Close-binary-input-
port seemed to have the same thinko.
Matt Birkholz [Wed, 26 Jul 2017 23:43:46 +0000 (16:43 -0700)]
pgsql plugin: Typos. Check script should warn (not die) w/o DB.
Matt Birkholz [Wed, 26 Jul 2017 23:05:54 +0000 (16:05 -0700)]
runtime/stringio (string-in/read-substring): Swap src/dst strings.
Matt Birkholz [Sun, 2 Jul 2017 20:20:56 +0000 (13:20 -0700)]
pgsql plugin: New, from the pgsql microcode module.