I rewrote that comment a bunch of times, trying to find the right balance between unimportant historical details and details that actually matter.
Daan De Meyer
@DaanDeMeyer
I was a bit dissapointed by ned14's reply to your comment that the API was easy to get right after all the effort I put in keeping reproc's API as simple as possible
Boris Staletic
@bstaletic
I believe what he wanted to say is that it's a much bigger problem being able to change the definition of the abstract machine to make it recognize that the world isn't just the single process that is currently being executed.
Daan De Meyer
@DaanDeMeyer
I agree that's likely a much harder problem to solve. I'm not entirely sure it's worth it to standardize a process library for C++ though. I wouldn't be able to live without subprocess in Python but I feel there's more important stuff to focus on for C++.
Boris Staletic
@bstaletic
I'd much rather see std::process than std::audio, std::video or, god forbid, std::web_view.
Daan De Meyer
@DaanDeMeyer
Naturally, those are much better served by libraries (although a standardized way of distributing libraries might help)
distributing might not be the right word
Boris Staletic
@bstaletic
Something like cargo/crates.io?
Daan De Meyer
@DaanDeMeyer
More like something that allows interop between all the build systems
Boris Staletic
@bstaletic
May I just say... pkgconfig?
Daan De Meyer
@DaanDeMeyer
It's the closest we have at the moment
Although CMake config files are a contender as well with meson adding support for them
Boris Staletic
@bstaletic
C++ committee did form a tooling study group.
Daan De Meyer
@DaanDeMeyer
But if something was ever standardized it would very likely be something declarative instead of CMake config files which are imperative
Boris Staletic
@bstaletic
I dislike declarative configuration with passion.
At some point the cumulative needs of the users will make you wish you had a turing complete language instead of ad-hoc solutions in the "it's good enough" declarative language.
Daan De Meyer
@DaanDeMeyer
Same, although the scons build system at my job hasn't made me fond of a full programming language for build systems either
Boris Staletic
@bstaletic
I haven't used scons, so I'll have to take your word for it.
However, I'm guessing you remember how much I talked about YCM's .ycm_extra_conf.py.
Daan De Meyer
@DaanDeMeyer
I do remember you mentioning it but not the specifics
It's a python script for configuring YCM right?
Boris Staletic
@bstaletic
Yes. YCM passed a filename to it and a function inside the file returns { 'flags': [ flags ] } (with a few other optional properties).
_
When compile_commands.json is too limiting, YCM users can solve that by implementing thte logic in the extra conf.
Daan De Meyer
@DaanDeMeyer
Making scons generate a compilation database was quite the adventure, I still don't have it quite where I want it. All headers are copied to a rootfs in the build directory by the build so each time I hit go to definition I end up in the build directory. I'm working on making that symlinks which clangd should be able to handle
It's a shame cquery winded down but clangd has been getting more amazing with every release
Boris Staletic
@bstaletic
Things I miss in clangd:
clangd/clangd#45 - not for myself, but it would allow ycmd to drop the old libclang based completer