This is really great news.

I’m finding that the new REPL has trouble on OS X if you give it input that 
starts with a tab. For example, the input "\tP = 1” seems to execute an empty 
expression rather than assign 1 to P.

 — John

On Mar 29, 2014, at 12:59 PM, Stefan Karpinski <ste...@karpinski.org> wrote:

> Good news, everyone! The pure-Julia read eval print loop (REPL) that Keno 
> Fischer developed and Mike Nolta integrated into base Julia has just been 
> merged. There are a number of nice things about changing from the old REPL to 
> this new one, in no particular order:
> The old REPL used the GNU readline library, which we had hacked far beyond 
> what it was ever meant to do. This made modifying it a bit terrifying and 
> thus issues with it tended to get ignored or shelved as "we'll be able to do 
> that in the new REPL".
> The new REPL, is pretty clean, simple Julia code. Seriously – terminal 
> support, line editing, and the REPL itself are less than 2000 lines of code – 
> total. This works out to a net code reduction of 33233 lines of code (GNU 
> readline is 34640 lines of C), while gaining functionality. That has to be a 
> project record.
> The new code is infinitely easier to modify, fix and improve, so 
> REPL-replated bugs will probably get fixed lickety split going forward.
> The old GNU readline REPL was one of our GPL library dependencies that make 
> the total Julia "product" GPL. We'd like to shed these or make them optional 
> to allow for a non-GPL, MIT-licensed Julia distribution and this is a major 
> step toward that goal.
> The new REPL code already has fancy features that you wouldn't even think 
> about doing with readline. Try typing "?" or ";" at the prompt and see the 
> REPL mode change form "julia>" to "help>" or "shell>". Cool, huh?
> The new REPL is noticeably snappier than the old one. Combined with the 
> static compilation of julia introduced in 0.3, going from zero to REPL is 
> pretty quick these days.
> Since full-fledged line editing functionality is now built into Base Julia, 
> we can use it everywhere without worrying what libraries people have 
> installed. Once we settle on a good API, you can expect that user code that 
> needs to prompt for input will be just as slick as the REPL itself.
> There will, of course, be some hitches and road bumps, but now that this is 
> merged and everyone using Julia master will be testing it, they should get 
> sorted out in short order. Much applause for Keno and Mike for this excellent 
> work.
> 
> Stefan
> 
> <good news everyone.jpg>

Reply via email to