@wyatt8740 @unnick Because someone c&p'd a bunch of garbage rather than writing their own .ac file... 🤦
Top-level
@wyatt8740 @unnick Because someone c&p'd a bunch of garbage rather than writing their own .ac file... 🤦 60 comments
@whitequark @wyatt8740 @unnick Because the whole thing is fairly opaque, uses an obscure language, and the docs on how to make decent use of it are unofficial and hard to find especially after the burning of search... No intent to blame anyone just theorize on how things got this way. @dalias @wyatt8740 @unnick honestly even ten years ago I found it rather difficult to figure out how to write .ac files @dalias @whitequark @wyatt8740 @unnick no it uses three different opaque languages at the same time, in the same source file @whitequark @dalias @wyatt8740 @unnick @jannem @dalias @wyatt8740 @unnick it's one of the most obscure and user-hostile pieces of software in the world; of course it _is_ difficult, especially if you don't already have the skills for it @parzivalwolfram @whitequark @jannem @dalias @unnick Yes, I also prefer autotools/autoconf 100% for almost everything. @parzivalwolfram @jannem @dalias @wyatt8740 @unnick i use cmake because i support windows as a first-class system, mainly if your software requires cygwin or mingw to build on windows i will fucking build it for webassembly instead and ship like that @whitequark @parzivalwolfram @jannem @dalias @unnick I genuinely prefer MSYS/mingw @wyatt8740 @whitequark @jannem @dalias @unnick yeah i've never had a good experience with VS, even VSC, or even VC/VC++ lol, though i also have constant issues with C#/.NET programs and anything adjacent to it but people online tend to tell me it's somehow user error if a .NET program spits out nonsensical, never-before-seen error messages then just die. i only write in python on windows just to avoid all of those headaches. @parzivalwolfram @wyatt8740 @jannem @dalias @unnick I shipped software that built on both MinGW and VS; I don't mind the compilers (either), I mind the garbage around them built by people who think fork() is peak API design @whitequark @parzivalwolfram @jannem @dalias @unnick fork is quite annoying, i agree @wyatt8740 @parzivalwolfram @jannem @dalias @unnick shell scripts are for automating admin tasks. write your build system in a real language, such as CMakeLists.txt (still more real than bash) @whitequark@mastodon.social @wyatt8740@tech.lgbt @parzivalwolfram@infosec.exchange @jannem@fosstodon.org @dalias@hachyderm.io @unnick@wetdry.world real language and seeing CMakeLists.txt threw me for a spin. I fucking hate writing cmake but I hate using anything that's not cmake 😭 @whitequark @wyatt8740 @jannem @dalias @unnick question: what if csh from 1989 is the only scripting language available to you, and there's no compilers available on a target system except K&R as? i'm working on a project where this is the entire issue, and it's... not fun. this is the precise case where that "consider using bash to build GCC because some cases in other shells make the ./configure script take literal days" warning actually happens lol @parzivalwolfram @whitequark @jannem @dalias @unnick i was about to mention csh, actually. Lol. There are so many things worse than a bourne shell @parzivalwolfram @wyatt8740 @jannem @dalias @unnick I bring a c89 single file wasm interpreter, then see step 1 @whitequark @wyatt8740 @parzivalwolfram @jannem @dalias @unnick I'm in a project using cmake and I don't like it. (I prototyped a replacement of our build stuff in omake in finite time...) But definitely less bad than autohell. @project1enigma @whitequark @parzivalwolfram @jannem @dalias @unnick I'm a fan of writing a makefile and telling people to figure it out. Sure, it pissed me off when i started, but once I figured out how makefiles work I appreciated them a lot more @wyatt8740 @whitequark @parzivalwolfram @jannem @dalias @unnick make has its limitations especially in really big multi directory source trees like ours. omake is enough make like, but with multi directory stuff just working really correctly. And fast. That's why I used that for my prototype alternative build. @wyatt8740 @whitequark @parzivalwolfram @jannem @dalias @unnick Long ago we did have a gmake based build by yours truly in fact. @wyatt8740 @project1enigma @parzivalwolfram @jannem @dalias @unnick I probably write makefiles better than you do and this is exactly why I avoid it inflicting it on others: as a matter of basic compassion @whitequark @wyatt8740 @project1enigma @jannem @dalias @unnick i don't mind projects with makefiles that are like 30 lines at most, where it's just a shell script but it's kept around for build systems and such. when it's a 30KB file full of high-level shell wizardry... i just have to hope i don't have to dig through it and that it just works. @parzivalwolfram @wyatt8740 @project1enigma @jannem @dalias @unnick one of my least favorite makefiles used a load bearing rot13 in the middle @whitequark @wyatt8740 @project1enigma @jannem @dalias @unnick WHY??? why would you ever??? @wyatt8740 @parzivalwolfram @jannem @dalias @unnick I don't care about Visual Studio but if your software requires bash I will rm the entire build system and redo it using something made by competent people @whitequark @parzivalwolfram @jannem @dalias @unnick Your opinions are frankly wrong. @wyatt8740 @parzivalwolfram @jannem @dalias @unnick I'm objectively correct and you know it! @whitequark @wyatt8740 @jannem @dalias @unnick Bash extensions can be very helpful, but it is big and sometimes critically buggy, I do agree on those common points. @parzivalwolfram @whitequark @jannem @dalias @unnick a non-bash bourne shell is preferable imo @wyatt8740 @parzivalwolfram @jannem @dalias @unnick the only thing worse than a bourne shell is cmd.exe @whitequark @parzivalwolfram @jannem @dalias @unnick Powershell is worse @wyatt8740 @parzivalwolfram @jannem @dalias @unnick never heard of poweshell @whitequark @parzivalwolfram @jannem @dalias @unnick it's been around since windows xp. I'm astonished if you never have @wyatt8740 @parzivalwolfram @jannem @dalias @unnick (I thought it was an obvious bit >.>) @whitequark @parzivalwolfram @jannem @dalias @unnick gotta say i kind of wondered when you said 'only thing worse is cmd.exe' @wyatt8740 @parzivalwolfram @jannem @dalias @unnick I have, actually! I never tried to ship DOS batch files at scale though, because that scale did not exist yet @whitequark @parzivalwolfram @jannem @dalias @unnick command.com bat files are much worse than windows bat files @wyatt8740 @whitequark @parzivalwolfram @jannem @dalias @unnick ...aaaand that's why some of us used 4DOS, before moving over to Unix-like systems soon after. @wyatt8740@tech.lgbt @whitequark@mastodon.social @parzivalwolfram@infosec.exchange @jannem@fosstodon.org @dalias@hachyderm.io @unnick@wetdry.world Honestly both of them are horrendous https://www.youtube.com/watch?v=uE8IAxM_BhE (and the follow up to how to secure against such attacks - https://www.youtube.com/watch?v=x97ejtv56xw) but what really got me was the finale https://www.youtube.com/watch?v=mej5L9PE1fs I hate cmd.exe and powershell.exe they are the antichrist and i am not joking. @whitequark @wyatt8740 @jannem @dalias @unnick i've done some DOS slinging, it's even worse without the extensions from the NT era. splitting a string is a 3-batch-file job totalling... 2104 bytes, for a maximum of 3 splits on one character, more if you need more than that, and there's no way to do it programmatically up to n splits unless you hardcode support up to that number. @parzivalwolfram @whitequark @jannem @dalias @unnick Don't forget that goto labels can only be 8 characters! @parzivalwolfram @wyatt8740 @jannem @dalias @unnick at this point just use debug.com to do it in native code @whitequark @parzivalwolfram @jannem @dalias @unnick "You are a very silly person, and I'm not going to interview you." @whitequark @wyatt8740 @parzivalwolfram @jannem @unnick Not bash just a POSIX shell, which only needs fork if you're bad at implementing it and code like it's 1970... 😁 @dalias @whitequark @parzivalwolfram @jannem @unnick Hi, I program like it's 1970. Not really, more like 1989 @parzivalwolfram @whitequark @jannem @wyatt8740 @unnick cmake is just an awful user facing interface. No consistency in how you override what tools to use, where to find libraries, what flags to build with, where to install, how to do a staged install, etc. NTM the horrible DSL and gigantic implementation that takes like an hour ti build. @parzivalwolfram @whitequark @jannem @dalias @wyatt8740 @unnick I'm in a similar situation (custom needs) but we still went into cmake (against my advice). It's annoying. Bad design of hardcoding too much into an engine instead of good language design (good base language with low enough primitives, the comfort stuff as library with good abilities to override/customize defaults if needed) |
@dalias @wyatt8740 @unnick and why is it that people c&p a bunch of garbage rather than writing their own .ac file, Rich?