about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 2719 - improvements to genericsKartik K. Agaram2016-02-281-17/+65
|
* 2718 - stop crashing on unknown spaceKartik K. Agaram2016-02-263-4/+29
| | | | | I'm going to stop wasting precious first-line characters on 'bugfix:'. It's going to be all bugfixes for a while I think.
* 2717 - bugfix for dilated reagentsKartik K. Agaram2016-02-262-0/+15
| | | | Make sure static arrays can take compound types.
* 2716 - more holes in immutability checksKartik K. Agaram2016-02-264-13/+104
| | | | | We're still not done. Layer 60 doesn't yet handle variables in surrounding spaces. There's probably other issues..
* 2715 - bugfix: directly modifying ingredientsKartik K. Agaram2016-02-261-0/+24
|
* 2714 - apply 2604 to sandbox/Kartik K. Agaram2016-02-261-1/+1
|
* 2713 - require booleans for boolean operationsKartik K. Agaram2016-02-264-5/+70
| | | | | Thanks Ella Couch for finding this bug. It's helped me find errors in mu's code itself.
* 2712Kartik K. Agaram2016-02-2646-330/+330
|
* 2711 - permit boolean<-number conversionsKartik K. Agaram2016-02-253-9/+18
| | | | | | | | | | | I might change my mind on this, but it's worth a try after watching Ella run up against it today. I got her to build the recipe 'odd?', but then it failed to run because she couldn't convert a numeric remainder to a number without a conditional (which I haven't taught her yet). For now I don't change the value in the boolean, so booleans can store arbitrary bit patterns like in C. We just say that 0 is false and anything else is true. I *think* that doesn't break the type system..
* 2710Kartik K. Agaram2016-02-2528-113/+15
|
* 2709Kartik K. Agaram2016-02-2515-38/+1
| | | | | Only Hide_errors when strictly necessary. In other places let test failures directly show the unexpected error.
* 2708 - update map of transform orderingKartik K. Agaram2016-02-251-6/+10
|
* 2707Kartik K. Agaram2016-02-2519-63/+3
|
* 2706 - update htmlKartik K. Agaram2016-02-2560-1173/+3050
|
* 2705 - eradicate 'warning' from appsKartik K. Agaram2016-02-252-101/+101
|
* 2704 - eradicate all mention of warnings from coreKartik K. Agaram2016-02-259-35/+24
|
* 2703Kartik K. Agaram2016-02-257-21/+19
|
* 2702Kartik K. Agaram2016-02-254-36/+35
|
* 2701 - turn some warnings into errorsKartik K. Agaram2016-02-257-37/+37
| | | | | | | I really have only one warning left: when somebody redefines a function. I think I'm going to just turn that into an error as well and drop the notion of warnings altogether. Anytime we find something wrong we stop running the program. This is a place where hygiene is justified.
* 2700 - fail tests on unexpected errors or warningsKartik K. Agaram2016-02-253-4/+21
|
* 2699Kartik K. Agaram2016-02-241-6/+6
|
* 2698Kartik K. Agaram2016-02-241-1/+36
|
* 2697Kartik K. Agaram2016-02-242-6/+12
|
* 2696 - start work on hash 'table' data structureKartik K. Agaram2016-02-242-4/+62
| | | | | | Very cool that I thought I didn't support type ingredients in arbitrary positions in container definitions, but I really did. I just didn't have a test for it, and now I do.
* 2695 - todo for recipe variablesKartik K. Agaram2016-02-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Basically I need to make these tests work: - Test 1: specializing while saving shape-shifting recipe literal recipe f a:address:shared:_elem -> b:address:shared:_elem [ local-scope load-ingredients reply a ] recipe main [ local-scope {x: (recipe (address shared number) -> (address shared number))} <- copy f y:address:shared:number <- new number:type *y <- copy 34 z:address:shared:number <- call x, y $print *z, 10/newline ] - Test 2: passing recipe literal to higher-order recipe recipe g x:address:shared:number, {h: (recipe (address shared number) -> (address shared number))} -> y:address:shared:number [ local-scope load-ingredients y <- call f, x ] recipe main [ local-scope x:address:shared:number <- new number:type *x <- copy 34 y:address:shared:number <- g x, f $print *y, 10/newline ]
* 2694Kartik K. Agaram2016-02-231-1/+1
|
* 2693Kartik K. Agaram2016-02-231-1/+1
| | | | | | I noticed while teaching Ella that when mu encountered a missing recipe it failed to find *any* recipes after that point, leading to a lot of spurious errors. Now fixed.
* 2692 - all memory leaks fixedKartik K. Agaram2016-02-231-1/+3
| | | | | | | | | | To find this I spent some time trying to diagnose when it happened but there was no seeming pattern. I'd ended up with a small single-file .cc and single-file .mu that reproduced one memory leak. Eventually I tried deleting all type_tree and string_tree from it, and lo the leaks vanished. I retried on all of edit (just loading), and the leaks remained gone. At that point I switched tack and started looking at all the core methods of these classes.
* 2691Kartik K. Agaram2016-02-231-2/+0
|
* 2690 - one more memory leakKartik K. Agaram2016-02-221-2/+2
| | | | | | | This is the easy one. The remaining ones are like phantoms popping up and dying at random. One thing I know is that they all have to do with tangling. Always implicated is the line in the tangle layer where instructions are loaded and inserted into After_fragments.
* 2689 - fix a memory leakKartik K. Agaram2016-02-221-1/+1
| | | | | | | That same line that caused me so much grief in 2681! I just ran edit/ through valgrind for the first time, and found more memory leaks breeding while I wasn't looking. That's next.
* 2688Kartik K. Agaram2016-02-223-12/+1
|
* 2687Kartik K. Agaram2016-02-221-1/+1
|
* 2686Kartik K. Agaram2016-02-221-12001/+0
|
* 2685Kartik K. Agaram2016-02-225-7/+6
|
* 2684Kartik K. Agaram2016-02-221-1/+1
|
* 2683Kartik K. Agaram2016-02-212-7/+0
| | | | | | Ok, we don't need that check after all, because the type_ingredient_names.empty() check earlier in the layer prevents it from ever triggering.
* 2682Kartik K. Agaram2016-02-211-3/+3
|
* 2681 - drop reagent types from reagent propertiesKartik K. Agaram2016-02-2124-375/+12376
| | | | | | | | | | | | | | | | | All my attempts at staging this change failed with this humongous commit that took all day and involved debugging three monstrous bugs. Two of the bugs had to do with forgetting to check the type name in the implementation of shape-shifting recipes. Bug #2 in particular would cause core tests in layer 59 to fail -- only when I loaded up edit/! It got me to just hack directly on mu.cc until I figured out the cause (snapshot saved in mu.cc.modified). The problem turned out to be that I accidentally saved a type ingredient in the Type table during specialization. Now I know that that can be very bad. I've checked the traces for any stray type numbers (rather than names). I also found what might be a bug from last November (labeled TODO), but we'll verify after this commit.
* 2680Kartik K. Agaram2016-02-207-32/+32
| | | | Delete all the [] that has crept in since 2377 in November.
* 2679Kartik K. Agaram2016-02-202-22/+22
|
* 2678Kartik K. Agaram2016-02-2011-90/+92
| | | | | | | Start using type names from the type tree rather than the property tree in most places. Hopefully the only occurrences of 'properties.at(0).second' left are ones where we're managing it. Next we can stop writing to it.
* 2677Kartik K. Agaram2016-02-2010-17/+19
| | | | Include type names in the type tree. Though we aren't using them yet.
* 2676 - start coalescing type and type-name treesKartik K. Agaram2016-02-201-4/+4
|
* 2675 - undo 2674Kartik K. Agaram2016-02-201-21/+19
|
* 2674 - tried to follow s-exps more closelyKartik K. Agaram2016-02-202-19/+24
| | | | | | | But I realize that this won't actually streamline replace_type_ingredients(), which needs that 'if (curr->left) curr = curr->left' dance for an unrelated reason. So there's no justification for entering into this big refactoring.
* 2673Kartik K. Agaram2016-02-191-1/+2
|
* 2672Kartik K. Agaram2016-02-191-4/+4
|
* 2671 - never use debug_string() in tracesKartik K. Agaram2016-02-1912-61/+41
| | | | It's only for transient debugging.
* 2670 - better names for string conversionsKartik K. Agaram2016-02-194-17/+19
| | | | | | to_string(): relatively stable fields only; for trace() debug_string(): all fields; for debugging inspect(): for a form that can be parsed back later