On 03/23/2014 09:22 AM, Ralf Hemmecke wrote:
> Thanks for your answer, but writing just "z:=" or "z:% :=" *makes* a
> difference on my computer. Without the ":%" the build will hang during
> doc build. So I guess the compiler generates different code.

And indeed, it does:

with "z := ..."
(SDEFUN |INT;exquo;2$U;50| ((|x| $) (|y| $) ($ |Union| $ "failed"))
        (SPROG ((|z| NIL))
               (SEQ
                (COND ((ZEROP |y|) (CONS 1 "failed"))
                      (#1='T
                       (SEQ (LETT |z| (INTEXQUO |x| |y|) |INT;exquo;2$U;50|)
                            (EXIT
                             (COND ((NULL |z|) (CONS 1 "failed"))
                                   (#1# |z|)))))))))


with "z: % := ..."
(SDEFUN |INT;exquo;2$U;50| ((|x| $) (|y| $) ($ |Union| $ "failed"))
        (SPROG ((|z| ($)))
               (SEQ
                (COND ((ZEROP |y|) (CONS 1 "failed"))
                      (#1='T
                       (SEQ (LETT |z| (INTEXQUO |x| |y|) |INT;exquo;2$U;50|)
                            (EXIT
                             (COND ((NULL |z|) (CONS 1 "failed"))
                                   (#1# (CONS 0 |z|))))))))))

Main difference is in the last line.

Looks to me as if the compiler does not automatically add the missing
type information ":%" to z although the "pretend %" on the right hand
side makes it clear what type the left hand side is supposed to have.

It wouldn't be a problem for me to *require* explicit type declaration
for the first type a variable appears, but then the compiler should
shout when a type declaration is missing and not silently produce bad code.

Ralf

-- 
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to