Hi Sven, On Wed, Apr 11, 2018 at 1:25 PM, Sven Van Caekenberghe <[email protected]> wrote:
> > > > On 11 Apr 2018, at 21:44, Stephane Ducasse <[email protected]> > wrote: > > > > I did not know about the NeoConsole. Nice because I wanted to build a > > little REPL for my minilanguage implementation. > > You are of course welcome to look at it. > But it is Pharo specific. > I use it to be able to hook/look into running headless server images. > For this it is super handy. > Cool usage! Could you tell me whether you type Smalltalk expressions into this to examine your running server? The answer will be used in a related discussion on a mailing list not too distant from this one ;-) > > > Stef > > > > On Wed, Apr 11, 2018 at 8:47 PM, Sven Van Caekenberghe <[email protected]> > wrote: > >> Alistair, > >> > >>> On 11 Apr 2018, at 19:42, Sven Van Caekenberghe <[email protected]> wrote: > >>> > >>> I will send you some code later on. > >> > >> Today I arranged for my NeoConsole code (that normally works over a > network connection) to work over stdio. Although I am not yet happy with > every aspect of the implementation, it does work (using unaltered Zn > streams and code). The foll > >> > >> $ cat /etc/issue > >> Ubuntu 16.04.4 LTS > >> $ mkdir pharo7 > >> $ cd pharo7/ > >> $ curl get.pharo.org/70+vm | bash > >> % Total % Received % Xferd Average Speed Time Time Time > Current > >> Dload Upload Total Spent Left > Speed > >> 100 3036 100 3036 0 0 36799 0 --:--:-- --:--:-- > --:--:-- 37024 > >> Downloading the latest 70 Image: > >> http://files.pharo.org/get-files/70/pharo.zip > >> Pharo.image > >> Downloading the latest pharoVM: > >> http://files.pharo.org/get-files/70/pharo-linux-stable.zip > >> pharo-vm/pharo > >> Creating starter scripts pharo and pharo-ui > >> On a 64-bit system? You must enable and install the 32-bit libraries > >> Please see http://pharo.org/gnu-linux-installation for detailed > instructions > >> $ ./pharo Pharo.image config http://mc.stfx.eu/Neo > ConfigurationOfNeoConsole --install=bleedingEdge > >> 'Installing ConfigurationOfNeoConsole bleedingEdge' > >> > >> Loading 1-baseline of ConfigurationOfNeoConsole... > >> Fetched -> Neo-Console-Core-SvenVanCaekenberghe.24 --- > http://mc.stfx.eu/Neo --- http://mc.stfx.eu/Neo > >> Loaded -> Neo-Console-Core-SvenVanCaekenberghe.24 --- > http://mc.stfx.eu/Neo --- cache > >> ...finished 1-baseline > >> $ ./pharo Pharo.image eval NeoConsoleStdio run > >> Neo Console Pharo-7.0+alpha.build.760.sha. > d2734dcabda799803c307365bcd120f92211d34a (32 Bit) > >> pharo> 1+2 > >> > >> 3 > >> pharo> 42 factorial > >> > >> 1405006117752879898543142606244511569936384000000000 > >> pharo> Stdio stdin > >> > >> StdioStream: #stdin > >> pharo> == > >> self: StdioStream: #stdin > >> class: StdioStream > >> file: a File > >> handle: #[148 213 25 107 160 197 105 247 0 0 0 0 0 0 0 0 0 1 255 1] > >> forWrite: false > >> peekBuffer: nil > >> pharo> show StdioStream>>#atEnd > >> StdioStream>>#atEnd > >> atEnd > >> > >> ^ file atEnd > >> pharo> get process.list > >> Morphic UI Process > >> Delay Scheduling Process > >> Low Space Watcher > >> Input Event Fetcher Process > >> Idle Process > >> WeakArray Finalization Process > >> CommandLine handler process > >> pharo> quit > >> Bye! > >> a NeoConsoleStdio > >> > >> I know there are many approaches to a REPL, I don't claim mine is best, > it is just the one that I have been using for years. > >> > >> In the above, I do not depend on EOF - just to be clear. The point > being that there is no immediate fundamental problem. > >> > >> But there is something wrong with what is returned by Stdio stdin > >> > >> Sven > >> > >> > >> > > > > > -- _,,,^..^,,,_ best, Eliot
