- 06 Sep, 2009 4 commits
-
-
Christophe Rhodes authored
It's all mildly horrible. The input buffer-handling code is in streams.lisp, notionally generic code, which means that it's very hard to communicate out-of-band reasons for filling 0 characters (which could happen on end-of-file, on forced-end-of-file, on resync and now on input-replacement). Instead, we have to communicate that out-of-band information between different fd-streams functions using extra slots in the stream, which is all fragile and intertwingly. One thing that has changed is that we're no longer using an UNREAD slot for dealing with unread-char; instead we always alter the buffer pointers. We don't get that slot back, though; instead we use it for stuff to read in preference to the input buffer, FD-STREAM-INSTEAD. Most of the work in this patch is making sure that this is in fact always read first when necessary. This rearrangement also fixes the double-decoding-error when using the force-end-of-file restart, by using yet another new slot for noting that EOF was forced, so test for that in the relevant regression test (by counting the number of times the handler function is called).
-
Christophe Rhodes authored
Specifically, this fixes the (:character-decode-large :force-end-of-file) test in external-format.impure.lisp. It's only a 'fix' because you get _two_ encoding errors: the first from the READ-N-CHARACTERS, and the second from a single-character read; however, since now a handler invoking the FORCE-END-OF-FILE does the Right Thing (even if interactively it's not right) this is worth checkpointing.
-
Christophe Rhodes authored
... more useful than just OUTPUT-NOTHING, at any rate.
-
Christophe Rhodes authored
Detect all malformed sequences, including attempts to decode or encode Unicode surrogate codepoints (disallowed by the Unicode definition of UTF-8). Some error tests change behaviour, and some (unexported) condition classes are not triggered under the same circumstances any more. TODO: improve offered restarts
-
- 31 Aug, 2009 1 commit
-
-
Cyrus Harmon authored
* on x86/darwin use -arch i386 flags in sb-grovel C compilation * comment out failing sb-posix tests * add -arch i386 flags to Config.x86-darwin CFLAGS and LINKFLAGS * remove #include <ucontext.h> instances
-
- 27 Aug, 2009 2 commits
-
-
Christophe Rhodes authored
-
Christophe Rhodes authored
-
- 26 Aug, 2009 3 commits
-
-
Christophe Rhodes authored
Don't use host values of most-fooative fixnum. (Also expand on the comment about using an exclusive test for floats within the fixnum range)
-
Christophe Rhodes authored
The alignment restrictions on movaps for moving a pair of single floats are too strict; use movq instead. (From Paul Khuong)
-
Christophe Rhodes authored
Regression from 1.0.30 (in 1.0.30.28); Noted by Lars Nostdal; fix by Paul Khuong
-
- 23 Aug, 2009 3 commits
-
-
Christophe Rhodes authored
Code of the form (defun foo (x) (declare (type simple-vector x)) (coerce x '(vector (unsigned-byte 8)))) should not cause a full WARNING, but with the new COERCE transforms, expanded into one of those IFs where one branch is dead, but the compiler couldn't prove it. Define a whole heap of new backend type predicates for all specialized vectors, generalizing VECTOR-T-P. (Some specialized vectors are implemented using widetags, and so are excluded from these new definitions).
-
Christophe Rhodes authored
From Leslie Polzer sbcl-devel 2009-08-07
-
Christophe Rhodes authored
In the 1.0.29.x series, DELETE-FILE started deleting the truename of the given pathname designator (rather than the pathname itself), meaning that symlinks could no longer be deleted. Revert back to the historical behaviour. (Noted on sbcl-devel by Luis Oliveira 2009-08-18.) Although the behaviour hasn't changed recently, there's a similar issue in RENAME-FILE, but that operator has such bizarre behaviour anyway it might be worth just letting sleeping pathname functions lie.
-
- 22 Aug, 2009 2 commits
-
-
Christophe Rhodes authored
If an empty range of a simple-array-nil is requested for conversion, we should return an empty octet sequence, not blow up.
-
Christophe Rhodes authored
The sap-ref-with-offset stuff was wrong in that the displacement was multiplied by a notional element size, rather than being uniformly treated as a number of bytes. Mostly this codepath wasn't exposed at all (other than with sap-ref-8, which worked by "accident"), but attempts to implement UTF-16, which requires (sap-ref-16 sap (+ offset 2)), showed up the problem.
-
- 12 Aug, 2009 3 commits
-
-
Nikodemus Siivola authored
* Fix ALLOCATION-INFORMATION test on PPC, and hopefully on SPARC as well. Thanks to Bruce O'Neel.
-
Nikodemus Siivola authored
Patch by Tobias Rittweiler: * Add a PPRINT-DECLARE which a) makes sure that (DECLARE (FUNCTION F)) is not printed as (DECLARE #'F), and b) places each declaration specifier on its own line. Also used for DECLAIM. * Better pprint SETQ forms which assign to multiple variables. At the moment it's printed like (SETQ FOO (FROB-FOO 0 1 2 3 4 5 6 7 8 9) QUUX (FROB-QUUX 9 8 7 6 5 4 3 2 1 0)) With the patch it's indented like (SETQ FOO (FROB-FOO 0 1 2 3 4 5 6 7 8 9) QUUX (FROB-QUUX 9 8 7 6 5 4 3 2 1 0)) It uses the former indentation style if the value (e.g. the "(FROB-FOO ...)") does not fit on a single line. This also affects PSETQ, SETF, PSETF. * Add pprint entry for SB-INT:DX-FLET because there are CL macros which expand to that. * Fix typo in *LOOP-SEPARATING-CLAUSES*; I mistakenly put WHERE instead of WITH in it. * Fix PPRINT-IF to make sure that the predicate is always printed right after the IF. The current definition may occassionally print an IF form like (IF (PREDICATE) (THEN) (ELSE)) * Some small refactoring work: - Use PPRINT-LINEAR, and PPRINT-FILL instead of equivalent, but hairy FORMAT calls. - Add PPRINT-SPREAD-FUN-CALL which is the common subtrate of pretty-printing simple LOOP forms, and DECLARE forms.
-
Nikodemus Siivola authored
...as they should signal an error for non-floats in safe code, and hence UNSAFELY-FLUSHABLE. Ditto for FLOAT-SIGN, FLOAT-RADIX, FLOAT-DIGITS, and FLOAT-PRECISION, though for some reason Python seemed unwilling to delete these calls despite them being marked as flushable as well. See: https://bugs.launchpad.net/sbcl/+bug/412416
-
- 11 Aug, 2009 1 commit
-
-
Nikodemus Siivola authored
...by passing ERRORP=NIL to COMBINATION-FUN-SOURCE-NAME. Also smooth the return value convention of C-F-S-N by adding a secondary value: NIL is a valid name for a local function. See: https://bugs.launchpad.net/sbcl/+bug/411563
-
- 10 Aug, 2009 1 commit
-
-
Nikodemus Siivola authored
* Not all specialized array predicates had an out-of-line predicate. Generate them from the SAETP vector. Reported by Stelian Ionescu. * Test case.
-
- 07 Aug, 2009 1 commit
-
-
Christophe Rhodes authored
Continuing the theme of extensions no-one has ever asked for. (There's a lot of duplicated code everywhere in src/code/external-formats that could be replaced with a sufficiently complicated macro-defining-macro...)
-
- 06 Aug, 2009 4 commits
-
-
Nikodemus Siivola authored
* Replace the SLOT-VALUE and SET-SLOT-VALUE compiler macros with deftransforms once PCL has been built, and if the type is known to be a structure and the slot name maps cleanly to an accessor we can use it.
-
Nikodemus Siivola authored
* Ignore the :LARGE property on PPC, where is seems to bounce back and forth. Reported by Bruce O'Neel. (This is not a real fix, of course: the question of _why_ PPC sometimes has (or thinks it has) #'CONS on a large object page remains.)
-
Nikodemus Siivola authored
* Specialized %UNARY-TRUNCATE/SINGLE-FLOAT and %UNARY-TRUNCATE/DOUBLE-FLOAT. * Explicit coercions to appropriate float types in the TRUNCATE transforms. This gets rid of generic arithmetic in the general case (Python is reluctant to insert explicit integer-tofloat coercions for integers of unknown range due to precision issues.) * Since COERCE (and %SINGLE-FLOAT and %DOUBLE-FLOAT) are not flushable, take core not to generate leftover code in the TRUNCATE transform when the result lvar has a single-value type. * Rename %UNARY-TRUNCATE float VOPs, so that transforming to a specialized floating point version doesn't make use unable to implement it directly as a VOP when the range of the float is sufficiently constrained.
-
Nikodemus Siivola authored
* Mishandled return value.
-
- 05 Aug, 2009 2 commits
-
-
Christophe Rhodes authored
Provide for the construction of Hangul syllable character names, as required by Unicode ("This character name is a normative property of the character"). At present done at build-time; if the increase in core size is too painful, it can be done algorithmically in CHAR-NAME and NAME-CHAR.
-
Nikodemus Siivola authored
* I at least am starting to find myself having to insert (EVAL-WHEN (...) (REQUIRE :SB-INTROSPECT)) in too many places. This may be a sign that things aught to be in SB-EXT instead, but ASDFication seems like a logical next step. ...arguably all contribs but ASDF itself should be ASDF systems.
-
- 04 Aug, 2009 2 commits
-
-
Nikodemus Siivola authored
* Allows deleting simple unused MAKE-ARRAY and VECTOR combinations. * Move ASSERT-NO-CONSING and ASSERT-CONSING to compiler-test-util.lisp, so that they can be used outside dynamic-extent.impure.lisp.
-
Nikodemus Siivola authored
Patch by Larry D'Anna. He explains: This snippit (labels ((K (&optional x) #'k))) fails with failed AVER: (XEP-P XEP), in %ALLOCATE-CLOSURES-IR2-CONVERT-OPTIMIZER The problem is that it's trying to allocate a closure for the XEP for K, but K has been deleted because nothing references K except itself. %ALLOCATE-CLOSURES-IR2-CONVERT-OPTIMIZER already skips any leafs that lacks a XEP. This patch makes it also skip leafs who's XEPs have been deleted.
-
- 03 Aug, 2009 1 commit
-
-
Christophe Rhodes authored
There's more to be done, including fixing magic numbers and documenting formats in internals, but this does the job for now, and does wonders for my "lines changed" stats.
-
- 02 Aug, 2009 1 commit
-
-
Kevin Rosenberg authored
src/runtime/interrupt.c: Fix spelling error in error message
-
- 01 Aug, 2009 4 commits
-
-
Nikodemus Siivola authored
* Patch by Larry D'Anna.
-
Nikodemus Siivola authored
* Patch by Larry D'Anna.
-
Nikodemus Siivola authored
* Patch by Larry D'Anna.
-
Nikodemus Siivola authored
* Improved pretty-printing of simple LOOP forms, IF, and MULTIPLE-VALUE-CALL. Patches by Tobias Rittweiler. * Improved pretty-printing of general macro calls by inspecting location of &BODY in the lambda-list. Patch by Tobias Rittweiler. * Make tests in walker.impure.lisp ignore newlines as well.
-
- 31 Jul, 2009 5 commits
-
-
Nikodemus Siivola authored
See https://bugs.launchpad.net/sbcl/+bug/392203 Patch by Larry D'Anna. His comments: Ever since Spice Lisp, convert-mv-call had returned without doing anything if (functional-entry-fun fun) is not null, ie if fun possesses a XEP. 0.8.5.5 replaces this criterion with "if the last optional entry has references", and signals an error if the last optional entry has no references and the XEP exists. I can't know exactly what Alexy was thinking when he put the aver in, but I can guess: If the XEP exists it should contain a reference to the last entry point, so if the last entry point has no refs and a XEP exists something went wrong. However, if the number of required + optional arguments is 0, then XEP doesn't need the "last" entry point, it can always use the "more" entry point instead, which is exactly what seems to have happened in this case. This patch combines the two conditions. convert-mv-call will return without action if *either* a XEP exists, *or* the last optional entry has references."
-
Nikodemus Siivola authored
* Patch by Leslie Polzer. * Also give notes when giving up in ARRAY-TYPE-DIMENSIONS-OR-GIVE-UP.
-
Nikodemus Siivola authored
* OpenBSD refuses to nanosleep() over 100 million seconds (returning EINVAL), so loop with 100 million second sleeps till the time left is smaller than that. ...who knows, maybe there is a good reason to sleep over 3 years? Bug reported by Johsh Elsasser.
-
Nikodemus Siivola authored
* Patch by Josh Elsasser. He says: "The current address space locations for x86 OpenBSD are adequate, but could still be better chosen. The only real problem with the current addresses is that the default dynamic space size is larger than the default data size resource limit, which means that sbcl will not run without some tweaking. Attached is a patch to lower the dynamic space size, as well as move all spaces to locations which I suspect may prove more future-proof against OpenBSD changes. The patch also greatly expands the OpenBSD comment. I apologize for the verbosity, but the address space layout on OpenBSD/i386 is quite complex and I wanted to record the details before I forgot (again)." Committing untested, as I don't have an OpenBSD system available.
-
Nikodemus Siivola authored
* Don't close the stream on Unix, so users can enjoy the normal Unixy-IO to unlinked files. * On Windows, close the stream with :ABORT NIL, so that there is no danger of close trying to delete file as well. Bug with DELETE-FILE trying to delete files twice reported by John Fremlin.
-