sarabande.git
4 weeks agowe can actually run (very simple) programs! AMAZING
cassowarii [Tue, 30 Jun 2026 04:28:15 +0000 (21:28 -0700)]
we can actually run (very simple) programs! AMAZING

4 weeks agojanky beginnings of emitting bytecode
cassowarii [Tue, 30 Jun 2026 01:55:42 +0000 (18:55 -0700)]
janky beginnings of emitting bytecode

4 weeks agobetter error reporting + a few variable scope fixes
cassowarii [Mon, 29 Jun 2026 23:29:54 +0000 (16:29 -0700)]
better error reporting + a few variable scope fixes

4 weeks agoconsolidate variable slots, track variable function scopes
cassowarii [Mon, 29 Jun 2026 19:20:37 +0000 (12:20 -0700)]
consolidate variable slots, track variable function scopes

4 weeks agosimple label jump optimization
cassowarii [Mon, 29 Jun 2026 17:48:45 +0000 (10:48 -0700)]
simple label jump optimization

4 weeks agofunction definitions as chunks + function calls in IR
cassowarii [Mon, 29 Jun 2026 15:50:29 +0000 (08:50 -0700)]
function definitions as chunks + function calls in IR

4 weeks agoupdate comments
cassowarii [Mon, 29 Jun 2026 04:58:37 +0000 (21:58 -0700)]
update comments

4 weeks agofix minor parser bug, IR can do multi-assignment now
cassowarii [Mon, 29 Jun 2026 04:55:17 +0000 (21:55 -0700)]
fix minor parser bug, IR can do multi-assignment now

4 weeks ago(janky) lexical variable scoping + assignment in IR
cassowarii [Mon, 29 Jun 2026 04:25:41 +0000 (21:25 -0700)]
(janky) lexical variable scoping + assignment in IR

4 weeks agoBasic framework for IR code generation
cassowarii [Mon, 29 Jun 2026 02:54:10 +0000 (19:54 -0700)]
Basic framework for IR code generation

4 weeks agoconditional jumps and such in VM
cassowarii [Sun, 28 Jun 2026 19:13:23 +0000 (12:13 -0700)]
conditional jumps and such in VM

4 weeks agovery basic VM/bytecode functionality! it works! we can add numbers!
cassowarii [Sun, 28 Jun 2026 16:40:55 +0000 (09:40 -0700)]
very basic VM/bytecode functionality! it works! we can add numbers!

4 weeks agosome initial supports for bytecode VM
cassowarii [Sun, 28 Jun 2026 04:15:32 +0000 (21:15 -0700)]
some initial supports for bytecode VM

4 weeks agoclean up imports a bit
cassowarii [Sun, 28 Jun 2026 01:25:18 +0000 (18:25 -0700)]
clean up imports a bit

4 weeks agoactually the <~( ... ) should work like this
cassowarii [Sun, 28 Jun 2026 01:21:34 +0000 (18:21 -0700)]
actually the <~( ... ) should work like this

4 weeks ago<~ syntax was weird to parse, so use invisible () to clarify
cassowarii [Sun, 28 Jun 2026 01:16:30 +0000 (18:16 -0700)]
<~ syntax was weird to parse, so use invisible () to clarify

4 weeks agoforgot about this syntax
cassowarii [Sun, 28 Jun 2026 00:34:06 +0000 (17:34 -0700)]
forgot about this syntax

this currently won't work on something like a.[b], because the layer-2
lexer doesn't know to put () there. i'm not sure if this syntax is a
good idea anyway though, it seems confusing

4 weeks agoi think this is all the basic syntax i had in mind
cassowarii [Sun, 28 Jun 2026 00:23:11 +0000 (17:23 -0700)]
i think this is all the basic syntax i had in mind

(except @declarations, but those are just syntax sugar, we'll come back
to those!)

4 weeks agomore parser stuff + much more friendly syntax error reporting
cassowarii [Sat, 27 Jun 2026 21:34:09 +0000 (14:34 -0700)]
more parser stuff + much more friendly syntax error reporting

4 weeks agobasic parser, get that squared away
cassowarii [Sat, 27 Jun 2026 04:26:02 +0000 (21:26 -0700)]
basic parser, get that squared away

the error reporting could use some work

4 weeks agoexpression parser mostly complete
cassowarii [Fri, 26 Jun 2026 19:47:35 +0000 (12:47 -0700)]
expression parser mostly complete

4 weeks agobasic Pratt expression parser
cassowarii [Fri, 26 Jun 2026 16:10:20 +0000 (09:10 -0700)]
basic Pratt expression parser

4 weeks agomuch more value things, symbol table, etc.
cassowarii [Fri, 26 Jun 2026 05:07:18 +0000 (22:07 -0700)]
much more value things, symbol table, etc.

4 weeks agohash table + symbol deduplication
cassowarii [Thu, 25 Jun 2026 23:17:30 +0000 (16:17 -0700)]
hash table + symbol deduplication

4 weeks agomore string operations; fix bug with concatenation
cassowarii [Thu, 25 Jun 2026 16:41:27 +0000 (09:41 -0700)]
more string operations; fix bug with concatenation

4 weeks agoreference counting + copy on write semantics + more string ops
cassowarii [Thu, 25 Jun 2026 06:05:44 +0000 (23:05 -0700)]
reference counting + copy on write semantics + more string ops

4 weeks agofix a couple more bugs with string allocation
cassowarii [Wed, 24 Jun 2026 03:03:06 +0000 (20:03 -0700)]
fix a couple more bugs with string allocation

4 weeks agofix bugs with tinystr, it works now!
cassowarii [Wed, 24 Jun 2026 02:53:34 +0000 (19:53 -0700)]
fix bugs with tinystr, it works now!

4 weeks agouse hString to store string literal data; fix bugs
cassowarii [Wed, 24 Jun 2026 02:41:35 +0000 (19:41 -0700)]
use hString to store string literal data; fix bugs

4 weeks agotinystr: store short string data directly inside the handle itself
cassowarii [Wed, 24 Jun 2026 02:13:04 +0000 (19:13 -0700)]
tinystr: store short string data directly inside the handle itself

4 weeks agoremove unnecessary piece from makefile
cassowarii [Wed, 24 Jun 2026 02:12:49 +0000 (19:12 -0700)]
remove unnecessary piece from makefile

4 weeks agoadd string object storage (can't free yet)
cassowarii [Wed, 24 Jun 2026 01:22:15 +0000 (18:22 -0700)]
add string object storage (can't free yet)

5 weeks agoforgot to include this file!
cassowarii [Sun, 21 Jun 2026 17:21:39 +0000 (10:21 -0700)]
forgot to include this file!

5 weeks agomore sensible "next" for filereader / scanner
cassowarii [Sun, 21 Jun 2026 17:18:19 +0000 (10:18 -0700)]
more sensible "next" for filereader / scanner

5 weeks agodynamically sized token queue
cassowarii [Sun, 21 Jun 2026 04:38:21 +0000 (21:38 -0700)]
dynamically sized token queue

5 weeks agoadd this new ~> / <~ token which i have big plans for
cassowarii [Sat, 20 Jun 2026 22:04:55 +0000 (15:04 -0700)]
add this new ~> / <~ token which i have big plans for

5 weeks agoupdate comments a bit more
cassowarii [Sat, 20 Jun 2026 05:30:20 +0000 (22:30 -0700)]
update comments a bit more

5 weeks agoadd explanatory comment to lexer.c
cassowarii [Sat, 20 Jun 2026 05:13:49 +0000 (22:13 -0700)]
add explanatory comment to lexer.c

5 weeks agoactually handle weird nesting with block headers and such
cassowarii [Sat, 20 Jun 2026 04:57:06 +0000 (21:57 -0700)]
actually handle weird nesting with block headers and such

5 weeks agolexer almost complete barring a few weird corner cases
cassowarii [Sat, 20 Jun 2026 00:55:31 +0000 (17:55 -0700)]
lexer almost complete barring a few weird corner cases

5 weeks agoway more lexing capability
cassowarii [Fri, 19 Jun 2026 18:27:12 +0000 (11:27 -0700)]
way more lexing capability

5 weeks agofix bug in arena
cassowarii [Fri, 19 Jun 2026 06:18:04 +0000 (23:18 -0700)]
fix bug in arena

5 weeks agoproperly fail on nonexistent file
cassowarii [Fri, 19 Jun 2026 06:13:38 +0000 (23:13 -0700)]
properly fail on nonexistent file

5 weeks agosetting up repository better
cassowarii [Fri, 19 Jun 2026 06:05:30 +0000 (23:05 -0700)]
setting up repository better

5 weeks agoworld's worst lexer
cassowarii [Fri, 19 Jun 2026 06:03:19 +0000 (23:03 -0700)]
world's worst lexer