Thanks, Cesko, for more debugging. As you are already compiling the
code, could you please try increasing CONSOLE_BUFFER_SIZE in
./include/Defn.h from 4096 to some very large value (e.g. 1024 times),
rebuild R and check if the problems (not all bytes received correctly,
visual corruption) go away for texts of the size you looked at before?
Thanks,
Tomas
On 6/13/21 10:59 AM, Voeten, C.C. wrote:>
> Thanks for looking into this! I've just compiled today's R-devel
> snapshot, and it shows the same issue. extSoftVersion() from that build:
>
> ???????????????????????????????????????????? zlib
> ???????????????????????????????????????? "1.2.11"
> ??????????????????????????????????????????? bzlib
> ???????????????????????????? "1.0.8, 13-Jul-2019"
> ?????????????????????????????????????????????? xz
> ????????????????????????????????????????? "5.2.5"
> ???????????????????????????????????????????? PCRE
> ?????????????????????????????? "10.37 2021-05-26"
> ????????????????????????????????????????????? ICU
> ?????????????????????????????????????????? "69.1"
> ????????????????????????????????????????????? TRE
> ??????????????????????? "TRE 0.8.0 R_fixes (BSD)"
> ??????????????????????????????????????????? iconv
> ???????????????????????????????????? "glibc 2.33"
> ???????????????????????????????????????? readline
> ??????????????????????????????????????????? "8.1"
> ???????????????????????????????????????????? BLAS
> "/home/cesko/r-devel/usr/lib64/R/lib/libRblas.so"
>
> Thanks for your observation that it works on your system - that
> implicates my readline-8.1 as being the culprit. Unfortunately, I
> don't dare attempt to downgrade it on my system to test, and
> regardless we still don't know why other readline-using programs can
> paste in the same text with no issues.
>
>
> I've made some further progress on debugging: I noticed that text
> <4096 bytes in size arrives fine (although sometimes with visual
> corruption), but text >4096 bytes doesn't. Pasting in the result of
> perl -e 'print ("if(T)cat(\"a\")\n"x292)' works
as expected, changing
> the 292 to 293 causes R to print a bunch of a's followed by the source
> code of the cat function.
>
>
> To still answer your question: with mgcv::gam, pasting in the first 94
> lines (as printed by R with options(width=80)) produces a visual
> corruption of the prompt (it reads "G$family <-
> familyar.summaryintercept = drop.intercept)) control$scalePenalty,")
> but if I press return and type the closing "}" the code has
actually
> arrived just fine. The text up to and including that line is 4023
> bytes in size; when trying to add in more, it fails again.
>
>
> Cesko
> ------------------------------------------------------------------------
> *Van:* Tomas Kalibera <tomas.kalibera at gmail.com>
> *Verzonden:* zondag 13 juni 2021 10:00:27
> *Aan:* Voeten, C.C.; r-devel at r-project.org
> *Onderwerp:* Re: [Rd] Bracketed paste issues on Linux
> Thanks for the report. Could you please also post output from
> extSoftVersion() ?
>
> What happens if you paste just a smaller part of the code before the
> long line? Is the output still corrupted? If so, is it corrupted the
> same way, at the same places?
>
> (It seems to be working on my Ubuntu 20.04, readline 8.0, R-devel)
>
> Thanks
> Tomas
>
> On 6/12/21 3:44 PM, Cesko Voeten wrote:
> > I am on an up-to-date Arch Linux system, using the GNOME desktop
> environment. By default, this turns on bracketed paste in terminal
> emulators; for those not familiar with this concept: it makes it so
> that if you paste in multiple lines of code, they are received in a
> single chunk. This works just fine with R, up to a certain amount of
> text: for chunks past a certain length, some amount of text in the
> middle of the chunk goes missing. For example, if I print the source
> of mgcv::gam into my R session and then attempt to copy and paste it
> back in, what I end up with is:
> >
> > <snip 53 perfectly good lines>
> >????????????? pmf$formula <- gp$pf
> >????????????? pmf <- eval(pmf, parent.frame())
> > }?? objectvironment(attr(object$pred.formula, "full")) <-
> .GlobalEnv<- environment(object$terms) <- environment(object$pterms)
> <- .GlobalEnv
> >
> > So:
> >?? - the first 55 lines in this example arrive perfectly fine
> >?? - then a bunch go completely missing
> >?? - then various parts of the last few lines are jumbled together
> into one line
> >
> > For reference on the third point, the actual last 10 lines of my
> version of mgcv::gam are:
> >????? if (is.null(object$deviance))
> >????????? object$deviance <- sum(residuals(object,
"deviance")^2)
> >????? names(object$gcv.ubre) <- method
> >????? environment(object$formula) <-
environment(object$pred.formula)
> <- environment(object$terms) <- environment(object$pterms) <-
.GlobalEnv
> >????? if (!is.null(object$model))
> >????????? environment(attr(object$model, "terms")) <-
.GlobalEnv
> >????? if (!is.null(attr(object$pred.formula, "full")))
> >????????? environment(attr(object$pred.formula, "full"))
<- .GlobalEnv
> >????? object
> > }
> >
> > parts of which can be recognized in the last line of what was pasted.
> > Naturally, the pasted function is not parsed properly: if I press
> return I get the expected "+" signaling that the REPL is
expecting
> more input. So it is not merely a visual issue.
> >
> > I can reproduce this both in GNOME Terminal and in xterm, so it is
> not a bug specific to my terminal emulator. In addition, pasting the
> exact same code into either vim or nano running within the same
> terminal works fine. So I believe that this may be a bug in R itself.
> It's easy to work around by disabling bracketed paste in the terminal,
> but it would be great if this could actually be made to work,
> especially given that bracketed paste is the default on my desktop
> environment.
> >
> > If given an account, I would be happy to file this as a bug; let me
> know if that is desired. In the meantime, have others run into this
> and perhaps identified the root cause and/or a different workaround?
> >
> > Thanks,
> > Cesko
> >
> > sessionInfo():
> >
> > R version 4.1.0 (2021-05-18)
> > Platform: x86_64-pc-linux-gnu (64-bit)
> > Running under: Arch Linux
> >
> > Matrix products: default
> > BLAS/LAPACK: /opt/intel/mkl/lib/intel64/libmkl_gf_lp64.so
> >
> > locale:
> >?? [1] LC_CTYPE=nl_NL.UTF-8?????? LC_NUMERIC=C
> >?? [3] LC_TIME=nl_NL.UTF-8??????? LC_COLLATE=nl_NL.UTF-8
> >?? [5] LC_MONETARY=nl_NL.UTF-8 LC_MESSAGES=nl_NL.UTF-8
> >?? [7] LC_PAPER=nl_NL.UTF-8?????? LC_NAME=C
> >?? [9] LC_ADDRESS=C?????????????? LC_TELEPHONE=C
> > [11] LC_MEASUREMENT=nl_NL.UTF-8 LC_IDENTIFICATION=C
> >
> > attached base packages:
> > [1] stats???? graphics? grDevices utils???? datasets methods?? base
> >
> > loaded via a namespace (and not attached):
> > [1] compiler_4.1.0? Matrix_1.3-4??? mgcv_1.8-36 splines_4.1.0
> > [5] nlme_3.1-152??? grid_4.1.0????? lattice_0.20-44
> >
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> <https://stat.ethz.ch/mailman/listinfo/r-devel>
[[alternative HTML version deleted]]