rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

Working directory for plot output is not defined #3095

Closed rtoy closed 3 months ago

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 13:41:18 Created by xorx on 2008-08-22 18:15:09 Original: https://sourceforge.net/p/maxima/bugs/1480


Problem

Using WXMaxima on Windows XP the working directory for gnuplot file output is badly defined or undefined.

> plot2d (sin(x), [x, -5, 5], [gnuplot_term,ps], [gnuplot_out_file,"test.ps"]);

Does write its output to somewhere or even to nowhere. At least I could not find it. The documentation gives no information about this.

One could assume that this file is written to the directory where the maxima-file resides or otherwise to the users temp-directory.

Work-Around

The following command does write the file to the expected location, but it is very unconvenient to specify an absolute path: > plot2d (sin(x), [x, -5, 5], [gnuplot_term,ps], [gnuplot_out_file,"C:/mytemp/test.ps"]);

Proposed Improvement

Make path names for plot output relative to the documents path. This would allow to specify files as follows:

[gnuplot_out_file,"../MyPlots/test.ps"]);

Software used

Maxima version: 5.15.0 Maxima build date: 17:36 4/20/2008 host type: i686-pc-mingw32 lisp-implementation-type: GNU Common Lisp (GCL) lisp-implementation-version: GCL 2.6.8

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 13:41:19 Created by crategus on 2010-09-05 11:26:47 Original: https://sourceforge.net/p/maxima/bugs/1480/#0b3f


When a filename is passed to functions like PLOT2D, SAVE, or WRITEFILE and the filename is not a complete pathname, Maxima stores the file in the current working directory. The current working directory depends on the system like Windows or Linux and on the installation.

When I start a Maxima console from an installed icon which starts maxima.bat, the current working directory on my system is 'c:/Dokumente und Einstellungen/Dieter/'. This is a default choice for a current working directory on Windows. When I start wxMaxima the current working directory is 'd:/Programme/Maxima-5.22.1/wxMaxima/'. This is the path I have installed Maxima 5.22. The current working directory can be configured in the property menu of the icon, which starts the program.

On a Linux system I always start at first a terminal, change to a suitable directory and then I start Maxima from the terminal. The last directory becomes the current working directory.

Here are some examples to get these informations. At first the plot of the example:

(%i1) plot2d(sin(x),[x,-5,5],[gnuplot_term,ps],[gnuplot_out_file,'mytest.ps']); (%o1)

The Maxima function FILE_SEARCH can locate the file. But it does not return a full pathame. This indicates that the file is stored in the current working directory, otherwise FILE_SEARCH will return a full pathname:

(%i2) file_search('mytest.ps'); (%o2) mytest.ps

We can use the Lisp function TRUENAME to get in addition the full pathname.

(%i3) ?truename(file_search('test.ps')); (%o3) /home/dieter/workspace/maxima/test.ps

The file is stored in the current working directory '/home/dieter/workspace/', that is the directory I have started Maxima on my Linux system. We can extract the directory the following way:

(%i4) pathname_directory(?truename(file_search('test.ps'))); (%o4) /home/dieter/workspace/maxima/

We have an undocumented function DIRECTORY which shows the current working directory on a Linux system when called with an empty string. On a Windows system with GCL the function shows a list of files and directories of the current working directory:

(%i5) directory(''); (%o5) [/home/dieter/workspace/maxima/]

We have two global Lisp variables *maxima-tempdir* and *maxima-userdir*. When we do not pass a filename to the function PLOT2D, the output of gnuplot is stored in the directroy named by *maxima-tempdir*.

I would tend to say that the current behavior to store files in the current working directory might be not what a user expects, but this behavior is not a bug.

We might improve the documentation on this point. Another point might be to improve FILE_SEARCH and other file input/output functions to return always a full pathname.

Further remarks:

Because, the undocumented function DIRECTORY behaves different on Linux and Windows I hesitated to document it. Perhaps, we should do an implementation which is more independent from the underlying system and Lisp or cut it out.

Furthermore, we have the function LOAD_SEARCH_DIR. This function prints the value of the global Lisp variable *default-pathname-defaults*. On SBCL this global Lisp variable is set to the current working directory, but not on other Lisp's like CLISP and GCL. On the latter Lisp's the variable *default-pathname-defaults* is NIL. I think this function should be cut out too.

Dieter Kaiser

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 13:41:23 Created by crategus on 2010-09-05 12:01:04 Original: https://sourceforge.net/p/maxima/bugs/1480/#bbc6


rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 13:41:26 Created by crategus on 2010-09-05 12:01:04 Original: https://sourceforge.net/p/maxima/bugs/1480/#a014


A comment has been added in Input.texi revision 1.79 about the behavior of Maxima to use the current working directory to store a file. It might be a feature request to change the current behavior of Maxima.

Setting the status to pending and the resolution to "works for me". Dieter Kaiser

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 13:41:30 Created by sf-robot on 2010-09-29 19:32:04 Original: https://sourceforge.net/p/maxima/bugs/1480/#dc16


This Tracker item was closed automatically by the system. It was previously set to a Pending status, and the original submitter did not respond within 14 days (the time period specified by the administrator of this Tracker).

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 13:41:33 Created by sf-robot on 2010-09-29 19:32:04 Original: https://sourceforge.net/p/maxima/bugs/1480/#5f5d


rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 13:41:37 Created by robert_dodier on 2022-03-07 19:18:26 Original: https://sourceforge.net/p/maxima/bugs/1480/#e6b8