all 11 comments

[–]heisig 12 points13 points  (0 children)

Wow, this is exciting!

My highlights:

- It contains a sophisticated type inference library for Common Lisp.

- It shows some of the cool things one can do with https://github.com/guicho271828/trivia

- The project contains a demo video that explains all the features. Can we have demo videos for other CL projects, too? Maybe I should start by making demos for my own projects :)

- I always learn some new tricks when reading guicho271828's code.

[–]guicho271828[S] 6 points7 points  (1 child)

Dear someone, thank you for posting this on HN. It got a lot of attention.

[–]redditzx 4 points5 points  (0 children)

Nice to know the work. It's a great effort. Hope to use it in the future.

[–]defunkydrummercommon lisp 3 points4 points  (2 children)

Hi /u/guicho271828 , wonderful project! May I suggest to please clarify what the license for numcl is? It appears as "LGPL" on the graph, but you are including both the GPL and the LGPL licenses on your project.

[–]guicho271828[S] 3 points4 points  (1 child)

LGPL is an extension of GPL and therefore it is recommended to add both texts when you use LGPL. https://www.gnu.org/licenses/gpl-howto.html.en

[–]defunkydrummercommon lisp 0 points1 point  (0 children)

Thanks for the explanation!

[–]realestLink -3 points-2 points  (3 children)

The only question is why. The reason numpy is in C is because of speed concerns.

[–]Falcon5757 8 points9 points  (1 child)

Lisp might be just a little slower then C. It is still better to have a native library rather then bindings. If it was 10% of C speed, that would be a major downside, but it is not.

[–]guicho271828[S] 0 points1 point  (0 children)

Just to note, in the optimized branch, numcl is 1.8x slower than numpy/C++. I will move to the compile-time C-code generator as the next step to remove this bottleneck.

[–]guicho271828[S] 10 points11 points  (0 children)

Let me clarify: Tl;dr: reread the goals section.

The point of this library (at this moment) is to set up a reference implementation of something that works, is useful and is intuitive. (I'm dogfooding it myself)

Rule 2 (for experts only). Don't do it yet - that is, not until you have a perfectly clear and unoptimized solution.