Skip to content
Snippets Groups Projects
  1. 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
  2. May 02, 2007
  3. May 01, 2007
  4. Mar 28, 2007
  5. Jan 01, 2007
  6. Nov 30, 2006
  7. Nov 08, 2006
  8. Nov 07, 2006
  9. Nov 06, 2006
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. Aug 12, 2006
  16. Aug 11, 2006
  17. 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
  18. Jul 21, 2006
  19. 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
  20. Jul 19, 2006
    • rtoy's avatar
      Compile in e_rem_pio2.c and k_rem_pio2.c. · d809478b
      rtoy authored
      Someone running FreeBSD and NetBSD should verify this is correct.
      d809478b
    • rtoy's avatar
      Compile in k_rem_pio2.c. · 620f8582
      rtoy authored
      620f8582
    • rtoy's avatar
      Compile in k_rem_pio2.c. · f319bdd6
      rtoy authored
      f319bdd6
    • rtoy's avatar
      Add better trig arg reduction via Sun's fdlibm. · a1ccc294
      rtoy authored
      lisp/Config.ppc_darwin
      o Compile e_rem_pio2.c and k_rem_pio2.c
      
      code/irrat.lisp:
      o Update the arg reduction code to support ppc.  We call out to the C
        sin, cos, and tan functions, after the argument has been accurately
        reduced.
      a1ccc294
    • rtoy's avatar
      Add the trig argument reduction routines from Sun's fdlibm so we can · c63d920e
      rtoy authored
      accurately reduce the arg and therefore compute the value of trig
      functions accurately.
      
      lisp/Config.linux_gencgc:
      o Compile e_rem_pio2.c and k_rem_pio2.c
      
      code/irrat.lisp:
      o Disable %sin, %cos, %tan functions.
      o Implement %sin, %cos, and %tan to call the fdlibm routine
        __ieee754_rem_pio2 to do argument reduction before calling the sin,
        cos, tan vops.
      
      compiler/x86/float.lisp:
      o Disable the vops for %sin, %cos, and %tan, so the Lisp code in
        irrat.lisp is used.
      c63d920e
    • rtoy's avatar
      Initial import. · 58589c23
      rtoy authored
      58589c23
  21. Jul 18, 2006
  22. Jul 17, 2006
  23. Jul 14, 2006
  24. Jul 12, 2006
    • rtoy's avatar
      The subtype_Names array had one extra slot, so that · 8932f44e
      rtoy authored
      closure_function_header and the following entries were not correct.
      
      Also, rename unused function header 1 and 2 to be "byte code function"
      and "byte code closure", respectively, since that's what internals.h
      says.
      
      We really need to generate this list during genesis or something
      instead of having to do this by hand!
      8932f44e
  25. Jun 30, 2006
  26. May 30, 2006
  27. Mar 17, 2006
    • rtoy's avatar
      lisp/Linux-os.c: · 7575e738
      rtoy authored
      o Add function get_h_errno to extract h_errno.
      
      code/internet.lisp:
      o On Linux, call the get_h_errno function to get h_errno instead of
        calling __h_errno_location ourselves since that's not part of the
        public API.
      7575e738
  28. Feb 25, 2006
  29. Feb 19, 2006
Loading