Skip to content

Commit 25b1777

Browse files
committed
Replaced exits with signals
1 parent 98b22d1 commit 25b1777

File tree

4 files changed

+18
-18
lines changed

4 files changed

+18
-18
lines changed

interpreter/macro_expander.scm

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
(define expand-err
55
(lambda (ex continue)
6-
(debug 'compile-error
6+
(define error-view
77
(if (vaquero-error? ex)
88
(map (lambda (f) (vaquero-view (vaquero-send-atomic ex f))) '(name form to-text))
99
(vaquero-view ex)))
10-
(exit)))
10+
(vaquero-error 'expand-error error-view "Error expanding s-expression." )))
1111

1212
(define (vaquero-expand code env)
1313
(define (expand x)
@@ -44,19 +44,19 @@
4444
(begin
4545
(hts! done-been-expanded p #t) ; FIXME modules should be importable more than once
4646
(vaquero-expand-use re-use env))))
47-
(exit)))
47+
(vaquero-error 'expand-error code "Error expanding use statement." )))
4848
((import)
4949
(if (check-vaquero-import code)
5050
(vaquero-expand-import code env)
51-
(exit)))
51+
(vaquero-error 'expand-error code "Error expanding import statement." )))
5252
((export)
5353
(if (check-vaquero-export code)
5454
(let ((names (cdr code))
5555
(setter! (vaquero-send-atomic env 'def!)))
5656
(vaquero-apply setter! (list 'vaquero-internal-exports names) 'null
5757
(lambda (v) code)
5858
expand-err))
59-
(exit)))
59+
(vaquero-error 'expand-error code "Error expanding export statement." )))
6060
((op)
6161
(let* ((noo-env (noob)) (nucode (map (lambda (c) (vaquero-expand c noo-env)) code)))
6262
((vaquero-compile nucode) env top-cont expand-err)
@@ -70,19 +70,19 @@
7070
(let ((expanded (punt)))
7171
(prep-defs (cdr expanded) env top-cont expand-err)
7272
expanded)
73-
(exit)))
73+
(vaquero-error 'expand-error code "Error expanding seq statement." )))
7474
((let)
7575
(if (> (length code) 2)
7676
(cons head (vaquero-expand (cdr code) (noob)))
77-
(exit)))
77+
(vaquero-error 'expand-error code "Error expanding let statement." )))
7878
((wall)
7979
(if (> (length code) 2)
8080
(cons head (vaquero-expand (cdr code) (local-env)))
81-
(exit)))
81+
(vaquero-error 'expand-error code "Error expanding wall statement." )))
8282
((quote)
8383
(if (= (length code) 2)
8484
code
85-
(exit)))
85+
(vaquero-error 'expand-error code "Error expanding quote statement." )))
8686
(else
8787
(if (symbol? head)
8888
(let ((obj (look-it-up head)))
@@ -114,8 +114,7 @@
114114
(define prog (read-expand-cache-prog path prog-env))
115115
(define use-err
116116
(lambda (e cont)
117-
(debug 'use-error e)
118-
(exit)))
117+
(vaquero-error 'use-error code "Error expanding module.")))
119118
(define (looker name)
120119
(lookup prog-env name top-cont use-err))
121120
(define exports (looker 'vaquero-internal-exports))
@@ -138,8 +137,7 @@
138137
(define import-names (cddr code))
139138
(define import-err
140139
(lambda (e cont)
141-
(debug 'import-error e)
142-
(exit)))
140+
(vaquero-error 'import-error code "Error expanding module.")))
143141
(define package (lookup env package-name top-cont import-err))
144142
(define def-env! (vaquero-send-atomic env 'def!))
145143
(define yargs

interpreter/read_expand_cache.scm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
(define (find-file path)
3232
(define (fnf f)
3333
(debug "File not found!" f)
34-
(exit))
34+
(vaquero-error 'file-not-found path "Could not find module file."))
3535
(cond
3636
((symbol? path) #f)
3737
((uri? path)

interpreter/reader.scm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@
3737
(else (read port)))))
3838

3939
(define (vaquero-read-error-handler e kont)
40-
(debug 'read-error
40+
(define error-view
4141
(if (vaquero-error? e)
4242
(map (lambda (f) (vaquero-view (vaquero-send-atomic e f))) '(name form to-text))
4343
(vaquero-view e)))
44-
(exit))
44+
(vaquero-error 'read-error error-view "Error while reading s-expression."))
4545

4646
(define (vaquero-read-structure port)
4747
(let ((nothing (read-char port)) ; ditch the #

interpreter/runtime.scm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,16 @@
3636
(import (chicken string))
3737
(import (chicken time))
3838

39+
3940
(define top-cont identity)
41+
4042
(define top-err
4143
(lambda (ex continue)
42-
(debug 'runtime-error
44+
(define runtime-error
4345
(if (vaquero-error? ex)
4446
(map (lambda (f) (vaquero-view (vaquero-send-atomic ex f))) '(name form to-text))
4547
(vaquero-view ex)))
46-
(exit)))
48+
(vaquero-error 'runtime-error runtime-error "Error while executing program.")))
4749

4850
(define *cwd* (current-directory))
4951
(define *use-cache* #t)

0 commit comments

Comments
 (0)