Changeset 11418 in project


Ignore:
Timestamp:
07/24/08 18:35:33 (12 years ago)
Author:
felix winkelmann
Message:

added syntax->datum; added some notes to module/macro chapter

Location:
chicken/branches/hygienic
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • chicken/branches/hygienic/chicken.import.scm

    r11395 r11418  
    176176         extension-information
    177177         repository-path
    178          with-exception-handler)
     178         with-exception-handler
     179         syntax->datum)
    179180 ##sys#chicken-macro-environment)       ;*** incorrect - won't work in compiled executable
  • chicken/branches/hygienic/expand.scm

    r11391 r11418  
    108108          (else x))))
    109109
     110(define (syntax->datum exp) (##sys#strip-syntax exp))
     111
    110112
    111113;;; Macro handling
     
    158160    (dd `(STATIC-SE: ,@(map-se se)))
    159161    (handle-exceptions ex
     162        ;; modify error message in condition object to include
     163        ;; currently expanded macro-name
    160164        (##sys#abort
    161165         (if (and (##sys#structure? ex 'condition)
  • chicken/branches/hygienic/manual/Modules and macros

    r11401 r11418  
    6060Similar to {{quote}} but retains syntactical context information for
    6161embedded identifiers.
     62
     63
     64==== syntax->datum
     65
     66 [procedure] (syntax->datum EXPRESSION)
     67
     68Strips all syntactical information from {{EXPRESSION}}, returning a new expression
     69where symbols have all context-information removed.
    6270
    6371
     
    219227module.
    220228
     229CHICKEN's module system has the following features and shortcomings:
     230
     231* Indirect exports for syntax definitions must be listed
     232* Separation of copile/expansion-time and run-time code is provided, which allows cross compilation
     233* Module-generating code is only created, when needed
     234* Supports batch-compilation of separate compilation units
     235* No separate "identifier" type is used, all identifiers appearing in code and processed in expansions are symbols
     236* The module system is fully optional
     237
    221238
    222239==== module
     
    459476be one.
    460477
    461 * Reexport of syntax is currently not supported
     478* Reexport of syntactic bindings is currently not supported
     479* In evaluated code, loading a file containing module information and importing from a module contained in that file will not work when the loading and import is performed in the same toplevel expression (this does not apply, when import libraries are used)
    462480* Currently value bindings imported by {{import}} and {{import-for-syntax}} share the same import-environment.
    463481
  • chicken/branches/hygienic/misc/mini-setup.scm

    r11401 r11418  
    2525  (define program-path
    2626    (make-parameter
    27      (let ((path (pathname-directory (car (argv)))))
     27     (and-let* ((path (pathname-directory (car (argv)))))
    2828       (make-pathname
    2929        (if (absolute-pathname? path)
Note: See TracChangeset for help on using the changeset viewer.