Skip to content
Snippets Groups Projects
  1. Feb 19, 2018
    • Raymond Toy's avatar
      Complex array accessors are not foldable · e9a598e5
      Raymond Toy authored
      Fixes #61 and #62.
      
      The `ARRAY-HAS-FILL-POINTER-P` and `ARRAY-DISPLACEMENT` functions are
      declared inline and the compiler tries to constant-fold these inlined
      functions operating on simple arrays.
      
      Thus don't allow the compiler to constant-fold calls to
      `%ARRAY-FILL-POINTER-P`.  This is normally protected by a call to
      `ARRAY-HEADER-P`, but when it's inlined, the compiler tries to
      constant-fold `%ARRAY-FILL-POINTER-P` on an array without such a slot.
      
      Likewise `ARRAY-DISPLACEMENT` calls `%ARRAY-DISPLACED-P`,
      `%ARRAY-DATA-VECTOR`, and `%ARRAY-DISPLACEMENT`, and the calls are
      protected by `ARRAY-HEADER-P`. So don't constant-fold these either.
      
      Maybe we could also make CONSTANT-FOLD-CALL be smarter about this?
      
      * src/compiler/generic/objdef.lisp
        * Remove flushable from these ref-trans methods.
      * src/general-info/release-21d.md
        * Update
      * tests/issues.lisp
        * Add tests from the bug reports.
      e9a598e5
  2. May 15, 2013
    • Raymond Toy's avatar
      Wrap exports in eval-when. · ba06f21f
      Raymond Toy authored
       src/compiler/generic/objdef.lisp::
       src/compiler/generic/utils.lisp:;
       src/compiler/generic/vm-macs.lisp::
       src/compiler/sparc/c-callback.lisp::
       src/compiler/sparc/parms.lisp::
      
        When export lost its compile-time effects and became a normal
        function, the exports in many files no longer took affect while
        compiling the file.  This change makes the compile-time effects
        happen as before in selected files. With this change, the sparc port
        can be cross-compiled from x86 again.
      
       src/tools/cross-scripts/cross-x86-sparc.lisp::
        Need to frob CHAR-BYTES, which is needed by BYTE-BASH-COPY. .
      ba06f21f
  3. Nov 04, 2011
  4. Sep 25, 2011
  5. Apr 19, 2010
  6. Mar 19, 2010
  7. Feb 06, 2008
  8. Jun 30, 2006
  9. Apr 08, 2005
  10. Sep 08, 2004
  11. Jul 25, 2004
    • pmai's avatar
      Commit of the compiler backend portion of the PPC/Darwin port. · cd45202a
      pmai authored
      This includes various fixes from SBCL and other sources to the PPC backend.
      It also does away with Gary Byers' renumbering of the type tags for
      function and instance pointers, which allowed for a slightly clever and
      presumably faster function calling convention.  These changes have been
      conditionalized out with the PPC-FUN-HACK conditional, so that we might
      revisit the changes in the future.  The current port has only been tested
      without PPC-FUN-HACK, but this might change.
      cd45202a
  12. May 24, 2004
  13. May 18, 2004
  14. May 17, 2004
  15. May 15, 2004
  16. May 14, 2004
    • rtoy's avatar
      Add support for storing the symbol hash into a slot in the symbol · 4d7bf80f
      rtoy authored
      itself.  Only for sparc currently.
      
      Doesn't lazily compute the symbol hash yet.  Simple test shows a 5%
      increase in compilation speed, despite making make-symbol
      significantly slower.
      
      
      	* src/code/hash-new.lisp (internal-sxhash): Use the symbol-hash
      	slot instead of computing the hash value.
      
      	* src/compiler/generic/new-genesis.lisp (allocate-symbol): Write
      	out the sxhash value of the symbol into the symbol-hash slot.
      
      	* src/compiler/globaldb.lisp (info-hash): Update to use the symbol
      	hash instead of computing the sxhash.
      
      	* src/code/symbol.lisp (make-symbol): Compute the symbol hash when
      	creating the symbol.
      
      	* src/compiler/sparc/cell.lisp ((symbol-hash)): Add vop to extract
      	out the symbol hash from a symbol.
      
      	* src/compiler/generic/objdef.lisp: Rename the unused slot to
      	hash, so we can make it the symbol hash.
      4d7bf80f
  17. May 11, 2004
    • rtoy's avatar
      From Lynn Quam: · 836299e0
      rtoy authored
      	adds the mark_bit slot to weak-pointers and eliminates the
      	n-squared performance problem with scav_weak_pointer.
      836299e0
  18. Jun 18, 2003
    • gerd's avatar
      Add (SETF WEAK-POINTER-VALUE). From Paul Foley on cmucl-imp, · 72adccb1
      gerd authored
      	2003-06-17.
      
      	* src/compiler/generic/objdef.lisp (weak-pointer): Add
      	setters for value and broken.
      	* src/code/weak.lisp (setf weak-pointer-value)
      	(c::%set-weak-pointer-value, c::%set-weak-pointer-value):
      	New functions.
      72adccb1
    • gerd's avatar
      Remove package nicknames USER from COMMON-LISP-USER. Add a new · b4f2c7c7
      gerd authored
      	package COMMON-LISP which LISP uses, so that COMMON-LISP no longer
      	has the non-ANSI nickname LISP.
      
      	To bootstrap, use boot13.lisp as target:bootstrap.lisp with pmai's
      	build scripts, and do a full compile.
      
      	* src/bootfiles/18e/boot13.lisp: Change for all the package
      	changes.
      
      	* src/code/exports.lisp: New package common-lisp,
      	which lisp uses.
      
      	* src/tools/worldload.lisp:
      	* src/tools/setup.lisp: Use cl-user instead of user.
      	Use lisp:: instead of cl::.
      
      	* src/tools/worldcom.lisp:
      	* src/tools/snapshot-update.lisp:
      	* src/tools/pclcom.lisp:
      	* src/tools/mk-lisp:
      	* src/tools/hemcom.lisp:
      	* src/tools/config.lisp:
      	* src/tools/comcom.lisp:
      	* src/tools/clxcom.lisp:
      	* src/tools/clmcom.lisp:
      	* src/pcl/defsys.lisp:
      	* src/motif/lisp/initial.lisp:
      	* src/interface/initial.lisp:
      	* src/hemlock/lispmode.lisp (setup-lisp-mode):
      	Use cl-user instead of user.
      
      	* src/code/save.lisp (assert-user-package):
      	* src/code/print.lisp (%with-standard-io-syntax): Find
      	cl-user package instead of user.
      
      	* src/code/package.lisp (package-locks-init): Add lisp.
      	(package-init): Don't add user nickname to cl-user.
      
      	* src/code/ntrace.lisp (*trace-encapsulate-package-names*):
      	Add common-lisp.
      
      	* src/code/hash.lisp (toplevel):
      	* src/code/hash-new.lisp (toplevel): Use in-package :lisp
      	instead of :common-lisp.
      
      	* src/code/float-trap.lisp (sigfpe-handler): Don't
      	qualify floating-point-inexact with ext:.
      
      	* src/pcl/simple-streams/strategy.lisp (sc):
      	* src/pcl/simple-streams/null.lisp (null-read-char):
      	* src/pcl/simple-streams/internal.lisp (allocate-buffer)
      	(free-buffer):
      	* src/pcl/simple-streams/impl.lisp (%check, %read-line)
      	(%peek-char, %read-byte):
      	* src/pcl/simple-streams/file.lisp (open-file-stream)
      	(device-close):
      	* src/pcl/simple-streams/classes.lisp (simple-stream)
      	(device-close):
      	* src/pcl/macros.lisp (toplevel):
      	* src/pcl/braid.lisp (lisp::sxhash-instance):
      	* src/pcl/env.lisp (toplevel):
      	* src/compiler/generic/objdef.lisp (symbol-hash):
      	* src/code/stream.lisp (read-sequence, write-sequence):
      	* src/code/macros.lisp (defmacro, deftype):
      	* src/code/eval.lisp (interpreted-function):
      	* src/code/defstruct.lisp (defstruct):
      	* src/code/debug.lisp (debug-eval-print): Use lisp:: instead
      	of cl::.
      b4f2c7c7
  19. Sep 04, 2002
  20. Sep 03, 2002
    • toy's avatar
      o Moved the definitions of LOWTAG-BITS, LOWTAG-MASK, and LOWTAG-LIMIT · aa2fda27
      toy authored
        from compiler/generic/objdef.lisp to compiler/sparc/parms.lisp
        because cross-compiling on sparc loads parms after objdef, and parms
        uses these symbols.
      o Added TARGET-FOREIGN-LINKAGE-SPACE-START and
        TARGET-FOREIGN-LINKAGE-ENTRY-SIZE to parms.lisp to support the new
        linkage table stuff.  (Not yet implemented on sparc, so these values
        may be wrong.)
      aa2fda27
  21. Feb 11, 2001
  22. Jul 24, 1998
  23. Mar 21, 1998
  24. Jan 17, 1998
  25. Nov 04, 1997
    • dtc's avatar
      Scavenger hook support for GENCGC. · 16de1fcc
      dtc authored
      16de1fcc
    • dtc's avatar
      Merge in changes to the x86 backend from the gencgc branch, allowing · 725ab9ee
      dtc authored
      common binaries to be run on both:
      
      * The immediate-stack storage class has been removed, this is
      unnecessary as the descriptor-stack SC can be used. It may have once
      been part of some GC stragety to reduce the number of stack slots that
      needed to be noted for a GC.
      
      * The object allocation has been abstracted and cleaned up. This
      should produce slightly faster smaller code with CGC, and can be
      compiled to support inline allocation with GENCGC.  CGC compiled code
      will run under GENCGC, and GENCGC binaries that don't use inline
      allocation will run under CGC.
      
      * A random hash is now placed in the unused symbol object slot (the
      symbol-hash slot). This saves flushing the info cache at each GC, and
      may have other uses for symbol based hash tables. Should help MP
      safety.
      
      * Common set of static symbols used by both CGC and GENCGC.
      
      * Corrections to the stack-ref VOP; now returns lisp objects not
      unsigned numbers. Required some patches to debug-int.
      
      * Inline unsigned/signed byte 32 to bignum allocation enabled.
      
      * Support for the x86 xadd instruction applied to instance slot and
      symbol values - may be handy for some MP code.
      
      * Bump up the FASL file version from 1 to 2.
      725ab9ee
  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. Oct 31, 1994
  29. Apr 06, 1994
  30. Feb 11, 1994
  31. Aug 27, 1993
  32. May 18, 1993
  33. May 13, 1993
  34. May 07, 1993
  35. Mar 13, 1993
Loading