Promoting to Complex

Patrick R. Michaud pmichaud at pobox.com
Mon Sep 27 17:01:38 UTC 2010


On Mon, Sep 27, 2010 at 11:34:37AM -0400, Paul C. Anagnostopoulos wrote:
> At 9/27/2010 11:09 AM, Patrick R. Michaud wrote:
> 
>     On Sun, Sep 26, 2010 at 01:58:13PM -0400, Paul C. Anagnostopoulos wrote:
>     > Folks,
>     >
>     > Should PMC functions with partial complex ranges promote their result to
>     a
>     > Complex? For example, should sqrt(negative Float) produce a Complex?
>     > This issue does not pertain to native numbers, since we never promote
>     > them to PMCs.
> 
>     I would tend to vote "no" here.  Most languages would expect
>     sqrt(negative Float) to throw an exception, and if a language
>     wants the possibility of a complex result it's trivially simple
>     to promote a Float to a Complex prior to calling the function.
> 
> Throw an exception, or return NaN? Right now most math functions return NaN or
> garbage on range errors or on complex domains.

Returning NaN is fine.  I'm just wary of having Parrot auto-promote into an
entirely new class of objects (with different behaviors) -- otherwise someone
might be very surprised to have a bill or check created with "0+2i dollars".

Pm


More information about the parrot-dev mailing list