Hi Mark :) On Tue 14 Feb 2012 19:57, Mark H Weaver <m...@netris.org> writes:
> scheme@(guile-user)> my-filename > $1 = #f I get this result regardless of whether or not the (identity 1 2 3) is there, at least with master; but perhaps that is to be expected, given what you say: > The same thing happens if I remove that line, or if I try with > stable-2.0. > > What am I doing wrong? Nothing, of course :) But, when I annotate current-filename to be like this: (define-syntax current-filename (lambda (x) "A macro that expands to the current filename: the filename that the (current-filename) form appears in. Expands to #f if this information is unavailable." (false-if-exception (pk 'canonicalized (canonicalize-path (pk 'filename (assq-ref (syntax-source x) 'filename))))))) I see that: scheme@(guile-user)> ,use (current-filename-fail) ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /tmp/current-filename-fail.scm ;;; (filename "current-filename-fail.scm") ;;; compiled /home/wingo/src/guile-master/cache/guile/ccache/2.2-LE-8-3.0/tmp/current-filename-fail.scm.go scheme@(guile-user)> my-filename $1 = #f So we see that the canonicalize-path call failed, as indeed it would. Not sure what the right thing is here. It seems to depend on whether the file is relative to the path or the current working directory. You have any thoughts here? Andy -- http://wingolog.org/