regression in 2e4faf4b1ff681bd82fb086246fd19726ce0c729

5 views
Skip to first unread message

Ralf Hemmecke

unread,
Apr 8, 2022, 4:24:15 PM4/8/22
to fricas-devel
Hi Waldek,

Something weird was introduced in
commit 2e4faf4b (Pass more type declarations to Lisp compiler).

Maybe also connected to issue #81 but somewhat more deadly to me than that.
https://github.com/fricas/fricas/issues/81

After compiling the attached program with FriCAS from commit
2e4faf4b1ff681bd82fb086246fd19726ce0c729 I see the following session.
The strange message at the end does not appear when I compile the
sources just one commit before.

It looks as if the true in boolT is not the same as true.
Waldek can you explain why there is a difference at all?
Why does assertTrue(true) work and assertTrue(boolT) doesn't?
Is this due to delayed evaluation?

Can you actually reproduce this behaviour?

Ralf

(1) -> z: Integer := 2

(1) 2
Type:
Integer
(2) -> moo := z exquo z

(2) 1
Type:
Union(Integer,...)
(3) -> boolT: Boolean := moo case Integer

(3) true
Type:
Boolean
(4) -> boolF: Boolean := moo case "failed"

(4) false
Type:
Boolean
(5) -> assertTrue(true)

(5) true
Type:
Boolean
(6) -> assertTrue(boolF)

(6) false
Type:
Boolean
(7) -> assertTrue(boolT)

>> System error:
The value
TRUE
is not of type
(MEMBER T NIL)
when binding |b|
debug.spad
debug.input
Reply all
Reply to author
Forward
0 new messages