VanL / shedskin

Shed Skin is an experimental compiler, that can translate pure, but implicitly statically typed Python (2.4-2.6) programs into optimized C++
0 stars 1 forks source link

dictionary containing diccionaries containing tuples won't compile. #104

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The attached file is converted without errors or warnings, but then i won't 
compile. I attach the output of make.

Original issue reported on code.google.com by ssorga...@gmail.com on 21 Oct 2010 at 3:40

Attachments:

GoogleCodeExporter commented 9 years ago
thanks for reporting! the problem is the empty tuples, which don't get assigned 
the correct type to be added to the dictionary. I will have a look at the more 
general problem behind it..

Original comment by mark.duf...@gmail.com on 21 Oct 2010 at 4:07

GoogleCodeExporter commented 9 years ago
btw, in case you need a quick workaround:

E = (1,)
E = ()

and then use E instead of () to initialize the dictionary.

Original comment by mark.duf...@gmail.com on 21 Oct 2010 at 5:22

GoogleCodeExporter commented 9 years ago
I've tried that, it hasn't worked.

I've also tried to replace the () tuples with (0,) (they'll work the same for 
me), but it still doesn't work.

Here I paste it's output, the same in both cases:

g++  -O0 -pipe -Wno-deprecated  -I. -I/usr/share/shedskin/lib test.cpp 
/usr/share/shedskin/lib/builtin.cpp /usr/share/shedskin/lib/re.cpp -lgc -lpcre  
-o test
test.cpp: In function ‘void __test__::__init()’:
test.cpp:28: error: no matching function for call to 
‘__shedskin__::tuple2<int, __shedskin__::tuple2<int, int>*>::tuple2(int, int, 
__shedskin__::tuple2<void*, void*>*)’
/usr/share/shedskin/lib/builtin.hpp:3858: note: candidates are: 
__shedskin__::tuple2<A, B>::tuple2(int, A, B) [with A = int, B = 
__shedskin__::tuple2<int, int>*]
/usr/share/shedskin/lib/builtin.hpp:3854: note:                 
__shedskin__::tuple2<A, B>::tuple2() [with A = int, B = 
__shedskin__::tuple2<int, int>*]
/usr/share/shedskin/lib/builtin.hpp:236: note:                 
__shedskin__::tuple2<int, __shedskin__::tuple2<int, int>*>::tuple2(const 
__shedskin__::tuple2<int, __shedskin__::tuple2<int, int>*>&)
make: *** [test] Error 1

Original comment by ssorga...@gmail.com on 21 Oct 2010 at 6:45

GoogleCodeExporter commented 9 years ago
Ok, forget that last thing, it works!

I just forgot to replace a ()... sorry!

Original comment by ssorga...@gmail.com on 21 Oct 2010 at 6:48

GoogleCodeExporter commented 9 years ago
:-) please let me know if you run into anything else!

Original comment by mark.duf...@gmail.com on 21 Oct 2010 at 6:52

GoogleCodeExporter commented 9 years ago
this is now fixed in GIT: http://gitorious.org/shedskin. thanks again for 
reporting! ;)

Original comment by mark.duf...@gmail.com on 23 Oct 2010 at 3:48