* added current-library-collection and library-name to
ikarus.system.$bootstrap
This commit is contained in:
parent
6bdb50004a
commit
026f786bf9
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
|
||||
(library (ikarus.code-objects)
|
||||
(library (ikarus code-objects)
|
||||
(export
|
||||
make-code code-reloc-vector code-freevars
|
||||
code-size code-ref code-set! set-code-reloc-vector!
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
(library (ikarus.compiler)
|
||||
(library (ikarus compiler)
|
||||
(export compile-core-expr-to-port assembler-output
|
||||
current-primitive-locations eval-core)
|
||||
(import
|
||||
|
@ -8,8 +8,8 @@
|
|||
(except (ikarus)
|
||||
compile-core-expr-to-port assembler-output
|
||||
current-primitive-locations eval-core)
|
||||
(ikarus.intel-assembler)
|
||||
(ikarus.fasl.write))
|
||||
(ikarus intel-assembler)
|
||||
(ikarus fasl write))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
(library (ikarus fasl read)
|
||||
(export fasl-read)
|
||||
(import (ikarus)
|
||||
(ikarus.code-objects)
|
||||
(ikarus code-objects)
|
||||
(ikarus system $codes)
|
||||
(ikarus system $records))
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
|
||||
(library (ikarus.intel-assembler)
|
||||
(library (ikarus intel-assembler)
|
||||
(export assemble-sources)
|
||||
(import
|
||||
(ikarus)
|
||||
(ikarus.code-objects)
|
||||
(ikarus code-objects)
|
||||
(ikarus system $pairs))
|
||||
|
||||
(define fold
|
||||
|
|
|
@ -4,10 +4,11 @@
|
|||
(library (ikarus library-manager)
|
||||
(export imported-label->binding library-subst
|
||||
installed-libraries visit-library
|
||||
library-name
|
||||
find-library-by-name install-library
|
||||
library-spec invoke-library
|
||||
extend-library-subst! extend-library-env!
|
||||
current-library-expander)
|
||||
current-library-expander current-library-collection)
|
||||
(import (except (ikarus) installed-libraries))
|
||||
|
||||
(define (make-collection)
|
||||
|
|
|
@ -131,7 +131,12 @@
|
|||
(set-rib-label*! rib (cons label (rib-label* rib)))))]
|
||||
[else (error 'extend-rib/check! "~s is not a rib" rib)]))
|
||||
(module (make-stx stx? stx-expr stx-mark* stx-subst*)
|
||||
(define-record stx (expr mark* subst*)))
|
||||
(define-record stx (expr mark* subst*))
|
||||
(set-rtd-printer! (type-descriptor stx)
|
||||
(lambda (x p)
|
||||
(display "#<syntax " p)
|
||||
(display (stx->datum x) p)
|
||||
(display ">" p))))
|
||||
(define (seal-rib! rib)
|
||||
(let ([sym* (rib-sym* rib)])
|
||||
(unless (null? sym*)
|
||||
|
@ -433,8 +438,8 @@
|
|||
(define-syntax stx-error
|
||||
(lambda (x)
|
||||
(syntax-case x ()
|
||||
[(_ stx) #'(error #f "invalid syntax ~s" (strip stx '()))]
|
||||
[(_ stx msg) #'(error #f "~a: ~s" msg (strip stx '()))])))
|
||||
[(_ stx) #'(error 'stx-error "invalid syntax ~s" (strip stx '()))]
|
||||
[(_ stx msg) #'(error 'stx-error "~a: ~s" msg (strip stx '()))])))
|
||||
(define sanitize-binding
|
||||
(lambda (x src)
|
||||
(cond
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
#!/usr/bin/env ikarus -b ikarus.boot --r6rs-script
|
||||
|
||||
;(import
|
||||
; ;(only (ikarus system $bootstrap) boot-library-expand)
|
||||
; (ikarus.compiler)
|
||||
; (ikarus.syntax)
|
||||
; (except (ikarus)
|
||||
; assembler-output))
|
||||
|
||||
;(import (except (ikarus) assembler-output)
|
||||
; (ikarus compiler)
|
||||
; (except (ikarus system $bootstrap)
|
||||
; eval-core
|
||||
; current-primitive-locations
|
||||
; compile-core-expr-to-port))
|
||||
|
||||
(import (ikarus) (ikarus system $bootstrap))
|
||||
|
||||
|
@ -431,6 +432,8 @@
|
|||
[current-primitive-locations $boot]
|
||||
[boot-library-expand $boot]
|
||||
[eval-core $boot]
|
||||
[current-library-collection $boot]
|
||||
[library-name $boot]
|
||||
|
||||
[$car $pairs]
|
||||
[$cdr $pairs]
|
||||
|
@ -682,7 +685,7 @@
|
|||
(import
|
||||
(only (ikarus library-manager)
|
||||
install-library)
|
||||
(only (ikarus.compiler)
|
||||
(only (ikarus compiler)
|
||||
current-primitive-locations)
|
||||
(ikarus))
|
||||
(current-primitive-locations
|
||||
|
@ -695,13 +698,58 @@
|
|||
(boot-library-expand code)])
|
||||
code)))
|
||||
|
||||
|
||||
;;; (define (install-system-libraries export-subst export-env)
|
||||
;;; (define (install legend-entry)
|
||||
;;; (let ([key (car legend-entry)]
|
||||
;;; [name (cadr legend-entry)]
|
||||
;;; [visible? (caddr legend-entry)])
|
||||
;;; (let ([id (gensym)]
|
||||
;;; [name name]
|
||||
;;; [version '()]
|
||||
;;; [import-libs '()]
|
||||
;;; [visit-libs '()]
|
||||
;;; [invoke-libs '()])
|
||||
;;; (let-values ([(subst env)
|
||||
;;; (if (equal? name '(ikarus system $all))
|
||||
;;; (values export-subst export-env)
|
||||
;;; (values
|
||||
;;; (get-export-subset key export-subst)
|
||||
;;; '()))])
|
||||
;;; (install-library
|
||||
;;; id name version import-libs visit-libs invoke-libs
|
||||
;;; subst env void void visible?)))))
|
||||
;;; (for-each install library-legend))
|
||||
|
||||
; (let ([code `(library (ikarus primlocs)
|
||||
; (export) ;;; must be empty
|
||||
; (import
|
||||
; (only (ikarus library-manager)
|
||||
; install-library)
|
||||
; (only (ikarus.compiler)
|
||||
; current-primitive-locations)
|
||||
; (ikarus))
|
||||
; (current-primitive-locations
|
||||
; (lambda (x)
|
||||
; (cond
|
||||
; [(assq x ',primlocs) => cdr]
|
||||
; [else #f])))
|
||||
; ,@(map build-library library-legend))])
|
||||
; (let-values ([(code empty-subst empty-env)
|
||||
; (boot-library-expand code)])
|
||||
; code)))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
(define (expand-all files)
|
||||
(let ([code* '()]
|
||||
[subst '()]
|
||||
[env '()])
|
||||
(for-each
|
||||
(lambda (file)
|
||||
;(printf "expanding ~s\n" file)
|
||||
(printf "expanding ~s\n" file)
|
||||
(load file
|
||||
(lambda (x)
|
||||
(let-values ([(code export-subst export-env)
|
||||
|
@ -719,6 +767,21 @@
|
|||
|
||||
(verify-map)
|
||||
|
||||
;;; (let* ([names (append (map car ikarus-system-macros)
|
||||
;;; (map car ikarus-procedures-map))]
|
||||
;;; [labels (map (lambda (x) (gensym "boot")) names)]
|
||||
;;; [bindings
|
||||
;;; (append (map cadr ikarus-system-macros)
|
||||
;;; (map (lambda (x)
|
||||
;;; (cons 'core-prim (car x)))
|
||||
;;; ikarus-procedures-map))]
|
||||
;;; [subst (map cons names labels)]
|
||||
;;; [env (map cons labels bindings)])
|
||||
;;; (install-system-libraries subst env))
|
||||
;;;
|
||||
;;; (printf "installed base libraries ~s\n"
|
||||
;;; (installed-libraries))
|
||||
|
||||
(time-it "the entire bootstrap process"
|
||||
(lambda ()
|
||||
(let-values ([(core* locs)
|
||||
|
|
Loading…
Reference in New Issue