Matt Birkholz [Fri, 19 Dec 2014 19:29:29 +0000 (12:29 -0700)]
smp: Accommodate multiple processors.
Keep the threads running on each processor in the current-threads
vector. Change the running list into a runnable list: the threads
that are runnable but not currently running on a processor.
Matt Birkholz [Wed, 5 Nov 2014 20:27:11 +0000 (13:27 -0700)]
smp: Clobber fluid-let and the (runtime state-space) package.
UNimplement fluid-let using dynamic-wind as a backward compatibility
kludge. Subsystems still using fluid-let, e.g. LIAR, must not be run
in multiple threads simultaneously. Fluid-let no longer provides
thread-local storage.
Replace the previously fluid-assigned bindings state-space:local and
(runtime dynamic)bindings with thread slots dynamic-point and
dynamic-environment. Split the initialization of (runtime thread)
into "low" and "high" procedures. The "low" procedure is applied
early in the bootstrap to create the initial thread, whose dynamic
state is needed later. Lose the error handling in wait-for-io; it
runs when there is no current thread, thus no way to bind-condition-
handler.
Replace the uniprocessor-only Hanson/Lamping state-spaces with
Scheme48's multiprocessing-friendly dynamic-points in a new package
(runtime wind).
Matt Birkholz [Fri, 19 Dec 2014 17:32:04 +0000 (10:32 -0700)]
Add outf_error_line; use it everywhere.
Use it for brevity. Later when each outf_ operation involves grabbing
a mutex, use it for efficiency.
Matt Birkholz [Fri, 19 Dec 2014 17:05:34 +0000 (10:05 -0700)]
Fix Do_Micro_Error to respect stack direction, and print arguments.
Matt Birkholz [Fri, 19 Dec 2014 16:56:32 +0000 (09:56 -0700)]
Use INTERRUPTABLE_EXTENT in OS_pause when !HAVE_SIGSUSPEND.
Matt Birkholz [Fri, 19 Dec 2014 16:54:31 +0000 (09:54 -0700)]
Just warn when set-debug-flags! is used on a non-debugging machine.
Matt Birkholz [Fri, 12 Dec 2014 17:02:35 +0000 (10:02 -0700)]
doc: Clean up doc-config.scm.
Matt Birkholz [Fri, 12 Dec 2014 17:01:53 +0000 (10:01 -0700)]
doc: Configure --disable-* should disable build as well as install.
Add a TARGETS variable to collect ENabled targets, like INST_TARGETS.
Taylor R Campbell [Mon, 17 Nov 2014 06:04:26 +0000 (06:04 +0000)]
Tweak condition variable locking.
- Use WITH-THREAD-MUTEX-LOCKED.
- Use ASSERT-THREAD-MUTEX-OWNED.
No functional changes intended.
Taylor R Campbell [Sun, 16 Nov 2014 20:25:27 +0000 (20:25 +0000)]
Allow thread barriers to be named.
Taylor R Campbell [Sun, 16 Nov 2014 20:24:42 +0000 (20:24 +0000)]
Show the condition, not just its report, in derived condition reports.
That way you can (debug #@n) it or M-x browse-continuation it.
Taylor R Campbell [Sun, 16 Nov 2014 18:53:41 +0000 (18:53 +0000)]
Fix timed condition variable waits.
Taylor R Campbell [Sun, 16 Nov 2014 18:53:28 +0000 (18:53 +0000)]
Sternly advise against non-debugging use of THREAD-MUTEX-OWNER.
Taylor R Campbell [Sun, 16 Nov 2014 18:52:58 +0000 (18:52 +0000)]
Remove support for recursion in WITH-THREAD-MUTEX-LOCKED.
Taylor R Campbell [Fri, 14 Nov 2014 04:47:04 +0000 (04:47 +0000)]
Don't let just any event wake THREAD-JOIN.
Taylor R Campbell [Fri, 14 Nov 2014 04:19:05 +0000 (04:19 +0000)]
Sort names in (runtime thread) package.
Taylor R Campbell [Fri, 14 Nov 2014 04:18:27 +0000 (04:18 +0000)]
Rename GUARANTEE-THREAD-MUTEX-OWNED to ASSERT-THREAD-MUTEX-OWNED.
Matt Birkholz [Thu, 13 Nov 2014 22:22:03 +0000 (15:22 -0700)]
Fluidize hook/exit and hook/quit. Add hook/%exit for Edwin.
Replace the fluid-let in src/edwin/intmod.scm with let-fluids. The
fluid-let kludge in SMP worlds causes Edwin to hang when killed.
Matt Birkholz [Thu, 13 Nov 2014 22:25:29 +0000 (15:25 -0700)]
Unfluidize (runtime boot-definitions) internal boot-inits.
Replace the fluid-let with its expansion into a dynamic-wind, which
works only if the bootstrap proceeds in one thread and thus
thread-local values for boot-inits are not needed.
Matt Birkholz [Thu, 13 Nov 2014 22:59:23 +0000 (15:59 -0700)]
runtime/thread-queue.scm: Use a mutex to serialize accesses.
Also, use #f events. The (lambda () unspecific) events accumulate
unnecessarily.
Matt Birkholz [Thu, 13 Nov 2014 23:03:08 +0000 (16:03 -0700)]
svm: Make the trap handlers static.
I won't vouch for any speed improvement. I just noticed all the
others were declared static.
Matt Birkholz [Thu, 13 Nov 2014 23:01:11 +0000 (16:01 -0700)]
etc/usermap: Update my email address.
Matt Birkholz [Wed, 22 Oct 2014 23:12:31 +0000 (16:12 -0700)]
Quiet the last CREF complaint on Unix.
Convert references to compiler global variables into
environment-lookup combinations.
Matt Birkholz [Wed, 22 Oct 2014 23:01:30 +0000 (16:01 -0700)]
Add bindings to edwin/debug.scm; punt browser-evaluator.
Add ansi.scm to (edwin screen console-screen) for unix as well as
dos and nt. This quiets cref's complaint about termcap.scm's
reference to make-ansi-terminal-description.
The browser-evaluator command was never implemented(?).
Matt Birkholz [Wed, 22 Oct 2014 22:58:11 +0000 (15:58 -0700)]
Syntax sf before compiler.
The trivial package model of (scode-optimizer) does not include the
internal bindings needed when analyzing (compiler).
Matt Birkholz [Thu, 23 Oct 2014 07:58:41 +0000 (00:58 -0700)]
Move compile-directory. Punt sf- and compile-directory?.
Sf-directory? and friend appear to have been broken since
directory-processor started expecting output-type to be a thunk.
Moving compile-directory out of sf/butils.scm and into
compiler/base/toplev.scm eliminates free variable references noted by
CREF.
Taylor R Campbell [Thu, 13 Nov 2014 22:59:36 +0000 (22:59 +0000)]
Add thread barrier abstraction.
Taylor R Campbell [Thu, 13 Nov 2014 22:55:16 +0000 (22:55 +0000)]
Add condition variable abstraction.
Taylor R Campbell [Thu, 13 Nov 2014 22:45:03 +0000 (22:45 +0000)]
Add GUARANTEE-THREAD-MUTEX-OWNED.
Taylor R Campbell [Thu, 6 Nov 2014 01:39:15 +0000 (01:39 +0000)]
Inherit the root thread continuation.
Fixes
<http://lists.gnu.org/archive/html/mit-scheme-devel/2012-04/msg00000.html>:
nested CREATE-THREADs sometimes see an unassigned root continuation.
Taylor R Campbell [Tue, 4 Nov 2014 04:29:42 +0000 (04:29 +0000)]
Fix indentation in GET-X-DISPLAY botched by last commit.
Taylor R Campbell [Mon, 3 Nov 2014 20:43:44 +0000 (20:43 +0000)]
Reset Edwin's X display on restore.
It now works to save and restore bands in which you have run Edwin
with X, as long as Edwin is not currently running while you save the
band.
Taylor R Campbell [Mon, 3 Nov 2014 20:43:34 +0000 (20:43 +0000)]
Call dload_finalize_file, not dld_finalize_file. Oops.
Taylor R Campbell [Mon, 3 Nov 2014 20:43:17 +0000 (20:43 +0000)]
Reset dld (.so) handles on restore.
Taylor R Campbell [Tue, 21 Oct 2014 21:09:11 +0000 (21:09 +0000)]
Don't pass `-isysroot -fconstant-cfstrings' if we can't find OS X SDKs.
Matt Birkholz [Sun, 19 Oct 2014 18:40:03 +0000 (11:40 -0700)]
svm: Do fni->bci step in host, not with interpreted compress.
Matt Birkholz [Sun, 19 Oct 2014 18:25:32 +0000 (11:25 -0700)]
tests: Replace : with / so progress notes are not errors to Emacs.
Use - instead of : in timestamps reported by compile-svm.sh too.
Matt Birkholz [Sat, 11 Oct 2014 01:22:02 +0000 (18:22 -0700)]
typo
Matt Birkholz [Fri, 10 Oct 2014 23:57:02 +0000 (16:57 -0700)]
svm: Fix continue_from_trap.
Signal handlers always find an unknown pc when the svm interpreter is
running. This patch extracts the virtual machine's instruction
pointer for classify_pc in the hope that the compiled code block can
be located.
Matt Birkholz [Fri, 10 Oct 2014 23:39:22 +0000 (16:39 -0700)]
i386 flonums: Fix substitution of FLDZ,FUCOMP for FTST in
521ffb3.
The branch instructions needed to be swapped.
This caused compiled generic arithmetic to get e.g. (> x 0.) wrong,
causing an overflow in float->integers when compiling
runtime/arith.scm for the SVM.
Matt Birkholz [Fri, 10 Oct 2014 23:32:01 +0000 (16:32 -0700)]
make check: To avoid long run times, export FAST=y.
A nip and a tuck and the SVM can get through `make check' in 10-15
minutes, instead of MORE THAN 5 HOURS on a Dell Inspiron 1420 (2.2GHz
Core2Duo Centrino with 2GB RAM).
Matt Birkholz [Fri, 5 Sep 2014 00:05:38 +0000 (17:05 -0700)]
mcrypt: A libmcrypt plugin (separately buildable FFI wrapper).
Matt Birkholz [Wed, 27 Aug 2014 05:27:38 +0000 (22:27 -0700)]
microcode/unix: fix continue_from_trap to freak out (force GC) less
The classify_pc function returns pcl_unknown for traps in shared
libraries, e.g. in feraiseexcept (in the raise-float-exceptions
primitive) or any callout (in the c-call primitive). This new
continue_from_trap function is less conservative, ignoring the
pcl_unknown result from classify_pc when the stack_pointer, Free and
PRIMITIVE registers all look good. This eliminated all complaints
during `make check' about "resetting bogus Free" (not the actual
problem), representing 14 unnecessarily forced GCs.
Also, fix the murmur about "resetting bogus Free". Correct it for
accuracy and so that it must be turned on with the
((make-primitive-procedure 'SET-DEBUG-FLAGS! 2) 9 #t)
Matt Birkholz [Wed, 27 Aug 2014 04:59:34 +0000 (21:59 -0700)]
microcode/i386: Set sse_presence.
Matt Birkholz [Wed, 13 Aug 2014 04:03:12 +0000 (21:03 -0700)]
Fluidize (runtime thread) internal root-continuation-default.
Matt Birkholz [Tue, 12 Aug 2014 18:51:23 +0000 (11:51 -0700)]
Fluidize *bound-restarts* and dynamic-handler-frames.
Matt Birkholz [Sat, 8 Feb 2014 20:02:42 +0000 (13:02 -0700)]
Fluidize *random-state*.
Matt Birkholz [Sat, 8 Feb 2014 19:57:21 +0000 (12:57 -0700)]
Fluidize flonum-unparser-cutoff.
Matt Birkholz [Sat, 8 Feb 2014 17:33:26 +0000 (10:33 -0700)]
Fluidize (runtime swank) internal variables *top-level-restart*,...
...*sldb-state*, *index* and *buffer-pstring*.
Matt Birkholz [Sat, 8 Feb 2014 17:32:18 +0000 (10:32 -0700)]
Fluidize (runtime structure-parser) internal variable name-counters.
Matt Birkholz [Sat, 8 Feb 2014 17:29:09 +0000 (10:29 -0700)]
Fluidize (runtime gc-statistics) internal hook/record-statistic!.
Matt Birkholz [Sat, 8 Feb 2014 17:25:07 +0000 (10:25 -0700)]
Fluidize (runtime save/restore) internal *within-restore-window?*.
Matt Birkholz [Fri, 7 Feb 2014 18:20:07 +0000 (11:20 -0700)]
Fluidize (runtime options) internal variables *options*, *parent*.
Matt Birkholz [Fri, 7 Feb 2014 17:57:39 +0000 (10:57 -0700)]
Fluidize (runtime parser) controls: *parser-radix*,...
... *parser-associate-positions?*,
*parser-atom-delimiters*,
*parser-canonicalize-symbols?*,
*parser-constituents*,
*parser-enable-file-attributes-parsing?*,
*parser-keyword-style*,
and *parser-table*.
Matt Birkholz [Fri, 7 Feb 2014 17:55:36 +0000 (10:55 -0700)]
Fluidize (runtime debugger) internals *dstate* and *port*.
Matt Birkholz [Tue, 4 Feb 2014 22:24:52 +0000 (15:24 -0700)]
Fluidize (runtime syntax) internal variable *rename-database*.
Matt Birkholz [Tue, 4 Feb 2014 22:13:09 +0000 (15:13 -0700)]
Fluidize (runtime user-interface) internal *notification-level*.
Matt Birkholz [Tue, 4 Feb 2014 22:10:59 +0000 (15:10 -0700)]
Fluidize (runtime unsyntaxer) internal variable: substitutions.
Matt Birkholz [Tue, 4 Feb 2014 21:09:29 +0000 (14:09 -0700)]
Fluidize (runtime program-copier) internal *copy-constants*?,...
...and *object-copies*.
Matt Birkholz [Tue, 4 Feb 2014 21:07:55 +0000 (14:07 -0700)]
Fluidize (runtime compiler-info) internal directory-rewriting-rules.
Matt Birkholz [Tue, 4 Feb 2014 21:03:45 +0000 (14:03 -0700)]
Fluidize (runtime advice) internal advice-continuation,...
...the-arguments, the-procedure and the-result.
Matt Birkholz [Tue, 4 Feb 2014 21:01:12 +0000 (14:01 -0700)]
Fluidize (runtime pathname) internal library-directory-path.
Matt Birkholz [Tue, 4 Feb 2014 01:21:12 +0000 (18:21 -0700)]
Fluidize (runtime unparser) internal *list-depth*, *output-port*,...
...*slashify?*, *environment* and *dispatch-table*.
Matt Birkholz [Mon, 3 Feb 2014 23:42:59 +0000 (16:42 -0700)]
Fluidize *pp-...*, i.e. *pp-default-as-code?*,...
... *pp-named-lambda->define?*,
*pp-primitives-by-name*,
*pp-uninterned-symbols-by-name*,
*pp-no-highlights?*,
*pp-save-vertical-space?*,
*pp-lists-as-tables?*,
*pp-forced-x-size*,
*pp-avoid-circularity?*,
*pp-auto-highlighter*, and
*pp-arity-dispatched-procedure-style*.
Matt Birkholz [Mon, 3 Feb 2014 23:40:41 +0000 (16:40 -0700)]
Fluidize (runtime pretty-printer) x-size, code-dispatch-list,...
...output-port, dispatch-list, dispatch-default.
Matt Birkholz [Mon, 3 Feb 2014 18:58:01 +0000 (11:58 -0700)]
Fluidize (runtime unparser) *default-unparser-state*.
Matt Birkholz [Mon, 3 Feb 2014 16:19:45 +0000 (09:19 -0700)]
Fluidize (runtime directory) variable *expand-directory-prefixes?*.
Matt Birkholz [Sun, 2 Feb 2014 23:45:52 +0000 (16:45 -0700)]
Fluidize (runtime error-handler) internal variables: i.e. ...
...static-handler-frames and break-on-signals-types.
Matt Birkholz [Sun, 2 Feb 2014 21:39:38 +0000 (14:39 -0700)]
Fluidize *unparse...*, i.e. *unparser-table*, *unparser-radix*...
... *unparse-abbreviate-quotations?*,
*unparse-compound-procedure-names?*,
*unparse-primitives-by-name?*,
*unparse-uninterned-symbols-by-name?*,
*unparse-with-datum?*,
*unparse-with-maximum-readability?*,
*unparser-list-breadth-limit*,
*unparser-list-depth-limit*, and
*unparser-string-length-limit*.
Matt Birkholz [Sun, 2 Feb 2014 21:34:55 +0000 (14:34 -0700)]
Fluidize *default-pathname-defaults*.
Matt Birkholz [Sat, 1 Feb 2014 05:47:42 +0000 (22:47 -0700)]
Fluidize standard-error-hook, standard-warning-hook and...
...standard-breakpoint-hook. These are exported to () so... apologies
in advance.
Matt Birkholz [Sat, 1 Feb 2014 05:37:43 +0000 (22:37 -0700)]
Fluidize *nearest-cmdl*.
Matt Birkholz [Tue, 12 Aug 2014 00:25:58 +0000 (17:25 -0700)]
Fluidize (runtime load) exported variables: i.e. load/loading?...
and load/suppress-loading-message?. Punted old load-noisily?.
Matt Birkholz [Mon, 11 Aug 2014 22:33:35 +0000 (15:33 -0700)]
Fluidize (runtime load) internal variables: *eval-unit*,...
*current-load-environment*, *write-notifications?*, *load-init-file?*
and load/after-load-hooks.
Matt Birkholz [Mon, 11 Aug 2014 22:30:07 +0000 (15:30 -0700)]
Fluidize *working-directory-pathname*.
Matt Birkholz [Mon, 11 Aug 2014 22:21:11 +0000 (15:21 -0700)]
Typo: missing closing bracket.
Matt Birkholz [Mon, 11 Aug 2014 21:45:55 +0000 (14:45 -0700)]
Fluidize (runtime port) internal variables *current-output-port*,...
*current-input-port*, *notification-output-port*, *trace-output-port*,
and *interaction-i/o-port*.
Matt Birkholz [Mon, 11 Aug 2014 21:28:33 +0000 (14:28 -0700)]
Add fluid and parameter objects.
Update documentation of miscellaneous object type Cell and special
form Fluid-Let, describing them as deprecated.
Joe Marshall [Fri, 8 Aug 2014 16:39:50 +0000 (09:39 -0700)]
Remove unused C version of ASSQ and LENGTH.
Matt Birkholz [Thu, 24 Jul 2014 22:44:51 +0000 (15:44 -0700)]
Unfluidize (runtime regular-expression-compiler) internals.
Gather all of the fluid variables into a rgxcmpctx object. Pass it
along as the first argument to most(!) procedures.
Matt Birkholz [Thu, 24 Jul 2014 21:59:28 +0000 (14:59 -0700)]
Punt hack that slipped into the previous commit.
Matt Birkholz [Thu, 24 Jul 2014 20:24:22 +0000 (13:24 -0700)]
Unfluidize (runtime compress) internals, e.g. root-nodes.
This is the beginning of the end for fluid-let.
Gather all of the fluid variables into a compression-state object.
Pass it along as the first argument to many procedures. The result is
approx. 10% slower, doing a lot of type and range checking where the
original was skipping checks for reference-traps. A file-wide
(declare (no-range-checks) (no-type-checks)) got that 10% back PLUS 15%.
Matt Birkholz [Thu, 10 Jul 2014 21:19:16 +0000 (14:19 -0700)]
svm: Fix disassembler to handle un/linked 64/32bit ccblocks.
Chris Hanson [Thu, 5 Jun 2014 03:00:17 +0000 (20:00 -0700)]
Ignore .diff files.
Chris Hanson [Thu, 5 Jun 2014 02:54:54 +0000 (19:54 -0700)]
git merge release-9.2
Chris Hanson [Thu, 5 Jun 2014 02:53:49 +0000 (19:53 -0700)]
git pull
Chris Hanson [Thu, 5 Jun 2014 02:51:18 +0000 (19:51 -0700)]
When enumerating files to process, ignore those generated by this script.
Matt Birkholz [Tue, 27 May 2014 17:48:00 +0000 (10:48 -0700)]
Add new tests/runtime/test-url.scm and move test-merge-uris there.
Matt Birkholz [Tue, 27 May 2014 16:41:16 +0000 (09:41 -0700)]
Fix uri->pathname too, just for completeness.
(uri->pathname (pathname->uri "./file")) does not signal an error, but
it does not produce the same directory component as (->pathname
"./file"). Now (pathname=? (->pathname "./file") (uri->pathname...))
is #t, at least on Unix(?).
Matt Birkholz [Tue, 27 May 2014 15:55:37 +0000 (08:55 -0700)]
Fix for bug #42412: "scheme --load ./file" fails.
Fix pathname->uri to handle the new directory name 'HERE, introduced
in commit
00aab1c. Thanks to David Kinzer <dtkinzer>.
Taylor R Campbell [Sat, 24 May 2014 15:22:27 +0000 (15:22 +0000)]
Add usual-integrations and note some ignored variables in ieee754.scm.
Chris Hanson [Sat, 17 May 2014 09:19:23 +0000 (02:19 -0700)]
Make sure that root-dir is absolute.
Chris Hanson [Sat, 17 May 2014 09:11:50 +0000 (02:11 -0700)]
Update copyright years.
Chris Hanson [Sat, 17 May 2014 05:43:56 +0000 (22:43 -0700)]
Update version strings to 9.2.
Chris Hanson [Sat, 17 May 2014 05:10:17 +0000 (22:10 -0700)]
Fix trailing whitespace.
Chris Hanson [Sat, 17 May 2014 05:09:54 +0000 (22:09 -0700)]
Fix over-long line.
Chris Hanson [Sat, 17 May 2014 05:09:26 +0000 (22:09 -0700)]
Fix fencepost error thinko.
Matt Birkholz [Thu, 8 May 2014 04:22:58 +0000 (21:22 -0700)]
ffi: Punt AUXDIR from shim-config.scm.
Procedures like compile-shim need to use the first directory in
MITSCHEME_LIBRARY_PATH (not the installation directory) so that the
FFI test can override it, getting the not-yet-installed configuration
from the build directory.
Symlink shim-config.scm to src/lib/ and generate it during `make all',
not `make install', so that it is available to the test FFI (during
`make check').
Fix FFI test NOT to use with-notification around `make', which cannot
use fresh-line. Just write whole lines to notification-output-port.
Matt Birkholz [Wed, 7 May 2014 06:19:42 +0000 (23:19 -0700)]
configure: Move check for __x86_64__.
Move AC_CHECK_DECL(__x86_64__) before AC_MSG_CHECKING([for native-code
support]) so that the former's progress note does not arrive in the
middle of the latter's, like this:
checking for native-code support... checking whether __x86_64__ is declared... no
yes, for i386
Matt Birkholz [Wed, 7 May 2014 04:11:25 +0000 (21:11 -0700)]
ffi: Add install-html using documentation build parameters.
Install parameters in infodir/mit-scheme-doc-config.scm.