1. Pypy
  2. Untitled project
  3. pypy

Source

pypy / pypy / objspace / std / smalllongobject.py

Author Commit Message Date Builds
Armin Rigo
Add the requirement that W_XxxObject classes that are different implementations of the same app-level type should inherit from a common base class more precise than W_Object. This is actually easy, just by adding some empty W_AbstractXxxObject classes here and there. This property allows us to build the _interplevel_classes for-speed-only dictionary in a way that doesn't depend on dictionary order. Previously it would randomly pick a class if there are several ones, which might be (if you're unluckly) not the most commonly used one.
Maciej Fijalkowski
remove int_w, bigint_w and uint_w as multimethods
Armin Rigo
Change the definition of "_immutable_ = True" to be explicitly required on all subclasses when we put it on a class. Previously, we got this effect implicitly. However, it made an obscure bug that took me three days to locate: app-level subclasses of the immutable built-in types, like 'long', have their fields flagged as immutable too, including the 'storage' from the mapdict, which is nonsense.
Armin Rigo
Write this logic in RPython. Using rffi.llexternal() doesn't work because the called C function can set an OverflowError.
Branches
jit-longlong
Armin Rigo
Translation fixes.
Branches
jit-longlong
Armin Rigo
Code explicitly the checks for overflow, now that the LLONG_xxx_OVF variant of the operations is no longer supported. Doing so helps the JIT too, at least so far.
Branches
jit-longlong
Armin Rigo
Mostly finish smalllongobject.py. Add support for translating operations like 'llong_add_ovf'.
Branches
smalllong
Armin Rigo
In-progress.
Branches
smalllong