2009-06-08 18:28:01 |
Tobias C. Rittweiler |
bug |
|
|
added bug |
2009-06-09 12:29:39 |
Nikodemus Siivola |
sbcl: importance |
Undecided |
Medium |
|
2009-06-09 12:29:39 |
Nikodemus Siivola |
sbcl: status |
New |
Confirmed |
|
2009-06-09 12:31:02 |
Nikodemus Siivola |
summary |
Difference in type derivation between file compiler and run-time compiler |
difference in type derivation between file compiler and run-time compiler |
|
2009-06-09 12:31:02 |
Nikodemus Siivola |
tags |
|
compiler |
|
2009-06-09 12:39:13 |
Nikodemus Siivola |
summary |
difference in type derivation between file compiler and run-time compiler |
COMPILE does a better job if there is an additional lambda |
|
2009-06-09 12:39:13 |
Nikodemus Siivola |
description |
There seems to be a subtle difference in type derivation between the file compiler,
and the run-time compiler:
;;; /tmp/barf.lisp
(format t "~&The type is ~S~%"
(sb-kernel:%simple-fun-type
(compile nil (lambda (x y &key k1)
(declare (fixnum x y))
(declare (boolean k1))
(declare (ignore x y k1))
t))))
Then at the REPL:
SB-INTROSPECT> (load (compile-file "/tmp/barf"))
; compiling file "/tmp/barf.lisp" (written 08 JUN 2009 08:24:31 PM):
; compiling (FORMAT T ...)
; /tmp/barf.fasl written
; compilation finished in 0:00:00.018
The type is (FUNCTION (FIXNUM FIXNUM &KEY (:K1 (MEMBER NIL T))) *)
T
SB-INTROSPECT> (format t "~&The type is ~S~%"
(sb-kernel:%simple-fun-type
(compile nil (lambda (x y &key k1)
(declare (fixnum x y))
(declare (boolean k1))
(declare (ignore x y k1))
t))))
The type is (FUNCTION (FIXNUM FIXNUM &KEY (:K1 (MEMBER NIL T)))
(VALUES (MEMBER T) &OPTIONAL))
NIL |
CL-USER> (format t "~&The type is ~S~%"
(sb-kernel:%simple-fun-type
(compile nil `(lambda (x y &key k1)
(declare (fixnum x y))
(declare (boolean k1))
(declare (ignore x y k1))
t))))
The type is (FUNCTION (FIXNUM FIXNUM &KEY (:K1 (MEMBER NIL T))) *)
NIL
CL-USER> (format t "~&The type is ~S~%"
(sb-kernel:%simple-fun-type
(funcall (compile nil `(lambda ()
(lambda (x y &key k1)
(declare (fixnum x y))
(declare (boolean k1))
(declare (ignore x y k1))
t))))))
The type is (FUNCTION (FIXNUM FIXNUM &KEY (:K1 (MEMBER NIL T)))
(VALUES (MEMBER T) &OPTIONAL))
NIL
|
|
2010-02-11 18:17:11 |
Tobias C. Rittweiler |
summary |
COMPILE does a better job if there is an additional lambda |
COMPILE does a better job if there is an additional lambda (result-type derivation losage involving &more) |
|
2010-02-11 18:32:40 |
Tobias C. Rittweiler |
summary |
COMPILE does a better job if there is an additional lambda (result-type derivation losage involving &more) |
COMPILE does a better job if there is an additional lambda (result-type derivation lossage involving &more) |
|
2010-09-22 17:00:49 |
Nikodemus Siivola |
sbcl: status |
Confirmed |
In Progress |
|
2010-09-22 17:00:49 |
Nikodemus Siivola |
sbcl: assignee |
|
Nikodemus Siivola (nikodemus) |
|
2010-09-28 12:43:32 |
Nikodemus Siivola |
sbcl: status |
In Progress |
Triaged |
|
2010-09-28 12:43:32 |
Nikodemus Siivola |
sbcl: assignee |
Nikodemus Siivola (nikodemus) |
|
|
2010-11-08 12:28:30 |
Nikodemus Siivola |
sbcl: assignee |
|
Nikodemus Siivola (nikodemus) |
|
2010-11-08 12:28:36 |
Nikodemus Siivola |
sbcl: status |
Triaged |
In Progress |
|
2010-11-08 12:42:12 |
Nikodemus Siivola |
sbcl: status |
In Progress |
Fix Committed |
|
2010-11-08 12:42:12 |
Nikodemus Siivola |
sbcl: assignee |
Nikodemus Siivola (nikodemus) |
|
|
2011-02-04 14:09:44 |
Nikodemus Siivola |
sbcl: status |
Fix Committed |
Fix Released |
|