-
Notifications
You must be signed in to change notification settings - Fork 227
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
Should add more distribution methods (various GNU/Linux distro package managers, an official Docker repository etc.) #324
Comments
I think putting an official image on docker hub would be nice, as the official image could be quite small and easy to maintain. I personally don’t feel like maintaining or even advocating for distro packages, but other people are free to do so. If Janet does land in Debian or Ubuntu, I would work to ensure backwards compatibility somewhat as those are less rolling releases than things like arch, homebrew, and gentoo. It’s also worth noting that to have a good experience with Janet and jpm, having a C compiler toolchain installed is useful, as well as git. And once you have a toolchain and git, installing Janet from source is pretty simple. So I think for the docker image, it would be good to have a janet-micro image, which is like alpine Linux and with no git nor gcc, and a janet-development image which has gcc and git installed so jpm will work. |
On a related note, here is a script to build and install janet into /opt.
Edit: the above was tested on Debian (Buster) (i686, x86_64, ARMv5), Raspbian (Buster) (ARMv7), and macOS (Mojave) / Homebrew. |
By the way, the above script works on Windows 7 / MSYS2 if you make the following modifications to the
One of the test cases fails under Windows 7 / MSYS2:
|
I ran into issues on OS X (Tiger, PowerPC) due to missing |
Startup time is fantastic!
|
Not just the startup time! Janet is, like, crazy-fast.
That's executing this brainfuck interpreter on this input, and doing so practically immediately on an i5-5300U. Serious candidate for new sweet-spot Lisp. |
Ooh, what is |
Ah, that's just a little zsh function I have for running the thyme() {
n=$1; shift
repeat $n do
(time $* > /dev/null) 2>&1 | cut -d ' ' -f 9
done | sort -n | uniq -c
} It's not exactly surgical, but it works fine for off-the-cuff benchmarks. |
(sorry for the thread hijack!) A while back I used a trivial (non-tail-recursive) fibonacci benchmark to compare startup latency and raw function-call throughput of some scheme interpreters: https://gist.github.com/cellularmitosis/aa3001c8d5a961f7b382f6576978b644 Today I updated this by adding Clojure, Planck, Joker, and Janet. Again, Janet's startup latency is crazy! Additionally, its throughput is also impressive, when you consider that Chez, Clojure, Planck, Racket are all JIT'ed. I should add Guile 3.x, as that includes as JIT as well. |
You could use the open build server to build rpm and Deb packages and docker images. |
What are you talking about? Among all languages I tried, janet integrates the best with linux distribution package managers. Raku was the second best in terms of distro integration. Raku is pretty good, too. I already integrated janet and jpm modules with gentoo linux and arch linux. |
@amano-kenji who are you addressing? My request here is that janet be in the official distributions, which is more of a maintenance request and not denying what you've stated (that janet is very portable).
Maybe my original intent was more to press for the advocacy steps to promote janet interest in those distribution channels - obviously the debian/arch maintainers are unlikely to read/respond to this thread, so such a request for action would probably have to originate there and not here 😄 |
Janet runs quite nicely in a base alpine docker image as such:
If you were to make an official repo on docker hub, you could allow people to run this very small image of a janet repl/runtime with no more needed than:
While also serving as a strong base for a build image.
Similarly, having "pacman -S janet" or "apt-get install janet" just work out of the box would really help with proliferating the language.
thoughts?
The text was updated successfully, but these errors were encountered: