On Mon, Dec 08, 2025 at 08:13:49AM -0800, Sid Andal wrote:
<snip>
> However, the same program fails when var X is replaced with T
> in GetMatx():
>
>
> tttt.input:
>
> F := PF 5
>
> (B1, B2, B3) : Vector F
>
> SetVecs() ==
> free B1, B2, B3
> B1 := [1, 2, 3]
> B2 := [2, 3, 1]
> B3 := [3, 1, 2]
> output("")
>
> GetMatx() ==
> free B1, B2, B3
> T : Matrix F
> T := matrix [B1, B2, B3]
> (output("T:", T); output(""))
> (output("Rank:", rank(T)); output(""))
>
> SetVecs()
> GetMatx()
>
>
> With following errors:
>
<snip>
> ; caught ERROR:
> ; COMMON-LISP:T names a defined constant, and cannot be used in LET.
> ;
> ; compilation unit finished
> ; caught 1 ERROR condition
>
> >> System error:
> Execution of a form compiled with errors.
<snip>
> That seems a little strange....
This is unfortunate limitation of current interpreter: names of local
variables are used as given, which may cause conflicts with predefined
name. Actually, problem affect many names (even some global ones),
simply T is most likely to appear by accident.
Fixing this seem to require substantial change to interpreter code,
which I plan to do in the future, but it takes time and there
are more urgent things to do.
--
Waldek Hebisch
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/fricas-devel/aUfwj4HNoMPgmt70%40fricas.org.