[ESS] process-send-string 500 char limitation

Stephen Eglen S@J@Eg|en @end|ng |rom d@mtp@c@m@@c@uk
Mon Apr 13 19:21:32 CEST 2015


> Is there a way to overcome this limitation and send potentially large
> strings as a single piece? I need this because I worked out a way to
> annotate pieces of code so that they show file and line number info,
> using Base.include_string in Julia, but this breaks with
> PROCESS-SEND-STRING because Julia has no + prompt like R.

I couldn't see a way, sorry.  It looks to be hardcoded into C.  This is
from the elisp manual:

----------------------------------------------------------------------

An asynchronous process is controlled either via a "pty"
(pseudo-terminal) or a "pipe".  The choice of pty or pipe is made when
creating the process, based on the value of the variable
`process-connection-type' (see below).  Ptys are usually preferable for
processes visible to the user, as in Shell mode, because they allow for
job control (`C-c', `C-z', etc.)  between the process and its children,
whereas pipes do not.  For subprocesses used for internal purposes by
programs, it is often better to use a pipe, because they are more
efficient, and because they are immune to stray character injections
that ptys introduce for large (around 500 byte) messages.  Also, the
total number of ptys is limited on many systems and it is good not to
waste them.
----------------------------------------------------------------------

perhaps you are seeing the "stray character injections" messing things
up?

This link is relevant:
https://lists.gnu.org/archive/html/emacs-devel/2010-08/msg00209.html

There is one thing you might try: chunking your string into smaller (200
bytes) chunks and sending it yourself: see code at the end of:

http://trac.haskell.org/haskeline/ticket/79


S




More information about the ESS-help mailing list