GNU bug report logs -
#66046
Relative includes in R7RS define-library seem broken
Previous Next
Full log
Message #26 received at 66046 <at> debbugs.gnu.org (full text, mbox):
If I am not mistaken, the patch is not backward compatible.
The problem with the current patch is that it force the included file
to be next to the including file, there is no fallback mechanism.
The algorithm should be dynamic using an ordered list a priority to
the favorite behavior.
The most relevant hunk is:
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -3260,15 +3260,20 @@
(let ((syntax-dirname (lambda (stx)
(define src (syntax-source stx))
(define filename (and src (assq-ref src 'filename)))
- (and (string? filename)
- (dirname filename)))))
+ (define source-file-name
+ (fluid-ref compilation-source-file-name))
+ (or (and source-file-name
+ (dirname source-file-name))
+ (and (string? filename)
+ (dirname filename))))))
Here the code says: the included file must be in (syntax-dirname).
It is preferable to have fallbacks, to be backward compatible.
`syntax-dirname' must be `syntax-dirnames' to return candidate directories
sorted list with biggest priority coming first where to find included
files.
Also, mind the use of the fluid and how it interact with parallel compilation.
BR
ref: https://github.com/justinethier/cyclone/issues/494#issuecomment-1328958946
ref: https://github.com/justinethier/cyclone/commit/ab25e360a9d7b67c2e5eda086001ca0761a3f34f#diff-b9136575f3ccbf09887d1da9fb4b6e136e4e32a839c10cf855696ec1cf6add4bR54-R58
This bug report was last modified 173 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.