Rune Serialize - Stabilization, Fix boolean casts and unary operator(s)
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 8 Apr 2018 18:49:46 +0000 (11:49 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 8 Apr 2018 18:49:46 +0000 (11:49 -0700)
commit9df809a6cc2131e4c54dadf88d596ff3b016cdae
tree8f832b5f141dafc4612a58ee13026bcd860db701
parenta2dd4055a5b0aa61f257511e19ec36f977a69bb3
Rune Serialize - Stabilization, Fix boolean casts and unary operator(s)

* Stabilize the interpreter, don't mistreat data->istmp, don't mistreat
  data->storage to fake-out data->istmp operation.

* Allow the resolver to handle scope inheritance.

* Fix default locking modes for intent.

* Get rid of sanity checks against d->d_Storage (allow the resolver to
  have final say on d_Storage mechanics).

* Fix Run64 execution for Floating -> Bool casts.  The floating exp
  was being executed as a Run64 function when it is not compatible with
  int64_t.

* Fix Run64 execution for !exp.  This unary operator returns a boolean,
  so properly return a boolean.  In addition, the rhs might not be
  Run64 compatible so execute normally if the rhs is Floating.

* Fixes tests/float.d output for ! tests.
13 files changed:
libgen/context2.h
libgen/defs.h
libgen/gen_emit.c
libgen/gen_exp.c
libgen/gen_info.c
libgen/gen_refstor.c
libgen/run_cast.c
libgen/run_exp.c
libgen/run_oper.c
libgen/run_refstor.c
librune/resolve.c
tests/float.d
tests/heap.d