Custom Query (1030 matches)
Results (544 - 546 of 1030)
| Ticket | Resolution | Summary | Owner | Reporter |
|---|---|---|---|---|
| #1357 | fixed | Slowdown from appropriate type declaration in optimized code | ||
| Description |
A colleague noticed that the following function can run more slowly with a suitable type declaration. I've reproduced his results on Linux: Welcome to Clozure Common Lisp Version 1.12-dev-r16729M-trunk (LinuxX8664)! Here are the commands: (declaim (OPTIMIZE (COMPILATION-SPEED 0) (DEBUG 0) (SPEED 3) (SPACE 0) (SAFETY 0)))
(defun fibonacci (n)
(declare (type (integer 0 *) n))
(if (= n 0)
0
(if (= n 1)
1
(+ (fibonacci (- n 1)) (fibonacci (- n 2))))))
Then: ? (time (fibonacci 38))
(FIBONACCI 38)
took 912,371 microseconds (0.912371 seconds) to run.
During that period, and with 8 available CPU cores,
912,812 microseconds (0.912812 seconds) were spent in user mode
804 microseconds (0.000804 seconds) were spent in system mode
1 minor page faults, 0 major page faults, 0 swaps.
39088169
?
But here we see the time cut in more than half when we remove the type declaration: ? (time (fibonacci 38))
(FIBONACCI 38)
took 383,980 microseconds (0.383980 seconds) to run.
During that period, and with 8 available CPU cores,
382,068 microseconds (0.382068 seconds) were spent in user mode
2,433 microseconds (0.002433 seconds) were spent in system mode
1 minor page faults, 0 major page faults, 0 swaps.
39088169
?
|
|||
| #585 | fixed | Small patch to contrib code (paine's workpersistence.lisp) | ||
| Description |
On my machine workpersistence.lisp writes a Hemlock editor window to the workpersistence.text file even when I have closed that window. The attached file contains a couple extra lines of code that seem to fix that. Let me know if there is a better venue for patching. |
|||
| #837 | fixed | Some constant-valued integer expressions can be evaluated twice in generated code | ||
| Description |
From Eric Marsden on openmcl-devel: | Welcome to Clozure Common Lisp Version 1.7-dev-r14686M (LinuxX8664)! | ? (defun foo () | (catch 'ct5 (throw 'ct5 (logior -920833 (the integer -2513842743151))))) | FOO | ? (foo) | > Error: Can't throw to tag -263425 | > While executing: FOO, in process listener(1). `---- |
|||
