Enhanced translator diagnostics



Currently the maxima to lisp translator writes at the end of the
UNLISP file a suggestion for a DECLARE_TRANSLATED form which is not
particularly useful because it contains only symbols which the user
had specified in one of his own DECLARE_TRANSLATED forms.  The reason
for this behaviour and a description of my proposed changes are in

http://members.inode.at/wjenkner/maxima/transs.txt

The patches are

http://members.inode.at/wjenkner/maxima/transl.lisp.diff

http://members.inode.at/wjenkner/maxima/transs.lisp.diff

An old message where I tried to say something sensible about
DECLARE_TRANSLATED is

http://www.math.utexas.edu/pipermail/maxima/2003/004339.html

Here is an example for the proposed new behaviour from David
Billinghurst's new ODE package.  Starting with no DECLARE_TRANSLATED
form we get

This is the unlisp file for /home/wolfgang/maxima/share/contrib/diffequations/ode1_riccati.mac 

[...]

/* The compiler might be able to optimize some function calls
   if you prepend the following declaration to your maxima code: */
EVAL_WHEN(TRANSLATE,
	  DECLARE_TRANSLATED(ode1_riccati_original,ode1_riccati_special,
			     ode1_riccati_general,
			     ode1_riccati_original_not_integrable,
			     ode1_riccati_original_2,ode1_riccati_original_3,
			     ode1_riccati_special_i))$

/* The following functions are not known to be translated.
[ode_disp,ode_disp2,contrib_ode]$ */

Wolfgang
(not written to the UNLISP file ;-)