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.
Matt Birkholz [Sun, 2 Jul 2017 18:40:21 +0000 (11:40 -0700)]
ffi/build (read-html-title): Use core regsexp.
Also: write-direntry now just uses string search and un/compress-file
loads the synchronous-subprocess option quietly.
Taylor R Campbell [Mon, 29 May 2017 20:33:21 +0000 (20:33 +0000)]
Fix missing argument.
Noted by mejja.
Matt Birkholz [Wed, 24 May 2017 01:23:20 +0000 (18:23 -0700)]
x11-screen plugin: Update README, NEWS, version.
Matt Birkholz [Tue, 23 May 2017 23:44:55 +0000 (16:44 -0700)]
x11 plugin: Convert to iso8859-1 rather than utf8.
And avoid converting if the string is already ASCII. Also fix the
subsystem version number, and update README, NEWS, etc. following the
examples of the other plugins.
Matt Birkholz [Tue, 23 May 2017 23:43:28 +0000 (16:43 -0700)]
test-ffi-wrapper: c-peek-cstring can now return a legacy string.
Chris Hanson [Mon, 22 May 2017 05:31:50 +0000 (22:31 -0700)]
Move re-compile-char-set from rgxcmp to chrset.
This is a dependency of regsexp, which didn't work unless the regular-expression
option was loaded.
Matt Birkholz [Thu, 18 May 2017 01:05:27 +0000 (18:05 -0700)]
world-report: missing PORT in call to write-string
Matt Birkholz [Wed, 17 May 2017 23:56:59 +0000 (16:56 -0700)]
doc: Define PACKAGE_TARNAME (for docdir) in make-common too.
Matt Birkholz [Wed, 17 May 2017 23:13:47 +0000 (16:13 -0700)]
mcrypt-check.sh: Load-option for run-shell-command.
Matt Birkholz [Wed, 17 May 2017 23:12:22 +0000 (16:12 -0700)]
runtime/crypto: Allow strings for module names; fix a string-append.
Matt Birkholz [Wed, 17 May 2017 23:10:33 +0000 (16:10 -0700)]
plugin READMEs: Suggest the new import procedures.
Matt Birkholz [Wed, 17 May 2017 23:05:50 +0000 (16:05 -0700)]
plugin AUTHORS: generalize
Matt Birkholz [Wed, 17 May 2017 23:01:12 +0000 (16:01 -0700)]
plugins: Re-sync with runtime; allow strings as well as bytevectors.
Matt Birkholz [Wed, 17 May 2017 22:47:01 +0000 (15:47 -0700)]
plugins: Use add/remove-plugin procedures. Increment versions.
Matt Birkholz [Wed, 17 May 2017 22:37:59 +0000 (15:37 -0700)]
Add add-plugin and remove-plugin; maintain an Info index.
The postrm Debian installation scripts do not work if they are run
after the core package is removed. And prerm scripts do not work if
they update indexes based on what is installed. (The package being
removed is still installed.) Replace update-html-index and update-
optiondb-index with add-plugin and remove-plugin, procedures that
add/remove names to/from a list. These work in prerm scripts.
Matt Birkholz [Wed, 17 May 2017 22:22:54 +0000 (15:22 -0700)]
ffi: Accept and return legacy strings for backward compatibility.
Matt Birkholz [Wed, 17 May 2017 22:11:35 +0000 (15:11 -0700)]
doc: Define PACKAGE_TARNAME, part of the default docdir.
Also define PROJECT to make it easier to change the project name.
Matt Birkholz [Wed, 17 May 2017 21:59:14 +0000 (14:59 -0700)]
user-manual: Installing documentation. And use short @node lines.
Matt Birkholz [Wed, 17 May 2017 21:53:11 +0000 (14:53 -0700)]
Fix MAX_HALT_MESSAGE (after adding 3 more). Thanks to Joe Marshall.
Chris Hanson [Wed, 17 May 2017 02:38:10 +0000 (19:38 -0700)]
Fix string-for-primitive as pointed out by Matt.
Chris Hanson [Mon, 15 May 2017 04:53:34 +0000 (21:53 -0700)]
Fix typo.
Chris Hanson [Fri, 12 May 2017 03:51:24 +0000 (20:51 -0700)]
Implement KMP backward search.
Chris Hanson [Fri, 12 May 2017 03:14:23 +0000 (20:14 -0700)]
Implement a basic test for testing string searches.
Chris Hanson [Fri, 12 May 2017 03:13:38 +0000 (20:13 -0700)]
Add Knuth-Morris-Pratt search algorithm for forward searches.
Still need to implement for backward searches.
Chris Hanson [Tue, 9 May 2017 03:30:26 +0000 (20:30 -0700)]
Use more aggressive NFC memoization.
Could do the same for NFD but that would use the last available flag bit.
Chris Hanson [Mon, 8 May 2017 20:20:53 +0000 (13:20 -0700)]
Fix inadvertent removal of primitive body. Thanks to Matt Birkholz.
Chris Hanson [Mon, 8 May 2017 20:14:12 +0000 (13:14 -0700)]
Update test to get it working again.