Skip to content

Commit

Permalink
Update compiler files
Browse files Browse the repository at this point in the history
  • Loading branch information
soegaard committed Oct 18, 2018
1 parent d601d52 commit b6ceb75
Show file tree
Hide file tree
Showing 5 changed files with 241 additions and 109 deletions.
7 changes: 5 additions & 2 deletions compiler-rjs/compiler.rkt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#lang racket
#lang racket
(provide eval)
(provide (all-defined-out))
(provide (all-defined-out))

;;;
;;; TODO
Expand Down Expand Up @@ -97,6 +97,9 @@
(namespace-require 'errortrace)
(namespace-require 'racket/match)
(namespace-require 'racket/unsafe/ops) ; used by match
(namespace-require 'racket/include)
(namespace-require '(for-syntax syntax/parse))
(namespace-require 'syntax/parse)
(expand-syntax top-level-form-stx)
#;(expand-syntax #`(let () #,top-level-form-stx))))

Expand Down
16 changes: 10 additions & 6 deletions compiler-rjs/htdp/ffi.rkt
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
#lang racket
(define assoc->object values)
(define (js-ref . xs) (cons 'js-ref xs))
(define (js-set! . xs) (cons 'js-set! xs))
(define (js-call . xs) (cons 'js-call xs))
(define (js-undefined) 'undefined)
; Uncommment to test in Racket
;#lang racket/base
(require (for-syntax racket/base))

#;(begin
(define assoc->object values)
(define (js-ref . xs) (cons 'js-ref xs))
(define (js-set! . xs) (cons 'js-set! xs))
(define (js-call . xs) (cons 'js-call xs))
(define (js-undefined) 'undefined))

;;; Types
(struct ffi-type (name check ex im))
Expand Down
2 changes: 1 addition & 1 deletion compiler-rjs/runtime.exports
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(PRIM/ make-string symbol-interned? cos image-part struct-type-descriptor-total-field-count bytes-copy symbol=? make-bytes1 pseudo-random-generator-vector? cons? namespace-module-registry NAMESPACE car IMMUTABLE-BOX sqrt namespace-variable-value vector-immutable PRIM+ make-char make-pseudo-random-generator infinite? boolean? apply symbol->immutable-string BYTES keyword? KEYWORD unsafe-cdr number? $- vector->immutable-vector dispatch-case-lambda string-upcase random-seed fifth integer-sqrt IMMUTABLE-VECTOR string>=? unsafe-fx> box SYMBOL gcd integer->char char? symbol? char=? floor ceiling vector->pseudo-random-generator string-set! string->list flonum? abs struct-type-descriptor-auto-field-indices exact-positive-integer? subbytes3 eof-object? map list->vector struct-type-descriptor-guard min acos integer? eqv? PRIM< unsafe-fx< string-append real->single-flonum real->double-flonum asin gensym-counter srcloc->string vector-length values? make-primitive-string PRIM* gcd2 vector-copy! number->string odd? bytes current-namespace vector->list closure? substring call-with-values substring2 build-list error in-list bytes->Int8Array last-pair string->symbol VECTOR MUTABLE-BYTES mutable-string? kernel:srcloc make-string1 immutable-bytes? PRIM> unbox void? VOID first Void keyword<? immutable-string? $+ namespace-set-variable-value! STRUCT-TYPE-DESCRIPTOR inexact? console-log positive? max make-bytes list* fixnum? CHAR unsafe-fx* andmap struct-type-descriptor-properties PAIR equal? str-struct str string->keyword struct-type-descriptor-name rest STRING-PORT integer-sqrt/remainder symbol->string log make-struct-field-accessor namespace-base-phase pair? atan string=? tenth real? build-vector sin $* list-tail angle make-empty-namespace vector quotient/remainder string->immutable-string add1 NULL write sixth namespace-mapped-symbols struct-type-descriptor-immutables do-make-struct-type byte? substring3 zero? seventh filter exact->inexact make-struct-type port-next-location string->uninterned-symbol bytes? bytes-ref box-immutable display VALUES current-pseudo-random-generator current-inspector vector-set! reverse alt-reverse PRIM= PRIM- new-apply-proc ninth round negative? struct-type-descriptor-auto-field-values nan? values rational? even? vector->pseudo-random-generator! inexact->exact null? truncate list? EOF-OBJECT append2 STRUCT remainder displayln string>? struct-type-descriptor-inspector PRIM<= cdr fourth magnitude string-port? random namespace? bytes-length string<? array->list bytes=? inexact-real? exact-integer? make-vector tan pi string-length list-ref box-cas! for-each set-box! cons struct-type-descriptor? keyword->string newline in-range empty? string->number struct-type-descriptor-super make-list string? sub1 mutable-bytes? CURRENT-NAMESPACE pseudo-random-generator->vector length port-count-lines! quotient str-struct-type-descriptor struct? struct-type-descriptor-init-field-indices array-end->list bytes->immutable-bytes exact? $/ eq? modulo keyword=? make-string2 BOX immutable-vector? list string<=? ormap append string make-struct-type-descriptor immutable-string->string eof make-bytes2 struct-type-descriptor-constructor-name vector-ref namespace-undefine-variable! list->array cddr exp unsafe-fx+ immutable? complex? bytes-set! third array? vector-fill! expt second subbytes2 gensym PRIM>= MUTABLE-STRING procedure? pseudo-random-generator? subbytes unsafe-car eighth double-flonum? tag single-flonum? empty real-part immutable-box? immutable-bytes->bytes char->integer exact-nonnegative-integer? string-append2 last string-ref vector? symbol<? mutable-vector? Null unsafe-fx- box?)
(PRIM/ make-string cos syntax? struct-type-descriptor-total-field-count make-bytes1 exn:break pseudo-random-generator-vector? extend-parameterization make-syntax-object car IMMUTABLE-BOX number? make-parameter raise exn:fail:contract:variable-message IMMUTABLE-VECTOR infinite? kernel:exn:break kernel:exn:fail:filesystem:missing-module foldr gcd symbol? PRIM_not vector->immutable-vector CHAR unsafe-fx< random-seed CURRENT-NAMESPACE make-struct-type-property raise-clos-arity-error* hash-ref make-pseudo-random-generator exn:fail:syntax:unbound unsafe-struct-set!* rkt box struct-type-descriptor-properties integer->char char? build-list floor ceiling string-set! string->list exn:fail:network:errno-errno exn:fail:filesystem:version? abs exn:fail:filesystem:missing-module-message js-do-send CMS js-set! exn:fail:syntax:missing-module-message exn:break-message exn:break-continuation kernel:exn:fail:contract:variable struct-type-descriptor-guard exn:fail:filesystem:errno-continuation-marks PRIM< string-append real->single-flonum uncaught-exception-handler string-downcase exn:break:hang-up-message raise-argument-error gensym-counter srcloc->string break-enabled-key exn:fail:contract-message STRUCT-TYPE-DESCRIPTOR new-continuation-mark-frame exn:fail:filesystem:exists? exn:fail:contract:divide-by-zero? js-window exn:fail:out-of-memory number->string odd? port-next-location vector->list SYMBOL call-with-values substring2 port-count-lines! PARAMETER error last-pair string->symbol VECTOR kernel:exn:fail:contract:continuation mutable-string? arity=? struct-type-property-accessor-procedure? PRIM> syntax-srclocs void? sixth unsafe-fx+ exn:fail:contract:variable? Void exn:fail:unsupported-message kernel:exn:break:hang-up unsafe-vector*-set! integer-sqrt exn:fail:filesystem:version inexact? exn:fail:syntax:missing-module-path exn:fail:network exn:fail:user-continuation-marks max zero? foldl fixnum? exn:fail:syntax:missing-module-exprs andmap exn:fail:filesystem:missing-module-continuation-marks string->keyword exn:fail:read:eof? rest STRING-PORT kernel:exn:fail:filesystem integer-sqrt/remainder symbol->string exn:fail:filesystem-continuation-marks kernel:exn:fail:contract:arity exn:fail:unsupported kernel:exn:fail:filesystem:exists pi list-ref raise-arity-error exn:break:terminate-message set-box! sin exn:fail:syntax:unbound-exprs exn:fail-continuation-marks exn:fail:filesystem:exists-continuation-marks vector exn:fail:user-message symbol-interned? NULL write unsafe-vector*-length gcd2 vector-copy! substring3 $/ filter make-struct-type js-import exn:fail:contract:arity-continuation-marks string->uninterned-symbol kernel:exn:fail:unsupported bytes-ref cons? exn:fail:contract-continuation-marks exn:fail:syntax-message str continuation-mark-set? continuation-mark-set->list namespace? kernel:exn:fail:network PRIM= PRIM- sqrt ninth newline exn:fail:filesystem:missing-module-path struct-type-descriptor-auto-field-values nan? values even? vector->pseudo-random-generator! inexact->exact kernel:exn:fail:filesystem:version list? append2 symbol->immutable-string immutable-box? exn:fail:user? struct-type-descriptor-inspector kernel:srcloc remove-continuation-mark-frame magnitude string-port? struct:keyword-procedure/arity-error box? exn:fail:filesystem-message image-part exact-integer? build-vector parameterization? exn:fail:read? for-each kernel:exn:fail:syntax current-parameterization PARAMETERIZATION keyword->string fourth unsafe-struct-ref* make-list string? sub1 exn:fail:contract? mutable-bytes? pseudo-random-generator->vector exn:fail:syntax:unbound-continuation-marks kernel:exn:fail:contract:non-fixnum-result seventh exn:fail:out-of-memory-message str-struct-type-descriptor array-end->list exn:fail:contract:variable exact-positive-integer? exact? rest-args->list list->vector eq? exn:fail:filesystem:missing-module modulo normalize-arity keyword=? make-string2 BOX immutable-vector? exn:fail:unsupported? exn:fail:read-message call-handled-body-label set-continuation-mark exn:fail-message immutable-string->string make-bytes2 raise-application-error object-name vector-ref namespace-undefine-variable! exn:fail:syntax:missing-module? exn:fail:filesystem? complex? exn:fail:syntax bytes-set! vector-fill! expt kernel:exn:fail:contract:divide-by-zero gensym PRIM>= eof select-handler/no-breaks pseudo-random-generator? subbytes exn:fail:contract:non-fixnum-result? unsafe-car eighth exn:fail:out-of-memory-continuation-marks single-flonum? empty exn:break:hang-up? exn:fail remainder make-base-namespace exn:fail:read:eof-continuation-marks exn:fail:network? exact-nonnegative-integer? string-append2 exn:fail:network:errno-continuation-marks make-empty-namespace Null unsafe-fx- exception-handler-key struct-type-property? kernel:exn:fail:out-of-memory struct-type-descriptor-immutables exn:fail:contract:variable-id bytes-copy exn:fail:user symbol=? raise-syntax-error exn-continuation-marks namespace-module-registry NAMESPACE vector-set! syntax-e new-apply-proc exn:fail:network:errno namespace-variable-value vector-immutable PRIM+ make-char exn:break:hang-up exn:fail:syntax-continuation-marks null? flonum? apply STRUCT exn:fail:contract KEYWORD unsafe-cdr parameter? exn:fail:filesystem:errno-message exn:fail:contract:arity string-upcase real->double-flonum exn:fail:filesystem:version-continuation-marks exn:break:terminate-continuation string>=? unsafe-vector-length closure? hash-set! exn-message $+ $- char=? exn:fail:filesystem:errno in-range vector->pseudo-random-generator struct-type-descriptor-super struct-type-descriptor-auto-field-indices keyword<? subbytes3 eof-object? struct? struct-type-descriptor-init-field-indices exn:fail:filesystem:missing-module? kernel:exn:break:terminate exn:fail:contract:arity-message acos integer? eqv? string<=? real? make-struct-type-descriptor arity-at-least-value asin vector-length make-primitive-string string->immutable-string exn:fail? exn:fail:contract:divide-by-zero-message str-struct bytes current-namespace substring exn:fail:filesystem:exists-message exn:fail:contract:arity? exn:fail:contract:non-fixnum-result-message first cdr exn bytes->Int8Array call-handled-body assoc->object MUTABLE-BYTES normalized-arity? kernel:exn:fail:syntax:unbound exn:fail:syntax:unbound? make-string1 immutable-bytes? exn:fail:read:eof-srclocs unbox js-call VOID make-hasheq namespace-mapped-symbols immutable-string? exn:fail:read:non-char-continuation-marks values? STRUCT-TYPE-PROPERTY-DESCRIPTOR exn:fail:read:non-char? exn:fail:out-of-memory? exn:fail:contract:continuation-continuation-marks positive? $* keyword? exn:fail:contract:divide-by-zero-continuation-marks list* exn:fail:syntax-exprs add1 fifth check-struct-type PAIR equal? cdar HASHEQ js-ref exn:break:terminate third select-handler/breaks-as-is exn:fail:network:errno? log make-struct-field-accessor namespace-base-phase pair? atan unsafe-struct-ref tenth raise-arity-error* list-tail angle current-inspector caar quotient/remainder unsafe-struct-set! arity-at-least? byte? exn:fail:read:non-char-srclocs reverse alt-reverse SYNTAX-OBJECT in-list exact->inexact boolean? bytes? js-date dispatch-case-lambda box-immutable exn:fail:read:non-char unsafe-fx> exn:break:hang-up-continuation VALUES current-pseudo-random-generator exn:fail:network-continuation-marks current-continuation-marks round negative? struct-type? rational? kernel:exn:fail:user exn:break? truncate EOF-OBJECT continuation-mark-set-first BYTES displayln string>? cadr exn:fail:read:eof PRIM<= string=? js-export js-import-from random arity-at-least CONTINUATION-MARK-SET bytes-length string<? array->list bytes=? inexact-real? match:error exn:fail:syntax? exn:fail:contract:continuation-message exn:break:terminate-continuation-marks kernel:exn:fail:syntax:missing-module kernel:exn:fail:read:non-char tan kernel:exn:fail:network:errno string-length exn:fail:syntax:missing-module box-cas! exn:fail:filesystem:errno? cons exn:fail:read-continuation-marks parameterization-key unsafe-vector-ref string->number exn:fail:filesystem:version-message namespace-set-variable-value! error-display-handler kernel:exn:fail:contract length unsafe-fx* quotient exn:break:terminate? exn:fail:read:non-char-message exn:fail:contract:variable-continuation-marks map console-log exn:fail:filesystem:exists bytes->immutable-bytes exn:fail:contract:divide-by-zero exn:break-continuation-marks make-vector exn:fail:filesystem make-arity-at-least min identifier? exn:fail:filesystem:errno-errno kernel:exn:fail:read exn:fail:read:eof-message list struct-type-descriptor-name ormap append string srcloc prop:named-keyword-procedure exn:fail:read display unsafe-vector*-ref list->array cddr js-document exp immutable? PRIM* exn:fail:syntax:missing-module-continuation-marks array? empty? exn:fail:syntax:unbound-message subbytes2 kernel:exn:fail exn:fail:network:errno-message exn:fail:contract:non-fixnum-result-continuation-marks kernel:exn exn:fail:network-message MUTABLE-STRING exn? make-bytes exn:fail:contract:continuation CLOS exn:break:hang-up-continuation-marks double-flonum? tag struct-type-descriptor-constructor-name exn:fail:contract:continuation? real-part kernel:exn:fail:read:eof procedure? second kernel:exn:fail:filesystem:errno char->integer immutable-bytes->bytes last string-ref vector? exn:fail:contract:non-fixnum-result unsafe-vector-set! symbol<? exn:fail:unsupported-continuation-marks mutable-vector? exn:fail:read-srclocs)
Loading

0 comments on commit b6ceb75

Please sign in to comment.