Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 5118 - convert int to string | Kartik Agaram | 2019-04-23 | 8 | -0/+0 |
| | |||||
* | 5115 | Kartik Agaram | 2019-04-22 | 2 | -1/+1 |
| | |||||
* | 5112 | Kartik Agaram | 2019-04-19 | 2 | -1/+63 |
| | |||||
* | 5108 | Kartik Agaram | 2019-04-18 | 2 | -10/+10 |
| | |||||
* | 5107 | Kartik Agaram | 2019-04-18 | 2 | -4/+281 |
| | |||||
* | 5106 | Kartik Agaram | 2019-04-17 | 3 | -2/+147 |
| | |||||
* | 5105 | Kartik Agaram | 2019-04-16 | 7 | -388/+200 |
| | | | | | Pull in a _different_ function than `next-word` (commit 5092) into a shared file between phases. Let's see how this goes. | ||||
* | 5104 | Kartik Agaram | 2019-04-16 | 2 | -18/+13 |
| | | | | Don't forget metadata for string literals. | ||||
* | 5103 | Kartik Agaram | 2019-04-16 | 2 | -61/+88 |
| | |||||
* | 5102 - tokenize string literals | Kartik Agaram | 2019-04-16 | 2 | -0/+582 |
| | | | | | | Current plan: $ cat files.subx ... |dquotes |assort |pack |survey |hex > a.out | ||||
* | 5101 | Kartik Agaram | 2019-04-16 | 1 | -1/+1 |
| | |||||
* | 5100 | Kartik Agaram | 2019-04-16 | 1 | -1/+1 |
| | |||||
* | 5098 | Kartik Agaram | 2019-04-16 | 1 | -6/+6 |
| | |||||
* | 5097 | Kartik Agaram | 2019-04-16 | 2 | -8/+10 |
| | |||||
* | 5092 | Kartik Agaram | 2019-04-15 | 5 | -251/+490 |
| | | | | | | | Realization: 'next-word' can't be reused in converting string literals, because it has to understand string literals. Let's just keep each phase self-contained. | ||||
* | 5090 | Kartik Agaram | 2019-04-13 | 12 | -794/+154 |
| | | | | | | | Start using the new newline escape in string literals everywhere. I could use it more aggressively, but it makes tests harder to read. So only one line of text per string for now. | ||||
* | 5087 | Kartik Agaram | 2019-04-12 | 2 | -1/+2 |
| | | | | | | | | Fix CI. For some reason allocating 4KB natively on Linux triggers a segfault. Temporarily reducing segment size to 256 bytes; that's large enough for the test. But it's not a long-term solution. Maybe I need to grow the heap with sbrk()? | ||||
* | 5085 - 'assort' phase done! | Kartik Agaram | 2019-04-12 | 2 | -407/+497 |
| | | | | | | | | | | | | | | | | | Current plan for SubX translator: $ cat files.subx ... |assort |pack |survey |hex > a.out Higher-level notations will be inserted at the start of the pipeline. The first (and needed for bootstrapping) is for string literals. $ cat files.subx ... |string-literals |assort |pack |survey |hex > a.out Alternatively, we should check how often we use string literals and just convert them by hand. They're used all over in tests, and converting them would make tests hard (even harder) to read. | ||||
* | 5080 | Kartik Agaram | 2019-04-11 | 6 | -110/+78 |
| | |||||
* | 5076 | Kartik Agaram | 2019-04-10 | 1 | -0/+0 |
| | |||||
* | 5075 | Kartik Agaram | 2019-04-10 | 1 | -0/+0 |
| | |||||
* | 5074 | Kartik Agaram | 2019-04-10 | 10 | -120/+185 |
| | | | | | | | | | | | | | Fail early when writing to a fake file runs out of space. Makes debugging tests easier. Reads from files, on the other hand, are only buffering to a temporary stream, so it makes sense to silently stop when they run out of space. In the process I uncovered a testing bug in pack.subx: I was missing a trailing space in the expected result, but the test still passed because the space was getting truncated. Being principled about aborting on overflow by default will help avoid such issues. | ||||
* | 5072 | Kartik Agaram | 2019-04-10 | 1 | -15/+1 |
| | |||||
* | 5064 | Kartik Agaram | 2019-04-07 | 1 | -3/+2 |
| | |||||
* | 5063 | Kartik Agaram | 2019-04-07 | 1 | -69/+0 |
| | |||||
* | 5062 | Kartik Agaram | 2019-04-06 | 2 | -391/+460 |
| | |||||
* | 5061 | Kartik Agaram | 2019-04-06 | 1 | -1/+1 |
| | |||||
* | 5060 | Kartik Agaram | 2019-04-06 | 8 | -10/+221 |
| | |||||
* | 5059 | Kartik Agaram | 2019-04-05 | 10 | -33/+33 |
| | |||||
* | 5058 | Kartik Agaram | 2019-04-05 | 3 | -245/+251 |
| | |||||
* | 5057 | Kartik Agaram | 2019-04-05 | 1 | -1/+35 |
| | |||||
* | 5056 | Kartik Agaram | 2019-04-05 | 6 | -0/+0 |
| | |||||
* | 5055 - new phase: merge fragment of segments | Kartik Agaram | 2019-04-04 | 1 | -0/+1102 |
| | |||||
* | 5054 | Kartik Agaram | 2019-04-03 | 2 | -4/+3 |
| | |||||
* | 5053 | Kartik Agaram | 2019-04-03 | 7 | -40/+266 |
| | | | | | | write-stream-buffered isn't a clean abstraction. Ignoring the 'read' index of a stream is a hack. It's just saving us the trouble of a rewind-stream. So make it a helper of pack.subx rather than part of the standard library. | ||||
* | 5052 | Kartik Agaram | 2019-04-02 | 2 | -99/+127 |
| | |||||
* | 5051 - done compiling SIB operands | Kartik Agaram | 2019-04-02 | 2 | -3/+671 |
| | | | | Done with pack.subx?! | ||||
* | 5050 - compile ModR/M operands | Kartik Agaram | 2019-04-02 | 2 | -1/+807 |
| | |||||
* | 5049 | Kartik Agaram | 2019-04-02 | 1 | -100/+196 |
| | |||||
* | 5048 | Kartik Agaram | 2019-04-01 | 1 | -12/+12 |
| | |||||
* | 5047 | Kartik Agaram | 2019-04-01 | 1 | -3/+3 |
| | |||||
* | 5046 | Kartik Agaram | 2019-04-01 | 2 | -72/+52 |
| | |||||
* | 5045 | Kartik Agaram | 2019-04-01 | 1 | -8/+8 |
| | |||||
* | 5044 | Kartik Agaram | 2019-04-01 | 2 | -3/+248 |
| | |||||
* | 5043 | Kartik Agaram | 2019-04-01 | 1 | -0/+3 |
| | |||||
* | 5042 | Kartik Agaram | 2019-03-31 | 2 | -33/+35 |
| | |||||
* | 5041 - compile displacement operands | Kartik Agaram | 2019-03-31 | 2 | -13/+565 |
| | |||||
* | 5040 - compile immediate operands | Kartik Agaram | 2019-03-30 | 2 | -16/+556 |
| | |||||
* | 5039 - compile opcodes | Kartik Agaram | 2019-03-30 | 2 | -6/+1011 |
| | |||||
* | 5038 | Kartik Agaram | 2019-03-29 | 2 | -11/+181 |
| |