1 (in-package :common-lisp-user
)
6 ;; These exports are the regexp procedures mentioned in the manual.
8 #:pregexp-match-positions
18 (defpackage :command-line
21 (:export
#:cl-option
#:make-cl-option
#:list-cl-options
#:process-args
22 #:get-application-args
))
24 ;; Kevin Rosenberg's getopt package
27 (:export
#:match-unique-abbreviation
30 ;; GCL has SLOOP built in but it's slightly different now...
36 (:use
:common-lisp
:command-line
)
37 (:nicknames
:cl-macsyma
:cl-maxima
:macsyma
)
38 (:import-from
:cl-sloop
#:sloop
)
39 (:shadow continue
;(macsys): part of the top-level loop
40 // ;(clmacs): arithmetic operator
41 float
;(clmacs): has 1.0 as default format
42 functionp
;(commac): accepts symbols
44 exp
;various files declare this special
45 signum
;(commac): same except
46 ; (cl:signum 1.3)==1.0 not 1 but I (?)
47 ; think this is ok for macsyma
48 asin acos asinh acosh atanh
;different for complex numbers
49 tanh cosh sinh tan
;(trigi): same, could remove from trigi
50 break
; special variable in displa.lisp
51 gcd
; special in rat module
55 ;; Faster modular arithmetic.
56 ;; Unfortunately, as S. Macrakis observed (bug #706562),
57 ;; SI::CMOD currently behaves in a strange way:
58 ;; (let ((si::modulus 4)) (si::cmod 2)) => 2
59 ;; (let ((si::modulus 4)) (si::cmod -2)) => -2
60 #:modulus
#:cmod
#:ctimes
#:cdifference
#:cplus
62 #:getpid
#:get-instream
63 #:short-name
#:cleanup
#:instream-stream-name
#:instream-line
64 #:instream-name
#:instream-stream
#:stream-name
#:complete-prop
65 #:*stream-alist
* #:break-call
))
70 (:shadow
#:random-state
75 (:export
#:random-state
80 #:%random-single-float
81 #:%random-double-float
82 #+(or scl clisp
) #:%random-long-float
83 #+cmu
#:%random-double-double-float
87 ;; This package is for the implementation of the BIGFLOAT routines that
88 ;; make working with Maxima's bfloat objects somewhat easier by
89 ;; extending the standard CL numeric functions to work with BIGFLOAT
90 ;; and COMPLEX-BIGFLOAT objects. See src/numeric.lisp for the
92 (defpackage bigfloat-impl
142 #:integer-decode-float
159 ;; If any of these exported symbols are updated, update the
160 ;; shadowing-import-from list for BIGFLOAT-USER too!
221 #:integer-decode-float
239 ;; BIGFLOAT is the package intended to be used for applications
240 ;; using the routines from the BIGFLOAT-IMPL.
242 (:use
:cl
:bigfloat-impl
)
243 ;; This list should match the SHADOWING-IMPORT-FROM list in
245 (:shadowing-import-from
#:bigfloat-impl
294 #:integer-decode-float
317 ;; Export all the external symbols in BIGFLOAT-IMPL from BIGFLOAT too.
318 (do-external-symbols (s '#:bigfloat-impl
)
319 (export s
'#:bigfloat
))
321 ;; For CMUCL, we lock the bigfloat-impl package so we don't
322 ;; accidentally modify the implementation.
324 (defun lock-maxima-packages ()
325 (let ((package-names '(#:bigfloat-impl
)))
326 (dolist (p package-names
)
327 (let ((p (find-package p
)))
329 (setf (package-definition-lock p
) t
)
330 (setf (package-lock p
) t
)))))
336 (lock-maxima-packages)
337 (pushnew 'lock-maxima-packages ext
:*after-save-initializations
*))
340 ;; Some versions of CMUCL already have a compatible version of INTL,
341 ;; so skip it if we have it. CMUCL will already define the INTL
342 ;; package correctly.
344 #+#.
(cl:if
(cl:and
(cl:member
:cmu cl
:*features
*) (cl:find-package
'#:intl
)) '(or) '(and))
347 (:export
#:setlocale
#:textdomain
#:gettext
#:dgettext
348 #:ngettext
#:dngettext
349 #:*translatable-dump-stream
* #:*locale
*
350 #:*locale-directories
*
351 #:read-translatable-string
))
353 ;; (getalias '$lambda) => CL:LAMBDA, which implies that Maxima parses lambda as CL:LAMBDA.
354 ;; Unlocking the :common-lisp package seems to be the simplest way to avoid an error.
355 ;; (Shadowing LAMBDA causes errors and removing the alias causes some other errors. Oh well.)
356 #+(and sbcl sb-package-locks
) (sb-ext:unlock-package
:common-lisp
)