Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
IHaskell – A Haskell kernel for Jupyter (github.com/gibiansky)
132 points by sndean on Oct 25, 2016 | hide | past | favorite | 14 comments


In case it was confusing for anyone else – Jupyter is the notebook software, and IPython is the kernel. The name change was to show Jupyter is capable of running more than just Python, and that it's no longer a monolithic project.


https://github.com/ipython/ipython/wiki/IPython-kernels-for-...

And plenty of others: julia, ruby, js, coffescript, C#, R, F#, go, scala, erlang, exlixr, ocaml, forth, perl, php, octave, bash, powershell, clojure, mathmatica, lua, scheme, processing, brainfuck, prolog, lisp, tcl, c and even more.


So it's a Haskell kernel for Jupyter, not iPython, or do "kernels" have other "kernels" below them?


It's a Haskell kernel for Jupyter. The nomenclature is a bit outdated, with the title (and a few other places) referring to IPython when they mean Jupyter; this is because a few years back there was no such thing as Jupyter, and the entire thing was called IPython, so it was accurate to say that IHaskell was a kernel for IPython.


Yes it is a Haskell kernel for Jupyter.


I wonder why it doesn't support Windows, especially with Haskell toolchain already available on Windows?


Usually it is about resources.

Half of the commits are from single person, and if he doesn't have or strongly care about Windows, the support just wouldn't be there to maintain it.

That doesn't mean you are forbidden to try it ;)

I have to admit, last I wanted to have IHaskell on windows, I just ran it in docker :-)


Spot on. Author of IHaskell here; written the majority of the IHaskell codebase, and, as you guessed, I haven't used Windows in over a decade.

That said, I am happy to help folks get it working natively under Windows. There is a somewhat challenging technical issue, which is that IHaskell uses the Haskell `unix` package, because it needs supports for creating and using pipes in order to intercept stdin, stderr, and stdout. I'm sure that this is somehow also doable on Windows, but it just takes someone who wants to dive in and get it working; I'd be happy to advise such a person and merge any changes they need to make.


I want to get involved with an open source project, I am familiar with Haskell and enthusiastic about making it more accessible. I've just completed an educational project where I've used iPython with my students and I would have used Haskell if the tooling were a bit smoother.

So far the entry barrier was too high for me but I want to reach out and ask if anyone is willing to hold my hand a little so that I might get over the initial hurdles. Could you suggest some entry points for me? A bug tracker, an IRC channel, a github issues page? Should I just hack on it on my own until I have a specific unit of work to contribute, or is there someone who could use my help with the coding and provide guidance as to the organizational side of things?


The second thing is that Windows 10 could actually use this naively due to bash become apart of some of Windows 10 through the Anniversary Edition of Windows 10.


For Windows, "HyperHaskell" was recently announced: https://github.com/HeinrichApfelmus/hyper-haskell It's not an IPython kernel, and nowhere as full-featured, but it looks interesting.


What are the security implications for hosting IHaskell on a server and giving public access to notebooks? For myself, Emacs + Intero + stack makes a near perfect development environment, but IHaskell looks great for writing online books and educational material.


Once notebooks have been created, they are just json files that get rendered to html so there's no haskell or python code running. If you're allowing other people to upload notebooks though, you'll want to sandbox them inside an iframe to prevent xss attacks - at work we do this, but allow some channels of communication using the postmessage API.


What happens when I execute a notebook that you wrote, that had Haskell magics in it? Surely the server will run that code? And it might have exploitable bugs?




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: