2 # SPDX-License-Identifier: GPL-2.0-or-later
3 # Simple GUI for selecting the default Lisp for Windows users.
5 # @ABCL_ENABLED@ will be replaced by 0 or 1 in the final program.
6 set abcl
@ABCL_ENABLED
@
7 # @CCL_ENABLED@ will be replaced by 0 or 1 in the final program.
11 set maximarc
[file join $::env(USERPROFILE
) maxima maximarc
]
12 file mkdir
[file dirname
$maximarc]
13 set f
[open $maximarc "w"]
14 puts $f "MAXIMA_LISP=clisp"
16 tk_messageBox -type ok
-message "CLISP was selected as default Lisp interpreter for Maxima." -icon info
20 set maximarc
[file join $::env(USERPROFILE
) maxima maximarc
]
21 file mkdir
[file dirname
$maximarc]
22 set f
[open $maximarc "w"]
23 puts $f "MAXIMA_LISP=sbcl"
25 tk_messageBox -type ok
-message "SBCL was selected as default Lisp interpreter for Maxima." -icon info
29 set maximarc
[file join $::env(USERPROFILE
) maxima maximarc
]
30 file mkdir
[file dirname
$maximarc]
31 set f
[open $maximarc "w"]
32 puts $f "MAXIMA_LISP=abcl"
34 tk_messageBox -type ok
-message "ABCL was selected as default Lisp interpreter for Maxima." -icon info
38 set maximarc
[file join $::env(USERPROFILE
) maxima maximarc
]
39 file mkdir
[file dirname
$maximarc]
40 set f
[open $maximarc "w"]
41 puts $f "MAXIMA_LISP=ccl64"
43 tk_messageBox -type ok
-message "CCL was selected as default Lisp interpreter for Maxima." -icon info
46 set binpath
[file dirname
[file normalize
[info script
]]]
48 set documentation
"One can use different LISP (the programming language, in which Maxima is (mostly) written) compilers for running Maxima.
50 Currently this Windows installer supports:
51 - CLISP (http://www.clisp.org)
52 - SBCL (https://www.sbcl.org).
55 if {$abcl == 1} { append documentation
"- ABCL (https://www.abcl.org)" }
57 if {$ccl == 1} { append documentation
"- CCL (https://ccl.clozure.com)" }
59 append documentation
"
60 Which Lisp you select, may depend on your needs:
62 SBCL is usually faster, but there were issues with DEP (data execution prevention) reported.
63 It might be necessary to disable DEP for $binpath/sbcl.exe.
64 Due to memory problems, some packages (e.g. Lapack) may not work.
66 CLISP may be slower, but these problems do not occur there. In command line Maxima CLISP
67 provides advanced editing features (a history of previous commands is accessible with the cursor keys).
71 if {$abcl == 1} { append documentation
"Armed Bear Common Lisp (ABCL) is a full implementation of the Common Lisp language running in the JVM.
72 Java must be installed, if you use ABCL.
76 if {$ccl == 1} { append documentation
"Clozure Common Lisp (CCL) is a free Common Lisp implementation with a long history. CCL support is new in the crosscompiled Windows installer.
80 append documentation
"If you select a Lisp, a configuration file 'maximarc' will be created
81 in the 'maxima' directory of your user profile directory with your default Lisp selection.
82 If the configuration file already exists, it will be overwritten.
85 # Buttons (clisp, sbcl, exit)
87 button .toolbar.clisp
-text "Select CLISP" -command "selectclisp"
88 button .toolbar.sbcl
-text "Select SBCL" -command "selectsbcl"
89 if {$abcl == 1} { button .toolbar.abcl
-text "Select ABCL" -command "selectabcl" }
90 if {$ccl == 1} { button .toolbar.ccl
-text "Select CCL" -command "selectccl" }
91 button .toolbar.
exit -text "Exit" -command "exit"
92 pack .toolbar.clisp
-side left
93 pack .toolbar.sbcl
-side left
94 if {$abcl == 1} { pack .toolbar.abcl
-side left
}
95 if {$ccl == 1} { pack .toolbar.ccl
-side left
}
96 pack .toolbar.
exit -side right
100 label .docu.
label -text $documentation
101 pack .docu.
label -padx 50 -pady 50
104 wm title .
"Maxima Open Source Computer Algebra System - Select LISP Compiler"
105 grid config .toolbar
-column 0 -row 1 -sticky "snew"
106 grid config .docu
-column 0 -row 2