Skip to content
Snippets Groups Projects
  1. Jul 08, 2007
  2. Jul 07, 2007
  3. Jul 06, 2007
  4. Jun 27, 2007
  5. Jun 25, 2007
  6. Jun 12, 2007
  7. Jun 10, 2007
  8. May 30, 2007
    • rtoy's avatar
      This checkin adds some debugging code for the x86 heap corruption · f22fe508
      rtoy authored
      issue and also works around the heap corruption.  These are enabled if
      DEBUG_BAD_HEAP is #defined.
      
      gencgc.c:
      o Make print_ptr and verify_gc non-static so they can be used
        elsewhere.
      
      lisp.c:
      o Call verify_gc at startup (if enabled) so we can see the heap
        corruption.
      
      save.c:
      o Add debugging prints and stuff to see what's going on, if enabled.
      o The workaround is to skip over the call to
        update_dynamic_space_free_pointer in save().  See the comments there
        for more info.
      f22fe508
  9. May 02, 2007
  10. May 01, 2007
  11. Mar 28, 2007
  12. Jan 01, 2007
  13. Nov 30, 2006
  14. Nov 08, 2006
  15. Nov 07, 2006
  16. Nov 06, 2006
  17. Nov 03, 2006
    • rtoy's avatar
      assembly/ppc/assem-rtns.lisp: · 34434dfc
      rtoy authored
      assembly/ppc/support.lisp:
      compiler/ppc/call.lisp:
      o Remove old code using BA and BLA instructions.
      
      lisp/Config.ppc_darwin:
      o Don't run adjustlisp target
      o Don't compile darwin-lispadjuster.
      34434dfc
  18. Nov 02, 2006
    • rtoy's avatar
      This set of changes removes the constraint of the READ-ONLY space · 5568e737
      rtoy authored
      having to be in low memory.  This is done be replacing the absolute
      branch instructions with equivalents that can branch anywhere.  This
      adds a few extra instructions everywhere.  Oh well.
      
      We also move the READ-ONLY space to a different location so we don't
      need the linker hacks and the darwinadjuster hacks.
      
      A basic cross-compile is necessary.  Use boot-2006-11-1-cross-ppc.lisp
      for this.
      
      assembly/ppc/assem-rtns.lisp:
      compiler/ppc/call.lisp:
      o Replace BA instruction with BCTR.
      
      assembly/ppc/support.lisp:
      o Replace BLA instruction with BCTRL.
      o Replace BA instruction with BCTR.
      
      compiler/ppc/parms.lisp:
      lisp/ppc-validate.h:
      o Move the read-only space to #x04000000 instead of #x01000000.  (This
        address appears to be free.)
      
      lisp/Config.ppc_darwin:
      o Comment out the linker flags for the CMUCLRO space.
      o Don't run the darwin-lispadjuster program.  (We still build
        darwin-lispadjuster for now, but that should be removed eventually.)
      5568e737
  19. Oct 27, 2006
    • rtoy's avatar
      Oops. Change = to ==. · dada2e08
      rtoy authored
      Without this, hash tables were majorly broken because the hash vector
      was getting set to EQ_BASED_HASH_VALUE.
      dada2e08
  20. Aug 18, 2006
    • rtoy's avatar
      Aargh! Was filling the wrong entry in the hash_vector when freeing an · e902cf30
      rtoy authored
      entry.  Fix that.
      e902cf30
    • rtoy's avatar
      Oops. Forgot to define hash_vector. · e417b587
      rtoy authored
      e417b587
    • 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
  21. 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
Loading