#876: Deprecate pushaction, pushmark, popmark
-------------------------+--------------------------------------------------
Reporter: whiteknight | Owner:
Type: RFC | Status: new
Priority: normal | Milestone: 2.0
Component: none | Version: 1.4.0
Severity: medium | Keywords: stack
Lang: | Patch:
Platform: |
-------------------------+--------------------------------------------------
I suggest we deprecate the three opcodes pushaction, pushmark, and
popmark. These three opcodes are not used much that I am aware of,
especially not in PCT. I am also having a lot of trouble personally coming
up with compelling use-cases for them that couldn't be better resolved
through other methods.
pushmark and popmark especially seem to be worthless considering how
emaciated the stacks implementation has become. At the moment, there are
almost no ways to use this feature.
The documentation for push action claims that pushed actions are fired
when the dynamic environment is unwound due to a subroutine return or an
exception being thrown. However, the dynamic_env stack is not unwound in
either of these cases, and pushed actions will not be fired then. Because
of this limitation, pushaction cannot be used as a general "atexit"
mechanism for subroutines (although I can see some benefit in having such
a mechanism, and suggest maybe we could create one). The only way
apparently to trigger pushed actions is to use the pushmark/popmark
combination.
Also, besides firing actions in this way, pushmark and popmark currently
serve no other purpose that I can discern.
I suggest we deprecate all these opcodes now, so we can rip them out
completely after 2.0.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/876>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets