Guillem L. Jara
4e9ef8405c
chore(interpreter): remove Arg/Place duplication
2026-09-06 19:07:56 +02:00
Guillem L. Jara
20d55ab114
chore(tests): add NF-related tests
2026-09-06 19:07:48 +02:00
Guillem L. Jara
a9acaf1c12
fix(interpreter): trap NF, FS, ...; refactor field splitting
...
Removes synchronization of `NF` and brings machinery to trigger side-effects of built-in variables. The `Place`/`Arg` methods have become a bit spaghetti tho.
2026-09-06 18:16:55 +02:00
Guillem L. Jara
6360df6c21
chore(tests): add tests for atom eager typedness set
2026-09-03 20:52:07 +02:00
Guillem L. Jara
a1bfc0fd3c
fix(interpreter): eagerly set scalar context in atom lowering
...
Previously, this code would succeed, but gawk rejects it:
```awk
function f(x) { return a }
BEGIN { a[f(a)] = 1; }
```
2026-09-03 20:39:01 +02:00
Guillem L. Jara
97e4fd8f40
perf(interpreter): add variadic concat instr for great good
...
This applies for `n > 2`. In synthetic benchmarks, this about as performant for `n = 3`, and for all `n > 3`, the time gets literally halved w.r.t. the original for every few elements.
2026-09-03 19:15:32 +02:00
Guillem L. Jara
c21c6c4c3f
chore(parser): inline SpanExt impl
2026-09-03 17:37:24 +02:00
Guillem L. Jara
f123ada9f5
chore(tests): add various FS split tests
2026-09-03 16:31:41 +02:00
Guillem L. Jara
8fdcfcbe38
fix(interpreter): properly coalesce whitespaces in FS=" "
2026-09-03 16:30:43 +02:00
Guillem L. Jara
98c97bff6c
fix(interpreter): treat null regex matches like GNU
2026-09-03 15:55:27 +02:00
Guillem L. Jara
ace1a9ef31
feat(interpreter): add missing FS split modes, FPAT splitting
2026-09-03 15:55:27 +02:00
renovate[bot]
4b3cfa6fb3
chore(deps): update rust crate smallvec to v1.16.0
2026-09-01 23:07:52 +02:00
Guillem L. Jara
58b38a157f
fix(parser): correctly concat on non-juxtaposed unary user call
2026-09-01 19:18:57 +02:00
Guillem L. Jara
832180e6e0
chore(parser): coverage for parser differential in function calls
2026-09-01 19:18:34 +02:00
Guillem L. Jara
b69ebf1e11
chore(parser): improve function call tests
2026-09-01 18:07:57 +02:00
Guillem L. Jara
317baa0c50
fix(parser): accept non-juxtaposed built-in calls
2026-09-01 18:04:29 +02:00
Guillem L. Jara
fce7f0480f
fix(lexer): identify awk-namespaced built-in vars as such
2026-09-01 17:47:57 +02:00
Guillem L. Jara
c0b4e807fe
feat: add missing magic variables
2026-09-01 17:42:41 +02:00
Guillem L. Jara
c6eefcec84
feat(interpreter): resolve muggle built-in variables
2026-09-01 17:21:33 +02:00
Guillem L. Jara
48a10d1bf5
chore(interpreter): add some doc comments
2026-09-01 16:02:54 +02:00
Guillem L. Jara
67c2bdfb46
feat(interpreter): tighten Arg definition, add BuiltInVar
...
This is in preparation of adding support for built-in var accesses in the VM. Which _should_ be quite trivial now, if not for the magic variables.
2026-09-01 15:51:38 +02:00
renovate[bot]
655a2f2111
chore(deps): update rust crate uutests to 0.11
2026-09-01 15:33:36 +02:00
Guillem L. Jara
51a3ac4fce
fix(interpreter): strip terminator from record
2026-08-31 16:56:52 +02:00
Guillem L. Jara
f44e3d3711
chore(tests): allow clippy lint
2026-08-31 13:39:58 +02:00
Guillem L. Jara
0a7d18f11f
chore(interpreter): more consistent instr naming
...
Yes, I'm aware it's the bazillionth time I've said this :)
2026-08-31 13:37:44 +02:00