Skip to content
Snippets Groups Projects
  1. Dec 15, 2009
  2. Dec 11, 2009
  3. Dec 07, 2009
  4. 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
  5. 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
  6. Dec 01, 2009
  7. 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
  8. Nov 21, 2009
  9. Nov 02, 2009
    • rtoy's avatar
      Revert previous changes. They were supposed to go on · d01310f2
      rtoy authored
      amd64-dd-branch.
      d01310f2
    • rtoy's avatar
      This large checkin brings the amd64 port up-to-date with the current · 2bafb654
      rtoy authored
      sources.  No real attempt has been made to make it work, but the
      cross-compile does create a kernel.core, and the C code compiles (on
      openSuSE 10.3).  The resulting kernel.core does not yet work.
      
      Use cross-x86-amd64.lisp as the cross-compile script.  This is
      intended to be cross-compiled using the 20a release for Linux, and
      only supports x87.  The sse2 support has not be ported yet.
      
      tools/cross-scripts/cross-x86-amd64.lisp:
      o Update cross-compile with some missing constants, and frob new
        symbols.
      
      tools/clean-target.sh:
      o Remove amd64f files too.
      
      code/pred.lisp:
      o Define predicates for double-doubles for bootstrapping to work
        around recursive known function problems with these predicates.
      
      code/sap.lisp:
      o Define int-sap with (unsigned-byte 64) type declaration.  (May not
        be needed?)
      
      code/unix-glibc2.lisp:
      o Build fails defining map_failed to (int-sap -1).  Just hard-wire to
        0 for now so we can build.
      
      compiler/float-tran.lisp:
      o Add missing conditional for %complex-double-double-float.
      
      compiler/amd64/float.lisp:
      o Merge double-double support for amd64.  Not really tested yet.
      
      compiler/amd64/parms.lisp:
      o Update to match x86 build.  In particular, get the space address
        correct and update the static symbols.
      
      compiler/amd64/type-vops.lisp:
      o DYLAN-FUNCTION-HEADER-TYPE no longer exists.
      
      compiler/amd64/vm.lisp:
      o Add double-double storage classes and register definitions.
      
      lisp/Config.amd64:
      o Bring in line with Config.x86 and friends.
      
      lisp/Linux-os.c:
      o Bring amd64 code up-to-date with x86/linux code.
      
      lisp/Linux-os.h
      o Need to include sys/ucontext.h to get ucontext defined.  (Why?)
      o Also define __USE_GNU so we get the register offsets in the ucontext
        defined.  (Why?)
      
      lisp/amd64-arch.c:
      o Change struct sigcontext to os_context_t.
      o Use SC_PC instead of context->sc_pc.
      o Merge some changes in from x86 version, like SC_EFLAGS.  May need
        more work.
      
      lisp/amd64-assem.s:
      o Use rbx instead of ebx for jmp.
      
      lisp/amd64-lispregs.h:
      o Define SC_REG, SC_PC, SC_SP using the new x86 style.
      
      lisp/backtrace.c:
      o Remove inline assembly for now until I figure out what the amd64
        version should be.
      
      lisp/gencgc.c:
      o Conditionalize out weak hash table support for now.
      
      lisp/gencgc.h:
      o Set PAGE_SIZE for amd64.  (Is 4096 right?)
      
      lisp/globals.h:
      o Export current_dynamic_space_free_pointer and
        current_auto_gc_trigger like for x86.
      2bafb654
  10. Oct 18, 2009
    • rtoy's avatar
      Merge changes from unicode-string-buffer-impl-branch which gives · 392d3e59
      rtoy authored
      faster reads on external-formats.  This is done by adding an
      additional buffer to streams so we can convert the entire in-buffer
      into characters all at once.
      
      To build this change, you need to do a cross-compile using
      boot-2009-10-1-cross.lisp.  Using that build, do a normal build with
      these sources.
      
      For a non-unicode build use boot-2009-10-01.lisp with a 20a
      non-unicode build.
      
      code/extfmts.lisp:
      o Add another slot to the extfmts for copying the state.
      o Modify EF-OCTETS-TO-STRING and OCTETS-TO-STRING to support the
        necesssary changes for fast formats.  This is incompatible with the
        previous version because the string is not grown if needed.
      
      code/fd-stream-extfmt.lisp:
      o Set *enable-stream-buffer-p* to T so we have fast streams.
      
      code/fd-stream.lisp:
      o Add new slots to support fast strams.
      o In SET-ROUTINES, initialize the new slots appropriately.
      o Update UNREAD-CHAR to be able to back up in the string buffer to
        unread.
      o Add implementation to copy the state of an external format.
      
      code/stream.lisp:
      o Change %SET-FD-STREAM-EXTERNAL-FORMAT to be able to change formats
        even if we've already converted the buffer with a different format.
        We reconvert the buffer with the old format until we reach the
        current character.  Then the remaining octets are converted using
        the new format and stored in the string buffer.
      o Add FAST-READ-CHAR-STRING-REFILL to refill the string buffer, like
        FAST-READ-CHAR-REFILL does for the octet in-buffer.
      
      code/struct.lisp:
      o Add new slots to hold the string buffer, the current index, and
        length.  These are needed for the fast formats.
      
      code/sysmacs.lisp:
      o Update PREPARE-FOR-FAST-READ-CHAR, DONE-WITH-FAST-READ-CHAR, and
        FAST-READ-CHAR to support the string buffer.
      
      code/string.lisp:
      o Microoptimization of SURROGATEP to reduce the number of branchs.
      
      general-info/release-20b.txt:
      o Update with these changes
      
      pcl/simple-streams/external-formats/utf-16-be.lisp:
      pcl/simple-streams/external-formats/utf-16-le.lisp:
      pcl/simple-streams/external-formats/utf-16.lisp:
      o These formats actually have state, so update them to take a handle
        an initial state.  These are needed if the string buffer ends with a
        leading surrogate and the next string buffer starts with a trailing
        surrogate.  The conversion needs to combine the surrogates together.
      392d3e59
  11. Oct 15, 2009
  12. Oct 14, 2009
    • agoncharov's avatar
      · 173e967f
      agoncharov authored
      As suggested by Madhu <madhu@cs.unm.edu>, removed the ext:getenv
      function that I had introduced a few days ago.  Instead, four foreign
      function definitions are introduced, following Madhu's proposal.
      
      The four functions:
      
         unix-getenv unix-setenv unix-putenv unix-unsetenv
      
      are defined both in unix.lisp and unix-glibc2.lisp.
      173e967f
  13. Oct 11, 2009
  14. Oct 10, 2009
  15. Oct 02, 2009
  16. Sep 19, 2009
  17. Sep 17, 2009
  18. Sep 15, 2009
  19. Sep 11, 2009
    • rtoy's avatar
      tools/build-unidata.lisp: · bf4b37ac
      rtoy authored
      o Add support for word break properties.
      o Some cleanup of the code including moving the common code in
        write-ntrie* to write-ntrie.
      
      code/unidata.lisp:
      o Add support for word break properties.
      o UNICODE-WORD-BREAK-CODE and UNICODE-WORD-BREAK return the property
        code and the property keyword for a codepoint, respectively.
      
      i18n/WordBreakProperty.txt:
      o New file for the word break properties.
      bf4b37ac
  20. Sep 09, 2009
  21. Aug 26, 2009
    • rtoy's avatar
      Add support for flushing out any state in an external format when · 1325c62e
      rtoy authored
      closing an output stream.  This causes things like
      
      (with-open-file (s "foo" :direction :output :external-format :utf-8)
        (write-char #\u+d800 s))
      
      to output the replacement character instead of creating an empty file.
      
      code/extfmts.lisp:
      o Add new slot to efx structure to hold the function to flush the
        state in an external format.
      o Add accessor for the flush-state slot.
      o Update DEFINE-EXTERNAL-FORMAT to allow specifying the flush
        function.
      o Add macro to call the flush-state function.
      o Added +EF-FLUSH+
      o Use vm::defenum to name the constants instead of the hand-written
        values.
      o Export +REPLACEMENT-CHARACTER-CODE+
      o Document the slots in an efx stucture.
      
      code/fd-stream.lisp:
      o Add ef-flush def-ef-macro to flush the state of an external format
        when closing an output file.  If ef-flush-state is NIL, we just call
        EF-COUT to send out the replacement character.  Otherwise, the
        flush-state function is called to handle it.
      o When closing an output character stream, call ef-flush to flush any
        state before flushing the buffers of the stream.
      o Document the unicode slots in an fd-stream.
      
      code/exports.lisp:
      o Export +REPLACEMENT-CHARACTER-CODE+
      1325c62e
    • rtoy's avatar
  22. Aug 19, 2009
  23. Aug 18, 2009
    • rtoy's avatar
      Add contrib directory to extra tarball. These were always part of the · e5bef4bf
      rtoy authored
      CMUCL source tree, but were never delivered in a distribution.
      
      code/module.lisp:
      o Define module "cmu-contribs" that loads defmodule definitions for
        the contrib code.
      
      code/save.lisp:
      o Add "library:contrib/" to the modules search-list so we can find the
        installed contribs.
      
      tools/make-extra-dist.sh:
      o Install all contrib files
      
      contrib/contrib.lisp:
      o New file that defines modules for the contrib packages.
      e5bef4bf
  24. Aug 17, 2009
  25. Aug 14, 2009
  26. Aug 13, 2009
    • rtoy's avatar
      Fix a couple of issues with · e48f9c3d
      rtoy authored
      (merge-pathnames (make-pathname
      		  :directory '(:relative :back :back
      			       :back :back :back :back))
      		 (pathname "./tmp/junk/core"))
      
      First, MERGE-DIRECTORIES would back up too far and remove :ABSOLUTE.
      Don't do that.
      
      Second, after fixing MERGE-DIRECTORIES, the resulting pathname
      directory is '(:ABSOLUTE :BACK :BACK ...) which is illegal.  Call
      MAKE-PATHNAME instead of %MAKE-PATHNAME-OBJECT so we check for illegal
      pathnames.
      e48f9c3d
    • rtoy's avatar
      Illegal surrogate sequences (leading surrogate without trailing · 8f0dc98a
      rtoy authored
      surrogate or a lone trailing surrogate) get replaced with the
      replacement character.
      8f0dc98a
  27. Aug 12, 2009
  28. Aug 11, 2009
    • rtoy's avatar
      Some symbol cleanups. · 36b8abb9
      rtoy authored
      code/exports.lisp:
      o Import STREAM:SET-SYSTEM-EXTERNAL-FORMAT into the EXT package.
      o Define and export %sin-quick, %cos-quick, and %tan-quick only for
        x87 builds.
      
      compiler/float-tran.lisp:
      o Only apply defknowns and deftransforms for %sin-quick, %cos-quick,
        and %tan-quick for x87 builds.
      36b8abb9
    • rtoy's avatar
      o Put some comments back in. · f81b5350
      rtoy authored
      o Put back some unicode/unicode-bootstrap conditionals.
      f81b5350
  29. Aug 10, 2009
Loading