Lisp strings vs maxima strings?



While playing with the testsuite file changes, I noticed there might
be an issue with Lisp strings vs maxima strings (i.e., symbols that
start with '&').

(%i1) file_search_maxima;
(%o1) [/home/unix/eusrtoy/.maxima/###.{mac,mc}, 
/apps/public/src/toy/maxima-main/share/###.{mac,mc}, /apps/public/src/toy/maxi#
ma-main/share/{affine,algebra,calculus,combinatorics,contrib,contrib/nset,cont#
rib/pdiff,diffequations,graphics,integequations,integration,macro,matrix,misc,#
numeric,physics,simplification,specfunctions,sym,tensor,trigonometry,utils,vec#
tor}/###.{mac,mc}]

Should those be printed out as strings?  They're really lisp strings,
not maxima strings.

load(specfun) does the expected thing.  But if we start over, and try
to set file_search_maxima to the same thing, we get:

(%i3) file_search_maxima:["/home/unix/eusrtoy/.maxima/###.{mac,mc}",
"/apps/public/src/toy/maxima-main/share/###.{mac,mc}",
"/apps/public/src/toy/maxima-main/share/{affine,algebra,calculus,combinatorics,contrib,contrib/nset,contrib/pdiff,diffequations,graphics,integequations,integration,macro,matrix,misc,numeric,physics,simplification,specfunctions,sym,tensor,trigonometry,utils,vector}/###.{mac,mc}"];

(%o3) [/home/unix/eusrtoy/.maxima/###.{mac,mc}, 
/apps/public/src/toy/maxima-main/share/###.{mac,mc}, /apps/public/src/toy/maxi#
ma-main/share/{affine,algebra,calculus,combinatorics,contrib,contrib/nset,cont#
rib/pdiff,diffequations,graphics,integequations,integration,macro,matrix,misc,#
numeric,physics,simplification,specfunctions,sym,tensor,trigonometry,utils,vec#
tor}/###.{mac,mc}]

While this %o3 looks the same as %o1, it's actually different:

(%i4) :lisp $%o3

((MLIST SIMP) &/HOME/UNIX/EUSRTOY/.MAXIMA/###.{MAC,MC}
 &/APPS/PUBLIC/SRC/TOY/MAXIMA-MAIN/SHARE/###.{MAC,MC}
 &/APPS/PUBLIC/SRC/TOY/MAXIMA-MAIN/SHARE/{AFFINE,ALGEBRA,CALCULUS,COMBINATORICS,CONTRIB,CONTRIB/NSET,CONTRIB/PDIFF,DIFFEQUATIONS,GRAPHICS,INTEGEQUATIONS,INTEGRATION,MACRO,MATRIX,MISC,NUMERIC,PHYSICS,SIMPLIFICATION,SPECFUNCTIONS,SYM,TENSOR,TRIGONOMETRY,UTILS,VECTOR}/###.{MAC,MC})

And in fact it works differently:

(%i5) load(specfun);

Could not find `specfun' using paths in file_search_maxima,file_search_lisp ....


So 2 questions here:

1) Should maxima strings be printed out as strings?  It seems they
   should be.
2) Is it allowed for the user to change file_search_maxima (and
   friends)?  If so, it seems broken.

Ray

BTW, I ran these tests using a CVS version of maxima on cmucl 2005-04,
in case that matters.