-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integration with nupic.core API #751
Conversation
"htmtest" was splitted in two versions: one only with C++ tests which was moved to "nupic.core" and another only with PyNode (c++ region implementation for Python projects).
-Removed standard libraries (libapr, libs,etc) stuff;
@david-ragazzi I just want to say thank you again for all your work. I'm very grateful! I can't wait to get this PR and the other checked in and running properly. You've done a great job. 🍻 |
You're wellcome, @rhyolight !! As I always said, I believe this technology will change the world as we know.. I have in mind, that I am simply accelerating these changes when make the things easier to me and other developers*. In the end, I also grateful to you from Numenta to open-source Nupic and so I can use it in my projects.. PS: I've noted that more developers are contributing to the project (some in a shy way, but contribute anyway). This probally means that people are understanding better the code after we are using CMake! |
Note that a missing job is "Repository Restructuring" using the default directories structure.. I prefered leave this job as "standby" until the integration being finally merged. On the contrary, existing PRs will lost the reference to location (we will need merge all this pendent PRs before pull the future "Repository Restructuring" PR).. |
Something is off here. I'm getting the same error locally when tryign to build off both your PRs as Travis is getting:
Still looking into it... |
I think the problem is that you haven't updated the |
Is just change |
You have to cd into the submodule directory and run a git command to update to the SHA you want. In my case, this was:
Now you can commit and push the submodule update. |
Ok, when I go home I'll try this... |
@rhyolight Now it works fine locally but still presents errors at Travis... :-( |
@david-ragazzi This won't pass at Travis, reason as follows: Local Environment
Travis
Tl;drSimply put, once #751 is merged, Detailsgit clone --depth=50 git://github.com/numenta/nupic.git numenta/nupic
git fetch origin +refs/pull/751/merge
git checkout -qf FETCH_HEAD Submodule 'nupic.core' (git://github.com/numenta/nupic.core.git) registered for path 'nta'
Cloning into 'nta'...
fatal: reference is not a tree: 966a48f991318a4423656803dc083e66827b9385
Unable to checkout '966a48f991318a4423656803dc083e66827b9385' in submodule path 'nta'
CMake Error at CMakeLists.txt:346 (message):
Updating submodules within /home/travis/build/numenta/nupic failed. |
To solve this problem, the following steps might help:
This shouldn't break things. |
@rhyolight @utensil's suggestion makes sense to me.. What do you think? |
Thanks Matt! |
numenta/nupic.core-legacy#47 is merged. You are unblocked to continue with your plan. |
@david-ragazzi @utensil @breznak - Thank you all for the time on this PR - I think this might be our most involved PR discussion to date! I am not too familiar with CMake but it looks to me like the canonical method for including files is to have a hierarchical set of CMakeLists.txt files where the top level one simply includes the appropriate subdirs which each have their own CMakeLists.txt files. Would this be better than the macro that traverses all the subdirs? I think it is important to get this merged asap so this isn't a blocking issue. |
Yes, it's a canonical method, but not required or considered the best one.. To say the truth, I think that is a culture inherited from Autotools as this eases the conversion of existent MakeFiles spread over the directories to CMakeLists.txt.. Personally, I consider a painfull job transverse the subdirectories tree for trying understand the entire process.. My first version of CMake process used hierarchy, but when I simplified to a single file at top dir, the things ran fast (updating and maintenance were easier)!! Furthermore, we avoid create several CMakeLists even for empty dirs! |
First of all, thanks to @david-ragazzi, @utensil and @breznak for working on this, this is really great! I'm testing it out now. When I run this command:
I see:
|
@chetan51 Scott saw that too, but he had the same problem on |
🍏 Who will merge? |
After building, I tried running the Python tests:
|
You forgot set $NUPIC.. |
My build fails. I don't know if this is an issue with this PR though since master doesn't build for me either (albeit with a different error that this PR fixes). See my build attempt here: This was after I resolved the install of externals that Chetan saw a problem with. Resolved with this method: |
@chetan51 Like David said, the README has updated instructions on what to add to your |
@david-ragazzi Oops, I copied this line verbatim from the README:
Of course, Once I set that correctly, some of the Python tests passed. But now I'm seeing this error: |
😧 So close! But this is why we do code reviews! Thanks @scottpurdy. I'll have to defer to ( @david-ragazzi | @utensil | @breznak ) for debugging that error. |
@chetan51 said
Thanks, I was not seeing that error in integration tests before I merged in master. I'm running them again locally now. |
I don't think these should be blocking issues. The data path can be solved by setting the environment variable until we figure out why it doesn't work without it. And my issue needs to be resolved but it will be easier to do as a follow up PR without so much baggage. |
All tests passed for me. |
Well, so there's not problem in merge.. hehe |
if(${NTA_PLATFORM_ARCH} MATCHES "64") | ||
set(NTA_PLATFORM_OS "linux64") | ||
set(NTA_PLATFORM_CXXFLAGS "-fPIC -DPIC -m64") | ||
set(NTA_PLATFORM_ASFLAGS "-msse2") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're missing -msse2 flag
Ok guys, any further issues should be logged as separate tickets and resolved in different PRs. I believe we have enough of a consensus to move ahead with this merge. |
Integration with nupic.core API
@david-ragazzi - A couple more questions:
|
I thought nupic.core submodule update can be done in CMake stage, as you But I finally understood: if building nupic.core is done in make stage, we So I guess it's better to leave building in CMake stage for easier removal.
PS: how do I link to existing comments on GH? |
I opened an issue: #784 |
Agreed! |
The question is that we need a compiled static library before generate files at Nupic.. However, I think this deserve further discussion.. |
@breznak - regarding linking to a specific comment, the time that the comment was posted (like "20 minutes ago", right after the commenter's name) is a link so you can get it from there. |
Integration with nupic.core API
These changes allow that CMake builds
nupic.core
and links its output (libnupic.core.a
) tonupic
subprojects.This depends of numenta/nupic.core-legacy#47 (at least depends of the SHA)