about summary refs log tree commit diff stats
path: root/subx/056trace.subx
Commit message (Collapse)AuthorAgeFilesLines
* 5438 - raise error on uppercase hexKartik Agaram2019-07-211-2/+2
| | | | | | | | | | | | | | | | | | We can now translate layers 49-56 using the self-hosted translator (`translate` and `ntranslate`). As a follow-up to commit 5404, the self-hosted translator is a little more strict than the C++ translator in 3 places: a) All .subx files must define a data segment. b) All .subx files must define an `Entry` label. c) All numbers must be in *lowercase* hex. In all cases, where programs work with the C++ translator but violate the self-hosted translator's assumptions, we must make sure we raise errors rather than silently emit bad code.
* .Kartik Agaram2019-07-101-7/+7
|
* .Kartik Agaram2019-07-081-1/+1
| | | | Be more consistent about names of ends of a slice.
* Merge branch 'master' into surveyKartik Agaram2019-07-031-1/+1
|\ | | | | | | | | | | High time we pulled in the final changes to dquotes. In the process we fix one recently introduced duplicate symbol.
| * 5218Kartik Agaram2019-05-221-1/+1
| |
* | some primitives for emitting tracesKartik Agaram2019-07-011-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Kinda hacky, but might scale enough for machine code. This was really hard to debug. Single tests passed, but when I ran all tests I got breakage because tests long before (from the 056trace layer) were not cleaning up properly. My instinct was to call clear-stream on Trace-stream, which was wrong (the trace didn't have the wrong contents, it was literally a bad object). It was also wrong in a counter-productive way: calling clear-stream on a real Trace stream (which is the size of a page of memory) takes a long time in emulated mode.
* | unsigned comparison for addresses in more placesKartik Agaram2019-07-011-9/+8
| |
* | .Kartik Agaram2019-07-011-2/+2
| | | | | | | | Fix some comments.
* | .Kartik Agaram2019-07-011-3/+3
| |
* | fix layout and some commentsKartik Agaram2019-06-171-43/+76
| | | | | | | | When two assertions don't share context they're clearer when separated.
* | .Kartik Agaram2019-06-171-160/+160
| | | | | | | | | | | | | | Move tests adjacent to function being tested. Originally I didn't expect the helpers to get their own tests. But even so, arguably the original layout was less clear.
* | .Kartik Agaram2019-06-171-6/+6
| |
* | .Kartik Agaram2019-06-171-13/+21
| | | | | | | | | | Make a test a little less confusing; stream was initialized with data filled in but outside bounds.
* | fix two hangs in trace-scanKartik Agaram2019-06-171-6/+27
| | | | | | | | | | 1. skip-next-line should skip newline 2. trace-scan was falling into an infinite loop on non-matching lines
* | move test data to bottom of fileKartik Agaram2019-06-171-28/+30
| |
* | .Kartik Agaram2019-06-161-0/+1
| | | | | | | | | | | | | | | | This missing line was giving the illusion that all was well when running a single test at a time. Now trace-scan still hangs, but it hangs reliably. And it's clear what the logic error is.
* | fix bug in skip-next-linenc2019-06-151-1/+2
| |
* | implement next-line-matches?nc2019-06-151-8/+133
| |
* | implement skip-next-linenc2019-06-151-9/+88
| |
* | .Kartik Agaram2019-06-121-7/+0
| | | | | | | | | | Now that we don't have to edit code to run a single test, delete that commented out fragment everywhere.
* | .Kartik Agaram2019-06-081-3/+3
| |
* | .Kartik Agaram2019-06-081-1/+1
| |
* | fix stale docsKartik Agaram2019-06-081-11/+5
| |
* | snapshot of trace primitivesKartik Agaram2019-06-081-0/+346
| |
* | .Kartik Agaram2019-06-081-73/+61
| |
* | Fix stale `initialize-trace-stream`Kartik Agaram2019-06-081-3/+9
| |
* | start fleshing out trace support some moreKartik Agaram2019-06-051-5/+23
|/ | | | | I think the path to readable tests for survey.subx passes through white-box tests.
* 5074Kartik Agaram2019-04-101-3/+18
| | | | | | | | | | | | | 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.
* 5059Kartik Agaram2019-04-051-1/+1
|
* 4981 - no, go back to 3 phasesKartik Agaram2019-02-181-8/+0
| | | | | | | | | | | | | Considering how much trouble a merge phase would be (commit 4978), it seems simpler to just add the extra syntax for controlling the entry point of the generated ELF binary. But I wouldn't have noticed this if I hadn't taken the time to write out the commit messages of 4976 and 4978. Even if we happened to already have linked list primitives built, this may still be a good idea considering that I'm saving quite a lot of code in duplicated entrypoints.
* 4973Kartik Agaram2019-02-151-5/+5
| | | | | Support immediate operands in the data segment in all the ways we support them in the code segment.
* 4961Kartik Agaram2019-02-141-7/+8
|
* 4951Kartik Agaram2019-02-031-2/+2
| | | | Cleaner way to compare streams in tests.
* 4949Kartik Agaram2019-02-021-0/+357