about summary refs log tree commit diff stats
path: root/subx/test_apps
Commit message (Collapse)AuthorAgeFilesLines
* 5105Kartik Agaram2019-04-161-7/+7
| | | | | Pull in a _different_ function than `next-word` (commit 5092) into a shared file between phases. Let's see how this goes.
* 5092Kartik Agaram2019-04-151-2/+2
| | | | | | | 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.
* 5085 - 'assort' phase done!Kartik Agaram2019-04-121-0/+10
| | | | | | | | | | | | | | | | | 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.
* 5058Kartik Agaram2019-04-051-1/+1
|
* 4962Kartik Agaram2019-02-141-38/+40
| | | | | Build the C++ version optimized by default when building/running all apps. We have enough apps now that the cost of optimized builds is worthwhile.
* 4939Kartik Agaram2019-01-211-0/+10
|
* 4903Kartik Agaram2019-01-031-2/+0
|
* 4894Kartik Agaram2018-12-301-0/+10
| | | | | | | | | | | | Done with kinda-safe pointers. In a real compiler the fast path of 'lookup' would ideally get inlined. Excluding procedure-call overhead, the current implementation consumes 2 registers besides the input, and requires 9 instructions (2 push, 2 load, compare, jump, increment, 2 pop). That's large enough that inlining may become a trade-off. Even if we somehow magically had the registers already loaded and available, we'd still need 4 instructions (1 pointer dereference, compare, jump and increment). The price of safety.
* 4888Kartik Agaram2018-12-291-5/+5
| | | | We only can't use rm32=5 when mod=0. Totally fine when it's mod=1.
* 4852Kartik Agaram2018-12-061-0/+10
|
* 4775Kartik Agaram2018-11-241-0/+10
| | | | | | | Start with an exactly corresponding version to Crenshaw 2-1: single-digit numbers. The only change: we assume the number is in hex. The next version now supports multi-digit hex numbers.
* 4774Kartik Agaram2018-11-241-4/+0
| | | | Simplification.
* 4763 - back to the 'trivial' crenshaw2-1 compilerKartik Agaram2018-11-231-0/+4
| | | | | This time I've ported (and test-driven) 'GetChar' and 'GetNum'. The new tests bring together our new testable interfaces for read() and exit().
* 4744Kartik Agaram2018-11-171-2/+2
|
* 4729Kartik Agaram2018-10-281-2/+2
| | | | | | Start injecting all dependencies in the Crenshaw compiler app. In the process I realized the non-fake code path of 'stop' had a bug.
* 4727 - commit to better 64-bit supportKartik Agaram2018-10-271-15/+14
| | | | | | | I've started testing more regularly on 64-bit Linux, and I realize that the binaries actually now compare identical even on 64-bit. Why did I ever add that condition to CI? Seems to be working now on Travis. Let's start comparing now and see if the problem happens again.
* 4684Kartik Agaram2018-10-111-1/+7
| | | | | | | | | | Turns out the tests for 'trace' have been broken in native mode since the original commit (4674). Dangers of running my tests on Darwin, where I can't run them natively. The test failures didn't get flagged on CI because I'd forgotten to update the exit code of the factorial app in commit 4664. At least that's fixed in this commit.
* 4664 - subx: reflect test failures in exit statusKartik Agaram2018-10-051-13/+5
|
* 4648Kartik Agaram2018-10-011-0/+8
|
* 4647 - support 64-bit Linux in CIKartik Agaram2018-10-011-0/+148
Generated 32-bit binaries are different on 64-bit. So let's compare them only on a 32-bit platform. And let's start also verifying their run-time behavior on Linux.