| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Long-overdue reorganization to support general 'dilated' reagents up
front. This also allows me to move tests that are really about unrelated
layers out of layers dealing with parsing.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
More reorganization in preparation for implementing recursive abandon().
Refcounts are getting incredibly hairy. I need to juggle containers
containing other containers, and containers *pointing* to other
containers. For a while I considered getting rid of address_element_info
entirely and just going by types for every single
update_refcount. But that's definitely more work, and it's unclear that
things will be cleaner/shorter/simpler. I haven't measured the speedup,
but it seems worth optimizing every pointer copy to make sure we aren't
manipulating types at runtime.
The key insight now is a) to continue to compute information about
nested containers at load time, because that's the common case when
updating refcounts, but b) to compute information about *pointed* values
at run-time, because that's the uncommon case.
As a result, we're going to cheat in the interpreter and use type
information at runtime just for abandon(), just because the
corresponding task when we get to a compiler will be radically
different. It will still be tractable, though.
|
| |
|
| |
|
|
|
|
|
|
| |
This is hopefully quite thorough. I handle nested containers, as well as
exclusive containers that might contain addresses only when the tag has
a specific value.
|
| |
|
|
|
|
|
|
| |
To support exclusive containers a recursive answer will be easier to
reuse than the current iterative one. First step: figure out the precise
boundary and interface of the recursive function.
|
| |
|
| |
|
|
|
|
| |
First genuine Travis CI failure fixed! May there be many more.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Update refcounts of address elements when copying containers.
Still lots to do; see todo list at end of 036refcount.cc.
|
|
|
|
| |
The actual fix is in the layer rewriting literal strings.
|
|
|
|
|
|
| |
In the process I've also simplified the sandbox/ app. Since it's
impossible for sandbox editors to span multiple pages, we can drop all
scroll support altogether.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I kept suspecting Valgrind and kept finding that Valgrind wasn't
actually slowing down Travis CI, but I'd been running it like this:
valgrind ./mu test edit
Which wasn't actually running the underlying ./mu_bin binary atop
Valgrind.
Ok, so Mu is just super slow running any non-trivial apps atop Valgrind.
That's ok, we've rarely needed an app to flush out memory leaks in Mu.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reorganize build system to minimize duplication while handling 3
scenarios:
1. Locally running tests with `mu test`
2. Locally running tests until some layer with `build_and_test_until`
3. Running on Linux with `test_layers`
4. Running on Travis CI with multiple sharded calls to `test_layers`
One thing we drop at this point is support for OSX in test_layers. We
don't need it now that we have Travis CI working.
|
|
|
|
| |
More tweaking; edit/ still taking too long to test on Travis CI.
|
|
|
|
|
|
|
|
|
| |
2943 almost worked; just a couple of tweaks:
a) Divide up the work a little more finely since we still timed out on
some jobs.
b) Use clang and valgrind when running apps as well.
|
|
|
|
|
| |
I misunderstood what constitutes a job in Travis CI. Let's try this
again..
|
|
|
|
|
| |
I'm already using grep and perl, bash is no worse, and it's *much* nicer
to work in than plain Bourne sh.
|
|
|
|
| |
It easily exceeded the 50-minute timeout.
|
| |
|
| |
|
|
|
|
| |
https://travis-ci.org/akkartik/mu
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Since I switched to a Mac laptop (commit 2725) I've been lax in running
test_all_layers because I have to ssh into a server and whatnot. I
should just get CI setup somewhere..
|
|
|
|
| |
Can't believe I didn't run tests after 2932.
|
|
|
|
|
|
|
| |
More consistent labeling of waypoints. Use types only when you need to
distinguish between function overloadings. Otherwise just use variable
names unless it's truly not apparent what they are (like that the result
is a recipe in "End Rewrite Instruction").
|
| |
|
| |
|
|
|
|
|
|
| |
Thanks Caleb for finding this. We'd been using sandboxes for so long, I
hadn't tried a null/0 screen/console in a while and somewhere down the
road Mu stopped matching 0 against concrete addresses.
|
|
|
|
|
| |
This had been broken ever since 2854, because we can't write tests for
restore-snapshots at the moment.
|
| |
|
|
|
|
| |
Typo introduced in 2854.
|
|
|
|
| |
Thanks Caleb Couch for showing the need for this check.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
A better primitive: manage refcounts for an assignment without actually
doing the assignment itself. This way we can add refcounts as a new,
independent bit of bookkeeping without littering early returns and
duplicate code paths.
(OCD: commit number.)
|