about summary refs log tree commit diff stats
path: root/058shape_shifting_recipe.cc
Commit message (Collapse)AuthorAgeFilesLines
* 2880Kartik K. Agaram2016-04-271-2/+28
| | | | | | | | | | | 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.
* 2864 - replace all address:shared with just addressKartik K. Agaram2016-04-241-29/+29
| | | | | | | Now that we no longer have non-shared addresses, we can just always track refcounts for all addresses. Phew!
* 2857Kartik K. Agaram2016-04-231-2/+1
|
* 2837 - fix up 2836Kartik K. Agaram2016-04-151-2/+22
| | | | | | On reflection I think I'd rather add a duplicate test that's closer to how I discovered the problem, without the masking bug in type-matching that was masking the simpler test in the previous commit.
* 2836 - arcane bug in generic functionsKartik K. Agaram2016-04-151-0/+24
| | | | Thanks Caleb Couch for finding and reporting this.
* 2803Kartik K. Agaram2016-03-211-2/+2
| | | | | Show more thorough information about instructions in the trace, but keep the original form in error messages.
* 2799 - new approach to undoing changes in testsKartik K. Agaram2016-03-201-19/+0
| | | | | | | | As outlined at the end of 2797. This worked out surprisingly well. Now the snapshotting code touches fewer layers, and it's much better behaved, with less need for special-case logic, particularly inside run_interactive(). 30% slower, but should hopefully not cause any more bugs.
* 2798 - experiment: split channels into two endsKartik K. Agaram2016-03-191-1/+14
| | | | | | | | | | This way when you pass one end to a function or routine, you can implicitly give it the right to either read or write the channel, but not both. The cost: code gets more convoluted, names get more convoluted. You can see this in particular in the test for buffer-lines. Let's see how it goes..
* 2791Kartik K. Agaram2016-03-191-14/+3
| | | | | | | Simplify 2790 by simply not computing any type->value inside parse_type_tree. It now only generates names, and it turns out the consumers handle the absence of values anyway. Now parse_type_tree no longer pollutes the Type_ordinal table with type ingredients.
* 2790Kartik K. Agaram2016-03-191-0/+29
| | | | | | | | The issue alluded to in the previous 2789 is now fixed. I'm not happy with my solution, though. I pollute Type_ordinal with type ingredients in parse_type_tree and simply ignore such entries later on. I'd much rather avoid the pollution in the first place, but I'm not sure how to do that..
* 2778 - fix all layersKartik K. Agaram2016-03-141-0/+974