Skip to content
Snippets Groups Projects
  1. Jan 13, 2007
  2. Jan 11, 2007
  3. Dec 22, 2006
    • rtoy's avatar
      Fix issue reported by Albert Reiner, cmucl-help, 2006/10/20, and fix · 7b9a9f98
      rtoy authored
      another issue with uninitialized &aux variables.
      
        (defstruct (foobar
                     (:constructor make-foobar
                                   (xxx
                                    &key (aaa nil) (bbb nil)
                                    &aux
                                    (foobar-data xxx)
                                    (aaa (or aaa
                                             (getf foobar-data :aaa)
                                             1))
                                    (bbb (or bbb
                                             (getf foobar-data :bbb)
                                             (1+ aaa))))))
          (aaa (required-argument) :type fixnum)
          (bbb (required-argument) :type fixnum))
      
        (make-foobar nil) -> #<foobar :aaa 1 :bbb 2>
      
      But CMUCL gives type errors.
      
      To fix Albert's issue, modify CREATE-BOA-CONSTRUCTOR to keep track of
      the &aux vars separately from the other arglist vars.  Adjust
      CREATE-VECTOR-CONSTRUCTOR, CREATE-LIST-CONSTRUCTOR,
      CREATE-STRUCTURE-CONSTRUCTOR, and CREATE-FIN-CONSTRUCTOR to take an
      extra arg for the &aux vars.  For CREATE-STRUCTURE-CONSTRUCTOR, we
      only put declarations for the other arglist vars.  To make sure we
      store the right kinds of objects into the slots, we also wrap (the
      <type> init) for each initial value.
      
      Also CLHS 3.4.6 has an example of a boa constructor using an aux
      variable without an initializer.  CMUCL was not handling that right.
      Modify CREATE-BOA-CONSTRUCTOR to change the initializer to use (or
      <aux> slot-default-value) to get the correct default value into the
      slot if the aux variable doesn't.
      7b9a9f98
  4. Dec 19, 2006
    • cshapiro's avatar
      When attempting to macro expand a symbol that denotes a local · d2dcf0fa
      cshapiro authored
      definition, if the symbol is symbol macro, return the expansion.
      Otherwise, if the symbol is a local definition but not a symbol macro,
      return the symbol and report no expansion.  Previously, the otherwise
      case was not handled and macroexpand-1 fell through in error to test
      forms for global cases.  Among other things, this caused the expansion
      of global symbol macros shadowed by lexical variable bindings.
      d2dcf0fa
  5. Dec 02, 2006
    • rtoy's avatar
      code/float-trap.lisp: · 896812b8
      rtoy authored
      o Need to clear out the individual invalid operation bits when
        clearing the invalid exception bit.
      
      code/exports.lisp:
      compiler/ppc/parms.lisp:
      o Export FLOAT-INVALID-OP-1-BYTE.  (Needs a better name.)
      896812b8
  6. Nov 16, 2006
    • rtoy's avatar
      code/float-trap.lisp: · 6f968a58
      rtoy authored
      o Pass the modes to GET-FP-OPERANDS
      
      compiler/ppc/float.lisp:
      o If the destination register is the same as one of the source
        registers, an overflow or underflow exception will have replaced the
        source register with the result.  In that case, replace the source
        value with NIL to indicate we don't know.  (We could recompute the
        source from the result, but there would be a round-off error.)
      6f968a58
  7. Nov 14, 2006
  8. Nov 08, 2006
  9. Oct 02, 2006
    • rtoy's avatar
      code/ntrace.lisp: · b2391606
      rtoy authored
      o Add a new :WHEREIN-ONLY option for trace, which is like :WHEREIN,
        but only if the immediate caller is one of the listed functions
        instead of anywhere in the backtrace.
      
      general-info/release-19d.txt:
      o Update for :WHEREIN-ONLY
      b2391606
  10. Aug 21, 2006
    • rtoy's avatar
      Some very basic support for signed zeroes for DOUBLE-DOUBLE-FLOAT. We · e14ba2a5
      rtoy authored
      can now read and print -0w0.
      
      code/float.lisp:
      o Adjust float-sign so that we get the correct sign when
        double-double-floats are used.
      o Adjust FLOAT-RATIO to call %MAKE-DOUBLE-DOUBLE-FLOAT so that we
        preserve the sign of the number.  This is safe because the
        components are known to be properly scaled.
      
      compiler/float-tran.lisp:
      o Use %MAKE-DOUBLE-DOUBLE-FLOAT in %DOUBLE-DOUBLE-FLOAT to preserve
        the sign of the original float.  This is safe because the
        components are known to be properly scaled.
      o Add a FLOAT-SIGN deftransform to handle DOUBLE-DOUBLE-FLOAT.
      e14ba2a5
    • rtoy's avatar
      Print out what kind of weak hash table we have. · ff65e1c0
      rtoy authored
      ff65e1c0
    • rtoy's avatar
      Add BASE-CHAR and CHARACTER to · 8bfbe53c
      rtoy authored
      *READ-INTO-SIMPLE-ARRAY-RECOGNIZED-TYPES* so that READ-VECTOR can read
      binary data from streams of those types.  Fixes Trace ticket 7.
      8bfbe53c
  11. Aug 18, 2006
    • rtoy's avatar
      code/hash-new.lisp: · eff841d2
      rtoy authored
      o Replace the magic value #x80000000 with +eq-based-hash-value+.
      
      lisp/gencgc.c:
      o Replace the magic value 0x80000000 with EQ_BASED_HASH_VALUE.
      o When freeing the hash entry, we forgot to reset the hash-vector
        entry to EQ_BASED_HASH_VALUE.
      eff841d2
    • rtoy's avatar
      Add support for weak value, key-and-value, and key-or-value hash · e206ca4a
      rtoy authored
      tables.  Use boot-2006-08-1-cross to cross-compile.  During worldload,
      you'll get a restart.  Choose the CLOBBER-IT restart.
      
      bootfiles/19c/boot-2006-08-1-cross.lisp:
      o Cross-compile script to mark that a cross-compile is needed.
        Nothing fancy, just load up the example scripts.
      
      code/hash-new.lisp:
      o Update the allowed values for the weak-p slot of a hash table.
      o Change hash table printer to print out the test and weak style.
      o Update MAKE-HASH-TABLE to allow other values for :weak-p keyword arg
        and set the weak-p slot appropriately.
      o Produce an error if a weak key, key-and-value, or key-or-value table
        is created but the test is not EQ or EQL.
      
      compiler/ppc/parms.lisp:
      compiler/sparc/parms.lisp:
      o Add :KEY, :VALUE, :KEY-AND-VALUE, and :KEY-OR-VALUE symbols to the
        static symbols because C code needs them.
      
      lisp/gencgc.c:
      o Add necessary support to handle the new hash types.
      e206ca4a
  12. Aug 16, 2006
    • rtoy's avatar
      code/hash-new.lisp: · 12d78e25
      rtoy authored
      o Add a new slot to the hash-table structure for GC to use for linking
        weak tables together.  (Previously we used the weak-p slot for
        this.  Let's make it explicit, now.  Plus, this allows us to use
        weak-p to indicate other types of weak tables, should they be
        implemented.)
      
      lisp/gencgc.c:
      o Update defstruct appropriately.
      o Use the new next-weak-table slot to chain the weak tables together.
      o Previously we scanned the weak tables in several places in the
        code.  However, this scanning also removed entries.  I don't think
        we want that because later scans could make a key valid.  Thus:
      
        - Change scav_hash_entries so that it doesn't remove a hash-table
          entry unless told to.
        - Add new function to scavenge weak tables without removing a weak
          entry.
        - Adjust scan_weak_tables to remove weak entries.
      
      NOTE:  When building, you'll be asked twice about the hash-table
      structure changing size.  Just select the CLOBBER-IT restart in both
      cases.
      12d78e25
  13. Aug 14, 2006
  14. Aug 11, 2006
    • rtoy's avatar
      Instead of using :empty to denote empty hash entries, use · 11b2eb73
      rtoy authored
      'lisp::empty-hash-entry instead.
      
      Not the best solution, since the user can still access this symbol,
      but being an implementation-specific, non-exported symbol, this seems
      acceptable.
      
      Should try to use the unbound marker instead.
      11b2eb73
  15. Jul 21, 2006
  16. Jul 20, 2006
    • rtoy's avatar
      Include whether a hash-table is weak or not when describing a · 6d768c15
      rtoy authored
      hash-table.
      6d768c15
    • rtoy's avatar
      Port sbcl's changes to room to handle gencgc allocation better. · 05747b21
      rtoy authored
      lisp/gencgc.c:
      o Make last_free_page non-static so Lisp can see it.
      o Add get_page_table_info so Lisp can easily get at the flags and
        bytes_used slots of a page table entry.
      
      code/room.lisp:
      o Add gencgc-page-size constant.
      o Fix SPACE-BOUNDS for sparc and ppc with gencgc.  The
        dynamic-space-free-pointer is something different, and we really
        wanted the last_free_page.
      o Update MAP-ALLOCATED-OBJECTS to handle gencgc (from sbcl).
        Unallocated pages are skipped, as well as anything at the end of a
        page that is not in use.
      05747b21
  17. Jul 19, 2006
  18. Jul 18, 2006
  19. Jul 13, 2006
  20. Jul 07, 2006
  21. Jul 05, 2006
    • rtoy's avatar
      Fix bug about LISP::SOCKET-ERROR not being a valid class. From Craig · 1b8f6914
      rtoy authored
      Brent Ludington, cmucl-help, 2006-06-21.
      
      bootfiles/19c/boot-2006-06-3.lisp:
      o Bootstrap file to remove LISP::SOCKET-ERROR in favor of
        EXT:SOCKET-ERROR.  (Not really needed, if you just answer the
        restarts in the obvious way.)
      
      code/exports.lisp:
      o Export EXT:SOCKET-ERROR.  The LISP package already uses the EXT
        package, so we're set.
      1b8f6914
  22. Jul 01, 2006
  23. Jun 30, 2006
  24. May 15, 2006
  25. May 11, 2006
  26. May 03, 2006
Loading