Roadmap to version 1.0, please participate #185
Replies: 14 comments 9 replies
-
This is a nice summary of the status quo. I'd love to follow along with your progress to understand the issues more deeply. I think it would be great to reference this issue in your private repo as well so updates are tracked. |
Beta Was this translation helpful? Give feedback.
-
Thanks for leading this effort! @Mec-iS happy to be included and participate in that repo. On the other hand I think that we should not invest time right now in parallelism with WASM. So, I am ok with using |
Beta Was this translation helpful? Give feedback.
-
Thanks for the feedback. Please see the temporary repo We have now a workable version of Current improvements
Next:
The new implementation is very powerful but it takes a little time to get in the mechanics, for example there are some traits that need explicit import (see documentation examples). I think that once The thing I am trying to understand is what is the functional difference in having a |
Beta Was this translation helpful? Give feedback.
-
I managed to implement the new
I am finding quite challenging porting the remaining modules, for now they have been excluded:
The ported modules build successfully.
|
Beta Was this translation helpful? Give feedback.
-
Work is on the way. But I start thinking I have to completely rewrite the
In particular PS. Rust Foundation is awarding grants https://app.smarterselect.com/programs/80957-Rust-Foundation Recap of the new skeletonBasicsnumbersThe library is founded on basic traits provided by linalg
linalg/traitsThe traits in metricsImplementations for metrics (classification, regression, cluster, ...) and distance measure (Euclidean, Hamming, Manhattan, ...). For example: |
Beta Was this translation helpful? Give feedback.
-
New branch |
Beta Was this translation helpful? Give feedback.
-
you can try the new implementation branch using Jupyter Notebooks ---> https://github.com/smartcorelib/smartcore-jupyter (if you don't have access ping me). You can add all the notebooks you want, I would aim to have an introductory walkthrough for the new traits; also it would be useful to port |
Beta Was this translation helpful? Give feedback.
-
it would be nice to organize a brief talk (30 minutes) about the current status and future planning, please provide availability via poll: https://doodle.com/meeting/participate/id/aMQMWnBa |
Beta Was this translation helpful? Give feedback.
-
Thanks everybody for the meeting. These are the alternatives for Arrays in Rust as listed in
Aso the other questions seems to be:
|
Beta Was this translation helpful? Give feedback.
-
Some more links about options we may have:
|
Beta Was this translation helpful? Give feedback.
-
Anybody interested in writing Rust bindings for https://github.com/openai/triton to be used in Smartcore? ---> #207 |
Beta Was this translation helpful? Give feedback.
-
Looks like with the next two PRs we will have finished the porting and will start the process to release |
Beta Was this translation helpful? Give feedback.
-
Tag for release v0.3.0 ready -> https://github.com/smartcorelib/smartcore/releases/tag/v0.3.0 |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello people,
Considering the path set by Volodymyr in #108, I have been trying to work his ideas to make the library fitter to current developments in the Rust ecosystem (in particular what has been done in
num-traits
). To do so I had to go through some digging in the current state of the library and I noted some drifting and tried to address it:BaseVector
, and other base structures that have been implemented for specific purposes are present. this makes the library very hard to understand and develop for, we cannot allow to have a specific implementation of general functionalities for every new module/feature.ndarray
andnalgebra
bindings, there are better ways to achieve the same objectives now and those make only the library clunkier (see below about refactoring).So for me a tentative roadmap should look like this:
sklearn
rayon
for example or to support Wasm; both it is not possible at the moment I think given the current maturity of Wasm. There is always time later to provide Wasm-only features once the library is stable). For now I would suggest to forget about Wasm and parallelism to reach stability; once we are at some point around ver 0.9 we can put these back on the table;According to this, I have started reworking the skeleton to adhere to what Volodymyr set down; this meant a quite de-structuring process to clean up things and reach the cleanest possible initial implementation. I have reached a good starting point, with a basic skeleton for these functionalities (mostly implemented as traits):
Number
,RealNumber
,BaseMatrix
,Matrix
,DenseMatrix
and all the matrix-related traits ("decomposable" traits). I have reused as much code as I could for the sake of building a new base skeleton; obviously there is still a lot to add but I think if we stick to this convention we can rebuild the whole library easily in this order:Base-traits: numbers, base vector, base matrix, ...(DONE)what is currently is(DONE. All existing tests passing, new tests welcome)src/linalg
what is insrc/math/distance
what is insrc/metrics
what is insrc/linear
what is insrc/svm
what is insrc/tree
DenseMatrix
and addArrayView
s (I still don't have a precise idea how to reach/improve on zero-copy)If you want to access the current state of the reworking, please drop a message here and I will add you to the temporary private repo I created until the state of the refactoring is presentable -> https://github.com/Mec-iS/smartcore-numbers (just take a look and you will tell me if it is worth to have a completely new history or if you can manage to merge the new changes to the existing history).
This way we can reuse the code and rebuild the library on a more solid foundations. This is the only option I see viable as the current state of the basic structures is so entangled with the implementation that smaller fixes have resulted in a waste of time (I have spent a lot of hours trying to disentangle the current modules while instead it took half-a-day to rebuild the skeleton reusing existing modules).
Please reply or give feedback here and I will invite you to the temporary refactoring repo. This is also a good way for growing the community as anybody that is going to the participate to the refactoring I propose to be added as a code owner to the current team of maintainers if he/she is interested.
Cheers!
Beta Was this translation helpful? Give feedback.
All reactions