Open Source Software Community - it's about ethics in Code of Conducts

  • 🏰 Deploying update to the Tatarus security page. If you encounter issues, post here.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
I feel like the majority of these new languages only serve to fragment the ecosystem in terms of packages/libraries.
Say what you will about C, but in 1000 years, you will be able to compile and run C code on whatever star trek ass computers we have.
 
I feel like the majority of these new languages only serve to fragment the ecosystem in terms of packages/libraries.
Say what you will about C, but in 1000 years, you will be able to compile and run C code on whatever star trek ass computers we have.
They're all just LLVM frontends. They'll live or die together.
 
Really? I can not find that.
Since its early days, QBE used a bottom-up tree-numbering algorithm inspired by Ken Thompson's Plan9 C compiler (see 5.5. Addressability). The algorithm is fairly generic but has some subtleties in dealing elegantly with associativity and commutativity of arithmetic operators. It has been a long-standing goal of mine to implement a metaprogramming solution to this problem. QBE 1.3 sees the realization of this goal.

A new OCaml tool called mgen is used to compile lispy IL patterns into idiomatic C code that matches them. The mgen tool will look for special comment blocks containing IL patterns and inline the matching C code right below these blocks. The generated C code is designed to look idiomatic in qbe and works similarly to the hand-written logic pre 1.3. See the isel.c file for the current use of mgen.

In more detail, instruction DAGs are matched by following a numbering approach like in Ken Thompson's compiler. Then, mgen associates each number with a bitset indicating which of the toplevel user patterns are matched by the current IL node (temporary); the most suitable pattern can then be selected by handwritten logic. Patterns can include variables which can be collected by running a matcher program. These programs are also generated by mgen in a simple bytecode language which the runmatch() function can interpret.

I expect that in the future mgen is used to simplify instruction selection in more backends and maybe even to recognize IL patterns such as bit rotations in optimization passes.
 
I'll admit I don't really follow Zig beyond what I see on my feeds nor care enough to check, but this is really funny if true.
1784970509411.png
 
I'll admit I don't really follow Zig beyond what I see on my feeds nor care enough to check, but this is really funny if true.
View attachment 9320177
Tweet | Nitter


ETA sperging:
In the talk, Andrew Kelley rails against "coercionware" (which is broadly defined and includes algorithms that suggest other content) and he puts this principle on a slide:
1784984724978.png
Okay, Andrew, the software I'm using is the Zig compiler. It refuses to compile my code because I have an unused variable. I know there are unused variables, it's because the code is a work in progress and I need to test it, it would be a big hassle to remove all of these lines of code just to compile then put them back, could it please compile it anyway? Andrew: No, I've decided it won't let you!

He fails to grasp the irony.
 
Last edited:
As much as I like LLMs and think they're a great tool for programming, I don't know how people deal with big, AI generated codebases. So far I haven't seen anything that wasn't incoherent in some way, even when it worked.
Big non-AI generated codebases are scarcely free from anything incoherent as well.

When projects become huge and/or complicated, you start getting into industrial engineering problems (a.k.a. project management and DevOps). Tackling these problems has turned out to not be easy for a group of people to do.
 
Tweet | Nitter


ETA sperging:
In the talk, Andrew Kelley rails against "coercionware" (which is broadly defined and includes algorithms that suggest other content) and he puts this principle on a slide:
View attachment 9320717
Okay, Andrew, the software I'm using is the Zig compiler. It refuses to compile my code because I have an unused variable. I know there are unused variables, it's because the code is a work in progress and I need to test it, it would be a big hassle to remove all of these lines of code just to compile then put them back, could it please compile it anyway? Andrew: No, I've decided it won't let you!

He fails to grasp the irony.
But what if the user is a Nazi, Andrew?
 
As much as I like LLMs and think they're a great tool for programming, I don't know how people deal with big, AI generated codebases. So far I haven't seen anything that wasn't incoherent in some way, even when it worked
yeah, if you have it generate spaghetti code that you need AI to parse you've lost. that's not the future. i didn't understand why people were so freaked out about it until i saw an oldhead do it right. he put together a 50-page design doc for the program he wanted, with templates and example code and lots of instructions and charts. effectively what you'd hand off to give to contractors in vn or pl if you wanted something made exactly to specification. he needed lots of iterative adjustments, but something that should have taken a team of bodies 6 months took him a month of crunch. at the end the code was high-quality, human-legible and easy to maintain or tweak w/o AI.
Big non-AI generated codebases are scarcely free from anything incoherent as well.

When projects become huge and/or complicated, you start getting into industrial engineering problems (a.k.a. project management and DevOps). Tackling these problems has turned out to not be easy for a group of people to do.
Great point - I think the real promise of AI isn't the automation of labor per se. The benefit is that AI in the hands of skilled employees who are also good project managers, it lets you do a lot with lean teams, and lean teams can coordinate effectively and talk to each other and get stuff done. Large organizations inevitably devolve into dysfunction and inertia as coordinating people takes up and more and more of the org's time. The question we need to answer is how do we train and develop people when the tasks junior employees learn from are the ones now being done by AI.
 
Last edited:
As much as I like LLMs and think they're a great tool for programming, I don't know how people deal with big, AI generated codebases. So far I haven't seen anything that wasn't incoherent in some way, even when it worked.
the same way you deal with any big codebase, which is that you've broken it down into small subsections you've validated.

LLMs are a godsend for code exploration. if some ornery maintainer doesn't like AI made PRs there's nothing stopping you from using it at a higher level.
 
They're all just LLVM frontends. They'll live or die together.

To be fair to Zig, it's been gradually moving away from its dependence on LLVM.

I think LLVM is a good thing on the whole, though. It lets language designers focus more on the language than having to worry about the intricacies of all the various hardware platforms out there and increases the range of platforms that these languages can run on. (If I'm understanding what LLVM does correctly; feel free to call me a retard if not)

"Oh, just use C for everything!" no lol

andrew is rapidly approaching the point where a thread could be made about him.

I don't know if there's that much interesting about him aside from the run-of-the-mill leftist politisperging but it is kind of sad how content he is to let said politisperging needlessly bleed over into his interesting project. But many such cases, really.
 
This is a bit off topic but so many of these OSS kids claim to be hecking government gay furry anarchist black hat hackers or whatever, then 5 minutes later post a full picture of their faces and surroundings. It is the most larpy thing ever but kinda funny at the same time, especially when they have a meltdown over getting doxed despite having F-Tier opsec.
 
Big non-AI generated codebases are scarcely free from anything incoherent as well.
I don't know, the crud that collects in old/big codebases is different than AI incoherence. I know this is a piss poor explanation but I'm not sure how to put it in words. Maybe somebody knows what I mean.

saw an oldhead do it right

Definitively, alone making the AI do research first and put together a comprehensive manual for itself makes a big difference. It's all about context. Even "talking it out" and giving the LLM pointers how something is best implemented can cut down on the worst of nonsense. I'm not saying LLM for coding is bad, I'm just saying I see many a project that obviously runs away from the skill level/oversight of the human developer.
 
Back
Top Bottom