A fix for bug 581798:
*translation-msgs-files* (look at the function translate-file
in transs.lisp) is a list of streams, yet tr-tell
(defined in transl.lisp) expects a non-list:
(DEFTRFUN TR-TELL (&REST X &AUX (TP T))
(DO ((X X (CDR X)))
((NULL X))
(COND ((ATOM (CAR X)) ;;; simple heuristic that seems to work.
(COND ((OR TP (> (FLATC (CAR X)) 10.))
(TERPRI *TRANSLATION-MSGS-FILES*)
(SETQ TP NIL)))
(PRINC (STRIPDOLLAR (CAR X)) *TRANSLATION-MSGS-FILES*))
(T
(MGRIND (CAR X) *TRANSLATION-MSGS-FILES*)))))
This bug becomes apparent when Maxima translates
----- start of file -----------------
my_apply(f, x) := f(x); /* a silly function */
----- end of file -------------------
To fix it, I changed tr-tell to
(deftrfun tr-tell (&rest x &aux (tp t))
(let ((y))
(do ((x x (cdr x)))
((null x))
(cond ((atom (car x)) ;;; simple heuristic that seems to work.
(cond ((or tp (> (flatc (car x)) 10.))
(mapcar #'terpri *translation-msgs-files*)
(setq tp nil)))
(setq y (stripdollar (car x)))
(dolist (f *translation-msgs-files*)
(princ y f)))
(t
(setq x (car x))
(dolist (f *translation-msgs-files*)
(mgrind x f)))))))
Also (related to bug 581769) to get translate_file
to make ".lisp" and ".unlisp" files instead of ".LISP" and
".UNLISP" files, change the keyword :type (in the function
translate-file defined in transs.lisp) to lowercase. Thus
(DEFUN TRANSLATE-FILE (IN-FILE-NAME OUT-FILE-NAME
.
.
.
(setq translated-file (alter-pathname (or out-file-name in-file-name) :type "lisp"))
(setq warn-file (alter-pathname in-file-name :type "unlisp"))
Maybe something similar will fix bug 581769.
Barton