cassowarii [Sat, 11 Jul 2026 00:19:53 +0000 (17:19 -0700)]
fix list-spill, also make pipe a bit more elegant
cassowarii [Fri, 10 Jul 2026 23:30:56 +0000 (16:30 -0700)]
implicit calling of functions on right side of | operator
cassowarii [Fri, 10 Jul 2026 23:16:15 +0000 (16:16 -0700)]
project euler #6
cassowarii [Fri, 10 Jul 2026 23:15:42 +0000 (16:15 -0700)]
add | operator between expressions; project euler #6
cassowarii [Fri, 10 Jul 2026 21:29:59 +0000 (14:29 -0700)]
list::iota, fix vm bug, project euler #5
cassowarii [Fri, 10 Jul 2026 18:53:20 +0000 (11:53 -0700)]
fix <~
cassowarii [Fri, 10 Jul 2026 18:41:10 +0000 (11:41 -0700)]
add concept of sentinel values for unique message names
cassowarii [Fri, 10 Jul 2026 16:04:38 +0000 (09:04 -0700)]
we can now do multiple print properly
cassowarii [Fri, 10 Jul 2026 15:59:36 +0000 (08:59 -0700)]
flip calling convention: evaluate right to left
cassowarii [Fri, 10 Jul 2026 07:12:40 +0000 (00:12 -0700)]
minor tweaks to get_param
cassowarii [Fri, 10 Jul 2026 13:36:01 +0000 (06:36 -0700)]
fix clang warnings
cassowarii [Fri, 10 Jul 2026 06:51:36 +0000 (23:51 -0700)]
retain/release for integers; don't retain on stack push
cassowarii [Fri, 10 Jul 2026 06:25:25 +0000 (23:25 -0700)]
project euler #3
cassowarii [Fri, 10 Jul 2026 05:48:42 +0000 (22:48 -0700)]
fix some math bugs
cassowarii [Fri, 10 Jul 2026 05:41:50 +0000 (22:41 -0700)]
bigint improvements + printing, float types, math library
cassowarii [Fri, 10 Jul 2026 00:18:59 +0000 (17:18 -0700)]
initial very basic support of bigints.
(the parsing is very memory inefficient. i will rethink the general
memory management strategy of this stuff, i promise!)
cassowarii [Thu, 9 Jul 2026 21:02:14 +0000 (14:02 -0700)]
99 bottles of beer on the wall
cassowarii [Thu, 9 Jul 2026 20:55:18 +0000 (13:55 -0700)]
add printing to samples; fix a couple bugs that got overturned
cassowarii [Thu, 9 Jul 2026 20:24:32 +0000 (13:24 -0700)]
add hello-world to readme
cassowarii [Thu, 9 Jul 2026 20:23:53 +0000 (13:23 -0700)]
finally, global modules! we can print at long, sweet last
cassowarii [Thu, 9 Jul 2026 17:50:38 +0000 (10:50 -0700)]
allow values also in lib tables (to add global modules)
cassowarii [Thu, 9 Jul 2026 16:44:53 +0000 (09:44 -0700)]
some general cleanup / restructuring of a bunch of method code
cassowarii [Thu, 9 Jul 2026 01:46:15 +0000 (18:46 -0700)]
resolve methods with hash table
cassowarii [Wed, 8 Jul 2026 23:49:37 +0000 (16:49 -0700)]
project euler #4, fix bugs
i need to add garbage collecting and print / global stuff for real
cassowarii [Wed, 8 Jul 2026 23:36:30 +0000 (16:36 -0700)]
methods for integer + string, more list methods
I need to restructure how methods are resolved, right now it is bad
cassowarii [Tue, 7 Jul 2026 22:07:09 +0000 (15:07 -0700)]
evaluate repeat..while/until condition inside block scope
cassowarii [Tue, 7 Jul 2026 21:56:07 +0000 (14:56 -0700)]
project euler 02
cassowarii [Tue, 7 Jul 2026 19:02:42 +0000 (12:02 -0700)]
%% operator
cassowarii [Tue, 7 Jul 2026 18:56:44 +0000 (11:56 -0700)]
project euler #1 (eventually i will add more convenience methods here)
cassowarii [Tue, 7 Jul 2026 18:55:26 +0000 (11:55 -0700)]
"any?" and "all?" methods for lists
cassowarii [Tue, 7 Jul 2026 18:43:53 +0000 (11:43 -0700)]
map and filter methods for lists
cassowary [Tue, 7 Jul 2026 18:17:58 +0000 (11:17 -0700)]
Update README.md
cassowarii [Tue, 7 Jul 2026 07:20:08 +0000 (00:20 -0700)]
plain 'return' + postfix 'if'/'unless'
cassowarii [Tue, 7 Jul 2026 07:03:48 +0000 (00:03 -0700)]
boolean literals + mod operator
cassowarii [Tue, 7 Jul 2026 06:49:09 +0000 (23:49 -0700)]
fix another VM instruction bug
cassowarii [Mon, 6 Jul 2026 20:29:21 +0000 (13:29 -0700)]
add a couple more methods to lists
cassowarii [Mon, 6 Jul 2026 17:53:45 +0000 (10:53 -0700)]
fix a few small bugs
cassowarii [Mon, 6 Jul 2026 04:57:53 +0000 (21:57 -0700)]
better/more consistent VM model
cassowarii [Sun, 5 Jul 2026 22:57:20 +0000 (15:57 -0700)]
add README
cassowarii [Sun, 5 Jul 2026 22:56:44 +0000 (15:56 -0700)]
fix a couple errant oversights, squash a few memory leaks
cassowarii [Sun, 5 Jul 2026 22:05:57 +0000 (15:05 -0700)]
more portable printing; callbacks from native code to script
cassowarii [Fri, 3 Jul 2026 23:22:16 +0000 (16:22 -0700)]
initial stab at method calls; *almost* works, but not quite
cassowarii [Fri, 3 Jul 2026 05:26:36 +0000 (22:26 -0700)]
"un-splatting" function params. + start reworking assignment in general
cassowarii [Fri, 3 Jul 2026 00:23:08 +0000 (17:23 -0700)]
list splatting
cassowarii [Thu, 2 Jul 2026 20:25:47 +0000 (13:25 -0700)]
temporal dead zone
cassowarii [Thu, 2 Jul 2026 04:55:03 +0000 (21:55 -0700)]
split out ir printing; mutual + recursive function calling
cassowarii [Thu, 2 Jul 2026 04:26:53 +0000 (21:26 -0700)]
LEXICAL CLOSURES
cassowarii [Wed, 1 Jul 2026 04:56:44 +0000 (21:56 -0700)]
hash literals!! + read indexing
cassowarii [Wed, 1 Jul 2026 00:58:53 +0000 (17:58 -0700)]
LISTS in code!! wow!! so cool!!!
cassowarii [Tue, 30 Jun 2026 23:25:22 +0000 (16:25 -0700)]
list data module
cassowarii [Tue, 30 Jun 2026 22:32:41 +0000 (15:32 -0700)]
whoops, forgot to initialize pointers here
cassowarii [Tue, 30 Jun 2026 22:03:16 +0000 (15:03 -0700)]
factor out 'allocation pool' code from string + hash table
cassowarii [Tue, 30 Jun 2026 19:03:17 +0000 (12:03 -0700)]
basic constant folding
cassowarii [Tue, 30 Jun 2026 14:40:24 +0000 (07:40 -0700)]
make debug flags turn on and off with a compiler switch
cassowarii [Tue, 30 Jun 2026 14:28:53 +0000 (07:28 -0700)]
we can have negative numbers now
cassowarii [Tue, 30 Jun 2026 13:32:40 +0000 (06:32 -0700)]
fix a couple bytecode compiler bugs
cassowarii [Tue, 30 Jun 2026 05:08:56 +0000 (22:08 -0700)]
forward jumps! now if and while work
cassowarii [Tue, 30 Jun 2026 04:28:15 +0000 (21:28 -0700)]
we can actually run (very simple) programs! AMAZING
cassowarii [Tue, 30 Jun 2026 01:55:42 +0000 (18:55 -0700)]
janky beginnings of emitting bytecode
cassowarii [Mon, 29 Jun 2026 23:29:54 +0000 (16:29 -0700)]
better error reporting + a few variable scope fixes
cassowarii [Mon, 29 Jun 2026 19:20:37 +0000 (12:20 -0700)]
consolidate variable slots, track variable function scopes
cassowarii [Mon, 29 Jun 2026 17:48:45 +0000 (10:48 -0700)]
simple label jump optimization
cassowarii [Mon, 29 Jun 2026 15:50:29 +0000 (08:50 -0700)]
function definitions as chunks + function calls in IR
cassowarii [Mon, 29 Jun 2026 04:58:37 +0000 (21:58 -0700)]
update comments
cassowarii [Mon, 29 Jun 2026 04:55:17 +0000 (21:55 -0700)]
fix minor parser bug, IR can do multi-assignment now
cassowarii [Mon, 29 Jun 2026 04:25:41 +0000 (21:25 -0700)]
(janky) lexical variable scoping + assignment in IR
cassowarii [Mon, 29 Jun 2026 02:54:10 +0000 (19:54 -0700)]
Basic framework for IR code generation
cassowarii [Sun, 28 Jun 2026 19:13:23 +0000 (12:13 -0700)]
conditional jumps and such in VM
cassowarii [Sun, 28 Jun 2026 16:40:55 +0000 (09:40 -0700)]
very basic VM/bytecode functionality! it works! we can add numbers!
cassowarii [Sun, 28 Jun 2026 04:15:32 +0000 (21:15 -0700)]
some initial supports for bytecode VM
cassowarii [Sun, 28 Jun 2026 01:25:18 +0000 (18:25 -0700)]
clean up imports a bit
cassowarii [Sun, 28 Jun 2026 01:21:34 +0000 (18:21 -0700)]
actually the <~( ... ) should work like this
cassowarii [Sun, 28 Jun 2026 01:16:30 +0000 (18:16 -0700)]
<~ syntax was weird to parse, so use invisible () to clarify
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
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!)
cassowarii [Sat, 27 Jun 2026 21:34:09 +0000 (14:34 -0700)]
more parser stuff + much more friendly syntax error reporting
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
cassowarii [Fri, 26 Jun 2026 19:47:35 +0000 (12:47 -0700)]
expression parser mostly complete
cassowarii [Fri, 26 Jun 2026 16:10:20 +0000 (09:10 -0700)]
basic Pratt expression parser
cassowarii [Fri, 26 Jun 2026 05:07:18 +0000 (22:07 -0700)]
much more value things, symbol table, etc.
cassowarii [Thu, 25 Jun 2026 23:17:30 +0000 (16:17 -0700)]
hash table + symbol deduplication
cassowarii [Thu, 25 Jun 2026 16:41:27 +0000 (09:41 -0700)]
more string operations; fix bug with concatenation
cassowarii [Thu, 25 Jun 2026 06:05:44 +0000 (23:05 -0700)]
reference counting + copy on write semantics + more string ops
cassowarii [Wed, 24 Jun 2026 03:03:06 +0000 (20:03 -0700)]
fix a couple more bugs with string allocation
cassowarii [Wed, 24 Jun 2026 02:53:34 +0000 (19:53 -0700)]
fix bugs with tinystr, it works now!
cassowarii [Wed, 24 Jun 2026 02:41:35 +0000 (19:41 -0700)]
use hString to store string literal data; fix bugs
cassowarii [Wed, 24 Jun 2026 02:13:04 +0000 (19:13 -0700)]
tinystr: store short string data directly inside the handle itself
cassowarii [Wed, 24 Jun 2026 02:12:49 +0000 (19:12 -0700)]
remove unnecessary piece from makefile
cassowarii [Wed, 24 Jun 2026 01:22:15 +0000 (18:22 -0700)]
add string object storage (can't free yet)
cassowarii [Sun, 21 Jun 2026 17:21:39 +0000 (10:21 -0700)]
forgot to include this file!
cassowarii [Sun, 21 Jun 2026 17:18:19 +0000 (10:18 -0700)]
more sensible "next" for filereader / scanner
cassowarii [Sun, 21 Jun 2026 04:38:21 +0000 (21:38 -0700)]
dynamically sized token queue
cassowarii [Sat, 20 Jun 2026 22:04:55 +0000 (15:04 -0700)]
add this new ~> / <~ token which i have big plans for
cassowarii [Sat, 20 Jun 2026 05:30:20 +0000 (22:30 -0700)]
update comments a bit more
cassowarii [Sat, 20 Jun 2026 05:13:49 +0000 (22:13 -0700)]
add explanatory comment to lexer.c
cassowarii [Sat, 20 Jun 2026 04:57:06 +0000 (21:57 -0700)]
actually handle weird nesting with block headers and such
cassowarii [Sat, 20 Jun 2026 00:55:31 +0000 (17:55 -0700)]
lexer almost complete barring a few weird corner cases
cassowarii [Fri, 19 Jun 2026 18:27:12 +0000 (11:27 -0700)]
way more lexing capability
cassowarii [Fri, 19 Jun 2026 06:18:04 +0000 (23:18 -0700)]
fix bug in arena
cassowarii [Fri, 19 Jun 2026 06:13:38 +0000 (23:13 -0700)]
properly fail on nonexistent file