From attila at lendvai.name Mon Apr 12 14:07:48 2021 From: attila at lendvai.name (Attila Lendvai) Date: Mon, 12 Apr 2021 14:07:48 +0000 Subject: build stack for clasp Message-ID: <0dB7RkpiXGxAq9rf9Xz0rjNfg6rMk4gQ5zIgUn-zo296rQAtPS5JbVVbo5sPEQ2wVeWQ3ylU3ml87WA1zr3wyErEabTYSX9Wd1rEdxtNse0=@lendvai.name> Fare, (CC'ing the clasp-devel list, also) i would like to ask your bird's eye view perspective on this: what do you think would be a reasonable/practical/feasible build system for clasp if its build were rewritten today? currently it's using waf, a python thingy which works nicely at the initial phase, when things are simple, but it is a major PITA after that. now that there's quicklisp to fetch the dependencies, would it make sense to just write a Common Lisp program as the build script? there's already a python.exe and a waf dependency... a working cl.exe as a dependency is not any worse than that i guess. or do you have any better ideas than a CL program, that is simple but extensible for complex tasks? (e.g. compiling custom programs that scrape through the sources, generating intermediate build artifacts, whole program compilation with extensions on the C++ level (clasp is LLVM and C++)) feel free to be short, and thanks for your time! - attila PGP: 5D5F 45C7 DFCD 0A39 -------------- next part -------------- An HTML attachment was scrubbed... URL: From attila at lendvai.name Mon Apr 12 23:59:07 2021 From: attila at lendvai.name (Attila Lendvai) Date: Mon, 12 Apr 2021 23:59:07 +0000 Subject: build stack for clasp In-Reply-To: References: <0dB7RkpiXGxAq9rf9Xz0rjNfg6rMk4gQ5zIgUn-zo296rQAtPS5JbVVbo5sPEQ2wVeWQ3ylU3ml87WA1zr3wyErEabTYSX9Wd1rEdxtNse0=@lendvai.name> Message-ID: > Unhappily, I don't have much time to look into this. I see a 2.2kloc > 104KB wscript plus extra shell scripts, and I step back slowly without > taking the threat out of my sight until I'm far enough to run away as > fast as I can. No. Nope. Not unless there's money involved in cleaning > the mess. heh, fair enough! :) i wasn't even expecting you to look. > In general, I recommend writing your script and build system in Lisp. > When there are multiple repositories involved, I currently use Nix to > ensure the build is reproducible though I am considering migrating to > GUIX. If you need high parallelism in a single repo or across repos, I > recommend bazel. i'm also rather happy with Nix(OS). i already started putting together a default.nix file for clasp, and i'll play with it more tomorrow. (it encodes all the necessary external dependencies, and automates setting up an environment with them on any linux where Nix is installed. perfect for CI jobs, too.) > ASDF may or may not be suited to building the software, at which point > UIOP may or may not be suited to parallelize the build on a single > multiprocessor machine. i'm sure parts of UIOP would be useful. i'm not sure i'd get the complexity of ASDF on my shoulders; much of it seems to be due to legacy cruft. > Sorry my comments aren't very helpful. no, it's already helpful, thank you! - attila