Maxima on Lispworks



With the help of this group I got maxima running under Lispworks 
Professional 5.1.1 on Vista.
It  requires only two minor changes to the sourcecode:
 
lisp-utils/defsystem.lisp
    line 1274 old:  (system::lispworks-version)
        change to:  (values system::*major-version-number* 
system::*minor-version-number*)

src/maxima-build.lisp
Prepend the following lines:
#+lispworks
(setq hcl:*packages-for-warn-on-redefinition*
     (remove-if (lambda (package-name)
                  (member package-name
                          '("HARLEQUIN-COMMON-LISP"
                            ;"CL-USER"
                            )
                          :test #'string-equal))
                *packages-for-warn-on-redefinition*))
#+lispworks (in-package "HARLEQUIN-COMMON-LISP")
#+lispworks (defun getenv (x) (LW:ENVIRONMENT-VARIABLE x))
#+lispworks (in-package "CL-USER")
;  End of changes to src/maxima-build.lisp

I suggest to incorporate these changes into the code.
With this changes Lispworks compiles maxima sucessfully and maxima fails 
only on some tests connected with floating point precision (error 
reports appended below).
(maxima-dump) works when threading is disabled.
An advantage of Maxima running on Lispworks is better performance 
compared to gcl. The Lispworks licence allows ditsributions of compiled 
binaries so that one does not need a Lispworks licence to benefit from 
this.

Reinhard Oldenburg

Errros from the testsuite below:

Running tests in rtest9:
********************** Problem 18 ***************
Input:
errcatch(ev(%, x = 1.0E+20))


Result:
[7.000000000000028E+19]

This differed from the expected result:
[7.0E+19]

81/82 tests passed (not counting 1 expected errors).


Running tests in rtest8:
********************** Problem 74 ***************
Input:
                         c
                 2 atan(----)
                        2 fl
        6096 tan(------------)
                      r
(expr : ----------------------, ev(find_root(expr = 6096, fl, 1, 10),
                  %pi
             tan(------)
                 60 180
                                                          c = 7.176, r = 
3264))


Result:
6.981492932824887

This differed from the expected result:
6.98149293282488

106/107 tests passed.

Running tests in rtest_gamma:
********************** Problem 319 ***************
Input:
relerror(gamma_incomplete(5 %i + 10, 2.5 %i + 10),
5.588499767768350551452192526458364b4 - 
3.058735558698211815103119732529096b4
 %i, 8.0E-15)


Result:
9.076369759830588370400306386017955b-15

This differed from the expected result:
true

462/463 tests passed.

Running tests in rtest_expintegral:
********************** Problem 144 ***************
Input:
test_table(lambda([z], expintegral_e(- 2, z)), 'em2, 2, 3.5E-14)


Result:
[3.730349362740526E-14, [0.5, 15.76979715252846, 15.7697971525285,
                                                        
3.730349362740526E-14]]

This differed from the expected result:
[]

169/170 tests passed.