1 Ole Rohne contributed the changes necessary to replace the use of
2 sloop in the main maxima code with loop. The changes are summarized
3 here. (The actual replacement of "sloop" with "loop" is not included
6 This list of changes serves both to document what happened and to
7 serve as a guide for removing sloop usage from the share packages.
11 1) many changes of the form "by 'foo" -> "by #'foo", e.g.,
14 '(%cot %tan %csc %sin %sec %cos %coth %tanh %csch %sinh %sech %cosh)
15 - by 'cddr do (putprop x y 'recip) (putprop y x 'recip))
16 + by #'cddr do (putprop x y 'recip) (putprop y x 'recip))
18 2) in-array becomes across
20 3) loop-return becomes return
22 4) delete nleft, leading to
24 (defun listify1 (n narg-rest-argument)
25 - (cond ((minusp n) (copy-list (nleft (f- n) narg-rest-argument)) )
26 + (cond ((minusp n) (copy-list (last narg-rest-argument (f- n))) )
28 (t (firstn n narg-rest-argument))))
31 5) in-table becomes something more complicated, e.g.,
35 + (sloop for u being the hash-keys in arra using (hash-value v)
39 ,@(sloop for v in decl-specs
40 - unless (member (car v) '(special unspecial)) do nil
41 + unless (member (car v) '(special unspecial)) nconc nil
43 7) delete nodeclare, e.g.,
45 (sloop for i from lis to top
51 8) Fix package exports, shadows, etc:
53 (defpackage "CL-SLOOP"
55 - (:shadow "LOOP-FINISH")
56 - (:export "LOOP-RETURN" "SLOOP" "DEF-LOOP-COLLECT" "DEF-LOOP-MAP"
57 - "DEF-LOOP-FOR" "DEF-LOOP-MACRO" "LOCAL-FINISH" "LOOP-FINISH"))
61 (:use "COMMON-LISP" "COMMAND-LINE")
62 (:nicknames "CL-MACSYMA" "CL-MAXIMA" "MACSYMA")
63 - (:shadowing-import-from "CL-SLOOP" "LOOP-FINISH")
64 - (:import-from "CL-SLOOP" "LOOP-RETURN" "LOCAL-FINISH" "SLOOP")
65 + (:import-from "CL-SLOOP" "SLOOP")
67 9) in-package -> being the symbols of, e.g.,
69 - (sloop for vv in-package 'keyword
70 + (sloop for vv being the symbols of 'keyword
72 10) change declarations, e.g.,
74 - (sloop for i below 3 with a = 0.0
75 - declare (double-float a)
76 + (sloop for i below 3 with a of-type double-float = 0.0