about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 2610Kartik K. Agaram2015-11-291-5/+5
|
* 2609 - run $browse-trace on old runsKartik K. Agaram2015-11-293-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is long overdue. Let's see if it gets me using traces more during debugging. Though perhaps I'm being too persnickety. These are all valid ways to debug programs: a) print directly to screen b) log, and then dump the log on some condition c) temporarily print selected log statements directly to screen d) log, and then browse the log using the zoom interface For a) to work we need to normally keep prints empty. For b) to work the log needs to be of some manageable size, where it's tractable to find interesting features. d) is the ultimate weapon, but might be slow because it's interactive c) seems like the ugly case. Should I be trying to avoid it altogether? Let's try, and see if d) is useable when we want to do c). For simple cases it's still totally acceptable to just print. If the prints get too complex to parse, then we move to the zoom interface. Hopefully it'll be easier because we have to spend less time getting the prints just so. (Independent of all this, often the best way to make a log manageable so any of the approaches works: distill the bad behavior down to a test. But that leads to chicken-and-egg situations where you need to first understand before you can distill.)
* 2608 - improve errors when static dispatch failsKartik K. Agaram2015-11-293-2/+53
|
* 2607 - resolve some edge cases in static dispatchKartik K. Agaram2015-11-295-16/+101
|
* 2606 - handle cycles inside stashKartik K. Agaram2015-11-294-9/+52
| | | | | | | | | The idea is that to-text-line should truncate blindly past some threshold, even if to-text isn't smart enough to avoid infinite loops. Maybe I should define a 'truncating buffer' which stops once it fills up. That would be an easy way to eliminate all infinite loops in to-text-line.
* 2505 - test_all_layers now passesKartik K. Agaram2015-11-291-15/+2
| | | | | | Drop the display-list test because it's subsumed by the stash-on-list test right below, which doesn't require the notion of a screen from later layers.
* 2504 - support to-text in 'stash'Kartik K. Agaram2015-11-284-8/+72
|
* 2503Kartik K. Agaram2015-11-281-1/+0
|
* 2502Kartik K. Agaram2015-11-283-7/+9
|
* 2501Kartik K. Agaram2015-11-284-8/+7
|
* 2500Kartik K. Agaram2015-11-281-2/+0
|
* 2499 - done reorganizing transformsKartik K. Agaram2015-11-283-7/+9
|
* 2498Kartik K. Agaram2015-11-282-4/+8
| | | | | | Just one tangle of dependencies left in the transforms. Untangling it will require one more region: for transforms modifying types (inside instructions).
* 2497Kartik K. Agaram2015-11-282-4/+4
|
* 2496Kartik K. Agaram2015-11-282-5/+6
|
* 2495Kartik K. Agaram2015-11-282-3/+5
|
* 2494Kartik K. Agaram2015-11-289-24/+39
| | | | | Some more structure to transforms, and flattening of dependencies between them.
* 2493 - eliminate a couple of dependenciesKartik K. Agaram2015-11-283-5/+5
| | | | | | | In general you only want to specify one transform in terms of (before/after) another if the other direction wouldn't work. Otherwise try to make it work by just pushing transforms at the start/end of the list.
* 2492 - summarize current transformsKartik K. Agaram2015-11-281-0/+23
|
* 2491Kartik K. Agaram2015-11-281-2/+12
|
* 2490Kartik K. Agaram2015-11-281-1/+1
|
* 2489 - another ambiguous specializationKartik K. Agaram2015-11-281-5/+49
|
* 2488 - fix memory leaks from 2484Kartik K. Agaram2015-11-282-2/+0
|
* 2487Kartik K. Agaram2015-11-272-32/+17
| | | | | | | | | | | | | | | Ok, now I'm a little happier about our type checking. Type checking lies in three layers: layer 21: checking types, usually at run-time in the VM or just before layer 57: checking type names layer 59: checking type names It's taken me the process of writing this commit to convince myself that all three layers check mappings for literal values in a consistent manner. Layer 21 uses sizes, and layers 57/59 have whitelists, but either way the goal is that number != character != boolean unless mediated through a literal.
* 2486Kartik K. Agaram2015-11-272-15/+14
| | | | | More cleanup. Haven't bothered to figure out why the trace for specialize_with_literal_4 is repeatedly perturbed.
* 2485Kartik K. Agaram2015-11-271-2/+0
|
* 2484Kartik K. Agaram2015-11-274-38/+23
| | | | | Eliminate one of several hacky type-check helpers; they've been proliferating lately.
* 2483 - to-text can now handle listsKartik K. Agaram2015-11-277-19/+148
| | | | | 'append' also implicitly calls 'to-text' unless there's a better variant.
* 2482 - better choice between valid variantsKartik K. Agaram2015-11-273-5/+38
| | | | Literal '0' ingredients should map to numbers before addresses.
* 2481Kartik K. Agaram2015-11-271-2/+1
|
* 2480Kartik K. Agaram2015-11-272-6/+13
| | | | | | | A long-standing question resolved: why specializations sometimes skipped some names. Turns out cleanup is incomplete if Recipe_ordinal and Recipe aren't exactly lined up with each other, and the early exit in new_variant was breaking that constraint.
* 2479 - bugfix: recursive shape-shifting recipesKartik K. Agaram2015-11-271-6/+24
|
* 2478Kartik K. Agaram2015-11-272-4/+4
|
* 2477Kartik K. Agaram2015-11-274-10/+9
|
* 2476Kartik K. Agaram2015-11-274-13/+13
|
* 2475 - allow addresses to be converted to numbersKartik K. Agaram2015-11-275-13/+32
| | | | It's just the other direction we want to avoid.
* 2474 - overload 'copy' and 'equal' for textKartik K. Agaram2015-11-224-18/+16
| | | | 2473 was the final bugfix holding this back.
* 2473 - bad idea to use /raw with multiple intentionsKartik K. Agaram2015-11-2210-30/+34
| | | | | /raw is to express absolute addresses /unsafe is to sidestep type-checking in test setup
* 2472Kartik K. Agaram2015-11-222-14/+0
|
* 2471Kartik K. Agaram2015-11-222-8/+0
|
* 2470 - allow overloading primitive operationsKartik K. Agaram2015-11-221-3/+28
| | | | | | | | | This turned out to be surprisingly easy: rather than try to specify the types expected by each operation, just have primitive instructions go through any other variants and only remain unnamed if no variants pass. All I had to do was stop using contains_key() anywhere on Recipe_variants, so that I could use get_or_insert() rather than get().
* 2469 - start logging all warnings againKartik K. Agaram2015-11-211-4/+2
| | | | | | | | | Since we switched to end() for terminating trace lines, there's a lot less reason to avoid this. We don't nest trace statements either anymore. I'd like to not hide warnings and still be able to make assertions on their absence so that printed warnings also express as failed tests.
* 2468 - overload print-character as just 'print'Kartik K. Agaram2015-11-2119-103/+103
|
* 2467 - rename 'string' to 'text' everywhereKartik K. Agaram2015-11-2118-152/+153
| | | | | | | | Not entirely happy with this. Maybe we'll find a better name. But at least it's an improvement. One part I *am* happy with is renaming string-replace to replace, string-append to append, etc. Overdue, now that we have static dispatch.
* 2466 - eliminate ':string' from scenariosKartik K. Agaram2015-11-215-37/+40
|
* 2465 - improve an error messageKartik K. Agaram2015-11-201-4/+4
| | | | Thanks Caleb Couch.
* 2464: edit/: update errors in shape-shifting recipesKartik K. Agaram2015-11-193-2/+81
| | | | | Requires carefully deleting specializations so that they can be reintroduced each time.
* 2463 - make edit/ robust to errors in client codeKartik K. Agaram2015-11-192-33/+38
|
* 2461Kartik K. Agaram2015-11-191-4/+2
|
* 2460 - headers for remaining recipesKartik K. Agaram2015-11-189-387/+283
|