Really interesting to see how fast, cheap content addressable stores are changing how we build CI and dev tools. If you can load or store just about anything a tool might produce in a few ms, knowing it's content digest only, you start to build differently.
Not just in build systems but anything that needs access to the artifacts: generated code, bytecode, logs, errors, object files, binaries.
This has been a trend for a while but I think the costs are so low now it becomes possible to build multiple layers of tools reusing the remote distributed cache
#softwareengineering #buildsystems #distributedsystems
Are pkg-config .pc files the closest to a build system agnostic "package" descriptor with what libraries to link and include paths to set etc to consume a library?
Kind of want to try building some decently big open source project with the Wilco build system to see how it works out. I've made tests with cpp-doom and box2d but those are both pretty simple.
I've started messing with Godot, but it has quite a lot of custom build time codegen and stuff. While that's not really a problem, it takes a lot of time to port just for testing.
Anyone got suggestions?
A status update on the build system, since I know you're all dying to know... 🙄
Having custom commands with proper dependencies turned out to be a hassle, BUT I think I got it working properly. Needed to have the command manually write "tlog" files for MSVC to track changes. Hard to figure out, but simple to do.
Actually starting to run out of big obvious pieces missing, which is cool.
Still procrastinating things like deciding on a name though...
#cpp #buildsystems #programming
For anyone following along, I'm refactoring a bunch of dependency checking to be better and faster, with the downside that it keeps more saved state. I think it'll turn out good though.
But honestly it's already fast enough. I'm really just procrastinating polishing things up and fixing some msvc & ninja generation issues.
Replacing "input timestamp > output timestamp" based dirty checking with an
"Input timestamp changed" based one turned out to be more complex than I anticipated.
When it's working enough to do better testing I may have to evaluate if it's worth it. It can possibly be faster and also have better tolerance with low precision timestamps, but I'm worried all the statefulness makes it brittle.
Today was a good reminder about how much I dislike integrating with C++ projects at work. The CMake system in the repo is incomplete and makes no reference to where to find the rest of it. Required options to the build system are found in a separate CMake module that I guess I have to preload? Even after that there’s a missing header file and zero declared dependencies.
Oh, and a byte swapping function that branches at least twice per call.
#cpp #CMake #BuildSystems
I do have an initial draft of a post about how #web developers confused #builders and #BuildSystems and screwed over the entire #tooling ecosystem.
This is kind of the same point, and maybe I just need to finish that damn post.
#web #builders #buildsystems #tooling
Folks, we're opening up the warp.build #community #discord! 🚀
You can join here: https://discord.gg/YmXWnGYCDj 💬
Come hang out and lets talk #buildsystems and #buildengineering 🤓
#buildengineering #buildsystems #discord #community
Aight folks we put up a new website for Warp, that’s slowly reflecting more clearly the value proposition we have, how Warp works, and how you can engage with us now.
Pricing as usual is very subject to changes, we’ll see what folks are willing to put down.
Have at it! https://warp.build
#buildinpublic #startups #saas #entrepreneur #buildsystems #devtools #developers
#developers #devtools #buildsystems #entrepreneur #saas #startups #buildinpublic
I’m not much for patting myself on the back but I do like how this is looking.
#buildsystems #StarTrek #warp #startups #buildinpublic
Custom build steps in MSBuild/Visual Studio annoy me.
There's build events where you can do stuff Pre-Build, Pre-Link or Post-Build, but those can not have any dependency checking.
Then there's custom build tools, which can specify input/output for dependency checking, but those are always run pre-build. (Technically in the middle of a bunch of build steps.)
whynotboth.gif
Why not?
#buildsystems #msbuild #visualstudio #cpp
Just learned about https://www.pantsbuild.org anyone using it? A build engine on top of Rust and Tokio seems like it could be promising
@ibboard Never used Vala (or even heard of it!). Looks nice.
Clang warnings/Analyzer uses CFLAGS and there's a C build step in compiling Vala, so use the build system's way of passing CFLAGS.
Some tools (e.g. cbmc) might need more care to get working. Others can watch a build for C compile commands.
A tool like Bear can grab a Compilation Database. Then you edit and use a JSON record of the C compilation to run a static analysis.
#vala #c #compilationdatabase #sast #buildsystems
After exactly 10 years, Meson 1.0.0 is out https://nibblestew.blogspot.com/2022/12/after-exactly-10-years-meson-100-is-out.html
c:\dev\buildtest> build\build build
I _really_ need to come up with a name for my build system that's not "build".
#programming #buildsystems #cpp
My build system needs to be able to restart itself, and since it may change its own binary it has to actually restart the process.
I'm currently using execv to tail recurse, but I think I may have to rework that because a lot of tools seem to get confused and think it's done after the relaunch and misses output. At least on Windows.
I thought it would look like the same process continuing to the caller, but I might be doing something wrong.
#programming #buildsystems #cpp
I wrote a new #blog post: Writing a Static Site Generator Using Shake https://abhinavsarkar.net/posts/static-site-generator-using-shake/
#blog #haskell #programming #buildsystems