~ chicken-core (chicken-5) cdcafde90b95e90fbb1e37e360597566240a029d


commit cdcafde90b95e90fbb1e37e360597566240a029d
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Sun Jun 25 16:01:59 2017 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Wed Jun 28 22:19:15 2017 +1200

    Finalize (chicken load) by hiding `load' and `load-extension'
    
    `load-extension' was deprecated in favor of `require'. `load' must be
    exported by scheme, and it makes no sense to export it in two modules
    so we do not export it from (chicken load).
    
    This also adds those type database entries which were missing for the
    remaining exported procedures in (chicken load).
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/chicken.import.scm b/chicken.import.scm
index 8a5f28f8..7b0600a4 100644
--- a/chicken.import.scm
+++ b/chicken.import.scm
@@ -127,7 +127,6 @@
    (installation-repository . chicken.platform#installation-repository)
    (ir-macro-transformer . chicken.syntax#ir-macro-transformer)
    keyword-style
-   (load-extension . chicken.load#load-extension)
    (load-library . chicken.load#load-library)
    (load-noisily . chicken.load#load-noisily)
    (load-relative . chicken.load#load-relative)
diff --git a/core.scm b/core.scm
index 91f2ead6..4a450335 100644
--- a/core.scm
+++ b/core.scm
@@ -693,7 +693,7 @@
 			   ,(walk (caddr x) e se dest ldest h ln #f)))
 
 			((##core#require-for-syntax)
-			 (load-extension (cadr x))
+			 (chicken.load#load-extension (cadr x) '() 'require)
 			 '(##core#undefined))
 
 			((##core#require)
diff --git a/eval.scm b/eval.scm
index 772d0fb0..736de382 100644
--- a/eval.scm
+++ b/eval.scm
@@ -583,10 +583,8 @@
 			  (compile `(##sys#provide (##core#quote ,(cadr x))) e #f tf cntr se #f)]
 
 			 [(##core#require-for-syntax)
-			  (let ((id (cadr x)))
-			    (chicken.load#load-extension id)
-			    (compile '(##core#undefined)
-			     e #f tf cntr se #f))]
+			  (chicken.load#load-extension (cadr x) '() 'require)
+			  (compile '(##core#undefined) e #f tf cntr se #f)]
 
 			 [(##core#require)
 			  (let ((id         (cadr x))
@@ -876,9 +874,9 @@
 
 
 (module chicken.load
-  (dynamic-load-libraries
-   load load-extension load-library load-noisily load-relative load-verbose
-   provide provided? require set-dynamic-load-mode!)
+  (dynamic-load-libraries set-dynamic-load-mode!
+   load-library load-noisily load-relative load-verbose
+   provide provided? require)
 
 (import (except scheme load)
 	chicken
@@ -1098,13 +1096,14 @@
 		    (close-input-port in))))))))
       (##core#undefined))))
 
-(define (load filename . evaluator)
-  (load/internal filename (optional evaluator #f)))
+;; Exported by "scheme", so use full name to avoid exporting it here.
+;; TODO: Maybe change this later to (set! scheme#load (lambda ..))
+(define (chicken.load#load filename #!optional evaluator)
+  (load/internal filename evaluator))
 
-(define (load-relative filename . evaluator)
-  (load/internal
-   (make-relative-pathname ##sys#current-load-filename filename)
-   (optional evaluator #f)))
+(define (load-relative filename #!optional evaluator)
+  (let ((fn (make-relative-pathname ##sys#current-load-filename filename)))
+    (load/internal fn evaluator)))
 
 (define (load-noisily filename #!key (evaluator #f) (time #f) (printer #f))
   (load/internal filename evaluator #t time printer))
@@ -1258,7 +1257,7 @@
 		 (or (check pa)
 		     (loop (##sys#slot paths 1)) ) ) ) ) ) ) ))
 
-(define (load-extension/internal id alternates loc)
+(define (chicken.load#load-extension id alternates loc)
   (cond ((##sys#provided? id))
 	((any ##sys#provided? alternates))
 	((memq id core-units)
@@ -1270,17 +1269,9 @@
 	(else
 	 (##sys#error loc "cannot load extension" id))))
 
-(define (##sys#load-extension id #!optional (alternates '()) loc)
-  (load-extension/internal id alternates loc)
-  (##core#undefined))
-
-(define (load-extension id)
-  (##sys#check-symbol id 'load-extension)
-  (##sys#load-extension id '() 'load-extension))
-
 (define (require . ids)
   (for-each (cut ##sys#check-symbol <> 'require) ids)
-  (for-each (cut ##sys#load-extension <> '() 'require) ids))
+  (for-each (cut chicken.load#load-extension <> '() 'require) ids))
 
 (define (provide . ids)
   (for-each (cut ##sys#check-symbol <> 'provide) ids)
@@ -1332,9 +1323,10 @@
          (mark-static id path)
          (values `(##core#declare (uses ,id)) id 'static)))
       (else
-       (values `(##sys#load-extension
+       (values `(chicken.load#load-extension
 		 (##core#quote ,id)
-		 (##core#quote ,alternates))
+		 (##core#quote ,alternates)
+		 (##core#quote require))
 	       #f
 	       'dynamic)))))
 
diff --git a/modules.scm b/modules.scm
index 28cab3d6..c0d8816b 100644
--- a/modules.scm
+++ b/modules.scm
@@ -39,9 +39,9 @@
 
 (define-syntax d (syntax-rules () ((_ . _) (void))))
 
-(import chicken.internal
+(import scheme
+	chicken.internal
 	chicken.keyword
-	chicken.load
 	chicken.platform
 	chicken.syntax)
 
diff --git a/types.db b/types.db
index 40a5e05e..8aeaf28c 100644
--- a/types.db
+++ b/types.db
@@ -1210,14 +1210,17 @@
 
 ;; load
 
+(chicken.load#dynamic-load-libraries
+ (#(procedure #:clean) chicken.load#dynamic-load-libraries (#!optional (list-of string)) (list-of string)))
 (chicken.load#load (procedure chicken.load#load (string #!optional (procedure (*) . *)) undefined))
-(chicken.load#load-extension (#(procedure #:enforce) chicken.load#load-extension (symbol) undefined))
 (chicken.load#load-library (#(procedure #:enforce) chicken.load#load-library (symbol #!optional string) undefined))
+(chicken.load#load-noisily (procedure chicken.load#load-noisily (string #!optional (procedure (*) . *) boolean (procedure (*) . *)) undefined))
 (chicken.load#load-relative (#(procedure #:enforce) chicken.load#load-relative (string #!optional (procedure (*) . *)) undefined))
 (chicken.load#load-verbose (#(procedure #:clean) chicken.load#load-verbose (#!optional *) *))
 (chicken.load#provide (#(procedure #:clean #:enforce) chicken.load#provide (#!rest symbol) undefined))
 (chicken.load#provided? (#(procedure #:clean #:enforce) chicken.load#provided? (#!rest symbol) boolean))
 (chicken.load#require (#(procedure #:clean) chicken.load#require (#!rest symbol) undefined))
+(chicken.load#set-dynamic-load-mode! (#(procedure #:clean #:enforce) chicken.load#set-dynamic-load-mode! ((or symbol (list-of symbol))) undefined))
 
 ;; platform
 
Trap