Commit graph

94 commits

Author SHA1 Message Date
liquidex 4ba7e25510 fix server not resetting VM on brush eval request 2024-10-23 20:46:06 +02:00
liquidex 6e88999662 document withDotter (and reticles) in docs/system.dj 2024-10-23 20:46:04 +02:00
liquidex e19e47e6ad fix clippy lints 2024-10-23 20:45:34 +02:00
liquidex 7c40505d7d disallow running another reticle after a dotter 2024-10-23 19:46:23 +02:00
liquidex 37ff06c704 remove unneeded console.log 2024-10-23 19:45:58 +02:00
liquidex d6bb4e9911 make code examples horizontally scrollable 2024-10-23 19:45:39 +02:00
liquidex fd3f37d744 update documentation to include reticles and vector math
It's probably not very good though.
2024-10-23 19:44:52 +02:00
liquidex 37c575748b add support for vectors as operands to math operations 2024-10-22 21:58:32 +02:00
liquidex 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
liquidex 8356b6c750 fix compilation errors not setting error flag in brush preview 2024-09-08 12:12:45 +02:00
liquidex 37520f34f7 add brush preview 2024-09-08 12:09:21 +02:00
liquidex 4430d6d125 add documentation for new math functions 2024-09-07 15:39:54 +02:00
liquidex 4bf3d685b8 add libm math functions to haku 2024-09-07 14:33:20 +02:00
liquidex e12573566e add Debug impl for InvalidId 2024-09-07 14:32:38 +02:00
liquidex 958cab5452 improve error reporting for missing else clauses 2024-09-07 14:31:48 +02:00
liquidex ec773b7fe1 add error squiggles to brush editor
gosh I hate this code. CSS custom highlight API when, pleeeeeease Firefooooox
2024-09-06 22:51:19 +02:00
liquidex c59a651ea3 add jsconfig.json 2024-09-06 22:50:42 +02:00
liquidex 3cd0d4afb5 fix code editor gutter sizing 2024-09-05 22:13:19 +02:00
liquidex 92e3b8fcb7 add line numbers to code editor
this is the sort of fancy stuff we can do now
2024-09-05 22:06:02 +02:00
liquidex 09a81ec032 fix brush editor not saving your brush 2024-09-05 22:05:44 +02:00
liquidex b8d6b3edb3 introduce new code editor with support for extra shortcuts such as Tab for indenting/unindenting lines
I'm sure this will yield _lots_ of bugs in the long run, but it's also a really exciting thing to have.
2024-09-05 21:30:47 +02:00
liquidex a35ac17b86 bump up limits even further
my VPS has 8 gigabytes of RAM. it's not exactly out of the question to buy a larger one, and in the future we could just, y'know, not preallocate _all_ the memory, and instead reallocate if a certain threshold is reached
2024-09-04 22:29:32 +02:00
liquidex 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
liquidex 5e6b84bed5 cache busting
for faster load times, and seamless updates.
because for some reason ServeDir can't do it correctly, and it tells the client "yeah hey nothing changed" even if something changed
2024-09-04 21:50:30 +02:00
liquidex 9b190165ff fix resize handle setting the default size to NaN
I hate NaN
I hate NaN
I hate NaN
I hate NaN
I hate NaN
I hate NaN
I hate NaN

can someone put a NaN to good use for once and store a pointer to some helpful metadata in it.
please.
I beg you.
2024-09-04 20:39:48 +02:00
liquidex 17f3f573b5 shader optimizations
- make the shader not compile for over a minute on Windows
- stop calculating matrices inside the shader, per vertex
2024-09-04 20:37:40 +02:00
liquidex 8f69552b02 resize the brush editor's text area whenever the brush editor is resized
this can now happen if you use the resize handle
2024-09-03 23:13:00 +02:00
liquidex a924147e26 force font size to 14px in the app
I've been (hotly) debating this with myself today and I _think_ this is the right decision for an app.
note that I'm not changing the font size in the docs; that I think is valuable to have be user-controllable, but I'd really prefer if users would see the app the way _I_ design it to look
2024-09-03 22:58:08 +02:00
liquidex 255511ac16 give the brush editor resize handle a maximum size
this is to prevent the size from going negative, which fucks a lot of things up (you end up not being able to drag it anymore 💀)
2024-09-03 22:53:55 +02:00
liquidex 740a62447e make canvas dragging a bit snappier by calculating the drag delta ourselves
I'm really thankful for `listen` here.
it makes this sort of logic super easy without having to add class fields.
2024-09-03 22:52:35 +02:00
liquidex bfbde0dee3 simplify CSS rules for brush editor overflow 2024-09-03 22:42:09 +02:00
liquidex 5b22a50036 fix overflow in brush editor 2024-09-03 22:40:08 +02:00
liquidex 83754a0282 new! fast! WebGL renderer 2024-09-03 22:16:40 +02:00
liquidex bf4d538651 add ping/pong between client and server
the purpose of this is to hopefully prevent nginx from reaping the connection, since there's data flowing through it every so often
2024-09-02 23:17:35 +02:00
liquidex b3911b7af1 add resize handle to brush editor 2024-09-02 22:38:12 +02:00
liquidex c1ccc1be24 fix an unnecessarily large amount of locals being emitted for each function
previously we'd create (argument_count + let_count) locals, which doesn't make sense.
so now `let`s use their own counter for their own locals, and we only request as many empty locals as there are `let`s.
2024-09-02 21:43:27 +02:00
liquidex 39989e555a fix SetLocal not taking into account the stack bottom
y'know, when you look for locals relative to the call frame's bottom, but then set locals relative to index 0...
boom.

closes #78
2024-09-02 21:39:04 +02:00
liquidex f4ceb0057e add a bunch of logging to haku, including vm-trace for tracing what the VM does 2024-09-02 21:36:38 +02:00
liquidex 337de0b57b return an error when the parser is at its event capacity 2024-09-02 20:41:13 +02:00
liquidex 26d3b8ed8a add a lot more logging to both client and server to analyze #81
> #81 Compiling brush doesn't seem to finish correctly sometimes, which causes loss of data
> Sometimes it seems like the client state can get desynced (server render thread dies due to a panic?) and then the server starts dropping all requests for drawing the brush.
> These panics should never happen of course, but we need better logging first to determine the exact cause.
2024-09-02 20:15:28 +02:00
liquidex 6cfbc4f05f fix nickname in cursor reticle being able to wrap onto multiple lines 2024-09-01 20:03:04 +02:00
liquidex a30c36c92a fix compilation errors on release mode due to missing #[cfg(debug_assertions)] with parser event tracing 2024-09-01 19:20:24 +02:00
liquidex 1543534101 update docs, add favicon to docs template 2024-09-01 19:17:46 +02:00
liquidex ef1e35fcf0 remove redundant arity checking code from system functions, update error messages
the arity of unary and binary ops is guaranteed by the fact they're, well, unary and binary ops.
right now there's no way to call them with less or more arguments, so we may as well.
2024-09-01 19:15:58 +02:00
liquidex d1a6fb364e fix more syntax v2 bugs, update docs 2024-09-01 18:55:16 +02:00
liquidex bf37d7305c update default brush
I started updating the docs but v2 is really not ready for general use yet (we're missing lists!)
2024-09-01 10:09:53 +02:00
liquidex 084012d65f parser debugging utilities + fixed paren sometimes producing unbalanced events
parser events now have a `from` field which has the source location of where the event was emitted.
this location is pretty-printed when using `Debug`
2024-09-01 10:03:21 +02:00
liquidex c5b2eb376f simplify Compiler lifetimes
the 2nd 'b lifetime parameter was not needed
2024-09-01 09:32:21 +02:00
liquidex 2595bf0d82 syntax v2
introduce a new, more ergonomic syntax for haku
not all features are implemented just yet. still missing:

- custom tags (non-True/False)
- color literals
- lists
2024-09-01 09:29:11 +02:00
liquidex a3e5e8bd10 change fonts to Atkinson Hyperlegible and a custom-built variant of Iosevka 2024-08-27 20:44:39 +02:00