Skip to content
Snippets Groups Projects
  1. Jan 28, 2010
  2. 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
  3. 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
  4. Dec 01, 2009
  5. 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
  6. Sep 09, 2009
  7. Jun 11, 2009
  8. Jun 20, 2007
  9. Jan 13, 2007
  10. Jan 11, 2007
  11. Jun 30, 2006
  12. Apr 13, 2005
  13. Apr 06, 2004
    • emarsden's avatar
      · 7862b94e
      emarsden authored
      Two unrelated fixes to ADJUST-ARRAY:
      
        - (adjust-array (make-array nil :initial-element 'zob) nil)
          was losing the :initial-element information
      
        - ADJUST-ARRAY was sometimes returning the same array despite
          ADJUSTABLE-ARRAY-P returning nil for that array (fix from SBCL)
      
      Fixes a number of AJUST-ARRAY.* tests in Paul Dietz's ANSI compliance
      suite.
      7862b94e
  14. Jul 23, 2003
  15. Jul 15, 2003
  16. May 05, 2003
  17. Feb 24, 2003
  18. Jul 10, 2002
    • toy's avatar
      From Eric Marsden: · 6e9a215f
      toy authored
       * (pcl:class-precedence-list (find-class 'null)) should have symbol
         occurring before list, as per CLHS.
      
       * minor changes to certain error conditions: eg trying to set
         DEFAULT-DIRECTORY to a non-existent directory should raise a
         condition of type FILE-ERROR. (Some of these changes are from
         Alexey Dejneka, via SBCL).
      
       * cleanup of some Hemlock-related symbols that shouldn't be exported
         when :no-hemlock is defined.
      6e9a215f
  19. Nov 21, 2001
    • pmai's avatar
      o When created displaced arrays, MAKE-ARRAY (unlike ADJUST-ARRAY) · 26e7aeea
      pmai authored
        didn't check whether the specified element-type was a subtype of the
        array-element-type of the displaced-to array.
      o One case in ADJUST-ARRAY didn't check for an array-header before
        calling %array-displaced-p on an array, so that sometimes an array
        element was accessed and checked instead.  Fixed this, and prevented
        ADJUST-ARRAY from shrinking non-adjustable arrays in-place, since
        this can violate naive user expectations for little gain.
      26e7aeea
  20. May 13, 2000
  21. May 12, 2000
  22. Jul 24, 1998
  23. Jul 14, 1998
    • pw's avatar
      This revision merges in many of the fixes for ANSI condition types · 42efe00d
      pw authored
      in various calls to ERROR. Those easily handled by using new condition
      types simple-file-error and simple-program-error are included.
      
      The only functional change here is that the function CHARACTER no longer
      accepts an integer argument so as to be ANSI compliant. This may
      break some code.
      42efe00d
  24. Mar 21, 1998
  25. Dec 18, 1997
  26. Nov 01, 1997
    • dtc's avatar
      Improved support for (complex single-float) and (complex double-float) · 4c3b1bb6
      dtc authored
      types. Adds storage classes to the backend for these so they can be
      stored in registers or on the stack without consing; new primitive
      types etc. Also adds (simple-array (complex {single,double}-float))
      array types to avoid consing and speed vectors operations.  All
      these changes are conditional on the :complex-float feature. More work
      is needed to exploit these changes: improving the type dispatch in the
      various function; maybe compiler transforms or more VOPs to handle
      common functions inline.
      4c3b1bb6
  27. Apr 01, 1997
    • dtc's avatar
      Support for some specialised signed array types: (signed-byte 8), · d5d4504f
      dtc authored
      (signed-byte 16), (signed-byte 30), (signed-byte 32).  These patches
      include the general support and the x86 backend support; more to
      follow. The important changes are conditional on the :signed-array
      feature so shouldn't affect the source without this feature. This work
      has been driven by Raymond Toy.
      d5d4504f
  28. Feb 23, 1997
  29. Feb 22, 1997
  30. Oct 31, 1994
  31. Sep 29, 1994
  32. Feb 11, 1994
  33. Aug 06, 1993
  34. Jan 13, 1993
  35. Dec 10, 1992
  36. Mar 24, 1992
  37. Dec 02, 1991
  38. Nov 09, 1991
  39. Jun 05, 1991
Loading