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.
Matt Birkholz [Thu, 9 Jun 2016 00:07:07 +0000 (17:07 -0700)]
x11-screen/: Fix copyrights.
Matt Birkholz [Wed, 8 Jun 2016 23:54:09 +0000 (16:54 -0700)]
x11/: Fix copyrights.
Matt Birkholz [Wed, 8 Jun 2016 22:27:59 +0000 (15:27 -0700)]
x11/x11base.scm (x-get-window-property): Read entire string value.
The new char-ptr-to-prop-data-8 procedure reads the specified number
of bytes. (c-peek-cstringp stops at #\NULs.)
Matt Birkholz [Wed, 8 Jun 2016 22:27:04 +0000 (15:27 -0700)]
x11/x11base.scm (x-get-window-property): Init data-return.
Avoid freeing a bogus pointer when cleaning up.
Matt Birkholz [Wed, 8 Jun 2016 22:04:23 +0000 (15:04 -0700)]
x11/x11term.scm (xterm_open_window): Use 0 for NULL, not #f.
Matt Birkholz [Wed, 8 Jun 2016 22:02:55 +0000 (15:02 -0700)]
x11/x11base.c (x_get_window_property): Actually return values.
Matt Birkholz [Wed, 8 Jun 2016 22:01:07 +0000 (15:01 -0700)]
x11-screen/x11-screen-check.sh: Test read some X11 properties.
Matt Birkholz [Wed, 8 Jun 2016 21:57:17 +0000 (14:57 -0700)]
x11/x11-check.sh: Test read a 32bit X11 property.
Matt Birkholz [Tue, 7 Jun 2016 22:10:58 +0000 (15:10 -0700)]
x11/x11base.scm: Fix argument checking in x-get-window-property, ...
... x-change-property, x-delete-property and x-select-input. Add
similar checking to x-set-select-owner, x-convert-selection, and
x-send-selection-notify.
Matt Birkholz [Tue, 7 Jun 2016 19:44:25 +0000 (12:44 -0700)]
x11/x11base.scm: Fix the wrappings on some boolean args.
Matt Birkholz [Tue, 7 Jun 2016 18:31:46 +0000 (11:31 -0700)]
microcode/x11base.c (char_ptr_to_prop_data_32): Fix for 64bits.
Thanks to Patric Jonsson <patjon@kth.se>. 32bit property data, though
CARD32, is returned in an array of longs (64bit elements on 64bit
machinery).
Matt Birkholz [Tue, 7 Jun 2016 18:31:18 +0000 (11:31 -0700)]
x11-screen/Makefile.am (EXTRA_DIST): Add test script, optiondb.scm.
Matt Birkholz [Tue, 7 Jun 2016 18:28:31 +0000 (11:28 -0700)]
plugin Makefile.ams, configure.acs: Search for mit-scheme.h.
Matt Birkholz [Sun, 29 May 2016 17:02:40 +0000 (10:02 -0700)]
x11-screen.scm: Fix DISPLAY test.
Matt Birkholz [Sun, 29 May 2016 08:37:12 +0000 (01:37 -0700)]
runtime/Makefile-fragment: Install runtime/optiondb.scm.
Install runtime/optiondb.SCM so that standard-load-options can find it
when searching the library path.
Matt Birkholz [Sun, 29 May 2016 01:30:50 +0000 (18:30 -0700)]
dist/shared.sh: Add x11 and x11-screen to PLUGINS.
Matt Birkholz [Sun, 29 May 2016 01:29:36 +0000 (18:29 -0700)]
x11/Makefile.am: Add missing optiondb.scm to EXTRA_DIST.
Matt Birkholz [Sat, 28 May 2016 22:21:11 +0000 (15:21 -0700)]
plugin builds: Punt AC_PROG_LIBTOOL. Use MIT_SCHEME_LIBDIR.
AC_PROG_LIBTOOL is deprecated. MIT_SCHEME_LIBDIR replaces both
MIT_SCHEME_ARCH and the project name, allowing the latter to be more
easily changed.
Matt Birkholz [Fri, 27 May 2016 01:32:06 +0000 (18:32 -0700)]
New plugins x11 and x11-screen, to replace the x11 μmodule.
The "new" code is a translation of the x11 μmodule and associated
runtime Scheme code. The C code consing Scheme objects was translated
into Scheme/FFI code parsing C data. This removed the Scheme-specific
C code except for many calls to error_external_return, which are now
error status returns. Most of the error checking is intact. All C
data structures used by Scheme are protected from leaking by "GC
cleanups".
Matt Birkholz [Wed, 25 May 2016 23:14:32 +0000 (16:14 -0700)]
mhash/mhash.scm (remove*-context-cleanup): typos
Matt Birkholz [Wed, 25 May 2016 23:12:31 +0000 (16:12 -0700)]
gdbm/README: Update with automake build process.
Matt Birkholz [Wed, 25 May 2016 23:07:08 +0000 (16:07 -0700)]
plugin optiondb.scm: Further-load-options expects a thunk.
Matt Birkholz [Wed, 25 May 2016 22:09:45 +0000 (15:09 -0700)]
runtime/option.scm (library-file?): Search for the .scm file.
Library-file? is applied to optiondb pathnames with no type, but
system-library-pathname only searches for a matching type. Add a
"scm" type when searching the path and strip it again when looking for
a loadable.
Matt Birkholz [Wed, 25 May 2016 21:53:16 +0000 (14:53 -0700)]
runtime/pathnm.scm (system-library-pathname): Always search.
When not required?, system-library-pathname did not search the system-
library-path at all. It just merged with the first directory.
Matt Birkholz [Wed, 25 May 2016 21:50:41 +0000 (14:50 -0700)]
plugin Makefile.am: Do not ignore an error in compile.sh.
Matt Birkholz [Wed, 25 May 2016 21:22:37 +0000 (14:22 -0700)]
plugin AUTHORS: Credit the "MIT/GNU Scheme Team".
Chris Hanson [Sun, 15 May 2016 01:32:42 +0000 (18:32 -0700)]
Implement get-supported-features.
Matt Birkholz [Fri, 29 Apr 2016 21:16:44 +0000 (14:16 -0700)]
Handle GC events immediately, at end of after-gc interrupt.
Matt Birkholz [Fri, 29 Apr 2016 18:38:21 +0000 (11:38 -0700)]
runtime/ffi.scm: Avoid swapping threads during callbacks.
Block thread events during callouts.
Replace the callback error restart with an error handler that just
returns 0 from the callback. Until the debugger can run without-
interrupts (blocking for console IO instead of suspending for an IO
thread event) it may not run during a callback.
Matt Birkholz [Fri, 29 Apr 2016 18:22:04 +0000 (11:22 -0700)]
microcode/pruxffi.c: Punt problem callout optimization.
Chris Hanson [Sat, 23 Apr 2016 02:53:51 +0000 (19:53 -0700)]
Refactor merge-uris to simplify.
No longer requires an absolute base URI or defaults.
Returns an absolute URI if either base URI or defaults are absolute.
Otherwise returns a relative URI.
Chris Hanson [Sat, 23 Apr 2016 02:37:13 +0000 (19:37 -0700)]
Rename param:base-uri to uri-merge-defaults.
Chris Hanson [Sat, 23 Apr 2016 00:16:50 +0000 (17:16 -0700)]
Add support for a default base URI.
Matt Birkholz [Mon, 11 Apr 2016 15:53:58 +0000 (08:53 -0700)]
plugin Makefile.ams (tags): Punt ALL sources in TAGS.
Putting ALL Scheme source in TAGS allows tags-query-replace to find
all references, but drives etags a bit batty. M-x grep is more all-
inclusive anyway (e.g. finding references in documentation).
Matt Birkholz [Mon, 11 Apr 2016 04:19:44 +0000 (21:19 -0700)]
plugin Makefile.ams (dist): Add missing files to EXTRA_DIST.
Fix ./fix-tags.sh to take the package name as an argument, to support
building the dist in strangely named directories like mit-scheme-
blowfish-0.1/. Add a missing dependency of stamp-scheme on the .pkg
file.
Matt Birkholz [Sun, 10 Apr 2016 19:52:09 +0000 (12:52 -0700)]
plugin tags-fix.shs: typos
Matt Birkholz [Sun, 10 Apr 2016 19:34:07 +0000 (12:34 -0700)]
plugin Makefile.ams: remove generated -shim.c and -const.c from TAGS
Matt Birkholz [Fri, 8 Apr 2016 04:37:53 +0000 (21:37 -0700)]
plugin Makefile.ams: include ALL sources in TAGS
Chris Hanson [Wed, 6 Apr 2016 08:12:20 +0000 (01:12 -0700)]
Update indentation to include R7RS keywords.
Also delete obsolete MIT/GNU keywords.
Chris Hanson [Wed, 6 Apr 2016 07:52:05 +0000 (00:52 -0700)]
Add optional default-value to get-keyword-value.
Chris Hanson [Wed, 6 Apr 2016 01:11:47 +0000 (18:11 -0700)]
Add get-if-available operation to metadata.
Also add better error message to get operation.
Matt Birkholz [Tue, 29 Mar 2016 23:42:05 +0000 (16:42 -0700)]
runtime/world-report.scm (ticks->string): parameterize* a param.
Matt Birkholz [Tue, 29 Mar 2016 16:36:29 +0000 (09:36 -0700)]
plugin Makefile.ams: Fix multi-target rules. Punt install-html.
Chris Hanson [Sat, 26 Mar 2016 08:25:30 +0000 (01:25 -0700)]
Eliminate redundant call.
Chris Hanson [Sat, 26 Mar 2016 08:22:32 +0000 (01:22 -0700)]
Rework param:default-pathname-defaults yet again.
This time to guarantee that the value is a pathname object. Also using the new
parameter merger support to merge the new value with the old.
Chris Hanson [Sat, 26 Mar 2016 07:59:54 +0000 (00:59 -0700)]
Add support for value merging in (general) parameters.
Matt Birkholz [Fri, 25 Mar 2016 17:44:13 +0000 (10:44 -0700)]
plugin configure.acs: Prune unused AC_SUBST and, in gdbm, config.h.