mit-scheme.git
7 years agouser-manual: Replace .menu with .desktop.
Matt Birkholz [Tue, 7 Nov 2017 00:56:15 +0000 (17:56 -0700)]
user-manual: Replace .menu with .desktop.

7 years agodevops: Unused variables. Don't report unreleased when releasing.
Matt Birkholz [Tue, 7 Nov 2017 00:55:40 +0000 (17:55 -0700)]
devops: Unused variables.  Don't report unreleased when releasing.

7 years agoffi: Do not create plugins.scm inside dpkg-buildpackage's chroot.
Matt Birkholz [Tue, 7 Nov 2017 00:53:37 +0000 (17:53 -0700)]
ffi: Do not create plugins.scm inside dpkg-buildpackage's chroot.

Otherwise the nearly empty file will be included in the package and
unpacked during the installation, clobbering the existing list.

7 years agox11-screen/debian/changelog: typo
Matt Birkholz [Tue, 7 Nov 2017 00:06:16 +0000 (17:06 -0700)]
x11-screen/debian/changelog: typo

7 years agoblowfish/debian/changelog: typo
Matt Birkholz [Tue, 7 Nov 2017 00:05:44 +0000 (17:05 -0700)]
blowfish/debian/changelog: typo

7 years agodevops: List uncommitted and unreleased last.
Matt Birkholz [Mon, 6 Nov 2017 23:51:24 +0000 (16:51 -0700)]
devops: List uncommitted and unreleased last.

Mention problem file name when "subsystem" version does not match.

7 years agoplanetarium: Add subsystem identification.
Matt Birkholz [Mon, 6 Nov 2017 23:11:20 +0000 (16:11 -0700)]
planetarium: Add subsystem identification.

7 years agox11-screen: Correct version.
Matt Birkholz [Mon, 6 Nov 2017 23:02:54 +0000 (16:02 -0700)]
x11-screen: Correct version.

7 years agodevops: Increment version.
Matt Birkholz [Mon, 6 Nov 2017 22:56:33 +0000 (15:56 -0700)]
devops: Increment version.

7 years agodevops: Check plugin version numbers in NEWS and make.scm files.
Matt Birkholz [Mon, 6 Nov 2017 22:48:48 +0000 (15:48 -0700)]
devops: Check plugin version numbers in NEWS and make.scm files.

7 years agoblowfish: Increment version.
Matt Birkholz [Mon, 6 Nov 2017 21:46:04 +0000 (14:46 -0700)]
blowfish: Increment version.

7 years agoblowfish/debian: Get HTML and PDF versions of new manual installed.
Matt Birkholz [Mon, 6 Nov 2017 21:22:50 +0000 (14:22 -0700)]
blowfish/debian: Get HTML and PDF versions of new manual installed.

7 years agoIncrement version.
Matt Birkholz [Sun, 5 Nov 2017 23:35:01 +0000 (16:35 -0700)]
Increment version.

7 years agoDo not install an empty plugins.scm during an upgrade.
Matt Birkholz [Sun, 5 Nov 2017 23:34:10 +0000 (16:34 -0700)]
Do not install an empty plugins.scm during an upgrade.

Create it when the first plugin is installed and remove it only when
removing (not upgrading!) the core package.

7 years agodebian/mit-scheme-pucked.menu: Removed in favor of the .desktop.
Matt Birkholz [Sun, 5 Nov 2017 22:45:38 +0000 (15:45 -0700)]
debian/mit-scheme-pucked.menu: Removed in favor of the .desktop.

7 years agox11-screen: Increment version.
Matt Birkholz [Sun, 5 Nov 2017 18:43:18 +0000 (11:43 -0700)]
x11-screen: Increment version.

7 years agoIncrement version.
Matt Birkholz [Sun, 5 Nov 2017 18:42:59 +0000 (11:42 -0700)]
Increment version.

7 years agouser-manual: Further simplify the add-apt-repository command line.
Matt Birkholz [Sun, 5 Nov 2017 09:46:41 +0000 (02:46 -0700)]
user-manual: Further simplify the add-apt-repository command line.

This changes the distribution from birchwood to the release code name.

7 years agox11-screen: Use new window class to avoid confusion with Emacs.
Matt Birkholz [Sun, 5 Nov 2017 09:36:06 +0000 (02:36 -0700)]
x11-screen: Use new window class to avoid confusion with Emacs.

Borrow .desktop and icon files from core.  Specify new window class
when creating x11-screens, and in the StartupWMClass key in the
.desktop file.  Also fixed the .desktop file per complaints from
desktop-file-validate, deciding on one main category.

7 years agodevops: Punt checking wrong version in .desktop file.
Matt Birkholz [Sat, 4 Nov 2017 00:10:29 +0000 (17:10 -0700)]
devops: Punt checking wrong version in .desktop file.

7 years agodevops: Add codename for 17.10, host-ubuntu-version, devops:main.
Matt Birkholz [Fri, 3 Nov 2017 23:20:16 +0000 (16:20 -0700)]
devops: Add codename for 17.10, host-ubuntu-version, devops:main.

7 years agoblowfish plugin: Fix merged texinfo.
Matt Birkholz [Fri, 3 Nov 2017 17:58:02 +0000 (10:58 -0700)]
blowfish plugin: Fix merged texinfo.

7 years agouser.texinfo: Update apt-add-repository command line.
Matt Birkholz [Fri, 3 Nov 2017 08:24:11 +0000 (01:24 -0700)]
user.texinfo: Update apt-add-repository command line.

Explain how package and system upgrades are intended to work.

7 years agodevops.texi: Punt empty @detailmenu.
Matt Birkholz [Fri, 3 Nov 2017 08:23:10 +0000 (01:23 -0700)]
devops.texi: Punt empty @detailmenu.

7 years agodebian/mit-scheme-pucked.desktop: Fix version.
Matt Birkholz [Fri, 3 Nov 2017 08:18:13 +0000 (01:18 -0700)]
debian/mit-scheme-pucked.desktop: Fix version.

7 years agopgsql/configure.ac: typo
Matt Birkholz [Fri, 3 Nov 2017 08:15:19 +0000 (01:15 -0700)]
pgsql/configure.ac: typo

7 years agoMerge branch 'master' into pucked.
Matt Birkholz [Fri, 3 Nov 2017 08:13:47 +0000 (01:13 -0700)]
Merge branch 'master' into pucked.

7 years agoblowfish plugin: Add texinfo manual, scraped from OpenSSL manpages.
Matt Birkholz [Thu, 2 Nov 2017 23:56:48 +0000 (16:56 -0700)]
blowfish plugin: Add texinfo manual, scraped from OpenSSL manpages.

7 years agox11/x11-base (->cstring): Convert 0 to the null pointer.
Matt Birkholz [Thu, 2 Nov 2017 16:12:30 +0000 (09:12 -0700)]
x11/x11-base (->cstring): Convert 0 to the null pointer.

7 years agopgsql plugin: typos, e.g. banish vagrant scminfodir.
Matt Birkholz [Thu, 2 Nov 2017 16:06:05 +0000 (09:06 -0700)]
pgsql plugin: typos, e.g. banish vagrant scminfodir.

7 years agoustring (string-trim): Handle strings trimmed to nothing.
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>.

7 years agoAdd common integer bit string ffs, fls, ctz, and clz.
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

7 years agoFix typo: port/state should give the state, not the type.
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.

7 years agoEliminate no-longer-used conditional.
Chris Hanson [Sun, 8 Oct 2017 00:41:40 +0000 (17:41 -0700)]
Eliminate no-longer-used conditional.

7 years agoFix typo when reading symbols without #!fold-case.
Chris Hanson [Fri, 6 Oct 2017 23:56:24 +0000 (16:56 -0700)]
Fix typo when reading symbols without #!fold-case.

7 years agodoc/ref-manual: Do not include detailmenu in HTML, which has a TOC.
Matt Birkholz [Mon, 2 Oct 2017 01:13:45 +0000 (18:13 -0700)]
doc/ref-manual: Do not include detailmenu in HTML, which has a TOC.

7 years agodevops: Prefix status report sections with a blank line.
Matt Birkholz [Sun, 1 Oct 2017 17:24:42 +0000 (10:24 -0700)]
devops: Prefix status report sections with a blank line.

7 years agodevops: Check version in mit-scheme-pucked.desktop.
Matt Birkholz [Sun, 1 Oct 2017 17:22:39 +0000 (10:22 -0700)]
devops: Check version in mit-scheme-pucked.desktop.

7 years agoREADME.Debian: Add PGSQL.
Matt Birkholz [Sun, 1 Oct 2017 17:14:10 +0000 (10:14 -0700)]
README.Debian: Add PGSQL.

7 years agodevops/build: Caught up "host" procedure. Order of "plugin"...
Matt Birkholz [Sun, 1 Oct 2017 16:42:29 +0000 (09:42 -0700)]
devops/build: Caught up "host" procedure.  Order of "plugin"...

...declarations matters not.  Build hosts order builds by the
timestamps on the source distributions.  A Debian native package has
no Debian revision number.  Putting the package install script in a
bin/ writable by the build monkey is hardly an impediment to an evil
build monkey.  Commented out unimplemented source checks (copyright
notice and manual deffns).

7 years agodoc/user-manual: Typo: unnumbered/unnumberedsec. More hammering.
Matt Birkholz [Sun, 1 Oct 2017 16:39:02 +0000 (09:39 -0700)]
doc/user-manual: Typo: unnumbered/unnumberedsec.  More hammering.

Actually made these sections, not unnumberedsecs.  Moved mention of
"pucked" (mis)feature (and "experimental code") to end (after
"Experimental Changes").  And fixed a lingering "yakkety".

7 years agodevops: Specify target Scheme arch; support cross-compiling to svm.
Matt Birkholz [Sat, 30 Sep 2017 09:17:31 +0000 (02:17 -0700)]
devops: Specify target Scheme arch; support cross-compiling to svm.

When a host's target arch is svm, do NOT build Debian packages.

7 years agodoc/user: PostgreSQL plugin IS available. Use ~puck/. Whitespace.
Matt Birkholz [Sat, 30 Sep 2017 09:17:08 +0000 (02:17 -0700)]
doc/user: PostgreSQL plugin IS available.  Use ~puck/.  Whitespace.

7 years agoMerge branch 'master' into pucked.
Matt Birkholz [Thu, 21 Sep 2017 23:00:58 +0000 (16:00 -0700)]
Merge branch 'master' into pucked.

7 years agox11: Ensure C strings are null terminated.
Matt Birkholz [Thu, 21 Sep 2017 22:25:47 +0000 (15:25 -0700)]
x11: Ensure C strings are null terminated.

7 years agogdbm: Ensure filename for do_gdbm_open is 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.

7 years agosrc/Makefile.in: Use large heap when finishing cross-compilation.
Matt Birkholz [Wed, 20 Sep 2017 00:22:15 +0000 (17:22 -0700)]
src/Makefile.in: Use large heap when finishing cross-compilation.

7 years agomicrocode/debug.c: Avoid compiler warning; init in default case.
Matt Birkholz [Tue, 19 Sep 2017 23:56:37 +0000 (16:56 -0700)]
microcode/debug.c: Avoid compiler warning; init in default case.

7 years agoMerge branch 'master' into pucked.
Matt Birkholz [Tue, 19 Sep 2017 03:19:30 +0000 (20:19 -0700)]
Merge branch 'master' into pucked.

7 years agomicrocode/cmpauxmd/i386.m4: typo
Matt Birkholz [Tue, 19 Sep 2017 03:15:00 +0000 (20:15 -0700)]
microcode/cmpauxmd/i386.m4: typo

7 years agodevops/pucked.texi: FFI changes are now in master.
Matt Birkholz [Sun, 17 Sep 2017 18:12:56 +0000 (11:12 -0700)]
devops/pucked.texi: FFI changes are now in master.

7 years agoMerge branch 'master' into pucked.
Matt Birkholz [Sat, 16 Sep 2017 22:43:31 +0000 (15:43 -0700)]
Merge branch 'master' into pucked.

7 years agoruntime/syncproc: Eliminate spinning, and blocking.
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.

7 years agomicrocode/cmpauxmd/x86-64.m4: Wordsmith commentary for specificity.
Matt Birkholz [Sat, 16 Sep 2017 22:37:22 +0000 (15:37 -0700)]
microcode/cmpauxmd/x86-64.m4: Wordsmith commentary for specificity.

7 years agomicrocode/debug: Add ustring support, Stack(), Print(), brevity.
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().

7 years agomicrocode: Do not save history_register locally.
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.

7 years agomicrocode: Restore frame pointer as well as stack pointer.
Matt Birkholz [Sat, 16 Sep 2017 21:36:58 +0000 (14:36 -0700)]
microcode: Restore frame pointer as well as stack pointer.

7 years agoffi: Follow example of C_call_scheme; eliminate aborts.
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.

7 years agogtk/fix-demo: Set text color or it is sure to be white (invisible).
Matt Birkholz [Fri, 15 Sep 2017 04:40:55 +0000 (21:40 -0700)]
gtk/fix-demo: Set text color or it is sure to be white (invisible).

7 years agodevops: log procedure does not coerce to string.
Matt Birkholz [Fri, 15 Sep 2017 00:07:40 +0000 (17:07 -0700)]
devops: log procedure does not coerce to string.

7 years agodevops: Install the manpage.
Matt Birkholz [Thu, 14 Sep 2017 23:10:12 +0000 (16:10 -0700)]
devops: Install the manpage.

7 years agodevops: Punt abort->top-level (which just spins), hook/^G-interrupt.
Matt Birkholz [Thu, 14 Sep 2017 22:32:21 +0000 (15:32 -0700)]
devops: Punt abort->top-level (which just spins), hook/^G-interrupt.

7 years agodevops: Prefer newer(?) repo version of src/devops/build.scm.
Matt Birkholz [Thu, 14 Sep 2017 22:27:54 +0000 (15:27 -0700)]
devops: Prefer newer(?) repo version of src/devops/build.scm.

7 years agodevops (host-scheme-architecture): Fix.
Matt Birkholz [Wed, 13 Sep 2017 08:01:29 +0000 (01:01 -0700)]
devops (host-scheme-architecture): Fix.

7 years agodevops: Lengthen default reply timeout.
Matt Birkholz [Wed, 13 Sep 2017 07:42:41 +0000 (00:42 -0700)]
devops: Lengthen default reply timeout.

7 years agodevops: Update documentation. Rename devops:build-status.
Matt Birkholz [Wed, 13 Sep 2017 07:36:32 +0000 (00:36 -0700)]
devops: Update documentation.  Rename devops:build-status.

7 years agodevops (with-output-log): Handle errors to ensure log is flushed.
Matt Birkholz [Wed, 13 Sep 2017 07:00:59 +0000 (00:00 -0700)]
devops (with-output-log): Handle errors to ensure log is flushed.

7 years agopgsql: Include debian/ in dist.
Matt Birkholz [Wed, 13 Sep 2017 06:47:18 +0000 (23:47 -0700)]
pgsql: Include debian/ in dist.

7 years agoMerge branch 'master' into pucked.
Matt Birkholz [Wed, 13 Sep 2017 06:04:47 +0000 (23:04 -0700)]
Merge branch 'master' into pucked.

7 years agogtk-screen: Punt unused, now missing gdk-window-process-updates.
Matt Birkholz [Tue, 12 Sep 2017 19:49:45 +0000 (12:49 -0700)]
gtk-screen: Punt unused, now missing gdk-window-process-updates.

7 years agoFix syncproc test to avoid bashism.
Taylor R Campbell [Tue, 12 Sep 2017 03:39:34 +0000 (03:39 +0000)]
Fix syncproc test to avoid bashism.

7 years agoAdd Keccak-f[1600] primitive operating on byte vectors.
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.

7 years agodevops: Specify just one (Debian) architecture in host declarations.
Matt Birkholz [Tue, 12 Sep 2017 02:16:16 +0000 (19:16 -0700)]
devops: Specify just one (Debian) architecture in host declarations.

7 years agomicrocode: Do not save history_register for C_call_scheme.
Matt Birkholz [Tue, 12 Sep 2017 02:07:14 +0000 (19:07 -0700)]
microcode: Do not save history_register for C_call_scheme.

7 years agoffi: Set last_return_code. Restore prev_restore_history_offset?
Matt Birkholz [Tue, 12 Sep 2017 02:03:29 +0000 (19:03 -0700)]
ffi: Set last_return_code.  Restore prev_restore_history_offset?

7 years agomicrocode/cmpauxmd/x86-64.m4: Restore frame pointer after callback.
Matt Birkholz [Tue, 12 Sep 2017 02:00:01 +0000 (19:00 -0700)]
microcode/cmpauxmd/x86-64.m4: Restore frame pointer after callback.

7 years agomicrocode/cmpauxmd/x86-64.m4: Wordsmith commentary.
Matt Birkholz [Tue, 12 Sep 2017 01:57:34 +0000 (18:57 -0700)]
microcode/cmpauxmd/x86-64.m4: Wordsmith commentary.

7 years agomicrocode/debug: Add ustring support, Stack(), Print(), brevity.
Matt Birkholz [Tue, 12 Sep 2017 01:40:44 +0000 (18:40 -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().

7 years agogtk (surface-ink-flush): New. Keep a glib-only copy of the surface.
Matt Birkholz [Mon, 28 Aug 2017 21:07:19 +0000 (14:07 -0700)]
gtk (surface-ink-flush): New.  Keep a glib-only copy of the surface.

The new flush procedure signals the glib thread to update its copy.

7 years agogtk: Add gdk-window-create-similar-surface and -image-surface.
Matt Birkholz [Mon, 28 Aug 2017 19:47:11 +0000 (12:47 -0700)]
gtk: Add gdk-window-create-similar-surface and -image-surface.

7 years agogtk: Punt/replace functions deprecated in Gtk 3.22.
Matt Birkholz [Mon, 28 Aug 2017 18:39:46 +0000 (11:39 -0700)]
gtk: Punt/replace functions deprecated in Gtk 3.22.

7 years agoglib: Do not add time blocked in run_glib to glib-thread's run time.
Matt Birkholz [Mon, 14 Aug 2017 20:57:49 +0000 (13:57 -0700)]
glib: Do not add time blocked in run_glib to glib-thread's run time.

7 years agox11: null terminate strings; punt unused optimization.
Matt Birkholz [Mon, 28 Aug 2017 18:33:32 +0000 (11:33 -0700)]
x11: null terminate strings; punt unused optimization.

7 years agoedwin/buffer: Add print procedure.
Matt Birkholz [Sat, 26 Aug 2017 16:15:48 +0000 (09:15 -0700)]
edwin/buffer: Add print procedure.

7 years agoplanetarium (make-tellurion): Name thread; return the object(!).
Matt Birkholz [Mon, 28 Aug 2017 18:27:54 +0000 (11:27 -0700)]
planetarium (make-tellurion): Name thread; return the object(!).

7 years agogtk: Name threads.
Matt Birkholz [Mon, 28 Aug 2017 18:25:44 +0000 (11:25 -0700)]
gtk: Name threads.

7 years agoglib: Name thread.
Matt Birkholz [Mon, 28 Aug 2017 18:24:44 +0000 (11:24 -0700)]
glib: Name thread.

7 years agoedwin: Name threads. Punt thread "flags" for the world report.
Matt Birkholz [Mon, 28 Aug 2017 18:23:29 +0000 (11:23 -0700)]
edwin: Name threads.  Punt thread "flags" for the world report.

7 years agoworld-report: Replace thread flags with a thread name.
Matt Birkholz [Mon, 14 Aug 2017 20:54:33 +0000 (13:54 -0700)]
world-report: Replace thread flags with a thread name.

7 years agoAdd thread-get and thread-put!.
Matt Birkholz [Mon, 14 Aug 2017 21:16:08 +0000 (14:16 -0700)]
Add thread-get and thread-put!.

7 years agoglib: Use new re_enter_scheme instead of Interpret.
Matt Birkholz [Mon, 14 Aug 2017 21:14:02 +0000 (14:14 -0700)]
glib: Use new re_enter_scheme instead of Interpret.

7 years agoffi: Add re_enter_scheme to work with abort_to_c for glib mainloop.
Matt Birkholz [Mon, 14 Aug 2017 21:12:10 +0000 (14:12 -0700)]
ffi: Add re_enter_scheme to work with abort_to_c for glib mainloop.

7 years agoffi: Simplify callback_run_kernel. Eliminate callback abort.
Matt Birkholz [Wed, 9 Aug 2017 23:03:08 +0000 (16:03 -0700)]
ffi: Simplify callback_run_kernel.  Eliminate callback abort.

7 years agoffi: Follow example of C_call_scheme and eliminate aborts.
Matt Birkholz [Mon, 7 Aug 2017 01:16:52 +0000 (18:16 -0700)]
ffi: Follow example of C_call_scheme and eliminate aborts.

Punt pop_return_p parameter to Interpret; instead, leave #f in EXP and
Re_Enter_Interpreter, like C_call_scheme.  Keep callouts simple, fast.
Make callbacks save/restore machine state (last_return_code,
C_Frame_Pointer, C_Stack_Pointer, LEXPR_ACTUALS and PRIMITIVE) and use
RC_END_OF_COMPUTATION, also like C_call_scheme.

Add a gc-flip to the test callback.

7 years agodoc/ffi/: typos
Matt Birkholz [Sun, 6 Aug 2017 21:24:27 +0000 (14:24 -0700)]
doc/ffi/: typos

7 years agoFix thinko in previous change.
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.

7 years agoruntime/syncproc: Eliminate spinning, and blocking.
Matt Birkholz [Tue, 1 Aug 2017 22:21:01 +0000 (15:21 -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.

7 years agoFix merge: add load-option to test-syncproc.scm.
Matt Birkholz [Tue, 1 Aug 2017 18:04:06 +0000 (11:04 -0700)]
Fix merge: add load-option to test-syncproc.scm.

7 years agoMerge branch 'master' into pucked.
Matt Birkholz [Mon, 31 Jul 2017 21:13:32 +0000 (14:13 -0700)]
Merge branch 'master' into pucked.

7 years agotests/runtime/test-syncproc: Enabled, with 3 more basic tests.
Matt Birkholz [Sun, 30 Jul 2017 23:08:33 +0000 (16:08 -0700)]
tests/runtime/test-syncproc: Enabled, with 3 more basic tests.