about summary refs log tree commit diff stats
path: root/043space.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-05-12 18:08:47 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-05-12 18:08:47 -0700
commitfca0ebbe0cc01d37e47822d8a62ea062a845f33d (patch)
tree557ef7d0bd5d3ddc98ab47cf0273c99cc4a09630 /043space.cc
parent98f3a94201df11501d417ac2e75a756ab54ac873 (diff)
downloadmu-fca0ebbe0cc01d37e47822d8a62ea062a845f33d.tar.gz
1360 - store doubles in memory
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.
Diffstat (limited to '043space.cc')
-rw-r--r--043space.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/043space.cc b/043space.cc
index b0ee7f85..2a8ff4fc 100644
--- a/043space.cc
+++ b/043space.cc
@@ -107,7 +107,7 @@ index_t address(index_t offset, index_t base) {
   return base+1 + offset;
 }
 
-:(after "void write_memory(reagent x, vector<long long int> data)")
+:(after "void write_memory(reagent x, vector<double> data)")
   if (x.name == "default-space") {
     assert(data.size() == 1);
     Current_routine->calls.top().default_space = data.at(0);
@@ -122,9 +122,9 @@ recipe main [
 ]
 +mem: storing 10 in location 1
 
-:(after "vector<long long int> read_memory(reagent x)")
+:(after "vector<double> read_memory(reagent x)")
   if (x.name == "default-space") {
-    vector<long long int> result;
+    vector<double> result;
     result.push_back(Current_routine->calls.top().default_space);
     return result;
   }