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 ;; Gcl has DEFINE-COMPILER-MACRO but it's in the SYSTEM package. So
38 ;; we shadowing import it into our package here. (Can't just import
39 ;; because there's already a DEFINE-COMPILER-MACRO symbol.)
41 (:shadowing-import-from
#:system
#:define-compiler-macro
)
42 (:nicknames
:cl-macsyma
:cl-maxima
:macsyma
)
43 (:import-from
:cl-sloop
#:sloop
)
44 (:shadow continue
;(macsys): part of the top-level loop
45 // ;(clmacs): arithmetic operator
46 float
;(clmacs): has 1.0 as default format
47 functionp
;(commac): accepts symbols
49 exp
;various files declare this special
50 signum
;(commac): same except
51 ; (cl:signum 1.3)==1.0 not 1 but I (?)
52 ; think this is ok for macsyma
53 asin acos asinh acosh atanh
;different for complex numbers
54 tanh cosh sinh tan
;(trigi): same, could remove from trigi
55 break
; special variable in displa.lisp
56 gcd
; special in rat module
57 #+(and sbcl sb-package-locks
) makunbound
)
60 ;; Faster modular arithmetic.
61 ;; Unfortunately, as S. Macrakis observed (bug #706562),
62 ;; SI::CMOD currently behaves in a strange way:
63 ;; (let ((si::modulus 4)) (si::cmod 2)) => 2
64 ;; (let ((si::modulus 4)) (si::cmod -2)) => -2
65 #:modulus
#:cmod
#:ctimes
#:cdifference
#:cplus
67 #:getpid
#:get-instream
68 #:short-name
#:cleanup
#:instream-stream-name
#:instream-line
69 #:instream-name
#:instream-stream
#:stream-name
#:complete-prop
70 #:*stream-alist
* #:break-call
))
75 (:shadow
#:random-state
80 (:export
#:random-state
85 #:%random-single-float
86 #:%random-double-float
87 #+(or scl clisp
) #:%random-long-float
88 #+cmu
#:%random-double-double-float
92 ;; This package is for the implmentation of the BIGFLOAT routines that
93 ;; make working with Maxima's bfloat objects somewhat easier by
94 ;; extending the standard CL numeric functions to work with BIGFLOAT
95 ;; and COMPLEX-BIGFLOAT objects. See src/numeric.lisp for the
97 (defpackage bigfloat-impl
100 (:shadowing-import-from
#:system
#:define-compiler-macro
)
149 #:integer-decode-float
166 ;; If any of these exported symbols are updated, update the
167 ;; shadowing-import-from list for BIGFLOAT-USER too!
228 #:integer-decode-float
246 ;; BIGFLOAT is the package intended to be used for applications
247 ;; using the routines from the BIGFLOAT-IMPL.
249 (:use
:cl
:bigfloat-impl
)
251 (:shadowing-import-from
#:system
#:define-compiler-macro
)
252 ;; This list should match the SHADOWING-IMPORT-FROM list in
254 (:shadowing-import-from
#:bigfloat-impl
303 #:integer-decode-float
326 ;; Export all the external symbols in BIGFLOAT-IMPL from BIGFLOAT too.
327 (do-external-symbols (s '#:bigfloat-impl
)
328 (export s
'#:bigfloat
))
330 ;; For CMUCL, we lock the bigfloat-impl package so we don't
331 ;; accidentally modify the implementation.
333 (defun lock-maxima-packages ()
334 (let ((package-names '(#:bigfloat-impl
)))
335 (dolist (p package-names
)
336 (let ((p (find-package p
)))
338 (setf (package-definition-lock p
) t
)
339 (setf (package-lock p
) t
)))))
345 (lock-maxima-packages)
346 (pushnew 'lock-maxima-packages ext
:*after-save-initializations
*))
349 ;; Some versions of CMUCL already have a compatible version of INTL,
350 ;; so skip it if we have it. CMUCL will already define the INTL
351 ;; package correctly.
353 #+#.
(cl:if
(cl:and
(cl:member
:cmu cl
:*features
*) (cl:find-package
'#:intl
)) '(or) '(and))
356 (:export
#:setlocale
#:textdomain
#:gettext
#:dgettext
357 #:ngettext
#:dngettext
358 #:*translatable-dump-stream
* #:*locale
*
359 #:*locale-directories
*
360 #:read-translatable-string
)
362 (:shadowing-import-from
#:system
#:define-compiler-macro
))
364 ;; (getalias '$lambda) => CL:LAMBDA, which implies that Maxima parses lambda as CL:LAMBDA.
365 ;; Unlocking the :common-lisp package seems to be the simplest way to avoid an error.
366 ;; (Shadowing LAMBDA causes errors and removing the alias causes some other errors. Oh well.)
367 #+(and sbcl sb-package-locks
) (sb-ext:unlock-package
:common-lisp
)