Re: Naive DEFSYSTEM replacement
"Adam Weaver (as adam at cleversure dot com dot au)" <[email protected]>
| Newsgroups | gmane.lisp.lispworks.general |
|---|---|
| Message-ID | <[email protected]> |
On Sat, 2025-07-26 at 11:44 +0100, Tim Bradshaw wrote: > [You don't often get email from [email protected]. Learn why this is > important at https://aka.ms/LearnAboutSenderIdentification ] > > Wow, I never thought I'd find myself writing a defence of ASDF! > > *It is not complicated*. I mean, seriously: > > (defsystem "foo" > :components > ((:file "a") > (:file "b" > :depends-on ("a")))) > You've invented a strawman argument so you can argue with it. ASDF is "complicated" in the sense that it is thousands upon thousands of lines of code. Hell, even its maintainer recently said "I don't know what all of it is there for". ASDF is *not* complicated in the sense that its configuration format is complicated. Personally I think the ASDF:DEFSYSTEM form is fairly elegant. But even if I *did* have an issue with the configuration form (which I do not), all I'd have to do is write a macro-wrapper DSL, wouldn't I? > Is not, in fact complicated to use ASDF. And in fact exhaustive > studies show that 98.3% of ASDF system declarations look like > > 1. People want to be able to do things to their systems other than > compile and load them. For instance people might want to be able to > say 'run the tests for this system' and have ASDF know how to do that > for them. Or 'Make a release for this system' which certainly > involves at least compiling and loading it, running all the tests, > copying the files of the system to some release directory and so on. > Or 'define where systems live so they can be found'. > You may not want to do those things, but ASDF was not written just > for you. Werd dogg. This is what I was *asking*. I think I asked it about four times? The question was "what the hell am I missing? I've been using ASDF as a compile-load-a-series-of-files-in-order tool, and then I don't touch ASDF again until I shut emacs down and need to start it up again. So what am I missing out of in ASDF facilities?" > > - you never plan on writing code of any complexity, especially code > which involves macros in nontrivial ways; Dunno. My "trivial" might be someone else' complicated? I mostly use macros for DSLs, like HTML generation, database interop, or simple WITH-STUFF binds. > > - or you want to end up living in a world of mud, where you spend > most of your time trying to work out exactly what series of > incantations you need to perform to recreate the state of the system > you had a few minutes ago. > > Trust me, I've lived in that world of mud, a world with sacred Lisp > images which nobody had any idea how to reproduce any more but on > which everything depended. That world is not one you want to live > in. Yeah I can imagine that. Is that Robert Goldman was referring to when he said that ASDF is intended to keep the image "coherent"? Or words to that effect. Yeah, my use case is a lot simpler. I'm a solo developer working on software for my own use only (I'm an insurance broker by trade, and I need software to help my day job), so I don't have to worry so much about coherency or teams. Look, I gotta be honest. I thought I asked a pretty simple question, which was "what does ASDSF do for me that my nasty nasty nasty 19 line 10-minute hack doesn't do". And all I've had so far is: * Two attempts at rewriting the hack with some snobbery around how I should learn about that author's particular style. Mang, it was a hack, read the room. * One suggestion of an *alternate* build tool (which I like the look of!) with no answers to my questions. * One suggestion of writing a *better* build tool, in which the author even commented that it would NP-hard. * About three "RTFM Noob" shitposts. * A couple of comments about how I'm not understanding LW:DEFSYSTEM or ASDF:DEFSYSTEM. Well duh bruh! That *was*what*I*asked*. So I'm going to guess. No-one really knows why ASDF is thousands-upon-thousands of lines of code, but since it's a miniscule part of CL software development, no one really cares either. Ok, whatevs. Was that really hard to say? Anyway, thanks Tim. I'm going to go back to ASDF, because I do like its configuration file format. And although MK:DEFSYSTEM looks interesting too, ASDF2 is the one bundled with LW. And I'm wedded to LW. A _______________________________________________ Lisp Hug - the mailing list for LispWorks users [email protected] http://www.lispworks.com/support/lisp-hug.html