Thu Oct 9 05:58:26 CEST 2008
Robert Virding wrote:
> Yes, it is easy to get around this, but no it is not. The io module was
> designed to send the formatting computations to the io-server to be done
> there. The group leader is an io-server as well as being group leader (see
> my Erlang Rationale for a bit better explanation). As I see it you have the
> following options:
> - Do not use io:fwrite or other formatting io calls directly but instead do
> io:put_chars(io_lib:fwrite(Fmt, Args)) instead. This ensures that only an
> iolist is sent to the group leader.
This would be quite limiting as I cannot control nested functions (that
may have io calls) that are being called by functions executed via RPC.
> - Modify io.erl to do this for automatically for you and use this private
> version. This is not difficult and should cause no other problems.
I think this is the most convenient option out of the three. What was
the rationale of having the io server do the formatting as opposed to
the node generating the io output request? Was it to decrease the
possible load on the evaluating node?
> - Modify your program so that you start a local group leader/io-server which
> does the formatting and just send the output iolists to the otp.net process.
The otp.net node already has a mailbox for getting messages destined to
the io_server, and rpc requests carry the pid of that mailbox. Ideally
I wouldn't need to have another "proxy" io_server on the Erlang side
that would format and send requests to the connected otp.net hidden node.
> Do you do any input from otp.net?
What I did as far as the input was concerned - I wrote a parser of
Erlang terms that took a string (such as "M:F(Arg1, Arg2, ...)" from the
otp.net's stdin or a UI text box, converted it to an AST corresponding
to a valid Erlang term in external term format, and did an RPC call to a
connected Erlang node.
Though, the purpose of this exercise was not to compete with werl, but
rather offer RPC (and optional shell-like capabilities) to a rich UI
More information about the erlang-questions