Hi Sven,

On Wed, Apr 11, 2018 at 1:25 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:


> On 11 Apr 2018, at 21:44, Stephane Ducasse <stepharo.self@gmail.com> 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 <sven@stfx.eu> wrote:
>> Alistair,
>>
>>> On 11 Apr 2018, at 19:42, Sven Van Caekenberghe <sven@stfx.eu> 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