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 <[email protected]> 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>
