Commit Graph

75 Commits

Author SHA1 Message Date
Kartik K. Agaram
aa66c8327d 88 - a different trace testing helper
Verifies a set of lines in order.
2014-08-28 20:43:11 -07:00
Kartik K. Agaram
a1ef151196 87 2014-08-28 19:54:37 -07:00
Kartik K. Agaram
2f2c241800 86 2014-08-28 19:53:57 -07:00
Kartik K. Agaram
0832cc89dc 85 - trace testing ahoy (http://akkartik.name/post/tracing-tests) 2014-08-28 19:53:41 -07:00
Kartik K. Agaram
c532f0ab5f 84 2014-08-28 19:23:38 -07:00
Kartik K. Agaram
c140d9cc5f 83 - extract a function to run a short slice of instructions 2014-08-28 16:47:09 -07:00
Kartik K. Agaram
fbe15a986a 82 2014-08-28 16:40:28 -07:00
Kartik K. Agaram
d95ed21da9 81 - reify machine state into a 'context' variable
Beginning of concurrency primitives.
2014-08-28 14:55:10 -07:00
Kartik K. Agaram
576d603f8f 80 2014-08-27 16:24:40 -07:00
Kartik K. Agaram
3561e8513d 79 - purge unnecessary macros
Noob mistake.
2014-08-26 22:05:30 -07:00
Kartik K. Agaram
92819aa5e3 78 2014-08-26 22:00:38 -07:00
Kartik K. Agaram
230415b4e1 77 - 'new' in the interpreter
Next we'll try to reimplement it on the simulated machine. But for now,
sys.arc is extraneous.

Debugging this, the commented out prints started to become onerous enough I couldn't
bear to keep them.
2014-08-26 21:55:21 -07:00
Kartik K. Agaram
91226d7c76 76 2014-08-26 11:52:16 -07:00
Kartik K. Agaram
817b7e0be0 75 2014-08-26 10:17:55 -07:00
Kartik K. Agaram
2ee76bda37 72 - broken
Thoroughly confused about how to manage memory at initialization time, and how
to maintain type information in the simulated machine.
2014-08-22 11:30:36 -07:00
Kartik K. Agaram
1f18a4fd0a 71 2014-08-22 11:05:51 -07:00
Kartik K. Agaram
2b15484f33 70 2014-08-22 10:47:44 -07:00
Kartik K. Agaram
734e8c2824 69 2014-08-21 21:37:55 -07:00
Kartik K. Agaram
6da81a3e4a 68 2014-08-21 21:04:45 -07:00
Kartik K. Agaram
c7dc4ba972 67 2014-08-21 20:50:38 -07:00
Kartik K. Agaram
0a8858dbc5 66 - bounds checking
Currently baked into the processor model, but eventually will be emitted
in generated code.
2014-08-21 20:40:05 -07:00
Kartik K. Agaram
6a2edbe8ca 65 - separate op for array indexing
'get' no longer supports that case; that was confusing.
2014-08-21 20:35:52 -07:00
Kartik K. Agaram
6f9bf3a063 64 2014-08-21 20:32:27 -07:00
Kartik K. Agaram
7b6e5972d6 63 2014-08-21 20:08:22 -07:00
Kartik K. Agaram
baf61345bf 62 2014-08-21 19:55:16 -07:00
Kartik K. Agaram
689a480e1e 61 - 'get' for array access
get _ 0 => retrieves array length
get _ n => retrieves index n-1
2014-08-21 00:57:57 -07:00
Kartik K. Agaram
0c57bf0a1b 60 2014-08-21 00:31:50 -07:00
Kartik K. Agaram
8a93b211e4 59 2014-08-20 19:49:05 -07:00
Kartik K. Agaram
980e1bf3ca 58 2014-08-20 17:44:20 -07:00
Kartik K. Agaram
b9fef0471d 57 - multi-word or multi-field ops 2014-08-19 23:37:50 -07:00
Kartik K. Agaram
f9dd51f672 56 - 'get' for record access 2014-08-19 21:33:48 -07:00
Kartik K. Agaram
889e4b958e 53 - simplest possible allocator: just one word at a time
But with tests this time.
2014-08-19 12:02:40 -07:00
Kartik K. Agaram
409e66ccaf 51 2014-08-19 11:23:01 -07:00
Kartik K. Agaram
dbe8d43671 50 2014-08-18 12:12:58 -07:00
Kartik K. Agaram
ab8619a148 48 2014-08-02 15:38:50 -07:00
Kartik K. Agaram
39dd5cd491 47 2014-08-02 15:26:08 -07:00
Kartik K. Agaram
0cd4bfc8ae 46 - there's no continue bug after all in anarki 2014-08-02 02:25:32 -07:00
Kartik K. Agaram
d90d6629a9 45 - 'deref' metadata working in output args
Likely still some erroneous corner cases. What happens if I try to write indirectly
to a boolean value? Should raise a reasonable error.
2014-07-31 03:46:05 -07:00
Kartik K. Agaram
b20165a890 44 - now 'deref' is a bit of metadata on any operand rather than a special op
Still only works in read, and only in a single instruction. But these are details.
2014-07-31 02:27:41 -07:00
Kartik K. Agaram
66a52b5ff2 11 - fix 'deref'
It was broken since commit 7.
2014-07-31 02:04:01 -07:00
Kartik K. Agaram
73978d2f82 10 - slightly more DRY 2014-07-31 01:53:14 -07:00
Kartik K. Agaram
b90a10d265 9 - shuffle operand type tag to after operand value
This organization should permit multiple metadata tags beyond just type.
Starting to feel some pain from code not being DRY.
Issues that took debugging: a poor search-and-replace, and shuffling offset in convert-braces.
2014-07-31 01:47:32 -07:00
Kartik K. Agaram
c41a0c2739 8 2014-07-31 01:27:52 -07:00
Kartik K. Agaram
c8a8fb6efa 7 - cleanup 'run'
Finally gave in to permit user-land macros in 'run'. 'm' should translate
to an assembler function to decide what to emit.
2014-07-27 10:55:08 -07:00
Kartik K. Agaram
f37b3ab481 6 2014-07-27 10:09:00 -07:00
Kartik K. Agaram
5b7de7f6d6 5 - first stab at allocator, just for ints
Still can't write to a pointer.
2014-07-26 12:48:54 -07:00
Kartik K. Agaram
29c2f5a398 4 - better name for loadi (thanks FMoS VI) 2014-07-26 12:27:47 -07:00
Kartik K. Agaram
1b9ca7b4d7 3 - don't rely too much on arc
I'm dismissing symbols as 'a simple matter of assembling'.
2014-07-26 12:26:43 -07:00
Kartik K. Agaram
b163764948 2 - use literal syms instead of type codes 2014-07-26 12:25:40 -07:00
Kartik K. Agaram
b794da7fe9 28 - support 'continue'
We still haven't verified that the generated code is correct.
Also, time to fix that bug in arc's continue.
2014-07-17 09:21:27 -07:00