Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== Outdated egg! This is an egg for CHICKEN 3, the unsupported old release. You're almost certainly looking for [[/eggref/4/riaxpander|the CHICKEN 4 version of this egg]], if it exists. If it does not exist, there may be equivalent functionality provided by another egg; have a look at the [[https://wiki.call-cc.org/chicken-projects/egg-index-4.html|egg index]]. Otherwise, please consider porting this egg to the current version of CHICKEN. [[tags: egg]] == Riaxpander === Introduction Explicit renaming macros, syntactic-closures and {{syntax-rules}}. Just use this as a drop-in replacement for syntactic-closures. If you're only using {{syntax-rules}} macros, it also works as a drop-in replacement for the [[syntax-case]] egg. You can compile syntax eggs by supplying the -Dcompile-syntax option to csc. This will compile the extension normally, and also compile all top-level macros and arrange for them to be installed at load-time. For extensions with a lot of macros this will substantially speed up load-time. Extensions that also do a lot of CPS-style macro processing will also be noticeably faster at expanding. Compiled syntax currently only works with riaxpander, so it's not recommended for general purpose eggs which would otherwise have their choice of which macro system to use, but it can be very useful for your private code. A combined API is planned for the future so that you'll be able to compile with riaxpander and then load with either riaxpander or the syntactic-closures egg. === Compiling Example $ cat swap.scm (define-syntax swap! (syntax-rules () ((swap! a b) (let ((tmp a)) (set! a b) (set! b tmp))))) $ csc -s -O2 -R riaxpander -Dcompile-syntax swap.scm $ csi -R riaxpander -R swap . . . ; loading /usr/local/lib/chicken/3/riaxpander.so ... ; loading riaxpander-chicken-macros.so ... ; loading riaxpander-dsssl-lambda.scm ... ; loading ./swap.so ... #;1> (define x 1) #;2> (define y 2) #;3> (swap! x y) #;4> (list x y) (2 1) #;5> === Author Taylor R. Campbell === Version History ; 0.8 : adding support for compiled syntax extensions ; 0.7 : upstream bugfixes ; 0.6 : adding DSSSL support ; 0.5 : fixing vector (output) templates in syntax-rules ; 0.4 : allow case-sensitivity, added core chicken macros and vector pattern support ; 0.1 : initial release
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you add 13 to 3?