Commit Graph

245 Commits

Author SHA1 Message Date
Kayne Ruse f8596806ee Attempting a fix for macOS builds 2026-04-23 11:02:25 +10:00
Kayne Ruse 4957536e23 When in doubt, typecast 2026-04-23 10:45:06 +10:00
Kayne Ruse 5a867ac627 Fixed some 'size_t' issues and a bug caught on a different platform 2026-04-23 10:40:00 +10:00
Kayne Ruse 991d29e3e6 Enabled CI for other supported platforms 2026-04-23 10:10:58 +10:00
Kayne Ruse accb7f9fb4 Started work on an AST inspector 2026-04-22 15:57:55 +10:00
Kayne Ruse 63dfd33e5e Added arrays and tables to the bytecode inspector
Currently searching for an issue related to compounds.
2026-04-22 14:31:17 +10:00
Kayne Ruse 9bb115f732 Disabled bloated and verbose testing output 2026-04-22 13:06:14 +10:00
Kayne Ruse 8875b6968b Updated VM unit tests 2026-04-22 12:53:02 +10:00
Kayne Ruse 97d16c1184 Updated compiler unit tests 2026-04-22 12:07:40 +10:00
Kayne Ruse 47c5d49069 Updated parser unit test, fixed a missing stack pop for binary exprStmt 2026-04-22 11:40:53 +10:00
Kayne Ruse 2c92f829e1 Fixed stack overflow caused by expression statements
This is a longstanding bug, so I'm glad its fixed, even if its only a
bandaid.

This does break some tests, but I'm too tired and these tests are out of
date.
2026-04-17 23:43:30 +10:00
Kayne Ruse 5b101d763e Expanded bytecode inspector, added functions to Toy_copyValue 2026-04-17 11:55:46 +10:00
Kayne Ruse 81c95ff69d Cleared out some unneeded notes 2026-04-17 09:25:18 +10:00
Kayne Ruse 88100b128a Implemented native C functions called from Toy scripts
There's only example functions for now, but I'll add type-specific
functions later.
2026-04-16 21:14:42 +10:00
Kayne Ruse 3a0f11ebb4 Added string type check 2026-04-16 19:30:23 +10:00
Kayne Ruse f9790b99ce Moved type coersion check, functions can be compared
Also updated some tagged comments
2026-04-15 15:04:54 +10:00
Kayne Ruse dde52f9d8a Workflow tinkering 2026-04-15 14:17:32 +10:00
Kayne Ruse cda4bee6ee Double-checked strncpy doesn't have bugs
Apparently the linux kernel removed strncpy entirely.
2026-04-13 12:09:09 +10:00
Kayne Ruse 9a10fadada Tweaked CI 2026-04-12 23:15:56 +10:00
Kayne Ruse 8eefbc8a0c Added remaining opcodes to inspector
Also used some coloring for terminal outputs
2026-04-12 23:04:31 +10:00
Kayne Ruse e24823924a Comment tweaks 2026-04-12 15:02:07 +10:00
Kayne Ruse c0c03a4110 Functions are working, tests incomplete
This required a massive cross-cutting rework to the scope system,
multiple subtle bugfixes and relearning of the parser internals, but it
does appear that functions are working correctly.

A few caveats: for now, parameters are always constant, regardless of
type, return values can't be specified, and some script tests have been
written.

Most importantly, a key feature is working: closures.
2026-04-12 11:52:58 +10:00
Kayne Ruse b0d9c15d33 Added a benchmark for JS 2026-04-12 08:55:15 +10:00
Kayne Ruse 24e5d8081c Tweaked a doc 2026-04-12 08:42:06 +10:00
Kayne Ruse 42aef306a9 Added a lua benchmark for performance comparisons 2026-04-12 08:40:28 +10:00
Kayne Ruse 6f27d07829 Added a few opcodes to the inspector 2026-04-12 00:19:20 +10:00
Kayne Ruse b32ea9f309 Started working on a decompiler, called 'bytecode inspector'
It only has a few instructions for now, but I can flesh it out over
time.
2026-04-11 13:37:26 +10:00
Kayne Ruse 49a825aaf9 Removed some old notes 2026-04-11 02:06:59 +10:00
Kayne Ruse baa81b1aa9 Removed annoying workingdir thing 2026-04-11 01:55:11 +10:00
Kayne Ruse 9553edef9c Added tools for vscode 2026-04-11 01:48:30 +10:00
Kayne Ruse 66155fa213 Tweak, but I need a decompiler now 2026-04-10 16:19:03 +10:00
Kayne Ruse 547229e150 Script tests re-added, all tests can run under gdb
Also fixed a minor bug with printing, and removed the ability to
configure the parser.

Added and updated QUICKSTART.md as a quick way to get people started.

There's some broken scripts under 'scripts/' that require functions to
work properly.
2026-04-10 15:28:56 +10:00
Kayne Ruse 211744535e Tweak 2026-04-10 12:15:02 +10:00
Kayne Ruse 3a24fbf6e1 Tweaked CI 2026-04-07 22:00:54 +10:00
Kayne Ruse 842f041a50 VM test is passing 2026-04-07 21:34:05 +10:00
Kayne Ruse 7408a24a12 Scope test is working 2026-04-07 20:48:32 +10:00
Kayne Ruse 09fc6d5279 Compiler test is passing 2026-04-07 20:36:58 +10:00
Kayne Ruse f25e81cd09 Parser test is passing 2026-04-07 20:14:27 +10:00
Kayne Ruse 48072f0dd1 AST test is passing 2026-04-07 20:06:44 +10:00
Kayne Ruse 522fc3e64b Value test is passing 2026-04-07 19:44:28 +10:00
Kayne Ruse f4ce6ad9f1 String test is passing
Note: String fragmentation is no longer supported
2026-04-07 19:22:31 +10:00
Kayne Ruse 3f35502694 Updatedd license 2026-04-07 12:30:25 +10:00
Kayne Ruse f06218b9cd 'print' now works as expected
String literals are now stored in the bucket mid-compilation, but this
is fine, as the buckets are freed one the bytecode is complete.
2026-04-06 23:08:17 +10:00
Kayne Ruse 1ae3fcbf73 WIP: Scopes weren't tracking their content sizes
'print' no longer segfaults from a long chain of indirect memory frees.

It still doesn't work though, which is odd.
2026-04-06 21:50:41 +10:00
Kayne Ruse abae97b6e5 Fixed workflow 2026-04-05 18:48:27 +10:00
Kayne Ruse fbb7e1bc54 WIP: Retreived the unit tests (formerly test cases)
Some of these still work, others have just been dummied out for now.

Also added tests for console colors tool, and tweaked it to work
properly.
2026-04-05 18:42:56 +10:00
Kayne Ruse 57fe9bb00d WIP: Compiles but still very broken 2026-04-05 17:04:30 +10:00
Kayne Ruse 914ee6fcfa WIP: Fixed strings and scopes, still reworking impacted areas 2026-04-05 10:13:58 +10:00
Kayne Ruse ba9418f365 Removed unneeded files and console colors are disabled 2026-04-04 20:35:12 +11:00
Kayne Ruse 98208f4bb5 Began cleaning up this project for a soft reboot 2026-04-04 19:32:45 +11:00