#82: Source location error on large files
--------------------+-------------------------------------------------------
Reporter: rtoy | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: Core | Version: 2013-05
Keywords: |
--------------------+-------------------------------------------------------
As noted in the [http://article.gmane.org/gmane.lisp.cmucl.general/6497
email from Matt Kaufmann], there is an error in computing the source
location. The problem was that the file was very large with many long
forms. This caused the form number to overflow the 14-bit number used to
hold the form number.
--
Ticket URL: <http://trac.common-lisp.net/cmucl/ticket/82>
cmucl <http://common-lisp.net/project/cmucl>
Cmucl is a high-performance, free Common Lisp implementation.
#81: Reversing a string is slow
--------------------+-------------------------------------------------------
Reporter: rtoy | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: Core | Version: 2013-05
Keywords: |
--------------------+-------------------------------------------------------
Consider this:
{{{
(defparameter *s* (make-string 1000000))
(defun time-rev (s)
(dotimes (k 100 nil)
(declare (fixnum k))
(setf s (reverse s)))
s)
(compile 'time-rev)
(time (prog1 t (time-rev *s*)))
; Evaluation took:
; 10.23 seconds of real time
; 10.151641 seconds of user run time
; 0.079628 seconds of system run time
; 31,310,669,055 CPU cycles
; [Run times include 0.08 seconds GC run time]
; 0 page faults and
; 200,114,224 bytes consed.
}}}
Since strings are basically arrays of unsigned 16-bit integers, compare
the time when reversing an array:
{{{
(defparameter *v* (make-array 1000000 :element-type '(unsigned-byte 16)))
(time (prog1 t (time-rev *v*)))
; Evaluation took:
; 3.62 seconds of real time
; 3.581727 seconds of user run time
; 0.039302 seconds of system run time
; 11,089,005,122 CPU cycles
; [Run times include 0.05 seconds GC run time]
; 0 page faults and
; 200,116,120 bytes consed.
}}}
Reversing a string is 3 times slower. There is some cost since strings
are utf-16 encoded, but we shouldn't be 3 times slower.
--
Ticket URL: <http://trac.common-lisp.net/cmucl/ticket/81>
cmucl <http://common-lisp.net/project/cmucl>
Cmucl is a high-performance, free Common Lisp implementation.
#83: (reverse "") signals an error
--------------------+-------------------------------------------------------
Reporter: rtoy | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: Core | Version: 2013-05
Keywords: |
--------------------+-------------------------------------------------------
As noted in [http://article.gmane.org/gmane.lisp.cmucl.general/6497 the
email from Matt Kaufmann], {{{(reverse "")}}} causes an error.
--
Ticket URL: <http://trac.common-lisp.net/cmucl/ticket/83>
cmucl <http://common-lisp.net/project/cmucl>
Cmucl is a high-performance, free Common Lisp implementation.