Skip to content
Snippets Groups Projects
  1. Jul 11, 2004
  2. Jul 10, 2004
  3. Jul 09, 2004
  4. Apr 14, 2004
  5. Apr 06, 2004
    • rtoy's avatar
      Add support for source location recording, from Helmut Eller on · f4f6325e
      rtoy authored
      cmucl-imp:
      
          The patch below adds a somewhat general mechanism to the get the
          "current location".  So every macro that wants to record the
          source location, can insert a call to SOURCE-LOCATION in the
          generated code and safe the result in a appropriate place.
          SOURCE-LOCATION is a compiler-macro and returns a quoted struct
          with the source info.
      
          The patch adds the definition for SOURCE-LOCATION some
          modifications for the defclass, defgeneric and defmethod macros.
          Classes, generic functions and methods have already a "source"
          slot and the result of SOURCE-LOCATION is just stored into that
          slot.  (The source slot contains currently only the *loadpath*,
          which is is not very useful, if the fasl file is in a different
          directory than the source file.)
      f4f6325e
  6. Apr 02, 2004
  7. Mar 29, 2004
  8. Jan 09, 2004
    • toy's avatar
      Take out the fix for the problem of PCL optimizations being blindly applied · 81dbe24a
      toy authored
      to method parameters which are assigned to.  This fixes a bug that shows up
      in McCLIM.
      
      (From Gerd, on cmucl-imp.)
      81dbe24a
    • toy's avatar
      TRACE was broken if CMUCL wasn't built from a version that included · 495770f3
      toy authored
      PCL, because it needed PCL's walker code.  Fix this by always building
      with PCL's walker, which is independent of PCL:
      
      code/fwrappers.lisp:
      o Always use the PCL version, assuming PCL walker is included.
      
      pcl/defsys.lisp:
      o Don't build walk.lisp here, because it's built as a part of CMUCL.
      o Fix up dependencies.
      
      tools/worldcom.lisp:
      o Compile up pcl/walk.lisp
      
      tools/worldload.lisp:
      o Load up pcl/walk.lisp
      495770f3
  9. Nov 05, 2003
    • gerd's avatar
      (defclass data () ((name :accessor name))) · 5a8847ea
      gerd authored
      	(defmethod name :before ((data data)))
      
      	(name (make-instance 'data))
      	 => too few args in a call to a method function
      
      	This is caused by standard-reader/writer methods having a
      	fast-function, but that's not the one that we should funcall if
      	pcl::*inline-methods-in-emfs* is true.  Use the fast-method-call
      	mechanism for such methods instead.
      
      	* src/pcl/combin.lisp (inlinable-method-p): New function.
      	(make-direct-calls): Removed.
      	(memf-test-converter): Add a local function method-key for
      	determining the function generator key.
      	(memf-code-converter): Add local functions make-call and
      	make-calls.  Generate direct calls if inlinable-method-p returns
      	true.
      5a8847ea
  10. Oct 29, 2003
    • gerd's avatar
      Suppress slot access and gf-call optimizations for method · ef829f5c
      gerd authored
      	parameters that are being assigned to in the method body.
      	Reported by Hans Chalupsky on cmucl-imp.
      
      	* src/pcl/boot.lisp (method-parameter): New function, extracted
      	from make-pv-call.
      	(assigned-method-params): New function.
      	(make-method-lambda-internal): Call it to disable optimizations
      	on method parameters being assigned to.
      
      	* src/pcl/method-slot-access-optimization.lisp
      	(get-param/class-to-optimize): Use new function method-parameter.
      	* src/pcl/gf-call-optimization.lisp (make-pv-call): Ditto.
      
      	* src/pcl/std-class.lisp (ensure-class-using-class): Don't setq
      	a method parameter.
      ef829f5c
  11. Oct 23, 2003
  12. Sep 06, 2003
  13. Sep 05, 2003
  14. Sep 03, 2003
  15. Aug 27, 2003
    • gerd's avatar
      Changes in generic function's method combination don't take · 68f099c4
      gerd authored
      	effect until a method is added or removed from the gf.
      	Reported by Andreas Fuchs on a SBCL mailing list.
      
      	* src/pcl/methods.lisp (reinitialize-instance)
      	<standard-generic-function>: Make it an around method, call
      	flush-effective-method-cache if the method combination changes.
      
      	* src/pcl/dfun.lisp (flush-effective-method-cache): New function.
      	(*effective-method-cache*): Renamed from *effective-method-table*.
      68f099c4
  16. Aug 25, 2003
    • gerd's avatar
      Lazy signaling of errors because of invalid method qualifiers, · 2f40ed5a
      gerd authored
      	for ANSI compliance.
      
      	* src/pcl/defcombin.lisp (compute-effective-method):  If
      	*in-precompute-effective-methods-p*, generate an emf consisting of
      	a call to %invalid-qualifiers if there are such methods.
      
      	* src/pcl/combin.lisp (standard-compute-effective-method): Likewise.
      	(make-effective-method-lambda): Handle %invalid-qualifiers like
      	%no-primary-method.
      
      	* src/pcl/braid.lisp (%invalid-qualifiers): New function.
      	(invalid-qualifiers): New method.
      
      	* src/pcl/generic-functions.lisp (invalid-qualifiers): New gf.
      
      	* src/pcl/dfun.lisp (*max-emf-precomputation-methods*): Set to 100.
      
      	* src/docs/cmu-user/extensions.tex (Effective Method Precomputation):
      	Change description of *max-emf-precomputation-methods*.
      2f40ed5a
  17. Aug 16, 2003
  18. Jul 29, 2003
  19. Jul 28, 2003
    • gerd's avatar
      Loading gray-streams lead to a vicious metacircle because · 0041e6b0
      gerd authored
      	effective methods of close were no longer precomputed, and close
      	is being used somewhere inside the compiler during emf
      	compilation.
      
      	* src/pcl/gray-streams.lisp (toplevel): Call pcl-close
      	before setting the fdefinition of close to it, analogous
      	to what was already done for pcl-open-stream-p.
      
      	* src/pcl/dfun.lisp (break-vicious-metacircle): Put the
      	error in infinite-error-protect, just in case.
      0041e6b0
    • gerd's avatar
      CLtS effectively forbids method load-time precomputation of · c3fd05a9
      gerd authored
      	effective methods (which I think is either yet another oversight,
      	or bad language design).  Found by Paul Dietz.
      
      	Set *max-emf-precomputation-methods* to > 0 to allow
      	precomputation of effective methods at method load-time for
      	generic functions having less than the specified number of
      	methods.
      
      	* src/pcl/dfun.lisp (*max-emf-precomputation-methods*): Set to 0.
      
      	* src/pcl/pkg.lisp ("PCL"): Export *max-emf-precomputation-methods*.
      c3fd05a9
  20. Jul 21, 2003
  21. Jul 20, 2003
  22. Jul 19, 2003
  23. Jul 17, 2003
  24. Jul 01, 2003
  25. Jun 27, 2003
  26. Jun 26, 2003
    • toy's avatar
      From Paul Foley: · bfbb8fd1
      toy authored
      Non-simple-streams-related changes:
      
      * Stop commands which go through invoke-command-interactive from
        affecting the history variables.
      
      * Fix some typos in comments
      
      * When the GC closes a lost stream, revert to original contents
      
      * Replace #+nil with #+(or) in unix*.lisp
        [NIL is a potentially valid feature name]
      
      
      Simple-streams-related changes:
      
      * Teach reader to handle simple-streams
      
      * Add missing package prefixes in OPEN
      
      * Add unix:unix-msync for force-output on mmapped files
      
      * Add placeholder documentation
      
      * Numerous changes in simple-streams implementation
      
      * Add "external-formats" directory for external formats
      
      
      Note: :BIG-ENDIAN or :LITTLE-ENDIAN should be put on *features*
      bfbb8fd1
  27. Jun 18, 2003
    • 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
  28. Jun 17, 2003
  29. Jun 15, 2003
    • gerd's avatar
      SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, SLOT-MAKUNBOUND not · 4faa083c
      gerd authored
      	returning values specified by the standard when
      	SLOT-MISSING/SLOT-UNBOUND are called and return.  Found by Paul
      	Dietz.
      
      	* src/pcl/std-class.lisp (compute-effective-slot-definition):
      	Return slot-unbound's primary value.
      
      	* src/pcl/slots.lisp (slot-value): Return slot-missing's primary
      	value.
      	(set-slot-value): Always return the new value.
      	(slot-boundp): Return a boolean equivalent of slot-missing's
      	primary value.
      	(slot-makunbound): Always return the instance.
      	(slot-value-using-class): Return slot-unbound's primary value.
      	(slot-unbound-internal): Likewise.
      
      	* src/pcl/slots-boot.lisp (ensure-accessor): Return slot-missing's
      	primary value for slot-value, a boolean equivalent of its primary
      	value for slot-boundp, and always return the value for setf.
      	(accessor-set-slot-value): Always return the new value.
      	(make-optimized-std-reader-method-function): Return slot-unbound's
      	primary value.
      	(make-optimized-std-slot-value-using-class-method-function)
      	(make-internal-reader-method-function): Likewise.
      
      	* src/pcl/method-slot-access-optimization.lisp
      	(inline-slot-unbound): Return slot-unbound's primary value.
      4faa083c
  30. Jun 13, 2003
Loading