Commit Graph

101 Commits

Author SHA1 Message Date
Andrew Morris
b11ea2abdc Get down to main_fn 2022-05-06 08:09:03 +10:00
Andrew Morris
b872165e2f wip compiler 2022-05-06 08:01:17 +10:00
Andrew Morris
40a990590c Add compile stub 2022-05-06 07:20:06 +10:00
Andrew Morris
6e1a14243d Enable typescript parsing 2022-05-06 07:08:31 +10:00
Andrew Morris
0bfc29aadf Add optional chaining and bitwise operators 2022-05-04 18:17:43 +10:00
Andrew Morris
48a2cf64a1 Fix strings 2022-05-04 16:44:15 +10:00
Andrew Morris
a9fb05e316 Handle unicode correctly when assembling 2022-05-04 16:11:21 +10:00
Andrew Morris
ab4d163e00 Add FIXME 2022-05-04 14:29:17 +10:00
Andrew Morris
f17f83f649 Implement (basic) subscripting 2022-05-04 14:13:37 +10:00
Andrew Morris
5501720285 Minor fix 2022-05-04 12:39:20 +10:00
Andrew Morris
b38498853c decode objects 2022-05-04 12:35:33 +10:00
Andrew Morris
869f026948 Add remaining operations as panic stubs 2022-05-04 12:17:31 +10:00
Andrew Morris
12347f2f4f Add typeof 2022-05-04 12:09:17 +10:00
Andrew Morris
f770049aee More operators 2022-05-04 11:53:48 +10:00
Andrew Morris
cb1cf4cc76 Scaffolding for operations 2022-05-04 11:39:09 +10:00
Andrew Morris
a94d4313b7 Simplify with apply_binary_op, add more operations 2022-05-04 11:33:12 +10:00
Andrew Morris
15133bd4f1 Prefer moving Vals instead of passing by reference 2022-05-04 10:52:04 +10:00
Andrew Morris
44e8392248 Implement bind 2022-05-04 10:38:28 +10:00
Andrew Morris
ba048e3c56 Add stubs for all vm instructions 2022-05-04 08:54:13 +10:00
Andrew Morris
2f74466d70 Add project euler problem 2 solution 2022-05-03 21:18:17 +10:00
Andrew Morris
aa3f18ed20 Refactor Val to an enum 2022-05-03 21:04:36 +10:00
Andrew Morris
fd71d6f08c Implement apply 2022-05-03 17:07:46 +10:00
Andrew Morris
f387bdd396 Support decoding all instructions 2022-05-03 16:54:14 +10:00
Andrew Morris
fa64b907e2 Support undefined + null literals in vm 2022-05-03 13:00:48 +10:00
Andrew Morris
c09ca141f1 Get factorial working 2022-05-03 12:38:33 +10:00
Andrew Morris
1509f7f9fb Implement call instruction 2022-05-03 12:28:36 +10:00
Andrew Morris
5d40ed552b Enable running based on file extension 2022-05-03 11:22:08 +10:00
Andrew Morris
30e5a728e2 Use special startup frame to remove branch 2022-05-03 10:51:04 +10:00
Andrew Morris
667a3ba398 Fix OpInc 2022-05-02 16:24:26 +10:00
Andrew Morris
78cacc3372 Add VsBool and jump instructions 2022-05-02 16:11:25 +10:00
Andrew Morris
b5f1cc7b78 Add is_truthy 2022-05-02 16:03:03 +10:00
Andrew Morris
93f338bbc4 Enable decoding registers 2022-05-02 16:00:41 +10:00
Andrew Morris
35e0dd3688 Add more binary operators 2022-05-02 15:51:05 +10:00
Andrew Morris
a507b65745 projEuler1.vsm 2022-05-02 15:50:50 +10:00
Andrew Morris
c798a36382 Fixes to run the very first program: 5+7 -> 12 2022-05-02 15:23:55 +10:00
Andrew Morris
9af2274246 wip vm::run 2022-05-02 15:17:33 +10:00
Andrew Morris
74c442ffea Pass bytecode directly to vm::run 2022-05-02 12:50:33 +10:00
Andrew Morris
1912c8282f Add vs_function 2022-05-02 12:39:05 +10:00
Andrew Morris
25b7c67698 Enumerate all possibilities in decode_val 2022-05-02 12:21:05 +10:00
Andrew Morris
4c18613747 to_primitive 2022-05-02 12:12:07 +10:00
Andrew Morris
4e58b7a269 Split out vs_number, vs_string, vs_pointer, operations 2022-05-02 11:50:16 +10:00
Andrew Morris
3593f1c710 virtual_machine submodule 2022-05-02 11:33:45 +10:00
Andrew Morris
212fc58cf9 Move backpointer check into BytecodeDecoder 2022-05-02 11:22:23 +10:00
Andrew Morris
56b4676fbd Add VsPointer 2022-05-02 11:14:23 +10:00
Andrew Morris
ae42cfc6d8 Fixes, decode_string 2022-05-02 09:39:15 +10:00
Andrew Morris
9c5fa69b4c wip pointers/bytecode 2022-05-01 19:03:23 +10:00
Andrew Morris
89efce6cd3 parallelFindIndex.ts 2022-05-01 18:03:29 +10:00
Andrew Morris
ac295889f5 Add concurrencyLimit to parallelMap 2022-05-01 17:58:36 +10:00
Andrew Morris
ebd7bf49fe Get addition working 2022-05-01 11:03:51 +10:00
Andrew Morris
ed748cbd70 vs_value 2022-05-01 10:47:20 +10:00