about summary refs log tree commit diff stats
path: root/037call_reply.cc
Commit message (Collapse)AuthorAgeFilesLines
* 1391 - avoid unsigned integersKartik K. Agaram2015-05-171-4/+4
|
* 1387Kartik K. Agaram2015-05-161-1/+1
|
* 1364 - trace call-stack when switching routinesKartik K. Agaram2015-05-131-1/+1
| | | | Drop the #$%# 'encapsulated' stack ADT.
* 1363 - rename 'integer' to 'number'Kartik K. Agaram2015-05-131-12/+12
| | | | ..now that we support non-integers.
* 1360 - store doubles in memoryKartik K. Agaram2015-05-121-1/+1
| | | | | | | | | | | | | This is a far cleaner way to provide *some* floating-point support. We can only represent signed integers up to 2^51 rather than 2^63. But in exchange we don't have to worry about it elsewhere, and it's probably faster than checking tag bits in every operation. Hmm, yeah, surprised how easy this was. I think I'll give up on the other approach. I still don't have non-integer literals. But we won't bother with those until we need them. `3.14159:literal` seems ugly.
* 1343Kartik K. Agaram2015-05-111-1/+1
|
* 1327 - better error handling in chessboardKartik K. Agaram2015-05-101-0/+42
| | | | | Also a bugfix in break to label, because I noticed the screen wasn't being cleaned up on quit.
* 1301 - back to the chessboardKartik K. Agaram2015-05-071-1/+2
| | | | Still need a nice syntax for managing the routine under test.
* 1299 - stop using [] in any vectorKartik K. Agaram2015-05-071-2/+2
| | | | | | | | | Useful check: $ grep "[^ '\"]\[[^\"]" *.cc \ |perl -pwe 's/\Wargv\[|\WTests\[|\Wframe\[|\WMemory\[|\WName\[|\WSurrounding_space\[|\WRecipe\[|\WType\[|\WRecipe_number\[|\WType_number\[|\WBefore_fragments\[|\WAfter_fragments\[//g' \ |perl -pwe 's/\Wargv\[|\WTests\[|\Wframe\[|\WMemory\[|\WName\[|\WSurrounding_space\[|\WRecipe\[|\WType\[|\WRecipe_number\[|\WType_number\[|\WBefore_fragments\[|\WAfter_fragments\[//g' \ |grep '[^ ]\['
* 1298 - better ingredient/product handlingKartik K. Agaram2015-05-071-24/+20
| | | | | | | | | | | | | | | | | | | All primitives now always write to all their products. If a product is not used that's fine, but if an instruction seems to expect too many products mu will complain. In the process, many primitives can operate on more than two ingredients where it seems intuitive. You can add or divide more than two numbers together, copy or negate multiple corresponding locations, etc. There's one remaining bit of ugliness. Some instructions like get/get-address, index/index-address, wait-for-location, these can unnecessarily load values from memory when they don't need to. Useful vim commands: %s/ingredients\[\([^\]]*\)\]/ingredients.at(\1)/gc %s/products\[\([^\]]*\)\]/products.at(\1)/gc .,$s/\[\(.\)]/.at(\1)/gc
* 1276 - make C++ version the defaultKartik K. Agaram2015-05-051-0/+95
I've tried to update the Readme, but there are at least a couple of issues.