Changeset 495 in project


Ignore:
Timestamp:
05/14/06 20:07:16 (14 years ago)
Author:
Kon Lovett
Message:

Exports

Location:
box
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • box/box-support.scm

    r469 r495  
    66(eval-when (compile)
    77        (declare
    8                 (usual-integrations)
     8                (fixnum)
    99                (inline)
    10                 (fixnum)
    1110                (export
    1211                        *finish-make-box-variable
     
    1716                        box-immutable?
    1817                        box-variable?)
    19         )
    20 
    21         (cond-expand
    22                 [paranoia]
    23                 [else
    24                         (declare
    25                                 (no-procedure-checks)
    26                                 (no-argc-checks)
    27                                 (no-bound-checks))]
    2818        )
    2919)
  • box/box.setup

    r469 r495  
    88                "box-mzs.scm"
    99                ,(make-dynld-filename "box-support")
    10                 ,(make-exports-filename "box-support")
    11                 "box.html")
     10                ,@(if exports? `(,(make-exports-filename "box-support")) '())
     11                "box.html" )
    1212 `(
    1313                (version "1.3")
     
    1515                (syntax)
    1616                (require-at-runtime box-support)
    17                 (exports
    18                         ,(make-exports-filename "box-support") )               
    19         ))
     17                ,@(if exports? `((exports ,(make-exports-filename "box-support")) '()) ) ) )
  • box/setup-header.scm

    r469 r495  
    1 ;; Setup Header
     1;;;; setup-header.scm
    22
    3 (define (->symbol base)
    4         (or (and (symbol? base) base)
    5                         (and (string? base) (string->symbol base))
    6                         base))
     3;;;; Kon Lovett, May '06
    74
    8 (define (make-filename base . extn)
    9   (apply make-pathname "" (->string base) extn))
     5;;
     6(define exports? (string>=? (chicken-version) "2.310"))
    107
    11 (define (make-docu-filename base)
    12   (make-filename base ".html"))
     8;;
    139
    14 (define (make-dynld-filename base)
    15   (make-filename base ##sys#load-dynamic-extension))
     10(define (->symbol obj)
     11        (or (and (string? obj) (string->symbol obj))
     12                        obj) )
    1613
    17 (define (make-source-filename base)
    18   (make-filename base ".scm"))
     14(define (make-filename bn . en)
     15  (apply make-pathname "" (->string bn) en) )
    1916
    20 (define (make-exports-filename base)
    21   (make-filename base ".exports"))
     17(define (make-docu-filename bn)
     18  (make-filename bn ".html") )
    2219
    23 (define (make-repository-pathname base)
    24   (make-pathname (repository-path) base))
     20(define (make-dynld-filename bn)
     21  (make-filename bn ##sys#load-dynamic-extension) )
    2522
    26 (define-macro (compile-dynld BASE . OPT)
     23(define (make-source-filename bn)
     24  (make-filename bn ".scm") )
     25
     26(define (make-exports-filename bn)
     27  (make-filename bn ".exports") )
     28
     29(define (make-repository-pathname bn)
     30  (make-pathname (repository-path) bn) )
     31
     32;;
     33
     34(define-macro (copy-to-repository FN)
     35        `(copy-file
     36                (make-pathname "." (->string ,FN))
     37                (make-pathname (repository-path) (->string ,FN))))
     38
     39(define-macro (compile-dynld DYN . OPT)
    2740        `(compile
    2841                -O2 -d0
    2942                -s
    30                 ,(make-source-filename BASE)
    31                 -o ,(make-dynld-filename BASE)
    32                 -check-imports
    33                 -emit-exports ,(make-exports-filename BASE)
    34                 ,@OPT))
     43                ,(make-source-filename DYN)
     44                -o ,(make-dynld-filename DYN)
     45                ,@(if exports? `(-check-imports) '())
     46                ,@(if exports? `(-emit-exports ,(make-exports-filename DYN)) '())
     47                ,@OPT) )
    3548
    36 (define-macro (copy-to-repository FILENAME)
    37         `(copy-file
    38                 (make-pathname "." (->string ,FILENAME))
    39                 (make-pathname (repository-path) (->string ,FILENAME))))
    40 
    41 (define-macro (install-dynld BASE VER . OPT)
     49(define-macro (install-dynld DYN VER . OPT)
    4250        `(begin
    43                 (compile-dynld ,BASE)
    44                 (install-extension ',(->symbol BASE)
     51                (compile-dynld ,DYN)
     52                (install-extension ',(->symbol DYN)
    4553                        '(
    46                                 ,(make-dynld-filename BASE)
    47                                 ,(make-exports-filename BASE)
    48                         )
     54                                ,(make-dynld-filename DYN)
     55                                ,@(if exports? `(,(make-exports-filename DYN)) '()) )
    4956                        '(
    5057                                ,@OPT
    51                                 (version
    52                                         ,VER )
    53                                 (exports
    54                                         ,(make-exports-filename BASE) )
    55                         ))) )
     58                                (version ,VER)
     59                                ,@(if exports? `((exports ,(make-exports-filename DYN))) '()) ) ) ) )
    5660
    57 (define-macro (install-dynld+docu BASE VER . OPT)
     61(define-macro (install-dynld+docu DYN VER . OPT)
    5862        `(begin
    59                 (compile-dynld ,BASE)
    60                 (install-extension ',(->symbol BASE)
     63                (compile-dynld ,DYN)
     64                (install-extension ',(->symbol DYN)
    6165                        '(
    62                                 ,(make-dynld-filename BASE)
    63                                 ,(make-exports-filename BASE)
    64                                 ,(make-docu-filename BASE)
    65                         )
     66                                ,(make-dynld-filename DYN)
     67                                ,(make-docu-filename DYN)
     68                                ,@(if exports? `(,(make-exports-filename DYN)) '()) )
    6669                        '(
    6770                                ,@OPT
    68                                 (version
    69                                         ,VER )
    70                                 (documentation
    71                                         ,(make-docu-filename BASE) )
    72                                 (exports
    73                                         ,(make-exports-filename BASE) )
    74                         ))) )
     71                                (documentation ,(make-docu-filename DYN))
     72                                (version ,VER)
     73                                ,@(if exports? `((exports ,(make-exports-filename DYN))) '()) ) ) ) )
    7574
    76 (define-macro (install-syntax BASE VER . OPT)
    77         `(install-extension ',(->symbol BASE)
     75(define-macro (install-syntax SYN VER . OPT)
     76        `(install-extension ',(->symbol SYN)
    7877                '(
    79                         ,(make-source-filename BASE)
    80                 )
     78                        ,(make-source-filename SYN) )
    8179                '(
    8280                        ,@OPT
    83                         (version
    84                                 ,VER )
    85                         (syntax)
    86                 )) )
     81                        (version ,VER)
     82                        (syntax) )))
    8783
    88 (define-macro (install-syntax+docu BASE VER . OPT)
    89         `(install-extension ',(->symbol BASE)
     84(define-macro (install-syntax+docu SYN VER . OPT)
     85        `(install-extension ',(->symbol SYN)
    9086                '(
    91                         ,(make-source-filename BASE)
    92                         ,(make-docu-filename BASE)
    93                 )
     87                        ,(make-source-filename SYN)
     88                        ,(make-docu-filename SYN) )
    9489                '(
    9590                        ,@OPT
    96                         (version
    97                                 ,VER )
    98                         (documentation
    99                                 ,(make-docu-filename BASE) )
    100                         (syntax)
    101                 )) )
     91                        (version ,VER)
     92                        (documentation ,(make-docu-filename SYN))
     93                        (syntax) ) ) )
    10294
    10395(define-macro (install-dynld+syntax SYN DYN VER . OPT)
    104         `(begin
    105                 (compile-dynld ,DYN)
    106                 (install-extension ',(->symbol SYN)
    107                         '(
    108                                 ,(make-source-filename SYN)
    109                                 ,(make-dynld-filename DYN)
    110                                 ,(make-exports-filename DYN)
    111                         )
    112                         '(
    113                                 ,@OPT
    114                                 (version
    115                                         ,VER )
    116                                 (syntax)
    117                                 (require-at-runtime
    118                                         ,(->symbol DYN) )
    119                                 (exports
    120                                         ,(make-exports-filename DYN) )
    121                         ))) )
     96        (let ([RQR@RUN '()])
     97                (let (
     98                                [OPT
     99                                        (let loop ([lst OPT] [opt '()])
     100                                                (if (null? lst)
     101                                                        opt
     102                                                        (let ([itm (car lst)])
     103                                                                (if (and (pair? itm) (eq? 'require-at-runtime (car itm)))
     104                                                                        (begin
     105                                                                                (set! RQR@RUN (cons itm RQR@RUN))
     106                                                                                (loop (cdr lst) opt))
     107                                                                        (loop (cdr lst) (cons itm opt))))))])
     108                        `(begin
     109                                (compile-dynld ,DYN)
     110                                (install-extension ',(->symbol SYN)
     111                                        '(
     112                                                ,(make-source-filename SYN)
     113                                                ,(make-dynld-filename DYN)
     114                                                ,@(if exports? `(,(make-exports-filename DYN)) '()) )
     115                                        '(
     116                                                ,@OPT
     117                                                (syntax)
     118                                                (require-at-runtime ,(->symbol DYN) ,@RQR@RUN)
     119                                                (version ,VER)
     120                                                ,@(if exports? `((exports ,(make-exports-filename DYN))) '()) ) ) ) ) ) )
    122121
    123122(define-macro (install-dynld+syntax+docu SYN DYN VER . OPT)
    124         `(begin
    125                 (compile-dynld ,DYN)
    126                 (install-extension ',(->symbol SYN)
    127                         '(
    128                                 ,(make-source-filename SYN)
    129                                 ,(make-dynld-filename DYN)
    130                                 ,(make-exports-filename DYN)
    131                                 ,(make-docu-filename SYN)
    132                         )
    133                         '(
    134                                 ,@OPT
    135                                 (version
    136                                         ,VER )
    137                                 (documentation
    138                                         ,(make-docu-filename SYN) )
    139                                 (syntax)
    140                                 (require-at-runtime
    141                                         ,(->symbol DYN) )
    142                                 (exports
    143                                         ,(make-exports-filename DYN) )
    144                         ))) )
     123        (let ([RQR@RUN '()])
     124                (let (
     125                                [OPT
     126                                        (let loop ([lst OPT] [opt '()])
     127                                                (if (null? lst)
     128                                                        opt
     129                                                        (let ([itm (car lst)])
     130                                                                (if (and (pair? itm) (eq? 'require-at-runtime (car itm)))
     131                                                                        (begin
     132                                                                                (set! RQR@RUN (cons itm RQR@RUN))
     133                                                                                (loop (cdr lst) opt))
     134                                                                        (loop (cdr lst) (cons itm opt))))))])
     135                        `(begin
     136                                (compile-dynld ,DYN)
     137                                (install-extension ',(->symbol SYN)
     138                                        '(
     139                                                ,(make-docu-filename SYN)
     140                                                ,(make-source-filename SYN)
     141                                                ,(make-dynld-filename DYN)
     142                                                ,@(if exports? `(,(make-exports-filename DYN)) '()) )
     143                                        '(
     144                                                ,@OPT
     145                                                (documentation ,(make-docu-filename SYN))
     146                                                (syntax)
     147                                                (require-at-runtime ,(->symbol DYN) ,@RQR@RUN)
     148                                                (version ,VER)
     149                                                ,@(if exports? `((exports ,(make-exports-filename DYN))) '()) ) ) ) ) ) )
Note: See TracChangeset for help on using the changeset viewer.