rtoy / maxima

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

The load(filename) function converts lisp to lowercase. #2833

Open rtoy opened 2 weeks ago

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-06 23:08:41 Created by peterpall on 2015-01-24 18:13:20 Original: https://sourceforge.net/p/maxima/bugs/2894


How to reproduce:

Create a file named test.lisp with the following content: (defun $test1 () 2) (defun $Test1 () 3)

then run the following maxima commands: %i3: load("test.lisp"); %o3: test.lisp

%i4: test1(); %o4: 3

%i5: Test1(); %o5: Test1()

What was to be expected:

%i4: test1(); %o4: 2

%i5: Test1(); %o5: 3

Why this is bad

If maxima code is translated to lisp all variable and function names in the maxima code will be converted to lowercase when loading the lisp file again. This clearly is a bug.

Systems this was tested on

Original Reporter

Jacques Mequin

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-06 23:08:42 Created by robert_dodier on 2015-01-25 05:54:53 Original: https://sourceforge.net/p/maxima/bugs/2894/#1ce8


rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-06 23:08:46 Created by robert_dodier on 2015-01-25 05:54:53 Original: https://sourceforge.net/p/maxima/bugs/2894/#d254


Gunter, thank you for taking the time to make this report. Unfortunately the problem is not in the reading of the file; it is in the writing of it. Identifiers which are supposed to be case-preserved must be enclosed in vertical bars; without vertical bars, case is normalized to upper case. So the file which contains $Test1 is being read correctly. I'll write more about the problem on the mailing list.