Skip to content
Snippets Groups Projects
  1. Jan 30, 2010
  2. Nov 30, 2009
    • 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
  3. Aug 12, 2009
  4. Jun 15, 2009
  5. Jun 11, 2009
  6. Aug 17, 2007
  7. Aug 21, 2006
  8. Jul 20, 2006
  9. Jul 07, 2006
  10. Jan 17, 2006
  11. May 09, 2005
  12. May 06, 2004
  13. Mar 26, 2003
    • gerd's avatar
      * pcl/boot.lisp (parse-defmethod): Rewritten for clarity. Signal · 1e88e890
      gerd authored
      	an error for most cases of null qualifiers.
      
      
      	Improve DESCRIBE on generic functions.
      
      	* pcl/env.lisp (method-specialized-lambda-list): New function.
      	(describe-object): Use it, and use generic-function-lambda-list.
      
      	* pcl/methods.lisp (generic-function-pretty-arglist)
      	(method-pretty-arglist): Remove.
      
      	* pcl/generic-functions.lisp (generic-function-pretty-arglist)
      	(method-pretty-arglist): Remove.
      
      
      	AMOP compliance fixes: Reintroduce class METAOBJECT, make
      	GENERIC-FUNCTION a subclass of STANDARD-OBJECT, remove STD-OBJECT.
      	This basically reverts a change of dtc from 1998.
      
      	* code/describe.lisp (describe-instance): Check for
      	standard-object, not pcl::std-object.
      
      	* pcl/pkg.lisp ("PCL", "CLOS-MOP"): Export more stuff.
      
      	* pcl/generic-functions.lisp: Remove some of the useless comments.
      
      	* pcl/slots.lisp (slot-value-using-class, setf slot-value-using-class)
      	(slot-boundp-using-class, slot-makunbound-using-class): Specialize
      	on standard-object.
      
      	* pcl/slots-boot.lisp (get-optimized-std-accessor-method-function):
      	Remove an std-class-p case.
      
      	* pcl/methods.lisp (update-std-or-str-methods): Use
      	standard-object instead of std-object.
      	(mec-all-classes-internal): Use *the-class-standard-object*
      	instead of *the-class-std-object*.
      	(class-test): Don't consider *the-class-std-object*.
      
      	* pcl/low.lisp (pcl-instance-p) [deftransform]: Use
      	standard-object instead of std-object.
      
      	* pcl/init.lisp (update-instance-for-different-class)
      	(update-instance-for-redefined-class): Specialize on
      	standard-object instead of std-object.
      
      	* pcl/dfun.lisp (accessor-values-internal, make-accessor-table)
      	(make-accessor-table): Use *the-class-standard-object* instead of
      	*the-class-std-object*.
      
      	* pcl/defs.lisp (toplevel): Don't declare *the-class-std-object*
      	special.
      	(standard-object): Single superclass slot-object.
      	(metaobject): New class.
      	(std-object): Class removed.
      	(specializer): Superclass metaobject.
      	(definition-source-mixin, plist-mixin): Superclass
      	standard-object, no metaclass.
      	(documentation-mixin, dependent-update-mixin): No metaclass.
      	(slot-definition, method, generic-function, method-combination):
      	Superclass metaobject.
      
      	* pcl/cache.lisp (raise-metatype): Don't consider std-class.
      
      	* pcl/braid.lisp (bootstrap-meta-braid): Don't braid std-class.
      	(bootstrap-initialize-class): Don't consider std-class.
      1e88e890
  14. Mar 22, 2003
    • gerd's avatar
      * bootfiles/18e/boot[12].lisp: Bootstrap files for the lisp:class · a1e3ed93
      gerd authored
      = pcl:class part.  To get it booted from 18e, cross-compile using
      boot1.lisp as bootstrap.lisp in pmai's build scripts, then do a
      normal compile with boot2.lisp as bootstrap.lisp with the
      resulting Lisp.
      
      * code/byte-interp.lisp, code/defstruct.lisp, code/describe.lisp:
      * code/error.lisp, code/exports.lisp, code/hash-new.lisp:
      * code/hash.lisp, code/macros.lisp, code/misc.lisp:
      * code/package.lisp, code/pred.lisp, code/sharpm.lisp, code/type.lisp:
      * compiler/dump.lisp, compiler/fndb.lisp, compiler/globaldb.lisp:
      * compiler/proclaim.lisp, compiler/typetran.lisp, compiler/xref.lisp:
      * compiler/generic/primtype.lisp, compiler/generic/vm-type.lisp:
      Changes for to use kernel::class etc.
      
      * code/class.lisp (toplevel): Shadow class, built-in-class etc.
      (class): Give it conc-name %class-.
      (toplevel) [#+bootstrap-lisp-class=pcl-class]: Define old accessors.
      (everywhere): Use new class accessors.
      
      * compiler/generic/vm-fndb.lisp (%make-instance): Change from
      unsafe to flushable and movable.
      
      * code/ntrace.lisp (expand-trace, untrace): Changes for method
      tracing.
      
      * code/profile.lisp (profile, profile-all, unprofile): Method
      profiling.
      
      * pcl/*.text, pcl/bench.lisp, pcl/extensions.lisp:
      * pcl/fast-init.lisp, pcl/precom1.lisp, pcl/precom4.lisp:
      * pcl/structure-class.lisp, pcl/user-instances.lisp:
      Removed.
      
      * tools/pclcom.lisp: Changes for my PCL and lisp:class =
      pcl::class.
      a1e3ed93
  15. Feb 06, 2003
    • gerd's avatar
      * pcl/defs.lisp (standard-method): Change superclass · 03bba02d
      gerd authored
      plist-mixin to documentation-mixin so that we don't throw
      away the method documentation.
      
      * pcl/cmucl-documentation.lisp (setf documentation): Use
      set-random-documentation.
      
      * pcl/defcombin.lisp (set-random-documentation): New function.
      (load-short-defcombin, load-long-defcombin): Use it.
      
      * pcl/env.lisp (describe-object) <standard-generic-function>:
      Print the generic function doc string, if any.  Print method doc
      strings.
      (describe-object) <class>: Print slots.
      
      * code/describe.lisp (describe-symbol): If a class names
      a PCL class, describe-object the PCL class.
      03bba02d
  16. Feb 05, 2003
    • gerd's avatar
      Generalized function names. · a1a66688
      gerd authored
      	* code/fdefinition.lisp (*valid-function-names*): New variable.
      	(%define-function-name-syntax, valid-function-name-p): New
      	functions.
      	(define-function-name-syntax): New macro.
      	(toplevel): Define the syntax of setf function names.
      	(fdefinition-object): Use valid-function-name-p.
      
      	* compiler/proclaim.lisp (check-function-name): Use
      	valid-function-name-p.
      
      	* compiler/ir1tran.lisp (function): Use valid-function-name-p.
      
      	* code/profile.lisp (%report-times): Use valid-function-name-p.
      
      	* code/macros.lisp (defun): Use valid-function-name-p.
      
      	* code/eval.lisp (eval): Use valid-function-name-p.
      
      	* code/describe.lisp (describe-aux, describe-function-name):
      	Use valid-function-name-p.
      
      	* code/exports.lisp ("EXTENSIONS"): Add
      	define-function-name-syntax and valid-function-name-p.
      a1a66688
  17. Dec 07, 2002
    • toy's avatar
      From Eric Marsden: · d0a6e0bd
      toy authored
        * fix DESCRIBE for arrays of zero rank. Bug and fix reported for
          SBCL on the sbcl-help list by Lutz Euler.
      
      (Slightly modified)
      d0a6e0bd
  18. Nov 14, 2002
    • toy's avatar
      From Eric Marsden: · ef58fd80
      toy authored
      The attached patch contains mostly trivial changes, including a few
      spelling corrections, plus changes to the types of condition raised in
      various cases. The only significant change, I believe, is
      
        - MAKE-DISPATCH-MACRO-CHARACTER no longer raises an error if the
          character already was defined to be a macro character; it
          overrides the previous definition (as per a suggestion from Drew
          McDermott on cmucl-help, dated 2002-09-22).
      ef58fd80
  19. Aug 20, 2002
  20. Mar 14, 2001
  21. Aug 10, 2000
  22. Jun 05, 1998
    • dtc's avatar
      Rework the PCL class hierarchy to better match the disjoint instance · 80942d67
      dtc authored
      and funcallable-instance types within CMUCL. Add the new class
      funcallable-standard-object, and the new class std-object as a
      superclass of both standard-object and
      funcallable-standard-object. Generic-functions are now
      funcallable-standard-objects implemented as FINs and disjoint from
      standard-objects which are implemented as instances in CMUCL, fixing
      some problems in the type system.
      
      This change moves the PCL implementation away from the MOP
      specification which requires that generic-functions be
      standard-objects. However ANSI CL does not require generic functions
      to be standard-objects and the MOP author Gregor Kiczales suggests it
      is appropriate for generic functions to be disjoint from
      standard-objects.
      80942d67
  23. Feb 05, 1998
  24. Feb 08, 1997
    • pw's avatar
      From: Douglas Thomas Crosher <dtc@scrooge.ee.swin.oz.au> · 0efcc964
      pw authored
      Message-Id: <199702041630.DAA06602@scrooge.ee.swin.oz.au>
      Subject: Re: making eval-functions FINs
      To: cmucl-imp@cons.org
      Date: Wed, 5 Feb 1997 03:30:55 +1100 (EST)
      In-Reply-To: <199702040300.EAA16744@knight.cons.org> from "Rob MacLachlan" at Feb 3, 97 09:59:02 pm
      X-Mailer: ELM [version 2.4 PL24]
      Content-Type: text
      
      
      > I seem to have lost the most recent message about fixing compiler/eval to
      > use FINs instead of closures.  But yes, I would think that the current
      > EVAL-FUNCTION  slots should become slots in the interpreted function FIN.
      > GET-EVAL-FUN when would then become IDENTITY, so it should probably be
      > flushed entirely.
      
      Done; moved eval-function data into the interpreted-function FIN, also
      added a closure slot so describe can access it easily. Revised patches
      below.
      
      Douglas
      0efcc964
  25. Oct 31, 1994
  26. Feb 11, 1994
  27. Sep 21, 1993
  28. Aug 21, 1993
  29. Aug 17, 1993
  30. Jul 20, 1993
  31. Jun 23, 1993
  32. May 29, 1993
  33. Feb 26, 1993
  34. Jan 15, 1993
  35. Dec 17, 1992
  36. Dec 13, 1992
  37. May 07, 1992
  38. May 06, 1992
  39. Mar 26, 1992
  40. Jan 30, 1992
Loading