about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 2945Kartik K. Agaram2016-05-082-10/+54
| | | | More tweaking; edit/ still taking too long to test on Travis CI.
* 2944Kartik K. Agaram2016-05-082-5/+17
| | | | | | | | | 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.
* 2943Kartik K. Agaram2016-05-081-4/+8
| | | | | I misunderstood what constitutes a job in Travis CI. Let's try this again..
* 2942 - switch scripts to bashKartik K. Agaram2016-05-083-8/+8
| | | | | I'm already using grep and perl, bash is no worse, and it's *much* nicer to work in than plain Bourne sh.
* 2941 - split Travis CI into multiple jobsKartik K. Agaram2016-05-083-18/+36
| | | | It easily exceeded the 50-minute timeout.
* 2940Kartik K. Agaram2016-05-081-0/+2
|
* 2939Kartik K. Agaram2016-05-081-4/+4
|
* 2938 - ok, let's try CIKartik K. Agaram2016-05-081-0/+21
| | | | https://travis-ci.org/akkartik/mu
* 2937Kartik K. Agaram2016-05-081-5/+8
|
* 2936Kartik K. Agaram2016-05-071-2/+2
|
* 2935Kartik K. Agaram2016-05-073-6/+6
|
* 2934 - all layers running againKartik K. Agaram2016-05-074-7/+29
| | | | | | 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..
* 2933Kartik K. Agaram2016-05-063-4/+4
| | | | Can't believe I didn't run tests after 2932.
* 2932Kartik K. Agaram2016-05-066-14/+14
| | | | | | | 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").
* 2931 - be explicit about making copiesKartik K. Agaram2016-05-0622-147/+154
|
* 2930Kartik K. Agaram2016-05-051-0/+8
|
* 2929 - fix a bug in static dispatchKartik K. Agaram2016-05-053-23/+84
| | | | | | 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.
* 2928 - fix sandbox restore in edit/ and sandbox/Kartik K. Agaram2016-05-052-6/+14
| | | | | This had been broken ever since 2854, because we can't write tests for restore-snapshots at the moment.
* 2927Kartik K. Agaram2016-05-051-6/+9
|
* 2926Kartik K. Agaram2016-05-051-2/+4
| | | | Typo introduced in 2854.
* 2925Kartik K. Agaram2016-05-051-1/+8
| | | | Thanks Caleb Couch for showing the need for this check.
* 2924Kartik K. Agaram2016-05-051-1/+4
|
* 2923Kartik K. Agaram2016-05-041-3/+0
|
* 2922Kartik K. Agaram2016-05-042-48/+38
| | | | | | | | | 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.)
* 2899Kartik K. Agaram2016-05-041-1/+13
|
* 2898 - start filling in missing refcountsKartik K. Agaram2016-05-037-22/+110
| | | | | | | This commit covers instructions 'put', 'put-index' and 'maybe-convert'. Next up are the harder ones: 'copy' and 'merge'. In these cases there's a non-scalar being copied, and we need to figure out which locations within it need to update their refcount.
* 2897Kartik K. Agaram2016-05-033-0/+0
|
* 2896Kartik K. Agaram2016-05-032-4/+4
|
* 2895Kartik K. Agaram2016-05-031-0/+0
|
* 2894Kartik K. Agaram2016-05-036-689/+697
| | | | | Reorganize the 'address' layer and split it up before we start greatly expanding them to manage refcounts in nested objects.
* 2893Kartik K. Agaram2016-05-037-219/+219
|
* 2892Kartik K. Agaram2016-05-032-1/+6
|
* 2891 - precompute container sizes and offsetsKartik K. Agaram2016-05-028-35/+166
| | | | | | | It's a bit of a trade-off because we need to store copies of container metadata in each reagent (to support shape-shifting containers), and metadata is not lightweight and will get heavier. But it'll become more unambiguously useful when we switch to a compiler.
* 2890Kartik K. Agaram2016-05-022-2/+2
|
* 2889Kartik K. Agaram2016-04-305-30/+28
|
* 2888Kartik K. Agaram2016-04-301-3/+3
|
* 2887Kartik K. Agaram2016-04-301-4/+1
|
* 2886Kartik K. Agaram2016-04-291-3/+1
|
* 2885Kartik K. Agaram2016-04-291-2/+1
|
* 2884Kartik K. Agaram2016-04-281-0/+4
|
* 2883 - another warning in the spirit of 2882Kartik K. Agaram2016-04-281-0/+31
| | | | | | All code to be tangled at a label should be defined between two calls to transform_all(). This property is trivially satisfied if a production run only ever has one call to transform_all().
* 2882 - warn if programmer overuses transform_all()Kartik K. Agaram2016-04-284-21/+68
| | | | | | | | | | | | | | | | | | | | This continues a line of thought sparked in commit 2831. I spent a while trying to avoid calling size_of() at transform-time, but there's no getting around the fact that translating names to addresses requires knowing how much space they need. This raised the question of what happens if the size of a container changes after a recipe using it is already transformed. I could go down the road of trying to detect such situations and redoing work, but that massively goes against the grain of my original design, which assumed that recipes don't get repeatedly transformed. Even though we call transform_all() in every test, in a non-testing run we should be loading all code and calling transform_all() just once to 'freeze-dry' everything. But even if we don't want to support multiple transforms it's worth checking that they don't occur. This commit does so in just one situation. There are likely others.
* 2881 - disallow recipe literals in conditional jumpsKartik K. Agaram2016-04-282-3/+32
| | | | | | | If you accidentally use a recipe name in an ingredient you usually get an error because types don't match. But jumps need to be flexible enough to support both addresses and booleans, so they were accepting recipe literals as well. Now a useful error results.
* 2880Kartik K. Agaram2016-04-275-22/+59
| | | | | | | | | | | Turns out we don't need a primitive to return an empty value of arbitrary type. Just create it on the heap using 'new'. But this uncovered *yet* another bug, sigh. When I specialize generic functions I was running all transforms on the generated functions after specialization completed. But there's one transform that includes code from elsewhere. If such code included type-ingredients -- kaboom. Now fixed and there's a test, so I've got that going for me which is nice.
* 2879 - allow extending shape-shifting containersKartik K. Agaram2016-04-273-8/+61
|
* 2878Kartik K. Agaram2016-04-272-12/+2
|
* 2877Kartik K. Agaram2016-04-271-1/+1
|
* 2876Kartik K. Agaram2016-04-271-1/+1
|
* 2875Kartik K. Agaram2016-04-2710-135/+212
|
* 2874Kartik K. Agaram2016-04-275-37/+37
| | | | | | Be more consistent that 'return' is the name of the instruction, and 'reply' just a synonym. Maybe I should take it out. It wouldn't affect the recipe/ingredient terminology while I teach..