dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
rkazak has joined #commonlisp
<jrm>
Does anyone use ASDF output translations for CL? More specifically, do you specify translations in a .conf file using the SEXP DSL described at https://asdf.common-lisp.dev/asdf.html#Configuration-DSL-2? If so, could you share a minimum example?
<ixelp>
ASDF Manual
<jrm>
Even the most basic attempts to set up an output translation fail with: "Invalid asdf output-translation". Searches for a minimum example haven't turn up anything.
<reb>
I searched for ":inherit-configuration" ":output translations" and also did a couple of searches where I added filetype:conf to the search string.
Oladon has quit [Ping timeout: 252 seconds]
rkazak has joined #commonlisp
JuanDaugherty has quit [Quit: JuanDaugherty]
pfd has joined #commonlisp
jonatack has quit [Read error: Connection reset by peer]
jonatack has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jrm>
reb: I should have qualified. I had also found that mailing list thread, but those output translations don't work here. The result is the same.
<jrm>
I didn't find anything other than that thread, though.
<jrm>
That's without any configuration. I do have one quirky thing. I've patched to look for configuration under /usr/local/etc/common-lisp/ rather than /etc/common-lisp/ but the outcome is the same without the patch.
<jrm>
Let me try filetype:conf. That I didn't search for.
<reb>
jrm: By "don't work here" do you mean creating an asdf-output-translations.conf file always seems to produce the error message you posted earlier: Invalid asdf output-translations ?
<jrm>
reb: That's right. Maybe I'm misunderstanding something fundamental about the DSL?
pfd has quit [Quit: Client closed]
<reb>
jrm: I just took a look at your paste ... Do you load a modern version of ASDF in your .sbclrc file?
pfd has joined #commonlisp
<reb>
Oh, sorry, I see you load one in the paste transcript ...
<jrm>
reb: * (asdf:asdf-version)
<jrm>
"3.3.7"
livoreno has joined #commonlisp
<reb>
So the "File has been modified since compilation" error is caused by asdf.fasl being older than asdf.lisp
<reb>
You might be able to fix that by running "make" in the asdf directory. Are you installing ASDF using a Linux package manager? I just "git clone" the latest and build it with "make".
<jrm>
Oh, probably. I've been doing this over and over and trying different things. Let me rebuilt the fasl to get rid of that error.
younder has joined #commonlisp
<jrm>
This is work to update some FreeBSD CL ports/packages. (I'm installing via FreeBSD packages.)
zwr has quit [Read error: Connection reset by peer]
<reb>
You probably need to set *central-registry* before loading asdf.fasl. I do not use *central-registry*. Instead I rely on the default, which uses .cache/common-lisp/source-registry.conf.
<reb>
When I place (:output-translations :inherit-configuration ((:home "tmp") (:home "tmp2"))) in ~/.config/common-lisp/asdf-output-translations.conf and then load ASDF, I see the output translation in the value of ASDF/OUTPUT-TRANSLATIONS:*OUTPUT-TRANSLATIONS*
<reb>
It show up as (#P"/home/brown/tmp/**/*.*" #P"/home/brown/tmp2/**/*.*")
<reb>
jrm: ^^ s/show/shows
<jrm>
reb: Interesting. Let me try the same in ~/.config/common-lisp/asdf-output-translations.conf. I don't think something can be pushed to asdf:*central-registry* before loading asdf.
<reb>
I do not even have a symbol called asdf::*output-translations*
<reb>
Use what I indicated above: ASDF/OUTPUT-TRANSLATIONS:*OUTPUT-TRANSLATIONS*
<jrm>
It seems to be the same. (print ASDF/OUTPUT-TRANSLATIONS:*OUTPUT-TRANSLATIONS*) gives NIL
<jrm>
When you set the output translations via lisp using asdf:initialize-output-translations, asdf::*output-translations* gets set.
<reb>
I don't do that ...
<jrm>
Let me try the same on my Arch system to rule out FreeBSD-specific issues.
<reb>
My ASDF/SYSTEM-REGISTRY:*CENTRAL-REGISTRY* is nil and ASDF/OUTPUT-TRANSLATIONS:*OUTPUT-TRANSLATIONS* contains the new translation.
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 252 seconds]
<jrm>
I'm a little unclear how the central-registry relates to the output translations.
<reb>
I believe central-registry indicates where to read config files from ... with nil meaning the default location or locations.
Lord_of_Life_ is now known as Lord_of_Life
<reb>
It seems ASDF is loading your config, but maybe it has also some leftover config ?? That's why I thought it might be interesting to verify that *central-registry* is nil.
<jrm>
In my latest test, I didn't set anything for the central-registry. That means I could trigger the error by load alexandira because that where our CL OS packages install to. However, unlike your test, when I printed ASDF/OUTPUT-TRANSLATIONS:*OUTPUT-TRANSLATIONS*, it was NIL.
<jrm>
*couldn't trigger the error by loading alexandria*
<reb>
I think *output-translations* is only lazily set. If I load ASDF, then it's nil, but after I asdf:load-system something, the value is non-nil.
<jrm>
Ah. Good to know.
<jrm>
I guess my next task is to determine what the heck is up with SBCL on FreeBSD that is causing any output translation to bork.
<reb>
Hmm, I'm a bit worried that your last post shows the output translations set, but you had not yet loaded any systems. The value is nil for me until I load something.
<jrm>
I'll trying loading something on the arch system as well, but this is clearly different behaviour than on FreeBSD.
<reb>
Maybe there's some system or user init file that's causing trouble. Try running SBCL with flags such as --no-sysinit --no-userinit
<jrm>
I'm already running without any SBCL configuration, but good call. No need to go down another rabbit hole before confirming.
<jrm>
reb: It seems the ~/.sbclrc on the arch system determines whether something gets put in ASDF/OUTPUT-TRANSLATIONS:*OUTPUT-TRANSLATIONS*. I still haven't loaded any systems. I need to quickly get something going with quicklisp on Arch I guess.
rkazak has quit [Ping timeout: 265 seconds]
<reb>
Oh, maybe .sbclrc on that system includes code to load Quicklisp.
brokkoli_origin has quit [Remote host closed the connection]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
liminality has joined #commonlisp
liminality has quit [Remote host closed the connection]
liminality has joined #commonlisp
<liminality>
hi all
Odin- has quit [Quit: Wait, what?]
rainthree has quit [Ping timeout: 248 seconds]
NotThatRPG has joined #commonlisp
rkazak has quit [Ping timeout: 272 seconds]
<jackdaniel>
hey
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
bjorkintosh has quit [Changing host]
livoreno has quit [Quit: Connection closed for inactivity]
mgl_ has joined #commonlisp
rkazak has joined #commonlisp
JuanDaugherty has joined #commonlisp
attila_lendvai_ has joined #commonlisp
attila_lendvai has quit [Ping timeout: 248 seconds]
rkazak has quit [Ping timeout: 252 seconds]
jonatack has quit [Ping timeout: 252 seconds]
jonatack has joined #commonlisp
shawnw has quit [Ping timeout: 248 seconds]
shka has quit [Read error: Connection reset by peer]
wacki has joined #commonlisp
kpg has joined #commonlisp
<liminality>
is there a version of macrolet that acts like labels? in that, the macros you define can reference each other
<kpg>
Do not execute (ql:quickload "cl-quil")
<bike>
liminality: no. you can have one macro expand into a usage of one of the other macros just fine, though.
jrx has joined #commonlisp
jrx has quit [Client Quit]
mgl_ has quit [Ping timeout: 252 seconds]
rkazak has joined #commonlisp
<liminality>
bike: macrolet macros can reference each other? huh... i read in ANSI Common Lisp they can't, but then i never actually tested it. let me go check.
jonatack has quit [Ping timeout: 252 seconds]
<liminality>
i can't get a macro defined in macrolet to use another macro defined in the same macrolet
rkazak has quit [Ping timeout: 265 seconds]
jonatack has joined #commonlisp
mgl_ has joined #commonlisp
<liminality>
i can get it to work if i nest macrolets, but... well i guess i should just write my own serial macrolet* macro huh
<bike>
liminality: "no", i said. they can EXPAND into one another, that's all. (macrolet ((foo () '(bar)) (bar () 4)) (foo)) is okay.
<liminality>
ohhh
<liminality>
interesting. thanks
mgl_ has quit [Ping timeout: 252 seconds]
rkazak has joined #commonlisp
triffid has quit [Remote host closed the connection]
mishoo has quit [Ping timeout: 272 seconds]
<jrm>
reb: Sorry. Something pressing at $work came up. I have managed to get something very simple to fail and work in the same way on both Arch and FreeBSD. It looks like there is a bug related to reading output translations from asdf-output-translations.conf.d/whatever.conf because exactly the translations work when reading from asdf-output-translations.conf. I'll share output soon in case you're curious.
JuanDaugherty has quit [Quit: JuanDaugherty]
triffid has joined #commonlisp
<reb>
jrm: Interesting ... at some point I suspected that you might have multiple files in the conf directory, and that repeated translations were causing the error. I'd double check that you don't have Emacs backup files, for instance, in that directory. It could just be a bug. It would be pretty easy to insert some debugging print forms in the ASDF code to see what's going wrong ...
jonatack has quit [Read error: Connection reset by peer]
shka has joined #commonlisp
rkazak has quit [Ping timeout: 248 seconds]
jonatack has joined #commonlisp
Noisytoot has quit [Excess Flood]
zwr has quit [Read error: Connection reset by peer]
Noisytoot has joined #commonlisp
zwr has joined #commonlisp
rkazak has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 29.4]
<reb>
jrm: First, the code only looks at files in asdf-output-translations.conf.d whose names in the ".conf". Next, it looks like the files must contain a set of translation forms, not in a list. So it the file contains just ((:home "tmp") (:home "tmp2")) I see the translation in ASDF/OUTPUT-TRANSLATIONS:*OUTPUT-TRANSLATIONS*
<reb>
When added :inherit-configuration to the conf file, I got an error, so for some reason it's not allowed in individual output translation conf files.
<reb>
So in summary, the format of a file in the ".d" directory is different from a single output translation conf file.
<jrm>
reb: Ah ha! Did you find this under uiop? I don't see it in asdf/output-translations.lisp.
rkazak has quit [Ping timeout: 265 seconds]
supercode has joined #commonlisp
<reb>
Function validate-configuration-directory in configuration.lisp is what parses the files in the ".d" directory.
<reb>
jrm: ^^
mange has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
supercode has quit [Quit: Client closed]
supercode has joined #commonlisp
rkazak has joined #commonlisp
shka has quit [Quit: Konversation terminated!]
liminality has quit [Ping timeout: 255 seconds]
rkazak has quit [Ping timeout: 248 seconds]
pve has quit [Quit: leaving]
dino_tutter has quit [Ping timeout: 272 seconds]
supercode has quit [Quit: Client closed]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mwnaylor has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
attila_lendvai_ has quit [Ping timeout: 260 seconds]