Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tweetnacl
-
Why Lisp? (2015)
Because that product was an embedded system running on a very small SoC. It only had 1MB of flash and 192k of SRAM. It's theoretically possible to run CL on a system that small -- Coral Common Lisp ran on a Mac Plus with 1MB of RAM back in the 1980s -- but nothing off-the-shelf will do that today.
(I did, however, put a little Scheme interpreter on it as an easter egg :-)
I do have some CL code that supports the crypto project. The back-end for this:
https://stage.sc4.us/sc4/sc4tk.html
is written in CL (though all the actual encryption is done client-side in Javascript). I also have some prototype crypto code that I don't really use for anything, including this double-ratchet implementation:
https://github.com/rongarret/tweetnacl/blob/master/ratchet.l...
and some elliptic curve code:
http://www.flownet.com/ron/lisp/djbec.lisp
-
Teaching Compilers Backward
Of course. There are many. Any binary format. Any ASN.1 format. DEF and LEF for hardware descriptions. The output of mysqldump.
Here's another example:
https://github.com/rongarret/tweetnacl/blob/master/ratchet.l...
starting at line 82. (That's one that I designed.)
lang
-
Teaching Compilers Backward
And you need the gazillion things on top of a grammar. Error recovery, IDE, language server, formatter, all the memory bugs, all the semantics that's not described in a formal language (and you can't auto-generate code to check or request it), all the binding generators for other languages and linking conventions... Ugh I wish we had a standard tool for that, like a much much much expanded yacc + interpreter generator + batteries included... There's something with with libadalang and its language-agnostic tooling langkit (https://github.com/AdaCore/lang kit) that is very seducing (write once generate much code).
What are some alternatives?
LoopVectorization.jl - Macro(s) for vectorizing loops.
cl4py - Common Lisp for Python
awesome-compilers - :sunglasses: Curated list of awesome resources on Compilers, Interpreters and Runtimes
hissp - It's Python with a Lissp.
aws-api - AWS, data driven
bel - An interpreter for Bel, Paul Graham's Lisp language
CUDA.jl - CUDA programming in Julia.
coalton - Coalton is an efficient, statically typed functional programming language that supercharges Common Lisp.
TablaM - The practical relational programing language for data-oriented applications
cl-cuda - Cl-cuda is a library to use NVIDIA CUDA in Common Lisp programs.
julia - The Julia Programming Language