Source

pypy / pypy / translator / jvm / typesystem.py

Author Commit Message Labels Comments Date
wlav
o) merge default into branch o) fix on my side the problems due to changes in array
Branches
reflex-support
wlav
rollback (translation fails in array)
Branches
reflex-support
Alex Gaynor
Added JVM support.
Branches
float-bytes-2
Alex Gaynor
properly map the new llop to the right JVM method.
Michał Bendowski
Implemented float2longlong and longlong2float for the JVM. Also removed the oo_primitive for pypy__rotateLeft - it's not needed on 32 bit architecture (and JVM backend doesn't support 64 bit anyway).
Branches
jvm-improvements
Antonio Cuni
fix the signature of the oo{box,unbox}_int java methods
Branches
ootype-rerased
Daniel Roberts
Added microinstructions for boxing and unboxing integers
Branches
ootype-rerased
Antonio Cuni
int_between for the jvm backend
Antonio Cuni
implement cast_uint_to_longlong for the jvm
Antonio Cuni
cast_ulonglong_to_float for the jvm backend
Antonio Cuni
cast_float_to_ulonglong for the jvm backend
Antonio Cuni
add support for SHORT type, and for force_cast
nikomatsakis
fix two bugs in JVM backend: * llshl takes a long, not an int, for # of bits to shift * rejigger exc. handling so we translate from CLI exceptions in the catch block rather than at the site they are thrown. This allows us to handle StackOverflow and (in theory) OutOfMemory exceptions.
Antonio Cuni
(antocuni, arigo) fix a couple a failing tests
nikomatsakis
fix math.modf in the jvm: 1. the code in PyPy.java was slightly wrong 2. the static signature cannot reference generated objects, so when they are returned we must use jObject instead and insert a downcast 3. add a test to oosupport/builtin for modf
nikomatsakis
Refactor so that we can support multiple interpreters simultaneously. Instead of storing the interlink interface in a static field of PyPy.java, we now create a new instance of PyPy.java which has a custom interlink, and then dispatch to that as needed. This means that different PyPy interpters can each have their own PyPy instance customized to their specific interlink class.
nikomatsakis
1. implement os.dup 2. change from using custom structs (RecordStringString) to adding methods in Interlink to create records with particular field types. This avoids the need to implement equals(), toString(), hash() and all that other pain and makes fewer special cases.
nikomatsakis
fix a few of the builtin functions
nikomatsakis
implement new-style weakrefs in the jvm
Antonio Cuni
move ll_os_* to their own class. Wrap std{out,in,err} into file descriptors.
nikomatsakis
make os.stat work, and correct the implementation of getcwdf
nikomatsakis
modify jvm constant generation so that it spreads the constants out over several classes, rather than grouping all of the static fields together into one class. This avoids overflowing the constant pool when there are too many constants, but doens't fix test_manyconstant, which has a single list with 7500 elements, and simply generates too much code.
Antonio Cuni
these are needed for pypy-jvm to compile
Maciej Fijalkowski
A relatively easy and quick hack to have RPython-level bindings for Jvm. Looks like working.
nikomatsakis
implement weak refs for genjvm; refactor test_objectmodel from cli into oosupport
nikomatsakis
Remove the exception wrapper system completely. We now throw the exceptions natively; any attempt to throw an RPython object that does not descend from Exception will yield a ClassCastException
nikomatsakis
interim check-in: treat the Object RPython class very specially, so that it is generated as an interface with two implements, one of which descends from Object and one of which descends from Throwable. RPython exceptions use the latter, which should enable them to be directly thrown by "throw" statements in the JVM. Note: exception throwing, for now, still uses the old mechanism. Hat tip for the idea to pedronis.
nikomatsakis
Implement custom dicts (rdicts) in the JVM backend. All tests in objectmodel now pass. The technique is to find all functions which could be used as hashCode() or equals() functions, and to make any static functions that are defined implement either pypy.Equals or pypy.HashCode, then allowing them to be passed to pypy.CustomDict.
nikomatsakis
Add the code needed for java code to throw exceptions. We generate an instance of the Interlink interface which has the various methods required, and assign it to a static variable in the PyPy class. This has the downside of only allowing one concurrent PyPy interpreter: we could use thread-local data instead (or pass the object as a parameter, but that would be more of a pain).
Antonio Cuni
(antocuni, niko) Add jvm backend to translate.py. Fix bugs in the standalone entrypoint of jvm backend.
  1. Prev
  2. 1
  3. 2
  4. Next