Mike,

Software is written in a somewhat human-readable format, in our case in C++
and Python. C++ must be compiled down into bytecode, which the computer can
understand and execute very quickly. The build step does this compilation
and places the bytecode in locations where it can be executed from a Python
environment. In software engineering, this is called "compile time". Errors
can occur during compile time, and be debugged by programmers. In addition
to compilation, the build step also assures that all the proper
dependencies for the software are installed, like Python modules NuPIC uses.

This step is necessary for NuPIC to run. Once you get to a point where you
can write a Python script that imports nupic and uses it (and thus uses the
underlying compiled C++ bytecode), running this script is called "run
time". Errrors can also occur during this step, but it is usually not
associated with bad code syntax, but with incorrect configuration or input
data.

The compilation process is tricky, because we want NuPIC to compile and run
in different operating systems (linux flavors, OS X), with different
compilers (gcc, clang). Every time we make changes to any NuPIC code, we
have a continuous integration process that builds in several environments
(see https://travis-ci.org/numenta/nupic).

I hope that answers your questions. Let me know if you have any more.

---------
Matt Taylor
OS Community Flag-Bearer
Numenta


On Wed, May 28, 2014 at 7:42 AM, Mika Schiller <[email protected]>wrote:

> Thanks, Matt. The solution didn't work, but I tried "sudo bash" and then did
>
> export CFLAGS=-Qunused-arguments
> export CPPFLAGS=-Qunused-arguments
>
> That solved it. Just a quick question: I have a biology background and I'm 
> kind of new to programming and have
> never had to do a build before, so please excuse my ignorance.
> Is the purpose of the build to get the nupic software to run at all on my 
> machine or is
> it designed more so to make sure that it all compiles ok when I do start to 
> feed data to the algorithms? Just trying
> to wrap my head around why doing the build is even necessary.
>
>
>
> Thanks
>
>
>
> On Tue, May 27, 2014 at 5:06 PM, Matthew Taylor <[email protected]> wrote:
>
>> I was just reading your other email to the list about this. I don't
>> know the solution, but I do know that you didn't export the ARCHFLAGS
>> var properly:
>>
>>     export
>> ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
>> sudo pip install -r external/common/requirements.txt
>>
>> If you don't use the "export" keyword in the shell, the env var will
>> not be available to other scripts and programs.
>>
>> Not sure if that will help, though.
>> ---------
>> Matt Taylor
>> OS Community Flag-Bearer
>> Numenta
>>
>>
>> On Tue, May 27, 2014 at 2:02 PM, Mika Schiller <[email protected]>
>> wrote:
>> > Python 2.7.6 Pip 1.3.1 OSX Mavericks clang 5.1
>> >
>> > I tried installing python requirements with
>> >
>> > sudo pip install -r external/common/requirements.txt
>> >
>> > Then I got this error:
>> >
>> > building 'PIL._imaging' extension
>> >
>> > cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g
>> -Os
>> > -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd
>> > -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes
>> > -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes
>> > -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -DHAVE_LIBZ
>> > -I/System/Library/Frameworks/Tcl.framework/Versions/8.5/Headers
>> > -I/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers
>> > -I/private/tmp/pip-build-root/pillow/libImaging
>> > -I/System/Library/Frameworks/Python.framework/Versions/2.7/include
>> > -I/opt/local/include -I/usr/local/include -I/usr/include
>> >
>> -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
>> > -c _imaging.c -o build/temp.macosx-10.9-intel-2.7/_imaging.o
>> >
>> > clang: error: unknown argument: '-mno-fused-madd'
>> > [-Wunused-command-line-argument-hard-error-in-future]
>> >
>> > clang: note: this will be a hard error (cannot be downgraded to a
>> warning)
>> > in the future
>> >
>> > error: command 'cc' failed with exit status 1
>> >
>> > Then I tried to downgrade the ARCHFLAGS environment variable to a
>> warning by
>> > typing this in terminal:
>> >
>> > ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
>> sudo
>> > pip install -r external/common/requirements.txt
>> >
>> > Unfortunately, that didn't work. I've been googling around trying to
>> find a
>> > solution to this problem. What's the best way to solve this?
>> >
>> >
>> > _______________________________________________
>> > 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