mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-24 12:35:05 +02:00
Use new primitives library
This commit is contained in:
parent
c3a7fcbe45
commit
0339833541
2 changed files with 4 additions and 121 deletions
|
@ -17,11 +17,12 @@
|
||||||
; can write initial analyze, but can't get too far without being able
|
; can write initial analyze, but can't get too far without being able
|
||||||
; to uniquely ID each lambda
|
; to uniquely ID each lambda
|
||||||
|
|
||||||
(define-library (cps-optimizations)
|
;(define-library (cps-optimizations)
|
||||||
;(define-library (scheme cyclone cps-optimizations)
|
(define-library (scheme cyclone cps-optimizations)
|
||||||
(import (scheme base)
|
(import (scheme base)
|
||||||
(scheme cyclone util)
|
(scheme cyclone util)
|
||||||
(scheme cyclone ast)
|
(scheme cyclone ast)
|
||||||
|
(scheme cyclone primitives)
|
||||||
(scheme cyclone transforms)
|
(scheme cyclone transforms)
|
||||||
(srfi 69))
|
(srfi 69))
|
||||||
(export
|
(export
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
(scheme cyclone common)
|
(scheme cyclone common)
|
||||||
(scheme cyclone libraries)
|
(scheme cyclone libraries)
|
||||||
(scheme cyclone macros)
|
(scheme cyclone macros)
|
||||||
;(scheme cyclone optimize-cps)
|
(scheme cyclone primitives)
|
||||||
(scheme cyclone pretty-print)
|
(scheme cyclone pretty-print)
|
||||||
(scheme cyclone util)
|
(scheme cyclone util)
|
||||||
)
|
)
|
||||||
|
@ -80,9 +80,7 @@
|
||||||
app?
|
app?
|
||||||
app->fun
|
app->fun
|
||||||
app->args
|
app->args
|
||||||
prim?
|
|
||||||
precompute-prim-app?
|
precompute-prim-app?
|
||||||
prim-call?
|
|
||||||
begin->exps
|
begin->exps
|
||||||
define?
|
define?
|
||||||
define-lambda?
|
define-lambda?
|
||||||
|
@ -449,119 +447,6 @@
|
||||||
(define (app->args exp)
|
(define (app->args exp)
|
||||||
(cdr exp))
|
(cdr exp))
|
||||||
|
|
||||||
; prim? : exp -> boolean
|
|
||||||
(define (prim? exp)
|
|
||||||
(member exp *primitives*))
|
|
||||||
|
|
||||||
(define *primitives* '(
|
|
||||||
Cyc-global-vars
|
|
||||||
Cyc-get-cvar
|
|
||||||
Cyc-set-cvar!
|
|
||||||
Cyc-cvar? ;; Cyclone-specific
|
|
||||||
Cyc-opaque?
|
|
||||||
Cyc-has-cycle?
|
|
||||||
Cyc-spawn-thread!
|
|
||||||
Cyc-end-thread!
|
|
||||||
Cyc-stdout
|
|
||||||
Cyc-stdin
|
|
||||||
Cyc-stderr
|
|
||||||
+
|
|
||||||
-
|
|
||||||
*
|
|
||||||
/
|
|
||||||
=
|
|
||||||
>
|
|
||||||
<
|
|
||||||
>=
|
|
||||||
<=
|
|
||||||
apply
|
|
||||||
%halt
|
|
||||||
exit
|
|
||||||
system
|
|
||||||
command-line-arguments
|
|
||||||
Cyc-installation-dir
|
|
||||||
Cyc-default-exception-handler
|
|
||||||
Cyc-current-exception-handler
|
|
||||||
cons
|
|
||||||
cell-get
|
|
||||||
set-global!
|
|
||||||
set-cell!
|
|
||||||
cell
|
|
||||||
eq?
|
|
||||||
eqv?
|
|
||||||
equal?
|
|
||||||
assoc
|
|
||||||
assq
|
|
||||||
assv
|
|
||||||
memq
|
|
||||||
memv
|
|
||||||
member
|
|
||||||
length
|
|
||||||
set-car!
|
|
||||||
set-cdr!
|
|
||||||
car
|
|
||||||
cdr
|
|
||||||
caar cadr cdar cddr
|
|
||||||
caaar caadr cadar caddr cdaar cdadr cddar cdddr
|
|
||||||
caaaar caaadr caadar caaddr cadaar cadadr
|
|
||||||
caddar cadddr cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
|
|
||||||
char->integer
|
|
||||||
integer->char
|
|
||||||
string->number
|
|
||||||
string-append
|
|
||||||
string-cmp
|
|
||||||
list->string
|
|
||||||
string->symbol
|
|
||||||
symbol->string
|
|
||||||
number->string
|
|
||||||
string-length
|
|
||||||
string-ref
|
|
||||||
string-set!
|
|
||||||
substring
|
|
||||||
make-bytevector
|
|
||||||
bytevector-length
|
|
||||||
bytevector
|
|
||||||
bytevector-append
|
|
||||||
Cyc-bytevector-copy
|
|
||||||
Cyc-utf8->string
|
|
||||||
Cyc-string->utf8
|
|
||||||
bytevector-u8-ref
|
|
||||||
bytevector-u8-set!
|
|
||||||
bytevector?
|
|
||||||
make-vector
|
|
||||||
list->vector
|
|
||||||
vector-length
|
|
||||||
vector-ref
|
|
||||||
vector-set!
|
|
||||||
boolean?
|
|
||||||
char?
|
|
||||||
eof-object?
|
|
||||||
null?
|
|
||||||
number?
|
|
||||||
real?
|
|
||||||
integer?
|
|
||||||
pair?
|
|
||||||
port?
|
|
||||||
procedure?
|
|
||||||
macro?
|
|
||||||
vector?
|
|
||||||
string?
|
|
||||||
symbol?
|
|
||||||
open-input-file
|
|
||||||
open-output-file
|
|
||||||
close-port
|
|
||||||
close-input-port
|
|
||||||
close-output-port
|
|
||||||
Cyc-flush-output-port
|
|
||||||
file-exists?
|
|
||||||
delete-file
|
|
||||||
read-char
|
|
||||||
peek-char
|
|
||||||
Cyc-read-line
|
|
||||||
Cyc-write-char
|
|
||||||
Cyc-write
|
|
||||||
Cyc-display))
|
|
||||||
|
|
||||||
;; Constant Folding
|
;; Constant Folding
|
||||||
;; Is a primitive being applied in such a way that it can be
|
;; Is a primitive being applied in such a way that it can be
|
||||||
;; evaluated at compile time?
|
;; evaluated at compile time?
|
||||||
|
@ -625,9 +510,6 @@
|
||||||
(cdr ast))
|
(cdr ast))
|
||||||
#t))))
|
#t))))
|
||||||
|
|
||||||
(define (prim-call? exp)
|
|
||||||
(and (list? exp) (prim? (car exp))))
|
|
||||||
|
|
||||||
; begin->exps : begin-exp -> list[exp]
|
; begin->exps : begin-exp -> list[exp]
|
||||||
(define (begin->exps exp)
|
(define (begin->exps exp)
|
||||||
(cdr exp))
|
(cdr exp))
|
||||||
|
|
Loading…
Add table
Reference in a new issue