[Ecls-list] progress on Maxima + ECL
robert.dodier at gmail.com
Sun May 25 15:51:20 UTC 2008
On 5/24/08, Juan Jose Garcia-Ripoll <jjgarcia at users.sourceforge.net> wrote:
> 1) The display code has a comment about your fix, saying the change
> signals an error in nreconc, rplaca, and similar functions. What makes
> you think so?
2-d (ascii art) display code fails with an error message,
"`checkbreak' not found in `display'".
> Is there a simple, one line test case that causes the
> error to pop up -- probably printing out a long expression, but I
> would like to have something concrete to work with.
I found that many (maybe most or all) multiple-line outputs would
trigger the bug. E.g.: expand((a + b)^12)
> 2) Browsing CVS in SourceForge saw that your last patch is related to
> a number of eval-when statements. In your commit message it says that
> you remove all invocations of Maxima functions from the eval-when
> statements. Do you have any clue why that is needed?
Some of the EVAL-WHEN stuff was referring to a special variable
(I think it was OPERS) which was not defined at compile time.
> How does the assume mechanism work?
> Does it store things in symbol properties?
Well, assume is really a disaster area. None of the present-day
programmers completely understands how it works; Fateman says that
the original programmer deliberately wrote it in an obscure way.
My guess is that instead of trying to fix it, we should dump it
and create a different assume system. The existing system is not
very strong anyway (i.e. there are simple, true propositions which
it cannot verify). But for the moment we are stuck with it.
>From what I can tell, assume builds a circular list on the property DATA.
I don't know how much of the assume system is needed before
run-time. I know there are some assume declarations for constants
such as %pi, %e, etc. It might be possible to postpone those
declarations until run-time.
Hope this helps, & thanks for working on the Maxima + ECL port.
More information about the ecl-devel