| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
One more error condition when desugaring function calls in SubX.
|
| |
|
| |
|
|
|
|
| |
Test for 'index'.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
And we're using it now in factorial.mu!
In the process I had to fix a couple of bugs in pointer dereferencing.
There are still some limitations:
a) Indexing by a literal doesn't work yet.
b) Only arrays of ints supported so far.
Looking ahead, I'm not sure how I can support indexing arrays by non-literals
(variables in registers) unless the element size is a power of 2.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Changing `switchbuf` globally is too heavyweight a change just to do the
right thing when hitting `:T`. I don't even use it anymore since I got
`<Leader>t`; why was I hitting `:T` just to navigate to `last_run`, again?
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This was initially disquieting; was I writing enough tests? Then I noticed
I had TODOs for some missing checks.
|
|
|
|
|
| |
This is a particularly large abstraction leak: SubX arrays track their
lengths in bytes, and therefore Mu as well.
|
|
|
|
| |
Forgot to actually use the new type-dispatch in commit 6017.
|
| |
|
|
|
|
| |
Some deduplication, though this may be a premature abstraction.
|
|
|
|
|
|
|
|
| |
I'd been thinking I didn't need unconditional `break` instructions, but
I just realized that non-local unconditional breaks have a use. Stop over-thinking
this, just support everything.
The code is quite duplicated.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We'll be doing type-checking in a separate phase in future. For now we
need only to distinguish between literals and non-literals for x86 primitive
instructions.
I was tempted to support x86 set__ instructions for this change:
https://c9x.me/x86/html/file_module_x86_id_288.html
That will happen at some point. And I'll simplify a bunch of branches for
results of predicate functions when it happens.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This cleans up a bunch of little warts that had historically accumulated
because of my bull-headedness in not designing a grammar up front. Let's
see if the lack of a grammar comes up again.
We now require that there be no space in variable declarations between
the name and the colon separating it from its type.
|
|
|
|
|
|
|
|
| |
Allow comments at the end of all kinds of statements.
To do this I replaced all calls to next-word with next-mu-token.. except
one. I'm not seeing any bugs yet, any places where comments break things.
But this exception makes me nervous.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Support calling SubX code from Mu. I have _zero_ idea how to make this
safe.
Now we can start writing tests. We can't use commandline args yet. That
requires support for kernel strings.
|
| |
|
| |
|
| |
|
| |
|