From: Andras S. <as...@ma...> - 2007-01-19 01:46:49
|
Macroexpanding the form (loop with foo of-type (single-float 1.0 2.0) = 1.5) fails with 0 can't be converted to type (SINGLE-FLOAT 1.0 2.0). [Condition of type SIMPLE-TYPE-ERROR] Where does this 0 come from? The same form with (single-float 1.0 2.0) replaced by (single-float 0.0 2.0) expands into (BLOCK NIL (LET ((FOO 1.5)) (DECLARE (TYPE (SINGLE-FLOAT 0.0 2.0) FOO)) (SB-LOOP::LOOP-BODY NIL NIL NIL NIL NIL))) and if I change (SINGLE-FLOAT 0.0 2.0) back to (SINGLE-FLOAT 1.0 2.0) here, the resulting form compiles with no complaints. (I tried this with 0.9.17.7/x86 and 1.0.1.24/x86_64, both on Linux) Andras |
From: Juho S. <js...@ik...> - 2007-01-22 18:07:53
|
Andras Simon <as...@ma...> writes: > Macroexpanding the form > > (loop with foo of-type (single-float 1.0 2.0) = 1.5) > > fails with > > 0 can't be converted to type (SINGLE-FLOAT 1.0 2.0). > [Condition of type SIMPLE-TYPE-ERROR] > > Where does this 0 come from? >From LOOP-TYPED-INIT (in src/code/loop.lisp). -- Juho Snellman |
From: Andras S. <as...@ma...> - 2007-01-22 20:42:38
|
Juho Snellman <js...@ik...> writes: > Andras Simon <as...@ma...> writes: > > > Macroexpanding the form > > > > (loop with foo of-type (single-float 1.0 2.0) = 1.5) > > > > fails with > > > > 0 can't be converted to type (SINGLE-FLOAT 1.0 2.0). > > [Condition of type SIMPLE-TYPE-ERROR] > > > > Where does this 0 come from? > > From LOOP-TYPED-INIT (in src/code/loop.lisp). OK, thanks, now I see where but not why, when the local variable is initialized by the user. Is this a bug or a DWIM thing (sometimes it's hard to tell those apart) or something else? Andras |
From: Nikodemus S. <nik...@ra...> - 2007-03-18 00:45:12
|
Andras Simon wrote: >>> (loop with foo of-type (single-float 1.0 2.0) = 1.5) >>> >>> fails with >>> >>> 0 can't be converted to type (SINGLE-FLOAT 1.0 2.0). >>> [Condition of type SIMPLE-TYPE-ERROR] > OK, thanks, now I see where but not why, when the local variable is > initialized by the user. Is this a bug or a DWIM thing (sometimes it's > hard to tell those apart) or something else? Bug, fixed in 1.0.3.42. Thanks for the report! Cheers, -- Nikodemus |
From: Andras S. <as...@ma...> - 2007-03-18 10:32:01
|
Nikodemus Siivola <nik...@ra...> writes: > Andras Simon wrote: > > >>> (loop with foo of-type (single-float 1.0 2.0) = 1.5) > >>> > >>> fails with > >>> > >>> 0 can't be converted to type (SINGLE-FLOAT 1.0 2.0). > >>> [Condition of type SIMPLE-TYPE-ERROR] > > > OK, thanks, now I see where but not why, when the local variable is > > initialized by the user. Is this a bug or a DWIM thing (sometimes it's > > hard to tell those apart) or something else? > > Bug, fixed in 1.0.3.42. Thanks for the report! Thanks for fixing it! Andras |