Implement part 2 of 2 of the empty bodies in specs/vm/jit_semantics.t27 (4 functions)
Context
specs/vm/jit_semantics.t27 holds 12 functions declared with a body that contains no statement. It is split into 2 issues because one turn cannot carry them all.
All 2 parts name the same file, so they share one boundary and cannot run at the same time - the swarm holds the file for whoever has it. They must be done in order, and the check below stops you if you arrived out of turn.
.t27 is the hand-authored source language. t27c compiles it out to C, Rust, Verilog and Zig. You are writing source, not compiler output, and not prose about an implementation.
Before you start
$ cd /Users/playom/t27
$ t27c gen specs/vm/jit_semantics.t27 2>&1 | grep -c 'not yet implemented'
4 # if it is not 4, this part is not yours yet - stop
What to write
Keep every signature exactly as it is. Quoted verbatim:
- line 127 -
pub fn getOrCompile(cache: &JitCache, op: VsaOperation, dimension: usize) -> ?JitVsaFn
- line 137 -
pub fn jitBind(cache: &JitCache, a: &HybridBigInt, b: &HybridBigInt)
- line 143 -
pub fn jitBundle(cache: &JitCache, a: &HybridBigInt, b: &HybridBigInt)
- line 150 -
pub fn jitDotProduct(cache: &JitCache, a: &HybridBigInt, b: &HybridBigInt) -> f64
Add a test block for each function you implement.
Acceptance criteria
-
t27c gen specs/vm/jit_semantics.t27 > /tmp/t27-gen.zig && grep -c 'not yet implemented' /tmp/t27-gen.zig prints 0 (on arrival: 4)
-
t27c spec-status specs/vm/jit_semantics.t27 does not print NOPARSE - the file still parses. (This replaces a parse-metrics criterion. The compiler in the container prints no such metrics, so the command printed nothing and no work could ever satisfy it.)
-
- with criterion 1 satisfied, all 4 names above still exist:
grep -cE '^\s*(pub )?fn (getOrCompile|jitBind|jitBundle|jitDotProduct)\(' specs/vm/jit_semantics.t27 prints 4
Boundary
specs/vm/jit_semantics.t27
Implement part 2 of 2 of the empty bodies in specs/vm/jit_semantics.t27 (4 functions)
Context
specs/vm/jit_semantics.t27holds 12 functions declared with a body that contains no statement. It is split into 2 issues because one turn cannot carry them all.All 2 parts name the same file, so they share one boundary and cannot run at the same time - the swarm holds the file for whoever has it. They must be done in order, and the check below stops you if you arrived out of turn.
.t27is the hand-authored source language.t27ccompiles it out to C, Rust, Verilog and Zig. You are writing source, not compiler output, and not prose about an implementation.Before you start
What to write
Keep every signature exactly as it is. Quoted verbatim:
pub fn getOrCompile(cache: &JitCache, op: VsaOperation, dimension: usize) -> ?JitVsaFnpub fn jitBind(cache: &JitCache, a: &HybridBigInt, b: &HybridBigInt)pub fn jitBundle(cache: &JitCache, a: &HybridBigInt, b: &HybridBigInt)pub fn jitDotProduct(cache: &JitCache, a: &HybridBigInt, b: &HybridBigInt) -> f64Add a
testblock for each function you implement.Acceptance criteria
t27c gen specs/vm/jit_semantics.t27 > /tmp/t27-gen.zig && grep -c 'not yet implemented' /tmp/t27-gen.zigprints0(on arrival: 4)t27c spec-status specs/vm/jit_semantics.t27does not printNOPARSE- the file still parses. (This replaces a parse-metrics criterion. The compiler in the container prints no such metrics, so the command printed nothing and no work could ever satisfy it.)grep -cE '^\s*(pub )?fn (getOrCompile|jitBind|jitBundle|jitDotProduct)\(' specs/vm/jit_semantics.t27prints4Boundary
specs/vm/jit_semantics.t27