topazproject / topaz

A high performance ruby, written in RPython
topazruby.com
BSD 3-Clause "New" or "Revised" License
1k stars 84 forks source link

Failing to build Topaz #828

Closed mdesantis closed 10 years ago

mdesantis commented 10 years ago

Ubuntu 13.10 64 bit

Topaz version: fa28c22acc52d3ccffb310fc3180a2153dafe449

Python version:

Python 2.7.3 (480845e6b1dd219d0944e30f62b01da378437c6c, Nov 01 2013, 01:37:10)
[PyPy 2.1.0 with GCC 4.8.1]

Running python /opt/pypy-2.1-src/rpython/bin/rpython -Ojit targettopaz.py I get the following error:

***************%%%%%%%%%%%%%%################################################################################################################################[171a] translation-task}

[translation:info] RTyping...
[171a] {translation-task
starting rtype_lltype
***************%%%%%%%%%%%%%%##########################################################################################################################################%%%%%%%%%%%%%%%%%%%
+***************%%%%%%%%%%%%%%%%%######################################################################################################################
[rtyper] specializing: 1400 / 26522 blocks   (5%)
+**********
[rtyper:WARNING] prebuilt instance <rpython.rlib._stacklet_asmgcc.StackletGcRootFinder object at 0x000000001de430f8> has no attribute 'newthrd'
[rtyper:WARNING] prebuilt instance <rpython.rlib._stacklet_asmgcc.StackletGcRootFinder object at 0x000000001de430f8> has no attribute 'arg'
+***************%%%%%%%%%%%%%%%%%########################################################################################################################################%#%%%%%%%%%%%%%%%
++*****
[rtyper] specializing: 2800 / 27439 blocks   (10%)
++***************%%%%%%%%%%%%%%%%%#####################[1fae] translation-task}

[Timer] Timings:
[Timer] annotate                       --- 54.8 s
[Timer] rtype_lltype                   --- 22.1 s
[Timer] =========================================
[Timer] Total:                         --- 76.8 s
[translation:ERROR] Error:
[translation:ERROR]  Traceback (most recent call last):
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/translator/goal/translate.py", line 321, in main
[translation:ERROR]     drv.proceed(goals)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/translator/driver.py", line 733, in proceed
[translation:ERROR]     return self._execute(goals, task_skip = self._maybe_skip())
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/translator/tool/taskengine.py", line 114, in _execute
[translation:ERROR]     res = self._do(goal, taskcallable, *args, **kwds)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/translator/driver.py", line 284, in _do
[translation:ERROR]     res = func()
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/translator/driver.py", line 351, in task_rtype_lltype
[translation:ERROR]     rtyper.specialize(dont_simplify_again=True)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rtyper.py", line 207, in specialize
[translation:ERROR]     self.specialize_more_blocks()
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rtyper.py", line 250, in specialize_more_blocks
[translation:ERROR]     self.specialize_block(block)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rtyper.py", line 438, in specialize_block
[translation:ERROR]     self.insert_link_conversions(block)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rtyper.py", line 484, in insert_link_conversions
[translation:ERROR]     link.args[i] = inputconst(r_a2, a1.value)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rmodel.py", line 393, in inputconst
[translation:ERROR]     value = reqtype.convert_const(value)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rclass.py", line 342, in convert_const
[translation:ERROR]     return self.convert_const_exact(value)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rclass.py", line 351, in convert_const_exact
[translation:ERROR]     self.initialize_prebuilt_instance(value, self.classdef, result)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rclass.py", line 369, in initialize_prebuilt_instance
[translation:ERROR]     self.initialize_prebuilt_data(value, classdef, result)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/lltypesystem/rclass.py", line 453, in initialize_prebuilt_data
[translation:ERROR]     llattrvalue = r.convert_const(attrvalue)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/lltypesystem/rdict.py", line 221, in convert_const
[translation:ERROR]     self.setup()
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rmodel.py", line 55, in setup
[translation:ERROR]     self._setup_repr()
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/lltypesystem/rdict.py", line 192, in _setup_repr
[translation:ERROR]     ll_keyhash = self.key_repr.get_ll_hash_function()
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rtuple.py", line 167, in get_ll_hash_function
[translation:ERROR]     return gen_hash_function(self.items_r)
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rtuple.py", line 52, in gen_hash_function
[translation:ERROR]     hash_funcs = [r_item.get_ll_hash_function() for r_item in items_r]
[translation:ERROR]    File "/opt/pypy-2.1-src/rpython/rtyper/rmodel.py", line 143, in get_ll_hash_function
[translation:ERROR]     raise TyperError('no hashing function for %r' % self)
[translation:ERROR]  TyperError: no hashing function for <ClassesPBCRepr * Struct object_vtable { subclassrange_min, subclassrange_max, rtti, name, instantiate }>
[translation] start debugger...
> /opt/pypy-2.1-src/rpython/rtyper/rmodel.py(143)get_ll_hash_function()
-> raise TyperError('no hashing function for %r' % self)
alex commented 10 years ago

Topaz requires a newer version of RPython than what's in 2.1, can you try with the latest RPython from mercurial?

mdesantis commented 10 years ago

I'm sorry, I read on Topaz site that I need a recent checkout of the PyPy repository, but I thought it was mandatory. Thank you