Search code examples
filedebuggingopensusemaximaclisp

maxima read_list fails to find builtins-list.txt shared file


I have maxima (5.41.0) with CLISP (2.49 (2010-07-07)) on openSUSE (13.1). When I try to execute the following to read "builtins-list.txt" file (located in share), maxima fails with the following. This worked in maxima(5.38), before I had to reinstall corrupt OS (maxima(5.38) doesn't compile on newly built OS due to some missing packages, so I moved on to maxima(5.41)).

(%i1) **l: read_list("builtins-list.txt")**;
;; Compiling file /usr/local/share/maxima/5.41.0/share/numericalio/encode-decode-float.lisp ...
;; Wrote file /home/user/.maxima/binary/5_41_0/clisp/2_49__2010_07_07___built_3589360391___memory_3740229381_/share/numericalio/encode-decode-float.fas
;; Compiling file /usr/local/share/maxima/5.41.0/share/numericalio/numericalio.lisp ...
;; Wrote file /home/user/.maxima/binary/5_41_0/clisp/2_49__2010_07_07___built_3589360391___memory_3740229381_/share/numericalio/numericalio.fas
0 errors, 0 warnings
read_list: no such file `builtins-list.txt'
 -- an error. To debug this try: debugmode(true);

When building, I used ./configure --enable-shared as well, hoping it will fix the issue, but not. I set debugmode(true), but no additional information is provided by maxima. Any help/suggestion is appreciated.

Thanks, Reddy


Solution

  • read_list and other read_foo functions don't search for the file, so one has to give a relative or absolute path name which shows where the file is, if it's not in the current working directory.

    Try file_search to get the path to the file, and then give that path to read_list. E.g., something like: mypath : file_search("builtins-list.txt"); mylist : read_list(mypath);.

    Note that file_search only looks with the Maxima installation folders. If the file is somewhere else, you'll have to figure out the path some other way.