Changeset 11524 in project


Ignore:
Timestamp:
08/01/08 01:17:42 (12 years ago)
Author:
felix winkelmann
Message:

re-loading imported module into interpreter incorrectly renamed export list (export-lists are now sytax-stripped); started with guerilla setup

Location:
chicken/branches/hygienic
Files:
3 added
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • chicken/branches/hygienic/TODO

    r11401 r11524  
    99*** expansion of r5rs_pitfall 4.2 incorrect
    1010    possibly due to a non-aliased implicit "begin" somewhere
     11
     12** dirty-macros.scm loops when using `defile'
    1113
    1214** modules
  • chicken/branches/hygienic/compiler.scm

    r11401 r11524  
    733733                                (or (eq? #t (caddr x))
    734734                                    (map (lambda (exp)
    735                                            (cond ((symbol? exp) (lookup exp se))
     735                                           (cond ((symbol? exp) exp)
    736736                                                 ((and (pair? exp)
    737737                                                       (let loop ((exp exp))
     
    739739                                                             (and (symbol? (car exp))
    740740                                                                  (loop (cdr exp))))))
    741                                                   (map (cut lookup <> se) exp) )
     741                                                  exp)
    742742                                                 (else
    743743                                                  (##sys#syntax-error-hook
    744744                                                   'module
    745745                                                   "invalid export syntax" exp name))))
    746                                          (caddr x)))))
     746                                         (##sys#strip-syntax (caddr x))))))
    747747                          (when (##sys#current-module)
    748748                            (##sys#syntax-error-hook 'module "modules may not be nested" name))
  • chicken/branches/hygienic/eval.scm

    r11401 r11524  
    623623                                  (or (eq? #t (caddr x))
    624624                                      (map (lambda (exp)
    625                                              (cond ((symbol? exp) (rename exp se))
     625                                             (cond ((symbol? exp) exp)
    626626                                                   ((and (pair? exp)
    627627                                                         (let loop ((exp exp))
     
    629629                                                               (and (symbol? (car exp))
    630630                                                                    (loop (cdr exp))))))
    631                                                     (map (cut rename <> se) exp) )
     631                                                    exp)
    632632                                                   (else
    633633                                                    (##sys#syntax-error-hook
    634634                                                     'module
    635635                                                     "invalid export syntax" exp name))))
    636                                            (caddr x)))))
     636                                           (##sys#strip-syntax (caddr x))))))
    637637                            (when (##sys#current-module)
    638638                              (##sys#syntax-error-hook 'module "modules may not be nested" name))
    639639                            (parameterize ((##sys#current-module
    640                                             (##sys#register-module name exports) )
     640                                            (##sys#register-module name exports))
    641641                                           (##sys#current-environment '())
    642642                                           (##sys#macro-environment ##sys#initial-macro-environment))
  • chicken/branches/hygienic/expand.scm

    r11493 r11524  
    11941194    `(##core#module
    11951195      ,(cadr x)
    1196       ,(if (c (r '*) (caddr x)) #t (caddr x))
     1196      ,(if (c (r '*) (caddr x))
     1197           #t
     1198           (caddr x))
    11971199      ,@(cdddr x)))))
    11981200
  • chicken/branches/hygienic/utils.scm

    r10952 r11524  
    440440        [file-exists? file-exists?]
    441441        [call-with-output-file call-with-output-file] )
    442     (lambda ext
    443       (let ([dir (or (getenv "TMPDIR") (getenv "TEMP") (getenv "TMP"))]
    444             [ext (if (pair? ext) (car ext) "tmp")])
     442    (lambda (#!optional (ext "tmp"))
     443      (let ([dir (or (getenv "TMPDIR") (getenv "TEMP") (getenv "TMP") "/tmp")])
    445444        (##sys#check-string ext 'create-temporary-file)
    446445        (let loop ()
    447446          (let* ([n (##sys#fudge 16)]
    448447                 [pn (make-pathname dir (##sys#string-append "t" (number->string n 16)) ext)] )
    449             (if (file-exists? pn)
    450                 (loop)
    451                 (call-with-output-file pn (lambda (p) pn)) ) ) ) ) ) ) )
     448            (cond ((file-exists? pn) (loop))
     449                  (else (call-with-output-file pn (lambda (p) pn)) ) ) ) ) ) ) ) )
    452450
    453451;; Directory string or list only contains path-separators
Note: See TracChangeset for help on using the changeset viewer.