Chris Hanson [Sat, 7 Jan 2017 09:54:31 +0000 (01:54 -0800)]
Eliminate use of vector-8b in char.
* Arrange for bytevector to be available early in the cold load.
* Eliminate redundant type-checking on procedures that call char->integer.
Chris Hanson [Sat, 7 Jan 2017 09:19:48 +0000 (01:19 -0800)]
Implement bytevector-fill! and change arg order to match R7Rs.
Chris Hanson [Sat, 7 Jan 2017 09:10:36 +0000 (01:10 -0800)]
Test shift right/left using bytevector-copy!.
Chris Hanson [Sat, 7 Jan 2017 04:57:38 +0000 (20:57 -0800)]
Add tests for bytevectors.
Still need to write UTF-8 conversion tests.
Chris Hanson [Sat, 7 Jan 2017 04:19:45 +0000 (20:19 -0800)]
Implement assert-range-error.
Also rename assert-wta-error to assert-type-error.
Chris Hanson [Sat, 7 Jan 2017 04:13:22 +0000 (20:13 -0800)]
Fix fencepost errors in start indexes.
Chris Hanson [Sat, 7 Jan 2017 03:57:00 +0000 (19:57 -0800)]
Implement bytevector=? and add bytevector support to equal?.
Chris Hanson [Sat, 7 Jan 2017 03:48:42 +0000 (19:48 -0800)]
Add boilerplate to new tests.
Chris Hanson [Sat, 7 Jan 2017 03:46:07 +0000 (19:46 -0800)]
Add tests for predicates.
Chris Hanson [Sat, 7 Jan 2017 03:45:41 +0000 (19:45 -0800)]
Enhance test framework with some useful utilities.
Chris Hanson [Sat, 7 Jan 2017 03:44:44 +0000 (19:44 -0800)]
Fix name change missed by previous edit.
Chris Hanson [Sat, 7 Jan 2017 03:37:02 +0000 (19:37 -0800)]
Add missing initialization.
Chris Hanson [Fri, 6 Jan 2017 21:53:04 +0000 (13:53 -0800)]
Register parameter-binding?.
Chris Hanson [Fri, 6 Jan 2017 21:47:41 +0000 (13:47 -0800)]
Implement parametric predicates.
Chris Hanson [Fri, 6 Jan 2017 21:31:10 +0000 (13:31 -0800)]
Implement compound predicates.
Chris Hanson [Fri, 6 Jan 2017 21:29:57 +0000 (13:29 -0800)]
Implement memoizers.
Chris Hanson [Fri, 6 Jan 2017 21:21:42 +0000 (13:21 -0800)]
Fix dangling references to guarantee procedures.
Chris Hanson [Fri, 6 Jan 2017 21:19:33 +0000 (13:19 -0800)]
Register equality-predicate?.
Chris Hanson [Fri, 6 Jan 2017 21:18:40 +0000 (13:18 -0800)]
Check arguments to set-equality-predicate-hasher!.
Chris Hanson [Fri, 6 Jan 2017 21:16:06 +0000 (13:16 -0800)]
Generalize procedure-arity-valid? to take an arbitrary arity.
Also provide procedure-arity<=.
Chris Hanson [Fri, 6 Jan 2017 20:52:59 +0000 (12:52 -0800)]
Implement association between equality predicates and hash procedures.
Also change hashtb.scm to use add-boot-init!.
Chris Hanson [Fri, 6 Jan 2017 19:57:18 +0000 (11:57 -0800)]
Implement unary-procedure? and binary-procedure?.
Chris Hanson [Fri, 6 Jan 2017 19:52:17 +0000 (11:52 -0800)]
Implement non-empty-list?.
Chris Hanson [Fri, 6 Jan 2017 19:51:24 +0000 (11:51 -0800)]
Allow register-predicate! to specify multiple supersets.
Chris Hanson [Fri, 6 Jan 2017 07:39:59 +0000 (23:39 -0800)]
Add some more predicate definitions.
Chris Hanson [Fri, 6 Jan 2017 07:32:46 +0000 (23:32 -0800)]
Eliminate boot-load implementation of register-predicate!.
Not needed now that boot-time registrations are being done manually.
Chris Hanson [Fri, 6 Jan 2017 07:30:39 +0000 (23:30 -0800)]
Change new files to use boot-init mechanism.
Also change to use guarantee, and to register lots of standard predicates.
Chris Hanson [Fri, 6 Jan 2017 06:40:31 +0000 (22:40 -0800)]
Tweak boot-init mechanism to only run when necessary.
Also eliminate never-used exports.
Chris Hanson [Fri, 6 Jan 2017 04:03:07 +0000 (20:03 -0800)]
Fix definitions of legal code points.
Chris Hanson [Fri, 6 Jan 2017 03:28:47 +0000 (19:28 -0800)]
Compute tag's description lazily if not given.
Chris Hanson [Fri, 6 Jan 2017 03:23:35 +0000 (19:23 -0800)]
*mplement object-tagger.
Chris Hanson [Fri, 6 Jan 2017 03:20:09 +0000 (19:20 -0800)]
Tweak pagination.
Chris Hanson [Fri, 6 Jan 2017 03:18:44 +0000 (19:18 -0800)]
Change tagged-object to be tagged with a predicate.
Chris Hanson [Fri, 6 Jan 2017 03:13:29 +0000 (19:13 -0800)]
Implement predicate lattice support.
Chris Hanson [Fri, 6 Jan 2017 03:12:13 +0000 (19:12 -0800)]
Tweak.
Chris Hanson [Fri, 6 Jan 2017 01:23:22 +0000 (17:23 -0800)]
Update .gitignore.
Chris Hanson [Fri, 6 Jan 2017 01:22:08 +0000 (17:22 -0800)]
Implement support for predicates.
Chris Hanson [Thu, 5 Jan 2017 21:38:18 +0000 (13:38 -0800)]
Add support for tagged objects.
Chris Hanson [Thu, 5 Jan 2017 21:37:12 +0000 (13:37 -0800)]
Add package comment to bytevector.scm.
Chris Hanson [Thu, 5 Jan 2017 20:46:50 +0000 (12:46 -0800)]
Add open-coding support for bytevectors.
Chris Hanson [Thu, 5 Jan 2017 20:46:42 +0000 (12:46 -0800)]
Fix thinko in previous change.
Chris Hanson [Thu, 5 Jan 2017 20:16:05 +0000 (12:16 -0800)]
Add bytevector primitives to SF transformation rules.
Chris Hanson [Thu, 5 Jan 2017 20:06:25 +0000 (12:06 -0800)]
Implement parsing of bytevectors.
Chris Hanson [Thu, 5 Jan 2017 20:06:15 +0000 (12:06 -0800)]
Implement byte?.
Chris Hanson [Thu, 5 Jan 2017 19:29:12 +0000 (11:29 -0800)]
Implement writing of bytevectors.
Also clean up pagination of unparse.scm.
Chris Hanson [Thu, 5 Jan 2017 19:29:00 +0000 (11:29 -0800)]
Fix thinkos.
Chris Hanson [Thu, 5 Jan 2017 19:07:34 +0000 (11:07 -0800)]
Split TC_BYTEVECTOR from TC_CHARACTER_STRING to simplify transition.
Chris Hanson [Thu, 5 Jan 2017 05:48:22 +0000 (21:48 -0800)]
First draft of runtime support for bytevectors.
Only lightly tested, still needs work.
Chris Hanson [Thu, 5 Jan 2017 05:48:07 +0000 (21:48 -0800)]
Fix some bugs; implement bytevector-fill!.
Chris Hanson [Thu, 5 Jan 2017 00:45:39 +0000 (16:45 -0800)]
Update copyright licenses for new year.
Chris Hanson [Thu, 5 Jan 2017 00:39:09 +0000 (16:39 -0800)]
Eliminate byte_t.
Chris Hanson [Tue, 3 Jan 2017 22:16:16 +0000 (17:16 -0500)]
First draft of bytevector primitives.
Chris Hanson [Tue, 3 Jan 2017 20:48:45 +0000 (15:48 -0500)]
Rename TC_CHARACTER_STRING to TC_BYTEVECTOR and TC_NULL to TC_FALSE.
Chris Hanson [Tue, 3 Jan 2017 20:26:29 +0000 (15:26 -0500)]
Implement tagged-object type, a combination of a tag and an object.
Taylor R Campbell [Mon, 2 Jan 2017 15:46:39 +0000 (15:46 +0000)]
Mark intentionally ignored variables as such.
Daniel White [Mon, 2 Jan 2017 14:20:21 +0000 (23:50 +0930)]
Fix deinstall of multiplexer when a default exists.
This copes with a somewhat subtle case where a default exists but the
last generator is removed. By inverting the checks, we can ensure we
only look at the cdr of the generator list when generators is actually a
pair.
The bug was originally exhibited by an error when removing the last
generator with remove-generic-procedure-generator on a generic procedure
with a default generator.
Taylor R Campbell [Mon, 2 Jan 2017 15:41:20 +0000 (15:41 +0000)]
Allow user to use external toolchain with TOOLCHAIN make variable.
Chris Hanson [Tue, 13 Dec 2016 06:09:16 +0000 (22:09 -0800)]
Simplify mechanism to customize PP description for records.
Also extend to entities with record "extra".
Matt Birkholz [Wed, 23 Nov 2016 20:10:36 +0000 (13:10 -0700)]
x11/x11-base.scm (key-event): typo. Fix Alt-Backspace -> #\M-DEL.
Matt Birkholz [Wed, 23 Nov 2016 17:45:54 +0000 (10:45 -0700)]
x11 (event-name): Rename event-type-name and export (for debugging).
Matt Birkholz [Wed, 23 Nov 2016 17:38:21 +0000 (10:38 -0700)]
microcode (OS_test_select_registry): Check for subprocess status
changes when !blockp and the registry is empty. This is most easily
done in OS_pause, where OS_process_any_status_change (if any) is
available. Thus OS_pause gets a new param BLOCKP.
Matt Birkholz [Thu, 17 Nov 2016 23:28:40 +0000 (16:28 -0700)]
x11 plugin: Address warnings from new AM_CFLAGS.
Matt Birkholz [Thu, 17 Nov 2016 22:12:20 +0000 (15:12 -0700)]
runtime/thread.scm (handle-current-thread-events): Do not warn...
...on stderr when there is no current thread. Handle-current-thread-
events is only used by the after-gc-interrupt-handler, which may run
while there is no current thread.
Matt Birkholz [Thu, 17 Nov 2016 22:11:22 +0000 (15:11 -0700)]
plugin Makefile.ams, configure.acs (AM_CFLAGS): Add many -W options.
Matt Birkholz [Sat, 12 Nov 2016 23:53:50 +0000 (16:53 -0700)]
plugin Makefile.ams, configure.acs: Do not install .bins.
Matt Birkholz [Thu, 10 Nov 2016 07:17:43 +0000 (00:17 -0700)]
x11 plugin: Rename files to avoid conflicts with LIAR/C's output.
Matt Birkholz [Thu, 10 Nov 2016 05:26:36 +0000 (22:26 -0700)]
plugin Makefile.ams, configure.acs: Accommodate LIAR/C.
Generate lists of Scheme source and binary files depending on the
host's compiled code type.
Matt Birkholz [Thu, 10 Nov 2016 00:15:36 +0000 (17:15 -0700)]
Search the library directory path for the standard library directory
containing lib/ and the built-in object files. Adjust pathname->
standard-uri and standard-uri->pathname to use this directory instead
of the first directory in the path.
When plugins used --prepend-library to test a shared object, C worlds
failed. They could not re-load registered object files, nor load
bundled options. The guarded-system-loader only looked in the first
directory in the path, not the standard library directory.
Matt Birkholz [Mon, 7 Nov 2016 20:57:26 +0000 (13:57 -0700)]
Remove src/etc/compile-svm.sh after losing cross runtime compat.
Matt Birkholz [Mon, 7 Nov 2016 20:55:18 +0000 (13:55 -0700)]
Remove more kludges now that 9.2 is out.
Taylor R Campbell [Sat, 5 Nov 2016 00:42:27 +0000 (00:42 +0000)]
Fix embarrassing typo in wttree overweight condition.
Evidently we don't have adequate automatic tests for this!
Taylor R Campbell [Thu, 3 Nov 2016 16:31:25 +0000 (16:31 +0000)]
Don't delete the one non-generated .c file under compiler/.
Taylor R Campbell [Thu, 3 Nov 2016 20:17:32 +0000 (20:17 +0000)]
Add option for interpreted toolchain to facilitate debugging.
Taylor R Campbell [Thu, 3 Nov 2016 19:34:52 +0000 (19:34 +0000)]
Fix fencepost in decoding powers of two into IEEE 754 components.
Taylor R Campbell [Thu, 3 Nov 2016 04:54:35 +0000 (04:54 +0000)]
Disable init file in batch mode.
Taylor R Campbell [Thu, 3 Nov 2016 00:41:44 +0000 (00:41 +0000)]
Remove bogus kludge of including target runtime in cross-compiler.
Now that 9.2 is out, whatever reason necessitated this kludge is no
longer relevant.
Chris Hanson [Tue, 30 Aug 2016 00:30:09 +0000 (17:30 -0700)]
Add notes on parameter refactor, for use when writing release notes.
Matt Birkholz [Sat, 27 Aug 2016 16:14:13 +0000 (09:14 -0700)]
Edwin X/X11: Do NOT halt screen update because of subprocess output.
Matt Birkholz [Fri, 12 Aug 2016 20:16:37 +0000 (13:16 -0700)]
x11/x11base.scm (make-event-object): Convert bit number to bit mask.
Matt Birkholz [Tue, 9 Aug 2016 20:30:39 +0000 (13:30 -0700)]
x11-screen: Backport elimination of keyboard busy loop.
Matt Birkholz [Tue, 9 Aug 2016 19:52:49 +0000 (12:52 -0700)]
runtime/thread.scm (register-time-event): typo
Matt Birkholz [Tue, 9 Aug 2016 17:59:01 +0000 (10:59 -0700)]
edwin/xterm.scm (get-xterm-input-operations): Eliminate busy loop.
The busy loop in the keyboard peek-no-hang operation is more expensive
than ever. Replace it with a timer in block-for-event. Cache
current-thread and check that it has not changed before deregistering.
Matt Birkholz [Sun, 7 Aug 2016 21:43:02 +0000 (14:43 -0700)]
Add register-time-event, deregister-time-event.
Matt Birkholz [Sun, 7 Aug 2016 18:09:45 +0000 (11:09 -0700)]
x11-screen: Backport fixes to edwin/xterm.scm.
In block-for-event, drain X events and subprocess output. In preview-
event-stream, use dynamic-wind to re-register.
Matt Birkholz [Fri, 5 Aug 2016 23:30:53 +0000 (16:30 -0700)]
x11/x11base.scm (key-event): Free buffers. Handle null translation.
Do not c-peek-bytes when nbytes is zero.
Matt Birkholz [Sun, 7 Aug 2016 18:07:35 +0000 (11:07 -0700)]
edwin/xterm.scm (block-for-event): Drain X events, process output.
Matt Birkholz [Fri, 5 Aug 2016 22:07:50 +0000 (15:07 -0700)]
edwin/xterm.scm (preview-event-stream): Use dynamic-wind.
Matt Birkholz [Fri, 5 Aug 2016 21:42:13 +0000 (14:42 -0700)]
edwin/process.scm (poll-process-for-output): allow for reading #f
Matt Birkholz [Fri, 5 Aug 2016 21:27:34 +0000 (14:27 -0700)]
edwin/process.scm: transposo (like a typo but larger)
Matt Birkholz [Sun, 31 Jul 2016 18:56:31 +0000 (11:56 -0700)]
x11-screen: Fix selection handling (cut/paste between X windows).
Cut/paste should now work with two minor fixes (typos, really), and
one kludge keeping non-unique alien objects in a weak-eq-hash-table.
The original xds (fixnums) are held as strongly as the new interned
symbols.
The xds were intended to be x-displays? Interned x-display objects
would be more appropriate keys for a weak-eq-hash-table.
Chris Hanson [Sat, 30 Jul 2016 01:39:21 +0000 (21:39 -0400)]
Fix typo.
Matt Birkholz [Fri, 29 Jul 2016 07:21:04 +0000 (00:21 -0700)]
plugin Makefile.ams (CLEANFILES): Add timestamp files.
Matt Birkholz [Fri, 29 Jul 2016 06:49:29 +0000 (23:49 -0700)]
edwin/intmod.scm: Call suspend-current-thread with events blocked.
Blocking thread events around these wait loops closes an interrupt
hole between testing and suspending.
Matt Birkholz [Fri, 29 Jul 2016 06:16:06 +0000 (23:16 -0700)]
x11: Fix x-display-process-events to return #f when all events read.
The plugin's version of x_display_process_events will return any
keypress even though some do not translate into any input (e.g. when
it IsModifier). X-display-process-events would return #f in that case
and preview-events think all events were read. Now x-display-process-
events returns #t and preview-events disregards it, continuing to read
events. Many callers must disregard these non-events.
Punt property-notify events in the previewer; do not queue them.
Matt Birkholz [Wed, 27 Jul 2016 04:53:56 +0000 (21:53 -0700)]
x11-screen: Backport "permanent" IO thread event from x-screen.
Matt Birkholz [Tue, 26 Jul 2016 23:32:20 +0000 (16:32 -0700)]
runtime/ed-ffi.scm: Update.
Matt Birkholz [Tue, 26 Jul 2016 23:16:07 +0000 (16:16 -0700)]
typo: with-openssl is not a configure option here
Matt Birkholz [Tue, 26 Jul 2016 23:13:07 +0000 (16:13 -0700)]
Add spawn-edwin procedure.
Matt Birkholz [Tue, 26 Jul 2016 22:02:26 +0000 (15:02 -0700)]
Restore interruptibility to Edwin commands when on an X display.
Commit
52eea88 (Do NOT use permanently-register-io-thread-event in
Edwin.) removed too much. Without an IO thread event registered to
preview X events, Edwin cannot be interrupted by a ^G key press.
Restore X event previewing using a custom, "permanently" registered IO
thread event that always consumes some input before re-registering
(i.e. withOUT the reading-event? variable that caused the spinning
previously). Now X events are read only in the previewer (and
wait-for-event). Keyboard operations only process queued events. And
the queue is used only by the previewer or with thread events (the
previewer) blocked.
Remove deregister-all-events from cmdl/start so that the "non-
permanent" IO thread event registered by the grab-editor wrapper is
not undone when the editor command level is started. Reversing the
order ("grab" the editor INSIDE the command level) makes the wrapper's
special operations unavailable when the command level is made. If
there is need for the aggressive decoupling of command levels as
rendered by deregister-all-events (which nevertheless did NOT remove
"permanent" IO event registrations), some mechanism will be needed to
set up the previewer after the command level is entered.
Matt Birkholz [Fri, 29 Jul 2016 06:56:49 +0000 (23:56 -0700)]
Fix suspend-current-thread to NOT leave events unblocked.
Allow thread events to run in %resume-current-thread if they were
blocked but the thread is suspended, and block them again when the
thread continues.