c4ad609717
h2: fix implementation of Value.gt not actually being a greater-than operation
...
how did I miss that (a < b) is the same as (b > a) is beyond me
2025-09-02 20:52:25 +02:00
958201cd18
h2: add better comment about how to use root.enableLogScope
2025-09-02 20:31:35 +02:00
2eea1f201f
h2: add better VM value stack tracing
2025-09-02 20:31:15 +02:00
45099916fe
update Zig code to 0.15.0
2025-09-02 20:15:41 +02:00
9808d3227f
fix a few bugs with the new precedence rules
2025-09-02 20:03:41 +02:00
29a80854a4
fix parsing prefix operators in calls
2025-09-02 18:47:56 +02:00
b52c1b26c9
overhaul operator precedence
...
arithmetic operators now have the same precedence.
if you want them to bind tighter, you remove the spaces around them:
- 2 + 2 * 2 = 8
- 2 + 2*2 = 6
2025-09-01 22:43:41 +02:00
09f2292e62
remove leftover limits from haku-wasm
2025-09-01 22:43:25 +02:00
b9a161d474
make it possible to use the characters ' and ? anywhere in identifiers
...
closes #129
2025-09-01 17:18:29 +02:00
ce9150b588
remove unused functions
2025-09-01 17:18:20 +02:00
40038d3fdc
fix new compilation errors in haku-wasm
2025-09-01 17:18:05 +02:00
9de4a8aecd
replace def = value
with def: value
, and let a = b
with a = b
...
in the name of terseness
i'm also slipping in a new brush preset that i made
closes #125
2025-07-01 00:56:27 +02:00
8fcf71661e
add check for how many chunks are modified in one edit
2025-06-30 19:05:28 +02:00
bff899c9c0
removing server-side brush rendering
...
brush rendering is now completely client-side.
the server only receives edits the client would like to do, in the form of PNG images of chunks, that are then composited onto the wall
known issue: it is possible to brush up against the current 256 chunk edit limit pretty easily.
I'm not sure it can be solved very easily though. the perfect solution would involve splitting up the interaction into multiple edits, and I tried to do that, but there's a noticable stutter for some reason that I haven't managed to track down yet.
so it'll be kinda crap for the time being.
2025-06-30 18:55:53 +02:00
4bd00e92d8
implement chunk unloading (garbage collection)
...
unloading is done together with the autosave process, because it's the most natural place to do it.
since we literally just wrote to the database and can easily check if the chunk hasn't been written to since.
2025-06-28 10:39:49 +02:00
4681edd60f
make it possible to render a nil
2025-06-28 09:39:08 +02:00
12101bc6e1
fix incorrect implementation of .jump and .jump_if_not that could cause a server crash
2025-06-28 09:38:48 +02:00
7a52dbebd0
fix some rough edges around stack traces
...
hide irrelevant CallFrames
fix span info for the implicit stack frame
2025-06-25 21:11:02 +02:00
e49885c83a
stack traces in the brush editor
...
after 35 thousand years it's finally here
good erro message
2025-06-25 20:51:45 +02:00
8b464d50f4
haku: more cleanups: remove old unused VM
...
also remove some leftover TODOs
2025-06-16 18:57:51 +02:00
c80cd1c7fe
haku1 API cleanups (removing 2 suffix)
2025-06-16 18:34:28 +02:00
00a48527ca
haku2: add stats + fix crash w uninit vm
2025-06-16 16:40:01 +02:00
e667c6336a
haku2: on the client
...
resource indicators are currently unimplemented
2025-06-15 21:30:37 +02:00
45c954cb03
haku2: fix implementation of / (div)
...
it was multiplying instead of dividing
2025-06-13 20:56:20 +02:00
667eef136e
remove redundant imports and leftover log timestamp disabling thing
2025-06-13 20:41:58 +02:00
845c9f0f5b
add support for aarch64-unknown-linux-gnu
2025-06-13 20:38:00 +02:00
354d49d927
haku2: make build.rs spit out unknown targets
2025-06-13 20:33:18 +02:00
48d03699bd
haku2: make server use haku2 (and make it work!)
2025-06-13 20:11:54 +02:00
c5e2892def
#broken haku2: progress on making it work
2025-06-11 16:42:43 +02:00
7658e0d4e8
haku2: VM logging
2025-06-11 10:43:40 +02:00
5de4f9d7c6
hotwire haku2 into rkgk
...
really a bodge job right now and it crashes but it's a start
2025-06-04 00:28:43 +02:00
550227da34
haku2: rest of functionality (hopefully) & Rust->Zig FFI
2025-06-03 21:53:49 +02:00
01d4514a65
beginning of haku2: a reimplementation of haku in Zig
...
the goal is to rewrite haku completely, starting with the VM---because it was the most obvious point of improvement
the reason is because Rust is kinda too verbose for low level stuff like this. compare the line numbers between haku1 and haku2's VM and how verbose those lines are, and it's kind of an insane difference
it also feels like Zig's compilation model can work better for small wasm binary sizes
and of course, I also just wanted an excuse to try out Zig :3
2025-06-01 23:19:05 +02:00
65645f410f
additional list functions (range, map, filter, reduce, flatten) ( #74 )
...
also make the VM cope with reentrancy
2025-05-27 22:25:29 +02:00
e2f9538156
haku: add len
and index
functions for reading lists
2024-10-25 23:22:06 +02:00
913d65b0a8
implement brush cost gauges
...
they're a little ugly at the moment, and can be a little useless for most simple brushes, but whatever we'll make them better later
2024-10-25 21:39:53 +02:00
43e6951f7d
fix crash occurring when a path cannot be created
...
this can occur if tiny_skia decides it doesn't like the path (e.g. circle with negative radius)
i don't really care to render these since they're degenerate cases anyways
2024-10-23 21:53:44 +02:00
b059ef4c35
fix broken with_dotter_identity test
...
probably broke after evaluation style changes
2024-10-23 21:52:36 +02:00
581a1778ca
change no_mangle
to unsafe(no_mangle)
2024-10-23 21:52:05 +02:00
e0e64f7e24
implement auto-saving under reticles
2024-10-23 21:09:00 +02:00
4ba7e25510
fix server not resetting VM on brush eval request
2024-10-23 20:46:06 +02:00
e19e47e6ad
fix clippy lints
2024-10-23 20:45:34 +02:00
7c40505d7d
disallow running another reticle after a dotter
2024-10-23 19:46:23 +02:00
37c575748b
add support for vectors as operands to math operations
2024-10-22 21:58:32 +02:00
5b7d9586ea
introduce tags, structs, and reticles
...
this was meant to be split into smaller changes, but I realised I edited my existing revision too late.
2024-10-22 21:39:04 +02:00
4430d6d125
add documentation for new math functions
2024-09-07 15:39:54 +02:00
4bf3d685b8
add libm math functions to haku
2024-09-07 14:33:20 +02:00
e12573566e
add Debug impl for InvalidId
2024-09-07 14:32:38 +02:00
958cab5452
improve error reporting for missing else
clauses
2024-09-07 14:31:48 +02:00
d309211558
allow up to 65536 parser events
...
parser events don't take up enough memory to warrant a stricter limit.
I do wonder if this limit is actually reachable with a 65536 character limit though.
2024-09-04 22:16:01 +02:00