Success! Thank you so much Georgios for the helpful information.

Ok, so the entire build finally completed on the Raspberry Pi after nearly 6 
hours!  I had to increase the swap size to 1 GB to get it to complete without 
blowing up.  Developing on the Pi really brings back memories of this:
http://imgs.xkcd.com/comics/compiling.png

That's the good news.  Back to reality, it doesn't pass all of the tests.  

The first thing that I noticed is that the 
external/linux32/lib/python/site-packages contains some .so files.  I was just 
using the files from the linux64 dir to try and get things to build, but we 
need to get arm versions of the .so files in matplotlib, Crypto, and PIL.  So I 
used pip to install matplotlib and PIL and copied the dirs from the system 
location to the nupic/external dirs.  Then I installed python-crypto with 
apt-get and copied the Crypto dir over.  Is this a valid way to get the libs?  
Does anyone know how the shared objects were built for the current linux64 and 
darwin64 dirs?

When I run the nupic/bin/run_tests.py it shows:
=== 6 failed, 210 passed, 4 skipped in 275.98 seconds ===

The htmtest binary dies with a seg fault right after 'Adding a PyNode 
region...'.  And the testeverything app shows:
Found 40 test sets
WARNING: Caught exception: This exception should get caught.
======= Tests for TesterTest ==============
Total tests: 10, Failures:      4, Disabled     : 0
WARNING: Critical failure ocurred
<snip>
FAIL  Integer test, should fail (line: 50)
      Expected result: 1
      Actual result:   0
FAIL  Double test, should fail (line: 51)
      Expected result: 23.42
      Actual result:   23.421
FAIL  String test, should fail (line: 52)
      Expected result: Numenta
      Actual result:   Numenta 
<snip>
ERROR:  Invalid NTA_BasicType -1 used in array constructor 
[/home/pi/nupic/nta/ntypes/ArrayBase.cpp line 59]
ERROR:  allocateBuffer -- buffer already set. Use releaseBuffer first 
[/home/pi/nupic/nta/ntypes/ArrayBase.cpp line 80]
ERROR:  allocateBuffer -- buffer already set. Use releaseBuffer first 
[/home/pi/nupic/nta/ntypes/ArrayBase.cpp line 80]
ERROR:  setBuffer -- buffer already set. Use releaseBuffer first 
[/home/pi/nupic/nta/ntypes/ArrayBase.cpp line 97]
======= Tests for ArrayTest ==============
Total tests: 72, Failures:      0, Disabled     : 0
All tests passed
<snip>
======= Tests for BasicTypeTest ==============
Total tests: 47, Failures:      0, Disabled     : 0
All tests passed
<snip>
======= Tests for BufferTest ==============
Total tests: 94, Failures:      0, Disabled     : 0
All tests passed

ERROR:  CHECK FAILED: "index < vec_.size()"  
[/home/pi/nupic/nta/ntypes/Collection.cpp line 70]
ERROR:  No item named: blah [/home/pi/nupic/nta/ntypes/Collection.cpp line 95]
ERROR:  CHECK FAILED: "index < vec_.size()"  
[/home/pi/nupic/nta/ntypes/Collection.cpp line 70]
ERROR:  No item named: blah [/home/pi/nupic/nta/ntypes/Collection.cpp line 95]
ERROR:  CHECK FAILED: "index < vec_.size()"  
[/home/pi/nupic/nta/ntypes/Collection.cpp line 70]
ERROR:  No item named: blah [/home/pi/nupic/nta/ntypes/Collection.cpp line 95]
ERROR:  CHECK FAILED: "index < vec_.size()"  
[/home/pi/nupic/nta/ntypes/Collection.cpp line 70]
ERROR:  No item named: blah [/home/pi/nupic/nta/ntypes/Collection.cpp line 95]
ERROR:  Unable to add item '0' to collection because it already exists 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 107]
ERROR:  Unable to add item '1' to collection because it already exists 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 107]
ERROR:  Unable to add item '2' to collection because it already exists 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 107]
ERROR:  No item named '4' in collection 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 127]
ERROR:  No item named '1' in collection 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 127]
ERROR:  Unable to add item '0' to collection because it already exists 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 107]
ERROR:  Unable to add item '1' to collection because it already exists 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 107]
ERROR:  Unable to add item '2' to collection because it already exists 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 107]
ERROR:  No item named '1' in collection 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 127]
ERROR:  No item named '0' in collection 
[/home/pi/nupic/nta/ntypes/Collection.cpp line 127]
======= Tests for CollectionTest ==============
Total tests: 199, Failures:      0, Disabled     : 0
All tests passed
<snip>
======= Tests for CondProbTableTest ==============
Total tests: 115, Failures:      0, Disabled     : 0
All tests passed
<snip>
======= Tests for DenseTensorUnitTest ==============
Total tests: 0, Failures:      0, Disabled     : 0
All tests passed

ERROR:  Attempt to get count from dimensions [unspecified] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 57]
ERROR:  Bad request for dimension 0 on [unspecified] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 78]
ERROR:  Invalid coordinate [1 2] for Dimensions [unspecified] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 171]
ERROR:  Attempt to get count from dimensions [unspecified] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 57]
ERROR:  Bad request for dimension 0 on [unspecified] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 78]
ERROR:  Invalid coordinate index 0 of 0 is too large for region dimensions 
[dontcare] [/home/pi/nupic/nta/ntypes/Dimensions.cpp line 189]
ERROR:  Attempt to get count from dimensions [dontcare] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 57]
ERROR:  Invalid coordinate index 0 of 1 is too large for region dimensions [1 
0] (invalid) [/home/pi/nupic/nta/ntypes/Dimensions.cpp line 189]
ERROR:  Attempt to get count from invalid dimensions [1 0] (invalid) 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 62]
ERROR:  Bad request for dimension 2 on [1 0] (invalid) 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 78]
ERROR:  Bad request for dimension 2 on [2 3] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 78]
ERROR:  Bad request for dimension 2 on [2 5] 
[/home/pi/nupic/nta/ntypes/Dimensions.cpp line 78]
======= Tests for DimensionsTest ==============
Total tests: 205, Failures:      0, Disabled     : 0
All tests passed

Let me know if you want the full output.  Any idea of what piece might be 
broken?

Thanks,

Matt

On Aug 19, 2013, at 1:29 PM, Georgios Pierris <[email protected]> wrote:

> Hello Matt,
> 
> have a look on my comment in https://issues.numenta.org/browse/NPC-143 
> regarding the redefinition on swig.
> 
> Cheers,
> Georgios
> 
> 
> On Mon, Aug 19, 2013 at 8:25 PM, Matt Keith <[email protected]> wrote:
> Mark,
> 
> Your linux32 compiled .a files do not work in the ARM environment, so I think 
> that we will need to create a new external/linux32arm dir to support that 
> platform.  I'll try to get the build working with that change.
> 
> I didn't remove any of the grouper files, I just commented out the guts of 
> all of the Grouper.cpp methods.  However, the problem was with the gcc 4.6 
> compiler and not the code, so it just failed on some different files later in 
> the build.  Upgrading to gcc 4.7 fixed the issue.  I'll add my +1 to removing 
> the old code, but I don't think that it is an issue for raspberry pi anymore.
> 
> I spoke a little too soon saying that the build completed in my last message. 
>  There was an error with apr.h buried in the build output that I missed and 
> that is why none of the test scripts were created.  I have corrected that 
> error but now I am getting the following error with swig.  
> 
> make[2]: Entering directory `/tmp/ntabuild/lang/py/bindings/engine_internal'
> /bin/bash ../../../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H 
> -I. -I/home/pi/nupic/lang/py/bindings/engine_internal 
> -I../../../../build_system/unix  -I/usr/include/python2.7 -I/home/pi/nupic 
> -I/home/pi/nupic/external/linux32/include -DNUPIC2  -I/home/pi/nupic 
> -I/home/pi/nupic/external/common/include 
> -I/home/pi/nupic/external/linux32/include -fvisibility=hidden -DNTA_INTERNAL 
> -g -DNTA_ASSERTIONS_ON   -fPIC -DPIC -ffloat-store -D_PY27 
> -DNTA_PLATFORM_linux32 -Wall -Wreturn-type -Wunused-variable -Wno-deprecated 
> -DBOOST_NO_WREGEX -DNTA_INSTRUMENT_ON -DNTA_PYTHON_SUPPORT=2.7 
> -DNTAPY_INCLUDE="<python2.7/" 
> -DNTAPY_PACKAGES="\"lib/python2.7/site-packages\"" -I/usr/include 
> -I/lib/python2.7/site-packages/numpy/core/include -O1 -falign-functions 
> -DSWIG_TYPE_TABLE=_nupic_engine_internal -DNUPIC2  -MT 
> _engine_internal_la-engine_internal_py.lo -MD -MP -MF 
> .deps/_engine_internal_la-engine_internal_py.Tpo -c -o 
> _engine_internal_la-engine_internal_py.lo `test -f 'engine_internal_py.cpp' 
> || echo 
> '/home/pi/nupic/lang/py/bindings/engine_internal/'`engine_internal_py.cpp
> libtool: compile:  g++ -DHAVE_CONFIG_H -I. 
> -I/home/pi/nupic/lang/py/bindings/engine_internal 
> -I../../../../build_system/unix -I/usr/include/python2.7 -I/home/pi/nupic 
> -I/home/pi/nupic/external/linux32/include -DNUPIC2 -I/home/pi/nupic 
> -I/home/pi/nupic/external/common/include 
> -I/home/pi/nupic/external/linux32/include -fvisibility=hidden -DNTA_INTERNAL 
> -g -DNTA_ASSERTIONS_ON -fPIC -DPIC -ffloat-store -D_PY27 
> -DNTA_PLATFORM_linux32 -Wall -Wreturn-type -Wunused-variable -Wno-deprecated 
> -DBOOST_NO_WREGEX -DNTA_INSTRUMENT_ON -DNTA_PYTHON_SUPPORT=2.7 
> "-DNTAPY_INCLUDE=<python2.7/" 
> -DNTAPY_PACKAGES=\"lib/python2.7/site-packages\" -I/usr/include 
> -I/lib/python2.7/site-packages/numpy/core/include -O1 -falign-functions 
> -DSWIG_TYPE_TABLE=_nupic_engine_internal -DNUPIC2 -MT 
> _engine_internal_la-engine_internal_py.lo -MD -MP -MF 
> .deps/_engine_internal_la-engine_internal_py.Tpo -c engine_internal_py.cpp  
> -fPIC -DPIC -o .libs/_engine_internal_la-engine_internal_py.o
> 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>'
> make[2]: *** [_engine_internal_la-engine_internal_py.lo] Error 1
> 
> I have not used swig before.  Are there any swig experts out there that can 
> point me the right direction?
> 
> Thanks,
> 
> Matt
> 
> On Aug 19, 2013, at 2:47 AM, Marek Otahal <[email protected]> wrote:
> 
>> Hi Matt, 
>> 
>> 
>> On Sun, Aug 18, 2013 at 8:33 AM, Matt Keith <[email protected]> wrote:
>> Thank you everyone for the feedback.
>> 
>> Marek, yes I'll have to take a look at the linux32 support you have 
>> submitted.  Won't there be issues with those .a files working on arm instead 
>> of x86?  Should we create a linux32arm folder as well, or can we remove all 
>> dependancies on static libraries?
>> I was wondering that too. Could you test, take the .a files from my linux32 
>> branch and place them in your ARM environment? 
>> (I think it will be a prob and we'll need another platform to support) 
>> 
>> about removing all the static deps: I'm not sure now, as there are tickets 
>> like linux64/darwin64-environment, ...  But before I was told we want to 
>> keep nupic as much self-contined as possible.(but building some of the libs 
>> might be tricky, that's why the precompiled archives .a are present) Maybe 
>> Scott can explain? 
>> 
>> PS: did you succeed removing the old Grouper classes, as Subutai mentioned 
>> here? I tried just rm the related files, but it was quite connected to other 
>> code too (so I wonder if that code is obsolete too, and can be removed, or 
>> need be reworked)
>> 
>> Regards, 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
> 
> 
> _______________________________________________
> 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