[SLOF] [PATCH] Fix output word
Laurent Vivier
lvivier at redhat.com
Wed Oct 4 19:34:58 AEDT 2017
On 04/10/2017 10:33, Alexey Kardashevskiy wrote:
> On 27/09/17 18:10, Laurent Vivier wrote:
>> On 27/09/2017 09:25, Thomas Huth wrote:
>>> On 26.09.2017 13:28, Laurent Vivier wrote:
>>>> We can select the console output, but it does not really work
>>>>
>>>> Implement term-io-emit, as we have term-io-key to really
>>>> send characters to the output selected by stdout.
>>>>
>>>> Signed-off-by: Laurent Vivier <lvivier at redhat.com>
>>>> ---
>>>> slof/fs/term-io.fs | 14 ++++++++++++++
>>>> 1 file changed, 14 insertions(+)
>>>>
>>>> diff --git a/slof/fs/term-io.fs b/slof/fs/term-io.fs
>>>> index 52ce12a..a0b0f4b 100644
>>>> --- a/slof/fs/term-io.fs
>>>> +++ b/slof/fs/term-io.fs
>>>> @@ -40,6 +40,20 @@
>>>>
>>>> 1 BUFFER: (term-io-char-buf)
>>>>
>>>> +: term-io-emit ( char -- )
>>>> + s" stdout" get-chosen IF
>>>> + decode-int nip nip dup 0= IF 0 EXIT THEN
>>>> + swap (term-io-char-buf) c!
>>>> + >r (term-io-char-buf) 1 s" write" r@ $call-method
>>>> + drop
>>>> + r> drop
>>>> + ELSE
>>>> + [ ' emit behavior compile, ]
>>>> + THEN
>>>> +;
>>>
>>> While this is basically the right direction, I've got three concerns /
>>> remarks:
>>>
>>> 1) Please don't use TABs in Forth code (see Coding Style in README)
>>
>> Yes, sorry, I've seen that after having sent the patch.
>>
>>>
>>> 2) Have you checked whether it also works with VGA screens? The code in
>>> slof/fs/display.fs ticks to EMIT again ... it looks like it should
>>> work, but better test it first...
>>
>> In fact, it doesn't work... The serial console is mirrored to the VGA
>> display, and when we try to switch to the second serial console, only
>> the input moves (output stays on the first console and VGA).
>
>
> So, v2 is coming, right?
Yes, but I need some time to work on it...
Thanks,
Laurent
>
>>
>>>
>>> 3) Speed ... This rather code is called for every character that we
>>> print out. While it likely does not really matter for input, the
>>> output of text was always a rather critical thing in SLOF. Could
>>> you please do some speed measurements first? Something like:
>>>
>>> milliseconds 2000 0 do 41 emit loop milliseconds swap - cr .d cr
>>>
>>> ... and then compare the values before and after your change.
>>
>> Without:
>>
>> 797 796 807
>>
>> With:
>>
>> 4772 4710 4782
>>
>> So it's 6 times slower... what can we do for that?
>>
>> Thanks,
>> Laurent
>> _______________________________________________
>> SLOF mailing list
>> SLOF at lists.ozlabs.org
>> https://lists.ozlabs.org/listinfo/slof
>>
>
>
More information about the SLOF
mailing list