On 12/18/23 08:56, Waldek Hebisch wrote:

How about let's proceed like this:

1. apply the patch in this mail, to prevent infinity recursion

I am affraid that we need to do something in 'interpMap' in (i-map.boot).


So the dynamic variable shadowing should also happen in "interpret1"?

BTW, can you give an example of "interpOnly"?  So that I can test it.

Interpreter uses somewhat funky data structures, so it is hard to make
a separate call.  "interpOnly" is called when interpreter fails to compile
a function, basically when it does not see that types match.
There is a message:

FriCAS will attempt to step through and interpret the code.

you can use it to search for examples.


One such example of "interpOnly" is:

    f==n+->sum(sum(1/i,i=1..j),j=1..n)
    f(1)

Back to this bug:

So it seems that "savedTimerStack" is intentionally paired with "CATCH".
Given the nature of stack, I presume a simple assignment is enough, copy
is not needed?

   savedTimerStack := $timedNameStack
   c := CATCH('interpreter,interpret(x, posnForm))
   $timedNameStack := savedTimerStack

Otherwise I'm a bit lost to this bug.

Waldek, what's your opinion on fixing this bug?

- Qian

--
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 on the web visit 
https://groups.google.com/d/msgid/fricas-devel/536c9da0-670b-4f69-ab14-34e3da9ab07a%40gmail.com.

Reply via email to