80 Commits

Author SHA1 Message Date
Ian Gulliver
76cc93ab22 Fit skeleton 2021-11-27 06:27:00 +00:00
Ian Gulliver
77a2fed2e0 Make pythag super slow 2021-11-26 00:22:34 +00:00
Ian Gulliver
4eb2ff6188 Make pythag really slow 2021-11-24 20:46:48 -08:00
Ian Gulliver
0bccd0c94b Return to best program sometimes 2021-11-24 20:08:47 -08:00
Ian Gulliver
1c4cf25e34 Support multiple scoring criteria 2021-11-24 19:52:22 -08:00
Ian Gulliver
7c0a1e28e6 Lower instruction limit 2021-11-24 15:49:59 -08:00
Ian Gulliver
a9360aa8da Parameterize ideal function size 2021-11-23 20:45:03 -08:00
Ian Gulliver
8a63bd3b3e Minify only at new best program time 2021-11-23 20:34:10 -08:00
Ian Gulliver
f0f28dbd51 Pythagorean thereom definition 2021-11-23 20:28:23 -08:00
Ian Gulliver
352e1b90be Thread safety for status updates, periodically minify 2021-11-22 22:19:38 -08:00
Ian Gulliver
44c6a26f9d Minify program after hitting score 2021-11-22 21:34:55 -08:00
Ian Gulliver
677561938f Constants for distribution 2021-11-22 21:05:05 -08:00
Ian Gulliver
c547abb296 Make divide-by-zero error, handle error gracefully in grow 2021-11-22 20:46:20 -08:00
Ian Gulliver
a5e44a7e07 Switch to add/remove instruction mutation 2021-11-22 20:33:22 -08:00
Ian Gulliver
8f712688b9 Fix crash on call as last instruction in function 2021-11-22 20:32:46 -08:00
Ian Gulliver
5ae34243b4 Add sqrt instruction 2021-11-21 17:04:58 -08:00
Ian Gulliver
05c62a92e1 Score on criteria count, not sample count 2021-11-20 20:30:16 -10:00
Ian Gulliver
6612523a52 Combine into definition file 2021-11-20 20:17:56 -10:00
Ian Gulliver
24db692859 Compact definition formats 2021-11-20 20:14:35 -10:00
Ian Gulliver
68ae25192e Status channel in Grow() 2021-11-20 20:02:16 -10:00
Ian Gulliver
789e1e7333 Test for grow 2021-11-20 19:44:57 -10:00
Ian Gulliver
0850ada0c4 Split out CLI 2021-11-20 19:38:31 -10:00
Ian Gulliver
8097d6d24f More working code generation 2021-11-20 19:32:44 -10:00
Ian Gulliver
a5a4c49e37 First program generation 2021-11-20 19:25:16 -10:00
Ian Gulliver
f6a598a559 Start exercising grow code, breaking the VM 2021-11-20 19:18:16 -10:00
Ian Gulliver
510680d6c5 Start of code growth 2021-11-20 18:51:19 -10:00
Ian Gulliver
5af90aa6ff Make memory sizes parameters 2021-11-20 18:27:06 -10:00
Ian Gulliver
bd84a5b969 Restrict global and function references to memory size 2021-11-20 18:12:17 -10:00
Ian Gulliver
bdb6b17187 Generate random single instructions 2021-11-20 17:59:22 -10:00
Ian Gulliver
ae771823b0 Move operand type lists into the vm 2021-11-20 17:26:58 -10:00
Ian Gulliver
30ff003494 Parallelize slow tests 2021-11-20 17:21:46 -10:00
Ian Gulliver
56f61545ce Signed biased distribution generator 2021-11-20 16:56:07 -10:00
Ian Gulliver
c12a546447 Biased random generator 2021-11-20 15:20:42 -10:00
Ian Gulliver
51f318c924 Execute code between assembly and disassembly 2021-11-20 10:23:54 -10:00
Ian Gulliver
3ced099a47 Remove broken loader 2021-11-20 10:20:29 -10:00
Ian Gulliver
c67028520c Hex and binary literal support in hex 2021-11-20 10:19:08 -10:00
Ian Gulliver
c43836a9f0 Working disassembler 2021-11-20 10:10:21 -10:00
Ian Gulliver
b4a27cafd3 Make Operands an array 2021-11-20 09:46:51 -10:00
Ian Gulliver
579ddab2de Disassembler skeleton 2021-11-19 20:38:56 -10:00
Ian Gulliver
5ccf6832c8 Program wrapper struct 2021-11-19 20:16:01 -10:00
Ian Gulliver
c536961df3 Bit shift operators 2021-11-19 17:04:11 -10:00
Ian Gulliver
e2dafcf21a Better Not operation 2021-11-19 16:45:39 -10:00
Ian Gulliver
cc8e4a8ccb Bitwise operators 2021-11-19 16:43:59 -10:00
Ian Gulliver
50f986fb13 Conditional return instructions 2021-11-19 16:30:11 -10:00
Ian Gulliver
7a24eee583 Add conditional call instructions 2021-11-19 16:24:04 -10:00
Ian Gulliver
6e36152b6a Typed operands 2021-11-19 16:14:38 -10:00
Ian Gulliver
534c4fe513 Handle invalid function calls 2021-11-19 15:45:51 -10:00
Ian Gulliver
7da1ea96da Jump tests 2021-11-19 15:42:27 -10:00
Ian Gulliver
007c56348c Signed comparison tests 2021-11-19 15:38:28 -10:00
Ian Gulliver
4988893b10 More opcode tests 2021-11-19 15:32:49 -10:00