Welcome to the CHICKEN Scheme pasting service

Hygiene makes my head hurt. added by anonymous on Sat May 5 15:19:50 2018

user@xubuntu:~/src$ cat define-code-generator.scm
(define-library define-code-generator
  (import (scheme base))
  (export define-code-generator)
  (begin
    (define-syntax define-code-generator
      (er-macro-transformer
       (lambda (form r compare?)
         (let ((%code-generator (gensym))
               (%form (gensym))
               (%inject (gensym))
               (%compare? (gensym))
               (identifier (cadr form))
               (expr (caddr form)))
           `(,(r 'begin)
             (,(r 'define) ,identifier
              (,(r 'let-syntax) ((,%code-generator
                                  (,(r 'ir-macro-transformer)
                                   (,(r 'lambda) (,%form ,%inject ,%compare?)
                                    (,(r cadr) ,%form)))))
               (,%code-generator ,expr))))))))))
user@xubuntu:~/src$ csc -extend r7rs -R r7rs -sJ define-code-generator.scm
user@xubuntu:~/src$ cat my.gen.scm
(define-library (my gen)
  (import (define-code-generator)
          (scheme base)
          (prefix (only (scheme write) display) scheme-))
  (export gen-display)
  (begin
    (define-code-generator gen-display
      (lambda (str)
        `(scheme-display ,str)))))
user@xubuntu:~/src$ csc -extend r7rs -R r7rs -sJ my.gen.scm
user@xubuntu:~/src$ cat my.macros.scm 
(define-library (my macros)
  (import (scheme base)
          ;; (prefix (only (scheme write) display) scheme-)
          (scheme write)
          (my gen))
  (export m)
	(begin
	  (display "Hello (my macros) runtime!\n")
    (define-syntax m
      (ir-macro-transformer
       (lambda (form inject compare?)
         (display "Hello expander!\n")
         (gen-display (cadr form)))))))
user@xubuntu:~/src$ csc -extend r7rs -R r7rs -sJ my.macros.scm
user@xubuntu:~/src$ cat my.main.scm 
(define-library (my main)
  (import (scheme base)
          (my macros))
  (begin
    (define scheme-display "Hello expansion!\n")
    (m scheme-display)))
user@xubuntu:~/src$ csc -extend r7rs -R r7rs my.main.scm
Hello expander!
user@xubuntu:~/src$ ./my.main
Hello (my macros) runtime!

Error: call of non-procedure: "Hello expansion!\n"

	Call history:

	my.macros.scm:12: ##sys#provide	  
	my.macros.scm:12: ##sys#require	  
	my.macros.scm:12: ##sys#require	  
	my.macros.scm:12: ##sys#require	  
	machine-byte-order	  
	##sys#require	  
	my.gen.scm:44: ##sys#provide	  
	my.gen.scm:44: ##sys#require	  
	machine-byte-order	  
	##sys#require	  
	define-code-generator.scm:25: ##sys#provide	  
	define-code-generator.scm:25: ##sys#require	  
	my.gen.scm:44: ##sys#require	  
	my.gen.scm:44: ##sys#require	  
	my.macros.scm:19: display	  
	my.main.scm:6: scheme-display	  	<--

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
What's the Makefile target to generate the bootstrap compiler of CHICKEN?
Visually impaired? Let me spell it for you (wav file) download WAV