diff --git a/Makefile b/Makefile index 8e97cf3b..efe87d7c 100644 --- a/Makefile +++ b/Makefile @@ -319,7 +319,7 @@ install-base: all $(MKDIR) $(DESTDIR)$(MODDIR)/chibi/char-set $(DESTDIR)$(MODDIR)/chibi/crypto $(DESTDIR)$(MODDIR)/chibi/io $(DESTDIR)$(MODDIR)/chibi/iset $(DESTDIR)$(MODDIR)/chibi/loop $(DESTDIR)$(MODDIR)/chibi/match $(DESTDIR)$(MODDIR)/chibi/math $(DESTDIR)$(MODDIR)/chibi/monad $(DESTDIR)$(MODDIR)/chibi/net $(DESTDIR)$(MODDIR)/chibi/optimize $(DESTDIR)$(MODDIR)/chibi/parse $(DESTDIR)$(MODDIR)/chibi/regexp $(DESTDIR)$(MODDIR)/chibi/show $(DESTDIR)$(MODDIR)/chibi/snow $(DESTDIR)$(MODDIR)/chibi/term $(MKDIR) $(DESTDIR)$(MODDIR)/scheme/char $(MKDIR) $(DESTDIR)$(MODDIR)/scheme/time - $(MKDIR) $(DESTDIR)$(MODDIR)/srfi/1 $(DESTDIR)$(MODDIR)/srfi/18 $(DESTDIR)$(MODDIR)/srfi/27 $(DESTDIR)$(MODDIR)/srfi/151 $(DESTDIR)$(MODDIR)/srfi/39 $(DESTDIR)$(MODDIR)/srfi/69 $(DESTDIR)$(MODDIR)/srfi/95 $(DESTDIR)$(MODDIR)/srfi/99 $(DESTDIR)$(MODDIR)/srfi/99/records $(DESTDIR)$(MODDIR)/srfi/113 $(DESTDIR)$(MODDIR)/srfi/117 $(DESTDIR)$(MODDIR)/srfi/121 $(DESTDIR)$(MODDIR)/srfi/125 $(DESTDIR)$(MODDIR)/srfi/128 $(DESTDIR)$(MODDIR)/srfi/129 $(DESTDIR)$(MODDIR)/srfi/132 $(DESTDIR)$(MODDIR)/srfi/133 $(DESTDIR)$(MODDIR)/srfi/135 $(DESTDIR)$(MODDIR)/srfi/143 $(DESTDIR)$(MODDIR)/srfi/144 $(DESTDIR)$(MODDIR)/srfi/159 $(DESTDIR)$(MODDIR)/srfi/160 $(DESTDIR)$(MODDIR)/srfi/166 $(DESTDIR)$(MODDIR)/srfi/146 $(DESTDIR)$(MODDIR)/srfi/179 + $(MKDIR) $(DESTDIR)$(MODDIR)/srfi/1 $(DESTDIR)$(MODDIR)/srfi/18 $(DESTDIR)$(MODDIR)/srfi/27 $(DESTDIR)$(MODDIR)/srfi/151 $(DESTDIR)$(MODDIR)/srfi/39 $(DESTDIR)$(MODDIR)/srfi/69 $(DESTDIR)$(MODDIR)/srfi/95 $(DESTDIR)$(MODDIR)/srfi/99 $(DESTDIR)$(MODDIR)/srfi/99/records $(DESTDIR)$(MODDIR)/srfi/113 $(DESTDIR)$(MODDIR)/srfi/117 $(DESTDIR)$(MODDIR)/srfi/121 $(DESTDIR)$(MODDIR)/srfi/125 $(DESTDIR)$(MODDIR)/srfi/128 $(DESTDIR)$(MODDIR)/srfi/129 $(DESTDIR)$(MODDIR)/srfi/132 $(DESTDIR)$(MODDIR)/srfi/133 $(DESTDIR)$(MODDIR)/srfi/135 $(DESTDIR)$(MODDIR)/srfi/143 $(DESTDIR)$(MODDIR)/srfi/144 $(DESTDIR)$(MODDIR)/srfi/159 $(DESTDIR)$(MODDIR)/srfi/160 $(DESTDIR)$(MODDIR)/srfi/166 $(DESTDIR)$(MODDIR)/srfi/146 $(DESTDIR)$(MODDIR)/srfi/179 $(DESTDIR)$(MODDIR)/srfi/211 $(INSTALL) -m0644 $(META_FILES) $(DESTDIR)$(MODDIR)/ $(INSTALL) -m0644 lib/*.scm $(DESTDIR)$(MODDIR)/ $(INSTALL) -m0644 lib/chibi/*.sld lib/chibi/*.scm $(DESTDIR)$(MODDIR)/chibi/ @@ -372,6 +372,7 @@ install-base: all $(INSTALL) -m0644 lib/srfi/146/*.scm $(DESTDIR)$(MODDIR)/srfi/146/ $(INSTALL) -m0644 lib/srfi/179/*.sld $(DESTDIR)$(MODDIR)/srfi/179/ $(INSTALL) -m0644 lib/srfi/179/*.scm $(DESTDIR)$(MODDIR)/srfi/179/ + $(INSTALL) -m0644 lib/srfi/211/*.sld $(DESTDIR)$(MODDIR)/srfi/211/ $(MKDIR) $(DESTDIR)$(BINMODDIR)/chibi/crypto/ $(MKDIR) $(DESTDIR)$(BINMODDIR)/chibi/io/ $(MKDIR) $(DESTDIR)$(BINMODDIR)/chibi/optimize/ @@ -483,6 +484,7 @@ uninstall: -$(RMDIR) $(DESTDIR)$(MODDIR)/srfi/160 $(DESTDIR)$(BINMODDIR)/srfi/160 -$(RMDIR) $(DESTDIR)$(MODDIR)/srfi/166 $(DESTDIR)$(BINMODDIR)/srfi/166 -$(RMDIR) $(DESTDIR)$(MODDIR)/srfi/179 $(DESTDIR)$(BINMODDIR)/srfi/179 + -$(RMDIR) $(DESTDIR)$(MODDIR)/srfi/211 $(DESTDIR)$(BINMODDIR)/srfi/211 -$(RMDIR) $(DESTDIR)$(MODDIR)/srfi $(DESTDIR)$(BINMODDIR)/srfi -$(RMDIR) $(DESTDIR)$(MODDIR) $(DESTDIR)$(BINMODDIR) -$(RM) $(DESTDIR)$(MANDIR)/chibi-scheme.1 $(DESTDIR)$(MANDIR)/chibi-ffi.1 $(DESTDIR)$(MANDIR)/chibi-doc.1 diff --git a/lib/srfi/211/identifier-syntax.sld b/lib/srfi/211/identifier-syntax.sld new file mode 100644 index 00000000..79e3ff35 --- /dev/null +++ b/lib/srfi/211/identifier-syntax.sld @@ -0,0 +1,7 @@ +(define-library (srfi 211 identifier-syntax) + (export identifier-syntax) + (import (only (chibi ast) identifier-syntax))) + +;; Local Variables: +;; mode: scheme +;; End: diff --git a/lib/srfi/211/test.sld b/lib/srfi/211/test.sld new file mode 100644 index 00000000..2327e8f2 --- /dev/null +++ b/lib/srfi/211/test.sld @@ -0,0 +1,38 @@ +(define-library (srfi 211 test) + (export run-tests) + (import (scheme base) + (only (chibi) er-macro-transformer) + (srfi 211 variable-transformer) + (srfi 211 identifier-syntax) + (chibi test)) + (begin + (define (run-tests) + (test-begin "srfi-211") + + (test '(1 2) + (let-syntax + ((foo (identifier-syntax (list 1 2)))) + foo)) + + (test '(5 5) + (let ((x 3)) + (let-syntax + ((foo (identifier-syntax + (_ x) + ((set! _ e) (set! x e))))) + (set! foo (+ foo 2)) + (list foo x)))) + + (test 42 + (let-syntax + ((foo (make-variable-transformer + (er-macro-transformer + (lambda (e r c) + (list-ref e 2)))))) + (set! foo 42))) + + (test-end)))) + +;; Local Variables: +;; mode: scheme +;; End: diff --git a/lib/srfi/211/variable-transformer.sld b/lib/srfi/211/variable-transformer.sld new file mode 100644 index 00000000..2b67f1b7 --- /dev/null +++ b/lib/srfi/211/variable-transformer.sld @@ -0,0 +1,7 @@ +(define-library (srfi 211 variable-transformer) + (export make-variable-transformer) + (import (only (chibi ast) make-variable-transformer))) + +;; Local Variables: +;; mode: scheme +;; End: diff --git a/tests/lib-tests.scm b/tests/lib-tests.scm index 75f67d1e..89a2c474 100644 --- a/tests/lib-tests.scm +++ b/tests/lib-tests.scm @@ -34,6 +34,7 @@ (rename (srfi 158 test) (run-tests run-srfi-158-tests)) (rename (srfi 160 test) (run-tests run-srfi-160-tests)) (rename (srfi 166 test) (run-tests run-srfi-166-tests)) + (rename (srfi 211 test) (run-tests run-srfi-211-tests)) (rename (srfi 219 test) (run-tests run-srfi-219-tests)) (rename (srfi 229 test) (run-tests run-srfi-229-tests)) (rename (scheme bytevector-test) (run-tests run-scheme-bytevector-tests)) @@ -107,6 +108,7 @@ (run-srfi-158-tests) (run-srfi-160-tests) (run-srfi-166-tests) +(run-srfi-211-tests) (run-srfi-219-tests) (run-srfi-229-tests) (run-scheme-bytevector-tests)