Ticket #1892 (new deprecation)

Opened 4 years ago

Last modified 3 years ago

[DEPRECATED] Complex PMC

Reported by: plobsing Owned by: whiteknight
Priority: normal Milestone: 2.11
Component: core Version: 2.10.0
Severity: medium Keywords:
Cc: Language:
Patch status: Platform: all

Description

This PMC is large and neglected. It's implementation is inefficient for the sole purpose of supporting behaviours that are unintuitive. It's code coverage is poor, and some of its operations return incorrect results.

These problems prevent it from being useful to users, so it will be removed.

Users that care about complex math are encouraged to implent their own alternative and make it public for code sharing and cooperation. An implementation by someone who cares about complex math stands a much better chance of being correct and well supported.

Change History

  Changed 4 years ago by whiteknight

  • owner set to whiteknight
  • platform set to all
  • component changed from none to core

After the 2.11 release I will start a separate extension project to provide an alternate complex PMC type. We can talk about removing the one in core after that alternate has matured and is able to be used by projects which require a Complex-like type.

follow-up: ↓ 3   Changed 4 years ago by dukeleto

If you tell me specific bugs in Complex PMC, I will try to fix them, but it sounds like people just want Complex out of core.

Are we kicking Complex out of core because it is does not belong, or because it currently is buggy?

If Complex leaves the nest, it would seem that Parrot-Data-Structures is a good place for it to live.

in reply to: ↑ 2   Changed 4 years ago by plobsing

Replying to dukeleto:

This was discussed at #ps on 2010-12-14 ( http://irclog.perlgeek.de/parrotsketch/2010-12-14#i_3087426).

If you tell me specific bugs in Complex PMC, I will try to fix them, but it sounds like people just want Complex out of core.

The hyperbolic-arc-transcendentals return incorrect values. This was only discovered when a GCI student tried to increase code coverage.

Are we kicking Complex out of core because it is does not belong, or because it currently is buggy?

IMHO it doesn't belong, and being buggy is a symptom.

Parrot does a lot of things and does some of them poorly. Being a numerics library is in this category. Let's do fewer things and do them better.

If Complex leaves the nest, it would seem that Parrot-Data-Structures is a good place for it to live.

follow-up: ↓ 5   Changed 4 years ago by whiteknight

This really raises a sort of philosophical question about what Parrot is and what we should try to provide. Do we try to provide a huge built-in library, even if our implementations of many types are suboptimal? Do we provide things that maybe people don't need, but we want to keep a bunch of things around anyway, just in case?

I agree with plobsing, It's better to do fewer things well than to do many things poorly. We can move Complex into it's own project where it can get better, more specialized attention and we can redo the interface so it becomes a better tool for people to use, when they need it.

in reply to: ↑ 4   Changed 3 years ago by jkeenan

Replying to whiteknight:

This really raises a sort of philosophical question about what Parrot is and what we should try to provide. Do we try to provide a huge built-in library, even if our implementations of many types are suboptimal? Do we provide things that maybe people don't need, but we want to keep a bunch of things around anyway, just in case? I agree with plobsing, It's better to do fewer things well than to do many things poorly. We can move Complex into it's own project where it can get better, more specialized attention and we can redo the interface so it becomes a better tool for people to use, when they need it.

whiteknight,

Can we get an update on the status of the issues discussed in this ticket?

Thank you very much.

kid51

Note: See TracTickets for help on using tickets.