about summary refs log tree commit diff stats
path: root/045closure_name.cc
Commit message (Expand)AuthorAgeFilesLines
* 4274Kartik Agaram2018-06-251-1/+1
* 4272 - type-check variables in non-local spacesKartik Agaram2018-06-251-2/+4
* 4271 - bugfix unrelated to alloc-idsKartik Agaram2018-06-251-0/+13
* 4266 - space for alloc-id in heap allocationsKartik Agaram2018-06-241-7/+7
* 4258 - undo 4257Kartik Agaram2018-06-151-4/+4
* 4257 - abortive attempt at safe fat pointersKartik Agaram2018-06-151-4/+4
* 4106Kartik K. Agaram2017-11-031-1/+1
* 4099Kartik K. Agaram2017-11-011-2/+2
* 4089Kartik K. Agaram2017-10-221-1/+4
* 3522Kartik K. Agaram2016-10-191-3/+3
* 3520Kartik K. Agaram2016-10-181-1/+0
* 3394Kartik K. Agaram2016-09-171-13/+13
* 3393Kartik K. Agaram2016-09-171-1/+1
* 3390Kartik K. Agaram2016-09-171-14/+14
* 3389Kartik K. Agaram2016-09-171-16/+16
* 3380Kartik K. Agaram2016-09-171-12/+12
* 3309Kartik K. Agaram2016-09-091-11/+4
* 3108Kartik K. Agaram2016-07-101-3/+0
* 2990Kartik K. Agaram2016-05-201-11/+11
* 2974Kartik K. Agaram2016-05-181-0/+20
* 2864 - replace all address:shared with just addressKartik K. Agaram2016-04-241-14/+12
* 2773 - switch to 'int'Kartik K. Agaram2016-03-131-10/+10
* 2735 - define recipes using 'def'Kartik K. Agaram2016-03-081-6/+6
* 2718 - stop crashing on unknown spaceKartik K. Agaram2016-02-261-2/+12
* 2712Kartik K. Agaram2016-02-261-13/+13
* 2707Kartik K. Agaram2016-02-251-1/+0
* 2701 - turn some warnings into errorsKartik K. Agaram2016-02-251-1/+1
* 2680Kartik K. Agaram2016-02-201-5/+5
* 2685Kartik K. Agaram2016-02-191-3/+3
* 2631Kartik K. Agaram2016-02-061-0/+4
* 2576 - distinguish allocated addresses from othersKartik K. Agaram2016-01-191-12/+14
* 2571Kartik K. Agaram2016-01-191-0/+145
* 1768Kartik K. Agaram2015-07-131-133/+0
* 1702 - experiment: start using 'ordinal' in namesKartik K. Agaram2015-07-041-14/+14
* 1599Kartik K. Agaram2015-06-191-6/+6
* 1585Kartik K. Agaram2015-06-171-1/+1
* 1458Kartik K. Agaram2015-05-251-1/+1
* 1391 - avoid unsigned integersKartik K. Agaram2015-05-171-14/+14
* 1387Kartik K. Agaram2015-05-161-1/+1
* 1363 - rename 'integer' to 'number'Kartik K. Agaram2015-05-131-7/+7
* 1343Kartik K. Agaram2015-05-111-1/+1
* 1299 - stop using [] in any vectorKartik K. Agaram2015-05-071-1/+1
* 1298 - better ingredient/product handlingKartik K. Agaram2015-05-071-14/+14
* 1276 - make C++ version the defaultKartik K. Agaram2015-05-051-0/+133
< "ingredient 1 is " << instructions[pc].ingredients[1].name; vector<int> arg1 = read_memory(instructions[pc].ingredients[1]); vector<int> result; result.push_back(equal(arg0.begin(), arg0.end(), arg1.begin())); trace("run") << "product 0 is " << result[0]; write_memory(instructions[pc].products[0], result); break; } :(scenario "equal") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 33:literal 3:integer <- equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 0 +mem: storing in location 3 :(scenario "equal2") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 34:literal 3:integer <- equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 34 +run: product 0 is 1 +mem: storing in location 3 :(before "End Globals") const int GREATER_THAN = 14; :(before "End Primitive Recipe Numbers") Recipe_number["greater-than"] = GREATER_THAN; Next_recipe_number++; :(before "End Primitive Recipe Implementations") case GREATER_THAN: { trace("run") << "ingredient 0 is " << instructions[pc].ingredients[0].name; vector<int> arg0 = read_memory(instructions[pc].ingredients[0]); assert(arg0.size() == 1); trace("run") << "ingredient 1 is " << instructions[pc].ingredients[1].name; vector<int> arg1 = read_memory(instructions[pc].ingredients[1]); assert(arg1.size() == 1); vector<int> result; result.push_back(arg0[0] > arg1[0]); trace("run") << "product 0 is " << result[0]; write_memory(instructions[pc].products[0], result); break; } :(scenario "greater_than") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 33:literal 3:integer <- greater-than 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 1 +mem: storing in location 3 :(scenario "greater_than2") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 34:literal 3:integer <- greater-than 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 34 +run: product 0 is 0 +mem: storing in location 3 :(before "End Globals") const int LESSER_THAN = 15; :(before "End Primitive Recipe Numbers") Recipe_number["lesser-than"] = LESSER_THAN; Next_recipe_number++; :(before "End Primitive Recipe Implementations") case LESSER_THAN: { trace("run") << "ingredient 0 is " << instructions[pc].ingredients[0].name; vector<int> arg0 = read_memory(instructions[pc].ingredients[0]); assert(arg0.size() == 1); trace("run") << "ingredient 1 is " << instructions[pc].ingredients[1].name; vector<int> arg1 = read_memory(instructions[pc].ingredients[1]); assert(arg1.size() == 1); vector<int> result; result.push_back(arg0[0] < arg1[0]); trace("run") << "product 0 is " << result[0]; write_memory(instructions[pc].products[0], result); break; } :(scenario "lesser_than") recipe main [ 1:integer <- copy 32:literal 2:integer <- copy 33:literal 3:integer <- lesser-than 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 32 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 1 +mem: storing in location 3 :(scenario "lesser_than2") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 33:literal 3:integer <- lesser-than 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 0 +mem: storing in location 3 :(before "End Globals") const int GREATER_OR_EQUAL = 16; :(before "End Primitive Recipe Numbers") Recipe_number["greater-or-equal"] = GREATER_OR_EQUAL; Next_recipe_number++; :(before "End Primitive Recipe Implementations") case GREATER_OR_EQUAL: { trace("run") << "ingredient 0 is " << instructions[pc].ingredients[0].name; vector<int> arg0 = read_memory(instructions[pc].ingredients[0]); assert(arg0.size() == 1); trace("run") << "ingredient 1 is " << instructions[pc].ingredients[1].name; vector<int> arg1 = read_memory(instructions[pc].ingredients[1]); assert(arg1.size() == 1); vector<int> result; result.push_back(arg0[0] >= arg1[0]); trace("run") << "product 0 is " << result[0]; write_memory(instructions[pc].products[0], result); break; } :(scenario "greater_or_equal") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 33:literal 3:integer <- greater-or-equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 1 +mem: storing in location 3 :(scenario "greater_or_equal2") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 34:literal 3:integer <- greater-or-equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 34 +run: product 0 is 1 +mem: storing in location 3 :(scenario "greater_or_equal3") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 35:literal 3:integer <- greater-or-equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 35 +run: product 0 is 0 +mem: storing in location 3 :(before "End Globals") const int LESSER_OR_EQUAL = 17; :(before "End Primitive Recipe Numbers") Recipe_number["lesser-or-equal"] = LESSER_OR_EQUAL; Next_recipe_number++; :(before "End Primitive Recipe Implementations") case LESSER_OR_EQUAL: { trace("run") << "ingredient 0 is " << instructions[pc].ingredients[0].name; vector<int> arg0 = read_memory(instructions[pc].ingredients[0]); assert(arg0.size() == 1); trace("run") << "ingredient 1 is " << instructions[pc].ingredients[1].name; vector<int> arg1 = read_memory(instructions[pc].ingredients[1]); assert(arg1.size() == 1); vector<int> result; result.push_back(arg0[0] <= arg1[0]); trace("run") << "product 0 is " << result[0]; write_memory(instructions[pc].products[0], result); break; } :(scenario "lesser_or_equal") recipe main [ 1:integer <- copy 32:literal 2:integer <- copy 33:literal 3:integer <- lesser-or-equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 32 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 1 +mem: storing in location 3 :(scenario "lesser_or_equal2") recipe main [ 1:integer <- copy 33:literal 2:integer <- copy 33:literal 3:integer <- lesser-or-equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 33 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 1 +mem: storing in location 3 :(scenario "lesser_or_equal3") recipe main [ 1:integer <- copy 34:literal 2:integer <- copy 33:literal 3:integer <- lesser-or-equal 1:integer, 2:integer ] +run: instruction 2 +run: ingredient 0 is 1 +mem: location 1 is 34 +run: ingredient 1 is 2 +mem: location 2 is 33 +run: product 0 is 0 +mem: storing in location 3