On Jun 3, 2006, at 23:45, Charles Reiss wrote:

<stm_frontend.pod>

<cite>

  =item new Px, .STMRef

Creates a new transactionally managed variable which initially contains
  a clone of Px.

</cite>

The C<new> opcode is defined as:

  new(out PMC, in INT)

That means that it is creating ("out") a new destination variable. it can't take an existing C<Px> PMC, because the register allocator diregards any existing register Px due to the "out" semantics of the opcode.
The 3-arg constructor is ok though.

I'd propose to change the stm opocode syntax to that one used in Parrot ops files, as e.g. in:

  $ perldoc src/ops/pmc.ops

leo

Reply via email to