Subject: Re: bug#33403: [Geiser-users] Data length limit in Guile/Geiser/Scheme evaluation

From: Neil Jerram <[email-masked]>
Date: Fri, 16 Nov 2018 10:44:57 +0000

Mark H Weaver <[email-masked]> writes:

> This is a documented limitation in Linux's terminal handling when in
> canonical mode.  See the termios(3) man page, which includes this text:
>
>    Canonical and noncanonical mode
>        
>        The setting of the ICANON canon flag in c_lflag determines
>        whether the terminal is operating in canonical mode (ICANON set)
>        or noncanonical mode (ICANON unset).  By default, ICANON is set.
[...]
>        * The maximum line length is 4096 chars (including the
>          terminating newline character); lines longer than 4096 chars
>          are truncated.  After 4095 characters, input processing (e.g.,
>          ISIG and ECHO* processing) continues, but any input data after
>          4095 characters up to (but not including) any terminating
>          newline is discarded.  This ensures that the terminal can
>          always receive more input until at least one line can be read.
>
> Note that last item above.

Awesome; thank you Mark.

So possibly this limit can be removed, in my Org/Geiser context, by
evaluating (system* "stty" "-icanon") when initializing the Geiser-Guile
connection.  I'll try that.  Will the terminal that that 'stty' sees be
the same as Guile's stdin?

Jao, if that works, I wonder if it should be the default for Geiser?  It
appears to me that Geiser shouldn't ever need the features of canonical
mode.  Is that right?

Anyway, I'll see first if the stty call is effective.

    Neil