| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Another batch of incorrectly signed conditional jumps. (Follow-up to
commit 5180.)
|
|
|
|
|
| |
Some nooks and crannies will need light final debugging with xxd, but
emit-hex-output covers most of the logic.
|
| |
|
|
|
|
|
|
| |
Move test slice variables out of the data segment and close to their
usages. Makes tests a little easier to read even if we spend a few more
instructions each time.
|
|
|
|
|
| |
Everywhere we check if something is true, we check it by comparing
against 0, not 1.
|
|
|
|
| |
style tweaks
|
|
|
|
| |
reorg in subx-common.subx
|
| |
|
|\
| |
| |
| |
| |
| | |
High time we pulled in the final changes to dquotes.
In the process we fix one recently introduced duplicate symbol.
|
| | |
|
|/| |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
We need yet another helper for computing the lengths of strings, while
checking for escape sequences.
|
| |
| |
| |
| |
| |
| | |
We're going to be cloning it for the length computation.
Anytime we do something non-standard it's invariably short-lived.
|
| |
| |
| |
| | |
As expected, almost all tests now passing.
|
| | |
|
| |
| |
| |
| |
| | |
More importantly, don't mix reclaiming locals with discarding args after
a call.
|
| |
| |
| |
| | |
I _think_ we'll need to use it below. But may be wrong.
|
| |
| |
| |
| |
| | |
Kind of a pathological case, but makes our loop follow a standard format,
and provides some error checking at low cost.
|
| | |
|
| |
| |
| |
| | |
I was missing a test to catch this.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I like to be able to jump between functions and tests using '}' in Vim
:)
We also shouldn't put the wrong argument types in the tabular columns.
Just make it obvious they're not in use when instructions don't have a
ModR/M byte.
End-of-line comments are really only useful for instructions with a ModR/M
byte.
|
| | |
|
| |
| |
| |
| | |
This one should make `emit-metadata` string-aware.
|
| |
| |
| |
| | |
Plan: https://github.com/akkartik/mu/commit/d4a244268841e8e912c98f4587095b701aa5c292#commitcomment-33558279
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Current state:
✓ hex.subx (no changes required)
survey.subx
✓ pack.subx (fixed here)
assort.subx
✓ dquotes.subx (has failing tests for other reasons)
|
|/
|
|
| |
Test for the bugfix of commit 2f49a27504.
|
|
|
|
|
|
|
| |
Clean up some old TODOs related to our pre-mmap limitations.
Also caught another case of using the wrong comparison. When comparing
addresses, one must always use unsigned rather than signed jump instructions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Still some failing tests:
- emit-string-literal-data doesn't ignore metadata when computing the
length of literal strings
- emit-string-literal-data doesn't handle escape sequences
One issue doesn't have a failing test:
- emit-metadata doesn't handle string literals containing '/'
All these open issues involve a common design question: how to parse a
'word' that includes a string literal that may include spaces.
For everything else I know words can't contain spaces and datums can't
contain slashes. But for string literals things are tougher.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
How did things seem to be working until now?
- We were saving an address from the stack to stream.read
- When we read this address in skip-chars-matching:loop, we used to stop early
But now we've moved the stack to a larger address, one where the most significant
byte is set. When the stack address now gets to skip-chars-matching:loop,
it's treated as a negative number and we proceed through the loop. At which
point we try to index into the array using it.
No real test to be written to protect against this :(
|
|\
| |
| |
| |
| | |
dquotes.subx is now segfaulting after this merge. Seems to be trying to
use addresses from the old stack.
|
| |\
| | |
| | |
| | | |
apps/dquotes still segfaulting on native run.
|
| | |
| | |
| | |
| | |
| | | |
All tests passing now. Things are very explicit; before a program can `allocate`
memory, it has to first obtain a segment from the OS using `new-segment`.
|
| | |
| | |
| | |
| | | |
Convert raw literal strings (no escape sequences) to the data segment.
|
|/ /
| |
| |
| |
| | |
Operations on buffered-file now always include the word 'buffered'. More
verbose, but hopefully this highlights holes in the library.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm switching to a more exposed working dynamic after chatting with Charles
Saternos (https://github.com/akkartik/mu/pull/19). From now on I'll start
a new branch for big features. Branches won't always pass all their tests.
Phases have gone weeks in the past before being committed all at once.
Developing in a branch gives others the opportunity to see more current
progress and jump in more easily.
Some 'kata' branches for new contributors to start at:
* add two numbers: https://github.com/akkartik/mu/pull/21
* write a string to a byte stram: https://github.com/akkartik/mu/pull/22
* print a number in decimal to a byte stream: https://github.com/akkartik/mu/pull/20
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Pull in a _different_ function than `next-word` (commit 5092) into a shared
file between phases. Let's see how this goes.
|
|
|
|
| |
Don't forget metadata for string literals.
|
| |
|