IRC channel logs


back to list of logs

<apteryx>I'm still hunting for where in the compilation process embedding the source file name of the compiled source in the bytecode .go happens, in case someone knows
<apteryx>that's the only thing I need to understand to complete a fix for bug #66046
<apteryx>seems to be the job of the assembler to create the metadata sections
<apteryx>which I assume contain the source file link
<apteryx>maybe, the sources field of the <asm> record
<apteryx>I think it just get the source file names from the source properties attached to each expressions compiled
<apteryx>that were annotated by the read-syntax reader of the scheme compiler
<apteryx>oof. I don't think my current strategy is sane in this case. I thought the source file name was a single value put in a single bytecode file header, but it appears it's attached to every expression compiled, as source properties
<apteryx>and it's probably a bad idea to mess with these just to fix a corner case of include
<apteryx>how about having include automatically fallback to include-from-path when the included file couldn't be found?
<apteryx>that'd fix bug #66046... on the other hand I don't think any 'include' implementation out there does that
<apteryx>(but then I haven't seen other Scheme implementation mutate a port name to have the correct load path foundable names in the build artifacts, so maybe it makes sense for Guile)
<apteryx>ACTION tries
<apteryx>nah, that's bad, as the file name needs adjustment
<apteryx>hm. my last idea is to hack define-library to accept include-from-path as well as include
<apteryx>not nice as it breaks portability...
<Kolev>How do I get haunt to put the site at /foo/ instead of /?
<skeemer>hello everyone was wondering if guile with geiser has the same level of interactivity i have with common lisp and slime
<skeemer>or more in general if guile allows the same level of interaction which generally is publicized with common lisp
<mwette>apteryx: look at system/vm/assembler.scm, line 2944
<apteryx>skeemer: I haven`t used common list so you`ll have to expound a bit on your expectations
<dsmith>skeemer, It's not as feature full. But it's pretty good. Guile doesn't have all the features of CL, so there will be differnces
<apteryx>I'm relatively confused as to what happens in terms of order of evaluations when using compile-file and include
<apteryx>should it be possible to set some parameter value at compile-file invocation time, and have that honored by the logic expound in the include macro?
<dsmith>Well, include is basically a source code text insertion at that point
<apteryx>but the compile-file call would happen as the first thing, before the source with the include syntax is loaded, so it should in theory be possible?
<dsmith>Much like C #include, except it can be inside a scope (iirc)
<apteryx>dsmith: yep, the problem I've been try6g to solve for days is that include breaks in a corner case: using compile-file with #:canonical 'relative (the default) on a source that 'include' a relative file name.
<apteryx>include gets the information of the parent dir from the source properties of the syntax of its parent expresion (IIUC), and this is modified by the #:canonical 'relative thing, which causes the port file name to be rewritten in a way that it can be found on the load path
<apteryx>one of the first things I've tried was setting a parameter *somewhere*, e.g. in compile-file, to keep the original untouched file name, and have include use its value
<apteryx>instead of the (port-filename port) it does
<apteryx>maybe I'd have to define my parameter in psyntax.scm, but there is no support for parameters at that point I tInk
<apteryx>here's my first attempt, which nearly worked (it sometimes did (?), but it was confusing as hell and I had to clear a bunch of .go to get the true result):
<apteryx>link of the diff, with the idea explained in the commit message:
<apteryx>most of the time compiling the change fails with: "Pre-boot error; key: unbound-variable, args: (#f "Unbound variable: ~S" (compilation-source-file-name) #f)" though
<Kolev>Using Haunt, how do I change the site root to /foo/?
<Kolev>My site code has two issues related to URI formation.