sigmoid.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A social space for people researching, working with, or just interested in AI!

Server stats:

599
active users

#llvm

2 posts2 participants0 posts today

How you don't want to spend your Saturday: figuring out how many regressions #LLVM developers managed to sneak in just before the 21.x branching, and then bisecting them.

The answer: 2 serious regressions breaking libclc build and install, 2 test regressions in clang and compiler-rt respectively (the former quickly reverted on main, for the second time, but nobody thought of backporting), and 1 assertion failure in experimental backend.

Now I really hope I'll manage a clean run for 21.1.0-rc1 with the biggest zero-day LLVM patchset in the history of #Gentoo.

LLVM downstream maintenance is a nightmare.

I 💗 PR Validates

Off and on for the past bit of time I've been iterating on a new command+control server. It's nothing terribly complicated, more so that it's being optimized for its role with my baseline reqs for a tolerable (nearly enjoyable) Linux system when I cannot use FreeBSD or Solaris.

- LLVM 20, Clang, Ccache, OpenRC
- UEFI stub for boot (no grubs or potterings)
- ZFS on Root v2.3 with 3x NVMe drives in draid1
- ZFS Native AES encryption on the pool
- ZFS split-fs for usr, var, home
- COM redirect at boot for headless operation
- DMI and hardware locality captured for refs
- Block info and disk partition exports for refs

So, here are two of the ongoing repos which track this effort. Trickle down tech, this build informs adjacent and sub-type systems which will fulfill various private cloud cluster roles and bare-metal core systems. Eventually I'll write about this on the blog, but not today.

- codeberg.org/rfc1918/gentoo-st
- codeberg.org/rfc1918/gentoo-st

Summary card of an issue titled "CMDCTRL ➲ Metal ➲ Stage3 ➲ Stage4" in repository rfc1918/gentoo-stage4-cmdctrl
Codeberg.orgCMDCTRL ➲ Metal ➲ Stage3 ➲ Stage4# What is this and Why do we care ## Merge Description A PR with mostly-partial coverage for metal-provisioning of a Cluster Command & Control server, based on Gentoo 23.0 LLVM amd64. ## Merge Actions Status | **Aspect** | **Status** | **Priority** | **ToDo** | |---------|---------|--------...
#linux#gentoo#llvm

Y'all wanna see an excessively cute trick LLVM's optimizer can do?

Swift String contains roughly this method:

```
func _fastCStringContents() -> UnsafePointer<UInt8> {
if isASCII {
return contentsPointer
}
return nil
}
```

Where `isASCII` is defined as `(flags & 0x8000_0000_0000_0000) != 0`

Would you expect this to generate (solution in reply)

Replied in thread

@artificialmind Nice! Thank you for the kind words! 🙂

Your own programming language!? This sounds really cool! We need those ambitious goals!

I wish you great success! 💪

The following might be helpful in your journey (they are one of the best resources I know about #Parsing, #Compilers etc.):

tomassetti.me/

A tutorial on how to write a #compiler using #LLVM:
tomassetti.me/a-tutorial-on-ho

A Guide to Parsing: #Algorithms and Terminology
tomassetti.me/guide-parsing-al

StrumentaOur articles - Strumenta

Alas, looks like I’m going to have to switch from an LLVM to a GNU toolchain for this embedded ARM project, because LLVM doesn’t yet fully support the ARM FDPIC ABI—which is what supports multiple clients of a shared library with shared text and distinct read/write data on an MMUless system. (It works by making a loadable module’s globals relative to r9, just like the original PowerPC ABI made them relative to r2.) #llvm #embedded

github.com/llvm/llvm-project/i

Replied in thread

@katyswain I din't think that #CCSS is good either, but the demands of #GPLv3 are not compatible with the (adnitteldy shitty) reality of how #IP, #Licensing and #Patents work and thus it kneecaps a lot of things.

I chose #0BSD for _OS/1337 because as with any "intellectual labour", one cannot force others to collaborate and I'd rather have people join in out of the goodness of their hearts instead of just dumping some random git commit that is useless.

I'm trying out #GenAI in the context of writing code. My conclusion based on a few days of intensive use is that it is alpha-quality, with a suggestion reject-rate of 95% on any real software project like #LLVM. The 5% of good suggestions appear when you're editing one instance of a pattern, and want to change all instances; things like paren-matching are also taken care of automatically. The little automation comes at the cost of putting up with bad visual feedback nearly all the time, and it can take some time to get used to. It is, by no means, "smart", but this technology offers a way to automate things that can never be automated by classical software.

I also tried it on a toy project: a tree-sitter-based LLVM IR parser. In this case, the entire task is a mechanical chore of reading docs/ample examples and encoding the knowledge in the parser. For kicks, I tried to generate the entire parser with the technology, and the result turned out to be so bad, I had to delete it. Then, I started writing the parser, and the suggestions were actually quite good. The best part? I generated 300 tests to exercise the parser automatically (I had to tweak very little)! Of course, the tests aren't high-quality with over 30% redundancy, but this is a toy project anyway, so who cares?

Replied in thread
@laund@wetdry.world

If a project needs #BigTech money, it is controlled by Big Tech.

The control might be tighter or smoother, but it's there: the project cannot deviate from its sponsors will, whatever the developer community think about it.

To me, it doesn't matter how the money come, as deducible donation, as contracts to be the default search engine, as #Google summer of code, or as contributor employment: if you take their money, you serve them.
if you think ‘working with other people whose goals don’t 100% align with yours’ is a bad thing, please avoid LLVM.
Well, to be fair, I try not only to avoid #LLVM but any #programming language based on it.

Sure: you can ignore all the damage these corporations are doing to people all over the world, as resource extraction, as pollution, as energy consumption, as surveillance and people manipulation through #AdTech, as workers' oppression and work with them for years despite "working with other people whose goals don’t 100% align with yours" is not such a bad thing.

But I can not.

I guess it's matter of priority, isn't it?

To me an overcomplicated toolchain is a liability in itself, but if it's built with #GAFAM money, it's a cancer.

@david_chisnall@infosec.exchange @Dominix@mastodon.social
ABC News · Rash of Suicides in China where Apple Products are ProducedBy ABC News
While it has its own issues, there are several good reasons why my favourite #ProgrammingLanguage in the real world is #C

Why not #Go?
Because it's from #Google.

Why not #Csharp or #Fsharp?
#Microsoft.

Why not #Rust or #Zig?
#LLVM (aka #Apple & friends).

Ultimately, most of languages I avoid like the plague are controlled by #BigTech one way or another.

C is simple enough to get several alternative compilers based on useful standards.² ³


¹ In theory I still prefer #Oberon07, but when I want to code something useful I still use C instead to lower the entry barrier for other devs, because there are too many incompatible implementations of the compiler and "standard" library.

² Ok, #Python, #Scheme and #Lua have similar qualities, but for the tools I write I usually prefer binary executables with no runtime.

³ No, #C++ is not an option. 😉
harmful.cat-v.orgBjarne Stroustrup: "I Did It For You All..."