| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Convert comments about magic constants into metadata.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Both manual tests described in commit 7222 now work.
To make them work I had to figure out how to copy a file. It
requires a dependency on a new syscall: lseek.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This bug was incredibly painful to track down: the one-line fix is to replace
'line' with 'first-line' in the call to 'evaluate' in render-line before
recursing.
Things that made it challenging:
- A high degree of coiling with recursive calls and multiple places of
evaluation.
- An accidental aliasing in bindings (when rendering the main column in
render-line) that masked the underlying bug and made things seem to work
most of the time.
- Too many fucking arguments to render-line, a maze of twisty line objects
all alike.
|
|
|
|
|
| |
Bug fixed; I had to reinitialize the table of bindings.
Interesting debugging experience.
|
| |
|
|
|
|
| |
https://github.com/akkartik/mu/issues/45#issuecomment-719990879, task 2.
|
| |
|
| |
|
|
|
|
| |
We really need to clean up the Mu compiler's logic around function outputs.
|
| |
|
|
|
|
| |
This found several bugs due to me not checking for null strings.
|
|
|
|
| |
Strings can contain spaces.
|
|
|
|
|
|
| |
This was very difficult to debug.
We still need to process space in the middle of a word.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Cursor now in the right place after rename. But stack still doesn't show
the value of a name.
|
|
|
|
|
| |
Snapshot; things seem to be working besides ctrl-r, but we aren't yet rendering
only the final line.
|
|
|
|
|
| |
Rename seems to now be working. State still isn't rendered right, so we
can't be sure.
|
|
|
|
|
| |
Expanding words now working, but ctrl-f/ctrl-b inside expanded words not
working right.
|
|
|
|
|
| |
ctrl-f and ctrl-b working right. Now ctrl-u is segfaulting. Also expanding
words.
|
|
|
|
|
| |
Finally following up on commit 7020. Ctrl-a and ctrl-e now work, but word-wise
motions are still showing some funkiness.
|
| |
|
|
|
|
|
|
|
|
|
| |
snapshot: migrating call-path to store word handles rather than word indexes.
ctrl-a and ctrl-e are segfaulting. There are likely other problems.
The major new change here is that allocating a call-path-element no longer
initializes it.
|
|
|
|
|
| |
Until now the word being typed had a slightly larger invisible margin,
which was a little strange. Should look cleaner now.
|
|
|
|
|
| |
I just got bitten by variable shadowing! It's a lot less theoretical concern
now.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
I just needed to remove an obsolete guardrail in render-line.
Still seeing some bugs with left-arrow when playing around with the full
expansion of `1 2+`.
|
|
|
|
|
| |
Oh, of course. I can't compare the word with the word at the cursor. Not
even its interned pointer. We have to track the call path.
|
|
|
|
|
|
|
| |
Starting to work. I'm still seeing problems in lines with multiple expanded
calls, but perhaps that's a rendering issue.
The code is absolutely ghastly.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rendering is still ugly. Cursor isn't on the right row. But the hard part
is behind us.
This was a stupid mistake in function-body, and it happened because I've
been getting lazy and passing (addr handle) objects when I should be passing
in "constant" addr objects.
I'm not sure why I was so resistant to debugging by print here. I spent
3 days waffling about with this bug.
|
|
|
|
|
| |
Use the fake-screen infrastructure we already have for non-interactive
mode.
|
|
|
|
|
|
| |
We don't have tests yet in the tile prototype, mostly because we don't
yet feel confident about what desired behavior should be. But it's still
helpful to have a non-interactive mode for tracking down segfaults.
|
|
|
|
| |
Fix and cleanup.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Snapshot that requires a check in the Mu compiler.
Currently I don't spill a register if it could possibly be over-written
by a function output within. However, find-in-call-path is a good example
of where this constraint is too lenient and results in unsafe code. The
variable `curr` gets clobbered during loop update by the variable `match?`.
What's the answer? Perhaps we should ban all conditional updates to function
outputs? That'd be dashed inconvenient.
|
| |
|
|
|
|
|
| |
Slowly hoist cursor-word from environment to sandbox. This isn't its final
destination.
|
|
|
|
|
|
| |
Emit a stack of not ints but more complex objects containing the int payload.
Function calls again segfaulting.
|
| |
|
|
|
|
| |
Extremely hacky initial stab at a 1-line editor.
|
|
|
|
| |
Roll back all buffering of Stdout.
|
|
|
|
|
|
|
|
|
| |
tile is already visibly slow (49x212 screen) :/ So programmer needs more
control over performance.
But this may not be the right approach. That extra flush-stdout in tui.mu
suggests it's either going to be finicky, or we have to flush on every
attribute change. And going through a buffered-file may be slower. May.
|
| |
|