Extra libraries found in $pkglibdir can now be imported directly.

For example, (import (streams)) just works!
This commit is contained in:
Abdulaziz Ghuloum 2007-11-18 22:46:00 -05:00
parent 61fe1ce007
commit a7680d723d
7 changed files with 23 additions and 10 deletions

View File

@ -4,12 +4,13 @@ EXTRA_DIST=ikarus.boot.orig ikarus.enumerations.ss ikarus.exceptions.ss ikarus.a
all: $(nodist_pkglib_DATA)
ikarus.version.ss: Makefile
ikarus.config.ss: Makefile
echo '(define ikarus-version "$(PACKAGE_VERSION)")' >$@
echo '(define ikarus-lib-dir "$(pkglibdir)")' >>$@
CLEANFILES=$(nodist_pkglib_DATA) ikarus.version.ss
CLEANFILES=$(nodist_pkglib_DATA) ikarus.config.ss
ikarus.boot: $(EXTRA_DIST) ikarus.version.ss
ikarus.boot: $(EXTRA_DIST) ikarus.config.ss
../src/ikarus -b ./ikarus.boot.orig --r6rs-script makefile.ss
# pkglibdir

View File

@ -183,7 +183,7 @@ EXTRA_DIST = ikarus.boot.orig ikarus.enumerations.ss \
ikarus/code-objects.ss ikarus/compiler.ss \
ikarus/intel-assembler.ss ikarus/fasl/write.ss \
unicode/unicode-char-cases.ss unicode/unicode-charinfo.ss
CLEANFILES = $(nodist_pkglib_DATA) ikarus.version.ss
CLEANFILES = $(nodist_pkglib_DATA) ikarus.config.ss
all: all-am
.SUFFIXES:
@ -369,10 +369,11 @@ uninstall-am: uninstall-nodist_pkglibDATA
all: $(nodist_pkglib_DATA)
ikarus.version.ss: Makefile
ikarus.config.ss: Makefile
echo '(define ikarus-version "$(PACKAGE_VERSION)")' >$@
echo '(define ikarus-lib-dir "$(pkglibdir)")' >>$@
ikarus.boot: $(EXTRA_DIST) ikarus.version.ss
ikarus.boot: $(EXTRA_DIST) ikarus.config.ss
../src/ikarus -b ./ikarus.boot.orig --r6rs-script makefile.ss
# pkglibdir

Binary file not shown.

View File

@ -23,7 +23,7 @@
(import (ikarus))
(letrec-syntax ([compile-time-string
(lambda (x)
(include "ikarus.version.ss")
(include "ikarus.config.ss")
ikarus-version)])
(define (print-greeting)
(printf "Ikarus Scheme version ~a\n" (compile-time-string))
@ -37,6 +37,10 @@
(import (ikarus)
(ikarus greeting)
(only (ikarus load) load-r6rs-top-level))
(library-path
(let ()
(include "ikarus.config.ss")
(list "." ikarus-lib-dir)))
(let-values ([(files script script-type args)
(let f ([args (command-line-arguments)])
(cond

View File

@ -382,6 +382,7 @@
[pointer-value i]
[system i]
[installed-libraries i]
[library-path i]
[current-primitive-locations $boot]
[boot-library-expand $boot]
[current-library-collection $boot]

View File

@ -3400,7 +3400,14 @@
(define (eval-binding x)
(let ((loc (car x)) (expr (cdr x)))
(cond
(loc (set-symbol-value! loc (eval-core (expanded->core expr))))
(loc (set-symbol-value! loc
(let ([g (gensym loc)])
(eval-core
(expanded->core
(build-application no-source
(build-lambda no-source
(list g) g)
(list expr)))))))
(else (eval-core (expanded->core expr))))))
(let ((rtc (make-collector))
(itc (make-collector))

View File

@ -23,7 +23,7 @@
visit-library library-name library-version library-exists?
find-library-by-name install-library library-spec invoke-library
extend-library-subst! extend-library-env! current-library-expander
current-library-collection)
current-library-collection library-path)
(import (rnrs) (psyntax compat) (rnrs r5rs))
(define (make-collection)
@ -76,7 +76,6 @@
'(".")
(lambda (x)
(if (and (list? x) (for-all string? x))
;(map values x)
(map (lambda (x) x) x)
(error 'library-path "not a list of strings" x)))))