Hi all,

In the following thread:

  http://thread.gmane.org/gmane.lisp.guile.user/8298/focus=8403

there was a concern that it's difficult to set up the load path for
simple one-off scripts.

I had a proposal that we add something like this:

   (define-syntax add-relative-load-path
     (lambda (x)
       (syntax-case x ()
         ((_ path) (string? (syntax->datum #'path))
          (let* ((src (syntax-source #'x))
                 (current-file (or (and src (assq-ref src 'filename))
                                   (error "Could not determine current file 
name")))
                 (vicinity (dirname (canonicalize-path current-file)))
                 (path-elt (in-vicinity vicinity (syntax->datum #'path))))
            #`(eval-when (compile load eval)
                (set! %load-path (cons #,path-elt %load-path))))))))

Then in your script you would (add-relative-load-path ".").

Maybe we need an `add-to-load-path' form that handles the eval-when,
actually, so it would be

  (add-to-load-path (dirname (current-source-filename)))

or something like that.  (We'd have to define current-source-filename as
well, in terms of current-source-location.)

What do folks think?  Is it work it?

Andy
-- 
http://wingolog.org/

Reply via email to