Re: [Rd] RFC: "loop connections"

From: Martin Maechler <>
Date: Sat 27 Aug 2005 - 10:18:16 GMT

>>>>> "David" == David Hinds <> >>>>> on Mon, 22 Aug 2005 23:34:15 +0000 (UTC) writes:

    David> I've just implemented a generalization of R's text connections, to
    David> also support reading/writing raw binary data.  There is very little
    David> new code to speak of.  For input connections, I wrote code to populate
    David> the old text connection buffer from a raw vector, and provided a new
    David> raw_read() method.  For output connections, I wrote a raw_write() to
    David> append to a raw vector.  On input, the mode (text or binary) is
    David> determined by the data type of the input object; on output, I use the
    David> requested output mode (i.e. "w" / "wb").  For example:

> con <- loopConnection("r", "wb")
> a <- c(10,100,1000)
> writeBin(a, con, size=4)
> r
     [1] 00 00 20 41 00 00 c8 42 00 00 7a 44
> close(con)
> con <- loopConnection(r)
> readBin(con, "double", n=3, size=4)
     [1] 10 100 1000
> close(con)

    David> I think "loop connection" is a better name for this
    David> sort of connection than "text connection" was even
    David> for the old version; that confuses the mode of the
    David> connection (text vs binary) with the mechanism (file,
    David> socket, etc).


In the mean time, I think it has become clear that "loopconnection" isn't necessarily a better name, and that textConnection() has been there in "the S litterature" for a good reason and for quite a while.
Let's forget about the naming and the exact UI for the moment.

I think the main point of David's proposal is still worth consideration: One way to see text connections is as a way to treat some kind of R objects as "generalized files" i.e., connections. And AFAICS David proposes to enlarge the kind of R objects that can be dealt with as connections
  from {"character"}
  to {"character", "raw"}
something which has some appeal to me.
IIUC, Brian Ripley is doubting the potential use for the proposed generalization, whereas David makes a point of someone else (the 'caTools' author) having written raw2bin / bin2raw function for a related use case.

Maybe you can elaborate on the above a bit, David? In any case, as you might have guessed by now, R-core would have been more positive to a proposal to generalize current textConnection() - fully back-compatibly - rather than renaming it first.

Best regards,
Martin mailing list Received on Sat Aug 27 20:23:35 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:19 GMT