Skip to content
Snippets Groups Projects
  1. Jan 30, 2010
  2. Jan 28, 2010
  3. Jan 26, 2010
  4. Jan 25, 2010
  5. Jan 23, 2010
  6. Jan 22, 2010
  7. Dec 30, 2009
  8. Dec 22, 2009
  9. Dec 21, 2009
  10. Dec 18, 2009
  11. Dec 17, 2009
    • rtoy's avatar
      o Add linux support in other_space_p. · f0626999
      rtoy authored
      o Remove check for object < 0xf0000000 in scavenge.
      f0626999
    • rtoy's avatar
      code/unix.lisp: · e70c9348
      rtoy authored
      o Add UNIX-GETRLIMIT and appropriate constants (for solaris and
        darwin/x86)
      
      code/exports.lisp:
      o Export them.
      e70c9348
    • rtoy's avatar
      o Add another function to check for other places that can't be malloc · b7271901
      rtoy authored
        areas.  For sparc, this means anything below the end of the text
        section (to capture undefined_tramp and closure_tramp and some weird
        pointer object in the middle of call_into_c).  For darwin/x86, we
        ignore 0xffffffe9.  Needs to be checked on other OSes and
        architectures.
      o Move the switch statement of allowed static arrays into its own
        function.
      b7271901
  12. Dec 15, 2009
  13. Dec 11, 2009
  14. Dec 07, 2009
  15. Dec 06, 2009
    • rtoy's avatar
      o Have MAKE-STATIC-VECTOR push the weak pointer onto *STATIC-VECTORS* · 2ce6b09f
      rtoy authored
        instead of spreading it everywhere.
      o Add WITHOUT-GCING in MAKE-STATIC-VECTOR to make sure nothing moves.
        (Not sure this is necessary.)
      o Do the same in FREE-STATIC-VECTOR
      o Add WITHOUT-INTERRUPTS in FINALIZE-STATIC-VECTORS to make sure clear
        the weak pointer value and actually free the vector.
      2ce6b09f
  16. Dec 05, 2009
    • rtoy's avatar
      First cut at GCing static vectors, including static simple-arrays. · 45380dbb
      rtoy authored
      This is done by a simple mark-and-sweep GC of the static vectors.
      When scavenging the spaces, we mark any static vectors by setting the
      MSB of the header word.  After GC is done, an *after-gc-hooks*
      function finds all of the static vectors that are not marked and frees
      them.  For marked static vectors, we clear the mark bit.
      
      code/array.lisp:
      o Add *STATIC-VECTORS* to keep track of all static vectors that have
        been allocated.
      o Update MAKE-ARRAY
        - to allow generation of static simple unboxed arrays (1D arrays
          without an array header).
        - Push a weak pointer to the static vector onto *STATIC-VECTORS*
      o Add function FREE-STATIC-VECTOR
      o Add function FINALIZE-STATIC-VECTORS to free static vectors when
        they are no longer referenced.
      
      lisp/gencgc.c:
      o Update scavenge to check for static vectors.  If we find a static
        vector, mark the static vector by setting the MSB of the header
        word.
      45380dbb
  17. Dec 01, 2009
  18. Nov 30, 2009
    • rtoy's avatar
      Expand the docstring from MAKE-ARRAY. · d78414b9
      rtoy authored
      d78414b9
    • rtoy's avatar
      Add support for static arrays that are not moved by GC. This is based · 7badf899
      rtoy authored
      on an idea from Carl and Lynn Quam's foreign vector code that he sent
      many years ago.  The static arrays will be GCed if nothing references
      them.
      
      The static arrays are currently limited to strings, 8, 16, and 32-bit
      integers (signed and unsigned), single and double floats, and complex
      single and double floats.  Static arrays are not adjustable because
      adjusting an array can change the address if the array grows.  (Ok
      if the array shrinks, but not implemented.)
      
      To indicate a static array, the data portion of the vector header word
      is set to 1.  It is normally 0 for all other Lisp vectors.
      
      code/array.lisp:
      o Add :ALLOCATION keyword arg to MAKE-ARRAY to allow allocation of
        static vectors.  Do the appropriate thing for static arrays.
      o Add MAKE-STATIC-VECTOR.  This is Lynn's foreign vector stuff
        rewritten in Lisp instead of the original mix of Lisp and C.
      o Add STATIC-ARRAY-P to tell if an array is static or not.
      o Signal errors in MAKE-ARRAY and ADJUST-ARRAY for invalid options
        with static arrays.
      
      code/describe.lisp:
      o Indicate if the array is static.
      
      compiler/fndb.lisp:
      o Tell compiler about new keyword argument, :allocation, for
        MAKE-ARRAY.
      7badf899
  19. Nov 25, 2009
  20. Nov 21, 2009
  21. Nov 20, 2009
  22. Nov 10, 2009
  23. Nov 04, 2009
  24. Nov 02, 2009
Loading