[pypy-dev] Building PyPy with cx_Oracle fails

Leandro Lameiro lameiro at gmail.com
Tue Feb 21 17:16:34 CET 2012


Hi Phillip,

I am not involved in the efforts to produce the RPython version of
cx_Oracle, and have little knowledge of its maturity and compatibility.

That said, I worked on a ctypes-based version of cx_Oracle, specifically
tested with PyPy.
It has a very good percentage of tests passing from the original cx_Oracle
test suite, but it has not been tested in the real-world yet, and its
performance is generally worse than C-based cx_Oracle.

If you are interested, check it out at
https://github.com/lameiro/cx_oracle_on_ctypes

2012/2/21 Phillip Class <phillip.d.class at gmail.com>

> Building PyPy with cx_Oracle fails. I am using Python 2.7 on Ubuntu 64-bit
> with Oracle 11.2. Build command is: python translate.py -Ojit
> targetpypystandalone.py --withmod-oracle.
> Below is the traceback:
>
> [Timer] Timings:
> [Timer] annotate                       --- 1834.3 s
> [Timer] rtype_lltype                   --- 1697.2 s
> [Timer] pyjitpl_lltype                 --- 1216.3 s
> [Timer] ===========================================
> [Timer] Total:                         --- 4747.9 s
> [translation:ERROR] Error:
> [translation:ERROR]  Traceback (most recent call last):
> [translation:ERROR]    File "translate.py", line 309, in main
> [translation:ERROR]     drv.proceed(goals)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/translator/driver.py", line 814, in proceed
> [translation:ERROR]     return self._execute(goals, task_skip =
> self._maybe_skip())
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/translator/tool/taskengine.py", line 116,
> in _execute
> [translation:ERROR]     res = self._do(goal, taskcallable, *args, **kwds)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/translator/driver.py", line 287, in _do
> [translation:ERROR]     res = func()
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/translator/driver.py", line 399, in
> task_pyjitpl_lltype
> [translation:ERROR]     backend_name=self.config.translation.jit_backend,
> inline=True)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/jit/metainterp/warmspot.py", line 48, in
> apply_jit
> [translation:ERROR]     warmrunnerdesc.finish()
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/jit/metainterp/warmspot.py", line 236, in
> finish
> [translation:ERROR]     self.annhelper.finish()
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/rpython/annlowlevel.py", line 240, in finish
> [translation:ERROR]     self.finish_annotate()
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/rpython/annlowlevel.py", line 259, in
> finish_annotate
> [translation:ERROR]     ann.complete_helpers(self.policy)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 180, in
> complete_helpers
> [translation:ERROR]     self.complete()
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 254, in
> complete
> [translation:ERROR]     self.processblock(graph, block)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 452, in
> processblock
> [translation:ERROR]     self.flowin(graph, block)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 512, in
> flowin
> [translation:ERROR]     self.consider_op(block.operations[i])
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 714, in
> consider_op
> [translation:ERROR]     raise_nicer_exception(op, str(graph))
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 711, in
> consider_op
> [translation:ERROR]     resultcell = consider_meth(*argcells)
> [translation:ERROR]    File "<4444-codegen
> /home/pclass/Desktop/pypy/pypy/annotation/annrpython.py:749>", line 3, in
> consider_op_simple_call
> [translation:ERROR]     return arg.simple_call(*args)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/unaryop.py", line 175, in
> simple_call
> [translation:ERROR]     return
> obj.call(getbookkeeper().build_args("simple_call", args_s))
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/unaryop.py", line 706, in call
> [translation:ERROR]     return bookkeeper.pbc_call(pbc, args)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/bookkeeper.py", line 668, in
> pbc_call
> [translation:ERROR]     results.append(desc.pycall(schedule, args,
> s_previous_result, op))
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/description.py", line 976, in
> pycall
> [translation:ERROR]     return self.funcdesc.pycall(schedule, args,
> s_previous_result, op)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/description.py", line 297, in
> pycall
> [translation:ERROR]     result = schedule(graph, inputcells)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/bookkeeper.py", line 664, in
> schedule
> [translation:ERROR]     return self.annotator.recursivecall(graph, whence,
> inputcells)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 395, in
> recursivecall
> [translation:ERROR]     position_key)
> [translation:ERROR]    File
> "/home/pclass/Desktop/pypy/pypy/annotation/annrpython.py", line 235, in
> addpendingblock
> [translation:ERROR]     assert annmodel.unionof(s_oldarg, s_newarg) ==
> s_oldarg
> [translation:ERROR]  AssertionError':
> [translation:ERROR]     .. v2309 = simple_call(v2301, v2302, v2303, v2304,
> v2305, v2306, v2307, v2308)
> [translation:ERROR]     ..
> '(pypy.module.pypyjit.policy:49)PyPyJitIface._compile_hook'
> [translation:ERROR] Processing block:
> [translation:ERROR]  block at 226 is a <class
> 'pypy.objspace.flow.flowcontext.SpamBlock'>
> [translation:ERROR]  in
> (pypy.module.pypyjit.policy:49)PyPyJitIface._compile_hook
> [translation:ERROR]  containing the following operations:
> [translation:ERROR]        v2309 = simple_call(v2301, v2302, v2303, v2304,
> v2305, v2306, v2307, v2308)
> [translation:ERROR]  --end--
> [translation] start debugger...
> >
> /home/pclass/Desktop/pypy/pypy/annotation/annrpython.py(235)addpendingblock()
> -> assert annmodel.unionof(s_oldarg, s_newarg) == s_oldarg
> (Pdb+)
>
>
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> http://mail.python.org/mailman/listinfo/pypy-dev
>
>


-- 
Best regards,
Leandro Lameiro

Blog: http://lameiro.wordpress.com
Twitter: http://twitter.com/lameiro
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20120221/40e2fed2/attachment-0001.html>


More information about the pypy-dev mailing list