Skip to content
Snippets Groups Projects
  1. Jul 07, 2007
  2. Jul 06, 2007
  3. Jun 27, 2007
  4. Jun 25, 2007
  5. Jun 12, 2007
  6. Jun 10, 2007
  7. 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
  8. May 02, 2007
  9. May 01, 2007
  10. Mar 28, 2007
  11. Jan 01, 2007
  12. Nov 30, 2006
  13. Nov 08, 2006
  14. Nov 07, 2006
  15. Nov 06, 2006
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. Aug 12, 2006
  22. Aug 11, 2006
  23. Aug 04, 2006
    • rtoy's avatar
      Add a new function scan_weak_objects() to can weak pointers and weak · c3b3da1f
      rtoy authored
      (key) hash tables.  Then use it in several places where we need to
      scan the weak objects before closing the region.
      
      This fixes all of the problems with weak pointers and weak hash tables
      reported by Lynn Quam, cmucl-imp, 2006/07/04.
      
      Not 100% sure the solution is all correct, but it seems to be
      working.
      c3b3da1f
  24. Jul 21, 2006
  25. Jul 20, 2006
    • 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
  26. Jul 19, 2006
Loading