load fails in maxima 5.21.1 5.22.1



Looks like the problem is caused by r1.61 src/mload.lisp
which changed $file_type to be more specific -- in previous
revisions, any filename extension which starts with #\m
is recognized as a Maxima script, in r1.61 only .mac or .mc is
recognized. So foo.max is not recognized as a Maxima script
and load attempts to load it as a Lisp program, hence the
error. I think the problem will go away if you rename .max
to .mac.

Not sure where to go from here. Revert 1.61 ? or modify it somehow?

best

Robert Dodier


Index: mload.lisp
===================================================================
RCS file: /cvsroot/maxima/maxima/src/mload.lisp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- mload.lisp  11 Mar 2010 22:24:30 -0000      1.60
+++ mload.lisp  27 Mar 2010 12:58:30 -0000      1.61
@@ -168,18 +168,16 @@
     searched-for))


-(defun $file_type (fil &aux typ)
-  (setq fil (pathname fil))
-  (setq typ (format nil "~(~A~)" (pathname-type fil)))
-  (or
-   (and (> (length typ) 0)
-       (let ((ch (aref typ 0)))
-         (cdr (assoc ch '((#\m . $maxima)
-                          (#\d . $maxima)
-                          (#\l . $lisp)
-                          (#\o . $object)
-                          (#\f . $object))))))
-   '$object))
+(defun $file_type (fil)
+  (let ((typ ($pathname_type fil)))
+    (cond
+      ((member typ '("l" "lsp" "lisp") :test #'string=)
+       '$lisp)
+      ((member typ '("mac" "mc" "demo" "dem" "dm1" "dm2" "dm3" "dmt")
+              :test #'string=)
+       '$maxima)
+      (t
+       '$object))))

 (defun $pathname_directory (path)
   (let ((pathname (pathname path)))