Ticket #1754 (assigned deprecation)

Opened 4 years ago

Last modified 3 years ago

The Scalar PMC

Reported by: Paul C. Anagnostopoulos Owned by: whiteknight
Priority: minor Milestone:
Component: core Version: master
Severity: medium Keywords:
Cc: Language:
Patch status: Platform: all

Description

The Scalar PMC is quite confusing. Why do some scalars inherit from it and others don't? What exactly does it provide? For example, it appears to be the only PMC providing logical_not. Why does it mean to provide scalar and why does PDD17 say that Foo is the only PMC to do it?

Perhaps the Scalar PMC should be eliminated, or perhaps it should be refactored with the Default class. At least it should be clearly documented.

Change History

Changed 4 years ago by coke

  • type changed from cage to RFC

Changed 4 years ago by whiteknight

  • owner set to whiteknight

Changed 4 years ago by whiteknight

I strongly recommend deprecation and removal. I will raise the issue at the next #parrotsketch meeting.

Changed 4 years ago by cotto

I'd like to see this PMC go away too. It's a confusing leftover from when Parrot thought it was Perl. Unfortunately it'll be tricky to remove because a lot of code secretly depends on some of the multis it provides. Removing it will mean removing its inheritance from Boolean, String, Integer and Float, plus making sure all those multis go somewhere and making sure that we don't break any HLLs in the process. I'm not sure if it'll be worth the effort, but someone is welcome to take this on.

Changed 4 years ago by whiteknight

  • status changed from new to assigned
  • platform set to all
  • type changed from RFC to deprecation
  • milestone set to 3.1

I've just added this PMC to DEPRECATED.pod.

Changed 3 years ago by gerd

  • milestone changed from 3.1 to 3.2

Changed 3 years ago by gerd

  • milestone changed from 3.2 to 3.3

Changed 3 years ago by whiteknight

  • version changed from 2.6.0 to master
  • milestone 3.3 deleted

There has been no movement on this ticket yet, and I've removed milestone information from the ticket. We are planning to move our object model to 6model in the near- or medium-term future, and I suspect that work will help us to break our dependency on Scalar, or make other good changes in this direction. This ticket is going to be on hold while we work out what direction we need to take.

Changed 3 years ago by jkeenan

  • component changed from none to core
Note: See TracTickets for help on using tickets.