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.cl...@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@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@python.org > http://mail.python.org/mailman/listinfo/pypy-dev > > -- Best regards, Leandro Lameiro Blog: http://lameiro.wordpress.com Twitter: http://twitter.com/lameiro
_______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev