about summary refs log tree commit diff stats
path: root/subx/test_apps
Commit message (Collapse)AuthorAgeFilesLines
* 5485 - promote SubX to top-levelKartik Agaram2019-07-271-336/+0
|
* 5469Kartik Agaram2019-07-251-1/+1
|
* 5467Kartik Agaram2019-07-241-31/+14
| | | | Fix CI by disabling non-native runs that run out of memory.
* 5465Kartik Agaram2019-07-241-4/+16
| | | | Include phases of self-hosted SubX translator in CI.
* 5464Kartik Agaram2019-07-241-23/+23
| | | | Include simple apps in CI.
* 5463Kartik Agaram2019-07-241-1/+1
|
* 5447Kartik Agaram2019-07-221-4/+8
| | | | Fix a timeout in CI.
* 5430 - all examples passingKartik Agaram2019-07-201-35/+45
| | | | | We now have a new pass called 'tests' which code-generates a new function called 'run-tests', just like the C++ layer `tests.cc`.
* 5421Kartik Agaram2019-07-191-0/+24
|
* 5419Kartik Agaram2019-07-191-5/+5
| | | | | | | | | | | Bugfix fourteen: we need different address computation logic for code vs data labels. It's really about different categories of instructions having different address computation logic. This subtle distinction will make good error messages hard. But that's a problem for later. Now there's just one example program not translating.
* 5415Kartik Agaram2019-07-171-0/+48
| | | | | | | | Bugfix thirteen: displacement calculations were wrong because current offset was not being updated properly as words were being read and emitted. Now 10/12 example programs are translated correctly.
* 5412Kartik Agaram2019-07-171-3/+3
| | | | Fix CI.
* 5411Kartik Agaram2019-07-171-1/+1
| | | | Fix CI.
* 5410 - 4 examples passingKartik Agaram2019-07-171-12/+30
| | | | | Clean up other examples as well to satisfy the requirements in commit 5404.
* 5409Kartik Agaram2019-07-171-0/+10
| | | | | Bugfix eleven: segment flags were incorrectly computed. examples/ex1 now verified! Added to CI.
* add subx/apps/survey to CIKartik Agaram2019-07-131-0/+10
|
* 5222Kartik Agaram2019-05-221-2/+2
| | | | Fix CI for a real, restricted /bin/sh.
* 5219Kartik Agaram2019-05-221-2/+6
| | | | | After fixing bugs, checking alloc_ids now requires 9 instructions rather than 6.
* SubX in SubX: done with dquotes phaseKartik Agaram2019-05-201-0/+10
| | | | Add the new binary to CI.
* switch to new syntax for segment headers in C++Kartik Agaram2019-05-181-7/+7
|
* 5126 - add a message to a silent CI failure modeKartik Agaram2019-04-261-19/+19
|
* 5120Kartik Agaram2019-04-231-1/+1
|
* 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.