-
Notifications
You must be signed in to change notification settings - Fork 74
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
Reduce dependencies #47
Comments
I would rather not require boost. With c++17 we get most of what boost
provides as std::, including filesystem. I think most people now have
compilers that can support c++17.
Zlib was used only as an alternative way to feed data to one of the
encoders. Not part of serialization. By removing that one minor feature we
can reduce the dependencies.
capnp is a real pain to follow and maintain. @chhenning and I want to
replace it. Nobody else had any comment.
Yes, replace Swig with pybind11 but all of that code will be in another
repository. One that calls the pure C++ library. The code should be much
easier to maintain as separate repositories. @chhenning was working on
that but got bogged down in his real job.
Without the SP/TMRegion classes it is impossible to write any NPIC
implementations using the Network Framework in C++ only. The CSharp
language interface will also need this because it would have a hard time
calling Python to get to the SP/TMRegion modules. So it makes since to
fill in the missing parts in the C++ library.
…On Wed, Aug 1, 2018 at 3:46 PM, breznak ***@***.***> wrote:
@dkeeney <https://github.com/dkeeney> @chhenning
<https://github.com/chhenning> I was reviewing your interesting work on
refactoring/reducing nupic.core, and I'd like to get it merged back here to
some extend.
Features that I like:
- using c++ instead of boost, where possible. Seen in @dkeeney
<https://github.com/dkeeney> 's base branch? Although I'm interested
only in changes with c++11 (not ++17 as you target)
- removing apr* , boost.filesystem is the replacement? Also in the
base branch?
- getting rid of zlib / capnp for compression. I think one of you
sticks with either. I'd for sure remove apr, as user can zip themselves,
capnp adds lots of mess, but works quite ok, do you think vanilla
plain-text backups are ok?
- removing Swig, replacing with pybind11 ***@***.***
<https://github.com/chhenning> ?) does it work well? which branch can
I start cherry-picking and merging from? Or David has gone the pure C++
way. Do I still need/benefit from your SP/TMRegion classes? ...this bullet
will be quite complex, I'll leave it for now for further discussion.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#47>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFBa_7HW0cqgUpZbLfTo2Nh_93NFL8Biks5uMi_TgaJpZM4VrXN->
.
|
I like to notion about zlib and capnp, I'll join that! I'll have to think about cpp17 and completely pure c++, but I agree it's the cleanest solution...so when the time comes. |
There are a lot of people doing there own thing. But as far as I know,
you, I and @chhenning are the only one's doing anything with nupic.cpp.
I suspect that some people have looked at the current Nupic implementation
as a starting point for their implementations and just decided to roll
there own because it would be simpler. So one of my objectives is to make
a simple implementation (within the API) that can be understood by looking
at the code and ... something that uses the latest technology.
By using C++17 we can avoid boost. I would rather be on the leading edge
of technology that lagging behind (like requiring python2.7 and a very old
compiler that matches).
…On Tue, Aug 7, 2018 at 10:24 AM, breznak ***@***.***> wrote:
I like to notion about zlib and capnp, I'll join that! I'll have to think
about cpp17 and completely pure c++, but I agree it's the cleanest
solution...so when the time comes.
Actually, is anybody else developing the repos?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#47 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFBa_-aJcrtk9FvWLf4P1nx4xInaInvbks5uOc1ogaJpZM4VrXN->
.
|
Sorry for the late reply. Welcome back breznak! My pybind (replacement for swig) bindinds are working very well, I think. Have a look here: https://github.com/chhenning/nupic/tree/master/src/cpp/nupic/python |
@breznak, shall we put in pybind and isolate the python interface now or are there other smaller components you would like to put in first? I am trying to decide what part to do next. |
Updated the description with decision based on your advices, added links to respective issues. @dkeeney I think pybind is rather a big step, for now I'd like to align as much as possible with yours and Christian's work..so smaller pieces first, please.
|
I guess the next project is to remove capnproto. #48 |
that'll be perfect and a big cleanup! |
one more huge dependency dropped! Capnp removed in #62 |
Closing and moving to #106 as the only remaining part of this issue. |
@dkeeney @chhenning I was reviewing your interesting work on refactoring/reducing nupic.core, and I'd like to get it merged back here to some extend.
Features that I like:
base
branch?Although I'm interested only in changes with c++11 (not ++17 as you target)Ok, let's go c++17. Switch to c++17 #55 Switch to c++17 and remove Boost #106capnp adds lots of mess, but works quite ok, do you think vanilla plain-text backups are ok/better?Figure serialization (remove capnproto?) #48...this bullet will be quite complex, I'll leave it for now for further discussion. Road map for migrating to PyBind11 and Python3.x support. #81
The text was updated successfully, but these errors were encountered: