Hi Neil, Neil Jerram <n...@ossau.homelinux.net> writes:
> Hi, this is a report for Guile 2.2: > > neil@henry:~$ guile --version > guile (GNU Guile) 2.2.3 > Packaged by Debian (2.2.3-deb+1-3ubuntu0.1) > > I'm seeing something that looks like a line or sexp length limit when > reading from a terminal. Sample inputs are in the attached file. > > > > If I run guile in a terminal (GNOME Terminal 3.28.2), select the first > block from the file, and use my middle mouse button to paste it into the > guile prompt, I get the expected answer: > > $4 = 139 > scheme@(guile-user)> > > If I do the same with the second block, I get no response, and it > appears that Guile has hung in some way. I have to type C-c to get a > new prompt: > > ^C^CWhile reading expression: > User interrupt > scheme@(guile-user)> > > The max line length for the first block is 4087. For the second it's > 4113. Could there be a 4K buffer or limit involved somewhere? Indeed, I can reproduce the same issue when pasting into an Emacs shell buffer. I've verified that Guile only receives the first 4095 bytes of the first line. The following characters from the end of the first line are lost: A AAAA" "Aub"))))) So the second and third lines of the input become part of the string literal whose closing quote was lost, and Guile's reader continues to wait for a closing quote. If, after pasting this, you type another close quote, 5 close parens, and then repaste the last two lines, it will print the garbled input and return to a prompt. Anyway, to make a long story short, after some debugging, I found that precisely the same truncation of the first line happens when using 'cat' from GNU coreutils. Simply type 'cat' and paste the same text, and you'll see that in the output, only the first 4095 bytes of the first line were retained. So, I'm not sure where the problem is, but it's not a problem in Guile. Regards, Mark