Age | Commit message (Collapse) | Author |
|
Because the empty extended-char table is not a hash-table.
But now it's OK to maphash over.
|
|
* Combine the syntax attribute and macro function hashtables into one.
* Change a couple more make-hash-table calls to use an EQ table.
* Unless any Unicode macro character is defined in the current readtable,
GETHASH of the syntax attributes becomes almost a no-op.
* Alleviate some pressure on getting hash-tables and mutexes working early
in cold-init, which facilitates testing other implementation strategies
for both of those object types.
|
|
|
|
Several of them were already mistakenly unqouted, e.g. (not :linux),
and there's no reason to evaluate them.
|
|
|
|
Also gets rid of a KLUDGE in run-tests.lisp.
|
|
|
|
- The printer prints non-NFKC symbols escaped
- The reader normalizes any unescaped (parts of) symbols to NFKC
- SB-EXT:READTABLE-NORMALIZATION controls whether the reader performs
normalization
- The reader conses, so the non-consing reader tests are removed.
|
|
|
|
The #\ syntax is unparseable.
|
|
The compatibility API that is exposed for dispatching characters
can coerce fdefns to symbols, but there is still a problem that
non-dispatching character functions are groveled out and passed
to SET-MACRO-CHARACTER which won't work in general.
Related problem in sb-cover - it did not understand that
GET-MACRO-CHARACTER could return a function-designator.
|
|
As observed by Tobias Rittweiler in the named-readtables Quicklisp
system, the complex logic in our SET-SYNTAX-FROM-CHAR had dubious
behavior which I've tried to rectify.
- It was possible to create a broken dispatching macro character
with no dispatch table by using the arguably incorrect code:
(SET-MACRO-CHARACTER #\% (GET-MACRO-CHARACTER #\#))
This works now, where "works" is defined to mean that the
dispatch table is shared, and alterations to the shared
table will be seen by either dispatch character.
- On the other hand it is no longer possible to use
SET-DISPATCH-MACRO-CHARACTER on a character which became
non-dispatching by dint of using SET-MACRO-CHARACTER on it.
This seems to have been an oversight that previously
dispatch tables were sticky, which allowed a weird trick in
sb-cover. Now a character will not be treated as dispatching
if SET-MACRO-CHARACTER is used on it unless the function was
obtained from GET-MACRO-CHARACTER of a dispatching character.
- Short of binding an error handler there was no way to express
(unless (already-dispatching-p char)
(make-dispatch-macro-character ..))
Nearly all other Lisp implementations allow repeated invocation
so now we do too.
Because a slot was removed from READTABLE that named-readtables
needed, there is a hopefully short-term compatibility hack in place.
|
|
The analysis in the bug report is correct in my opinion, however the
following interesting variations in other Lisp implementations exist:
- two coerce early, two coerce late.
- one goes halfsies: early for dispatch macros, late otherwise.
There is an edge case that is unexplained by CLHS, namely that of NIL
(not #'NIL) as a function-designator. NIL can't portably designate a
function, but CLHS does not indicate that specifying NIL removes a macro.
Among the choices of always failing, either at the time of the SET- by
complaining that NIL shouldn't be DEFUN'ed, or complaining at execute
time, or changing the character to have no macro, I opted for the last.
This is consistent with one but not both of the other lazy-coercing
implementations and consistent with the fact that NIL as returned
from the GET- functions means that there is no macro.
Fixes lp#1012335
|
|
|
|
restrict test names to trees of integers and external symbols in
CL/KEYWORD/SB- packages.
|
|
* Make SIMPLE-READER-PACKAGE-ERROR a subclass of PACKAGE-ERROR.
* Make reader signal a SIMPLE-READER-PACKAGE-ERROR for missing packages,
instead of a vanilla PACKAGE-ERROR: that way get the position reported as
well.
* Factor out line and column reporting logic for reader-errors into a
separate function, and allow using other than current file position.
* READ-FOR-COMPILE-FILE needs to use COMPILER-ERROR, and
INPUT-ERROR-IN-COMPILE-FILE is a subclass of READER-ERROR, not a
FATAL-COMPILER-CONDITION.
* *COMPILER-ERROR-BAILOUT* binding in SUB-COMPILE-FILE was missing the
condition argument from the lambda-list, and should not mumble to
*STANDARD-OUTPUT*.
This patch converts all input errors into COMPILE-FILE failures without
dropping into the debugger. That might be taking things too far, though --
but the question of "which errors should we let enter the debugger" has no
obvious answers to me at least. Perhaps *COMPILER-HANDLED-ERRORS* is the way
to go?
Fixes lp#493380
|
|
* When RECURSIVE-P was true in a non-recursive context, we used to
signal an unbound-variable error. Now signal a sensible
reader-error instead.
* Patch by Tobias Rittweiler. Also apologies for constant mistyping
of his name: mentally s/Ritter/Ritt/ in historical commit
messages...
|
|
* CLHS says that frobbing the standard readtable is undefined.
* Patch by Tobias Ritterweiler.
|
|
* Patch by Tobias Ritterweiler, plus tests and making S-D-M-C return T.
|
|
Make the #=/## reader macro work on funcallable instances.
|
|
|
|
Rewrite the test infrastructure to make it a bit more useful, without
having to make major changes to the test files.
Move most of run-tests.sh Lisp-side. New features:
* Don't bail out at first failure (unless running with
--break-on-failure)
* Report failed tests at the end of the run
* Tests can be marked as expected to fail on certain platforms
* Tests can be named
* A subset of test files to run can be specified on the command line
Todo:
* "Quis custodiet ipsos custodes?". Tests for the test framework.
Changes to the tests:
* Remove the explicit quits on success from the impure tests
(handled by the test framework)
* Mark some obvious cases as "expected to fail on FOO"
Other:
* Remove an (unrelated) fixed BUGS entry
|
|
another slice of whitespace canonicalization
(Anyone who ends up here with "cvs annotate" probably
wants to look at the "tabby" tagged version.)
|
|
* use a fresh read buffer for non-recursive reads to allow for
nested and thread safe reading
* killed read-from-string's string-input-stream and stringify-object's
string-output-stream cache mainly for thread safety reasons
* as a side-effect potentially huge buffers do not linger
|
|
Fix #S reader bug regarding coercion of slot names to keyword
arguments (Kalle Niemitalo sbcl-devel 2004-05-23)
|
|
Reading of symbols in a package named by "" (reported by hmot on
#lisp IRC)
... the only way one can get one of these beasts is by multiple
escapes with nothing in them, so remember if we've seen
multiple escape characters
|
|
Fix nasty bug introduced in 0.pre8.1 or so, wherein #S no longer
worked. (mea maxima culpa)
... export STRUCTURE-CLASSOID
... write a test for it, so it doesn't happen again
Now we can build from ourselves again, probably :-/
|
|
fix #1# for STANDARD-OBJECT objects (as reported by Tony
Martinez on cll 2003-02-03)
... slightly sucky fix, yes; will probably need revisiting when
PCL goodness happens.
|
|
Adjust test file running environment so that *.pure.lisp tests
are run with assertoid loaded.
... give assertoid its own package
... use it in run-tests.sh for *.pure.lisp
... also use it where applicable in *.impure.lisp
|
|
Fix BUG 51b (as per CSR sbcl-devel 2002-09-19)
... but with s/READER-INTERNAL-ERROR/READER-IMPOSSIBLE-NUMBER-ERROR
... and a couple more tests.
Delete stale BUGS 131 and 168
|
|
merged MNA "minor patches" collection (sbcl-devel 2000-01-25):
logical pathname support for LOAD-1-FOREIGN, and
changes in regression tests (reflect 0.6.10.5 change,
new tests for Gray streams, and fix reader test)
fixed run-tests.sh to check all *.pure.lisp (not just one!)
|
|
MNA patch for bug #30 and other readtable-related stuff
added tests for FIND and friends (anticipating new transforms)
fixed dumb error-reporting bug in CANONIZED-DECL-SPEC
|