Skip to content

Commit 873338d

Browse files
authored
Merge pull request #450 from yamacir-kit/release-candidate
Release candidate
2 parents 2e9e845 + 4ae3efb commit 873338d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2104
-481
lines changed

.github/workflows/release.yaml

+2-15
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,6 @@ jobs:
1212
- run: ./script/setup.sh
1313
- run: cmake -B build -DCMAKE_BUILD_TYPE=Release
1414
- run: cmake --build build --target package
15-
- uses: actions/create-release@v1
16-
id: create-release
15+
- run: gh release create v${{ env.VERSION }} build/meevax_${{ env.VERSION }}_amd64.deb --generate-notes --title "Version ${{ env.VERSION }}"
1716
env:
18-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19-
with:
20-
release_name: Version ${{ env.VERSION }}
21-
tag_name: v${{ env.VERSION }}
22-
- uses: actions/upload-release-asset@v1
23-
id: upload-release-asset
24-
env:
25-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26-
with:
27-
upload_url: ${{ steps.create-release.outputs.upload_url }}
28-
asset_content_type: application/zip
29-
asset_name: meevax_${{ env.VERSION }}_amd64.deb
30-
asset_path: build/meevax_${{ env.VERSION }}_amd64.deb
17+
GH_TOKEN: ${{ github.token }}

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -121,16 +121,16 @@ sudo rm -rf /usr/local/share/meevax
121121

122122
| Target Name | Description
123123
|--------------------|---
124-
| `all` (default) | Build shared-library `libmeevax.0.4.653.so` and executable `meevax`
124+
| `all` (default) | Build shared-library `libmeevax.0.4.686.so` and executable `meevax`
125125
| `test` | Test executable `meevax`
126-
| `package` | Generate debian package `meevax_0.4.653_amd64.deb`
126+
| `package` | Generate debian package `meevax_0.4.686_amd64.deb`
127127
| `install` | Copy files into `/usr/local`
128128
| `install.deb` | `all` + `package` + `sudo apt install <meevax>.deb`
129129

130130
## Usage
131131

132132
```
133-
Meevax Lisp 0.4.653
133+
Meevax Lisp 0.4.686
134134
135135
Usage:
136136
meevax [option...] [file...]

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.653
1+
0.4.686

basis/r4rs-essential.ss

+48-79
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@
33
(meevax core)
44
(meevax comparator)
55
(meevax continuation)
6-
(rename (meevax environment)
7-
(load %load))
6+
(prefix (meevax environment) %)
87
(meevax function)
98
(meevax list)
109
(only (meevax macro-transformer) er-macro-transformer identifier?)
1110
(meevax number)
1211
(meevax pair)
1312
(meevax port)
14-
(rename (meevax read)
15-
(read %read))
13+
(prefix (meevax read) %)
1614
(meevax string)
1715
(meevax symbol)
1816
(meevax vector)
@@ -148,66 +146,41 @@
148146
(list (car xs)))))
149147

150148
(define (map f x . xs)
151-
(define (map-1 f x stack)
149+
(define (every f x)
152150
(if (pair? x)
153-
(map-1 f
154-
(cdr x)
155-
(cons (f (car x)) stack))
151+
(letrec ((every (lambda (f x)
152+
(if (null? (cdr x))
153+
(f (car x))
154+
(if (f (car x))
155+
(every f (cdr x))
156+
#f)))))
157+
(every f x))
158+
#t))
159+
(define (map f x stack)
160+
(if (pair? x)
161+
(map f
162+
(cdr x)
163+
(cons (f (car x)) stack))
164+
(reverse stack)))
165+
(define (map* f xs stack)
166+
(if (every pair? xs)
167+
(map* f
168+
(map cdr xs '())
169+
(cons (apply f (map car xs '())) stack))
156170
(reverse stack)))
157171
(if (null? xs)
158-
(map-1 f x '())
159-
(letrec ((map (lambda (f xs stack)
160-
(if (every pair? xs)
161-
(map f
162-
(map-1 cdr xs '())
163-
(cons (apply f (map-1 car xs '())) stack))
164-
(reverse stack)))))
165-
(map f (cons x xs) '()))))
172+
(map f x '())
173+
(map* f (cons x xs) '())))
166174

167175
(define (apply f x . xs)
168-
(define (apply-1 f xs) (f . xs))
169-
(if (null? xs)
170-
(apply-1 f x)
171-
((lambda (rxs)
172-
(apply-1 f
173-
(append (reverse (cdr rxs))
174-
(car rxs))))
175-
(reverse (cons x xs)))))
176-
177-
(define (every f x . xs) ; TODO REMOVE
178-
(define (every-1 f x)
179-
(if (null? (cdr x))
180-
(f (car x))
181-
(if (f (car x))
182-
(every-1 f (cdr x))
183-
#f)))
184-
(if (null? xs)
185-
(if (pair? x)
186-
(every-1 f x)
187-
#t)
188-
(not (apply any
189-
(lambda xs
190-
(not (apply f xs)))
191-
x xs))))
192-
193-
(define (any f x . xs) ; TODO REMOVE
194-
(define (any-1 f x)
195-
(if (pair? (cdr x))
196-
((lambda (result)
197-
(if result result (any-1 f (cdr x))))
198-
(f (car x)))
199-
(f (car x))))
200-
(define (any-2+ f xs)
201-
(if (every pair? xs)
202-
((lambda (result)
203-
(if result result (any-2+ f (map cdr xs))))
204-
(apply f (map car xs)))
205-
#f))
206-
(if (null? xs)
207-
(if (pair? x)
208-
(any-1 f x)
209-
#f)
210-
(any-2+ f (cons x xs))))
176+
(letrec ((apply (lambda (f xs)
177+
(f . xs))))
178+
(if (null? xs)
179+
(apply f x)
180+
((lambda (xs)
181+
(apply f (append (reverse (cdr xs))
182+
(car xs))))
183+
(reverse (cons x xs))))))
211184

212185
(define-syntax let ; named-let inessential
213186
(er-macro-transformer
@@ -551,32 +524,28 @@
551524
result))
552525
(call-with-output-port (open-output-file path) f))
553526

554-
(define current-input-port input-port)
555-
556-
(define current-output-port output-port)
527+
(define current-input-port standard-input-port)
557528

558-
(define open-input-file open)
559-
560-
(define open-output-file open)
529+
(define current-output-port standard-output-port)
561530

562531
(define close-input-port close)
563532

564533
(define close-output-port close)
565534

566-
(define (read . port)
567-
(%read (if (pair? port)
568-
(car port)
535+
(define (read . xs)
536+
(%read (if (pair? xs)
537+
(car xs)
569538
(current-input-port))))
570539

571-
(define (read-char . port)
572-
(get-char! (if (pair? port)
573-
(car port)
540+
(define (read-char . xs)
541+
(%get-char (if (pair? xs)
542+
(car xs)
574543
(current-input-port))))
575544

576-
(define (peek-char . port)
577-
(get-char (if (pair? port)
578-
(car port)
579-
(current-input-port))))
545+
(define (peek-char . xs)
546+
(%peek-char (if (pair? xs)
547+
(car xs)
548+
(current-input-port))))
580549

581550
(define (write x . port)
582551
(%write x (if (pair? port)
@@ -600,8 +569,8 @@
600569
(define (newline . port)
601570
(apply write-char #\newline port))
602571

603-
(define (load filename . environment)
604-
(%load (if (pair? environment)
605-
(car environment)
606-
(interaction-environment))
572+
(define (load filename . xs)
573+
(%load (if (pair? xs)
574+
(car xs)
575+
(%interaction-environment))
607576
filename))))

basis/r4rs.ss

+11-9
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
(only (meevax core) define-syntax)
44
(only (meevax macro-transformer) er-macro-transformer)
55
(only (meevax number) exact-integer? expt exact inexact ratio? ratio-numerator ratio-denominator)
6-
(only (meevax port) input-port output-port)
7-
(only (meevax read) get-ready?)
6+
(prefix (meevax port) %)
7+
(prefix (meevax read) %)
88
(only (meevax string) string-copy)
99
(only (meevax vector) vector-fill!)
1010
(scheme r4rs essential)
@@ -143,13 +143,15 @@
143143
(begin (string-set! s k c)
144144
(rec (- k 1)))))))
145145

146-
(define %current-input-port (input-port))
146+
(define %current-input-port (%standard-input-port))
147147

148-
(define (current-input-port) %current-input-port)
148+
(define (current-input-port)
149+
%current-input-port)
149150

150-
(define %current-output-port (output-port))
151+
(define %current-output-port (%standard-output-port))
151152

152-
(define (current-output-port) %current-output-port)
153+
(define (current-output-port)
154+
%current-output-port)
153155

154156
(define (with-input-from-file path thunk)
155157
(let ((previous-input-port (current-input-port)))
@@ -164,6 +166,6 @@
164166
(set! %current-output-port previous-output-port)))
165167

166168
(define (char-ready? . port)
167-
(get-ready? (if (pair? port)
168-
(car port)
169-
(current-input-port))))))
169+
(%get-char-ready? (if (pair? port)
170+
(car port)
171+
(current-input-port))))))

0 commit comments

Comments
 (0)