It seems literally impossible to get #ClangFormat to not align stuff.
Don't believe me? Take this piece of code and find a clang-format config which doesn't align stuff:
auto getWhateverStmt = db_.stmt(
"SELECT * FROM mytable "
"WHERE k = 2 "
"ORDER BY createdAt").bind();
Feel free to play with it in https://zed0.co.uk/clang-format-configurator/. I literally can not find a way to make it not produce something absolutely ridiculous where the SQL is pushed all the way to the right.
For #llvm tools does everyone just use the C++ API? For dealing with bitcode files, IR, or libClang, there seem to be API surface from the C++ version not exposed to C. Folks in C++ can use that API, but
It's less stable afaict
It's not bindable from other languages, e.g. Rust/Python
Is this just a known issue, or is there some angle I'm not aware of?
There is an #LLVM pass I'm interested in: MergeFunctions
It seems to allow us to cut size of compiled SPIRVs in half. However, it can also end up generating Pointers to Function which we absolutely can't and won't handle.
Anybody any idea how we could deal with this so we don't end up with any function pointers?
It's one of these days when upstream fixes a very old bug and you suddenly have to figure out how your ancient workarounds used to work and what to replace them with.
Fortunately, it looks like we just need to replace /usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/clang with /usr/lib/clang.
The only problematic part is that the testing of an LLVM bump takes a few hours, and now it's blocked on manual intervention.
"Here we show how #ArtificialIntelligence can go beyond the current state of the art by discovering hitherto unknown routines. To realize this, we formulated the task of finding a better sorting routine as a single-player game. We then trained a new deep #ReinforcementLearning agent, #AlphaDev, to play this game. AlphaDev discovered small sorting algorithms from scratch that outperformed previously known human benchmarks. These algorithms have been integrated into the #LLVM standard C++ sort library3. This change to this part of the sort library represents the replacement of a component with an algorithm that has been automatically discovered using reinforcement learning."
「 Rust will invariably solve some issues in today’s programming, including security-related trouble such as Heartbleed or the goto fail fiasco of 2014. But Rust will invariably introduce new issues, completely unforeseen as of now. And a new, modern programming language will appear in 2050 or 2060 solving those issues, and the rewrite cycle will begin all over again 」
I'm just now catching Andrew Whatson's talk on #PreScheme from #fosdem this year, and I just can't get over the fact that he was able to implement a working, reasonably fast systems programming language with Hindley-Milner type inference in his free time over the course of a few months. And I was in the #GuileSteel irc when the discourse first started, it was probably less than a month before he got it working. I even try it then and it seemed great for something that went up that quick. What other programming languages make rapid prototyping #compilers feasible without relying on massive frameworks like #LLVM or #Truffle/#Graal?
So someone made a commit with a future date to #LLVM. As a result, #git now produces a snapshot with dates in the future. Upon running #CMake on files from that snapshot, #Ninja keeps detecting that generated CMake files are older than their sources and rerunning CMake in a loop. Sigh.