summaryrefslogtreecommitdiff
path: root/vm.c
Commit message (Collapse)AuthorAgeFilesLines
* add arrays, appending, getting length, indexingubq3232024-06-261-0/+12
|
* remove OP_PUTS and OP_PRINT, use say and write functions insteadubq3232024-06-261-6/+0
|
* add cfunc type and rudimentary stdlibubq3232024-06-261-14/+18
|
* make stackpointer less badubq3232024-06-261-17/+18
| | | | | | | | previously was the length of the stack, ie number of items above current fp, and so needed to be adjusted in each call or ret now it's just an absolute index into the stack, like it always should have been
* add setting localsubq3232024-06-251-0/+7
|
* more function testsubq3232024-06-251-0/+3
|
* get functions and arguments and returning to work fullyubq3232024-06-251-6/+17
|
* add local variables and (let) formubq3232024-06-241-2/+16
|
* compilation of functions, and some parts of interpreting themubq3232024-06-221-4/+37
|
* put state and chunk into new compiler struct; refactor mildlyubq3232024-06-211-30/+1
|
* mandelbrotubq3232024-06-211-0/+3
|
* print -> putsubq3232024-06-211-1/+1
|
* add tests, and make dumping disasm optionalubq3232024-06-211-3/+4
|
* proper equality for values; deduplicate constants in compilationubq3232024-06-211-1/+10
|
* while loops, comparisons, modulo, fizzbuzzubq3232024-06-211-3/+21
|
* add (if cond if-true if-false) builtinubq3232024-06-201-1/+24
|
* add true, false, nil keywordsubq3232024-06-201-1/+9
|
* globals are now variableubq3232024-06-201-1/+18
|
* add readable globalsubq3232024-06-201-1/+15
|
* pass State *S everywhereubq3232024-06-201-36/+29
| | | | contains changes from a million years ago that i don't remember much about
* refactor hashtables, and use objstrings for keysubq3232023-08-051-11/+0
| | | | | doesn't yet work without string interning, which will require further refactoring
* give M extra param for tracking alloc size; macros for allocationubq3232023-08-041-2/+4
|
* move M to its own fileubq3232023-08-041-14/+1
|
* valty_str -> typename_strubq3232023-08-041-1/+1
|
* add string object values. you can't do anything with them yetubq3232023-08-041-2/+7
|
* compilation of basic arithmetic exprs to bytecodeubq3232023-08-011-12/+11
|
* dissasembler and basic arithmeticubq3232023-08-011-11/+40
|
* bytecode vm start, can print constants currentlyubq3232023-07-311-0/+102