sarabande.git
2 weeks ago%% operator
cassowarii [Tue, 7 Jul 2026 19:02:42 +0000 (12:02 -0700)]
%% operator

2 weeks agoproject euler #1 (eventually i will add more convenience methods here)
cassowarii [Tue, 7 Jul 2026 18:56:44 +0000 (11:56 -0700)]
project euler #1 (eventually i will add more convenience methods here)

2 weeks ago"any?" and "all?" methods for lists
cassowarii [Tue, 7 Jul 2026 18:55:26 +0000 (11:55 -0700)]
"any?" and "all?" methods for lists

2 weeks agomap and filter methods for lists
cassowarii [Tue, 7 Jul 2026 18:43:53 +0000 (11:43 -0700)]
map and filter methods for lists

2 weeks agoUpdate README.md
cassowary [Tue, 7 Jul 2026 18:17:58 +0000 (11:17 -0700)]
Update README.md

2 weeks agoplain 'return' + postfix 'if'/'unless'
cassowarii [Tue, 7 Jul 2026 07:20:08 +0000 (00:20 -0700)]
plain 'return' + postfix 'if'/'unless'

2 weeks agoboolean literals + mod operator
cassowarii [Tue, 7 Jul 2026 07:03:48 +0000 (00:03 -0700)]
boolean literals + mod operator

2 weeks agofix another VM instruction bug
cassowarii [Tue, 7 Jul 2026 06:49:09 +0000 (23:49 -0700)]
fix another VM instruction bug

3 weeks agoadd a couple more methods to lists
cassowarii [Mon, 6 Jul 2026 20:29:21 +0000 (13:29 -0700)]
add a couple more methods to lists

3 weeks agofix a few small bugs
cassowarii [Mon, 6 Jul 2026 17:53:45 +0000 (10:53 -0700)]
fix a few small bugs

3 weeks agobetter/more consistent VM model
cassowarii [Mon, 6 Jul 2026 04:57:53 +0000 (21:57 -0700)]
better/more consistent VM model

3 weeks agoadd README
cassowarii [Sun, 5 Jul 2026 22:57:20 +0000 (15:57 -0700)]
add README

3 weeks agofix a couple errant oversights, squash a few memory leaks
cassowarii [Sun, 5 Jul 2026 22:56:44 +0000 (15:56 -0700)]
fix a couple errant oversights, squash a few memory leaks

3 weeks agomore portable printing; callbacks from native code to script
cassowarii [Sun, 5 Jul 2026 22:05:57 +0000 (15:05 -0700)]
more portable printing; callbacks from native code to script

3 weeks agoinitial stab at method calls; *almost* works, but not quite
cassowarii [Fri, 3 Jul 2026 23:22:16 +0000 (16:22 -0700)]
initial stab at method calls; *almost* works, but not quite

3 weeks ago"un-splatting" function params. + start reworking assignment in general
cassowarii [Fri, 3 Jul 2026 05:26:36 +0000 (22:26 -0700)]
"un-splatting" function params. + start reworking assignment in general

3 weeks agolist splatting
cassowarii [Fri, 3 Jul 2026 00:23:08 +0000 (17:23 -0700)]
list splatting

3 weeks agotemporal dead zone
cassowarii [Thu, 2 Jul 2026 20:25:47 +0000 (13:25 -0700)]
temporal dead zone

3 weeks agosplit out ir printing; mutual + recursive function calling
cassowarii [Thu, 2 Jul 2026 04:55:03 +0000 (21:55 -0700)]
split out ir printing; mutual + recursive function calling

3 weeks agoLEXICAL CLOSURES
cassowarii [Thu, 2 Jul 2026 04:26:53 +0000 (21:26 -0700)]
LEXICAL CLOSURES

3 weeks agohash literals!! + read indexing
cassowarii [Wed, 1 Jul 2026 04:56:44 +0000 (21:56 -0700)]
hash literals!! + read indexing

3 weeks agoLISTS in code!! wow!! so cool!!!
cassowarii [Wed, 1 Jul 2026 00:58:53 +0000 (17:58 -0700)]
LISTS in code!! wow!! so cool!!!

3 weeks agolist data module
cassowarii [Tue, 30 Jun 2026 23:25:22 +0000 (16:25 -0700)]
list data module

3 weeks agowhoops, forgot to initialize pointers here
cassowarii [Tue, 30 Jun 2026 22:32:41 +0000 (15:32 -0700)]
whoops, forgot to initialize pointers here

3 weeks agofactor out 'allocation pool' code from string + hash table
cassowarii [Tue, 30 Jun 2026 22:03:16 +0000 (15:03 -0700)]
factor out 'allocation pool' code from string + hash table

3 weeks agobasic constant folding
cassowarii [Tue, 30 Jun 2026 19:03:17 +0000 (12:03 -0700)]
basic constant folding

3 weeks agomake debug flags turn on and off with a compiler switch
cassowarii [Tue, 30 Jun 2026 14:40:24 +0000 (07:40 -0700)]
make debug flags turn on and off with a compiler switch

3 weeks agowe can have negative numbers now
cassowarii [Tue, 30 Jun 2026 14:28:53 +0000 (07:28 -0700)]
we can have negative numbers now

3 weeks agofix a couple bytecode compiler bugs
cassowarii [Tue, 30 Jun 2026 13:32:40 +0000 (06:32 -0700)]
fix a couple bytecode compiler bugs

4 weeks agoforward jumps! now if and while work
cassowarii [Tue, 30 Jun 2026 05:08:56 +0000 (22:08 -0700)]
forward jumps! now if and while work

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