guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 05/05: Add inlinable-exports field to modules


From: Andy Wingo
Subject: [Guile-commits] 05/05: Add inlinable-exports field to modules
Date: Sun, 4 Apr 2021 16:24:20 -0400 (EDT)

wingo pushed a commit to branch wip-inlinable-exports
in repository guile.

commit f60e1fab647ef8977ef2fb37fcb4bfe4124e9987
Author: Andy Wingo <wingo@pobox.com>
AuthorDate: Fri Apr 2 15:12:09 2021 +0200

    Add inlinable-exports field to modules
    
    * module/ice-9/boot-9.scm (module): Add inlinable-exports field.
    (define-module*): Add #:inlinable-exports kwarg.
---
 module/ice-9/boot-9.scm | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 165fa25..77d25ef 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -2513,7 +2513,8 @@ name extensions listed in %load-extensions."
      public-interface
      filename
      next-unique-id
-     (replacements #:no-setter))))
+     (replacements #:no-setter)
+     inlinable-exports)))
 
 
 ;; make-module &opt size uses binder
@@ -2539,7 +2540,7 @@ initial uses list, or binding procedure."
                       '()
                       (make-weak-key-hash-table) #f
                       (make-hash-table) #f #f #f 0
-                      (make-hash-table)))
+                      (make-hash-table) #f))
 
 
 
@@ -3380,7 +3381,8 @@ error if selected binding does not exist in the used 
module."
 (define* (define-module* name
            #:key filename pure version (imports '()) (exports '())
            (replacements '()) (re-exports '()) (re-export-replacements '())
-           (autoloads '()) (duplicates #f) transformer declarative?)
+           (autoloads '()) (duplicates #f) transformer declarative?
+           inlinable-exports)
   (define (list-of pred l)
     (or (null? l)
         (and (pair? l) (pred (car l)) (list-of pred (cdr l)))))
@@ -3446,6 +3448,11 @@ error if selected binding does not exist in the used 
module."
             (sym (car (last-pair transformer))))
         (set-module-transformer! module (module-ref iface sym))))
 
+    (when inlinable-exports
+      (unless (procedure? inlinable-exports)
+        (error "expected inlinable-exports to be a procedure" 
inlinable-exports))
+      (set-module-inlinable-exports! module inlinable-exports))
+
     (run-hook module-defined-hook module)
     module))
 
@@ -3481,7 +3488,7 @@ error if selected binding does not exist in the used 
module."
               #:warning "Failed to autoload ~a in ~a:\n" sym name))))
     (module-constructor (make-hash-table 0) '() b #f #f name 'autoload #f
                         (make-hash-table 0) '() (make-weak-value-hash-table) #f
-                        (make-hash-table 0) #f #f #f 0 (make-hash-table 0))))
+                        (make-hash-table 0) #f #f #f 0 (make-hash-table 0) 
#f)))
 
 (define (module-autoload! module . args)
   "Have @var{module} automatically load the module named @var{name} when one



reply via email to

[Prev in Thread] Current Thread [Next in Thread]