2 # Simple GUI for selecting the default Lisp for Windows users.
4 # @ABCL_ENABLED@ will be replaced by 0 or 1 in the final program.
5 set abcl
@ABCL_ENABLED
@
8 set maximarc
[file join $::env(USERPROFILE
) maxima maximarc
]
9 file mkdir
[file dirname
$maximarc]
10 set f
[open $maximarc "w"]
11 puts $f "MAXIMA_LISP=clisp"
13 tk_messageBox -type ok
-message "CLISP was selected as default Lisp interpreter for Maxima." -icon info
17 set maximarc
[file join $::env(USERPROFILE
) maxima maximarc
]
18 file mkdir
[file dirname
$maximarc]
19 set f
[open $maximarc "w"]
20 puts $f "MAXIMA_LISP=sbcl"
22 tk_messageBox -type ok
-message "SBCL was selected as default Lisp interpreter for Maxima." -icon info
26 set maximarc
[file join $::env(USERPROFILE
) maxima maximarc
]
27 file mkdir
[file dirname
$maximarc]
28 set f
[open $maximarc "w"]
29 puts $f "MAXIMA_LISP=abcl"
31 tk_messageBox -type ok
-message "ABCL was selected as default Lisp interpreter for Maxima." -icon info
34 set binpath
[file dirname
[file normalize
[info script
]]]
36 set documentation
"One can use different LISP (the programming language, in which Maxima is (mostly) written) compilers for running Maxima.
38 Currently this Windows installer supports:
39 - CLISP (http://www.clisp.org)
40 - SBCL (http://www.sbcl.org).
43 if {$abcl == 1} { append documentation
"- ABCL (http://www.abcl.org)" }
45 append documentation
"
46 Which Lisp you select, may depend on your needs:
48 SBCL is usually faster, but there were issues with DEP (data execution prevention) reported.
49 It might be necessary to disable DEP for $binpath/sbcl.exe.
50 Due to memory problems, some packages (e.g. Lapack) may not work.
52 CLISP may be slower, but these problems do not occur there. In command line Maxima CLISP
53 provides advanced editing features (a history of previous commands is accessible with the cursor keys).
57 if {$abcl == 1} { append documentation
"Armed Bear Common Lisp (ABCL) is a full implementation of the Common Lisp language running in the JVM.
58 Java must be installed, if you use ABCL.
62 append documentation
"If you select a Lisp, a configuration file 'maximarc' will be created
63 in the 'maxima' directory of your user profile directory with your default Lisp selection.
64 If the configuration file already exists, it will be overwritten.
67 # Buttons (clisp, sbcl, exit)
69 button .toolbar.clisp
-text "Select CLISP" -command "selectclisp"
70 button .toolbar.sbcl
-text "Select SBCL" -command "selectsbcl"
71 if {$abcl == 1} { button .toolbar.abcl
-text "Select ABCL" -command "selectabcl" }
72 button .toolbar.
exit -text "Exit" -command "exit"
73 pack .toolbar.clisp
-side left
74 pack .toolbar.sbcl
-side left
75 if {$abcl == 1} { pack .toolbar.abcl
-side left
}
76 pack .toolbar.
exit -side right
80 label .docu.
label -text $documentation
81 pack .docu.
label -padx 50 -pady 50
84 wm title .
"Maxima Open Source Computer Algebra System - Select LISP Compiler"
85 grid config .toolbar
-column 0 -row 1 -sticky "snew"
86 grid config .docu
-column 0 -row 2