diff options
-rw-r--r-- | chicanery.scm | 87 | ||||
-rw-r--r-- | chicanery.sld | 392 |
2 files changed, 392 insertions, 87 deletions
diff --git a/chicanery.scm b/chicanery.scm deleted file mode 100644 index 12f5ab3..0000000 --- a/chicanery.scm +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | ;;; chicanery --- subtly breaking scheme expectations | ||
2 | |||
3 | (import (r7rs)) | ||
4 | |||
5 | (define-library chicanery | ||
6 | ;; All the scheme stuff in one place | ||
7 | (import (scheme base)) | ||
8 | (import (scheme case-lambda)) | ||
9 | (import (scheme char)) | ||
10 | (import (scheme complex)) | ||
11 | (import (scheme cxr)) | ||
12 | (import (scheme eval)) | ||
13 | (import (scheme file)) | ||
14 | (import (scheme inexact)) | ||
15 | (import (scheme lazy)) | ||
16 | (import (scheme load)) | ||
17 | (import (scheme process-context)) | ||
18 | (import (scheme read)) | ||
19 | (import (scheme repl)) | ||
20 | (import (scheme time)) | ||
21 | (import (scheme write)) | ||
22 | (import utf8) | ||
23 | (export * + - / <= < >= = > abs and append apply assoc assq assv begin | ||
24 | binary-port? boolean? boolean=? bytevector bytevector-append | ||
25 | bytevector-copy bytevector-copy! bytevector-length bytevector-u8-ref | ||
26 | bytevector-u8-set! bytevector? car cdr caar cadr cdar cddr | ||
27 | call-with-current-continuation call/cc call-with-port call-with-values | ||
28 | case ceiling char-ready? char->integer integer->char char=? char<? | ||
29 | char>? char<=? char>=? char? close-input-port close-output-port | ||
30 | close-port complex? cond cond-expand cons current-input-port | ||
31 | current-output-port current-error-port define define-record-type | ||
32 | define-syntax define-values denominator numerator do dynamic-wind | ||
33 | eof-object eof-object? eq? eqv? equal? error error-object-irritants | ||
34 | error-object-message error-object? even? odd? exact inexact | ||
35 | exact-integer-sqrt exact-integer? exact? inexact? exp expt features | ||
36 | file-error? floor floor/ floor-quotient floor-remainder | ||
37 | flush-output-port for-each gcd lcm get-output-bytevector | ||
38 | get-output-string guard if import import-for-syntax include include-ci | ||
39 | input-port-open? output-port-open? input-port? output-port? integer? | ||
40 | lambda length let let* letrec letrec* let-values let*-values let-syntax | ||
41 | letrec-syntax list list-copy list-ref list-set! list-tail list? | ||
42 | list->vector make-bytevector make-list make-parameter make-string | ||
43 | make-vector map max min member memq memv modulo remainder negative? | ||
44 | positive? newline not null? number->string string->number number? | ||
45 | open-input-bytevector open-output-bytevector open-input-string | ||
46 | open-output-string or pair? parameterize peek-char peek-u8 port? | ||
47 | procedure? quasiquote quote quotient remainder raise raise-continuable | ||
48 | rational? rationalize read-bytevector read-bytevector! read-char | ||
49 | read-error? read-line read-string read-u8 real? reverse round set! | ||
50 | set-car! set-cdr! square string string->list list->string string->utf8 | ||
51 | utf8->string string->symbol symbol->string string->vector | ||
52 | string-append string-copy string-copy! string-fill! string-for-each | ||
53 | string-length string-map string-ref string-set! string=? string<? | ||
54 | string>? string<=? string>=? string? substring symbol=? symbol? | ||
55 | syntax-error syntax-rules textual-port? truncate truncate/ | ||
56 | truncate-quotient truncate-remainder u8-ready? unless #;unquote | ||
57 | #;unquote-splicing values vector vector-append vector-copy vector-copy! | ||
58 | vector-fill! vector-for-each vector-length vector-map vector-ref | ||
59 | vector-set! vector->list vector->string vector? when | ||
60 | with-exception-handler write-bytevector write-char write-string | ||
61 | write-u8 zero?) | ||
62 | (export case-lambda) | ||
63 | (export char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? | ||
64 | char-ci>? char-downcase char-foldcase char-lower-case? char-numeric? | ||
65 | char-upcase char-upper-case? char-whitespace? digit-value string-ci<=? | ||
66 | string-ci<? string-ci=? string-ci>=? string-ci>? string-downcase | ||
67 | string-foldcase string-upcase) | ||
68 | (export angle imag-part magnitude make-polar make-rectangular real-part) | ||
69 | (export caaaar caaadr caaar caadar caaddr caadr cadaar cadadr cadar caddar | ||
70 | cadddr caddr cdaaar cdaadr cdaar cdadar cdaddr cdadr cddaar cddadr | ||
71 | cddar cdddar cddddr cdddr) | ||
72 | (export environment eval) | ||
73 | (export call-with-input-file call-with-output-file delete-file file-exists? | ||
74 | open-binary-input-file open-binary-output-file open-input-file | ||
75 | open-output-file with-input-from-file with-output-to-file) | ||
76 | (export acos asin atan cos exp finite? infinite? log nan? sin sqrt tan) | ||
77 | (export delay delay-force force make-promise promise?) | ||
78 | (export load) | ||
79 | (export command-line emergency-exit exit get-environment-variable | ||
80 | get-environment-variables) | ||
81 | (export read) | ||
82 | (export interaction-environment) | ||
83 | (export current-jiffy current-second jiffies-per-second) | ||
84 | (export display write write-shared write-simple) | ||
85 | |||
86 | (include "chicanery.extras.scm")) | ||
87 | |||
diff --git a/chicanery.sld b/chicanery.sld new file mode 100644 index 0000000..5c882d3 --- /dev/null +++ b/chicanery.sld | |||
@@ -0,0 +1,392 @@ | |||
1 | ;;; chicanery --- subtly breaking scheme expectations | ||
2 | |||
3 | (cond-expand | ||
4 | (r7rs) | ||
5 | (chicken (import r7rs utf8)) | ||
6 | (guile (install-r7rs!)) | ||
7 | (gambit (include "chicanery#.scm")) | ||
8 | (else (display "Unsupported R7RS implementation.\n" | ||
9 | (current-error-port)))) | ||
10 | |||
11 | (define-library (chicanery) | ||
12 | ;; All the scheme stuff in one place | ||
13 | (import (except (scheme base) | ||
14 | map for-each append)) | ||
15 | (import (rename (scheme base) | ||
16 | (map scheme/map) | ||
17 | (for-each scheme/for-each) | ||
18 | (append scheme/append))) | ||
19 | (import (scheme case-lambda)) | ||
20 | (import (scheme char)) | ||
21 | (import (scheme complex)) | ||
22 | (import (scheme cxr)) | ||
23 | (import (scheme eval)) | ||
24 | (import (scheme file)) | ||
25 | (import (scheme inexact)) | ||
26 | (import (scheme lazy)) | ||
27 | (import (scheme load)) | ||
28 | (import (scheme process-context)) | ||
29 | (import (scheme read)) | ||
30 | (import (scheme repl)) | ||
31 | (import (scheme time)) | ||
32 | (import (scheme write)) | ||
33 | |||
34 | (cond-expand | ||
35 | ;; Chicken doesn't build utf8 support in by default (at least <5) | ||
36 | (chicken (import (utf8))) | ||
37 | ;; Gambit has an extra `namespace' argument to `define-library' forms | ||
38 | (gambit (namespace "")) | ||
39 | (else)) | ||
40 | |||
41 | (export * | ||
42 | + | ||
43 | - | ||
44 | / | ||
45 | <= | ||
46 | < | ||
47 | >= | ||
48 | = | ||
49 | > | ||
50 | abs | ||
51 | and | ||
52 | append | ||
53 | apply | ||
54 | assoc | ||
55 | assq | ||
56 | assv | ||
57 | begin | ||
58 | binary-port? | ||
59 | boolean? | ||
60 | boolean=? | ||
61 | bytevector | ||
62 | bytevector-append | ||
63 | bytevector-copy | ||
64 | bytevector-copy! | ||
65 | bytevector-length | ||
66 | bytevector-u8-ref | ||
67 | bytevector-u8-set! | ||
68 | bytevector? | ||
69 | car | ||
70 | cdr | ||
71 | caar | ||
72 | cadr | ||
73 | cdar | ||
74 | cddr | ||
75 | call-with-current-continuation | ||
76 | call/cc | ||
77 | call-with-port | ||
78 | call-with-values | ||
79 | case | ||
80 | ceiling | ||
81 | char-ready? | ||
82 | char->integer | ||
83 | integer->char | ||
84 | char=? | ||
85 | char<? | ||
86 | char>? | ||
87 | char<=? | ||
88 | char>=? | ||
89 | char? | ||
90 | close-input-port | ||
91 | close-output-port | ||
92 | close-port | ||
93 | complex? | ||
94 | cond | ||
95 | cond-expand | ||
96 | cons | ||
97 | current-input-port | ||
98 | current-output-port | ||
99 | current-error-port | ||
100 | define | ||
101 | define-record-type | ||
102 | define-syntax | ||
103 | define-values | ||
104 | denominator | ||
105 | numerator | ||
106 | do | ||
107 | dynamic-wind | ||
108 | |||
109 | eof-object | ||
110 | eof-object? | ||
111 | eq? | ||
112 | eqv? | ||
113 | equal? | ||
114 | error | ||
115 | error-object-irritants | ||
116 | error-object-message | ||
117 | error-object? | ||
118 | even? | ||
119 | odd? | ||
120 | exact | ||
121 | inexact | ||
122 | exact-integer-sqrt | ||
123 | exact-integer? | ||
124 | exact? | ||
125 | inexact? | ||
126 | expt | ||
127 | features | ||
128 | file-error? | ||
129 | floor | ||
130 | floor/ | ||
131 | floor-quotient | ||
132 | floor-remainder | ||
133 | flush-output-port | ||
134 | for-each | ||
135 | gcd | ||
136 | lcm | ||
137 | get-output-bytevector | ||
138 | get-output-string | ||
139 | guard | ||
140 | if | ||
141 | ;; import | ||
142 | ;; import-for-syntax | ||
143 | ;; import-syntax | ||
144 | include | ||
145 | include-ci | ||
146 | input-port-open? | ||
147 | output-port-open? | ||
148 | input-port? | ||
149 | output-port? | ||
150 | integer? | ||
151 | lambda | ||
152 | length | ||
153 | let | ||
154 | let* | ||
155 | letrec | ||
156 | letrec* | ||
157 | let-values | ||
158 | let*-values | ||
159 | let-syntax | ||
160 | letrec-syntax | ||
161 | list | ||
162 | list-copy | ||
163 | list-ref | ||
164 | list-set! | ||
165 | list-tail | ||
166 | list? | ||
167 | list->vector | ||
168 | make-bytevector | ||
169 | make-list | ||
170 | make-parameter | ||
171 | make-string | ||
172 | make-vector | ||
173 | map | ||
174 | max | ||
175 | min | ||
176 | member | ||
177 | memq | ||
178 | memv | ||
179 | modulo | ||
180 | negative? | ||
181 | positive? | ||
182 | newline | ||
183 | not | ||
184 | null? | ||
185 | number->string | ||
186 | string->number | ||
187 | number? | ||
188 | open-input-bytevector | ||
189 | open-output-bytevector | ||
190 | open-input-string | ||
191 | open-output-string | ||
192 | or | ||
193 | pair? | ||
194 | parameterize | ||
195 | peek-char | ||
196 | peek-u8 | ||
197 | port? | ||
198 | procedure? | ||
199 | quasiquote | ||
200 | quote | ||
201 | quotient | ||
202 | remainder | ||
203 | raise | ||
204 | raise-continuable | ||
205 | rational? | ||
206 | rationalize | ||
207 | read-bytevector | ||
208 | read-bytevector! | ||
209 | read-char | ||
210 | read-error? | ||
211 | read-line | ||
212 | read-string | ||
213 | read-u8 | ||
214 | real? | ||
215 | reverse | ||
216 | round | ||
217 | set! | ||
218 | set-car! | ||
219 | set-cdr! | ||
220 | square | ||
221 | string | ||
222 | string->list | ||
223 | list->string | ||
224 | string->utf8 | ||
225 | utf8->string | ||
226 | string->symbol | ||
227 | symbol->string | ||
228 | string->vector | ||
229 | string-append | ||
230 | string-copy | ||
231 | string-copy! | ||
232 | string-fill! | ||
233 | string-for-each | ||
234 | string-length | ||
235 | string-map | ||
236 | string-ref | ||
237 | string-set! | ||
238 | string=? | ||
239 | string<? | ||
240 | string>? | ||
241 | string<=? | ||
242 | string>=? | ||
243 | string? | ||
244 | substring | ||
245 | symbol=? | ||
246 | symbol? | ||
247 | syntax-error | ||
248 | syntax-rules | ||
249 | textual-port? | ||
250 | truncate | ||
251 | truncate/ | ||
252 | truncate-quotient | ||
253 | truncate-remainder | ||
254 | u8-ready? | ||
255 | unless | ||
256 | ;;unquote | ||
257 | ;;unquote-splicing | ||
258 | values | ||
259 | vector | ||
260 | vector-append | ||
261 | vector-copy | ||
262 | vector-copy! | ||
263 | vector-fill! | ||
264 | vector-for-each | ||
265 | vector-length | ||
266 | vector-map | ||
267 | vector-ref | ||
268 | vector-set! | ||
269 | vector->list | ||
270 | vector->string | ||
271 | vector? | ||
272 | when | ||
273 | with-exception-handler | ||
274 | write-bytevector | ||
275 | write-char | ||
276 | write-string | ||
277 | write-u8 | ||
278 | zero? | ||
279 | ) | ||
280 | (export case-lambda) | ||
281 | (export char-alphabetic? | ||
282 | char-ci<=? | ||
283 | char-ci<? | ||
284 | char-ci=? | ||
285 | char-ci>=? | ||
286 | char-ci>? | ||
287 | char-downcase | ||
288 | char-foldcase | ||
289 | char-lower-case? | ||
290 | char-numeric? | ||
291 | char-upcase | ||
292 | char-upper-case? | ||
293 | char-whitespace? | ||
294 | digit-value | ||
295 | string-ci<=? | ||
296 | string-ci<? | ||
297 | string-ci=? | ||
298 | string-ci>=? | ||
299 | string-ci>? | ||
300 | string-downcase | ||
301 | string-foldcase | ||
302 | string-upcase) | ||
303 | (export angle | ||
304 | imag-part | ||
305 | magnitude | ||
306 | make-polar | ||
307 | make-rectangular | ||
308 | real-part) | ||
309 | (export caaaar | ||
310 | caaadr | ||
311 | caaar | ||
312 | caadar | ||
313 | caaddr | ||
314 | caadr | ||
315 | cadaar | ||
316 | cadadr | ||
317 | cadar | ||
318 | caddar | ||
319 | cadddr | ||
320 | caddr | ||
321 | cdaaar | ||
322 | cdaadr | ||
323 | cdaar | ||
324 | cdadar | ||
325 | cdaddr | ||
326 | cdadr | ||
327 | cddaar | ||
328 | cddadr | ||
329 | cddar | ||
330 | cdddar | ||
331 | cddddr | ||
332 | cdddr) | ||
333 | (export environment | ||
334 | eval) | ||
335 | (export call-with-input-file | ||
336 | call-with-output-file | ||
337 | delete-file | ||
338 | file-exists? | ||
339 | open-binary-input-file | ||
340 | open-binary-output-file | ||
341 | open-input-file | ||
342 | open-output-file | ||
343 | with-input-from-file | ||
344 | with-output-to-file) | ||
345 | (export acos | ||
346 | asin | ||
347 | atan | ||
348 | cos | ||
349 | exp | ||
350 | finite? | ||
351 | infinite? | ||
352 | log | ||
353 | nan? | ||
354 | sin | ||
355 | sqrt | ||
356 | tan) | ||
357 | (export delay | ||
358 | delay-force | ||
359 | force | ||
360 | make-promise | ||
361 | promise?) | ||
362 | (export load) | ||
363 | (export command-line | ||
364 | emergency-exit | ||
365 | exit | ||
366 | get-environment-variable | ||
367 | get-environment-variables) | ||
368 | (export read) | ||
369 | (export interaction-environment) | ||
370 | (export current-jiffy | ||
371 | current-second | ||
372 | jiffies-per-second) | ||
373 | (export display | ||
374 | write | ||
375 | write-shared | ||
376 | write-simple) | ||
377 | |||
378 | ;; Extras | ||
379 | (export list-map | ||
380 | list-for-each | ||
381 | list-append | ||
382 | ref | ||
383 | copy | ||
384 | atom? | ||
385 | read-port | ||
386 | read-port-chunk-size | ||
387 | defined? | ||
388 | displayed ->string | ||
389 | written | ||
390 | print) | ||
391 | |||
392 | (include "chicanery.extras.scm")) | ||