Self-hosted version compiles now, but is very broken...

This commit is contained in:
Justin Ethier 2015-07-01 22:58:36 -04:00
parent a6da96ba57
commit f63df9fd12
8 changed files with 26 additions and 11 deletions

View file

@ -21,9 +21,15 @@ scheme/read.o: cyclone scheme/read.sld parser.scm
scheme/write.o: cyclone scheme/write.sld
./cyclone scheme/write.sld
scheme/cyclone/common.o: scheme/cyclone/common.sld
./cyclone scheme/cyclone/common.sld
scheme/cyclone/util.o: scheme/cyclone/util.sld
./cyclone scheme/cyclone/util.sld
common.so: scheme/cyclone/common.scm
csc -s scheme/cyclone/common.scm
util.so: util.scm
csc -s util.scm
@ -59,12 +65,13 @@ debug:
debug2: libcyclone.so.1
gcc test.c -L. -lcyclone -I. -g -o test
cyclone: cyclone.scm transforms.so util.so cgen.so libraries.so parser.so libcyclone.a
cyclone: cyclone.scm transforms.so util.so cgen.so libraries.so parser.so common.so libcyclone.a
csc cyclone.scm
#scheme/cyclone/util.o: cyclone scheme/cyclone/util.sld
.PHONY: self
self:
./cyclone scheme/cyclone/common.sld
./cyclone scheme/cyclone/libraries.sld
./cyclone scheme/cyclone/transforms.sld
./cyclone scheme/cyclone/cgen.sld
@ -96,7 +103,7 @@ test2: examples/hello-library/int-test/hello.c libcyclone.a
## END temporary directives
###########################
icyc: cyclone icyc.scm eval.scm libraries.scm parser.scm runtime.h scheme/base.o scheme/read.o scheme/write.o scheme/char.o scheme/eval.o scheme/file.o scheme/cyclone/util.o
icyc: cyclone icyc.scm eval.scm libraries.scm parser.scm runtime.h scheme/base.o scheme/read.o scheme/write.o scheme/char.o scheme/eval.o scheme/file.o scheme/cyclone/util.o scheme/cyclone/common.o
./cyclone icyc.scm
.PHONY: tags

View file

@ -10,6 +10,7 @@
; (scheme file)
; (scheme read)
; (scheme write)
; (scheme cyclone common)
; (scheme cyclone util)
; (scheme cyclone cgen)
; (scheme cyclone transforms)
@ -26,6 +27,7 @@
(require-extension extras) ;; pretty-print
(require-extension chicken-syntax) ;; when
(require-extension srfi-1) ;; every
(load (string-append (cyc:get-lib-dir) "scheme/cyclone/common.so"))
(load (string-append (cyc:get-lib-dir) "parser.so"))
(load (string-append (cyc:get-lib-dir) "util.so"))
(load (string-append (cyc:get-lib-dir) "libraries.so"))

View file

@ -4,7 +4,8 @@
;;
;; This module contains a simple Read-Eval-Print Loop
;;
(import (scheme base)
(import (scheme cyclone common)
(scheme base)
(scheme char)
(scheme read)
(scheme write)

View file

@ -1,8 +1,5 @@
(define-library (scheme base)
(export
*Cyc-version-banner*
*c-file-header-comment*
*version-banner*
; TODO: need filter for the next two. also, they really belong in SRFI-1, not here
;delete
;delete-duplicates
@ -72,9 +69,7 @@
newline
write-char
)
(include "common.scm")
(begin
(define *Cyc-version-banner* *version-banner*)
;; TODO: The whitespace characters are space, tab, line feed, form feed (not in parser yet), and carriage return.
(define call-with-current-continuation call/cc)
;; TODO: this is from r7rs, but is not really good enough by itself

10
scheme/cyclone/common.sld Normal file
View file

@ -0,0 +1,10 @@
(define-library (scheme cyclone common)
(export
*Cyc-version-banner*
*version*
*version-banner*
*c-file-header-comment*
*features*)
(include "common.scm")
(begin
(define *Cyc-version-banner* *version-banner*)))

View file

@ -5,6 +5,7 @@
(scheme eval)
(scheme read)
(scheme write)
(scheme cyclone common)
(scheme cyclone util)
(scheme cyclone libraries)
)
@ -117,6 +118,5 @@
pos-in-list
closure-convert
)
(include "../common.scm")
(include "../../transforms.scm"))

View file

@ -8,8 +8,8 @@
;;
(cond-expand
(chicken
(load (string-append (cyc:get-lib-dir) "scheme/common.scm")))
; (chicken
; (load (string-append (cyc:get-lib-dir) "scheme/common.scm")))
(cyclone
;; Temporary work-around for pp not being implemented yet
(define pretty-print write))