Commit Graph

4848 Commits

Author SHA1 Message Date
Kartik Agaram 172e52c47b 4733 2018-10-28 13:27:53 -07:00
Kartik Agaram bb5cc54f96 4732 2018-10-28 12:45:11 -07:00
Kartik Agaram 93be389bef 4731 2018-10-28 12:41:04 -07:00
Kartik Agaram 425cd42b13 4730 2018-10-28 12:24:02 -07:00
Kartik Agaram eb9087635b 4729
Start injecting all dependencies in the Crenshaw compiler app.

In the process I realized the non-fake code path of 'stop' had a bug.
2018-10-28 00:19:46 -07:00
Kartik Agaram 5f842b0e5e 4728
What is this '|| exit 1' construct?! No need for it in the presence of
ERREXIT.
2018-10-28 00:02:11 -07:00
Kartik Agaram 120dbb1186 4727 - commit to better 64-bit support
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.
2018-10-27 23:09:36 -07:00
Kartik Agaram 5f21a5e788 4726 2018-10-27 22:46:23 -07:00
Kartik Agaram 5e5f569c17 4725 - back to porting the Crenshaw compiler 2018-10-26 10:16:02 -07:00
Kartik Agaram 1f08b541af 4724 2018-10-24 23:28:03 -07:00
Kartik Agaram e0a0484c9f 4723
Fix CI.
2018-10-24 23:17:43 -07:00
Kartik Agaram 6f37250dd9 4722 2018-10-24 23:05:58 -07:00
Kartik Agaram 0939de6373 4721 2018-10-24 22:53:45 -07:00
Kartik Agaram 7df0ea4ec4 4720
Raise an error when we fall off the end of the code segment.
2018-10-24 22:52:48 -07:00
Kartik Agaram 261b1b8056 4719 - testable interface wrapping around exit() 2018-10-24 22:21:59 -07:00
Kartik Agaram 4524da2bb6 4718 2018-10-24 15:52:41 -07:00
Kartik Agaram b6fdd2e4e5 4717 2018-10-24 00:01:00 -07:00
Kartik Agaram 92d8ef6c3b 4716 2018-10-23 23:32:38 -07:00
Kartik Agaram d27812594a 4715 - support one more negation instruction 2018-10-23 23:19:55 -07:00
Kartik Agaram bfc997cfda 4714
Improve error-checking for unnecessary displacement operands.
2018-10-23 23:18:31 -07:00
Kartik Agaram f3612481b1 4713
Initial sketch of a dependency-injected wrapper around the exit() syscall.

I don't have the primitives yet, just a sketch of how they should work
-- and a passing test for non-local jumps without support for passing the
exit status to the caller.
2018-10-21 21:17:22 -07:00
Kartik Agaram 417a05ee7d 4712 2018-10-21 20:36:43 -07:00
Kartik Agaram b847538071 4711
Extract a helper for appending strings to raw buffers.

I'd been resisting this idea, but it actually turns out to be a pretty
clean abstraction in the end.
2018-10-17 22:31:39 -07:00
Kartik Agaram 4cc517e0de 4710
Start using write() instead of _write().. and we promptly find a typo when
dealing with real file descriptors.
2018-10-17 08:19:03 -07:00
Kartik Agaram 104e521c04 4709 2018-10-17 07:08:47 -07:00
Kartik Agaram 800320a70c 4708 2018-10-17 06:47:28 -07:00
Kartik Agaram 3d6450f216 4707 - subx: dependency-injected write() primitive 2018-10-16 23:44:31 -07:00
Kartik Agaram df592211f6 4706 2018-10-16 23:43:32 -07:00
Kartik Agaram 8108f5b875 4705 2018-10-16 23:27:38 -07:00
Kartik Agaram 7ea0b5325b 4704 2018-10-16 23:02:57 -07:00
Kartik Agaram 04be5eb2ae 4703 2018-10-16 23:02:42 -07:00
Kartik Agaram ca5a3fcb12 4702 2018-10-16 00:15:51 -07:00
Kartik Agaram 2c2af7ce60 4701 2018-10-16 00:13:28 -07:00
Kartik Agaram f613a8bed5 4700 2018-10-16 00:10:15 -07:00
Kartik Agaram 6528a08992 4699 2018-10-14 22:25:57 -07:00
Kartik Agaram a9a5718d08 4698 2018-10-14 12:53:50 -07:00
Kartik Agaram 0e0a90420e 4697 2018-10-14 00:29:48 -07:00
Kartik Agaram 5d06fe27fb 4696
Update the syntax documentation.
2018-10-14 00:13:41 -07:00
Kartik Agaram 0f851e48aa 4695 2018-10-14 00:00:39 -07:00
Kartik Agaram 06d9b1a541 4694
Check for duplicate docstrings.
2018-10-13 23:55:07 -07:00
Kartik Agaram dc559a00c7 4693
Add the standard mnemonic for each opcode.

We aren't ever going to have complete docs of the subset of the x86 ISA
we support, so we need to help readers cross-correlate with the complete
docs.
2018-10-13 23:50:10 -07:00
Kartik Agaram 116e7730d7 4692 - update online help for subx
It now includes details for 8-bit registers. And we'll just use the classic
names for the registers so that the relationships between 8- and 32-bit
versions are more obvious.
2018-10-13 23:18:31 -07:00
Kartik Agaram a8c6eda1cf 4691
All tests now once again run the same natively and on VM.
2018-10-13 21:01:01 -07:00
Kartik Agaram 861418f0dc 4690
Fix a major discrepancy between the SubX VM and real x86 processors. This
was responsible for the breakage identified in commit 4684. We now have
failing tests, but at least they are identical running natively and on
SubX.
2018-10-13 00:21:40 -07:00
Kartik Agaram 6fc975ebcf 4689 2018-10-12 23:45:41 -07:00
Kartik Agaram 222c31db21 4688 2018-10-12 23:41:43 -07:00
Kartik Agaram 01dada15c3 4687 2018-10-12 23:27:26 -07:00
Kartik Agaram 544fbdc6e2 4686 2018-10-12 23:15:34 -07:00
Kartik Agaram 88b478087e 4685 2018-10-12 23:13:15 -07:00
Kartik Agaram c25d9aa42a 4684
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.
2018-10-11 00:08:50 -07:00