mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15: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
|
||||
; to uniquely ID each lambda
|
||||
|
||||
(define-library (cps-optimizations)
|
||||
;(define-library (scheme cyclone cps-optimizations)
|
||||
;(define-library (cps-optimizations)
|
||||
(define-library (scheme cyclone cps-optimizations)
|
||||
(import (scheme base)
|
||||
(scheme cyclone util)
|
||||
(scheme cyclone ast)
|
||||
(scheme cyclone primitives)
|
||||
(scheme cyclone transforms)
|
||||
(srfi 69))
|
||||
(export
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
(scheme cyclone common)
|
||||
(scheme cyclone libraries)
|
||||
(scheme cyclone macros)
|
||||
;(scheme cyclone optimize-cps)
|
||||
(scheme cyclone primitives)
|
||||
(scheme cyclone pretty-print)
|
||||
(scheme cyclone util)
|
||||
)
|
||||
|
@ -80,9 +80,7 @@
|
|||
app?
|
||||
app->fun
|
||||
app->args
|
||||
prim?
|
||||
precompute-prim-app?
|
||||
prim-call?
|
||||
begin->exps
|
||||
define?
|
||||
define-lambda?
|
||||
|
@ -449,119 +447,6 @@
|
|||
(define (app->args 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
|
||||
;; Is a primitive being applied in such a way that it can be
|
||||
;; evaluated at compile time?
|
||||
|
@ -625,9 +510,6 @@
|
|||
(cdr ast))
|
||||
#t))))
|
||||
|
||||
(define (prim-call? exp)
|
||||
(and (list? exp) (prim? (car exp))))
|
||||
|
||||
; begin->exps : begin-exp -> list[exp]
|
||||
(define (begin->exps exp)
|
||||
(cdr exp))
|
||||
|
|
Loading…
Add table
Reference in a new issue