Matt Birkholz [Fri, 19 Apr 2013 19:26:54 +0000 (12:26 -0700)]
Add (unused) attribute to Rdl.
This eliminates LAIR/C build log noise to the tune of 70,000 lines!
Matt Birkholz [Wed, 17 Apr 2013 16:07:28 +0000 (09:07 -0700)]
Typo: thread-queue/dequeue-until!.
Matt Birkholz [Wed, 17 Apr 2013 16:04:28 +0000 (09:04 -0700)]
Revert this commit when the release can build without it.
These last vestiges of TC_COMBINATION_1, TC_COMBINATION_2, TC_PCOMB0,
TC_PCOMB1, and TC_PCOMB2 remain only to allow building directly from
release 9.1.
Matt Birkholz [Wed, 17 Apr 2013 15:42:50 +0000 (08:42 -0700)]
Remove all trace of type codes COMBINATION-2, PCOMB0, etc.
This finishes what
3fc580e started. The resulting system runs but
does not build with the released version 9.1. That version puts old
combinations in .exts that cannot be fasloaded by this new version.
As the old combination types are no longer compilable nor even
interpretable, it seems the build process loads them but does not use
them.
The following commit will put just the gc handlers back, which is
sufficient to allow building directly from 9.1.
Taylor R Campbell [Tue, 9 Apr 2013 02:46:16 +0000 (02:46 +0000)]
Fix argument order in HASH-TABLE/MODIFY! documentation.
Taylor R Campbell [Tue, 9 Apr 2013 02:45:36 +0000 (02:45 +0000)]
Fix tabification in (runtime hash-table) package description.
Taylor R Campbell [Tue, 9 Apr 2013 02:42:12 +0000 (02:42 +0000)]
Merge Alexey's hash table documentation and tweaks from ages ago.
There was some little issue but I forget what it was.
Alexey Radul [Fri, 27 May 2011 21:04:45 +0000 (22:04 +0100)]
Warn that weak references are scary and hard to get right.
Redirect to provided higher-level abstractions.
Alexey Radul [Sun, 29 May 2011 22:22:41 +0000 (23:22 +0100)]
Update hash-table/count for multiple entry types.
Alexey Radul [Sun, 29 May 2011 22:06:42 +0000 (23:06 +0100)]
Record the reason for the restrictions in hash-table/modify!
I found this non-obvious when I was writing the documentation, so it
seems appropriate to record it somewhere. On the other hand, it does
not seem appropriate to burden the user with having to read it ---
just obey the restriction and you'll be fine. Will anyone ever read
comments in the source of the manual? Is there a better place to
record this knowledge?
Alexey Radul [Sun, 29 May 2011 21:56:34 +0000 (22:56 +0100)]
Add some concept index entries that seem reasonable.
Alexey Radul [Sun, 29 May 2011 21:48:26 +0000 (22:48 +0100)]
Update the documentation of hash-table/clean!
Alexey Radul [Sun, 29 May 2011 21:47:49 +0000 (22:47 +0100)]
Deprecate {strong/weak}-hash-table/constructor.
Flush the detailed description of what they do as having been copied
into the description of HASH-TABLE/CONSTRUCTOR.
Alexey Radul [Sun, 29 May 2011 21:37:59 +0000 (22:37 +0100)]
Rewrite the hash table constructors section with more weakness options.
Define and export key-ephemeral-eq and key-ephemeral-eqv tables as
replacements for the key-weak versions.
Punt descriptions of old hash table constructor procedures to the
bottom of the section and say they are for backward compatibility.
One may object to MAKE-KEY-EPHEMERAL-EQ-HASH-TABLE on the grounds that
it invites a combinatorial explosion of names:
make-key/datum-weak-eqv-hash-table
make-datum-ephemeral-string-hash-table
make-key&datum-ephemeral-equal-hash-table (!?)
and so on ad nauseam.
Where will it end? The criterion I used to decide which names to
export and document and which names to leave alone and defer to the
general HASH-TABLE/CONSTRUCTOR mechanism was simply to update the
existing documentation. The manual already listed
MAKE-WEAK-EQ-HASH-TABLE. It is now named MAKE-KEY-WEAK-EQ-HASH-TABLE,
so that name is included. But really, a key-weak table is just a
performance optimization over a key-ephemeral table, to save work when
you know the data will not hold the keys strongly. So
MAKE-KEY-EPHEMERAL-EQ-HASH-TABLE is in; it was, in fact, the reason I
wanted Taylor to implement ephemerons in the first place.
MAKE-KEY-EPHEMERAL-EQV-HASH-TABLE is in to preserve the symmetry
between eq? and eqv? that was already present in the manual. But the
rest of them are out, because they weren't there before. If
datum-weak tables were so important that their constructor really must
be given a name here, then (arguably) why were they not already
implemented and documented? The fact that MIT Scheme only supported
strong and key-weak tables for a long time suggests that those kinds
are the most common, and therefore the most deserving of slots in the
name space.
Alexey Radul [Sun, 29 May 2011 20:48:27 +0000 (21:48 +0100)]
Relocate and update the examples of defining hash table contructors.
Now in terms of HASH-TABLE/CONSTRUCTOR and entry types.
Alexey Radul [Fri, 27 May 2011 22:56:42 +0000 (23:56 +0100)]
Draft documentation of HASH-TABLE/CONSTRUCTOR and all the entry types.
Will adjust the surrounding text to fit it in in a separate commit.
Alexey Radul [Fri, 27 May 2011 20:42:38 +0000 (21:42 +0100)]
Redirect cross reference to Weak References
on the grounds that that is now the landing page for the discussion of
strength and weakness.
Alexey Radul [Fri, 27 May 2011 08:31:28 +0000 (09:31 +0100)]
Improve documentation of hash-table/{modify,intern}!
By the mechanism of implementing Taylor's suggestions. Also add
sentences about average running times.
Alexey Radul [Thu, 26 May 2011 11:05:25 +0000 (12:05 +0100)]
Deparenthesize.
Alexey Radul [Thu, 26 May 2011 11:03:25 +0000 (12:03 +0100)]
Collect "Weak Pairs" and "Ephemerons" into a section called "Weak References".
State the common motivation, define the common terminology, and
describe the contrasts between weak pairs and ephemerons in the common
section, and tighten the "Weak Pairs" and "Ephemerons" sections
themselves back to just describing their data structures.
Alexey Radul [Thu, 26 May 2011 08:48:10 +0000 (09:48 +0100)]
Rewrite the description of intricacies with ephemeron-broken? per
Taylor's recommendation to name the ephemeron explicitly and use more
active language.
Alexey Radul [Tue, 24 May 2011 22:39:06 +0000 (23:39 +0100)]
Documenting hash-table/modify! and hash-table/intern!. Also slightly
reworded the introduction to hash-table/lookup, to make it more
positive.
Alexey Radul [Tue, 24 May 2011 12:13:07 +0000 (13:13 +0100)]
Documenting the fact that MIT Scheme implements SRFI 69, the
relationship between the MIT Scheme native hash table API and the one
specified by SRFI 69, and the reason why it is appropriate to provide
both (it's not pure backwards compatibility). This includes
documenting the bugs in SRFI 69.
Alexey Radul [Tue, 24 May 2011 09:39:49 +0000 (10:39 +0100)]
Grammar.
Alexey Radul [Mon, 23 May 2011 11:27:14 +0000 (12:27 +0100)]
Pointing out what ephemerons are for; emphasizing the special feature
of ephemerons, and the distinction between ephemerons and weak pairs.
Alexey Radul [Mon, 23 May 2011 11:24:59 +0000 (12:24 +0100)]
Clarifying that ephemeron-broken? indicates that an ephemeron is whole by returning #f.
Alexey Radul [Mon, 23 May 2011 11:23:10 +0000 (12:23 +0100)]
Correcting a typo.
Matt Birkholz [Mon, 8 Apr 2013 23:17:12 +0000 (16:17 -0700)]
Undo commit
93d3d5c so that "out of memory" need not be The End...
...even in batch-mode. The effect of
93d3d5c can be had more
elegantly, as pointed out in
6b3f8e0: "Always wrap stdin in a (begin
...)..."
Matt Birkholz [Mon, 8 Apr 2013 23:10:07 +0000 (16:10 -0700)]
tests: Replace : with / so progress notes are not errors to Emacs.
Matt Birkholz [Mon, 8 Apr 2013 22:59:42 +0000 (15:59 -0700)]
Add thread-queue/dequeue-no-hang!, rm peek-until, fix -no-hang.
Fix when-non-empty-before, which did not append! to waiting-dequeuers,
and thus would only time out.
Un-export peek-until. Its TIME argument is... weird -- not universal.
Swat can import it.
Matt Birkholz [Mon, 8 Apr 2013 22:39:17 +0000 (15:39 -0700)]
Finish replacing type code SEQUENCE-2 with SEQUENCE.
Hack runtime.sf to inform older hosts about new type code.
Taylor R Campbell [Mon, 18 Feb 2013 15:11:04 +0000 (15:11 +0000)]
Unparse the symbol whose name is `.' as `|.|'.
Add a trivial test for it.
Found by Pavel Panchekha.
Matt Birkholz [Sun, 3 Feb 2013 01:39:15 +0000 (18:39 -0700)]
microcode: Quiet some unused-but-set-variable warnings.
Taylor R Campbell [Sat, 19 Jan 2013 05:07:42 +0000 (05:07 +0000)]
Report a meaningful error message if the TUTORIAL file is hosed.
Matt Birkholz [Wed, 19 Dec 2012 00:11:44 +0000 (17:11 -0700)]
Support callout struct and union parameter and return types.
Requested by Peter Feigl <craven@gmx.net>.
Matt Birkholz [Tue, 18 Dec 2012 23:58:56 +0000 (16:58 -0700)]
Update old "package: (ffi syntax)" comments.
Matt Birkholz [Tue, 18 Dec 2012 23:56:53 +0000 (16:56 -0700)]
Do not setsid() just because of --batch-mode.
Commit
6b474c5 has turned --batch-mode into something like a
--background option, ensuring that setsid() is called. Re-worked the
logic so that tty interrupt characters are not frobbed in batch-mode
AND setsid() is not called (except according to the curious but
ancient heuristic/default: when there is no tty on stdin, stderr and
stdout and no --emacs option).
Taylor R Campbell [Wed, 12 Dec 2012 06:10:18 +0000 (06:10 +0000)]
Work around broken IMAP servers that give bogus responses to FETCH.
Taylor R Campbell [Wed, 12 Dec 2012 06:06:39 +0000 (06:06 +0000)]
Tidy up local declarations in DEFINE_BIT_COUNT.
`static' is pointless (and causes `gcc -O0' to actually allocate
static storage for them), and using uintmax_t rather than TYPE is
overkill.
Taylor R Campbell [Wed, 12 Dec 2012 05:56:45 +0000 (05:56 +0000)]
Fix some ignored variable warnings in swank.scm.
Taylor R Campbell [Tue, 11 Dec 2012 20:35:13 +0000 (20:35 +0000)]
Add BIT, BITS, SHIFTIN, and SHIFTOUT, for handily hacking bit fields.
Taylor R Campbell [Tue, 11 Dec 2012 20:16:28 +0000 (20:16 +0000)]
Fix READ-PACKET in swank.scm to cope with partial reads.
Thanks, ecraven.
Chris Hanson [Mon, 12 Nov 2012 05:54:19 +0000 (21:54 -0800)]
Support new location of Xcode 4.3 and later; just warn if can't find SDKs directory.
Joe Marshall [Fri, 19 Oct 2012 20:34:20 +0000 (13:34 -0700)]
Integrate CALLER argument in guarantees.
Joe Marshall [Wed, 17 Oct 2012 17:47:16 +0000 (10:47 -0700)]
Remove last remnants of SEQUENCE-3. Rename return code for sequence-2 to sequence-continue.
Joe Marshall [Wed, 17 Oct 2012 15:22:52 +0000 (08:22 -0700)]
Remove last vestiges of IN-PACKAGE.
Joe Marshall [Sun, 7 Oct 2012 19:55:57 +0000 (12:55 -0700)]
Make LOCAL-DECLARE a macro.
Joe Marshall [Sun, 7 Oct 2012 19:53:24 +0000 (12:53 -0700)]
Spelling correction.
Matt Birkholz [Wed, 26 Sep 2012 20:27:01 +0000 (13:27 -0700)]
Fix recent typo in User Manual (again).
Matt Birkholz [Wed, 26 Sep 2012 20:24:41 +0000 (13:24 -0700)]
Fix recent typos in User Manual.
Joe Marshall [Mon, 17 Sep 2012 20:43:54 +0000 (13:43 -0700)]
Export flo:modulo
Joe Marshall [Mon, 17 Sep 2012 20:25:22 +0000 (13:25 -0700)]
Add flo:modulo
Matt Birkholz [Thu, 6 Sep 2012 18:25:36 +0000 (11:25 -0700)]
Use internal-time/seconds->ticks in thread-queue/*-no-hang.
Moved test procedure to tests/runtime/test-thread-queue.scm.
Matt Birkholz [Thu, 6 Sep 2012 15:58:24 +0000 (08:58 -0700)]
Fix OS_pause on Unix to correctly restore the sigmask.
Matt Birkholz [Wed, 5 Sep 2012 19:39:21 +0000 (12:39 -0700)]
Use sigsuspend in new OS_pause, else wait-for-io must spin.
The test-select-registry primitive now calls OS_pause instead of
OS_test_select_registry to block with an empty registry.
Matt Birkholz [Tue, 4 Sep 2012 23:37:07 +0000 (16:37 -0700)]
ffi: Replaced serror with swarn, so syntaxing can continue.
Transform bogus syntax into a call to error.
Taylor R Campbell [Mon, 3 Sep 2012 19:34:13 +0000 (19:34 +0000)]
Use pollts if it is available but ppoll is not.
Also change all references to the poll/select variants to use the UX_
names.
All four ways -- select, select & pselect, poll, poll & pollts --
tested on a NetBSD 6.99.4 kernel running a NetBSD 5.1 userland by
tweaking config.h by hand.
Matt Birkholz [Mon, 3 Sep 2012 06:38:12 +0000 (23:38 -0700)]
Use ppoll() and pselect() when available.
Use them only when a test-select- primitive should block. The old
poll()/select() functions continue to be used when not blocking,
e.g. in uxsock.c's do_connect().
Matt Birkholz [Mon, 3 Sep 2012 05:57:08 +0000 (22:57 -0700)]
edwin: Fixed arrow keys in xterms.
Added ts-enter/exit-keypad-mode and used them in console-enter/exit!.
Matt Birkholz [Fri, 31 Aug 2012 00:38:18 +0000 (17:38 -0700)]
Added --args and -- option parsers, and a command-line procedure.
Taylor R Campbell [Wed, 29 Aug 2012 16:37:42 +0000 (16:37 +0000)]
Process all queued X events, not just one, if I/O is ready.
X-DISPLAY-PROCESS-EVENTS may have the side effect of moving events
from the kernel's pipe buffer into Xlib's queue, in which case after
processing one event there may be more events pending in the queue
but no more I/O pending on the pipe. Before this change we failed to
report these other events in a timely fashion.
Do this both in Edwin's xterm.scm and the runtime's x11graph.scm.
Taylor R Campbell [Tue, 28 Aug 2012 04:33:49 +0000 (04:33 +0000)]
Add cruft to confshared.h for ARM.
Works on the Raspberry Pi and the BeagleBone, which seem to be,
remarkably enough, the first ARM platforms on which anyone has ever
tried to run MIT Scheme.
Taylor R Campbell [Tue, 28 Aug 2012 04:26:04 +0000 (04:26 +0000)]
Ask Xlib for events before blocking on the display in x11graph.scm.
Fixes race whereby Xlib may have queued up events already before we
ask the OS about I/O on the underlying file descriptor. This can
cause us to fail to notice an event until a second one comes along,
so that, e.g., a newly created window will hang until you move the
mouse over it or similar.
Chris Hanson [Thu, 16 Aug 2012 06:48:36 +0000 (23:48 -0700)]
Remove alternate/optimized types of scode combinations from runtime.
Chris Hanson [Thu, 16 Aug 2012 05:18:08 +0000 (22:18 -0700)]
Remove now-unnecessary comment about 64-bit machines.
Chris Hanson [Thu, 16 Aug 2012 05:16:37 +0000 (22:16 -0700)]
Fix broken memory allocation on 32-bit OS X.
Taylor R Campbell [Sun, 12 Aug 2012 01:07:33 +0000 (01:07 +0000)]
Add missing comma in fixobj.h in FIXED_OBJECTS_NAMES.
Turned up while building on arm. I guess there just must have always
been a zero in memory after this array in utabmd.c on every other
platform!
Joe Marshall [Thu, 2 Aug 2012 17:34:45 +0000 (10:34 -0700)]
Add fmod as primitive FLONUM-MODULO.
Matt Birkholz [Fri, 13 Jul 2012 00:30:21 +0000 (17:30 -0700)]
microcode: Fix start in mmap_heap_malloc_search for __linux__.
The AppArmor hack moved and missed its chance to frob start.
Matt Birkholz [Thu, 12 Jul 2012 22:01:21 +0000 (15:01 -0700)]
Added warn-errors?, like ignore-errors, to turn errors into warnings.
Matt Birkholz [Thu, 12 Jul 2012 21:56:49 +0000 (14:56 -0700)]
tests/unit-testing.scm: Start report with a fresh-line.
Matt Birkholz [Thu, 12 Jul 2012 21:55:38 +0000 (14:55 -0700)]
tests/ffi/: De-register callback. Document asserts.
Matt Birkholz [Thu, 12 Jul 2012 21:49:15 +0000 (14:49 -0700)]
doc/ffi/ffi.texinfo: Frob whitespace.
Matt Birkholz [Thu, 12 Jul 2012 21:48:15 +0000 (14:48 -0700)]
ffi/Makefile-fragment: Always wrap stdin in a (begin ...)...
Matt Birkholz [Thu, 12 Jul 2012 21:46:25 +0000 (14:46 -0700)]
ffi: Fix free to update malloced-aliens.
Taylor R Campbell [Wed, 11 Jul 2012 03:46:20 +0000 (03:46 +0000)]
Merge branch 'ecraven-swank'
Peter Feigl [Thu, 3 May 2012 07:58:44 +0000 (09:58 +0200)]
Basic support for describing things in swank.
* Describing
Adding basic support for SWANK:DESCRIBE-FUNCTION and
SWANK:DESCRIBE-SYMBOL.
Peter Feigl [Thu, 3 May 2012 07:45:45 +0000 (09:45 +0200)]
Fix basic debugging problems.
* Debugging
There are numerous problems, including no replies sent to messages and
incorrect replies.
- Added condition/report-string to the abort message.
- Added a DYNAMIC-WIND in the condition handler in the message handler
for emacs-rex to ensure that the :abort message is always written,
even when a restart is called.
- Added a global (fluid) binding *index* that is used to send the
correct message index in the :debug message.
There are many problems remaining, to be tackled in a later commit.
Peter Feigl [Thu, 3 May 2012 07:36:24 +0000 (09:36 +0200)]
Adding directory support to swank.scm.
* Directories
Added directory functions SWANK:DEFAULT-DIRECTORY and
SWANK:SET-DEFAULT-DIRECTORY for slime commands ,!d ,cd ,+d ,-d
,change-directory ,push-directory ,pop-directory ,pushd ,popd ,pwd
Peter Feigl [Thu, 3 May 2012 07:32:00 +0000 (09:32 +0200)]
Adding completion function swank:completions as an alias for swank:simple-completions.
* Completion
Trying to auto-complete in the REPL raises condition "Unbound variable:
swank:completions". It seems swank added swank:completions in addition
(or instead of?) swank:simple-completions.
Peter Feigl [Thu, 3 May 2012 07:31:24 +0000 (09:31 +0200)]
Add autodoc for procedures
* Autodoc
Actually implement swank:autodoc. It is called with a list form that contains the special symbol swank::%cursor-marker% somewhere to show the position of the cursor.
The new procedure FIND-STRING-BEFORE-SWANK-CURSOR-MARKER returns the symbol that starts the expression which contains the cursor as a string.
The new procedure PROCEDURE-PARAMETERS returns a list containing the function name and the list of parameters (as printed by PA) if symbol is bound to a function.
The new variable SWANK-EXTRA-DOCUMENTATION contains an (incomplete) list of "parameters" to special forms and macros.
Now we have working autodoc in the REPL and in Scheme buffers.
Peter Feigl [Thu, 3 May 2012 07:28:43 +0000 (09:28 +0200)]
Updating swank.scm to work with current slime-cvs
* Startup Problems [when using Emacs setting (slime-setup '(slime-fancy))]
- M-x slime raises condition "Unbound variable: swank:swank-require"
=> fixed by defining swank:swank-require to return '()
- M-x slime shows "error in process filter: Can't find suitable coding-system"
=> fixed by adding :encoding (:coding-systems ("utf-8-unix" "iso-latin-1-unix")) to the connection info
- M-x slime raises condition "Unbound variable :conding-system" (which is due to all parameters being evaluated)
=> fixed by adding QUOTE-SPECIAL and mapping it over the parameters (quoting all keywords [symbols that start with a colon] and T and NIL)
- Typing an expression raises condition "Unbound variable: swank:autodoc"
=> fixed by defining swank:autodoc to return (list ':not-available 't)
- Slime complains about mismatched versions
=> fixed by changing :version in swank:connection-info to "2012-05-02" which matches slime-cvs
Now we have a working SLIME REPL again.
Taylor R Campbell [Wed, 11 Jul 2012 01:37:40 +0000 (01:37 +0000)]
Merge branch 'amd64-load-char-bug'
Taylor R Campbell [Wed, 11 Jul 2012 01:35:10 +0000 (21:35 -0400)]
Fix syntax of MOVZX instruction in LOAD-CHAR-INTO-REGISTER.
Thanks, mejja.
We need to check this stuff at compile-time...blahhh.
Taylor R Campbell [Thu, 5 Jul 2012 00:57:00 +0000 (00:57 +0000)]
Try harder to mmap heap space.
Using mmap rather than malloc is important because we need read,
write, and execute privileges for the pages.
Some day, maybe we can change that requirement, but that day will not
be for a while.
Taylor R Campbell [Wed, 4 Jul 2012 23:05:37 +0000 (23:05 +0000)]
Rework mmap_heap_malloc.
Don't do mmap(MAP_FIXED) unless we know the address space is free.
Otherwise it will clobber whatever else was there, including, say,
the text segment of the microcode!
Taylor R Campbell [Wed, 4 Jul 2012 23:02:39 +0000 (23:02 +0000)]
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/mit-scheme
Joe Marshall [Tue, 5 Jun 2012 02:58:35 +0000 (19:58 -0700)]
Make LETREC and LETREC* be ordinary macros. Avoid adding integrate declarations to procedures with no arguments.
Joe Marshall [Thu, 24 May 2012 18:46:42 +0000 (11:46 -0700)]
Use quote instead of tick mark.
Joe Marshall [Thu, 24 May 2012 18:44:02 +0000 (11:44 -0700)]
Use lambda-bound? procedure.
Joe Marshall [Thu, 24 May 2012 18:42:03 +0000 (11:42 -0700)]
Add lambda-bound? procedure.
Joe Marshall [Thu, 24 May 2012 16:24:11 +0000 (09:24 -0700)]
Get rid of fluid variable by adding an argument. Better unsyntaxing of global references.
Joe Marshall [Wed, 23 May 2012 17:41:55 +0000 (10:41 -0700)]
Add way to dump macroexpanded and optimized output from SF.
Joe Marshall [Mon, 21 May 2012 18:24:38 +0000 (11:24 -0700)]
Fix unsyntaxing of open-blocks and block-declarations.
Joe Marshall [Mon, 21 May 2012 18:10:40 +0000 (11:10 -0700)]
Make ASSERT pass along arguments to ERROR.
Joe Marshall [Sat, 19 May 2012 17:29:08 +0000 (10:29 -0700)]
Remove undefined export.
Joe Marshall [Sat, 19 May 2012 17:28:04 +0000 (10:28 -0700)]
Echo output from CREF (if any).
Joe Marshall [Sat, 19 May 2012 17:25:56 +0000 (10:25 -0700)]
Wrap show-time around compilations. Add newline after disk-save.
Joe Marshall [Fri, 18 May 2012 16:24:56 +0000 (09:24 -0700)]
Fix names of environment variables MITSCHEME_HEAP_SIZE and MITSCHEME_STACK_SIZE. Remove trailing whitespace.
Matt Birkholz [Wed, 16 May 2012 21:26:32 +0000 (14:26 -0700)]
Fix commit
339824b so %channel-read returns no-data instead of eof.