mit-scheme.git
7 years agoFirst draft of predicate tagging support.
Chris Hanson [Sun, 8 Jan 2017 04:16:13 +0000 (20:16 -0800)]
First draft of predicate tagging support.

7 years agoEliminate use of vector-8b in chrset.scm.
Chris Hanson [Sat, 7 Jan 2017 10:04:41 +0000 (02:04 -0800)]
Eliminate use of vector-8b in chrset.scm.

(Except where needed for microcode compatibility.)

7 years agoEliminate use of vector-8b in char.
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.

7 years agoImplement bytevector-fill! and change arg order to match R7Rs.
Chris Hanson [Sat, 7 Jan 2017 09:19:48 +0000 (01:19 -0800)]
Implement bytevector-fill! and change arg order to match R7Rs.

7 years agoTest shift right/left using bytevector-copy!.
Chris Hanson [Sat, 7 Jan 2017 09:10:36 +0000 (01:10 -0800)]
Test shift right/left using bytevector-copy!.

7 years agoAdd tests for bytevectors.
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.

7 years agoImplement assert-range-error.
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.

7 years agoFix fencepost errors in start indexes.
Chris Hanson [Sat, 7 Jan 2017 04:13:22 +0000 (20:13 -0800)]
Fix fencepost errors in start indexes.

7 years agoImplement bytevector=? and add bytevector support to equal?.
Chris Hanson [Sat, 7 Jan 2017 03:57:00 +0000 (19:57 -0800)]
Implement bytevector=? and add bytevector support to equal?.

7 years agoAdd boilerplate to new tests.
Chris Hanson [Sat, 7 Jan 2017 03:48:42 +0000 (19:48 -0800)]
Add boilerplate to new tests.

7 years agoAdd tests for predicates.
Chris Hanson [Sat, 7 Jan 2017 03:46:07 +0000 (19:46 -0800)]
Add tests for predicates.

7 years agoEnhance test framework with some useful utilities.
Chris Hanson [Sat, 7 Jan 2017 03:45:41 +0000 (19:45 -0800)]
Enhance test framework with some useful utilities.

7 years agoFix name change missed by previous edit.
Chris Hanson [Sat, 7 Jan 2017 03:44:44 +0000 (19:44 -0800)]
Fix name change missed by previous edit.

7 years agoAdd missing initialization.
Chris Hanson [Sat, 7 Jan 2017 03:37:02 +0000 (19:37 -0800)]
Add missing initialization.

7 years agoRegister parameter-binding?.
Chris Hanson [Fri, 6 Jan 2017 21:53:04 +0000 (13:53 -0800)]
Register parameter-binding?.

7 years agoImplement parametric predicates.
Chris Hanson [Fri, 6 Jan 2017 21:47:41 +0000 (13:47 -0800)]
Implement parametric predicates.

7 years agoImplement compound predicates.
Chris Hanson [Fri, 6 Jan 2017 21:31:10 +0000 (13:31 -0800)]
Implement compound predicates.

7 years agoImplement memoizers.
Chris Hanson [Fri, 6 Jan 2017 21:29:57 +0000 (13:29 -0800)]
Implement memoizers.

7 years agoFix dangling references to guarantee procedures.
Chris Hanson [Fri, 6 Jan 2017 21:21:42 +0000 (13:21 -0800)]
Fix dangling references to guarantee procedures.

7 years agoRegister equality-predicate?.
Chris Hanson [Fri, 6 Jan 2017 21:19:33 +0000 (13:19 -0800)]
Register equality-predicate?.

7 years agoCheck arguments to set-equality-predicate-hasher!.
Chris Hanson [Fri, 6 Jan 2017 21:18:40 +0000 (13:18 -0800)]
Check arguments to set-equality-predicate-hasher!.

7 years agoGeneralize procedure-arity-valid? to take an arbitrary arity.
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<=.

7 years agoImplement association between equality predicates and hash procedures.
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!.

7 years agoImplement unary-procedure? and binary-procedure?.
Chris Hanson [Fri, 6 Jan 2017 19:57:18 +0000 (11:57 -0800)]
Implement unary-procedure? and binary-procedure?.

7 years agoImplement non-empty-list?.
Chris Hanson [Fri, 6 Jan 2017 19:52:17 +0000 (11:52 -0800)]
Implement non-empty-list?.

7 years agoAllow register-predicate! to specify multiple supersets.
Chris Hanson [Fri, 6 Jan 2017 19:51:24 +0000 (11:51 -0800)]
Allow register-predicate! to specify multiple supersets.

7 years agoAdd some more predicate definitions.
Chris Hanson [Fri, 6 Jan 2017 07:39:59 +0000 (23:39 -0800)]
Add some more predicate definitions.

7 years agoEliminate boot-load implementation of register-predicate!.
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.

7 years agoChange new files to use boot-init mechanism.
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.

7 years agoTweak boot-init mechanism to only run when necessary.
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.

7 years agoFix definitions of legal code points.
Chris Hanson [Fri, 6 Jan 2017 04:03:07 +0000 (20:03 -0800)]
Fix definitions of legal code points.

7 years agoCompute tag's description lazily if not given.
Chris Hanson [Fri, 6 Jan 2017 03:28:47 +0000 (19:28 -0800)]
Compute tag's description lazily if not given.

7 years ago*mplement object-tagger.
Chris Hanson [Fri, 6 Jan 2017 03:23:35 +0000 (19:23 -0800)]
*mplement object-tagger.

7 years agoTweak pagination.
Chris Hanson [Fri, 6 Jan 2017 03:20:09 +0000 (19:20 -0800)]
Tweak pagination.

7 years agoChange tagged-object to be tagged with a predicate.
Chris Hanson [Fri, 6 Jan 2017 03:18:44 +0000 (19:18 -0800)]
Change tagged-object to be tagged with a predicate.

7 years agoImplement predicate lattice support.
Chris Hanson [Fri, 6 Jan 2017 03:13:29 +0000 (19:13 -0800)]
Implement predicate lattice support.

7 years agoTweak.
Chris Hanson [Fri, 6 Jan 2017 03:12:13 +0000 (19:12 -0800)]
Tweak.

7 years agoUpdate .gitignore.
Chris Hanson [Fri, 6 Jan 2017 01:23:22 +0000 (17:23 -0800)]
Update .gitignore.

7 years agoImplement support for predicates.
Chris Hanson [Fri, 6 Jan 2017 01:22:08 +0000 (17:22 -0800)]
Implement support for predicates.

7 years agoAdd support for tagged objects.
Chris Hanson [Thu, 5 Jan 2017 21:38:18 +0000 (13:38 -0800)]
Add support for tagged objects.

7 years agoAdd package comment to bytevector.scm.
Chris Hanson [Thu, 5 Jan 2017 21:37:12 +0000 (13:37 -0800)]
Add package comment to bytevector.scm.

7 years agoAdd open-coding support for bytevectors.
Chris Hanson [Thu, 5 Jan 2017 20:46:50 +0000 (12:46 -0800)]
Add open-coding support for bytevectors.

7 years agoFix thinko in previous change.
Chris Hanson [Thu, 5 Jan 2017 20:46:42 +0000 (12:46 -0800)]
Fix thinko in previous change.

7 years agoAdd bytevector primitives to SF transformation rules.
Chris Hanson [Thu, 5 Jan 2017 20:16:05 +0000 (12:16 -0800)]
Add bytevector primitives to SF transformation rules.

7 years agoImplement parsing of bytevectors.
Chris Hanson [Thu, 5 Jan 2017 20:06:25 +0000 (12:06 -0800)]
Implement parsing of bytevectors.

7 years agoImplement byte?.
Chris Hanson [Thu, 5 Jan 2017 20:06:15 +0000 (12:06 -0800)]
Implement byte?.

7 years agoImplement writing of bytevectors.
Chris Hanson [Thu, 5 Jan 2017 19:29:12 +0000 (11:29 -0800)]
Implement writing of bytevectors.

Also clean up pagination of unparse.scm.

7 years agoFix thinkos.
Chris Hanson [Thu, 5 Jan 2017 19:29:00 +0000 (11:29 -0800)]
Fix thinkos.

7 years agoSplit TC_BYTEVECTOR from TC_CHARACTER_STRING to simplify transition.
Chris Hanson [Thu, 5 Jan 2017 19:07:34 +0000 (11:07 -0800)]
Split TC_BYTEVECTOR from TC_CHARACTER_STRING to simplify transition.

7 years agoFirst draft of runtime support for bytevectors.
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.

7 years agoFix some bugs; implement bytevector-fill!.
Chris Hanson [Thu, 5 Jan 2017 05:48:07 +0000 (21:48 -0800)]
Fix some bugs; implement bytevector-fill!.

7 years agoUpdate copyright licenses for new year.
Chris Hanson [Thu, 5 Jan 2017 00:45:39 +0000 (16:45 -0800)]
Update copyright licenses for new year.

7 years agoEliminate byte_t.
Chris Hanson [Thu, 5 Jan 2017 00:39:09 +0000 (16:39 -0800)]
Eliminate byte_t.

7 years agoFirst draft of bytevector primitives.
Chris Hanson [Tue, 3 Jan 2017 22:16:16 +0000 (17:16 -0500)]
First draft of bytevector primitives.

7 years agoRename TC_CHARACTER_STRING to TC_BYTEVECTOR and TC_NULL to TC_FALSE.
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.

7 years agoImplement tagged-object type, a combination of a tag and an object.
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.

7 years agoMark intentionally ignored variables as such.
Taylor R Campbell [Mon, 2 Jan 2017 15:46:39 +0000 (15:46 +0000)]
Mark intentionally ignored variables as such.

7 years agoFix deinstall of multiplexer when a default exists.
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.

7 years agoAllow user to use external toolchain with TOOLCHAIN make variable.
Taylor R Campbell [Mon, 2 Jan 2017 15:41:20 +0000 (15:41 +0000)]
Allow user to use external toolchain with TOOLCHAIN make variable.

8 years agoSimplify mechanism to customize PP description for records.
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".

8 years agox11/x11-base.scm (key-event): typo. Fix Alt-Backspace -> #\M-DEL.
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.

8 years agox11 (event-name): Rename event-type-name and export (for debugging).
Matt Birkholz [Wed, 23 Nov 2016 17:45:54 +0000 (10:45 -0700)]
x11 (event-name): Rename event-type-name and export (for debugging).

8 years agomicrocode (OS_test_select_registry): Check for subprocess status
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.

8 years agox11 plugin: Address warnings from new AM_CFLAGS.
Matt Birkholz [Thu, 17 Nov 2016 23:28:40 +0000 (16:28 -0700)]
x11 plugin: Address warnings from new AM_CFLAGS.

8 years agoruntime/thread.scm (handle-current-thread-events): Do not warn...
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.

8 years agoplugin Makefile.ams, configure.acs (AM_CFLAGS): Add many -W options.
Matt Birkholz [Thu, 17 Nov 2016 22:11:22 +0000 (15:11 -0700)]
plugin Makefile.ams, configure.acs (AM_CFLAGS): Add many -W options.

8 years agoplugin Makefile.ams, configure.acs: Do not install .bins.
Matt Birkholz [Sat, 12 Nov 2016 23:53:50 +0000 (16:53 -0700)]
plugin Makefile.ams, configure.acs: Do not install .bins.

8 years agox11 plugin: Rename files to avoid conflicts with LIAR/C's output.
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.

8 years agoplugin Makefile.ams, configure.acs: Accommodate LIAR/C.
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.

8 years agoSearch the library directory path for the standard library directory
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.

8 years agoRemove src/etc/compile-svm.sh after losing cross runtime compat.
Matt Birkholz [Mon, 7 Nov 2016 20:57:26 +0000 (13:57 -0700)]
Remove src/etc/compile-svm.sh after losing cross runtime compat.

8 years agoRemove more kludges now that 9.2 is out.
Matt Birkholz [Mon, 7 Nov 2016 20:55:18 +0000 (13:55 -0700)]
Remove more kludges now that 9.2 is out.

8 years agoFix embarrassing typo in wttree overweight condition.
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!

8 years agoDon't delete the one non-generated .c file under compiler/.
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/.

8 years agoAdd option for interpreted toolchain to facilitate debugging.
Taylor R Campbell [Thu, 3 Nov 2016 20:17:32 +0000 (20:17 +0000)]
Add option for interpreted toolchain to facilitate debugging.

8 years agoFix fencepost in decoding powers of two into IEEE 754 components.
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.

8 years agoDisable init file in batch mode.
Taylor R Campbell [Thu, 3 Nov 2016 04:54:35 +0000 (04:54 +0000)]
Disable init file in batch mode.

8 years agoRemove bogus kludge of including target runtime in cross-compiler.
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.

8 years agoAdd notes on parameter refactor, for use when writing release notes.
Chris Hanson [Tue, 30 Aug 2016 00:30:09 +0000 (17:30 -0700)]
Add notes on parameter refactor, for use when writing release notes.

8 years agoEdwin X/X11: Do NOT halt screen update because of subprocess output.
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.

8 years agox11/x11base.scm (make-event-object): Convert bit number to bit mask.
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.

8 years agox11-screen: Backport elimination of keyboard busy loop.
Matt Birkholz [Tue, 9 Aug 2016 20:30:39 +0000 (13:30 -0700)]
x11-screen: Backport elimination of keyboard busy loop.

8 years agoruntime/thread.scm (register-time-event): typo
Matt Birkholz [Tue, 9 Aug 2016 19:52:49 +0000 (12:52 -0700)]
runtime/thread.scm (register-time-event): typo

8 years agoedwin/xterm.scm (get-xterm-input-operations): Eliminate busy loop.
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.

8 years agoAdd register-time-event, deregister-time-event.
Matt Birkholz [Sun, 7 Aug 2016 21:43:02 +0000 (14:43 -0700)]
Add register-time-event, deregister-time-event.

8 years agox11-screen: Backport fixes to edwin/xterm.scm.
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.

8 years agox11/x11base.scm (key-event): Free buffers. Handle null translation.
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.

8 years agoedwin/xterm.scm (block-for-event): Drain X events, process output.
Matt Birkholz [Sun, 7 Aug 2016 18:07:35 +0000 (11:07 -0700)]
edwin/xterm.scm (block-for-event): Drain X events, process output.

8 years agoedwin/xterm.scm (preview-event-stream): Use dynamic-wind.
Matt Birkholz [Fri, 5 Aug 2016 22:07:50 +0000 (15:07 -0700)]
edwin/xterm.scm (preview-event-stream): Use dynamic-wind.

8 years agoedwin/process.scm (poll-process-for-output): allow for reading #f
Matt Birkholz [Fri, 5 Aug 2016 21:42:13 +0000 (14:42 -0700)]
edwin/process.scm (poll-process-for-output): allow for reading #f

8 years agoedwin/process.scm: transposo (like a typo but larger)
Matt Birkholz [Fri, 5 Aug 2016 21:27:34 +0000 (14:27 -0700)]
edwin/process.scm: transposo (like a typo but larger)

8 years agox11-screen: Fix selection handling (cut/paste between X windows).
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.

8 years agoFix typo.
Chris Hanson [Sat, 30 Jul 2016 01:39:21 +0000 (21:39 -0400)]
Fix typo.

8 years agoplugin Makefile.ams (CLEANFILES): Add timestamp files.
Matt Birkholz [Fri, 29 Jul 2016 07:21:04 +0000 (00:21 -0700)]
plugin Makefile.ams (CLEANFILES): Add timestamp files.

8 years agoedwin/intmod.scm: Call suspend-current-thread with events blocked.
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.

8 years agox11: Fix x-display-process-events to return #f when all events read.
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.

8 years agox11-screen: Backport "permanent" IO thread event from x-screen.
Matt Birkholz [Wed, 27 Jul 2016 04:53:56 +0000 (21:53 -0700)]
x11-screen: Backport "permanent" IO thread event from x-screen.

8 years agoruntime/ed-ffi.scm: Update.
Matt Birkholz [Tue, 26 Jul 2016 23:32:20 +0000 (16:32 -0700)]
runtime/ed-ffi.scm: Update.

8 years agotypo: with-openssl is not a configure option here
Matt Birkholz [Tue, 26 Jul 2016 23:16:07 +0000 (16:16 -0700)]
typo: with-openssl is not a configure option here

8 years agoAdd spawn-edwin procedure.
Matt Birkholz [Tue, 26 Jul 2016 23:13:07 +0000 (16:13 -0700)]
Add spawn-edwin procedure.