| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Baremetal is now the default build target and therefore has its sources
at the top-level. Baremetal programs build using the phase-2 Mu toolchain
that requires a Linux kernel. This phase-2 codebase which used to be at
the top-level is now under the linux/ directory. Finally, the phase-2 toolchain,
while self-hosting, has a way to bootstrap from a C implementation, which
is now stored in linux/bootstrap. The bootstrap C implementation uses some
literate programming tools that are now in linux/bootstrap/tools.
So the whole thing has gotten inverted. Each directory should build one
artifact and include the main sources (along with standard library). Tools
used for building it are relegated to sub-directories, even though those
tools are often useful in their own right, and have had lots of interesting
programs written using them.
A couple of things have gotten dropped in this process:
- I had old ways to run on just a Linux kernel, or with a Soso kernel.
No more.
- I had some old tooling for running a single test at the cursor. I haven't
used that lately. Maybe I'll bring it back one day.
The reorg isn't done yet. Still to do:
- redo documentation everywhere. All the README files, all other markdown,
particularly vocabulary.md.
- clean up how-to-run comments at the start of programs everywhere
- rethink what to do with the html/ directory. Do we even want to keep
supporting it?
In spite of these shortcomings, all the scripts at the top-level, linux/
and linux/bootstrap are working. The names of the scripts also feel reasonable.
This is a good milestone to take stock at.
|
| |
|
|
|
|
| |
Convert comments about magic constants into metadata.
|
|
|
|
|
| |
A tiny modicum of reuse amidst all this copypasta: I'm able to reuse the
same function that renders lines without stacks in the sandbox.
|
|
|
|
|
| |
Still a bug in cursor positioning. It's always shown at the start of the
function body.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
All tasks of https://github.com/akkartik/mu/issues/45#issuecomment-719990879
should now be complete.
|
|
|
|
| |
https://github.com/akkartik/mu/issues/45#issuecomment-719990879, task 2.
|
|
|
|
| |
Strings can contain spaces.
|
| |
|
|
|
|
|
|
| |
This was very difficult to debug.
We still need to process space in the middle of a word.
|
|
|
|
|
| |
Expanding words now seems to be working. I was forgetting to update 'prev'
pointers in a few places.
|
| |
|
|
|
|
|
| |
Defining functions mostly working. But we still need to fix the cursor
afterwards.
|
|
|
|
|
| |
Defining new functions seems to be working. _However_, we aren't yet detecting
duplicates. `x x *` leads to a declaration of `x x f`.
|
|
|
|
|
| |
Constructing new functions with ctrl-d is now working right. But the call
seems exactly flipped.
|
| |
|
| |
|
|
|
|
|
| |
Rename seems to now be working. State still isn't rendered right, so we
can't be sure.
|
|
|
|
|
| |
Finally following up on commit 7020. Ctrl-a and ctrl-e now work, but word-wise
motions are still showing some funkiness.
|
| |
|
|
|
|
|
| |
Snapshot: tile currently segfaulting. I need to back up and make it easier
to debug.
|
| |
|
| |
|
| |
|
|
|
|
| |
Another suggestion from the Future of Software forum.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Displayed cursor position is not yet correct, but insertions happen at
the right cursor position.
|
| |
|
| |
|
| |
|
| |
|
|
There's some worrisome memory corruption here between the call to max-stack-depth
and the callee picking up its args.
All this code is incredibly ugly as I start to wrestle with the challenges
of structured editors. I keep wanting to keep business logic separate from
rendering, but there are feedback loops from wanting to know where to render
the cursor. And I haven't even started trying to avoid full-screen renders
yet. That'll complect things even more. For now the data path for every
iteration of the render loop is:
process key
compute max depth needed (or any other global information needed for rendering)
render
|