1) I´ve create a branch (branches/leo-ctx5) of my current work on getting pdd03 implemented

2) please give it a try

e.g.
  export SVNPARROT=https://svn.oerl.org/parrot
  cp -R trunk leo-ctx5
  cd leo-ctx5
  svn switch $SVNPARROT/branches/leo-ctx5

3) a lot is still broken but I hope mostly just PASM syntax using old calling conventions

Things that need changes:

* compile opcode

It did a function call under the hood, which isn't fixed. But I think, we should just toss the compile opcode instead. So when you had:

   .local pmc comp, r
    comp = compreg "PIR"
    r = compile comp, code

just use:

    r = comp(code)

It's simpler and allows us to pass arguments to the compiler eventually.

* optional arguments

PGE defines e.g. a sub emit:

  .sub emit ( PMC code, STR fmt, [ STR str1, STR str2, INT int1 ] )

with the optional params str1, str2, int1. I've set the :optional bit accordingly. But when calling the sub, you can't use the INT argument inmidst of STR arguments any more:

  emit (P, S, S, S)   # ok
  emit (P, S, S, I)   # ok
  emit (P, S, I, S)   # err

I've reordered a lot of these arguments, but might have missed some - or messed a few up - some PGE tests are still failing.

* argc{I,S,P,N}

These are now opcodes instead of variables. This changes the usage slightly:

  $I0 = argcI       # ok
  if argcI < 2 ...  # err

I'd be glad if folks can go through the failing tests (one exception tests hangs) and change old PASM call syntax to new.

Thanks,
leo


Reply via email to