summaryrefslogtreecommitdiff
path: root/tests/reader.impure.lisp
AgeCommit message (Collapse)Author
2020-06-24Prevent set-syntax-from-char from crashing remhashDouglas Katzman
Because the empty extended-char table is not a hash-table. But now it's OK to maphash over.
2020-06-09Improve storage of UCS4 chars in readtablesDouglas Katzman
* 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.
2018-03-20tests: Remove redundant LOADs and USE-PACKAGEs.Stas Boukarev
2017-11-26tests: don't evaluate :fails/skipped-on.Stas Boukarev
Several of them were already mistakenly unqouted, e.g. (not :linux), and there's no reason to evaluate them.
2017-01-19Quiet a little more test noiseDouglas Katzman
2016-02-07tests: Change encoding of reader.impure.lisp latin-1 -> utf-8Jan Moringen
Also gets rid of a KLUDGE in run-tests.lisp.
2014-10-01Fixes #!-sb-unicode build and testsKrzysztof Drewniak
2014-10-01Make the reader normalize unescaped symbols to NFKCKrzysztof Drewniak
- 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.
2014-05-29Replace (assert (raises-error? ...)) with assert-error.Stas Boukarev
2014-05-03Change :skipped-on (not :sb-unicode) to #+sb-unicodeDouglas Katzman
The #\ syntax is unparseable.
2014-05-01Slightly unbreak named-readtables per my latest changes.Douglas Katzman
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.
2014-05-01Deal with a few readtable issues.Douglas Katzman
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.
2014-04-29Lazily coerce symbols to functions in SET-[DISPATCH-]MACRO-CHARACTER.Douglas Katzman
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
2014-02-05Re-fix *reader-package* inside sharp-{plus,minus}Douglas Katzman
2013-09-11more restrictive test namingChristophe Rhodes
restrict test names to trees of integers and external symbols in CL/KEYWORD/SB- packages.
2012-04-24better reader-errors for COMPILE-FILENikodemus Siivola
* 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
2008-12-051.0.23.25: better errors for bogus RECURSIVE-P in readerNikodemus Siivola
* 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...
2008-12-041.0.23.20: check for standard readtable modificationNikodemus Siivola
* CLHS says that frobbing the standard readtable is undefined. * Patch by Tobias Ritterweiler.
2008-12-041.0.23.18: SET-[DISPATCH-]MACRO-CHARACTER fixesNikodemus Siivola
* Patch by Tobias Ritterweiler, plus tests and making S-D-M-C return T.
2007-02-281.0.3.3:Christophe Rhodes
Make the #=/## reader macro work on funcallable instances.
2006-04-050.9.11.11: fix SET-SYNTAX-FROM-CHAR bugletNikodemus Siivola
2005-08-260.9.4.6:Juho Snellman
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
2005-07-140.9.2.43:William Harold Newman
another slice of whitespace canonicalization (Anyone who ends up here with "cvs annotate" probably wants to look at the "tabby" tagged version.)
2005-07-050.9.2.25:Gabor Melis
* 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
2004-05-240.8.10.49:Christophe Rhodes
Fix #S reader bug regarding coercion of slot names to keyword arguments (Kalle Niemitalo sbcl-devel 2004-05-23)
2003-06-150.8.0.72:Christophe Rhodes
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
2003-03-290.pre8.16:Christophe Rhodes
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 :-/
2003-02-070.7.12.26:Christophe Rhodes
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.
2002-12-120.7.10.17:Christophe Rhodes
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
2002-09-190.7.7.31:Christophe Rhodes
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
2001-01-250.6.10.7:William Harold Newman
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!)
2001-01-070.6.9.20:William Harold Newman
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