[erlang-questions] why syntax error

Geoff Cant nem@REDACTED
Thu Apr 15 00:48:36 CEST 2010



Robert Virding <rvirding@REDACTED> writes:

> There is no no printed representation of pids (process ids) or ports
> which can be read in to return the pid or port. So #Port<0.2808> and
> <0.1112.0> is not valid syntax.
>
> This is not accidental but deliberate as creating ports/pids in this
> fashion is very unsafe and can really screw things up.
>
> Robert

I'd agree it's not something you should want often.

That said, I wouldn't mind a '[{debugging, production}, {please,
help_help_help}]' option for the shell that would add reader syntax
(only in the shell) for #Port<X.Y.Z> and <X.Y.Z> so that I could copy
and paste pids/ports from log messages and debugging output right back
into new commands. Would save me typing pid(X,Y,Z) and/or
list_to_pid("<X.Y.Z>") quite so often.

The standard OTP disclaimer[1] would of course would apply.

-- 
Geoff Cant

[1] I, <name of the developer> undersigned, do hereby acknowledge that I
    know that what I'm about to do is generally a bad idea. The OTP team
    documented that it was a bad idea, explained why it was a bad idea,
    generally tried to encourage me not to do it and yet I am going to
    do it anyway.

    When my hubris leads me to trash the production cluster, not only do
    I disclaim any right to get mad, complain on the mailing list or
    twitter, I will in fact praise the OTP team for their foresight and
    volunteer to write an even sterner warning in the documentation for
    future reference.

    Should I break this agreement by uttering so much as a groan when I
    use this undocumented/deprecated/debugging-only function/feature
    shoot myself in the foot, I promise to buy the OTP team a round at
    the next Erlounge.


More information about the erlang-questions mailing list