Build sorted! Tests fail but it must be the known Python 2.7 problem below

Adding a PyNode region...
ERROR:  Matching Python module for py.TestNode not found.
Exception: Matching Python module for py.TestNode not found.


My suspicion on the size_t translated to unsigned int from SWIG was correct.

It seems like it was a known problem in the nupic team by reading the
comment in    nupic/py/bindings/algorithms/algorithms_impl.i

line 1004: // Already seen by swig on linux32 where size_t is the same size
as unsigned int
#ifndef NTA_PLATFORM_linux32
%template(Size_T_Vector) std::vector<size_t>;
#endif

Then I found this "guy" below in the
nupic/lang/common/engine_internal_common.i

%template(Dimset) std::vector<size_t>;

and wrapped him in an #ifndef

//32bit fix
#ifndef NTA_PLATFORM_linux32
%template(Dimset) std::vector<size_t>;
#endif



So I will go ahead and add my comments in the JIRA issue too.

Marek, I will also attach my 15MB archived complete external/linux32 folder
with the compiled libraries. If not portable let me know and I will
summarize all the steps for building them natively.?

Will give it also a try tomorrow with Python 2.6 and if everything goes
well we can wrap all steps and files to provide 32 bit support.

Cheers,
Georgios


On Wed, Aug 14, 2013 at 8:50 AM, Marek Otahal <[email protected]> wrote:

> Hi,
>
> yep, the time diff is a beach :P
>
>
> On Wed, Aug 14, 2013 at 4:53 AM, Georgios Pierris <[email protected]>wrote:
>
>> I think I've narrowed the SWIG problem and it should be a matter of
>> minutes (famous last words) for you Marek, I just couldn't find the proper
>> files to test my idea. See below my notes and let me know if this deserves
>> a new JIRA or comment on the one you mentioned earlier.
>>
>
> Please post this, and follow ups to the existing JIRA ticket, it's useful
> and we can get moving forward with it..
>
>>
>>
>> Create the external/linux32/lib folders and external/linux32/share
>> Copy the external/linux64/share into external/linux32/share
>>
>> Copy the static libs from /usr/lib/ to external/linux32/lib
>> /usr/lib/libapr-1.a
>> /usr/lib/libaprutil-1.a
>> *If not there just install apr tools and apr-utils from package manager
>> or download and compile
>>
>
> Please see the APR subtask for JIRA NPC-143, if you can, send me the
> include/ headers configured on your 32bit system, and the libapr*.a files.
>
> As a pullrequest to my branch, or attach to the JIRA ticket, as you wish.
>
>
>> Unpack the libyaml file from external/src
>> Change line 5 of  CMakeLists.txt file
>> from:   set(LIB_TYPE SHARED)   to:   set(LIB_TYPE STATIC)
>>
> Why is this needed? I'd prefer not touch the swig internals..it's tricky.
>
> mkdir build
>> cmake ..
>> etc.
>>
>> copy static libyaml-cpp.a file into linux32/lib and rename it to libyaml.a
>>
>> download and build zlib and copy the static libz.a file to linux32/lib
>>
>  again, can you give me the compiled .a files?
>
>>
>> install swig (cyrrently trying with version 1.3.36 in an attempt to match
>> the folder name in share (just in case). I had the same issues with version
>> 2.0 but have to confirm it again.)
>>
> also, please send me swig binary build on 32bit
>
>>
>> Currently fails:
>> make[2]: Entering directory
>> `/nupic_tmp_build/lang/py/bindings/engine_internal'
>> ...
>> engine_internal_py.cpp:4455:22: error: redefinition of 'struct
>> swig::traits<unsigned int>'
>> engine_internal_py.cpp:4378:22: error: previous definition of 'struct
>> swig::traits<unsigned int>'
>> engine_internal_py.cpp:4459:23: error: redefinition of 'struct
>> swig::traits_asval<unsigned int>'
>> engine_internal_py.cpp:4382:23: error: previous definition of 'struct
>> swig::traits_asval<unsigned int>'
>> engine_internal_py.cpp:4465:23: error: redefinition of 'struct
>> swig::traits_from<unsigned int>'
>> engine_internal_py.cpp:4388:23: error: previous definition of 'struct
>> swig::traits_from<unsigned int>'
>>
>> Heads Up :
>> I think that the problem has to do with the size_t that SWIG casts it
>> into "unsigned long" in 64 bit machines and "unsigned int" in 32 bit
>> machines. I assume that at some SWIG interface file you are defining the
>> vector<size_t> and then you also define the vector<unsigned int>. In 64 bit
>> there are no problems as they are different types, but in the 32 bit
>> machines we have redefinition of the vector<unsigned int>. (See more on
>> this similar issue of Gnuradio project for their explanation
>> http://gnuradio.org/redmine/issues/529 )
>>
> Good work, did you manage to find the commit they mention to fix that?
>
>>
>> It took me some time looking for these definitions in the .i files but
>> without luck, however, I am sure you know exactly where these are to give
>> it a try.
>>
>> This time difference is killing me :)
>>
>> Cheers,
>> Georgios
>>
> Thanks a lot! Mark
>
> --
> Marek Otahal :o)
>
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>
>
_______________________________________________
nupic mailing list
[email protected]
http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org

Reply via email to