Commit Graph

86 Commits

Author SHA1 Message Date
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
Andrew Morris
f6f8c435e1 Add concept code for thread 2022-04-30 14:58:25 +10:00
Andrew Morris
0b729f0168 Add stub for virtual_machine 2022-04-28 20:23:26 +10:00
Andrew Morris
a7f1843994 cli stub for vstc run 2022-04-28 19:57:48 +10:00
Andrew Morris
125a4885ad Replace write_unresolved_definition 2022-04-27 23:14:50 +10:00
Andrew Morris
c3895f164e Implement labels 2022-04-27 23:12:52 +10:00
Andrew Morris
371f934a18 LocationMap 2022-04-27 22:08:52 +10:00
Andrew Morris
a031d046ff Prefer usize 2022-04-27 21:51:34 +10:00
Andrew Morris
3cd3e6f946 AssemblerFnData 2022-04-27 21:43:39 +10:00
Andrew Morris
6062e13022 Fix object commas 2022-04-26 23:02:29 +10:00
Andrew Morris
9d78681bf6 Allow definitions to be any value 2022-04-26 22:50:08 +10:00
Andrew Morris
3392c96114 Add strings and objects 2022-04-26 22:48:18 +10:00
Andrew Morris
1e60b88cf4 Update bytecode example 2022-04-26 21:33:19 +10:00
Andrew Morris
e910f66475 Fill in unresolved definitions 2022-04-26 21:28:39 +10:00
Andrew Morris
b9cf50f6f4 Implement register mapping 2022-04-26 18:42:44 +10:00
Andrew Morris
676ad28cc0 Use ff for ignore register 2022-04-26 18:12:46 +10:00