numpile icon indicating copy to clipboard operation
numpile copied to clipboard

List of numpile forks

Open pfalcon opened this issue 4 years ago • 5 comments

For information of people who may be interested in doing further work on numpile, already known forks (in the order of appearance):

  • https://github.com/lidavidm/accelerando by @lidavidm, what's done: split the code in 2 files (which apparently isn't enough). Pretty good commit history, tries to recreate features of numpile step by step.

  • https://github.com/mattpaletta/numpile by @mattpaletta, what's done: split codebase in fine-grained way, but then commit history isn't fine-grained at all.

Both of these forks are problematic from copyright/licensing point of view - they are clearly based on numpile, and include substantial portions of it, but violate the following clause from numpile's license:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

pfalcon avatar Dec 21 '19 22:12 pfalcon

I went to port numpile to Pycopy-the-unbloated-Python, result is here: https://github.com/pfalcon/numpile/tree/pycopy . It uses https://github.com/pfalcon/ullvmlite , which is in turn uses https://github.com/pfalcon/ullvm_c , which is pure-Python bindings for LLVM C API. It's all somewhat WIP now of course.

pfalcon avatar Dec 26 '19 15:12 pfalcon

OK, my turn with factoring-out fork of numpile: https://github.com/pfalcon/picompile/ . The original LICENSE file is there, the code is split into 10 modules. Intended also to be perfectilized, without useless fix-up commits, so likely will be rebased.

pfalcon avatar Jan 05 '20 15:01 pfalcon

Somewhat related: I personally feel some reservations on hacking too deep into numpile, because I'm not sure how unification-based type inference (as employed by numpile) compares to other well-known type inferencing algorithms, like Hindley-Milner (aka algorithm W). The paper "Generalizing Hindley-Milner Type Inference Algorithms" (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.9348&rep=rep1&type=pdf) answers this, by arguing that algo W is just an adhoc optimization of a general unification algorithm. Discussion in more detail here: https://github.com/alehander92/Airtight/issues/2#issuecomment-597902078

pfalcon avatar Apr 25 '20 14:04 pfalcon

While the license violation is probably true, this is just based on a educational talk I gave at Harvard so if a bunch of students are forking it then that's the purpose. It's just a toy for people to play with.

sdiehl avatar Jun 03 '20 07:06 sdiehl

Sure, this ticket and list is kinda intended to be a guide for people who liked numpile and want to hack on it further. Then after some looking around (if they do looking around! many don't), they may learn/figure out:

  1. This bright idea (hack on numpile further) came to other people before.
  2. It makes sense to not just hack on the same things again and again, but see if there can actually be made progress across different people's work.
  3. But then given that a few people already hacked on numpile, one should consider which fork is the best to continue hacking on.

Then, I'd consider it a good idea to start a fork survey based on the licensing/copyright compliance matters, ahead even of technical matters. Because if there's some technical advanceness of a particular fork, but muddy situation with licensing/copyright, then chances are, only frustration will come out of somebody further working on it.

Following thru all this stuff, I decided to start my own humble fork on the original numpile, effectively repeating work done by other folks, instead of making further progress (and indeed, I didn't have much further progress so far). At least I'm trying to not make mistakes mentioned above. (I definitely still may make goofs, so I'm open to suggestions or criticism).

pfalcon avatar Jun 03 '20 08:06 pfalcon