Skip to content
Snippets Groups Projects
  1. May 17, 2004
  2. May 15, 2004
  3. May 14, 2004
    • rtoy's avatar
      Add support for storing the symbol hash into a slot in the symbol · 4d7bf80f
      rtoy authored
      itself.  Only for sparc currently.
      
      Doesn't lazily compute the symbol hash yet.  Simple test shows a 5%
      increase in compilation speed, despite making make-symbol
      significantly slower.
      
      
      	* src/code/hash-new.lisp (internal-sxhash): Use the symbol-hash
      	slot instead of computing the hash value.
      
      	* src/compiler/generic/new-genesis.lisp (allocate-symbol): Write
      	out the sxhash value of the symbol into the symbol-hash slot.
      
      	* src/compiler/globaldb.lisp (info-hash): Update to use the symbol
      	hash instead of computing the sxhash.
      
      	* src/code/symbol.lisp (make-symbol): Compute the symbol hash when
      	creating the symbol.
      
      	* src/compiler/sparc/cell.lisp ((symbol-hash)): Add vop to extract
      	out the symbol hash from a symbol.
      
      	* src/compiler/generic/objdef.lisp: Rename the unused slot to
      	hash, so we can make it the symbol hash.
      4d7bf80f
  4. May 12, 2004
    • rtoy's avatar
      Fix some issues with the complex functions with signed zeroes. See · 3e0a1c82
      rtoy authored
      comment for full details, but the issue is that Lisp says mixing a
      real and a complex requires converting the real to complex before
      doing the operation.  But Kahan's algorithms assume that this doesn't
      happen, like z-1 should not be computed as z-(1+0*i).
      
      One place where this was wrong was for acos(2 +/- 0i).  Kahan says
      acos(2+0i) is +0 - i*acosh(2) and acos(2-0i) is +0 + i*acosh(2).  We
      had this backwards for the above reason.
      
      I think this was caused by the erroneous deftransforms for real op
      complex which were removed sometime ago, causing these function to
      compute the wrong thing.
      3e0a1c82
  5. May 06, 2004
    • rtoy's avatar
      Merge in the 19a changes containing Helmut Eller's implementation for · 35ff77d3
      rtoy authored
      source location for defvar and friends.
      35ff77d3
    • rtoy's avatar
      From Helmut Eller: · c5c28c25
      rtoy authored
      the following enters an infinite recursion if it gets compiled two
      times:
      
      (def-alien-type nil (struct foo
      			    (f (* (function (values) (* (struct foo)))))))
      
      During the second compile, the existing type is compared with the to
      be defined type.  This enters a recursion because (struct foo) is
      recursive and the comparison is done again.  The current code has a
      "depth" counter and simply returns true if it exceeds 10.  But it only
      works for pointers to records and loops forever for function pointers.
      
      The patch below should fix this.  It keeps a hashtable of the already
      compared types and returns true if a pair is already in the hashtable.
      c5c28c25
  6. May 05, 2004
  7. May 04, 2004
  8. Apr 28, 2004
    • emarsden's avatar
      · 7df69e0b
      emarsden authored
      On Linux/AMD64, we need to tell the platform linker to use the 32-bit
      linking mode instead of the default 64-bit mode. This can be done either
      via the LDEMULATION environment variable, or via the "-m" command-line
      option.
      
        - in EXT:LOAD-FOREIGN, add LDEMULATION=elf_i386 to the environment
          inherited by the linker
      
      This assumes that the LDEMULATION environment variable will be ignored by
      the platform linker on Linux/i386 platforms.
      7df69e0b
  9. Apr 23, 2004
  10. Apr 22, 2004
    • rtoy's avatar
      Fix up printing of symbols. Passes Paul Dietz's symbol printing · ae18401e
      rtoy authored
      tests, now.  (Based on SBCL's fixes.)
      ae18401e
    • rtoy's avatar
      Fix up printing of symbols with :capitalize. · 719b5219
      rtoy authored
      719b5219
    • rtoy's avatar
      o Fix typo in output-ratio that was causing incorrect output when · 7204735b
      rtoy authored
        *print-radix* was T.  If *print-base* were 16, the output would be
        #xr<...>.
      
      o Comment out old float printer routines for now.
      7204735b
    • rtoy's avatar
      Oops. Remove unused code. Add a couple of comments. · 52168c78
      rtoy authored
      52168c78
    • rtoy's avatar
      o Fix the float printer to print correctly: · 4958e03b
      rtoy authored
           (float -54965272/1000000000000000000)
      
        was printing as -5.496527e-11 but should be -5.4965272e-11
      
      o Fix the float reader to read correctly, without roundoff:
      
        4.0058643e+8 was incorrectly read as 12518325, 1
        (integer-decode-float results).  It should be 12518326,1.
      
      o Fix the float reader to read floats correctly with unusual values of
        *read-base*:
      
          (let ((*read-base* 2))
            (read-from-string "-4.3e+7"))
      
        used to return a symbol instead of a float.
      
      This changes ported from SBCL.
      4958e03b
    • emarsden's avatar
      · f2b840db
      emarsden authored
      Change the behaviour of EXT:LOAD-FOREIGN when called with a single shared
      library: call SYS::LOAD-OBJECT-FILE directly, without invoking the linker as
      previously. This should make it possible to support the reloading of dependent
      shared libraries upon startup of a saved image.
      
      The new behaviour requires a function FILE-SHARED-LIBRARY-P to be defined. I
      have provided an implementation that works for ELF platforms. This has been
      tested with Linux/x86 and Solaris/SPARC, but is also enabled by
      conditionalization for :bsd (should include FreeBSD and OpenBSD).
      
      Also removed pmax support. IRIX and HPPA platforms will need to provide a
      definition for F-S-L-P.
      f2b840db
  11. Apr 16, 2004
  12. Apr 15, 2004
    • rtoy's avatar
      Fix ansi-test bug on read-sequence and echo-streams. Based on code · 48087ddd
      rtoy authored
      from SBCL.
      48087ddd
    • rtoy's avatar
      More ANSI test fixes: · 2e51cd52
      rtoy authored
      o FILE-STRING-LENGTH can be used on BROADCAST-STREAM's where the
        result is 1.
      o Graphic characters are not printed using the character name (hence
        #\space is printed #\ )
      o Make INPUT-STREAM-P and OUTPUT-STREAM-P work correctly on synonym
        streams.
      o MAKE-STRING-INPUT-STREAM was not accepting NIL for the optional END
        argument.
      o Close string-input streams.  (We weren't before.)
      2e51cd52
  13. Apr 14, 2004
  14. Apr 13, 2004
  15. Apr 10, 2004
  16. Apr 09, 2004
    • emarsden's avatar
      · 3f2ba723
      emarsden authored
      Fix stupid mistake in the broadcast-stream ANSI-compliance changes.
      3f2ba723
  17. Apr 08, 2004
    • emarsden's avatar
      · cd5ddae9
      emarsden authored
      Revert to old behaviour for SERVE-EVENT and reentry of handler functions.
      Don't mask out file descriptors whose handlers are active from the set of
      descriptors that we check for activity.
      
      The possibility for reentry of handler functions is required by Hemlock's
      slave lisp mechansism, which uses SERVE-EVENT via the WIRE facility.
      cd5ddae9
  18. Apr 07, 2004
    • emarsden's avatar
      ANSI compliance fixes for CONCATENATED-STREAMS: · c7aa07e6
      emarsden authored
        - (read-char-no-hang (make-concatenated-stream) nil :eof) returns :eof
          instead of nil
      
      Another bug brought to you by pfdietz.
      c7aa07e6
    • emarsden's avatar
      · 3eeefd6b
      emarsden authored
      More ANSI-compliance BROADCAST-STREAM fixes:
      
        - FILE-LENGTH and FILE-POSITION return the value from the last component
          stream, or 0 if there are no component streams.
      
      Will require a similar change for FILE-STRING-LENGTH (and addition of a
      :file-string-length misc-op).
      3eeefd6b
    • rtoy's avatar
      afa6bbfb
  19. Apr 06, 2004
    • emarsden's avatar
      More ANSI compliance fixes: · 1d002ae1
      emarsden authored
        - (fresh-line (make-broadcast-stream)) returns nil instead of t
      
        - STREAM-ELEMENT-TYPE on broadcast-streams should return element-type of
          the last component stream (see CLtS "System Class BROADCAST-STREAM").
          Fix from SBCL.
      
        - WRITE-SEQUENCE handles bit-vectors
      1d002ae1
    • emarsden's avatar
      · 7862b94e
      emarsden authored
      Two unrelated fixes to ADJUST-ARRAY:
      
        - (adjust-array (make-array nil :initial-element 'zob) nil)
          was losing the :initial-element information
      
        - ADJUST-ARRAY was sometimes returning the same array despite
          ADJUSTABLE-ARRAY-P returning nil for that array (fix from SBCL)
      
      Fixes a number of AJUST-ARRAY.* tests in Paul Dietz's ANSI compliance
      suite.
      7862b94e
    • emarsden's avatar
      · cf98504f
      emarsden authored
        - fix WRITE-SEQUENCE for vectors (detected by pfdietz' ANSI compliance
          test suite)
      
          (write-sequence (vector #\a) (make-string-output-stream))
      
          used to fail with
      
          "Type-error in lisp::write-vector-out:  #\a is not of type base-char"
      
          because the WRITE-SEQUENCE code is erroneously assuming that all vectors
          of characters are of type string. There are probably more errors of this
          nature!
      
      
        - fix STREAM-ELEMENT-TYPE for broadcast streams: CLtS specifies that t
          should be returned if there are no component streams, but we used to return
          nil.
      cf98504f
    • emarsden's avatar
      · f01e1819
      emarsden authored
        - fix defaulting behaviour of :if-not-exist in OPEN when used with
          :direction :io. Corrects a number of the OPEN.IO.* ANSI compliance tests.
      f01e1819
  20. Apr 01, 2004
    • rtoy's avatar
      Helmut Eller notes on cmucl-imp on 2004-04-24 that · 70cf5703
      rtoy authored
        (delete-file (open "/tmp/tmp-file" :direction :output
                           :if-does-not-exist :create :if-exists :supersede))
      
      signals an error because delete-file is unlinking the file twice,
      because CLOSE is called with the option :ABORT T.
      
      Don't do that, so that any reversion of the file isn't done, and we
      file is deleted.
      70cf5703
    • rtoy's avatar
      From Helmut Eller: · 0519cdf6
      rtoy authored
      parse-compiled-debug-function-lambda-list fails for
      
        (di::debug-function-lambda-list
          (di::function-debug-function
            #'pcl::fix-early-generic-functions))
      
      because it tries to nconc the supplied-p var to a deleted keyword arg.
      0519cdf6
Loading