Author: Anton Gulenko <[email protected]>
Branch: storage
Changeset: r722:55415cc1047d
Date: 2014-03-29 00:01 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/55415cc1047d/
Log: Changed sentinel-value of Float-storage to a regular float
(max_float). The longlong/lltype cast operations take too long.
diff --git a/spyvm/shadow.py b/spyvm/shadow.py
--- a/spyvm/shadow.py
+++ b/spyvm/shadow.py
@@ -1,4 +1,4 @@
-import weakref
+import sys, weakref
from spyvm import model, constants, error, wrapper, version
from spyvm.version import elidable_for_version, constant_for_version
from rpython.tool.pairtype import extendabletype
@@ -141,9 +141,7 @@
class FloatOrNilStorageShadow(AbstractStorageShadow):
repr_classname = "FloatOrNilStorageShadow"
- # TODO -- use another value... something like max_float?
- nil_value = runpack("d", "\x10\x00\x00\x00\x00\x00\xf8\x7f")
- nil_value_longlong = longlong2float.float2longlong(nil_value)
+ nil_value = sys.float_info.max
wrapper_class = model.W_Float
import_from_mixin(AbstractValueOrNilStorageMixin)
@@ -152,7 +150,7 @@
return _value_or_nil_can_handle(FloatOrNilStorageShadow, space, w_val)
@staticmethod
def is_nil_value(val):
- return longlong2float.float2longlong(val) ==
FloatOrNilStorageShadow.nil_value_longlong
+ return val == FloatOrNilStorageShadow.nil_value
@staticmethod
def wrap(space, val):
return space.wrap_float(val)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit