Skip to content

Commit c0db401

Browse files
authored
Merge pull request #406 from yamacir-kit/r7rs
R7RS
2 parents 0c1bc0b + 2a9d91d commit c0db401

35 files changed

+1700
-1326
lines changed

README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ Subset of R7RS-small.
4848
| [ 6](https://srfi.schemers.org/srfi-6/srfi-6.html) | Basic String Ports | [`(srfi 6)`](./basis/srfi-6.ss) <br> [`(scheme base)`](./basis/r7rs.ss) | R7RS 6.13 |
4949
| [ 8](https://srfi.schemers.org/srfi-8/srfi-8.html) | receive: Binding to multiple values | [`(srfi 8)`](./basis/srfi-8.ss) | |
5050
| [ 10](https://srfi.schemers.org/srfi-10/srfi-10.html) | #, external form | built-in | |
51+
| [ 11](https://srfi.schemers.org/srfi-11/srfi-11.html) | Syntax for receiving multiple values | [`(srfi 11)`](./basis/srfi-11.ss) <br> [`(scheme base)`](./basis/r7rs.ss) | R7RS 4.2.2 |
5152
| [ 23](https://srfi.schemers.org/srfi-23/srfi-23.html) | Error reporting mechanism | [`(srfi 23)`](./basis/srfi-23.ss) <br> [`(scheme base)`](./basis/r7rs.ss) | R7RS 6.11 |
53+
| [ 30](https://srfi.schemers.org/srfi-30/srfi-30.html) | Nested Multi-line Comments | built-in | R7RS 2.2 |
5254
| [ 34](https://srfi.schemers.org/srfi-34/srfi-34.html) | Exception Handling for Programs | [`(srfi 34)`](./basis/srfi-34.ss) <br> [`(scheme base)`](./basis/r7rs.ss) | R7RS 6.11 |
5355
| [ 39](https://srfi.schemers.org/srfi-39/srfi-39.html) | Parameter objects | [`(srfi 39)`](./basis/srfi-39.ss) <br> [`(scheme base)`](./basis/r7rs.ss) | R7RS 4.2.6 |
5456
| [ 45](https://srfi.schemers.org/srfi-45/srfi-45.html) | Primitives for Expressing Iterative Lazy Algorithms | [`(srfi 45)`](./basis/srfi-45.ss) | [#296](https://github.com/yamacir-kit/meevax/issues/296)
@@ -103,9 +105,9 @@ sudo rm -rf /usr/local/share/meevax
103105

104106
| Target Name | Description
105107
|:-------------------|:--
106-
| `all` (default) | Build shared-library `libmeevax.0.4.117.so` and executable `meevax`.
108+
| `all` (default) | Build shared-library `libmeevax.0.4.166.so` and executable `meevax`.
107109
| `test` | Test executable `meevax`.
108-
| `package` | Generate debian package `meevax_0.4.117_amd64.deb`.
110+
| `package` | Generate debian package `meevax_0.4.166_amd64.deb`.
109111
| `install` | Copy files into `/usr/local` __(1)__.
110112
| `install.deb` | `all` + `package` + `sudo apt install <meevax>.deb`
111113
| `safe-install.deb` | `all` + `test` + `package` + `sudo apt install <meevax>.deb`
@@ -120,7 +122,7 @@ __(1)__ Meevax installed by `make install` cannot be uninstalled by the system's
120122
## Usage
121123

122124
```
123-
Meevax Lisp System, version 0.4.117
125+
Meevax Lisp System, version 0.4.166
124126
125127
Usage: meevax [OPTION...] [FILE...]
126128

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.117
1+
0.4.166

basis/r4rs-essential.ss

+11-12
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
(meevax read)
1212
(meevax string)
1313
(meevax symbol)
14-
(rename (meevax syntax) (call-with-current-continuation! call-with-current-continuation))
14+
(rename (meevax syntax)
15+
(call-with-current-continuation! call-with-current-continuation))
1516
(meevax vector)
1617
(meevax write)
1718
(srfi 211 explicit-renaming))
@@ -40,15 +41,13 @@
4041
open-output-file close-input-port close-output-port read read-char
4142
peek-char eof-object? write display newline write-char load)
4243

43-
(begin (define (unspecified) (if #f #f))
44-
45-
(define (list . xs) xs)
44+
(begin (define (list . xs) xs)
4645

4746
(define-syntax cond
4847
(er-macro-transformer
4948
(lambda (form rename compare)
5049
(if (null? (cdr form))
51-
(unspecified)
50+
(if #f #f)
5251
((lambda (clause)
5352
(if (compare (rename 'else) (car clause))
5453
(cons (rename 'begin) (cdr clause))
@@ -284,7 +283,7 @@
284283
(else `(,(rename 'begin) ,@xs))))
285284
(define (each-clause clauses)
286285
(cond ((null? clauses)
287-
(unspecified))
286+
(if #f #f))
288287
((compare (rename 'else) (caar clauses))
289288
(body (cdar clauses)))
290289
((and (pair? (caar clauses))
@@ -566,14 +565,14 @@
566565
(current-input-port))))
567566

568567
(define (read-char . port)
569-
(%read-char (if (pair? port)
570-
(car port)
571-
(current-input-port))))
568+
(get-char! (if (pair? port)
569+
(car port)
570+
(current-input-port))))
572571

573572
(define (peek-char . port)
574-
(%peek-char (if (pair? port)
575-
(car port)
576-
(current-input-port))))
573+
(get-char (if (pair? port)
574+
(car port)
575+
(current-input-port))))
577576

578577
(define (write x . port)
579578
(%write-simple x (if (pair? port)

basis/r4rs.ss

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(define-library (scheme r4rs)
22
(import (meevax inexact)
33
(only (meevax number) exact-integer? expt exact inexact ratio?)
4-
(only (meevax port) read-ready? standard-input-port standard-output-port)
4+
(only (meevax port) get-ready? standard-input-port standard-output-port)
55
(only (meevax string) string-copy)
66
(only (meevax syntax) define-syntax)
77
(only (meevax vector) vector-fill!)
@@ -119,10 +119,6 @@
119119
(atan (imag-part z)
120120
(real-part z)))
121121

122-
; (define exact->inexact inexact)
123-
;
124-
; (define inexact->exact exact)
125-
126122
(define (list-tail x k)
127123
(let list-tail ((x x)
128124
(k k))
@@ -166,6 +162,6 @@
166162
(set! %current-output-port previous-output-port)))
167163

168164
(define (char-ready? . port)
169-
(read-ready? (if (pair? port)
170-
(car port)
171-
(current-input-port))))))
165+
(get-ready? (if (pair? port)
166+
(car port)
167+
(current-input-port))))))

basis/r5rs.ss

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
(apply emergency-exit normally?))))
3838

3939
(define-library (scheme r5rs)
40-
(import (meevax environment)
41-
(meevax evaluate)
40+
(import (only (meevax environment) environment)
41+
(only (meevax evaluate) eval)
4242
(only (meevax syntax) define-syntax let-syntax letrec-syntax)
4343
(except (scheme r4rs) call-with-current-continuation)
4444
(except (scheme r5rs continuation) exit)

0 commit comments

Comments
 (0)