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