From 44bd8986d781ebca89506d5ea7c4cfc4eb456512 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 14 Dec 2016 03:35:15 +0000 Subject: [PATCH] WIP --- scheme/cyclone/cps-optimizations.sld | 24 ++++++++++--- scheme/cyclone/primitives.sld | 53 +++++++++++++++++++++++++++- 2 files changed, 72 insertions(+), 5 deletions(-) diff --git a/scheme/cyclone/cps-optimizations.sld b/scheme/cyclone/cps-optimizations.sld index 70f881cd..e264fa31 100644 --- a/scheme/cyclone/cps-optimizations.sld +++ b/scheme/cyclone/cps-optimizations.sld @@ -649,13 +649,29 @@ (define (prim-creates-mutable-obj? prim) (member prim - '(cons + '( + ;apply ;; ?? + cons make-vector make-bytevector - bytevector bytevector-append bytevector-copy - string->utf8 number->string symbol->string list->string utf8->string - string-append string substring Cyc-installation-dir read-line + bytevector + bytevector-append + bytevector-copy + string->utf8 + number->string + symbol->string + list->string + utf8->string + read-line + string-append + string + substring + Cyc-installation-dir Cyc-compilation-environment + ; Cyc-bytevector-copy + ; Cyc-utf8->string + ; Cyc-string->utf8 + ; list->vector ))) (define (prim-calls-inlinable? prim-calls) diff --git a/scheme/cyclone/primitives.sld b/scheme/cyclone/primitives.sld index 04bb9c86..1177d83f 100644 --- a/scheme/cyclone/primitives.sld +++ b/scheme/cyclone/primitives.sld @@ -814,7 +814,58 @@ Cyc-fast-gt Cyc-fast-lt Cyc-fast-gte - Cyc-fast-lte))) + Cyc-fast-lte +; Cyc-global-vars +; Cyc-get-cvar +; Cyc-cvar? ;; Cyclone-specific +; Cyc-opaque? +; Cyc-has-cycle? +; Cyc-stdout +; Cyc-stdin +; Cyc-stderr +; Cyc-list +; %halt +; exit +; cons +; cell-get +; cell +; Cyc-fast-member +; Cyc-fast-assoc +; assv +; assq +; memq +; memv +; length +; 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 +; boolean? +; char? +; eof-object? +; null? +; number? +; real? +; integer? +; pair? +; port? +; procedure? +; Cyc-macro? +; vector? +; string? +; symbol? + ))) (define (prim:inline-convert-prim-call prim-call) (cond