Chris Hanson [Mon, 29 Feb 2016 05:29:41 +0000 (21:29 -0800)]
Implement #true and #false as specified by R7RS.
Chris Hanson [Mon, 29 Feb 2016 05:23:15 +0000 (21:23 -0800)]
Implement exact and inexact as per R7RS.
Chris Hanson [Mon, 29 Feb 2016 05:13:25 +0000 (21:13 -0800)]
Change make-parameter to be make-unsettable-parameter.
Chris Hanson [Mon, 29 Feb 2016 05:12:57 +0000 (21:12 -0800)]
Explicitly specify settability of all parameters.
Chris Hanson [Mon, 29 Feb 2016 04:34:41 +0000 (20:34 -0800)]
Refactor parser and unparser parameters.
* Made unsettable.
* Added type-checking converters.
* Check each "fluid" value with the corresponding converter.
Chris Hanson [Mon, 29 Feb 2016 04:33:50 +0000 (20:33 -0800)]
Define guarantee-boolean and parameter-converter.
Chris Hanson [Mon, 29 Feb 2016 04:26:34 +0000 (20:26 -0800)]
Document parser and unparser parameters.
Chris Hanson [Mon, 29 Feb 2016 03:27:16 +0000 (19:27 -0800)]
Update the documentation of *random-state*.
Chris Hanson [Mon, 29 Feb 2016 03:23:11 +0000 (19:23 -0800)]
Fix typos.
Chris Hanson [Mon, 29 Feb 2016 02:15:50 +0000 (18:15 -0800)]
Update the documentation of several parameters.
Chris Hanson [Mon, 29 Feb 2016 01:49:31 +0000 (17:49 -0800)]
Document port parameters.
Chris Hanson [Mon, 29 Feb 2016 01:01:15 +0000 (17:01 -0800)]
Refactor handling of SRFI references using macros.
* Add macros for R7RS.
* Tweak parameter sections.
* Add make-unsettable-parameter and make-settable-parameter.
Chris Hanson [Sun, 28 Feb 2016 09:47:15 +0000 (01:47 -0800)]
Change standard ports to *be* parameters.
This is the use case that parameters were designed for, so we might as well take
advantage of it.
Chris Hanson [Sun, 28 Feb 2016 09:46:04 +0000 (01:46 -0800)]
Use parameter defaults with make-general-parameter.
Chris Hanson [Sun, 28 Feb 2016 09:14:38 +0000 (01:14 -0800)]
Rely on error:wrong-type-argument to use default caller appropriately.
Chris Hanson [Sun, 28 Feb 2016 09:09:15 +0000 (01:09 -0800)]
Change guarantee-foo to return the object.
Chris Hanson [Sun, 28 Feb 2016 09:03:09 +0000 (01:03 -0800)]
Define and export the default parameter procedures.
Chris Hanson [Sun, 28 Feb 2016 08:24:44 +0000 (00:24 -0800)]
Fix parameterization in pp.scm.
Chris Hanson [Sun, 28 Feb 2016 08:00:23 +0000 (00:00 -0800)]
Fix parameterization in unpars.scm.
Chris Hanson [Sun, 28 Feb 2016 07:11:05 +0000 (23:11 -0800)]
Fix parameterization in parse.scm.
Chris Hanson [Sun, 28 Feb 2016 06:21:48 +0000 (22:21 -0800)]
Fix parameterization in global.scm.
Chris Hanson [Sun, 28 Feb 2016 06:10:19 +0000 (22:10 -0800)]
Fix handling of *default-pathname-defaults*.
Problem is that this variable is readable as well, so for now we have to keep it
up to date. This is kind of a pain.
Chris Hanson [Sun, 28 Feb 2016 05:54:27 +0000 (21:54 -0800)]
Fix parameterization in error.scm.
Chris Hanson [Sun, 28 Feb 2016 03:35:41 +0000 (19:35 -0800)]
Fix parameterization in rep.scm.
Chris Hanson [Sun, 28 Feb 2016 03:23:04 +0000 (19:23 -0800)]
Use parameter setter on working-directory-pathname.
Chris Hanson [Sun, 28 Feb 2016 03:22:25 +0000 (19:22 -0800)]
Tweak make-general-parameter to allow defining a setter.
Chris Hanson [Sun, 28 Feb 2016 01:44:03 +0000 (17:44 -0800)]
Make param:loading? unsettable.
Chris Hanson [Sun, 28 Feb 2016 01:39:36 +0000 (17:39 -0800)]
Split make-parameter into settable and unsettable variants.
* Default is settable, but that might want to be reconsidered.
* Parameters defined in runtime should probably be made explicit.
* Rename make-parameter* to make-general-parameter.
Chris Hanson [Sun, 28 Feb 2016 01:12:23 +0000 (17:12 -0800)]
Fix parameterization of load.scm.
Chris Hanson [Sat, 27 Feb 2016 23:20:10 +0000 (15:20 -0800)]
Rename default-pathname-defaults to param:default-pathname-defaults.
Makes consistent with param:flonum-unparser-cutoff.
Chris Hanson [Sat, 27 Feb 2016 23:19:48 +0000 (15:19 -0800)]
Add missing runtime/ subdir.
Chris Hanson [Sat, 27 Feb 2016 23:10:58 +0000 (15:10 -0800)]
Move dragon4 unit tests from comment to tests/ directory.
Chris Hanson [Sat, 27 Feb 2016 23:09:43 +0000 (15:09 -0800)]
Refactor handling of flonum-unparser-cutoff.
* Change flonum-unparser-cutoff back to shallow-bound variable.
* Introduce new parameter param:flonum-unparser-cutoff.
* Remove commented-out unit tests (see next commit).
Chris Hanson [Sat, 27 Feb 2016 23:08:41 +0000 (15:08 -0800)]
Add assert-member.
Chris Hanson [Sat, 27 Feb 2016 22:34:23 +0000 (14:34 -0800)]
De-parameterize *random-state*.
Chris Hanson [Sat, 27 Feb 2016 22:11:45 +0000 (14:11 -0800)]
Refactor TAGS generation.
* Now works in unconfigured src directory.
* Generates top-level TAGS file.
* Includes .pkg files.
Chris Hanson [Sat, 27 Feb 2016 21:32:17 +0000 (13:32 -0800)]
Eliminate *working-directory-pathname*.
Chris Hanson [Sat, 27 Feb 2016 21:29:17 +0000 (13:29 -0800)]
Implement make-parameter*.
Chris Hanson [Sat, 27 Feb 2016 21:02:10 +0000 (13:02 -0800)]
Split *default-pathname-defaults* into parameter/non-parameter.
Chris Hanson [Sat, 27 Feb 2016 20:46:06 +0000 (12:46 -0800)]
Fix over-long line.
Arthur A. Gleckler [Fri, 26 Feb 2016 21:56:02 +0000 (13:56 -0800)]
Revert "TAGS shouldn't be in commit."
This "TAGS" file is a top-level, non-generated file that serves as a
directory for all the "TAGS" files in subdirectories, allowing them to
be used as a unit.
This reverts commit
e0429c048fe1233ac60bf920c9d53c07fc3b1341.
Arthur A. Gleckler [Fri, 26 Feb 2016 21:49:03 +0000 (13:49 -0800)]
Revert "Remove REDUCE-LEFT from documentation."
This reverts commit
5410eb4b2ef21d4b56cc08c1024f9df47c5c9328 (since CPH
revived the implementation of REDUCE-LEFT in
de2cb85cfa59af7c645ea343f0b83c5bc3c60a8e).
Chris Hanson [Fri, 26 Feb 2016 10:14:00 +0000 (02:14 -0800)]
TAGS shouldn't be in commit.
Chris Hanson [Fri, 26 Feb 2016 10:08:56 +0000 (02:08 -0800)]
Eliminate fluid data type in favor of parameters.
Also simplify implementation of parameters.
Chris Hanson [Fri, 26 Feb 2016 08:30:57 +0000 (08:30 +0000)]
Implement when and unless from r7rs.
Chris Hanson [Fri, 26 Feb 2016 08:28:21 +0000 (08:28 +0000)]
Refactor parameter/fluid implementation into one.
Also use metadata tables instead of entities, and move syntax into mit-macros.
Chris Hanson [Fri, 26 Feb 2016 08:27:22 +0000 (08:27 +0000)]
Implement simple metadata table abstraction.
Chris Hanson [Fri, 26 Feb 2016 06:43:44 +0000 (06:43 +0000)]
Refactor cond-expand to handle r7rs features.
Also should be simpler to add new features.
Chris Hanson [Tue, 23 Feb 2016 06:25:33 +0000 (22:25 -0800)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Tue, 23 Feb 2016 06:23:16 +0000 (22:23 -0800)]
Put reduce-right back.
Matt Birkholz [Tue, 23 Feb 2016 05:08:26 +0000 (22:08 -0700)]
microcode/debug.c (verify_compiled): A cast to quiet gcc.
Matt Birkholz [Tue, 23 Feb 2016 05:28:13 +0000 (22:28 -0700)]
ffi: Support libtool. Convert plugins and test-ffi to automake.
Remove compile-shim, link-shim, install-shim. Thus the microcode's
shared object (module) build configuration is no longer needed in
AUXDIR/shim-config.scm.
Replace install-load-option and install-html with update-optiondb and
update-html-index, which can be used after an install OR an uninstall.
Chris Hanson [Mon, 22 Feb 2016 21:36:31 +0000 (13:36 -0800)]
Eliminate uses of fluid-let in the runtime system.
This is preparation for redefining fluid-let to call let-fluid.
Matt Birkholz [Tue, 16 Feb 2016 21:48:58 +0000 (14:48 -0700)]
Interrupt handlers DO want to use signal-thread-event.
Undo
ba92c7c's changes to runtime/intrpt.scm. Also, call %maybe-
toggle-thread-timer after calling %signal-thread-event in runtime/
gcnote and runtime/process.
Matt Birkholz [Thu, 4 Feb 2016 04:25:08 +0000 (21:25 -0700)]
src/etc/compile-svm.sh: Use max heap to cross-compile on i386.
Running the secondary GC daemons after compiling a directory helps,
but 10000KiW is still too small. Cross-compilation of edwin/snr hangs
unless 12000KiW can be had.
Matt Birkholz [Thu, 4 Feb 2016 04:23:25 +0000 (21:23 -0700)]
Abort the console thread when heap is low.
Previously, a random running thread was aborted, e.g. the
single-threaded workload. Recently, just the notification subscribers
were aborted. But it is common for there to be NO subscribers,
e.g. during a single-threaded workload (our own build!). Now the
console thread is also aborted (and notifications are punted).
Matt Birkholz [Tue, 2 Feb 2016 23:53:08 +0000 (16:53 -0700)]
run-gc-finalizers: Avoid deadlock in this GC daemon.
If a GC interrupts a finalizer operation that is holding the
finalizer's lock, it will deadlock in the GC daemon unless it can
punt.
Matt Birkholz [Tue, 2 Feb 2016 23:52:05 +0000 (16:52 -0700)]
GC daemons may run when there is no current thread(!).
Thus they cannot use signal-thread-event which, if there is no current
thread, will not return. (Why DOES signal-thread-event call
run-thread?)
Matt Birkholz [Sun, 31 Jan 2016 01:10:37 +0000 (18:10 -0700)]
Fix try-lock-thread-mutex to work when there is no current thread.
GC daemons need to run when there is no current thread. Try-lock-
thread-mutex was intended for their use. They do not mind
occasionally skipping an opportunity to clean, including the rare
times when a GC interrupt occurs with no current thread -- in the
thread system of a quiescent world.
Try-lock-thread-mutex was signaling spurious deadlocks when GC daemons
ran with no current thread. Free locks appeared to be owned by #F --
the current thread.
Matt Birkholz [Sun, 31 Jan 2016 00:34:14 +0000 (17:34 -0700)]
Fix directory-read to NOT drop the occasional file.
char_pointer_to_string was used instead of
char_pointer_to_string_no_gc even though there is no way to retry
the OS_directory_read().
Matt Birkholz [Fri, 29 Jan 2016 19:46:44 +0000 (12:46 -0700)]
debug.c (verify_heap, dump_heap_at): Avoid SIGSEGVing.
Check that all pointers and block offsets are valid heap addresses
before following them. Do not dump words past Free (in bogus objects
at the end of the heap).
Matt Birkholz [Fri, 29 Jan 2016 19:29:35 +0000 (12:29 -0700)]
utils.c (copy_history): Do not update Free unless it all fits.
This just keeps bogus pointers out of the heap so that verify_heap
cannot complain about them.
Matt Birkholz [Fri, 29 Jan 2016 19:23:12 +0000 (12:23 -0700)]
world-monitor: truncate lines
Matt Birkholz [Fri, 29 Jan 2016 19:21:54 +0000 (12:21 -0700)]
dist/make-src-files: Include tests/ in the source distribution.
Joe Marshall [Sun, 24 Jan 2016 22:57:50 +0000 (14:57 -0800)]
Eagerly transport list CDRs to linearize lists.
Matt Birkholz [Sat, 23 Jan 2016 16:21:00 +0000 (09:21 -0700)]
src/microcode/debug.c (verify_heap): Verify pointers.
Matt Birkholz [Sat, 23 Jan 2016 16:19:28 +0000 (09:19 -0700)]
src/microcode/typename.txt: Rename obsolete types. Re-sort.
Matt Birkholz [Wed, 20 Jan 2016 16:38:03 +0000 (09:38 -0700)]
src/microcode/debug.c: Improve verify_heap. Add verify_stack.
Scan the stack and note if it is not "sealed" ("closed"?). It should
have either a return code or a compiled entry at the top. Also note
any extraordinarily large objects.
Matt Birkholz [Wed, 20 Jan 2016 16:34:23 +0000 (09:34 -0700)]
src/microcode/stack.h (STACK_LOCATIVE_LESS_P): Rename _ABOVE_P.
The stack direction neutral name STACK_LOCATIVE_ABOVE_P(a,b) makes
more sense next to STACK_BOTTOM and STACK_TOP.
Matt Birkholz [Wed, 20 Jan 2016 16:31:38 +0000 (09:31 -0700)]
src/microcode/gcloop.c (gc_type_map): Undefine obsolete types.
Matt Birkholz [Wed, 20 Jan 2016 16:27:34 +0000 (09:27 -0700)]
runtime/world-report.scm edwin/world-monitor.scm: minor fixes
Add missing case for thread-execution-state STOPPED. Add "monitor" flag.
Joe Marshall [Tue, 19 Jan 2016 18:13:06 +0000 (10:13 -0800)]
Remove REDUCE-LEFT from documentation.
Joe Marshall [Tue, 19 Jan 2016 16:52:01 +0000 (08:52 -0800)]
Proper implementation of FOLD-LEFT. Implement FOLD and REDUCE using FOLD-LEFT. Remove REDUCE-LEFT.
Joe Marshall [Tue, 19 Jan 2016 16:25:47 +0000 (08:25 -0800)]
Don't export REDUCE-LEFT from (runtime list).
Joe Marshall [Tue, 19 Jan 2016 16:22:33 +0000 (08:22 -0800)]
Use FOLD-LEFT instead of REDUCE-LEFT.
Joe Marshall [Mon, 18 Jan 2016 19:45:37 +0000 (11:45 -0800)]
Undo delayed adding of hash-table to population. Instead, skip uniqueness check on new hash-tables.
Matt Birkholz [Sat, 16 Jan 2016 20:56:18 +0000 (13:56 -0700)]
Add open-unix-server-socket and unix-server-connection-accept...
...and close-unix-server-socket.
Matt Birkholz [Sun, 17 Jan 2016 00:47:51 +0000 (17:47 -0700)]
Add MONITOR-WORLD Edwin command displaying an animated world-report.
Matt Birkholz [Sat, 16 Jan 2016 19:45:15 +0000 (12:45 -0700)]
Add a WORLD-REPORT procedure to write a state-of-the-world report...
...showing the current time, heap free, recent GC statistics, and the
known threads.
Matt Birkholz [Sat, 16 Jan 2016 21:56:39 +0000 (14:56 -0700)]
Add crude thread time accounting.
Matt Birkholz [Fri, 15 Jan 2016 00:55:40 +0000 (17:55 -0700)]
src/runtime/savres.scm (disk-save): Save time world was restored.
Matt Birkholz [Fri, 15 Jan 2016 00:53:59 +0000 (17:53 -0700)]
src/runtime/output.scm (write-strings-in-paragraph): Add.
Matt Birkholz [Sun, 17 Jan 2016 18:49:04 +0000 (11:49 -0700)]
src/runtime/gcnote.scm (gc-statistic->string): Abbreviate...
...to keep each line under 80 columns (at least at first).
Joe Marshall [Sun, 17 Jan 2016 01:20:27 +0000 (17:20 -0800)]
Typos.
Joe Marshall [Sat, 16 Jan 2016 23:53:58 +0000 (15:53 -0800)]
Don't blow out the stack in STREAM->LIST.
Joe Marshall [Sat, 16 Jan 2016 23:51:23 +0000 (15:51 -0800)]
Don't add table to rehash population until an entry is created.
jmarshall [Sat, 16 Jan 2016 04:50:27 +0000 (20:50 -0800)]
Add STREAM-LAST and STREAM-TRUNCATE. Fixed a typo.
Matt Birkholz [Tue, 5 Jan 2016 23:15:11 +0000 (16:15 -0700)]
Return 0 from OS_test_select_* ONLY if there are no pending...
...interrupts or subprocess status changes.
Matt Birkholz [Tue, 5 Jan 2016 23:11:41 +0000 (16:11 -0700)]
Add foreach_async_signal and an ASYNC flag for signal descriptors.
glibio.c uses this to set up its signal forwarder.
Matt Birkholz [Tue, 5 Jan 2016 23:09:04 +0000 (16:09 -0700)]
Do not randomize the FPU control word in x87_read_environment.
Looks like a typo: eax not replaced by rdi.
Matt Birkholz [Tue, 5 Jan 2016 23:07:22 +0000 (16:07 -0700)]
Do not initialize the floating-point environment in x86-64 assembly.
The floating-point environment is managed (and needs to be
initialized) by libc.
Matt Birkholz [Tue, 5 Jan 2016 22:55:59 +0000 (15:55 -0700)]
Do not initialize the floating-point environment in i386 assembly.
The floating-point environment is managed (and needs to be
initialized) by libc.
Matt Birkholz [Tue, 5 Jan 2016 22:46:24 +0000 (15:46 -0700)]
Add interrupts_p and OS_select_registry_entry for glib/glibio.c.
Matt Birkholz [Tue, 5 Jan 2016 22:40:55 +0000 (15:40 -0700)]
Add an ignore_status_change parameter to OS_pause for SMP-IDLE.
OS_pause previously returned immediately if there were pending
interrupts OR subprocess status changes, as required by a blocking
test-select-registry primitive. That made it useless to the SMP-IDLE
primitive, which spins in the idle loop until the io-waiter (or a
timer interrupt handler) gets around to syncing subprocess statuses.
It will spin too after getting a SIGCHLD until statuses are synced.
Matt Birkholz [Tue, 5 Jan 2016 18:45:39 +0000 (11:45 -0700)]
Punt without-preemption; use without-interrupts during callouts.
Using without-preemption in (runtime ffi) causes timer interrupts to
be ignored -- COMPLETELY ignored in the glxgears demo's animation
loop. It is probably no more helpful in with-obarray-lock(?).
Matt Birkholz [Sun, 3 Jan 2016 21:41:54 +0000 (14:41 -0700)]
Update copyright years.
Matt Birkholz [Sun, 3 Jan 2016 21:29:09 +0000 (14:29 -0700)]
dist/update-copyright.scm: Translate last-copyright-year.
Matt Birkholz [Sun, 3 Jan 2016 21:27:57 +0000 (14:27 -0700)]
dist/update-copyright.scm: Update files in place.
Start with a clean working tree and you can `git reset --hard HEAD'
when the translation goes badly.
Matt Birkholz [Fri, 11 Dec 2015 17:28:50 +0000 (10:28 -0700)]
Note last-statistic early in signal-gc-events.
The signaled thread events may run whenever, perhaps after
last-statistic is changed. Ensure all the thread events get the same
statistic -- the last-statistic when the events were sent.
Matt Birkholz [Fri, 11 Dec 2015 17:25:06 +0000 (10:25 -0700)]
edwin: Eliminate redundant thread event when setting run-light.
Using inferior-thread-output! in wait-for-input's thread event signals
another thread event unnecessarily. The new inferior-thread-run-
light! just sets the flags.