This is really great work Keno and Mike.

I think a great improvemnt would be to make completions were a bit more 
modular.  That way custom completion callbacks could be added in at runtime 
in your .juliarc file.  I'm trying to get zsh to do the shell completions 
but that would only interest people who use zsh :-)

Do we have an ETA on when 0.3 will be released?  This seemed like one of 
the bigger blockers.

Best,
Jake

On Saturday, March 29, 2014 3:59:19 PM UTC-4, Stefan Karpinski 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<https://github.com/JuliaLang/julia/blob/master/base/Terminals.jl>, 
>    line 
> editing<https://github.com/JuliaLang/julia/blob/master/base/LineEdit.jl>, 
>    and the REPL 
> itself<https://github.com/JuliaLang/julia/blob/master/base/REPL.jl>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
>
>

Reply via email to