diff options
Diffstat (limited to 'src/geiser')
| -rw-r--r-- | src/geiser/geiser.ss | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/src/geiser/geiser.ss b/src/geiser/geiser.ss index c982006..654a346 100644 --- a/src/geiser/geiser.ss +++ b/src/geiser/geiser.ss @@ -55,13 +55,17 @@    (define (obj-file-name name) (with-extension name ".so")) +  (define (file-directory filename) +    (let ((idx (last-index-of (string->list filename) #\/ 0 -1))) +      (if (= idx -1) filename (substring filename 0 idx)))) +    (define (geiser:load-file filename)      (let ((output-filename (obj-file-name filename)))        (call-with-result         (lambda () -         (with-output-to-string -           (lambda () (maybe-compile-file filename output-filename))) -         (parameterize ([compile-imported-libraries #t]) +         (parameterize ([current-directory (file-directory filename)]) +           (with-output-to-string +             (lambda () (maybe-compile-file filename output-filename)))             (load output-filename))))))    (define (geiser:add-to-load-path path) | 
