current-source-filename pasted by klm` on Mon Jun 10 14:00:29 2013
;; foo.scm (define-syntax foo (er-macro-transformer (lambda (x r t) `(print "debug: " ##sys#current-source-filename)))) (foo 123) ;; bash: $ csc foo.scm && ./foo debug: #f ;; ^ got ;; expected: debug: foo.scm:3 ;; does not work when ##sys#current-source-filename is unquoted in macro either.
This seems to work pasted by DerGuteMoritz on Mon Jun 10 14:29:33 2013
;;; file.scm (set-read-syntax! 'file (lambda (port) ##sys#current-source-filename)) ;;; foo.scm (print "this is " #!file) ;;; Usage $ csc -s file.scm $ csc -X file foo.scm $ ./foo this is foo.scm
no title added by klm` on Mon Jun 10 15:45:40 2013
;; read-syntax is expanded at read-time and thus in macros. ;; this works, though! (define-syntax event (er-macro-transformer (lambda (x r t) `(list 'event ,(cadr x) ,(get-line-number x))))) (print (event 'device-added)) (print (event 'device-removed)) $ csc foo.scm && ./foo (event device-added foo.scm:9) (event device-removed foo.scm:10)