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
