1. 06 Sep, 2009 4 commits
    • Christophe Rhodes's avatar
      Working input-replacement restart for decoding errors · de26a27d
      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's avatar
      'fix' for FORCE-END-OF-FILE restart · f0ba533e
      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's avatar
      Useful restart for encoding errors · 93889d6c
      Christophe Rhodes authored
      ... more useful than just OUTPUT-NOTHING, at any rate.
    • Christophe Rhodes's avatar
      Make the utf-8 external format more robust · a6cdf3db
      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
      TODO: improve offered restarts
  2. 31 Aug, 2009 1 commit
    • Cyrus Harmon's avatar snow leopard (macos 10.6) build fixes · 9e0cc7f6
      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
  3. 27 Aug, 2009 2 commits
  4. 26 Aug, 2009 3 commits
  5. 23 Aug, 2009 3 commits
    • Christophe Rhodes's avatar fix for COERCE compilation regression · d5b2c7d4
      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
    • Christophe Rhodes's avatar fix SAVE-LISP-AND-DIE docstring · f9a710cf
      Christophe Rhodes authored
      From Leslie Polzer sbcl-devel 2009-08-07
    • Christophe Rhodes's avatar delete-file behaviour reversal · 0c44a685
      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.
  6. 22 Aug, 2009 2 commits
    • Christophe Rhodes's avatar utf-8 simple-array-nil correctness · a9200066
      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's avatar
      x86 sap fixes · 7d10bcf5
      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.
  7. 12 Aug, 2009 3 commits
    • Nikodemus Siivola's avatar SB-INTROSPECT test adjustment · 0087e322
      Nikodemus Siivola authored
       * Fix ALLOCATION-INFORMATION test on PPC, and hopefully on SPARC as
         well. Thanks to Bruce O'Neel.
    • Nikodemus Siivola's avatar various pretty-printing improvements · 7b1b2c1b
      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)
                  (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
       * 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's avatar DECODE-FLOAT and INTEGER-DECODE-FOAT are not flushable · d9824d93
      Nikodemus Siivola authored
       ...as they should signal an error for non-floats in safe code,
       and hence UNSAFELY-FLUSHABLE.
       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
  8. 11 Aug, 2009 1 commit
  9. 10 Aug, 2009 1 commit
  10. 07 Aug, 2009 1 commit
    • Christophe Rhodes's avatar Octets support for ebcdic-us · d442c23d
      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...)
  11. 06 Aug, 2009 4 commits
    • Nikodemus Siivola's avatar faster SLOT-VALUE on structures · 796873d7
      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's avatar SB-INTROSPECT:ALLOCATION-INFORMATION test adjustment · d194d315
      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's avatar faster TRUNCATE on floats · 89b82a03
      Nikodemus Siivola authored
       * Specialized %UNARY-TRUNCATE/SINGLE-FLOAT and
       * 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's avatar fix SB-INTROSPECT test broken by · aeeaf53c
      Nikodemus Siivola authored
       * Mishandled return value.
  12. 05 Aug, 2009 2 commits
    • Christophe Rhodes's avatar Hangul syllable character names · 59b27c99
      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's avatar turn SB-INTROSPECT into an ASDF system · d351f80b
      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.
  13. 04 Aug, 2009 2 commits
    • Nikodemus Siivola's avatar flushable INITIALIZE-VECTOR · 8b1ad275
      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's avatar failed aver in %ALLOCATE-CLOSURES IR2 conversion · 7217c0c2
      Nikodemus Siivola authored
       Patch by Larry D'Anna. He explains:
         This snippit
            (labels ((K (&optional x) #'k)))
         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.
  14. 03 Aug, 2009 1 commit
    • Christophe Rhodes's avatar Update to Unicode 5.0.1 · ba1d157b
      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.
  15. 02 Aug, 2009 1 commit
    • Kevin Rosenberg's avatar · 711389a8
      Kevin Rosenberg authored
              src/runtime/interrupt.c: Fix spelling error in error message
  16. 01 Aug, 2009 4 commits
  17. 31 Jul, 2009 5 commits
    • Nikodemus Siivola's avatar fix failing AVER in CONVERT-MV-CALL · a76ae2de
      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. 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's avatar deftransform for ARRAY-IN-BOUNDS-P · 2e33f2df
      Nikodemus Siivola authored
       * Patch by Leslie Polzer.
       * Also give notes when giving up in ARRAY-TYPE-DIMENSIONS-OR-GIVE-UP.
    • Nikodemus Siivola's avatar hopefully fix _long_ SLEEP issues on OpenBSD · 10a42ef2
      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's avatar adjust OpenBSD address spaces on x86 · 72ec0832
      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's avatar better DELETE-FILE on streams · 8b244d66
      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.