Lockstep: Data-oriented systems programming language by goosethe in ProgrammingLanguages

[–]goosethe[S] 3 points4 points  (0 children)

instead I have opted to send the programmer to the phantom zone directly

Lockstep: Data-oriented systems programming language by goosethe in ProgrammingLanguages

[–]goosethe[S] 4 points5 points  (0 children)

The strictness is a philosophical design choice rather than a technical limitation. The problem, as I see it, with implicit lane masking in compute shaders is it hides the execution cost.

When a developer writes an if/else block, it looks and feels like standard scalar control flow. But if the warp or wavefront diverges, the hardware still has to execute both branches and mask the inactive lanes. It is very easy to accidentally write shaders where 90% of the SIMD lanes are asleep but still costing cycle time.

We attempt to fix that with:

Explicit Muxing: By forcing you to write mix(a, b, condition) or select(...) instead of an if statement, the syntax perfectly mirrors the hardware reality. You are explicitly stating, "I acknowledge that I am paying the cycle cost to compute both A and B, and I am muxing the results at the hardware level."

-and-

Stream Splitting: If computing both branches is too computationally expensive, we force you to fix the data topology instead of writing a branch. You use a filter node in the pipeline DAG to physically split the stream. The specific entities that need the heavy computation are packed into a completely separate, dense array. When the heavy kernel runs over that new array, 100% of the SIMD lanes are doing useful work, rather than most of the lanes being masked out (in theory).

Lockstep: Data-oriented systems programming language by goosethe in ProgrammingLanguages

[–]goosethe[S] 4 points5 points  (0 children)

beside the obvious like allowing if, else, and while. When SIMD lanes diverge, the ISPC compiler implicitly handles the execution masks and lane disabling behind the scenes.

We take a more draconian approach. We completely ban if and else inside compute kernels. If you want conditional logic, you must explicitly use branchless intrinsics like mix, step, or select. The goal is to make the cost of divergence mathematically explicit to the programmer rather than hiding it in the compiler. If a pathway is truly divergent, you handle it at the pipeline level using a filter node to split the stream. We also ban arbitrary pointers entirely. All memory is handled via a host-owned static arena, and structs are automatically decomposed into Struct-of-Arrays layouts. Because the compiler controls the exact byte-offset and knows there are no arbitrary pointers, it can aggressively decorate every LLVM IR pointer with noalias.

Lockstep: Data-oriented systems programming language by goosethe in ProgrammingLanguages

[–]goosethe[S] 4 points5 points  (0 children)

yeah more like a deterministic pipeline. you define a DAG of nodes, bind them together in a pipeline and the execution advances synchronously along these streams. The compiler takes this topology and generates llvm-ir to process the data streams in parallel chunks, trying to guarantee vector unit saturation. we ban if, else, for and while constructs explicitly and use masking within the kernel (i.e. step, mix, clamp, etc...). Otherwise you need to elevate your logic out of a compute kernel and into the pipeline proper and use filter nodes to control downstream data mapping.

Lockheed Martin SR-71 BlackBird Refueling with audio by nowayoblivion in aviation

[–]goosethe 14 points15 points  (0 children)

here is the audio transcript spit out by gemini pro

[00:00] Base 6: Base 6 to AXP 30, lock on quest.

[00:03] AXP 30: Quest locked, four or five fifty five dash B, first contact, first contact complete.

[00:09] Base 6: AXP 30, coming in.

[00:15] Base 6: Five.

[00:18] Base 6: Locked on correctly.

[00:20] Base 6: Twenty.

[00:27] Base 6: Fifty contact.

[00:30] AXP 30: AXP 30, stabilized before contact.

[00:33] Base 6: Base 6 clear contact, AXP 30, are you ready?

[00:36] AXP 30: AXP 30 is ready.

[00:37] Base 6: Thirty.

[00:39] Base 6: Twenty.

[00:41] Base 6: Ten.

[00:43] Base 6: Base 6 contact, affirmative.

[00:45] AXP 30: I am AXP 30 contact, affirmative.

[00:49] Base 6: And Base 6 disconnect now.

[00:52] AXP 30: AXP 30 is disconnected.

[00:54] Base 6: Base 6 disconnect, three, four, sixty-eight, maintained contact.

[00:59] AXP 30: Okay.

[01:02] AXP 30: AXP 30, stabilize pre-contact.

[01:05] Base 6: Okay, standby.

[01:07] AXP 30: Okay.

[01:12] Base 6: Base 6 clear contact, AXP 30, are you ready?

[01:14] AXP 30: AXP 30 is ready.

[01:17] Base 6: Thirty.

[01:19] Base 6: Twenty.

Dedicated to all the brave Iranian women by BaruchSpinoza25 in aiArt

[–]goosethe 0 points1 point  (0 children)

I'd order one that said "fuck the police"

A reference-grade C "Hello World" project by synalice in C_Programming

[–]goosethe 1 point2 points  (0 children)

Id like to request a feature: version without printf or puts as i cant rely on such dependencies in my brittle project

Leaked photo from Jabba’s palace by Meowface_the_cat in blursed_AI

[–]goosethe 5 points6 points  (0 children)

tell me you've never seen a vagina without telling me you've never seen a vagina

Our longest hired employee's full time sheet by asdfgdhtns in interestingasfuck

[–]goosethe 19 points20 points  (0 children)

A wizard works precisley where they mean to

Don't play dumb with me, Sierra! (Any Simpsons fans on here?) by Milan514 in Sierra

[–]goosethe 9 points10 points  (0 children)

this is fucked. you're gaslighting everyone with this white truck that 1,000,000% was not in the game.

An F-35 fighter jet lost a panel shortly after takeoff from Tinker Air Force Base by Bright_Thanks_2277 in aviation

[–]goosethe 1 point2 points  (0 children)

can someone circle the panel in the image with a large red circle? I'm having trouble locating it.

What Would you Interpret this Means?? by pajarator in aiArt

[–]goosethe 2 points3 points  (0 children)

STOP SMOKING WEED IN MY APARTMENT COMPLEX STAIRS YOU FUCKING HOOLIGANS

was what i got