[svn:parrot] r46116 - in branches/include_dynpmc_makefile: . compilers/data_json compilers/imcc compilers/json compilers/ncigen compilers/nqp compilers/pct compilers/pct/src/PAST compilers/pct/src/PCT compilers/pge compilers/pge/PGE compilers/pirc compilers/tge config/auto config/auto/cgoto config/auto/sizes config/auto/zlib config/gen config/gen/config_h config/gen/makefiles config/init docs docs/book/draft docs/book/pct docs/dev docs/pdds docs/project examples/benchmarks examples/c examples/config/file examples/embed examples/japh examples/json examples/languages/abc examples/languages/squaak examples/languages/squaak/src/parser examples/library examples/nci examples/pge examples/pir examples/pir/befunge examples/sdl examples/shootout examples/tutorial ext/Parrot-Embed ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot lib/Parrot lib/Parrot/Configure/Options lib/Parrot/Configure/Options/Conf lib/Parrot/Configure/Step lib/Parrot/Docs/Section lib/Parrot/Harness lib/Parr ot/OpTrans lib/Parrot/Ops2c lib/Parrot/Pmc2c lib/Parrot/Pmc2c/PMC ports/cpan ports/cygwin ports/debian ports/mandriva runtime/parrot/languages runtime/parrot/library runtime/parrot/library/CGI runtime/parrot/library/MIME runtime/parrot/library/Math runtime/parrot/library/ProfTest runtime/parrot/library/String runtime/parrot/library/TAP runtime/parrot/library/Test runtime/parrot/library/Test/Builder src src/call src/dynoplibs src/dynpmc src/gc src/interp src/io src/ops src/packfile src/pmc src/runcore src/string src/string/charset src/string/encoding t t/compilers/data_json t/compilers/imcc/reg t/compilers/imcc/syn t/compilers/json t/compilers/pct t/compilers/pge t/compilers/pge/p5regex t/compilers/pge/perl6regex t/compilers/tge t/configure/testlib t/distro t/dynoplibs t/dynpmc t/examples t/include t/library t/native_pbc t/oo t/op t/pharness t/pir t/pmc t/run t/src t/steps/auto t/steps/init/hints t/tools/install/testlib t/tools/ops2cutils tools/build tools/dev tools/install t ools/util

darbelo at svn.parrot.org darbelo at svn.parrot.org
Wed Apr 28 19:17:24 UTC 2010


Author: darbelo
Date: Wed Apr 28 19:17:12 2010
New Revision: 46116
URL: https://trac.parrot.org/parrot/changeset/46116

Log:
Sync branch with trunk.

Added:
   branches/include_dynpmc_makefile/config/auto/zlib/   (props changed)
      - copied from r46115, trunk/config/auto/zlib/
   branches/include_dynpmc_makefile/config/auto/zlib.pm
      - copied unchanged from r46115, trunk/config/auto/zlib.pm
   branches/include_dynpmc_makefile/examples/benchmarks/stress_strings.pir
      - copied unchanged from r46115, trunk/examples/benchmarks/stress_strings.pir
   branches/include_dynpmc_makefile/src/dynpmc/gziphandle.pmc
      - copied unchanged from r46115, trunk/src/dynpmc/gziphandle.pmc
   branches/include_dynpmc_makefile/t/compilers/data_json/   (props changed)
      - copied from r46115, trunk/t/compilers/data_json/
   branches/include_dynpmc_makefile/t/dynpmc/gziphandle.t
      - copied unchanged from r46115, trunk/t/dynpmc/gziphandle.t
   branches/include_dynpmc_makefile/t/steps/auto/zlib-01.t
      - copied unchanged from r46115, trunk/t/steps/auto/zlib-01.t
Replaced:
   branches/include_dynpmc_makefile/config/auto/zlib/zlib_c.in
      - copied unchanged from r46115, trunk/config/auto/zlib/zlib_c.in
   branches/include_dynpmc_makefile/t/compilers/data_json/from_parrot.t
      - copied unchanged from r46115, trunk/t/compilers/data_json/from_parrot.t
   branches/include_dynpmc_makefile/t/compilers/data_json/to_parrot.t
      - copied unchanged from r46115, trunk/t/compilers/data_json/to_parrot.t
Deleted:
   branches/include_dynpmc_makefile/META.yml
   branches/include_dynpmc_makefile/Makefile.PL
   branches/include_dynpmc_makefile/compilers/json/
   branches/include_dynpmc_makefile/compilers/ncigen/
   branches/include_dynpmc_makefile/compilers/nqp/
   branches/include_dynpmc_makefile/config/auto/cgoto/
   branches/include_dynpmc_makefile/config/auto/cgoto.pm
   branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CGP.pm
   branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CGoto.pm
   branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CPrederef.pm
   branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CSwitch.pm
   branches/include_dynpmc_makefile/ports/cpan/
   branches/include_dynpmc_makefile/t/compilers/json/
   branches/include_dynpmc_makefile/t/distro/meta_yml.t
   branches/include_dynpmc_makefile/t/steps/auto/cgoto-01.t
Modified:
   branches/include_dynpmc_makefile/   (props changed)
   branches/include_dynpmc_makefile/.gitignore
   branches/include_dynpmc_makefile/CREDITS
   branches/include_dynpmc_makefile/Configure.pl
   branches/include_dynpmc_makefile/DEPRECATED.pod
   branches/include_dynpmc_makefile/MANIFEST
   branches/include_dynpmc_makefile/MANIFEST.SKIP
   branches/include_dynpmc_makefile/MANIFEST.generated
   branches/include_dynpmc_makefile/NEWS
   branches/include_dynpmc_makefile/PBC_COMPAT
   branches/include_dynpmc_makefile/README
   branches/include_dynpmc_makefile/compilers/data_json/Defines.mak
   branches/include_dynpmc_makefile/compilers/data_json/Rules.mak   (contents, props changed)
   branches/include_dynpmc_makefile/compilers/imcc/Rules.in   (contents, props changed)
   branches/include_dynpmc_makefile/compilers/imcc/imcc.l
   branches/include_dynpmc_makefile/compilers/imcc/imclexer.c
   branches/include_dynpmc_makefile/compilers/imcc/main.c
   branches/include_dynpmc_makefile/compilers/imcc/parser_util.c
   branches/include_dynpmc_makefile/compilers/imcc/pbc.c
   branches/include_dynpmc_makefile/compilers/pct/Rules.mak   (props changed)
   branches/include_dynpmc_makefile/compilers/pct/src/PAST/Compiler.pir
   branches/include_dynpmc_makefile/compilers/pct/src/PCT/HLLCompiler.pir
   branches/include_dynpmc_makefile/compilers/pge/PGE/Exp.pir
   branches/include_dynpmc_makefile/compilers/pge/PGE/OPTable.pir
   branches/include_dynpmc_makefile/compilers/pge/PGE/Perl6Regex.pir
   branches/include_dynpmc_makefile/compilers/pge/Rules.mak   (props changed)
   branches/include_dynpmc_makefile/compilers/pirc/Rules.mak
   branches/include_dynpmc_makefile/compilers/tge/Rules.mak   (props changed)
   branches/include_dynpmc_makefile/config/auto/sizes/intval_maxmin_c.in   (props changed)
   branches/include_dynpmc_makefile/config/auto/warnings.pm
   branches/include_dynpmc_makefile/config/gen/config_h/config_h.in
   branches/include_dynpmc_makefile/config/gen/makefiles.pm
   branches/include_dynpmc_makefile/config/gen/makefiles/root.in
   branches/include_dynpmc_makefile/config/init/optimize.pm
   branches/include_dynpmc_makefile/docs/book/draft/README   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/appa_glossary.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/appb_patch_submission.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/appc_command_line_options.pod   (contents, props changed)
   branches/include_dynpmc_makefile/docs/book/draft/appd_build_options.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/appe_source_code.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/ch01_introduction.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/ch02_getting_started.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/ch07_dynpmcs.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/ch08_dynops.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/ch10_opcode_reference.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/ch11_directive_reference.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/ch12_operator_reference.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/chXX_hlls.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/chXX_library.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/draft/chXX_testing_and_debugging.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/pct/ch01_introduction.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/pct/ch02_getting_started.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/pct/ch03_compiler_tools.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/pct/ch04_pge.pod   (props changed)
   branches/include_dynpmc_makefile/docs/book/pct/ch05_nqp.pod   (props changed)
   branches/include_dynpmc_makefile/docs/configuration.pod
   branches/include_dynpmc_makefile/docs/dev/c_functions.pod   (props changed)
   branches/include_dynpmc_makefile/docs/embed.pod
   branches/include_dynpmc_makefile/docs/pdds/pdd30_install.pod   (props changed)
   branches/include_dynpmc_makefile/docs/porting_intro.pod
   branches/include_dynpmc_makefile/docs/project/release_manager_guide.pod
   branches/include_dynpmc_makefile/docs/running.pod
   branches/include_dynpmc_makefile/examples/benchmarks/oo1.pir
   branches/include_dynpmc_makefile/examples/benchmarks/oo2.pir
   branches/include_dynpmc_makefile/examples/c/test_main.c
   branches/include_dynpmc_makefile/examples/config/file/configcompiler
   branches/include_dynpmc_makefile/examples/config/file/configwithfatalstep
   branches/include_dynpmc_makefile/examples/embed/cotorra.c   (contents, props changed)
   branches/include_dynpmc_makefile/examples/japh/japh3.pasm
   branches/include_dynpmc_makefile/examples/json/postalcodes.pir
   branches/include_dynpmc_makefile/examples/languages/abc/   (props changed)
   branches/include_dynpmc_makefile/examples/languages/squaak/   (props changed)
   branches/include_dynpmc_makefile/examples/languages/squaak/setup.pir
   branches/include_dynpmc_makefile/examples/languages/squaak/src/parser/actions.pm
   branches/include_dynpmc_makefile/examples/library/ncurses_life.pir
   branches/include_dynpmc_makefile/examples/nci/Xlib.pir
   branches/include_dynpmc_makefile/examples/nci/xlibtest.pir
   branches/include_dynpmc_makefile/examples/pge/demo.pir   (contents, props changed)
   branches/include_dynpmc_makefile/examples/pir/befunge/debug.pir
   branches/include_dynpmc_makefile/examples/pir/befunge/io.pir
   branches/include_dynpmc_makefile/examples/pir/befunge/load.pir
   branches/include_dynpmc_makefile/examples/pir/pirric.pir
   branches/include_dynpmc_makefile/examples/pir/quine_ord.pir
   branches/include_dynpmc_makefile/examples/pir/substr.pir
   branches/include_dynpmc_makefile/examples/sdl/mandel.pir
   branches/include_dynpmc_makefile/examples/shootout/ack.pir
   branches/include_dynpmc_makefile/examples/shootout/binarytrees.pir
   branches/include_dynpmc_makefile/examples/shootout/fasta.pir
   branches/include_dynpmc_makefile/examples/shootout/knucleotide.pir
   branches/include_dynpmc_makefile/examples/shootout/partialsums.pir
   branches/include_dynpmc_makefile/examples/shootout/pidigits.pir
   branches/include_dynpmc_makefile/examples/shootout/random.pir
   branches/include_dynpmc_makefile/examples/shootout/recursive-2.pir
   branches/include_dynpmc_makefile/examples/shootout/recursive.pir
   branches/include_dynpmc_makefile/examples/shootout/regexdna.pir
   branches/include_dynpmc_makefile/examples/shootout/revcomp.pir
   branches/include_dynpmc_makefile/examples/shootout/takfp.pir
   branches/include_dynpmc_makefile/examples/tutorial/23_string_ops_substr.pir
   branches/include_dynpmc_makefile/ext/Parrot-Embed/MANIFEST
   branches/include_dynpmc_makefile/ext/nqp-rx/Rules.mak   (props changed)
   branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/include_dynpmc_makefile/include/parrot/call.h   (props changed)
   branches/include_dynpmc_makefile/include/parrot/charset.h
   branches/include_dynpmc_makefile/include/parrot/context.h
   branches/include_dynpmc_makefile/include/parrot/debugger.h
   branches/include_dynpmc_makefile/include/parrot/embed.h
   branches/include_dynpmc_makefile/include/parrot/encoding.h
   branches/include_dynpmc_makefile/include/parrot/exceptions.h
   branches/include_dynpmc_makefile/include/parrot/gc_api.h   (contents, props changed)
   branches/include_dynpmc_makefile/include/parrot/hash.h
   branches/include_dynpmc_makefile/include/parrot/interpreter.h
   branches/include_dynpmc_makefile/include/parrot/io.h
   branches/include_dynpmc_makefile/include/parrot/io_portable.h
   branches/include_dynpmc_makefile/include/parrot/io_unix.h
   branches/include_dynpmc_makefile/include/parrot/io_win32.h
   branches/include_dynpmc_makefile/include/parrot/op.h
   branches/include_dynpmc_makefile/include/parrot/oplib.h
   branches/include_dynpmc_makefile/include/parrot/packfile.h
   branches/include_dynpmc_makefile/include/parrot/pmc_freeze.h
   branches/include_dynpmc_makefile/include/parrot/pobj.h
   branches/include_dynpmc_makefile/include/parrot/runcore_api.h   (contents, props changed)
   branches/include_dynpmc_makefile/include/parrot/runcore_profiling.h   (props changed)
   branches/include_dynpmc_makefile/include/parrot/runcore_trace.h   (props changed)
   branches/include_dynpmc_makefile/include/parrot/string.h
   branches/include_dynpmc_makefile/include/parrot/string_funcs.h
   branches/include_dynpmc_makefile/include/parrot/sub.h
   branches/include_dynpmc_makefile/include/parrot/vtables.h
   branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf.pm
   branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf/Shared.pm
   branches/include_dynpmc_makefile/lib/Parrot/Configure/Step/List.pm
   branches/include_dynpmc_makefile/lib/Parrot/Configure/Step/Test.pm   (props changed)
   branches/include_dynpmc_makefile/lib/Parrot/Distribution.pm
   branches/include_dynpmc_makefile/lib/Parrot/Docs/Section/Compilers.pm
   branches/include_dynpmc_makefile/lib/Parrot/H2inc.pm   (props changed)
   branches/include_dynpmc_makefile/lib/Parrot/Harness/DefaultTests.pm
   branches/include_dynpmc_makefile/lib/Parrot/Harness/Options.pm
   branches/include_dynpmc_makefile/lib/Parrot/Manifest.pm
   branches/include_dynpmc_makefile/lib/Parrot/OpTrans.pm
   branches/include_dynpmc_makefile/lib/Parrot/OpTrans/C.pm
   branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Auxiliary.pm
   branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Utils.pm
   branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/MethodEmitter.pm
   branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PCCMETHOD.pm
   branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Null.pm
   branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Object.pm
   branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/default.pm
   branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMCEmitter.pm
   branches/include_dynpmc_makefile/ports/cygwin/README
   branches/include_dynpmc_makefile/ports/cygwin/parrot-1.0.0-1.cygport   (props changed)
   branches/include_dynpmc_makefile/ports/debian/libparrot-dev.install.in   (props changed)
   branches/include_dynpmc_makefile/ports/debian/libparrot.install.in   (props changed)
   branches/include_dynpmc_makefile/ports/debian/parrot-doc.install.in   (props changed)
   branches/include_dynpmc_makefile/ports/debian/parrot.install.in   (props changed)
   branches/include_dynpmc_makefile/ports/mandriva/parrot.spec.mandriva   (props changed)
   branches/include_dynpmc_makefile/runtime/parrot/languages/   (props changed)
   branches/include_dynpmc_makefile/runtime/parrot/library/CGI/QueryHash.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/Crow.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/JSON.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/MIME/Base64.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/Math/Rand.pir   (props changed)
   branches/include_dynpmc_makefile/runtime/parrot/library/OpenGL.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/PIRProfile.nqp
   branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/Want.nqp
   branches/include_dynpmc_makefile/runtime/parrot/library/Rules.mak   (props changed)
   branches/include_dynpmc_makefile/runtime/parrot/library/String/Utils.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Harness.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Parser.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder/Output.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/Test/More.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/distutils.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/osutils.pir
   branches/include_dynpmc_makefile/runtime/parrot/library/uuid.pir
   branches/include_dynpmc_makefile/src/call/context.c
   branches/include_dynpmc_makefile/src/call/context_accessors.c
   branches/include_dynpmc_makefile/src/call/ops.c   (props changed)
   branches/include_dynpmc_makefile/src/call/pcc.c   (contents, props changed)
   branches/include_dynpmc_makefile/src/debug.c
   branches/include_dynpmc_makefile/src/dynoplibs/Defines.in
   branches/include_dynpmc_makefile/src/dynoplibs/Rules.in
   branches/include_dynpmc_makefile/src/embed.c
   branches/include_dynpmc_makefile/src/gc/   (props changed)
   branches/include_dynpmc_makefile/src/gc/alloc_memory.c   (props changed)
   branches/include_dynpmc_makefile/src/gc/alloc_resources.c   (contents, props changed)
   branches/include_dynpmc_makefile/src/gc/api.c   (contents, props changed)
   branches/include_dynpmc_makefile/src/gc/gc_ms.c
   branches/include_dynpmc_makefile/src/gc/gc_private.h
   branches/include_dynpmc_makefile/src/gc/malloc.c   (props changed)
   branches/include_dynpmc_makefile/src/gc/malloc_trace.c   (props changed)
   branches/include_dynpmc_makefile/src/gc/mark_sweep.c   (contents, props changed)
   branches/include_dynpmc_makefile/src/gc/system.c   (props changed)
   branches/include_dynpmc_makefile/src/interp/inter_cb.c   (props changed)
   branches/include_dynpmc_makefile/src/interp/inter_create.c   (props changed)
   branches/include_dynpmc_makefile/src/interp/inter_misc.c   (contents, props changed)
   branches/include_dynpmc_makefile/src/io/api.c
   branches/include_dynpmc_makefile/src/io/buffer.c
   branches/include_dynpmc_makefile/src/io/portable.c
   branches/include_dynpmc_makefile/src/io/unix.c
   branches/include_dynpmc_makefile/src/io/utf8.c
   branches/include_dynpmc_makefile/src/io/win32.c
   branches/include_dynpmc_makefile/src/main.c
   branches/include_dynpmc_makefile/src/oo.c
   branches/include_dynpmc_makefile/src/ops/bit.ops
   branches/include_dynpmc_makefile/src/ops/ops.num
   branches/include_dynpmc_makefile/src/ops/string.ops
   branches/include_dynpmc_makefile/src/packdump.c
   branches/include_dynpmc_makefile/src/packfile.c
   branches/include_dynpmc_makefile/src/packfile/pf_items.c
   branches/include_dynpmc_makefile/src/pbc_merge.c
   branches/include_dynpmc_makefile/src/pmc/callcontext.pmc
   branches/include_dynpmc_makefile/src/pmc/default.pmc
   branches/include_dynpmc_makefile/src/pmc/eval.pmc
   branches/include_dynpmc_makefile/src/pmc/exception.pmc
   branches/include_dynpmc_makefile/src/pmc/fixedfloatarray.pmc
   branches/include_dynpmc_makefile/src/pmc/fixedintegerarray.pmc
   branches/include_dynpmc_makefile/src/pmc/hash.pmc
   branches/include_dynpmc_makefile/src/pmc/namespace.pmc
   branches/include_dynpmc_makefile/src/pmc/object.pmc
   branches/include_dynpmc_makefile/src/pmc/os.pmc
   branches/include_dynpmc_makefile/src/pmc/packfileannotations.pmc
   branches/include_dynpmc_makefile/src/pmc/packfilefixupentry.pmc
   branches/include_dynpmc_makefile/src/pmc/packfilefixuptable.pmc
   branches/include_dynpmc_makefile/src/pmc/resizablefloatarray.pmc
   branches/include_dynpmc_makefile/src/pmc/stringhandle.pmc
   branches/include_dynpmc_makefile/src/pmc/sub.pmc
   branches/include_dynpmc_makefile/src/pmc/unmanagedstruct.pmc
   branches/include_dynpmc_makefile/src/pmc_freeze.c
   branches/include_dynpmc_makefile/src/runcore/cores.c   (contents, props changed)
   branches/include_dynpmc_makefile/src/runcore/main.c   (contents, props changed)
   branches/include_dynpmc_makefile/src/runcore/profiling.c   (props changed)
   branches/include_dynpmc_makefile/src/runcore/trace.c   (props changed)
   branches/include_dynpmc_makefile/src/string/api.c
   branches/include_dynpmc_makefile/src/string/charset/ascii.c
   branches/include_dynpmc_makefile/src/string/charset/ascii.h
   branches/include_dynpmc_makefile/src/string/charset/binary.c
   branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.c
   branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.h
   branches/include_dynpmc_makefile/src/string/charset/unicode.c
   branches/include_dynpmc_makefile/src/string/encoding/fixed_8.c
   branches/include_dynpmc_makefile/src/string/encoding/ucs2.c
   branches/include_dynpmc_makefile/src/string/encoding/utf16.c
   branches/include_dynpmc_makefile/src/string/encoding/utf8.c
   branches/include_dynpmc_makefile/t/compilers/imcc/reg/spill.t
   branches/include_dynpmc_makefile/t/compilers/imcc/syn/labels.t
   branches/include_dynpmc_makefile/t/compilers/imcc/syn/objects.t
   branches/include_dynpmc_makefile/t/compilers/imcc/syn/op.t
   branches/include_dynpmc_makefile/t/compilers/imcc/syn/regressions.t
   branches/include_dynpmc_makefile/t/compilers/imcc/syn/scope.t
   branches/include_dynpmc_makefile/t/compilers/imcc/syn/veracity.t
   branches/include_dynpmc_makefile/t/compilers/pct/complete_workflow.t
   branches/include_dynpmc_makefile/t/compilers/pge/02-match.t
   branches/include_dynpmc_makefile/t/compilers/pge/03-optable.t
   branches/include_dynpmc_makefile/t/compilers/pge/04-compile.t
   branches/include_dynpmc_makefile/t/compilers/pge/p5regex/p5rx.t
   branches/include_dynpmc_makefile/t/compilers/pge/perl6regex/01-regex.t
   branches/include_dynpmc_makefile/t/compilers/pge/pge-hs.t
   branches/include_dynpmc_makefile/t/compilers/tge/NoneGrammar.tg   (props changed)
   branches/include_dynpmc_makefile/t/compilers/tge/basic.t
   branches/include_dynpmc_makefile/t/compilers/tge/parser.t
   branches/include_dynpmc_makefile/t/configure/testlib/adefectivefoobar
   branches/include_dynpmc_makefile/t/configure/testlib/bdefectivefoobar
   branches/include_dynpmc_makefile/t/configure/testlib/cdefectivefoobar
   branches/include_dynpmc_makefile/t/configure/testlib/ddefectivefoobar
   branches/include_dynpmc_makefile/t/configure/testlib/verbosefoobar
   branches/include_dynpmc_makefile/t/dynoplibs/math.t
   branches/include_dynpmc_makefile/t/dynoplibs/obscure.t
   branches/include_dynpmc_makefile/t/dynpmc/foo2.t
   branches/include_dynpmc_makefile/t/dynpmc/rational.t
   branches/include_dynpmc_makefile/t/dynpmc/subproxy.t
   branches/include_dynpmc_makefile/t/examples/shootout.t
   branches/include_dynpmc_makefile/t/examples/tutorial.t
   branches/include_dynpmc_makefile/t/harness
   branches/include_dynpmc_makefile/t/include/fp_equality.t
   branches/include_dynpmc_makefile/t/library/configure.t
   branches/include_dynpmc_makefile/t/library/getopt_obj.t
   branches/include_dynpmc_makefile/t/library/hllmacros.t
   branches/include_dynpmc_makefile/t/library/md5.t
   branches/include_dynpmc_makefile/t/library/mime_base64.t
   branches/include_dynpmc_makefile/t/library/osutils.t
   branches/include_dynpmc_makefile/t/library/parrotlib.t
   branches/include_dynpmc_makefile/t/library/pcre.t
   branches/include_dynpmc_makefile/t/library/protoobject.t
   branches/include_dynpmc_makefile/t/library/rand.t
   branches/include_dynpmc_makefile/t/library/range.t
   branches/include_dynpmc_makefile/t/library/tap_parser.t
   branches/include_dynpmc_makefile/t/library/test_class.t
   branches/include_dynpmc_makefile/t/library/test_more.t
   branches/include_dynpmc_makefile/t/library/uuid.t
   branches/include_dynpmc_makefile/t/native_pbc/annotations.pbc
   branches/include_dynpmc_makefile/t/native_pbc/integer_1.pbc
   branches/include_dynpmc_makefile/t/native_pbc/number_1.pbc
   branches/include_dynpmc_makefile/t/native_pbc/string_1.pbc
   branches/include_dynpmc_makefile/t/oo/attributes.t
   branches/include_dynpmc_makefile/t/oo/composition.t
   branches/include_dynpmc_makefile/t/oo/inheritance.t
   branches/include_dynpmc_makefile/t/oo/isa.t
   branches/include_dynpmc_makefile/t/oo/metamodel.t
   branches/include_dynpmc_makefile/t/oo/methods.t
   branches/include_dynpmc_makefile/t/oo/mro-c3.t
   branches/include_dynpmc_makefile/t/oo/names.t
   branches/include_dynpmc_makefile/t/oo/new.t
   branches/include_dynpmc_makefile/t/oo/ops.t
   branches/include_dynpmc_makefile/t/oo/proxy.t
   branches/include_dynpmc_makefile/t/oo/root_new.t   (contents, props changed)
   branches/include_dynpmc_makefile/t/oo/subclass.t
   branches/include_dynpmc_makefile/t/oo/vtableoverride.t
   branches/include_dynpmc_makefile/t/op/00ff-dos.t
   branches/include_dynpmc_makefile/t/op/00ff-unix.t
   branches/include_dynpmc_makefile/t/op/64bit.t
   branches/include_dynpmc_makefile/t/op/annotate-old.t
   branches/include_dynpmc_makefile/t/op/annotate.t
   branches/include_dynpmc_makefile/t/op/arithmetics.t
   branches/include_dynpmc_makefile/t/op/arithmetics_pmc.t
   branches/include_dynpmc_makefile/t/op/box.t
   branches/include_dynpmc_makefile/t/op/cc_params.t
   branches/include_dynpmc_makefile/t/op/cmp-nonbranch.t
   branches/include_dynpmc_makefile/t/op/comp.t
   branches/include_dynpmc_makefile/t/op/copy.t
   branches/include_dynpmc_makefile/t/op/debuginfo.t
   branches/include_dynpmc_makefile/t/op/errorson.t
   branches/include_dynpmc_makefile/t/op/fetch.t
   branches/include_dynpmc_makefile/t/op/gc-leaky.t
   branches/include_dynpmc_makefile/t/op/gc.t
   branches/include_dynpmc_makefile/t/op/globals.t
   branches/include_dynpmc_makefile/t/op/ifunless.t
   branches/include_dynpmc_makefile/t/op/inf_nan.t
   branches/include_dynpmc_makefile/t/op/integer.t
   branches/include_dynpmc_makefile/t/op/interp.t
   branches/include_dynpmc_makefile/t/op/io.t
   branches/include_dynpmc_makefile/t/op/literal.t
   branches/include_dynpmc_makefile/t/op/number.t
   branches/include_dynpmc_makefile/t/op/sprintf.t
   branches/include_dynpmc_makefile/t/op/sprintf2.t
   branches/include_dynpmc_makefile/t/op/string.t
   branches/include_dynpmc_makefile/t/op/string_cmp.t
   branches/include_dynpmc_makefile/t/op/string_cs.t
   branches/include_dynpmc_makefile/t/op/stringu.t
   branches/include_dynpmc_makefile/t/op/time.t
   branches/include_dynpmc_makefile/t/op/trans.t
   branches/include_dynpmc_makefile/t/op/vivify.t
   branches/include_dynpmc_makefile/t/pharness/02-get_test_prog_args.t
   branches/include_dynpmc_makefile/t/pir/macro.t
   branches/include_dynpmc_makefile/t/pir/registernames.t
   branches/include_dynpmc_makefile/t/pmc/addrregistry.t
   branches/include_dynpmc_makefile/t/pmc/arrayiterator.t
   branches/include_dynpmc_makefile/t/pmc/bigint.t
   branches/include_dynpmc_makefile/t/pmc/boolean.t
   branches/include_dynpmc_makefile/t/pmc/callcontext.t
   branches/include_dynpmc_makefile/t/pmc/capture.t
   branches/include_dynpmc_makefile/t/pmc/class.t
   branches/include_dynpmc_makefile/t/pmc/codestring.t
   branches/include_dynpmc_makefile/t/pmc/complex.t
   branches/include_dynpmc_makefile/t/pmc/config.t
   branches/include_dynpmc_makefile/t/pmc/context.t
   branches/include_dynpmc_makefile/t/pmc/continuation.t
   branches/include_dynpmc_makefile/t/pmc/default.t
   branches/include_dynpmc_makefile/t/pmc/env.t
   branches/include_dynpmc_makefile/t/pmc/eventhandler.t
   branches/include_dynpmc_makefile/t/pmc/exception.t
   branches/include_dynpmc_makefile/t/pmc/exceptionhandler.t
   branches/include_dynpmc_makefile/t/pmc/fixedbooleanarray.t
   branches/include_dynpmc_makefile/t/pmc/fixedfloatarray.t
   branches/include_dynpmc_makefile/t/pmc/fixedintegerarray.t
   branches/include_dynpmc_makefile/t/pmc/fixedpmcarray.t
   branches/include_dynpmc_makefile/t/pmc/fixedstringarray.t
   branches/include_dynpmc_makefile/t/pmc/float.t
   branches/include_dynpmc_makefile/t/pmc/handle.t
   branches/include_dynpmc_makefile/t/pmc/hash.t
   branches/include_dynpmc_makefile/t/pmc/hashiterator.t
   branches/include_dynpmc_makefile/t/pmc/imageio.t
   branches/include_dynpmc_makefile/t/pmc/imageiosize.t
   branches/include_dynpmc_makefile/t/pmc/integer.t
   branches/include_dynpmc_makefile/t/pmc/io.t
   branches/include_dynpmc_makefile/t/pmc/key.t
   branches/include_dynpmc_makefile/t/pmc/lexinfo.t
   branches/include_dynpmc_makefile/t/pmc/lexpad.t
   branches/include_dynpmc_makefile/t/pmc/managedstruct.t
   branches/include_dynpmc_makefile/t/pmc/namespace-old.t   (props changed)
   branches/include_dynpmc_makefile/t/pmc/namespace-subs.t
   branches/include_dynpmc_makefile/t/pmc/namespace.t
   branches/include_dynpmc_makefile/t/pmc/null.t
   branches/include_dynpmc_makefile/t/pmc/object.t
   branches/include_dynpmc_makefile/t/pmc/objects.t
   branches/include_dynpmc_makefile/t/pmc/opcode.t
   branches/include_dynpmc_makefile/t/pmc/oplib.t
   branches/include_dynpmc_makefile/t/pmc/packfile.t
   branches/include_dynpmc_makefile/t/pmc/packfileannotation.t
   branches/include_dynpmc_makefile/t/pmc/packfileannotations.t
   branches/include_dynpmc_makefile/t/pmc/packfileconstanttable.t
   branches/include_dynpmc_makefile/t/pmc/packfiledirectory.t
   branches/include_dynpmc_makefile/t/pmc/packfilefixupentry.t
   branches/include_dynpmc_makefile/t/pmc/packfilefixuptable.t
   branches/include_dynpmc_makefile/t/pmc/packfilerawsegment.t
   branches/include_dynpmc_makefile/t/pmc/packfilesegment.t
   branches/include_dynpmc_makefile/t/pmc/parrotclass.t
   branches/include_dynpmc_makefile/t/pmc/parrotinterpreter.t
   branches/include_dynpmc_makefile/t/pmc/parrotlibrary.t
   branches/include_dynpmc_makefile/t/pmc/parrotrunningthread.t
   branches/include_dynpmc_makefile/t/pmc/parrotthread.t
   branches/include_dynpmc_makefile/t/pmc/pmcproxy.t
   branches/include_dynpmc_makefile/t/pmc/pointer.t
   branches/include_dynpmc_makefile/t/pmc/prop.t
   branches/include_dynpmc_makefile/t/pmc/resizablebooleanarray.t
   branches/include_dynpmc_makefile/t/pmc/resizablefloatarray.t
   branches/include_dynpmc_makefile/t/pmc/resizableintegerarray.t
   branches/include_dynpmc_makefile/t/pmc/resizablepmcarray.t
   branches/include_dynpmc_makefile/t/pmc/ro.t
   branches/include_dynpmc_makefile/t/pmc/role.t
   branches/include_dynpmc_makefile/t/pmc/scalar.t
   branches/include_dynpmc_makefile/t/pmc/scheduler.t
   branches/include_dynpmc_makefile/t/pmc/schedulermessage.t
   branches/include_dynpmc_makefile/t/pmc/sockaddr.t
   branches/include_dynpmc_makefile/t/pmc/socket.t
   branches/include_dynpmc_makefile/t/pmc/string.t
   branches/include_dynpmc_makefile/t/pmc/stringiterator.t
   branches/include_dynpmc_makefile/t/pmc/undef.t
   branches/include_dynpmc_makefile/t/pmc/unmanagedstruct.t
   branches/include_dynpmc_makefile/t/run/exit.t
   branches/include_dynpmc_makefile/t/src/embed.t   (props changed)
   branches/include_dynpmc_makefile/t/steps/init/hints/linux-01.t   (props changed)
   branches/include_dynpmc_makefile/t/tools/install/testlib/README
   branches/include_dynpmc_makefile/t/tools/ops2cutils/01-new.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/03-print_c_header_file.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/04-print_c_source_top.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/05-print_c_source_bottom.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/06-dynamic.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/07-make_incdir.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/08-nolines.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/09-dynamic_nolines.t
   branches/include_dynpmc_makefile/t/tools/ops2cutils/10-print_c_source_file.t
   branches/include_dynpmc_makefile/tools/build/h2inc.pl   (props changed)
   branches/include_dynpmc_makefile/tools/build/ops2c.pl
   branches/include_dynpmc_makefile/tools/dev/checkdepend.pl
   branches/include_dynpmc_makefile/tools/dev/fetch_languages.pl   (props changed)
   branches/include_dynpmc_makefile/tools/dev/gen_charset_tables.pl
   branches/include_dynpmc_makefile/tools/dev/mk_gitignore.pl   (props changed)
   branches/include_dynpmc_makefile/tools/dev/mk_manifest_and_skip.pl
   branches/include_dynpmc_makefile/tools/dev/mk_native_pbc
   branches/include_dynpmc_makefile/tools/dev/nci_thunk_gen.pir
   branches/include_dynpmc_makefile/tools/dev/parrot-fuzzer
   branches/include_dynpmc_makefile/tools/dev/pbc_to_exe.pir
   branches/include_dynpmc_makefile/tools/install/smoke.pl
   branches/include_dynpmc_makefile/tools/util/parrot-config.pir
   branches/include_dynpmc_makefile/tools/util/perlcritic-cage.conf   (props changed)

Modified: branches/include_dynpmc_makefile/.gitignore
==============================================================================
--- branches/include_dynpmc_makefile/.gitignore	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/.gitignore	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,603 +1,580 @@
 # ex: set ro:
-# $Id
-# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 21 10:28:38 2010 UT
+# $Id$
+# generated by tools/dev/mk_gitignore.pl Sat Apr 24 05:11:34 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
-# of the directories in the Parrot subversion repository. (Needed for
-# distributions or in general when svn is not available).
-# See docs/submissions.pod on how to recreate this file after SVN
-# has been told about new generated files.
+# of the directories in the Parrot subversion repository.
+# The .gitignore file is a convenience for developers  working with git-svn.
+# See http://www.kernel.org/pub/software/scm/git/docs/gitignore.html for the
+# format of this file.
 #
-# Ignore the SVN directories
-\B.svn\b
-
-# ports/ should not go into release tarballs
-ports
 # generated from svn:ignore of './'
-*.core
-*.def
-*.exe
-*.exp
-*.ilk
-*.lib
-*.manifest
-*.ncb
-*.o
-*.obj
-*.patch
-*.pdb
-*.sln
-*.sto
-*.suo
-*.tmp
-*.vcproj*
-.git
-.parrot_current_rev
-CFLAGS
-MANIFEST.configure.generated
-Makefile
-TAGS
-all_cstring.str
-blib
-config_lib.pir
-cover_db
-install_config.fpmc
-installable*
-libparrot.def
-libparrot.dll
-miniparrot
-myconfig
-parrot
-parrot-nqp
-parrot-nqp.c
-parrot-nqp.pbc
-parrot.ilk
-parrot.iss
-parrot.pc
-parrot.pdb
-parrot_config
-parrot_config.c
-parrot_config.pbc
-parrot_debugger
-parrot_nci_thunk_gen
-parrot_nci_thunk_gen.c
-parrot_nci_thunk_gen.pbc
-parrot_test_run.tar.gz
-pbc_disassemble
-pbc_dump
-pbc_info
-pbc_merge
-pbc_to_exe
-pbc_to_exe.*
-perl6
-pirc
-tags
-tapir
-tapir.*
-temp.file
-test
-test.c
-test.cco
-test.err
-test.ilk
-test.ldo
-test.out
-test.pdb
-vc60.pdb
-vc70.pdb
-vtable.dump
+/*.core
+/*.def
+/*.exe
+/*.exp
+/*.ilk
+/*.lib
+/*.manifest
+/*.ncb
+/*.o
+/*.obj
+/*.patch
+/*.pdb
+/*.sln
+/*.sto
+/*.suo
+/*.tmp
+/*.vcproj*
+/.git
+/.parrot_current_rev
+/CFLAGS
+/MANIFEST.configure.generated
+/Makefile
+/TAGS
+/all_cstring.str
+/blib
+/config_lib.pir
+/cover_db
+/install_config.fpmc
+/installable*
+/libparrot.def
+/libparrot.dll
+/miniparrot
+/myconfig
+/parrot
+/parrot-nqp
+/parrot-nqp.c
+/parrot-nqp.pbc
+/parrot.ilk
+/parrot.iss
+/parrot.pc
+/parrot.pdb
+/parrot_config
+/parrot_config.c
+/parrot_config.pbc
+/parrot_debugger
+/parrot_nci_thunk_gen
+/parrot_nci_thunk_gen.c
+/parrot_nci_thunk_gen.pbc
+/parrot_test_run.tar.gz
+/pbc_disassemble
+/pbc_dump
+/pbc_info
+/pbc_merge
+/pbc_to_exe
+/pbc_to_exe.*
+/perl6
+/pirc
+/tags
+/tapir
+/tapir.*
+/temp.file
+/test
+/test.c
+/test.cco
+/test.err
+/test.ilk
+/test.ldo
+/test.out
+/test.pdb
+/vc60.pdb
+/vc70.pdb
+/vtable.dump
 # generated from svn:ignore of 'compilers/data_json/'
-compilers/data_json/data_json.pbc
+/compilers/data_json/data_json.pbc
 # generated from svn:ignore of 'compilers/data_json/data_json/'
-compilers/data_json/data_json/*.pbc
-compilers/data_json/data_json/*.pir
+/compilers/data_json/data_json/*.pbc
+/compilers/data_json/data_json/*.pir
 # generated from svn:ignore of 'compilers/imcc/'
-compilers/imcc/*.flag
-compilers/imcc/*.o
-compilers/imcc/*.obj
-compilers/imcc/*.tmp
-compilers/imcc/Rules.mak
-compilers/imcc/imcc
-compilers/imcc/imclexer.c
-compilers/imcc/imcparser.c
-compilers/imcc/imcparser.h
-compilers/imcc/imcparser.output
-# generated from svn:ignore of 'compilers/json/'
-compilers/json/JSON.pbc
-# generated from svn:ignore of 'compilers/json/JSON/'
-compilers/json/JSON/*.pbc
-compilers/json/JSON/*.pir
-# generated from svn:ignore of 'compilers/ncigen/'
-compilers/ncigen/Makefile
-compilers/ncigen/ncigen.pbc
-# generated from svn:ignore of 'compilers/ncigen/src/'
-compilers/ncigen/src/gen_actions.pir
-compilers/ncigen/src/gen_builtins.pir
-compilers/ncigen/src/gen_grammar.pir
-# generated from svn:ignore of 'compilers/nqp/'
-compilers/nqp/nqp.pbc
-# generated from svn:ignore of 'compilers/nqp/bootstrap/'
-compilers/nqp/bootstrap/gen_actions.pir
-compilers/nqp/bootstrap/nqp.pbc
-# generated from svn:ignore of 'compilers/nqp/src/'
-compilers/nqp/src/Grammar_gen.pir
+/compilers/imcc/*.flag
+/compilers/imcc/*.o
+/compilers/imcc/*.obj
+/compilers/imcc/*.tmp
+/compilers/imcc/Rules.mak
+/compilers/imcc/imcc
+/compilers/imcc/imclexer.c
+/compilers/imcc/imcparser.c
+/compilers/imcc/imcparser.h
+/compilers/imcc/imcparser.output
 # generated from svn:ignore of 'compilers/pct/src/PAST/'
-compilers/pct/src/PAST/*.pbc
+/compilers/pct/src/PAST/*.pbc
 # generated from svn:ignore of 'compilers/pct/src/PCT/'
-compilers/pct/src/PCT/*.pbc
+/compilers/pct/src/PCT/*.pbc
 # generated from svn:ignore of 'compilers/pct/src/POST/'
-compilers/pct/src/POST/*.pbc
-compilers/pct/src/POST/Grammar_gen.pir
+/compilers/pct/src/POST/*.pbc
+/compilers/pct/src/POST/Grammar_gen.pir
 # generated from svn:ignore of 'compilers/pge/'
-compilers/pge/PGE.pbc
+/compilers/pge/PGE.pbc
 # generated from svn:ignore of 'compilers/pge/PGE/'
-compilers/pge/PGE/*.dll
-compilers/pge/PGE/builtins_gen.pir
+/compilers/pge/PGE/*.dll
+/compilers/pge/PGE/builtins_gen.pir
 # generated from svn:ignore of 'compilers/pirc/'
-compilers/pirc/*.o
-compilers/pirc/*.obj
-compilers/pirc/*.pbd
-compilers/pirc/pirc
-compilers/pirc/pirc.exe
+/compilers/pirc/*.o
+/compilers/pirc/*.obj
+/compilers/pirc/*.pbd
+/compilers/pirc/pirc
+/compilers/pirc/pirc.exe
 # generated from svn:ignore of 'compilers/pirc/t/'
-compilers/pirc/t/basic_?.pir
-compilers/pirc/t/basic_??.pir
-compilers/pirc/t/heredoc_?.pir
-compilers/pirc/t/macro_?.pir
-compilers/pirc/t/stmts_?.pir
-compilers/pirc/t/subflags_?.pir
+/compilers/pirc/t/basic_?.pir
+/compilers/pirc/t/basic_??.pir
+/compilers/pirc/t/heredoc_?.pir
+/compilers/pirc/t/macro_?.pir
+/compilers/pirc/t/stmts_?.pir
+/compilers/pirc/t/subflags_?.pir
 # generated from svn:ignore of 'compilers/tge/'
-compilers/tge/tgc.pbc
+/compilers/tge/tgc.pbc
 # generated from svn:ignore of 'compilers/tge/TGE/'
-compilers/tge/TGE/Parser.pir
+/compilers/tge/TGE/Parser.pir
 # generated from svn:ignore of 'docs/'
-docs/*.tmp
-docs/Makefile
-docs/doc-prep
-docs/html
-docs/packfile-c.pod
-docs/packfile-perl.pod
+/docs/*.tmp
+/docs/Makefile
+/docs/doc-prep
+/docs/html
+/docs/packfile-c.pod
+/docs/packfile-perl.pod
 # generated from svn:ignore of 'docs/book/'
-docs/book/*.html
+/docs/book/*.html
 # generated from svn:ignore of 'docs/ops/'
-docs/ops/*.pod
+/docs/ops/*.pod
 # generated from svn:ignore of 'editor/'
-editor/Makefile
-editor/imc.vim
-editor/imcc.xml
-editor/pir.vim
+/editor/Makefile
+/editor/imc.vim
+/editor/imcc.xml
+/editor/pir.vim
 # generated from svn:ignore of 'examples/languages/abc/'
-examples/languages/abc/*.c
-examples/languages/abc/*.exe
-examples/languages/abc/*.iss
-examples/languages/abc/*.o
-examples/languages/abc/*.obj
-examples/languages/abc/*.pbc
-examples/languages/abc/MANIFEST
-examples/languages/abc/abc
-examples/languages/abc/installable_abc
-examples/languages/abc/man
+/examples/languages/abc/*.c
+/examples/languages/abc/*.exe
+/examples/languages/abc/*.iss
+/examples/languages/abc/*.o
+/examples/languages/abc/*.obj
+/examples/languages/abc/*.pbc
+/examples/languages/abc/MANIFEST
+/examples/languages/abc/abc
+/examples/languages/abc/installable_abc
+/examples/languages/abc/man
 # generated from svn:ignore of 'examples/languages/abc/src/'
-examples/languages/abc/src/gen_actions.pir
-examples/languages/abc/src/gen_builtins.pir
-examples/languages/abc/src/gen_grammar.pir
+/examples/languages/abc/src/gen_actions.pir
+/examples/languages/abc/src/gen_builtins.pir
+/examples/languages/abc/src/gen_grammar.pir
 # generated from svn:ignore of 'examples/languages/abc/t/'
-examples/languages/abc/t/*_*.out
-examples/languages/abc/t/*_*.pir
+/examples/languages/abc/t/*_*.out
+/examples/languages/abc/t/*_*.pir
 # generated from svn:ignore of 'examples/languages/squaak/'
-examples/languages/squaak/*.c
-examples/languages/squaak/*.exe
-examples/languages/squaak/*.iss
-examples/languages/squaak/*.o
-examples/languages/squaak/*.obj
-examples/languages/squaak/*.pbc
-examples/languages/squaak/MANIFEST
-examples/languages/squaak/installable_squaak
-examples/languages/squaak/squaak
+/examples/languages/squaak/*.c
+/examples/languages/squaak/*.exe
+/examples/languages/squaak/*.iss
+/examples/languages/squaak/*.o
+/examples/languages/squaak/*.obj
+/examples/languages/squaak/*.pbc
+/examples/languages/squaak/MANIFEST
+/examples/languages/squaak/installable_squaak
+/examples/languages/squaak/squaak
 # generated from svn:ignore of 'examples/languages/squaak/src/'
-examples/languages/squaak/src/gen_*.pir
+/examples/languages/squaak/src/gen_*.pir
 # generated from svn:ignore of 'examples/mops/'
-examples/mops/*.o
-examples/mops/mops
+/examples/mops/*.o
+/examples/mops/mops
 # generated from svn:ignore of 'examples/nci/'
-examples/nci/*.pbc
+/examples/nci/*.pbc
 # generated from svn:ignore of 'examples/pasm/'
-examples/pasm/hello
-examples/pasm/hello.o
-examples/pasm/hello.pbc
+/examples/pasm/hello
+/examples/pasm/hello.o
+/examples/pasm/hello.pbc
 # generated from svn:ignore of 'examples/pir/befunge/'
-examples/pir/befunge/*.c
-examples/pir/befunge/*.exe
-examples/pir/befunge/*.iss
-examples/pir/befunge/*.o
-examples/pir/befunge/*.obj
-examples/pir/befunge/*.pbc
-examples/pir/befunge/MANIFEST
-examples/pir/befunge/befunge
-examples/pir/befunge/installable_befunge
+/examples/pir/befunge/*.c
+/examples/pir/befunge/*.exe
+/examples/pir/befunge/*.iss
+/examples/pir/befunge/*.o
+/examples/pir/befunge/*.obj
+/examples/pir/befunge/*.pbc
+/examples/pir/befunge/MANIFEST
+/examples/pir/befunge/befunge
+/examples/pir/befunge/installable_befunge
 # generated from svn:ignore of 'ext/'
-ext/Makefile
+/ext/Makefile
 # generated from svn:ignore of 'ext/Parrot-Embed/'
-ext/Parrot-Embed/*.bs
-ext/Parrot-Embed/*.bundle
-ext/Parrot-Embed/*.c
-ext/Parrot-Embed/*.def
-ext/Parrot-Embed/*.dll
-ext/Parrot-Embed/*.dump
-ext/Parrot-Embed/*.dylib
-ext/Parrot-Embed/*.exe
-ext/Parrot-Embed/*.exp
-ext/Parrot-Embed/*.h
-ext/Parrot-Embed/*.ilk
-ext/Parrot-Embed/*.lib
-ext/Parrot-Embed/*.manifest
-ext/Parrot-Embed/*.o
-ext/Parrot-Embed/*.obj
-ext/Parrot-Embed/*.old
-ext/Parrot-Embed/*.pdb
-ext/Parrot-Embed/*.pdb
-ext/Parrot-Embed/*.so
-ext/Parrot-Embed/*.tmp
-ext/Parrot-Embed/*.xs
-ext/Parrot-Embed/Build
-ext/Parrot-Embed/Build.bat
-ext/Parrot-Embed/Makefile
-ext/Parrot-Embed/Makefile.PL
-ext/Parrot-Embed/_build
-ext/Parrot-Embed/blib
-ext/Parrot-Embed/dll.base
-ext/Parrot-Embed/pm_to_blib
+/ext/Parrot-Embed/*.bs
+/ext/Parrot-Embed/*.bundle
+/ext/Parrot-Embed/*.c
+/ext/Parrot-Embed/*.def
+/ext/Parrot-Embed/*.dll
+/ext/Parrot-Embed/*.dump
+/ext/Parrot-Embed/*.dylib
+/ext/Parrot-Embed/*.exe
+/ext/Parrot-Embed/*.exp
+/ext/Parrot-Embed/*.h
+/ext/Parrot-Embed/*.ilk
+/ext/Parrot-Embed/*.lib
+/ext/Parrot-Embed/*.manifest
+/ext/Parrot-Embed/*.o
+/ext/Parrot-Embed/*.obj
+/ext/Parrot-Embed/*.old
+/ext/Parrot-Embed/*.pdb
+/ext/Parrot-Embed/*.pdb
+/ext/Parrot-Embed/*.so
+/ext/Parrot-Embed/*.tmp
+/ext/Parrot-Embed/*.xs
+/ext/Parrot-Embed/Build
+/ext/Parrot-Embed/Build.bat
+/ext/Parrot-Embed/Makefile
+/ext/Parrot-Embed/Makefile.PL
+/ext/Parrot-Embed/_build
+/ext/Parrot-Embed/blib
+/ext/Parrot-Embed/dll.base
+/ext/Parrot-Embed/pm_to_blib
 # generated from svn:ignore of 'ext/Parrot-Embed/lib/Parrot/'
-ext/Parrot-Embed/lib/Parrot/*.c
-ext/Parrot-Embed/lib/Parrot/*.obj
+/ext/Parrot-Embed/lib/Parrot/*.c
+/ext/Parrot-Embed/lib/Parrot/*.obj
 # generated from svn:ignore of 'ext/Parrot-Embed/t/'
-ext/Parrot-Embed/t/*.pbc
+/ext/Parrot-Embed/t/*.pbc
 # generated from svn:ignore of 'include/parrot/'
-include/parrot/*.tmp
-include/parrot/config.h
-include/parrot/core_pmcs.h
-include/parrot/extend_vtable.h
-include/parrot/feature.h
-include/parrot/has_header.h
-include/parrot/opsenum.h
-include/parrot/pbcversion.h
-include/parrot/platform.h
-include/parrot/platform_interface.h
-include/parrot/platform_limits.h
-include/parrot/vtable.h
+/include/parrot/*.tmp
+/include/parrot/config.h
+/include/parrot/core_pmcs.h
+/include/parrot/extend_vtable.h
+/include/parrot/feature.h
+/include/parrot/has_header.h
+/include/parrot/opsenum.h
+/include/parrot/pbcversion.h
+/include/parrot/platform.h
+/include/parrot/platform_interface.h
+/include/parrot/platform_limits.h
+/include/parrot/vtable.h
 # generated from svn:ignore of 'include/parrot/oplib/'
-include/parrot/oplib/*_ops.h
-include/parrot/oplib/*_ops_cg*.h
-include/parrot/oplib/*_ops_switch.h
-include/parrot/oplib/ops.h
+/include/parrot/oplib/*_ops.h
+/include/parrot/oplib/*_ops_cg*.h
+/include/parrot/oplib/*_ops_switch.h
+/include/parrot/oplib/ops.h
 # generated from svn:ignore of 'include/pmc/'
-include/pmc/*.h
+/include/pmc/*.h
 # generated from svn:ignore of 'lib/'
-lib/DumbLink.pm
+/lib/DumbLink.pm
 # generated from svn:ignore of 'lib/Parrot/'
-lib/Parrot/*.tmp
-lib/Parrot/Jit.pm
-lib/Parrot/Makefile
-lib/Parrot/OpLib
-lib/Parrot/PMC.pm
-lib/Parrot/PakFile2.bs
-lib/Parrot/PakFile2.c
-lib/Parrot/blib
-lib/Parrot/pm_to_blib
+/lib/Parrot/*.tmp
+/lib/Parrot/Jit.pm
+/lib/Parrot/Makefile
+/lib/Parrot/OpLib
+/lib/Parrot/PMC.pm
+/lib/Parrot/PakFile2.bs
+/lib/Parrot/PakFile2.c
+/lib/Parrot/blib
+/lib/Parrot/pm_to_blib
 # generated from svn:ignore of 'lib/Parrot/Config/'
-lib/Parrot/Config/Generated.pm
+/lib/Parrot/Config/Generated.pm
 # generated from svn:ignore of 'lib/Parrot/Pmc2c/'
-lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm
+/lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm
 # generated from svn:ignore of 'runtime/parrot/dynext/'
-runtime/parrot/dynext/*.bundle
-runtime/parrot/dynext/*.def
-runtime/parrot/dynext/*.dll
-runtime/parrot/dynext/*.dylib
-runtime/parrot/dynext/*.exe
-runtime/parrot/dynext/*.exp
-runtime/parrot/dynext/*.ilk
-runtime/parrot/dynext/*.lib
-runtime/parrot/dynext/*.manifest
-runtime/parrot/dynext/*.obj
-runtime/parrot/dynext/*.pdb
-runtime/parrot/dynext/*.so
-runtime/parrot/dynext/libnci.*
+/runtime/parrot/dynext/*.bundle
+/runtime/parrot/dynext/*.def
+/runtime/parrot/dynext/*.dll
+/runtime/parrot/dynext/*.dylib
+/runtime/parrot/dynext/*.exe
+/runtime/parrot/dynext/*.exp
+/runtime/parrot/dynext/*.ilk
+/runtime/parrot/dynext/*.lib
+/runtime/parrot/dynext/*.manifest
+/runtime/parrot/dynext/*.obj
+/runtime/parrot/dynext/*.pdb
+/runtime/parrot/dynext/*.so
+/runtime/parrot/dynext/libnci.*
 # generated from svn:ignore of 'runtime/parrot/include/'
-runtime/parrot/include/*.fpmc
-runtime/parrot/include/*.pasm
-runtime/parrot/include/*.pbc
+/runtime/parrot/include/*.fpmc
+/runtime/parrot/include/*.pasm
+/runtime/parrot/include/*.pbc
+# generated from svn:ignore of 'runtime/parrot/languages/'
+/runtime/parrot/languages/data_json
 # generated from svn:ignore of 'runtime/parrot/library/'
-runtime/parrot/library/*.pbc
-runtime/parrot/library/OpenGL_funcs.pir
-runtime/parrot/library/PAST
-runtime/parrot/library/config.pir
+/runtime/parrot/library/*.pbc
+/runtime/parrot/library/OpenGL_funcs.pir
+/runtime/parrot/library/PAST
+/runtime/parrot/library/config.pir
 # generated from svn:ignore of 'runtime/parrot/library/CGI/'
-runtime/parrot/library/CGI/*.pbc
+/runtime/parrot/library/CGI/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Config/'
-runtime/parrot/library/Config/*.pbc
+/runtime/parrot/library/Config/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Configure/'
-runtime/parrot/library/Configure/*.pbc
+/runtime/parrot/library/Configure/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Data/'
-runtime/parrot/library/Data/*.pbc
+/runtime/parrot/library/Data/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Data/Dumper/'
-runtime/parrot/library/Data/Dumper/*.pbc
+/runtime/parrot/library/Data/Dumper/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Digest/'
-runtime/parrot/library/Digest/*.pbc
+/runtime/parrot/library/Digest/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Getopt/'
-runtime/parrot/library/Getopt/Obj.pbc
+/runtime/parrot/library/Getopt/Obj.pbc
 # generated from svn:ignore of 'runtime/parrot/library/MIME/'
-runtime/parrot/library/MIME/*.pbc
+/runtime/parrot/library/MIME/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Math/'
-runtime/parrot/library/Math/*.pbc
+/runtime/parrot/library/Math/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/NCI/'
-runtime/parrot/library/NCI/*.pbc
+/runtime/parrot/library/NCI/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/OpenGL/'
-runtime/parrot/library/OpenGL/*.pbc
+/runtime/parrot/library/OpenGL/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/PCT/'
-runtime/parrot/library/PCT/*.pbc
+/runtime/parrot/library/PCT/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/PGE/'
-runtime/parrot/library/PGE/*.pbc
+/runtime/parrot/library/PGE/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Parrot/'
-runtime/parrot/library/Parrot/*.pbc
+/runtime/parrot/library/Parrot/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/ProfTest/'
-runtime/parrot/library/ProfTest/*.pbc
-runtime/parrot/library/ProfTest/*.pir
+/runtime/parrot/library/ProfTest/*.pbc
+/runtime/parrot/library/ProfTest/*.pir
 # generated from svn:ignore of 'runtime/parrot/library/Stream/'
-runtime/parrot/library/Stream/*.pbc
+/runtime/parrot/library/Stream/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/String/'
-runtime/parrot/library/String/Utils.pbc
+/runtime/parrot/library/String/Utils.pbc
 # generated from svn:ignore of 'runtime/parrot/library/TAP/'
-runtime/parrot/library/TAP/*.pbc
+/runtime/parrot/library/TAP/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Tcl/'
-runtime/parrot/library/Tcl/*.pbc
+/runtime/parrot/library/Tcl/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Test/'
-runtime/parrot/library/Test/*.pbc
+/runtime/parrot/library/Test/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Test/Builder/'
-runtime/parrot/library/Test/Builder/*.pbc
+/runtime/parrot/library/Test/Builder/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/YAML/'
-runtime/parrot/library/YAML/*.pbc
+/runtime/parrot/library/YAML/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/YAML/Dumper/'
-runtime/parrot/library/YAML/Dumper/*.pbc
+/runtime/parrot/library/YAML/Dumper/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/YAML/Parser/'
-runtime/parrot/library/YAML/Parser/*.pbc
+/runtime/parrot/library/YAML/Parser/*.pbc
 # generated from svn:ignore of 'src/'
-src/*.o
-src/*.obj
-src/*.str
-src/asmfun.*
-src/core_pmcs.c
-src/exec_cpu.c
-src/exec_dep.c
-src/exec_dep.h
-src/extend_vtable.c
-src/extra_nci_thunks.c
-src/fingerprint.c
-src/glut_callbacks.c
-src/glut_nci_thunks.c
-src/glut_nci_thunks.nci
-src/install_config.c
-src/jit_cpu.c
-src/jit_defs.c
-src/jit_emit.h
-src/null_config.c
-src/parrot_config.c
-src/parrot_config.h
-src/platform.c
-src/platform_asm.s
-src/revision.c
+/src/*.o
+/src/*.obj
+/src/*.str
+/src/asmfun.*
+/src/core_pmcs.c
+/src/exec_cpu.c
+/src/exec_dep.c
+/src/exec_dep.h
+/src/extend_vtable.c
+/src/extra_nci_thunks.c
+/src/fingerprint.c
+/src/glut_callbacks.c
+/src/glut_nci_thunks.c
+/src/glut_nci_thunks.nci
+/src/install_config.c
+/src/jit_cpu.c
+/src/jit_defs.c
+/src/jit_emit.h
+/src/null_config.c
+/src/parrot_config.c
+/src/parrot_config.h
+/src/platform.c
+/src/platform_asm.s
+/src/revision.c
 # generated from svn:ignore of 'src/atomic/'
-src/atomic/*.gcda
-src/atomic/*.o
+/src/atomic/*.gcda
+/src/atomic/*.o
 # generated from svn:ignore of 'src/call/'
-src/call/*.o
-src/call/*.obj
-src/call/*.str
+/src/call/*.o
+/src/call/*.obj
+/src/call/*.str
 # generated from svn:ignore of 'src/dynoplibs/'
-src/dynoplibs/*.bundle
-src/dynoplibs/*.c
-src/dynoplibs/*.dll
-src/dynoplibs/*.exp
-src/dynoplibs/*.h
-src/dynoplibs/*.ilk
-src/dynoplibs/*.lib
-src/dynoplibs/*.manifest
-src/dynoplibs/*.o
-src/dynoplibs/*.obj
-src/dynoplibs/*.pdb
-src/dynoplibs/*.so
-src/dynoplibs/Defines.mak
-src/dynoplibs/Rules.mak
+/src/dynoplibs/*.bundle
+/src/dynoplibs/*.c
+/src/dynoplibs/*.dll
+/src/dynoplibs/*.exp
+/src/dynoplibs/*.h
+/src/dynoplibs/*.ilk
+/src/dynoplibs/*.lib
+/src/dynoplibs/*.manifest
+/src/dynoplibs/*.o
+/src/dynoplibs/*.obj
+/src/dynoplibs/*.pdb
+/src/dynoplibs/*.so
+/src/dynoplibs/Defines.mak
+/src/dynoplibs/Rules.mak
 # generated from svn:ignore of 'src/dynpmc/'
-src/dynpmc/*.bundle
-src/dynpmc/*.c
-src/dynpmc/*.def
-src/dynpmc/*.dll
-src/dynpmc/*.dump
-src/dynpmc/*.dylib
-src/dynpmc/*.exe
-src/dynpmc/*.exp
-src/dynpmc/*.h
-src/dynpmc/*.ilk
-src/dynpmc/*.lib
-src/dynpmc/*.manifest
-src/dynpmc/*.o
-src/dynpmc/*.obj
-src/dynpmc/*.pdb
-src/dynpmc/*.so
-src/dynpmc/Makefile
-src/dynpmc/md2.pmc
-src/dynpmc/md4.pmc
-src/dynpmc/md5.pmc
-src/dynpmc/ripemd160.pmc
-src/dynpmc/sha.pmc
-src/dynpmc/sha1.pmc
-src/dynpmc/sha256.pmc
-src/dynpmc/sha512.pmc
+/src/dynpmc/*.bundle
+/src/dynpmc/*.c
+/src/dynpmc/*.def
+/src/dynpmc/*.dll
+/src/dynpmc/*.dump
+/src/dynpmc/*.dylib
+/src/dynpmc/*.exe
+/src/dynpmc/*.exp
+/src/dynpmc/*.h
+/src/dynpmc/*.ilk
+/src/dynpmc/*.lib
+/src/dynpmc/*.manifest
+/src/dynpmc/*.o
+/src/dynpmc/*.obj
+/src/dynpmc/*.pdb
+/src/dynpmc/*.so
+/src/dynpmc/Makefile
+/src/dynpmc/md2.pmc
+/src/dynpmc/md4.pmc
+/src/dynpmc/md5.pmc
+/src/dynpmc/ripemd160.pmc
+/src/dynpmc/sha.pmc
+/src/dynpmc/sha1.pmc
+/src/dynpmc/sha256.pmc
+/src/dynpmc/sha512.pmc
 # generated from svn:ignore of 'src/gc/'
-src/gc/*.bundle
-src/gc/*.c
-src/gc/*.def
-src/gc/*.dll
-src/gc/*.dump
-src/gc/*.dylib
-src/gc/*.exe
-src/gc/*.exp
-src/gc/*.h
-src/gc/*.ilk
-src/gc/*.lib
-src/gc/*.manifest
-src/gc/*.o
-src/gc/*.obj
-src/gc/*.pdb
-src/gc/*.so
-src/gc/Makefile
+/src/gc/*.bundle
+/src/gc/*.def
+/src/gc/*.dll
+/src/gc/*.dump
+/src/gc/*.dylib
+/src/gc/*.exe
+/src/gc/*.exp
+/src/gc/*.h
+/src/gc/*.ilk
+/src/gc/*.lib
+/src/gc/*.manifest
+/src/gc/*.o
+/src/gc/*.obj
+/src/gc/*.pdb
+/src/gc/*.so
+/src/gc/Makefile
 # generated from svn:ignore of 'src/interp/'
-src/interp/*.o
-src/interp/*.str
+/src/interp/*.o
+/src/interp/*.str
 # generated from svn:ignore of 'src/io/'
-src/io/*.o
-src/io/*.obj
-src/io/*.str
+/src/io/*.o
+/src/io/*.obj
+/src/io/*.str
 # generated from svn:ignore of 'src/nci/'
-src/nci/*.o
-src/nci/*.obj
-src/nci/*.str
+/src/nci/*.o
+/src/nci/*.obj
+/src/nci/*.str
 # generated from svn:ignore of 'src/ops/'
-src/ops/*.c
-src/ops/*.o
-src/ops/*.obj
+/src/ops/*.c
+/src/ops/*.o
+/src/ops/*.obj
 # generated from svn:ignore of 'src/packfile/'
-src/packfile/*.o
-src/packfile/*.obj
+/src/packfile/*.o
+/src/packfile/*.obj
 # generated from svn:ignore of 'src/pmc/'
-src/pmc/*.c
-src/pmc/*.dump
-src/pmc/*.h
-src/pmc/*.o
-src/pmc/*.obj
-src/pmc/*.str
-src/pmc/*.tmp
-src/pmc/Makefile
+/src/pmc/*.c
+/src/pmc/*.dump
+/src/pmc/*.h
+/src/pmc/*.o
+/src/pmc/*.obj
+/src/pmc/*.str
+/src/pmc/*.tmp
+/src/pmc/Makefile
 # generated from svn:ignore of 'src/runcore/'
-src/runcore/*.o
-src/runcore/*.obj
-src/runcore/*.str
+/src/runcore/*.o
+/src/runcore/*.obj
+/src/runcore/*.str
 # generated from svn:ignore of 'src/string/'
-src/string/*.o
-src/string/*.obj
-src/string/*.str
-src/string/private_cstring.h
+/src/string/*.o
+/src/string/*.obj
+/src/string/*.str
+/src/string/private_cstring.h
 # generated from svn:ignore of 'src/string/charset/'
-src/string/charset/*.o
-src/string/charset/*.obj
+/src/string/charset/*.o
+/src/string/charset/*.obj
 # generated from svn:ignore of 'src/string/encoding/'
-src/string/encoding/*.o
-src/string/encoding/*.obj
+/src/string/encoding/*.o
+/src/string/encoding/*.obj
 # generated from svn:ignore of 't/benchmark/'
-t/benchmark/*.pasm
-t/benchmark/*.pir
+/t/benchmark/*.pasm
+/t/benchmark/*.pir
+# generated from svn:ignore of 't/compilers/data_json/'
+/t/compilers/data_json/*.pbc
+/t/compilers/data_json/*.pir
+/t/compilers/data_json/*_pbcexe
 # generated from svn:ignore of 't/compilers/imcc/'
-t/compilers/imcc/*.pbc
+/t/compilers/imcc/*.pbc
 # generated from svn:ignore of 't/compilers/imcc/imcpasm/'
-t/compilers/imcc/imcpasm/*.pasm
-t/compilers/imcc/imcpasm/*.pbc
-t/compilers/imcc/imcpasm/*.pir
-t/compilers/imcc/imcpasm/*_pbcexe
+/t/compilers/imcc/imcpasm/*.pasm
+/t/compilers/imcc/imcpasm/*.pbc
+/t/compilers/imcc/imcpasm/*.pir
+/t/compilers/imcc/imcpasm/*_pbcexe
 # generated from svn:ignore of 't/compilers/imcc/reg/'
-t/compilers/imcc/reg/*.pasm
-t/compilers/imcc/reg/*.pbc
-t/compilers/imcc/reg/*.pir
-t/compilers/imcc/reg/*_pbcexe*
+/t/compilers/imcc/reg/*.pasm
+/t/compilers/imcc/reg/*.pbc
+/t/compilers/imcc/reg/*.pir
+/t/compilers/imcc/reg/*_pbcexe*
 # generated from svn:ignore of 't/compilers/imcc/syn/'
-t/compilers/imcc/syn/*.pasm
-t/compilers/imcc/syn/*.pbc
-t/compilers/imcc/syn/*.pir
-t/compilers/imcc/syn/*_pbcexe*
-# generated from svn:ignore of 't/compilers/json/'
-t/compilers/json/*.pbc
-t/compilers/json/*.pir
-t/compilers/json/*_pbcexe
+/t/compilers/imcc/syn/*.pasm
+/t/compilers/imcc/syn/*.pbc
+/t/compilers/imcc/syn/*.pir
+/t/compilers/imcc/syn/*_pbcexe*
 # generated from svn:ignore of 't/compilers/pct/'
-t/compilers/pct/*.pbc
-t/compilers/pct/*.pir
+/t/compilers/pct/*.pbc
+/t/compilers/pct/*.pir
 # generated from svn:ignore of 't/compilers/pge/'
-t/compilers/pge/*.pasm
-t/compilers/pge/*.pbc
-t/compilers/pge/*.pir
-t/compilers/pge/*_pbcexe
+/t/compilers/pge/*.pasm
+/t/compilers/pge/*.pbc
+/t/compilers/pge/*.pir
+/t/compilers/pge/*_pbcexe
 # generated from svn:ignore of 't/compilers/pge/p5regex/'
-t/compilers/pge/p5regex/*.pir
+/t/compilers/pge/p5regex/*.pir
 # generated from svn:ignore of 't/compilers/pge/perl6regex/'
-t/compilers/pge/perl6regex/*.pbc
-t/compilers/pge/perl6regex/*.pir
+/t/compilers/pge/perl6regex/*.pbc
+/t/compilers/pge/perl6regex/*.pir
 # generated from svn:ignore of 't/compilers/tge/'
-t/compilers/tge/*.pbc
-t/compilers/tge/*.pir
-t/compilers/tge/*_pbcexe
+/t/compilers/tge/*.pbc
+/t/compilers/tge/*.pir
+/t/compilers/tge/*_pbcexe
 # generated from svn:ignore of 't/dynoplibs/'
-t/dynoplibs/*.pasm
-t/dynoplibs/*.pbc
-t/dynoplibs/*.pir
+/t/dynoplibs/*.pasm
+/t/dynoplibs/*.pbc
+/t/dynoplibs/*.pir
 # generated from svn:ignore of 't/dynpmc/'
-t/dynpmc/*.pasm
-t/dynpmc/*.pbc
-t/dynpmc/*.pir
-t/dynpmc/*_pbcexe*
-t/dynpmc/md2.t
-t/dynpmc/md4.t
-t/dynpmc/md5.t
-t/dynpmc/ripemd160.t
-t/dynpmc/sha.t
-t/dynpmc/sha1.t
-t/dynpmc/sha256.t
-t/dynpmc/sha512.t
+/t/dynpmc/*.pasm
+/t/dynpmc/*.pbc
+/t/dynpmc/*.pir
+/t/dynpmc/*_pbcexe*
+/t/dynpmc/md2.t
+/t/dynpmc/md4.t
+/t/dynpmc/md5.t
+/t/dynpmc/ripemd160.t
+/t/dynpmc/sha.t
+/t/dynpmc/sha1.t
+/t/dynpmc/sha256.t
+/t/dynpmc/sha512.t
 # generated from svn:ignore of 't/examples/'
-t/examples/*.pasm
-t/examples/*.pbc
-t/examples/*.pir
-t/examples/*_pbcexe*
+/t/examples/*.pasm
+/t/examples/*.pbc
+/t/examples/*.pir
+/t/examples/*_pbcexe*
 # generated from svn:ignore of 't/library/'
-t/library/*.out
-t/library/*.pasm
-t/library/*.pbc
-t/library/*.pir
-t/library/*_pbcexe*
+/t/library/*.out
+/t/library/*.pasm
+/t/library/*.pbc
+/t/library/*.pir
+/t/library/*_pbcexe*
 # generated from svn:ignore of 't/native_pbc/'
-t/native_pbc/*_pbcexe*
+/t/native_pbc/*_pbcexe*
 # generated from svn:ignore of 't/oo/'
-t/oo/*.pbc
-t/oo/*.pir
+/t/oo/*.pbc
+/t/oo/*.pir
 # generated from svn:ignore of 't/op/'
-t/op/*.out
-t/op/*.pasm
-t/op/*.pbc
-t/op/*.pir
-t/op/*_pbcexe*
+/t/op/*.out
+/t/op/*.pasm
+/t/op/*.pbc
+/t/op/*.pir
+/t/op/*_pbcexe*
 # generated from svn:ignore of 't/perl/'
-t/perl/Parrot_Test_1.pasm
-t/perl/Parrot_Test_1.pir
+/t/perl/Parrot_Test_1.pasm
+/t/perl/Parrot_Test_1.pir
 # generated from svn:ignore of 't/pmc/'
-t/pmc/*.out
-t/pmc/*.pasm
-t/pmc/*.pbc
-t/pmc/*.pir
-t/pmc/*_pbcexe*
+/t/pmc/*.out
+/t/pmc/*.pasm
+/t/pmc/*.pbc
+/t/pmc/*.pir
+/t/pmc/*_pbcexe*
 # generated from svn:ignore of 't/src/'
-t/src/*_*
+/t/src/*_*
 # generated from svn:ignore of 't/stress/'
-t/stress/*.out
-t/stress/*.pasm
-t/stress/*.pbc
-t/stress/*.pir
-t/stress/*_pbcexe*
+/t/stress/*.out
+/t/stress/*.pasm
+/t/stress/*.pbc
+/t/stress/*.pir
+/t/stress/*_pbcexe*
 # generated from svn:ignore of 't/tools/'
-t/tools/*.pbc
-t/tools/*.pir
-t/tools/pdb.t.*
-t/tools/pmc2c.*.c
-t/tools/pmc2c.*.dump
-t/tools/pmc2c.*.h
-t/tools/pmc2c.*.pmc
+/t/tools/*.pbc
+/t/tools/*.pir
+/t/tools/pdb.t.*
+/t/tools/pmc2c.*.c
+/t/tools/pmc2c.*.dump
+/t/tools/pmc2c.*.h
+/t/tools/pmc2c.*.pmc
 # Local variables:
 #   mode: text
 #   buffer-read-only: t

Modified: branches/include_dynpmc_makefile/CREDITS
==============================================================================
--- branches/include_dynpmc_makefile/CREDITS	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/CREDITS	Wed Apr 28 19:17:12 2010	(r46116)
@@ -509,9 +509,10 @@
 E: jesse at fsck.com
 
 N: Jimmy Zhuo
-A: jimmy
+A: JimmyZ
+U: jimmy
 E: zhuomingliang at yahoo.com.cn
-D: Bugfixes
+D: Bugfixes, cage cleaning
 
 N: John J. Trammell
 E: trammell at el-swifto.com

Modified: branches/include_dynpmc_makefile/Configure.pl
==============================================================================
--- branches/include_dynpmc_makefile/Configure.pl	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/Configure.pl	Wed Apr 28 19:17:12 2010	(r46116)
@@ -343,10 +343,6 @@
 
 Use the given ops files.
 
-=item C<--cgoto=0>
-
-Don't build cgoto core. This is recommended when you are short of memory.
-
 =item C<--jitcapable>
 
 Use JIT system.
@@ -623,7 +619,6 @@
     auto::jit
     auto::frames
     auto::cpu
-    auto::cgoto
     auto::inline
     auto::gc
     auto::memalign

Modified: branches/include_dynpmc_makefile/DEPRECATED.pod
==============================================================================
--- branches/include_dynpmc_makefile/DEPRECATED.pod	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/DEPRECATED.pod	Wed Apr 28 19:17:12 2010	(r46116)
@@ -37,11 +37,9 @@
 
 =over 4
 
-=item RetContinuation [eligible in 2.4]
+=item gziphandle [experimental]
 
-In future, just use Continuation.
-
-L<https://trac.parrot.org/parrot/ticket/1427>
+L<https://trac.parrot.org/parrot/ticket/1580>
 
 =item moved to dynpmc [eligible in 1.1]
 
@@ -174,14 +172,20 @@
 Ability to get the string name of the current GC core from the interpinfo_s_i.
 See r43900 and r43904 for details.
 
+L<https://trac.parrot.org/parrot/ticket/1581>
+
 =item NCI_FB_CB and NCI_FB_UD in iglobals [experimental]
 
 Hooks allowing a runtime-loadable dynamic frame builder.
 
+L<https://trac.parrot.org/parrot/ticket/1582>
+
 =item loadlib_p_s_p [experimental]
 
 Ability to use non-default dynamic loading behaviour.
 
+L<https://trac.parrot.org/parrot/ticket/1583>
+
 =item pushaction, pushmark, popmark [eligible in 2.4]
 
 L<https://trac.parrot.org/parrot/ticket/876>
@@ -227,23 +231,6 @@
 
 =back
 
-=head1 Runcores
-
-=over 4
-
-=item Unused Runcores [eligible in 2.4]
-
-The following Runcores do not appear to be used.  Accordingly they will
-be eligible for removal.
-
-CGoto
-CGP
-Switch
-
-L<https://trac.parrot.org/parrot/ticket/1563>
-
-=back
-
 =head1 Bytecode
 
 =over 4
@@ -306,21 +293,27 @@
  Parrot_gc_free_pmc_attributes
 
 These items and related helper functions are added as experimental support
-for L<https://trac.parrot.org/parrot/ticket/895>
+for L<https://trac.parrot.org/parrot/ticket/1506>
 
 =item STRING Out parameters in Parrot_str_* functions [eligible in 2.1]
 
 All STRING modification functions will return a STRING pointer; capture and use
 this rather than relying on in-place modification of an existing pointer.
 
+L<https://trac.parrot.org/parrot/ticket/1584>
+
 =item STRING_is_null function [eligible in 2.4]
 
 renamed to Parrot_str_is_null
 
+L<https://trac.parrot.org/parrot/ticket/1585>
+
 =item Parrot_string_* [eligible in 2.4]
 
 rename Parrot_string_cstring to Parrot_str_cstring
 
+L<https://trac.parrot.org/parrot/ticket/1586>
+
 =item STRING COW [eligible in 2.4]
 
 COW strings are to be removed. All "inplace" string modification
@@ -338,6 +331,8 @@
   Parrot_PMC_set_vtable
   Parrot_PMC_newclass
 
+L<https://trac.parrot.org/parrot/ticket/1587>
+
 =item Parrot_VTABLE, Parrot_get_vtable, Parrot_PMC_set_vtable [eligible in 2.4]
 
 These do not expose any functionality that should be available to code outside
@@ -346,6 +341,8 @@
 These might get revived in some form to allow for creating new types and adding
 vtable-overrides, if that functionality becomes desired.
 
+L<https://trac.parrot.org/parrot/ticket/1588>
+
 =back
 
 =head1 Compiler tools
@@ -398,23 +395,6 @@
 
 =back
 
-=head1 Compilers
-
-=over 4
-
-=item json [eligible in 2.4]
-
-The json compiler was dupicated into data_json some time ago. If you're
-using json, just use data_json instead, it's the same code. See TT #1461.
-
-=item nqp [eligible in 2.4]
-
-Replaced by ext/nqp-rx and parrot-nqp.
-
-L<http://trac.parrot.org/parrot/ticket/1462>
-
-=back
-
 =head1 Parrot library
 
 =over 4
@@ -426,7 +406,7 @@
 A way to provide an equivalent of -L and -I parrot command line options
 to language that doesn't support it.
 
-=item JSON, JSON, and Config;JSON [eligible in 1.5]
+=item JSON, and Config;JSON [eligible in 1.5]
 
 L<https://trac.parrot.org/parrot/ticket/508>
 

Modified: branches/include_dynpmc_makefile/MANIFEST
==============================================================================
--- branches/include_dynpmc_makefile/MANIFEST	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/MANIFEST	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,11 +1,12 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Thu Apr 22 09:47:18 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Mon Apr 26 12:41:21 2010 UT
 #
 # See below for documentation on the format of this file.
 #
-# See docs/submissions.pod on how to recreate this file after SVN
+# See docs/submissions.pod and the documentation in
+# tools/dev/mk_manifest_and_skip.pl on how to recreate this file after SVN
 # has been told about new or deleted files.
 .gitignore                                                  []
 CREDITS                                                     [main]doc
@@ -18,8 +19,6 @@
 MANIFEST                                                    []
 MANIFEST.SKIP                                               []
 MANIFEST.generated                                          []
-META.yml                                                    []
-Makefile.PL                                                 []
 NEWS                                                        [main]doc
 PBC_COMPAT                                                  [main]doc
 PLATFORMS                                                   [devel]doc
@@ -63,72 +62,6 @@
 compilers/imcc/symreg.c                                     [imcc]
 compilers/imcc/symreg.h                                     [imcc]
 compilers/imcc/unit.h                                       [imcc]
-compilers/json/Defines.mak                                  [json]
-compilers/json/JSON.pir                                     [json]
-compilers/json/JSON/grammar.pg                              [json]
-compilers/json/JSON/pge2pir.tg                              [json]
-compilers/json/Rules.mak                                    [json]
-compilers/ncigen/MAINTAINER                                 [ncigen]
-compilers/ncigen/NCIGEN.TODO                                [ncigen]
-compilers/ncigen/NCIGENP6.pm                                [ncigen]
-compilers/ncigen/README                                     []doc
-compilers/ncigen/config/makefiles/ncigen.in                 [ncigen]
-compilers/ncigen/lib/Parrot/Test/NCIGENAST.pm               [ncigen]
-compilers/ncigen/ncigen.pir                                 [ncigen]
-compilers/ncigen/ncigen.pl                                  [ncigen]
-compilers/ncigen/src/NCIGENAST.pir                          [ncigen]
-compilers/ncigen/src/NCIPIR.pir                             [ncigen]
-compilers/ncigen/src/builtins/say.pir                       [ncigen]
-compilers/ncigen/src/parser/actions.pm                      [ncigen]
-compilers/ncigen/src/parser/grammar.pg                      [ncigen]
-compilers/ncigen/t/NCIGENAST/struct_00.t                    [test]
-compilers/ncigen/t/NCIGENAST/typedef_00.t                   [test]
-compilers/ncigen/t/harness                                  [test]
-compilers/ncigen/t/parse_00.t                               [test]
-compilers/ncigen/t/parse_01.t                               [test]
-compilers/ncigen/t/parse_02.t                               [test]
-compilers/nqp/Defines.mak                                   [nqp]
-compilers/nqp/README.pod                                    []doc
-compilers/nqp/Rules.mak                                     [nqp]
-compilers/nqp/TODO.pod                                      [nqp]
-compilers/nqp/bootstrap/actions.pm                          [nqp]
-compilers/nqp/bootstrap/nqp.pir                             [nqp]
-compilers/nqp/bootstrap/t/harness                           [test]
-compilers/nqp/nqp.pir                                       [nqp]
-compilers/nqp/src/Grammar.pg                                [nqp]
-compilers/nqp/src/Grammar/Actions.pir                       [nqp]
-compilers/nqp/src/builtins.pir                              [nqp]
-compilers/nqp/t/01-literals.t                               [test]
-compilers/nqp/t/02-if-else.t                                [test]
-compilers/nqp/t/02-if.t                                     [test]
-compilers/nqp/t/03-unless.t                                 [test]
-compilers/nqp/t/04-comments.t                               [test]
-compilers/nqp/t/05-pod.t                                    [test]
-compilers/nqp/t/06-args-pos.t                               [test]
-compilers/nqp/t/07-boolean.t                                [test]
-compilers/nqp/t/08-blocks.t                                 [test]
-compilers/nqp/t/09-var.t                                    [test]
-compilers/nqp/t/10-sub.t                                    [test]
-compilers/nqp/t/11-cmp.t                                    [test]
-compilers/nqp/t/12-list.t                                   [test]
-compilers/nqp/t/13-logical.t                                [test]
-compilers/nqp/t/14-op.t                                     [test]
-compilers/nqp/t/15-module.t                                 [test]
-compilers/nqp/t/16-while.t                                  [test]
-compilers/nqp/t/17-class.t                                  [test]
-compilers/nqp/t/18-inline.t                                 [test]
-compilers/nqp/t/19-hash_access.t                            [test]
-compilers/nqp/t/20-list_access.t                            [test]
-compilers/nqp/t/22-optional_args.t                          [test]
-compilers/nqp/t/23-named_args.t                             [test]
-compilers/nqp/t/24-scalar_context.t                         [test]
-compilers/nqp/t/25-list_context.t                           [test]
-compilers/nqp/t/26-method_ops.t                             [test]
-compilers/nqp/t/27-ternary.t                                [test]
-compilers/nqp/t/28-return.t                                 [test]
-compilers/nqp/t/29-self.t                                   [test]
-compilers/nqp/t/30-subclass.t                               [test]
-compilers/nqp/t/harness                                     [test]
 compilers/pct/Defines.mak                                   [pct]
 compilers/pct/PCT.pir                                       [pct]
 compilers/pct/README.pod                                    []doc
@@ -226,8 +159,6 @@
 config/auto/backtrace/test_dlinfo_c.in                      []
 config/auto/byteorder.pm                                    []
 config/auto/byteorder/test_c.in                             []
-config/auto/cgoto.pm                                        []
-config/auto/cgoto/test_c.in                                 []
 config/auto/cpu.pm                                          []
 config/auto/cpu/i386/auto.pm                                []
 config/auto/cpu/i386/test_gcc_cmpxchg_c.in                  []
@@ -300,6 +231,8 @@
 config/auto/va_ptr/test_c.in                                []
 config/auto/warnings.pm                                     []
 config/auto/warnings/test_c.in                              []
+config/auto/zlib.pm                                         []
+config/auto/zlib/zlib_c.in                                  []
 config/gen/config_h.pm                                      []
 config/gen/config_h/config_h.in                             []
 config/gen/config_h/feature_h.in                            []
@@ -630,6 +563,7 @@
 examples/benchmarks/stress2.pl                              [examples]
 examples/benchmarks/stress2.rb                              [examples]
 examples/benchmarks/stress3.pasm                            [examples]
+examples/benchmarks/stress_strings.pir                      [examples]
 examples/benchmarks/vpm.pir                                 [examples]
 examples/benchmarks/vpm.pl                                  [examples]
 examples/benchmarks/vpm.py                                  [examples]
@@ -1108,10 +1042,6 @@
 lib/Parrot/Op.pm                                            [devel]lib
 lib/Parrot/OpTrans.pm                                       [devel]lib
 lib/Parrot/OpTrans/C.pm                                     [devel]lib
-lib/Parrot/OpTrans/CGP.pm                                   [devel]lib
-lib/Parrot/OpTrans/CGoto.pm                                 [devel]lib
-lib/Parrot/OpTrans/CPrederef.pm                             [devel]lib
-lib/Parrot/OpTrans/CSwitch.pm                               [devel]lib
 lib/Parrot/Ops2c/Auxiliary.pm                               [devel]lib
 lib/Parrot/Ops2c/Utils.pm                                   [devel]lib
 lib/Parrot/Ops2pm.pm                                        [devel]lib
@@ -1309,6 +1239,7 @@
 src/dynpmc/ext.pir                                          []
 src/dynpmc/foo.pmc                                          []
 src/dynpmc/foo2.pmc                                         []
+src/dynpmc/gziphandle.pmc                                   []
 src/dynpmc/main.pasm                                        []
 src/dynpmc/pccmethod_test.pmc                               []
 src/dynpmc/rational.pmc                                     []
@@ -1543,6 +1474,8 @@
 t/codingstd/svn_id.t                                        [test]
 t/codingstd/tabs.t                                          [test]
 t/codingstd/trailing_space.t                                [test]
+t/compilers/data_json/from_parrot.t                         [test]
+t/compilers/data_json/to_parrot.t                           [test]
 t/compilers/imcc/imcpasm/cfg.t                              [test]
 t/compilers/imcc/imcpasm/opt0.t                             [test]
 t/compilers/imcc/imcpasm/opt1.t                             [test]
@@ -1572,8 +1505,6 @@
 t/compilers/imcc/syn/symbols.t                              [test]
 t/compilers/imcc/syn/tail.t                                 [test]
 t/compilers/imcc/syn/veracity.t                             [test]
-t/compilers/json/from_parrot.t                              [test]
-t/compilers/json/to_parrot.t                                [test]
 t/compilers/pct/complete_workflow.t                         [test]
 t/compilers/pct/past.t                                      [test]
 t/compilers/pct/pct_hllcompiler.t                           [test]
@@ -1679,12 +1610,12 @@
 t/configure/testlib/verbosefoobar                           [test]
 t/distro/file_metadata.t                                    [test]
 t/distro/manifest.t                                         [test]
-t/distro/meta_yml.t                                         [test]
 t/dynoplibs/math.t                                          [test]
 t/dynoplibs/obscure.t                                       [test]
 t/dynpmc/dynlexpad.t                                        [test]
 t/dynpmc/foo.t                                              [test]
 t/dynpmc/foo2.t                                             [test]
+t/dynpmc/gziphandle.t                                       [test]
 t/dynpmc/pccmethod_test.t                                   [test]
 t/dynpmc/rational.t                                         [test]
 t/dynpmc/rotest.t                                           [test]
@@ -1978,7 +1909,6 @@
 t/steps/auto/attributes-01.t                                [test]
 t/steps/auto/backtrace-01.t                                 [test]
 t/steps/auto/byteorder-01.t                                 [test]
-t/steps/auto/cgoto-01.t                                     [test]
 t/steps/auto/cpu-01.t                                       [test]
 t/steps/auto/ctags-01.t                                     [test]
 t/steps/auto/env-01.t                                       [test]
@@ -2013,6 +1943,7 @@
 t/steps/auto/thread-01.t                                    [test]
 t/steps/auto/va_ptr-01.t                                    [test]
 t/steps/auto/warnings-01.t                                  [test]
+t/steps/auto/zlib-01.t                                      [test]
 t/steps/gen/config_h-01.t                                   [test]
 t/steps/gen/config_pm-01.t                                  [test]
 t/steps/gen/core_pmcs-01.t                                  [test]

Modified: branches/include_dynpmc_makefile/MANIFEST.SKIP
==============================================================================
--- branches/include_dynpmc_makefile/MANIFEST.SKIP	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/MANIFEST.SKIP	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 21 10:28:38 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 28 02:20:18 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -188,37 +188,6 @@
 ^compilers/imcc/imcparser\.h/
 ^compilers/imcc/imcparser\.output$
 ^compilers/imcc/imcparser\.output/
-# generated from svn:ignore of 'compilers/json/'
-^compilers/json/JSON\.pbc$
-^compilers/json/JSON\.pbc/
-# generated from svn:ignore of 'compilers/json/JSON/'
-^compilers/json/JSON/.*\.pbc$
-^compilers/json/JSON/.*\.pbc/
-^compilers/json/JSON/.*\.pir$
-^compilers/json/JSON/.*\.pir/
-# generated from svn:ignore of 'compilers/ncigen/'
-^compilers/ncigen/Makefile$
-^compilers/ncigen/Makefile/
-^compilers/ncigen/ncigen\.pbc$
-^compilers/ncigen/ncigen\.pbc/
-# generated from svn:ignore of 'compilers/ncigen/src/'
-^compilers/ncigen/src/gen_actions\.pir$
-^compilers/ncigen/src/gen_actions\.pir/
-^compilers/ncigen/src/gen_builtins\.pir$
-^compilers/ncigen/src/gen_builtins\.pir/
-^compilers/ncigen/src/gen_grammar\.pir$
-^compilers/ncigen/src/gen_grammar\.pir/
-# generated from svn:ignore of 'compilers/nqp/'
-^compilers/nqp/nqp\.pbc$
-^compilers/nqp/nqp\.pbc/
-# generated from svn:ignore of 'compilers/nqp/bootstrap/'
-^compilers/nqp/bootstrap/gen_actions\.pir$
-^compilers/nqp/bootstrap/gen_actions\.pir/
-^compilers/nqp/bootstrap/nqp\.pbc$
-^compilers/nqp/bootstrap/nqp\.pbc/
-# generated from svn:ignore of 'compilers/nqp/src/'
-^compilers/nqp/src/Grammar_gen\.pir$
-^compilers/nqp/src/Grammar_gen\.pir/
 # generated from svn:ignore of 'compilers/pct/src/PAST/'
 ^compilers/pct/src/PAST/.*\.pbc$
 ^compilers/pct/src/PAST/.*\.pbc/
@@ -554,6 +523,9 @@
 ^runtime/parrot/include/.*\.pasm/
 ^runtime/parrot/include/.*\.pbc$
 ^runtime/parrot/include/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/languages/'
+^runtime/parrot/languages/data_json$
+^runtime/parrot/languages/data_json/
 # generated from svn:ignore of 'runtime/parrot/library/'
 ^runtime/parrot/library/.*\.pbc$
 ^runtime/parrot/library/.*\.pbc/
@@ -781,8 +753,6 @@
 # generated from svn:ignore of 'src/gc/'
 ^src/gc/.*\.bundle$
 ^src/gc/.*\.bundle/
-^src/gc/.*\.c$
-^src/gc/.*\.c/
 ^src/gc/.*\.def$
 ^src/gc/.*\.def/
 ^src/gc/.*\.dll$
@@ -892,6 +862,13 @@
 ^t/benchmark/.*\.pasm/
 ^t/benchmark/.*\.pir$
 ^t/benchmark/.*\.pir/
+# generated from svn:ignore of 't/compilers/data_json/'
+^t/compilers/data_json/.*\.pbc$
+^t/compilers/data_json/.*\.pbc/
+^t/compilers/data_json/.*\.pir$
+^t/compilers/data_json/.*\.pir/
+^t/compilers/data_json/.*_pbcexe$
+^t/compilers/data_json/.*_pbcexe/
 # generated from svn:ignore of 't/compilers/imcc/'
 ^t/compilers/imcc/.*\.pbc$
 ^t/compilers/imcc/.*\.pbc/
@@ -922,13 +899,6 @@
 ^t/compilers/imcc/syn/.*\.pir/
 ^t/compilers/imcc/syn/.*_pbcexe.*$
 ^t/compilers/imcc/syn/.*_pbcexe.*/
-# generated from svn:ignore of 't/compilers/json/'
-^t/compilers/json/.*\.pbc$
-^t/compilers/json/.*\.pbc/
-^t/compilers/json/.*\.pir$
-^t/compilers/json/.*\.pir/
-^t/compilers/json/.*_pbcexe$
-^t/compilers/json/.*_pbcexe/
 # generated from svn:ignore of 't/compilers/pct/'
 ^t/compilers/pct/.*\.pbc$
 ^t/compilers/pct/.*\.pbc/

Modified: branches/include_dynpmc_makefile/MANIFEST.generated
==============================================================================
--- branches/include_dynpmc_makefile/MANIFEST.generated	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/MANIFEST.generated	Wed Apr 28 19:17:12 2010	(r46116)
@@ -8,10 +8,6 @@
 blib/lib/libparrot.so.2.3.0                       [main]lib
 blib/lib/libparrot.so                             [main]lib
 compilers/data_json/data_json.pbc                 [data_json]
-compilers/json/JSON.pbc                           [json]
-compilers/json/JSON/grammar.pbc                   [json]
-compilers/json/JSON/pge2pir.pbc                   [json]
-compilers/nqp/nqp.pbc                             [nqp]
 config/gen/call_list/opengl.in                    []
 docs/ops/bit.pod                                  [doc]
 docs/ops/cmp.pod                                  [doc]
@@ -37,10 +33,7 @@
 include/parrot/extend_vtable.h                    [main]include
 include/parrot/feature.h                          [main]include
 include/parrot/has_header.h                       [main]include
-include/parrot/oplib/core_ops_cg.h                [main]include
-include/parrot/oplib/core_ops_cgp.h               [main]include
 include/parrot/oplib/core_ops.h                   [main]include
-include/parrot/oplib/core_ops_switch.h            [main]include
 include/parrot/oplib/ops.h                        [main]include
 include/parrot/pbcversion.h                       [devel]include
 include/parrot/platform.h                         [main]include
@@ -75,30 +68,18 @@
 lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm                [devel]lib
 lib/Parrot/PMC.pm                                 [devel]lib
 parrot.pc                                         [main]pkgconfig
-runtime/parrot/dynext/digest_group.bundle         [library]
-runtime/parrot/dynext/digest_group.dll            [library]
-runtime/parrot/dynext/digest_group.dylib          [library]
-runtime/parrot/dynext/digest_group.so             [library]
 runtime/parrot/dynext/dynlexpad.bundle            [library]
 runtime/parrot/dynext/dynlexpad.dll               [library]
 runtime/parrot/dynext/dynlexpad.dylib             [library]
 runtime/parrot/dynext/dynlexpad.so                [library]
-runtime/parrot/dynext/gdbmhash.bundle             [library]
-runtime/parrot/dynext/gdbmhash.dll                [library]
-runtime/parrot/dynext/gdbmhash.dylib              [library]
-runtime/parrot/dynext/gdbmhash.so                 [library]
+runtime/parrot/dynext/gziphandle.bundle           [library]
+runtime/parrot/dynext/gziphandle.dll              [library]
+runtime/parrot/dynext/gziphandle.dylib            [library]
+runtime/parrot/dynext/gziphandle.so               [library]
 runtime/parrot/dynext/libglutcb.bundle            [library]
 runtime/parrot/dynext/libglutcb.dll               [library]
 runtime/parrot/dynext/libglutcb.dylib             [library]
 runtime/parrot/dynext/libglutcb.so                [library]
-runtime/parrot/dynext/libnci_test.bundle          [library]
-runtime/parrot/dynext/libnci_test.dll             [library]
-runtime/parrot/dynext/libnci_test.dylib           [library]
-runtime/parrot/dynext/libnci_test.so              [library]
-runtime/parrot/dynext/match_group.bundle          [library]
-runtime/parrot/dynext/match_group.dll             [library]
-runtime/parrot/dynext/match_group.dylib           [library]
-runtime/parrot/dynext/match_group.so              [library]
 runtime/parrot/dynext/math_ops.so                 [library]
 runtime/parrot/dynext/math_ops.bundle             [library]
 runtime/parrot/dynext/math_ops.dll                [library]
@@ -111,10 +92,6 @@
 runtime/parrot/dynext/rational.dll                [library]
 runtime/parrot/dynext/rational.dylib              [library]
 runtime/parrot/dynext/rational.so                 [library]
-runtime/parrot/dynext/subproxy.bundle             [library]
-runtime/parrot/dynext/subproxy.dll                [library]
-runtime/parrot/dynext/subproxy.dylib              [library]
-runtime/parrot/dynext/subproxy.so                 [library]
 runtime/parrot/include/call_bits.pasm             [main]
 runtime/parrot/include/cclass.pasm                [main]
 runtime/parrot/include/config.fpmc                []
@@ -229,8 +206,6 @@
 src/jit_emit.h                                    []
 src/nci.c                                         []
 src/null_config.c                                 []
-src/ops/core_ops_cgp.c                            []
-src/ops/core_ops_switch.c                         []
 src/parrot_config.c                               []
 src/pmc/boolean.dump                              [devel]src
 src/pmc/continuation.dump                         [devel]src

Deleted: branches/include_dynpmc_makefile/META.yml
==============================================================================
--- branches/include_dynpmc_makefile/META.yml	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,41 +0,0 @@
-# $Id$
-#
-# This file describes the CPAN distribution for Parrot.
-# See http://module-build.sourceforge.net/META-spec-current.html for details.
----
-name: parrot
-version: 2.3.0
-author: parrot-dev at lists.parrot.org
-abstract: a virtual machine designed for dynamic languages
-license: artistic2
-no_index:
-    directory:
-        - config
-        - languages
-        - lib
-        - lib/Digest
-        - lib/File
-        - lib/Parse
-        - lib/Perl/Critic
-        - lib/Pod
-        - t
-        - tools
-    file:
-        - lib/IO/CaptureOutput.pm
-        - lib/SmartLink.pm
-    package:
-        - DB
-        - Parrot::Test::DB
-        - Parrot::Distribution
-        - Parrot::Docs::HTMLPage
-        - Parrot::OpTrans::CGP
-        - Parrot::OpTrans::CSwitch
-        - Parrot::OpsFile
-requires:
-  Storable: 2.12
-  perl: 5.8.4
-resources:
-    homepage:   'http://parrot.org/'
-    license:    'http://opensource.org/licenses/artistic-license-2.0.php'
-    bugtracker: 'https://trac.parrot.org/parrot/'
-generated_by: Humans

Deleted: branches/include_dynpmc_makefile/Makefile.PL
==============================================================================
--- branches/include_dynpmc_makefile/Makefile.PL	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,45 +0,0 @@
-#! perl
-
-# Copyright (C) 2007-2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Makefile.PL - CPAN installer passthrough to configure Parrot
-
-=head1 DESCRIPTION
-
-This file exists only to allow users of a CPAN shell to configure and build
-Parrot.  If you're reading this yourself, use F<Configure.pl>
-
-=cut
-
-use strict;
-use warnings;
-
-BEGIN { require 5.008 }
-
-my %translations =
-(
-    INSTALL_BASE => 'prefix',
-    LIB          => 'lib',
-    PREFIX       => 'prefix',
-);
-
-my @commands;
-
-for my $arg (@ARGV)
-{
-    my ($name, $value) = split /=/, $arg, 2;
-    next unless exists $translations{ $name };
-    push @commands, "--$name=$value";
-}
-
-system( $^X, 'Configure.pl', @commands );
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/include_dynpmc_makefile/NEWS
==============================================================================
--- branches/include_dynpmc_makefile/NEWS	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/NEWS	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,9 @@
 # $Id$
 
+New in 2.4.0
+- Deprecations
+  + Tools to distribute on CPAN were removed
+
 New in 2.3.0
 - Core
   + Allow passing parameters to the dynamic linker ('dlopen' improved)

Modified: branches/include_dynpmc_makefile/PBC_COMPAT
==============================================================================
--- branches/include_dynpmc_makefile/PBC_COMPAT	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/PBC_COMPAT	Wed Apr 28 19:17:12 2010	(r46116)
@@ -27,6 +27,8 @@
 
 # please insert tab separated entries at the top of the list
 
+6.9	2010.04.27	bacek	remove deprecated in-place string ops (bitwise, charset, case change)
+6.8	2010.04.27	bacek	remove deprecated in-place substr ops
 6.7	2010.04.22	coke	remove RetContinuation PMC
 6.6	2010.04.17	bacek	add replace op
 6.5	2010.03.09	cotto	remove cpu_ret op

Modified: branches/include_dynpmc_makefile/README
==============================================================================
--- branches/include_dynpmc_makefile/README	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/README	Wed Apr 28 19:17:12 2010	(r46116)
@@ -92,14 +92,6 @@
 
     perldoc -F docs/intro.pod
 
-NOTES
------
-
-On some older computers with little RAM, the computed-goto dispatch core
-(ops/core_ops_cg.c) may take a while to compile or may fail to compile at all.
-You can pass a flag to Configure.pl (--cgoto=0) to disable the computed-goto
-core, at a slight cost in runtime speed.
-
 CHANGES
 -------
 

Modified: branches/include_dynpmc_makefile/compilers/data_json/Defines.mak
==============================================================================
--- branches/include_dynpmc_makefile/compilers/data_json/Defines.mak	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/data_json/Defines.mak	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,6 +1,6 @@
-DATA_JSON_LIB_PBCS = $(LIBRARY_DIR)/data_json.pbc
+DATA_JSON_LIB_PBCS = runtime/parrot/languages/data_json/data_json.pbc
 
-DATA_JSON_CLEANUPS = $(LIBRARY_DIR)/data_json.pbc \
+DATA_JSON_CLEANUPS = $(DATA_JSON_LIB_PBCS) \
     compilers/data_json/data_json.pbc \
     compilers/data_json/data_json/grammar.pir \
     compilers/data_json/data_json/pge2pir.pir

Modified: branches/include_dynpmc_makefile/compilers/data_json/Rules.mak
==============================================================================
--- branches/include_dynpmc_makefile/compilers/data_json/Rules.mak	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/data_json/Rules.mak	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,5 @@
-$(LIBRARY_DIR)/data_json.pbc: compilers/data_json/data_json.pbc
+runtime/parrot/languages/data_json/data_json.pbc: compilers/data_json/data_json.pbc
+	$(MKPATH) runtime/parrot/languages/data_json
 	$(CP) compilers/data_json/data_json.pbc $@
 
 compilers/data_json/data_json.pbc : \

Modified: branches/include_dynpmc_makefile/compilers/imcc/Rules.in
==============================================================================
--- branches/include_dynpmc_makefile/compilers/imcc/Rules.in	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/imcc/Rules.in	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,5 @@
 compilers/imcc/pcc$(O) : \
+    compilers/imcc/pcc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -12,6 +13,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/instructions$(O) : \
+    compilers/imcc/instructions.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -25,6 +27,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/pbc$(O) : \
+    compilers/imcc/pbc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -38,6 +41,7 @@
     include/pmc/pmc_sub.h
 
 compilers/imcc/parser_util$(O) : \
+    compilers/imcc/parser_util.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -56,6 +60,7 @@
     include/pmc/pmc_sub.h
 
 compilers/imcc/imc$(O) : \
+    compilers/imcc/imc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -68,6 +73,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/cfg$(O) : \
+    compilers/imcc/cfg.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -80,6 +86,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/debug$(O) : \
+    compilers/imcc/debug.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -126,6 +133,7 @@
 	$(CC) $(CFLAGS) @optimize::compilers/imcc/imcparser.c@ @ccwarn::compilers/imcc/imcparser.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c compilers/imcc/imcparser.c
 
 compilers/imcc/main$(O) : \
+    compilers/imcc/main.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -159,6 +167,7 @@
 	$(CC) $(CFLAGS) @optimize::compilers/imcc/optimizer.c@ @ccwarn::compilers/imcc/optimizer.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c compilers/imcc/optimizer.c
 
 compilers/imcc/reg_alloc$(O) : \
+    compilers/imcc/reg_alloc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -171,6 +180,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/sets$(O) : \
+    compilers/imcc/sets.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -182,6 +192,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/symreg$(O) : \
+    compilers/imcc/symreg.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \

Modified: branches/include_dynpmc_makefile/compilers/imcc/imcc.l
==============================================================================
--- branches/include_dynpmc_makefile/compilers/imcc/imcc.l	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/imcc/imcc.l	Wed Apr 28 19:17:12 2010	(r46116)
@@ -93,6 +93,8 @@
 
 #define YYCHOP() (yytext[--yyleng] = '\0')
 
+#define SET_LINE_NUMBER (IMCC_INFO(interp)->line = yylineno)
+
 #define DUP_AND_RET(valp, token)             \
   do {                                       \
       if (valp) (valp)->s = mem_sys_strdup(yytext); \
@@ -113,6 +115,7 @@
 %option reentrant
 %option never-interactive
 %option stack
+%option yylineno
 
 LETTER          [a-zA-Z_@]
 DIGIT           [0-9]
@@ -169,10 +172,10 @@
             return 0;
         }
 
-<*>^{WS}*            { IMCC_INFO(interp)->line++; }
+<*>^{WS}*            { SET_LINE_NUMBER; }
 
 <heredoc1>.*{EOL} {
-            IMCC_INFO(interp)->line++;
+            SET_LINE_NUMBER;
             IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
             BEGIN(heredoc2);
     }
@@ -191,7 +194,7 @@
     }
 
 <heredoc2>.* {
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         /* Are we at the end of the heredoc? */
         if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
             /* End of the heredoc. */
@@ -249,7 +252,7 @@
 <*>setline{SP}+ { yy_push_state(cmt1, yyscanner);  }
 
 <cmt1>{DIGITS} {
-        IMCC_INFO(interp)->line = atoi(yytext);
+        yylineno = IMCC_INFO(interp)->line = atoi(yytext);
         yy_pop_state(yyscanner);
         yy_push_state(cmt4, yyscanner);
         return LINECOMMENT;
@@ -286,22 +289,22 @@
 
 <INITIAL,emit,macro>^"=cut"{EOL} {
     /* this is a stand-alone =cut, but we're not in POD mode, so ignore.  */
-    IMCC_INFO(interp)->line++;
+    SET_LINE_NUMBER;
 }
 
-<INITIAL,emit,macro>^"=" {
-        IMCC_INFO(interp)->line++;
+<INITIAL,emit,macro>^"=".*{EOL} {
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 1;
         yy_push_state(pod, yyscanner);
     }
 
 <pod>^"=cut"{EOL} {
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 0;
         yy_pop_state(yyscanner);
     }
 
-<pod>.* { IMCC_INFO(interp)->line++; }
+<pod>.* { SET_LINE_NUMBER; }
 
 <pod>{EOL}      { /* ignore */ }
 
@@ -451,7 +454,7 @@
 
 <emit,INITIAL>".macro" {
         /* the initial whitespace catcher misses this one */
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         return read_macro(valp, interp, yyscanner);
     }
 
@@ -664,7 +667,7 @@
 
 <macro>".endm"         {
         /* the initial whitespace catcher misses this one */
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         DUP_AND_RET(valp, ENDM);
 }
 
@@ -1261,6 +1264,7 @@
 scan_file(PARROT_INTERP, macro_frame_t *frame, FILE *file, void *yyscanner)
 {
     yyguts_t * const yyg      = (yyguts_t *)yyscanner;
+    const      int   oldline  = IMCC_INFO(interp)->line;
     frame->buffer             = YY_CURRENT_BUFFER;
     frame->s.next             = (parser_state_t *)IMCC_INFO(interp)->frames;
     IMCC_INFO(interp)->frames = frame;
@@ -1271,6 +1275,8 @@
 
     yy_switch_to_buffer(yy_create_buffer(file, YY_BUF_SIZE, yyscanner),
         yyscanner);
+
+    IMCC_INFO(interp)->line   = oldline;
 }
 
 void

Modified: branches/include_dynpmc_makefile/compilers/imcc/imclexer.c
==============================================================================
--- branches/include_dynpmc_makefile/compilers/imcc/imclexer.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/imcc/imclexer.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -204,7 +204,20 @@
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
-    #define YY_LESS_LINENO(n)
+    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
+     *       access to the local variable yy_act. Since yyless() is a macro, it would break
+     *       existing scanners that call yyless() from OUTSIDE yylex. 
+     *       One obvious solution it to make yy_act a global. I tried that, and saw
+     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
+     *       normally declared as a register variable-- so it is not worth it.
+     */
+    #define  YY_LESS_LINENO(n) \
+            do { \
+                int yyl;\
+                for ( yyl = n; yyl < yyleng; ++yyl )\
+                    if ( yytext[yyl] == '\n' )\
+                        --yylineno;\
+            }while(0)
     
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
@@ -385,17 +398,17 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[1090] =
+static yyconst flex_int16_t yy_accept[1095] =
     {   0,
         0,    1,    0,    1,    0,    1,   17,    1,    0,    1,
         0,    1,    0,    1,    0,    1,    0,    1,    0,    1,
         4,    1,  149,  136,  135,   11,  135,  136,  136,   12,
       136,  136,  136,  136,  136,  136,  116,  136,   96,  136,
       120,  120,  136,   88,  136,   90,  134,  134,  134,  134,
-      134,  134,  134,  134,  136,  136,    1,    1,   15,  135,
-      135,  136,  136,  136,  136,  134,    1,    1,   15,  147,
+      134,  134,  134,  134,  136,  136,    1,    1,  136,  135,
+      135,  136,  136,  136,  136,  134,    1,    1,  136,  147,
       142,  138,  142,  147,  147,  147,  147,  147,  120,  120,
-      147,  145,  145,  145,    1,    1,   15,   17,   18,   17,
+      147,  145,  145,  145,    1,    1,  147,   17,   18,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,    1,
 
         1,   17,  148,  136,    9,    9,  136,  136,    1,    5,
@@ -415,97 +428,99 @@
         0,    0,    0,    0,    0,    0,    0,    0,   82,   89,
        92,   65,   91,   83,  115,    0,  134,  117,  133,  134,
        75,  134,  134,  134,  134,  134,  134,  105,   86,  106,
-       87,    1,    0,  135,  118,  118,  118,  118,  118,  118,
-        0,    0,    0,    0,    1,  142,  138,  142,    0,    0,
-        0,  146,  146,  146,  146,  145,    0,  143,  145,    1,
-        1,   17,   18,   17,   17,   17,   17,   17,   17,   17,
+       87,    1,    0,   15,    0,   92,   65,    0,  135,  118,
+      118,  118,  118,  118,  118,    0,    0,    0,    0,    1,
+      142,  138,  142,    0,    0,    0,  146,  146,  146,  146,
+      145,    0,  143,  145,    1,    1,   17,   18,   17,   17,
 
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,   17,    1,   17,    0,    0,    9,    0,    1,    5,
+       17,   17,   17,   17,   17,   17,   17,    1,   17,    0,
+        0,    9,    0,    1,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    1,    0,   10,
-        0,    0,    0,  125,    0,    0,    0,    0,  120,  119,
-        0,    0,  119,    0,    0,  124,    0,    0,    0,    0,
-        0,    0,    1,    1,    0,   13,    0,    0,    0,  125,
-        0,    0,    0,    0,  120,  119,    0,    0,  119,    0,
-        0,  124,    0,    0,    0,    0,    0,    0,    1,    1,
-        0,    2,    0,    0,    0,  125,    0,    0,    0,    0,
-
-      120,  119,    0,    0,  119,    0,    0,  124,    0,    0,
-        0,    0,    0,    0,    1,    1,    4,    3,    4,    4,
+        5,    5,    1,    0,   10,    0,    0,    0,  125,    0,
+        0,    0,    0,  120,  119,    0,    0,  119,    0,    0,
+      124,    0,    0,    0,    0,    0,    0,    1,    1,    0,
+       13,    0,    0,    0,  125,    0,    0,    0,    0,  120,
+      119,    0,    0,  119,    0,    0,  124,    0,    0,    0,
+        0,    0,    0,    1,    1,    0,    2,    0,    0,    0,
+
+      125,    0,    0,    0,    0,  120,  119,    0,    0,  119,
+        0,    0,  124,    0,    0,    0,    0,    0,    0,    1,
+        1,    4,    3,    4,    4,    4,    4,    4,    4,    4,
         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    1,   95,  128,
-      129,  131,  130,    0,  118,  118,  118,  118,  118,  118,
+        4,    4,    1,   95,  128,  129,  131,  130,    0,  118,
       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,  118,  118,  103,
-      119,  122,    0,  119,  123,  121,    0,    0,    0,    0,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  103,  119,  122,    0,  119,  123,
+      121,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  108,  107,   84,
 
-      114,    0,    0,  133,  134,   78,  134,   79,   80,  134,
-      134,  134,    0,  118,  118,    0,    0,  139,  144,  141,
-      146,  146,  146,  146,  146,  145,   17,   17,   17,   17,
+        0,    0,  108,  107,   84,  114,    0,    0,  133,  134,
+       78,  134,   79,   80,  134,  134,  134,    0,  118,  118,
+        0,    0,  139,  144,  141,  146,  146,  146,  146,  146,
+      145,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,    0,    0,    0,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    0,    0,    0,  119,  122,    0,  119,  123,  121,
+        0,    0,    0,    0,    0,    0,    0,    0,  119,  122,
+        0,  119,  123,  121,    0,    0,    0,    0,    0,    0,
+        0,    0,  119,  122,    0,  119,  123,  121,    0,    0,
+
+        0,    0,    0,    4,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    0,  119,   69,
+      118,  118,  118,  118,   25,  118,  118,  118,  118,  118,
+       22,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,   24,  118,  118,    0,    0,    0,    0,    0,
+        0,    0,   46,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  126,    0,    0,
+      109,    0,  127,    0,    0,    0,   74,   77,  134,  134,
+      134,  134,    0,  141,  146,  146,  146,  146,  145,  145,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,    0,    0,    0,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    0,    0,    0,  119,
-      122,    0,  119,  123,  121,    0,    0,    0,    0,    0,
-        0,    0,    0,  119,  122,    0,  119,  123,  121,    0,
-        0,    0,    0,    0,    0,    0,    0,  119,  122,    0,
-      119,  123,  121,    0,    0,    0,    0,    0,    4,    4,
 
-        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    0,  119,   69,  118,  118,  118,  118,   25,
-      118,  118,  118,  118,  118,   22,  118,  118,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,   24,  118,  118,
-        0,    0,    0,    0,    0,    0,    0,   46,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  126,    0,    0,  109,    0,  127,    0,    0,
-        0,   74,   77,  134,  134,  134,  134,    0,  141,  146,
-      146,  146,  146,  145,  145,   17,   17,   17,   17,   17,
-       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,    0,    0,    0,    0,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        0,  119,    0,    0,    0,    0,  126,    0,    0,    0,
+        0,    0,  127,    0,    0,    0,    0,    0,    0,  119,
+        0,    0,    0,    0,  126,    0,    0,    0,    0,    0,
+      127,    0,    0,    0,    0,    0,    0,  119,    0,    0,
+        0,    0,  126,    0,    0,    0,    0,    0,  127,    0,
+        0,    0,    0,    0,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    4,    4,  118,
+      118,   28,  118,  118,   20,  118,  118,  118,  118,   19,
 
-       17,    0,    0,    0,    0,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    0,  119,    0,    0,    0,
-        0,  126,    0,    0,    0,    0,    0,  127,    0,    0,
-        0,    0,    0,    0,  119,    0,    0,    0,    0,  126,
-        0,    0,    0,    0,    0,  127,    0,    0,    0,    0,
-        0,    0,  119,    0,    0,    0,    0,  126,    0,    0,
-        0,    0,    0,  127,    0,    0,    0,    0,    0,    4,
-        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,  118,  118,   28,  118,  118,   20,
-      118,  118,  118,  118,   19,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,   44,    0,   60,    0,   41,    0,    0,   40,
+       39,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  134,  134,  134,  134,   14,    0,  137,
+       20,  146,   19,  145,  145,   17,   17,   17,   17,   16,
+       17,   20,   19,    0,    0,    5,    5,    5,    5,   20,
+       19,    0,    0,   20,   19,    0,    0,   20,   19,    0,
+        0,    4,    4,    4,    4,  118,  118,   71,  118,  118,
+      118,  118,  118,  118,  118,  118,   70,  112,  118,  118,
+      118,   73,  118,  118,  118,  118,  118,  118,   54,    0,
+
+        0,    0,    0,    0,   38,   64,    0,    0,    0,   45,
+        0,    0,   51,    0,    0,  134,  134,   81,   76,  146,
+      145,  145,   17,   17,    0,    0,    5,    5,    0,    0,
+        0,    0,    0,    0,    4,    4,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,   56,  118,  118,  118,  118,    0,    0,    0,    0,
+       37,    0,    0,    0,    0,   61,    0,   47,  134,  134,
+      140,  145,  145,   17,   17,    0,    0,    5,    5,    0,
+        0,    0,    0,    0,    0,    4,    4,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  113,  118,   59,  118,
+
+      118,  118,  118,   32,   23,  118,  118,  118,    0,    0,
+        0,    0,   48,    0,    0,    0,    0,    0,    8,   17,
+        8,    5,    5,    0,    8,    0,    8,    0,    8,    4,
+        4,   21,  118,  118,  118,   27,  118,  118,  118,  118,
+       31,  118,  118,  118,   29,  118,  118,   58,   67,    0,
+        0,   66,   63,   62,   43,    0,    7,    7,    7,    7,
+        7,    4,  118,  118,  118,  118,   36,  118,  118,  118,
+       30,   68,  118,   55,   42,    0,    0,   26,  118,  118,
+       34,   52,  118,  118,   57,   50,   49,  118,   35,   53,
+       72,  111,   33,    0
 
-      118,  118,  118,  118,  118,  118,  118,   44,    0,   60,
-        0,   41,    0,    0,   40,   39,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  134,  134,
-      134,  134,   14,    0,  137,   20,  146,   19,  145,  145,
-       17,   17,   17,   17,   16,   17,   20,   19,    0,    0,
-        5,    5,    5,    5,   20,   19,    0,    0,   20,   19,
-        0,    0,   20,   19,    0,    0,    4,    4,    4,    4,
-      118,  118,   71,  118,  118,  118,  118,  118,  118,  118,
-      118,   70,  112,  118,  118,  118,   73,  118,  118,  118,
-      118,  118,  118,   54,    0,    0,    0,    0,    0,   38,
-
-       64,    0,    0,    0,   45,    0,    0,   51,    0,    0,
-      134,  134,   81,   76,  146,  145,  145,   17,   17,    0,
-        0,    5,    5,    0,    0,    0,    0,    0,    0,    4,
-        4,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  118,  118,  118,  118,  118,   56,  118,  118,  118,
-      118,    0,    0,    0,    0,   37,    0,    0,    0,    0,
-       61,    0,   47,  134,  134,  140,  145,  145,   17,   17,
-        0,    0,    5,    5,    0,    0,    0,    0,    0,    0,
-        4,    4,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  113,  118,   59,  118,  118,  118,  118,   32,   23,
-
-      118,  118,  118,    0,    0,    0,    0,   48,    0,    0,
-        0,    0,    0,    8,   17,    8,    5,    5,    0,    8,
-        0,    8,    0,    8,    4,    4,   21,  118,  118,  118,
-       27,  118,  118,  118,  118,   31,  118,  118,  118,   29,
-      118,  118,   58,   67,    0,    0,   66,   63,   62,   43,
-        0,    7,    7,    7,    7,    7,    4,  118,  118,  118,
-      118,   36,  118,  118,  118,   30,   68,  118,   55,   42,
-        0,    0,   26,  118,  118,   34,   52,  118,  118,   57,
-       50,   49,  118,   35,   53,   72,  111,   33,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -551,287 +566,289 @@
        10,   10,   10,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[1241] =
+static yyconst flex_int16_t yy_base[1251] =
     {   0,
         0,   64,   88,   70,  153,   75,  218,   82,  283,  113,
       348,  117,  109,  412,  434,  121,  499,  130,  564,  135,
-      629,  140, 4564, 7041,  693, 7041,  697, 4538,   63, 7041,
-      385, 4537,   56, 4549,   58,  686, 7041,  696,  703,   60,
+      629,  140, 4665, 7097,  693, 7097,  697, 4639,   63, 7097,
+      385, 4638,   56, 4648,   58,  686, 7097,  696,  703,   60,
       750,  780,  785,   72,   83,  124,  703,  797,  767,  825,
-      765,  759,  769,  833,   63,  766,  848,  856,  837,  422,
-      864,  863,  862,  846, 4536,  848,  803,  872, 4515, 7041,
-      887, 7041,  924,   84,  897, 4546,  919,  924,    0,  930,
-     4533,  405,  946,  908,  953,  975, 4512,    0, 7041, 4552,
-      689, 4542,  964,  968, 1003,  964, 4528, 1065, 1130,  990,
-
-      994, 4507, 7041,  989, 1008, 1076, 4527,   87, 1000,    0,
-        0,  791, 1031, 1065, 1179, 1002, 4525, 1241, 1306, 1012,
-      815,  426, 7041,  820, 1110,  899, 1104, 1159, 1369, 1128,
-     1031, 1431, 1496, 1056, 1097,  919, 7041,  969, 1162, 1009,
-     1217, 1275, 1559, 1299, 1148, 1621, 1686, 1156, 1181, 1040,
-     7041, 1059, 1184, 1115, 1265, 1336, 1749, 1305, 1208, 1811,
-     1876, 1224, 1258,    0, 7041, 4545,  897, 4535, 1253, 1355,
-     1925, 1368, 4522, 1987, 2052, 1212, 1286, 1296, 1345, 7041,
-     7041,  902, 7041,    0,    0, 1343, 1359, 1373, 1397, 7041,
-     7041, 7041, 4533, 7041, 7041, 1405, 1442, 7041, 7041, 1447,
-
-     7041,    0, 4510, 4490, 4496, 1050, 4488, 4490,  658, 4482,
-     1143,  105,  851,  874, 4488,  727, 4491, 4482, 4504, 7041,
-     1504, 1154, 1459, 7041, 1184,    0, 4463, 4465, 4455, 1178,
-      907, 1291,  685,  946, 4451,   22, 4451, 4444, 1108, 7041,
-     7041, 7041, 7041, 1251, 4479, 4478, 1405, 4493, 1524, 1532,
-     1442, 1542, 1548, 1543, 1559, 1594, 1561, 7041, 7041, 7041,
-     7041, 1513, 4439, 1364, 4444, 4444, 1436, 4451, 4450, 4447,
-     1240, 4432, 4429, 1228, 1380, 1604, 7041, 1638, 4394, 1633,
-        0,    0, 4363, 4365,  932,  828, 4407, 1643, 1468, 1665,
-     1669,    0, 7041, 1264,    0,    0, 4401, 1656, 1697, 1703,
-
-     4362, 4361, 1715, 1283, 1743,    0, 1518, 2099, 1389, 2146,
-     2211, 2276, 1448, 4350, 4359, 4358, 1822, 1424, 1527,    0,
-     1482,    0, 1660, 1828, 1754, 4357, 4356, 1884, 1390, 1777,
-        0, 1553, 2323, 1480, 2370, 2435, 2500, 1581, 1550, 7041,
-     1593, 1737, 1798, 1611, 1616, 1645, 1703, 1850, 2563, 1904,
-     1680, 1717, 2003, 1735, 1917, 1725, 1892, 2607, 1945, 2654,
-     2719, 2784, 1804, 1828, 1743, 7041, 1777, 1857, 1925, 1783,
-     1786, 1906, 1963, 2015, 2847, 2025, 1959, 1966, 2069, 2011,
-     2081, 1862, 2090, 2891, 1969, 2938, 3003, 3068, 1980, 2036,
-     1974, 7041, 2017, 2127, 2133, 2039, 2076, 2101, 2120, 2162,
-
-     3131, 2292, 2083, 2135, 2304, 2171, 2173, 2078, 2300, 3175,
-     2193, 3222, 3287, 3352, 2199, 2204,    0, 7041, 1320,    0,
-        0, 4393, 2308, 2381, 2386, 4354, 4353, 2500, 2087, 2340,
-        0, 2159, 3399, 1604, 3446, 3511, 3576, 2313, 2344, 2370,
-     2398, 2402, 2409, 2513,    0, 4368, 4348, 4352, 4348, 4345,
-     4352, 4345, 4336, 4339,  786, 4330, 4338, 1067, 4346, 4330,
-     4336, 4337, 4329, 4341, 4325, 4324, 4339, 4331, 4330, 7041,
-     2517, 2106, 2522, 2529, 2312,    0, 4321, 4323, 4331, 4318,
-     2248, 4286, 4305, 4296, 4286, 4293, 4291, 4296, 4282, 4281,
-     4281, 4278, 4291, 4283, 4290, 1509, 4319, 7041, 7041, 4305,
-
-     7041, 1597, 4302, 2545, 2546, 2563, 2565, 2578, 2580, 2583,
-     2582, 2598, 4265, 4279, 4280, 4271, 4297, 7041, 2619,    0,
-        0, 4274, 4267, 4274, 4263, 2596, 2667, 4264, 4261, 2654,
-     2179, 2556, 2603, 2393, 3623, 1787, 4301, 1833, 3670, 3735,
-     4253, 4191, 4188, 2505, 2676, 4189, 4186, 2784, 2317, 2682,
-     2686, 2690, 3782, 2601, 3829, 3894, 2812, 2567, 2808, 2816,
-     2836, 2838, 2867, 2871, 3957, 2814, 2841, 2869, 4004, 4069,
-     2954, 2642, 2875, 3084, 2879, 2881, 2903, 2911, 4132, 3106,
-     2893, 3114, 4179, 4244, 2963, 2914, 3086, 3137, 2968, 2977,
-     3165, 3169, 4307, 3122, 2988, 3140, 4354, 4419, 3192, 4187,
-
-     4184, 3077, 2338, 2693, 3179, 2974, 4466, 1852, 4224, 1920,
-     4513, 4578, 3222, 3230,    0, 4181, 4184, 4182, 4174, 4190,
-     4184, 4188, 4185, 4176, 4172,    0, 4179, 4179, 4181, 4165,
-     4172, 4174, 4177, 4175, 4175, 4155, 4173,    0, 4162, 4161,
-     4158, 4159, 4150, 4162, 4148, 4147, 4147, 7041, 4155, 4146,
-     4149, 4136, 4127, 4119,  829, 4125, 4111, 4112, 4118, 4111,
-     4123, 1946, 7041,    0, 4153, 7041, 2010, 7041,    0, 4141,
-     4156, 3115, 3193, 3363, 3364, 3372, 3373, 2360,    0, 4107,
-     4112, 4111, 4110, 1031, 3099, 3234, 3238, 4109, 4104, 2128,
-        0,    0, 4137, 2550,    0,    0, 4643, 4141, 4708, 4097,
-
-     2422, 4100, 4099, 1169, 1544, 3244, 3248, 4098, 4097, 3163,
-        0, 4773, 4135, 4838, 4091, 3380, 3387, 2819, 2923, 3390,
-     3433, 2713, 2956, 3108, 3133, 3474, 3606, 2986, 3097, 4903,
-     3268, 4968, 4090, 3463, 3471, 3419, 3430, 3608, 3614, 3160,
-     3178, 3270, 3273, 3616, 3621, 3188, 3275, 5033, 3277, 5098,
-     4089, 3476, 3484, 3592, 3601, 3623, 3698, 3400, 3435, 3496,
-     3594, 3810, 3816, 3498, 3604, 5163, 3629, 5228, 4088, 3638,
-     3670, 4091, 4021, 2608,    0,    0, 4054, 2840,    0,    0,
-     5293, 4058, 5358, 4014, 4004, 4009,    0, 4001, 3405,    0,
-     4002, 4016, 3997, 4012,    0, 4004, 4003, 3999, 4011, 3993,
-
-     4006, 3997, 3990, 3990, 2628, 4002, 4000, 7041, 4002, 7041,
-     3997, 7041, 3999, 3996, 7041, 7041, 3985, 3987, 3991, 3976,
-     3987, 3979, 3975, 3982, 3968, 3951, 3934, 3938, 3850, 3972,
-     3842, 3799, 7041, 3889,    0,    0, 3835,    0, 3681, 3382,
-        0,    0, 5423, 1124, 7041, 3877, 7041, 7041,  940, 1719,
-        0,    0, 5488, 1292, 3646, 3695, 3656, 1096, 3705, 3708,
-     3663, 1230, 3712, 3714, 3669, 1652,    0,    0, 3671, 2567,
-     3822, 3821,    0, 3803, 3790, 3771, 3772, 3765, 3688, 3661,
-     3623,    0, 3623, 3618, 3584, 3592,    0, 3571, 3576, 3565,
-     3568, 3553, 3537,    0, 3451, 3457, 3441, 3447, 3387, 7041,
-
-     7041, 3369, 3373, 3362, 7041, 3358, 3347, 7041, 3339, 3328,
-     3974, 4015, 3851, 3852, 3721, 3946, 3947, 1662, 1905, 1489,
-     1546, 1957, 2246, 1424, 1710, 1817, 1869, 2062, 2779, 2858,
-     3678, 3312, 3819, 3317, 3224, 3215, 3157, 3166, 3161, 3118,
-     3117, 3111, 3100, 3086, 3068, 3073,    0, 2953, 2927, 2908,
-     2878, 2866, 2821, 2808, 2774, 7041, 2750, 2758, 2657, 2630,
-     7041, 2561, 7041, 3959, 3975, 3725, 2381, 3079, 1349, 1753,
-      772, 1912, 1975, 2063,  804, 1805, 1893, 2305, 3188, 3587,
-     3650, 3681, 2549, 2531, 2507, 2495, 2480, 2456, 2456, 2373,
-     2355,    0, 2340,    0, 2323, 2296, 2295, 2254,    0,    0,
-
-     2219, 2163, 2137, 2114, 2090, 2076, 2037, 7041, 2035, 2023,
-     1993, 1975, 1653, 1985, 2553, 1969, 2626, 1953, 3802, 3867,
-     3874, 3880, 3884, 3962, 3169, 1852,    0, 1795, 1723, 1702,
-        0, 1593, 1545, 1505, 1475,    0, 1407, 1378, 1374,    0,
-     1356, 1291,    0, 7041, 1279, 1245, 7041, 7041, 7041, 7041,
-     1211, 7041,    0, 3845, 3968, 3970,    0, 1197, 1163, 1156,
-     1115,    0, 1069, 1045, 1036,    0,    0, 1015,    0, 7041,
-      912,  900,    0,  776,  675,    0,  367,  356,   61,    0,
-     7041, 7041,   23,    0,    0,    0,    0,    0, 7041, 5553,
-     5559, 5569, 5577, 5581, 5589, 5596, 5607, 5618, 5629, 5640,
-
-     5647, 5658, 5669, 5680, 5691, 5702, 5713, 5724, 5735, 5746,
-     5757, 5768, 5779, 5790, 5801, 5812, 5823, 5834, 5845, 5856,
-     5862, 5872, 5878, 5884, 5889, 5897, 5906, 5912, 5916, 5922,
-     5929, 5940, 5951, 5962, 5973, 5984, 5995, 6006, 6017, 6028,
-     6039, 6050, 6061, 6072, 6083, 6094, 6105, 6116, 6127, 6138,
-     6149, 6160, 6171, 6182, 6188, 6193, 6199, 6208, 6219, 6230,
-     6237, 6245, 6251, 6257, 6263, 6270, 6281, 6292, 6303, 6314,
-     6325, 6332, 6343, 6354, 6365, 6376, 6387, 6398, 6409, 6420,
-     6431, 6442, 6453, 6464, 6475, 6486, 6497, 6508, 6519, 6530,
-     6541, 6552, 6563, 6574, 6585, 6591, 6602, 6613, 6624, 6631,
-
-     6639, 6645, 6651, 6658, 6669, 6680, 6691, 6702, 6713, 6720,
-     6731, 6742, 6753, 6764, 6775, 6786, 6797, 6808, 6819, 6830,
-     6841, 6852, 6863, 6874, 6885, 6896, 6907, 6918, 6929, 6940,
-     6951, 6962, 6973, 6979, 6987, 6993, 7000, 7011, 7018, 7029
+      765,  759,  769,  833,   63,  766,  848,  856,  851,  422,
+      864,  862,  871,  838, 4623,  848,  803,  898,  819, 7097,
+      902, 7097,  906,   84,  898, 4570,  920,  929,    0,  935,
+     4553,  405,  951,  828,  941,  956,  909,    0, 7097, 4573,
+      689, 4563,  965,  969, 1004,  965, 4550, 1066, 1131,  991,
+
+      995, 4529, 7097,  990, 1009, 1077, 4549,   87, 1001,    0,
+        0,  791, 1032, 1066, 1180, 1003, 4547, 1242, 1307, 1013,
+      878,  426, 7097,  894, 1111, 1010, 1105, 1160, 1370, 1129,
+      959, 1432, 1497, 1057, 1098,  974, 7097, 1032, 1163, 1052,
+     1218, 1276, 1560, 1300, 1149, 1622, 1687, 1157, 1182, 1041,
+     7097, 1101, 1185, 1116, 1266, 1337, 1750, 1306, 1209, 1812,
+     1877, 1225, 1259,    0, 7097, 4567,  880, 4557, 1254, 1356,
+     1926, 1369, 4544, 1988, 2053, 1213, 1287, 1297, 1346, 7097,
+     7097, 1168, 7097,    0,    0, 1344, 1360, 1374, 1398, 7097,
+     7097, 7097, 4555, 7097, 7097, 1406, 1443, 7097, 7097, 1448,
+
+     7097,    0, 4532, 4512, 4518, 1136, 4510, 4512,  658, 4508,
+     1425,  105,  883,  922, 4514,  727, 4517, 4508, 4532, 7097,
+     1505, 1174, 1466, 7097, 1185,    0, 4503, 4513, 4502, 1179,
+      816, 1292,  685,  947, 4498,   22, 4498, 4491, 1109, 7097,
+     7097, 7097, 7097, 1252, 4526, 4525, 1406, 4540, 1525, 1533,
+     1443, 1543, 1467, 1544, 1549, 1560, 1562, 7097, 7097, 7097,
+     7097, 1593, 1290, 7097, 1300, 1366, 1382, 1513, 1449, 4492,
+     4492, 1482, 4502, 4501, 4498, 1349, 4483, 4476, 1162, 1582,
+     1616, 7097, 1639, 4512, 1630,    0,    0, 4481, 4483, 1199,
+     1321, 4523, 1638, 1515, 1661, 1665,    0, 7097, 1265,    0,
+
+        0, 4505, 1652, 1698, 1704, 4458, 4457, 1716, 1391, 1661,
+        0, 1472, 2100, 1543, 2147, 2212, 2277, 1607, 4446, 4455,
+     4454, 1744,  909, 1674,    0, 1736,    0, 1687, 1823, 1828,
+     4453, 4452, 1885, 1510, 1778,    0, 1710, 2324, 1563, 2371,
+     2436, 2501, 1753, 1536, 7097, 1597, 1799, 1856, 1601, 1612,
+     1737, 1756, 1851, 2564, 1905, 1778, 1784, 2004, 1894, 1918,
+     1652, 1954, 2608, 1964, 2655, 2720, 2785, 1805, 1862, 1681,
+     7097, 1718, 1926, 1946, 1772, 1828, 1907, 1975, 2016, 2848,
+     2026, 1960, 1981, 2070, 2013, 2082, 1858, 2091, 2892, 2037,
+     2939, 3004, 3069, 2078, 2103, 1978, 7097, 2018, 2128, 2134,
+
+     2039, 2084, 2111, 2121, 2163, 3132, 2293, 2136, 2301, 2387,
+     2172, 2174, 2123, 2305, 3176, 2194, 3223, 3288, 3353, 2200,
+     2205,    0, 7097, 1321,    0,    0, 4489, 2299, 2382, 2310,
+     4450, 4449, 2501, 2160, 2341,    0, 2314, 3400, 1735, 3447,
+     3512, 3577, 2345, 2416, 2403, 2410, 2513, 2517, 2529,    0,
+     4464, 4441, 4445, 4441, 4438, 4445, 4367, 4358, 4362,  786,
+     4353, 4361, 1051, 4369, 4353, 4359, 4360, 4352, 4364, 4348,
+     4347, 4362, 4354, 4357, 7097, 2533, 2180, 2537, 2550, 2394,
+        0, 4348, 4350, 4358, 4347, 2249, 4336, 4355, 4346, 4335,
+     4342, 4340, 4345, 4331, 4330, 4330, 4327, 4343, 4335, 4342,
+
+     1390, 4371, 7097, 7097, 4357, 7097, 1441, 4354, 2564, 2566,
+     2579, 2581, 2583, 2584, 2592, 2624, 2600, 2334, 4332, 4333,
+     4324, 4348, 7097, 2663,    0,    0, 4304, 4297, 4304, 4293,
+     2598, 2677, 4294, 4291, 2785, 2308, 2668, 2681, 2509, 3624,
+     1921, 4331, 1937, 3671, 3736, 4283, 4290, 4287, 1754, 2690,
+     4288, 4282, 2797, 2339, 2694, 2801, 2557, 3783, 2610, 3830,
+     3895, 2826, 2809, 2622, 2834, 2615, 2854, 2868, 2880, 3958,
+     2920, 2829, 2926, 4005, 4070, 2888, 2922, 2832, 2955, 2912,
+     2967, 2977, 3085, 4133, 3104, 2894, 3110, 4180, 4245, 3126,
+     3087, 2914, 3153, 3096, 3099, 3165, 3173, 4308, 3119, 2979,
+
+     3160, 4355, 4420, 3193, 4283, 4280, 3223, 2345, 2973, 3169,
+     2842, 4467, 2011, 4320, 2129, 4514, 4579, 3235, 3239,    0,
+     4277, 4276, 4274, 4266, 4282, 4276, 4280, 4277, 4268, 4264,
+        0, 4271, 4271, 4273, 4257, 4264, 4197, 4201, 4199, 4199,
+     4179, 4197,    0, 4186, 4185, 4182, 4183, 4174, 4186, 4172,
+     4171, 4175, 7097, 4183, 4174, 4177, 4166, 4178, 4170,  783,
+     4176, 4162, 4162, 4168, 4161, 4173, 2584, 7097,    0, 4203,
+     7097, 2637, 7097,    0, 4191, 4206, 2870, 3116, 3364, 3365,
+     3373, 3194, 2423,    0, 4160, 4165, 4164, 4163, 3108, 3374,
+     3245, 3251, 4162, 4161, 2794,    0,    0, 4190, 2819,    0,
+
+        0, 4644, 4193, 4709, 4149, 2558, 4128, 4126, 1733, 1818,
+     3255, 3259, 4124, 4123, 3158,    0, 4774, 4161, 4839, 4117,
+     3380, 3388, 3391, 3428, 3475, 3607, 2638, 2704, 3401, 3463,
+     3609, 3615, 2714, 2965, 4904, 3094, 4969, 4115, 3473, 3477,
+     3437, 3593, 3617, 3622, 3178, 3198, 3497, 3595, 3624, 3699,
+     3247, 3279, 5034, 3431, 5099, 4110, 3485, 3688, 3602, 3605,
+     3811, 3817, 3281, 3382, 3701, 3711, 3862, 3986, 3465, 3481,
+     5164, 3630, 5229, 4108, 3639, 3679, 4110, 4105, 2921,    0,
+        0, 4138, 3103,    0,    0, 5294, 4142, 5359, 4098, 4088,
+     4093,    0, 4086, 1855,    0, 4087, 4101, 4082, 4097,    0,
+
+     4089, 4088, 4084, 4027, 4009, 4022, 4013, 4005, 4005, 1006,
+     4017, 4015, 7097, 4018, 7097, 4013, 7097, 4015, 4012, 7097,
+     7097, 4001, 4000, 3996, 3965, 3950, 3942, 3925, 3931, 3915,
+     3923, 3906, 3842, 3976, 4148, 4016, 3800, 7097, 3487,    0,
+        0, 3834,    0, 2580, 3640,    0,    0, 5424, 1059, 7097,
+     3878, 7097, 7097, 1332, 1986,    0,    0, 5489, 1540, 3499,
+     3713, 3668, 1097, 3717, 3721, 3676, 1231, 3725, 3727, 3682,
+     1504,    0,    0, 3756, 3158, 3821, 3796,    0, 3780, 3773,
+     3767, 3764, 3757, 3689, 3680, 3662,    0, 3649, 3643, 3619,
+     3623,    0, 3580, 3582, 3566, 3569, 3530, 3468,    0, 3428,
+
+     3400, 3386, 3394, 3388, 7097, 7097, 3370, 3365, 3358, 7097,
+     3352, 3340, 7097, 3352, 3329, 3975, 4150, 3851, 3852, 3874,
+     3836, 3948, 1800, 1908, 1438, 1810, 2247, 2260, 1174, 1745,
+     1870, 2063, 2494, 2496, 2778, 2831, 3313, 3820, 3318, 3227,
+     3222, 3181, 3127, 3114, 3102, 3094, 3083, 3070, 3043, 2951,
+     2947,    0, 2936, 2919, 2926, 2868, 2816, 2797, 2770, 2652,
+     7097, 2629, 2634, 2629, 2553, 7097, 2533, 7097, 3958, 3960,
+     3882, 2382, 3857, 1295, 2643,  772, 1490, 3211, 3599,  942,
+     1965, 2950, 3091, 3458, 3588, 3841, 3990, 2518, 2475, 2462,
+     2384, 2368, 2350, 2349, 2332, 2324,    0, 2289,    0, 2268,
+
+     2265, 2236, 2164,    0,    0, 2129, 2130, 2112, 2102, 2075,
+     2051, 2025, 7097, 2027, 2018, 1972, 1947, 1709, 1986, 2898,
+     1978, 3418, 1947, 3885, 4030, 4039, 4033, 4044, 4049, 3625,
+     1931,    0, 1842, 1816, 1765,    0, 1728, 1728, 1694, 1650,
+        0, 1585, 1556, 1522,    0, 1476, 1429,    0, 7097, 1375,
+     1360, 7097, 7097, 7097, 7097, 1321, 7097,    0, 3846, 3868,
+     3969,    0, 1275, 1198, 1185, 1145,    0, 1117, 1071, 1024,
+        0,    0,  926,    0, 7097,  869,  827,    0,  752,  675,
+        0,  367,  356,   61,    0, 7097, 7097,   23,    0,    0,
+        0,    0,    0, 7097, 5554, 5560, 5570, 5578, 5589, 5593,
+
+     5601, 5608, 5619, 5630, 5641, 5652, 5659, 5670, 5681, 5692,
+     5703, 5714, 5725, 5736, 5747, 5758, 5769, 5780, 5791, 5802,
+     5813, 5824, 5835, 5846, 5857, 5868, 5874, 5884, 5890, 5896,
+     5901, 5909, 5918, 5929, 5935, 5939, 5945, 5952, 5963, 5974,
+     5985, 5996, 6007, 6018, 6029, 6040, 6051, 6062, 6073, 6084,
+     6095, 6106, 6117, 6128, 6139, 6150, 6161, 6172, 6183, 6194,
+     6205, 6211, 6216, 6222, 6231, 6242, 6253, 6260, 6268, 6279,
+     6285, 6291, 6297, 6304, 6315, 6326, 6337, 6348, 6359, 6366,
+     6377, 6388, 6399, 6410, 6421, 6432, 6443, 6454, 6465, 6476,
+     6487, 6498, 6509, 6520, 6531, 6542, 6553, 6564, 6575, 6586,
+
+     6597, 6608, 6619, 6625, 6636, 6647, 6658, 6665, 6673, 6684,
+     6690, 6696, 6703, 6714, 6725, 6736, 6747, 6758, 6765, 6776,
+     6787, 6798, 6809, 6820, 6831, 6842, 6853, 6864, 6875, 6886,
+     6897, 6908, 6919, 6930, 6941, 6952, 6963, 6974, 6985, 6996,
+     7007, 7018, 7024, 7032, 7043, 7049, 7056, 7067, 7074, 7085
     } ;
 
-static yyconst flex_int16_t yy_def[1241] =
+static yyconst flex_int16_t yy_def[1251] =
     {   0,
-     1089,    1,    1,    3, 1089,    5, 1089,    7, 1089,    9,
-     1089,   11,    9,    9, 1089,   15, 1089,   17, 1089,   19,
-     1089,   21, 1089, 1089, 1089, 1089, 1089, 1089, 1090, 1089,
-     1091, 1089, 1089, 1092, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1093, 1093, 1093, 1093,
-     1093, 1093, 1093, 1093, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089,   39, 1089, 1089, 1093, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1090, 1094, 1092, 1089, 1095,   41, 1089,
-     1089, 1096, 1096, 1096, 1089, 1089, 1089, 1097, 1089, 1097,
-     1098, 1099, 1097, 1097, 1097,   95, 1097, 1100, 1100, 1097,
-
-     1097, 1097, 1089, 1089,   41, 1089, 1101, 1101, 1089, 1102,
-     1102, 1103, 1102, 1102, 1102,  115, 1102, 1104, 1104, 1102,
-     1090, 1105, 1089, 1105, 1106, 1107, 1105, 1105, 1105,  129,
-     1105, 1108, 1108, 1105, 1105, 1109, 1089, 1109, 1110, 1111,
-     1109, 1109, 1109,  143, 1109, 1112, 1112, 1109, 1109, 1113,
-     1089, 1113, 1114, 1115, 1113, 1113, 1113,  157, 1113, 1116,
-     1116, 1113, 1113, 1117, 1089, 1117, 1118, 1119, 1117, 1117,
-     1117,  171, 1117, 1120, 1120, 1117, 1117, 1089, 1089, 1089,
-     1089, 1090, 1089, 1090, 1121, 1121, 1121, 1121, 1121, 1089,
-     1089, 1089, 1122, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-
-     1089, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
-     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1124, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1125, 1126, 1127, 1126, 1126,
-     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1123, 1123, 1123, 1123, 1123, 1123,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1128, 1128,
-     1129, 1130, 1130, 1130, 1130, 1131, 1127, 1131, 1131, 1089,
-     1089, 1132, 1089, 1133, 1132, 1133, 1134, 1132, 1132, 1132,
-
-     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1135,
-     1089, 1135, 1132, 1132, 1089, 1089, 1089, 1125, 1089, 1136,
-     1137, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
-     1136, 1136, 1136, 1136, 1138, 1089, 1138, 1136, 1139, 1089,
-     1139, 1140, 1140, 1139, 1140, 1141, 1141, 1139, 1139, 1139,
-     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1142,
-     1089, 1142, 1139, 1139, 1143, 1089, 1143, 1144, 1144, 1143,
-     1144, 1145, 1145, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
-     1143, 1143, 1143, 1143, 1143, 1146, 1089, 1146, 1143, 1143,
-     1147, 1089, 1147, 1148, 1148, 1147, 1148, 1149, 1149, 1147,
-
-     1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
-     1147, 1150, 1089, 1150, 1147, 1147, 1151, 1089, 1152, 1151,
-     1152, 1153, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-     1151, 1151, 1151, 1151, 1154, 1089, 1154, 1151, 1089, 1155,
-     1155, 1155, 1155, 1089, 1156, 1156, 1156, 1156, 1156, 1156,
-     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
-     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1089,
-     1089, 1089, 1089, 1089, 1089, 1157, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1158, 1159, 1089, 1089, 1089,
-
-     1089, 1160, 1161, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
-     1162, 1162, 1089, 1156, 1156, 1089, 1163, 1089, 1163, 1164,
-     1165, 1165, 1165, 1165, 1165, 1166, 1167, 1167, 1167, 1167,
-     1167, 1167, 1167, 1167, 1167, 1168, 1169, 1170, 1171, 1089,
-     1167, 1089, 1089, 1172, 1173, 1173, 1173, 1173, 1173, 1173,
-     1173, 1173, 1173, 1174, 1175, 1089, 1176, 1176, 1176, 1176,
-     1176, 1176, 1176, 1176, 1176, 1177, 1178, 1179, 1180, 1089,
-     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182,
-     1183, 1184, 1185, 1089, 1186, 1186, 1186, 1186, 1186, 1186,
-     1186, 1186, 1186, 1187, 1188, 1189, 1190, 1089, 1191, 1191,
-
-     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1193, 1194,
-     1195, 1089, 1089, 1089, 1196, 1196, 1196, 1196, 1196, 1196,
-     1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
-     1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1197, 1089, 1197, 1198, 1089, 1199, 1089, 1199, 1200,
-     1089, 1201, 1201, 1201, 1201, 1201, 1201, 1089, 1202, 1203,
-     1203, 1203, 1203, 1204, 1204, 1205, 1205, 1205, 1205, 1206,
-     1205, 1206, 1207, 1208, 1205, 1208, 1209, 1205, 1089,  699,
-
-     1205, 1089, 1089, 1210, 1210, 1211, 1211, 1211, 1211, 1212,
-     1211, 1213, 1211, 1089,  714, 1214, 1214, 1214, 1214, 1215,
-     1215, 1214, 1215, 1216, 1216, 1217, 1217, 1214, 1217, 1218,
-     1214, 1089,  732, 1219, 1219, 1219, 1219, 1220, 1220, 1219,
-     1220, 1221, 1221, 1222, 1222, 1219, 1222, 1223, 1219, 1089,
-      750, 1224, 1224, 1224, 1224, 1225, 1225, 1224, 1225, 1226,
-     1226, 1227, 1227, 1224, 1227, 1228, 1224, 1089,  768, 1229,
-     1229, 1229, 1229, 1230, 1229, 1230, 1231, 1232, 1229, 1232,
-     1233, 1229, 1089,  783, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1235, 1235,
-     1235, 1235, 1089, 1089, 1236, 1236, 1236, 1236, 1237, 1237,
-     1238, 1238, 1089,  843, 1089, 1238, 1089, 1089, 1239, 1239,
-     1240, 1240, 1089,  853, 1214, 1214,  732,  732, 1219, 1219,
-      750,  750, 1224, 1224,  768,  768, 1229, 1229,  783,  783,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089,
-
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1235, 1235, 1235, 1235, 1236, 1237, 1237,  843,  843, 1239,
-     1239,  853,  853,  732,  732,  750,  750,  768,  768,  783,
-      783, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1235, 1235, 1089, 1237, 1237,  843,  843,
-     1239, 1239,  853,  853,  732,  732,  750,  750,  768,  768,
-      783,  783, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-
-     1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1238, 1238, 1240, 1240, 1214, 1214,
-     1219, 1219, 1224, 1224, 1229, 1229, 1234, 1234, 1234, 1234,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1238, 1214, 1219, 1224, 1229, 1234, 1234, 1234,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1089,
-     1089, 1089, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1089, 1089, 1234, 1234, 1234, 1234, 1234, 1234,    0, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089
+     1094,    1,    1,    3, 1094,    5, 1094,    7, 1094,    9,
+     1094,   11,    9,    9, 1094,   15, 1094,   17, 1094,   19,
+     1094,   21, 1094, 1094, 1094, 1094, 1094, 1094, 1095, 1094,
+     1096, 1094, 1094, 1097, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1098, 1098, 1098, 1098,
+     1098, 1098, 1098, 1098, 1094, 1094, 1094, 1094, 1099, 1094,
+     1094, 1094,   39, 1094, 1094, 1098, 1094, 1094, 1099, 1094,
+     1094, 1094, 1094, 1095, 1100, 1097, 1094, 1101,   41, 1094,
+     1094, 1102, 1102, 1102, 1094, 1094, 1099, 1103, 1094, 1103,
+     1104, 1105, 1103, 1103, 1103,   95, 1103, 1106, 1106, 1103,
+
+     1103, 1103, 1094, 1094,   41, 1094, 1107, 1107, 1094, 1108,
+     1108, 1109, 1108, 1108, 1108,  115, 1108, 1110, 1110, 1108,
+     1095, 1111, 1094, 1111, 1112, 1113, 1111, 1111, 1111,  129,
+     1111, 1114, 1114, 1111, 1111, 1115, 1094, 1115, 1116, 1117,
+     1115, 1115, 1115,  143, 1115, 1118, 1118, 1115, 1115, 1119,
+     1094, 1119, 1120, 1121, 1119, 1119, 1119,  157, 1119, 1122,
+     1122, 1119, 1119, 1123, 1094, 1123, 1124, 1125, 1123, 1123,
+     1123,  171, 1123, 1126, 1126, 1123, 1123, 1094, 1094, 1094,
+     1094, 1095, 1094, 1095, 1127, 1127, 1127, 1127, 1127, 1094,
+     1094, 1094, 1128, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+     1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1130, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1131, 1132, 1133, 1132, 1132,
+     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1094, 1094, 1094,
+     1094, 1094, 1134, 1094, 1134, 1134, 1134, 1134, 1094, 1129,
+     1129, 1129, 1129, 1129, 1129, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1135, 1135, 1136, 1137, 1137, 1137, 1137,
+     1138, 1133, 1138, 1138, 1094, 1094, 1139, 1094, 1140, 1139,
+
+     1140, 1141, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+     1139, 1139, 1139, 1139, 1142, 1094, 1142, 1139, 1139, 1094,
+     1094, 1094, 1131, 1094, 1143, 1144, 1143, 1143, 1143, 1143,
+     1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1145,
+     1094, 1145, 1143, 1146, 1094, 1146, 1147, 1147, 1146, 1147,
+     1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+     1146, 1146, 1146, 1146, 1149, 1094, 1149, 1146, 1146, 1150,
+     1094, 1150, 1151, 1151, 1150, 1151, 1152, 1152, 1150, 1150,
+     1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
+     1153, 1094, 1153, 1150, 1150, 1154, 1094, 1154, 1155, 1155,
+
+     1154, 1155, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154,
+     1154, 1154, 1154, 1154, 1154, 1154, 1157, 1094, 1157, 1154,
+     1154, 1158, 1094, 1159, 1158, 1159, 1160, 1158, 1158, 1158,
+     1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1161,
+     1094, 1161, 1158, 1094, 1162, 1162, 1162, 1162, 1094, 1163,
+     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+     1163, 1163, 1163, 1163, 1094, 1094, 1094, 1094, 1094, 1094,
+     1164, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1165, 1166, 1094, 1094, 1094, 1094, 1167, 1168, 1169, 1169,
+     1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1163, 1163,
+     1094, 1171, 1094, 1171, 1172, 1173, 1173, 1173, 1173, 1173,
+     1174, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
+     1176, 1177, 1178, 1179, 1094, 1175, 1094, 1094, 1180, 1181,
+     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1183,
+     1094, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
+     1185, 1186, 1187, 1188, 1094, 1189, 1189, 1189, 1189, 1189,
+     1189, 1189, 1189, 1189, 1190, 1191, 1192, 1193, 1094, 1194,
+     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1196,
+
+     1197, 1198, 1094, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
+     1199, 1199, 1200, 1201, 1202, 1203, 1094, 1094, 1094, 1204,
+     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
+     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
+     1204, 1204, 1204, 1204, 1204, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1205, 1094, 1205, 1206,
+     1094, 1207, 1094, 1207, 1208, 1094, 1209, 1209, 1209, 1209,
+     1209, 1209, 1210, 1211, 1212, 1212, 1212, 1212, 1213, 1213,
+     1214, 1214, 1214, 1214, 1215, 1214, 1215, 1216, 1217, 1214,
+
+     1217, 1218, 1214, 1094,  704, 1214, 1094, 1094, 1219, 1219,
+     1220, 1220, 1220, 1220, 1221, 1220, 1222, 1220, 1094,  719,
+     1223, 1223, 1223, 1223, 1224, 1224, 1223, 1224, 1225, 1225,
+     1226, 1226, 1223, 1226, 1227, 1223, 1094,  737, 1228, 1228,
+     1228, 1228, 1229, 1229, 1228, 1229, 1230, 1230, 1231, 1231,
+     1228, 1231, 1232, 1228, 1094,  755, 1233, 1233, 1233, 1233,
+     1234, 1234, 1233, 1234, 1235, 1235, 1236, 1236, 1233, 1236,
+     1237, 1233, 1094,  773, 1238, 1238, 1238, 1238, 1239, 1238,
+     1239, 1240, 1241, 1238, 1241, 1242, 1238, 1094,  788, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1244, 1244, 1244, 1244, 1094, 1245, 1246,
+     1246, 1246, 1246, 1247, 1247, 1248, 1248, 1094,  848, 1094,
+     1248, 1094, 1094, 1249, 1249, 1250, 1250, 1094,  858, 1223,
+     1223,  737,  737, 1228, 1228,  755,  755, 1233, 1233,  773,
+      773, 1238, 1238,  788,  788, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1244, 1244, 1244, 1244, 1246,
+     1247, 1247,  848,  848, 1249, 1249,  858,  858,  737,  737,
+      755,  755,  773,  773,  788,  788, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1244, 1244,
+     1094, 1247, 1247,  848,  848, 1249, 1249,  858,  858,  737,
+      737,  755,  755,  773,  773,  788,  788, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248,
+     1248, 1250, 1250, 1223, 1223, 1228, 1228, 1233, 1233, 1238,
+     1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248, 1223, 1228,
+     1233, 1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1094, 1094, 1094, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1094, 1094, 1243, 1243, 1243,
+     1243, 1243, 1243,    0, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094
     } ;
 
-static yyconst flex_int16_t yy_nxt[7107] =
+static yyconst flex_int16_t yy_nxt[7163] =
     {   0,
        24,   25,   26,   27,   25,   28,   29,   30,   31,   32,
        33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
@@ -840,16 +857,16 @@
        47,   47,   47,   47,   47,   47,   47,   49,   47,   50,
        47,   47,   51,   47,   52,   47,   47,   53,   47,   54,
        47,   47,   47,   55,   56,   57,  191,   58,   57,  183,
-      194,   67,  492,   68,   67, 1088,   85,  219,   86,   85,
-      192,  493,  195,  100,  220,  101,  100,  258,   59,   60,
+      194,   67,  497,   68,   67, 1093,   85,  219,   86,   85,
+      192,  498,  195,  100,  220,  101,  100,  258,   59,   60,
       183,   61,   60,   24,   69,  239,  240,   24,   24,   87,
 
-       24,   62,  184,   62,   63,   24,  102,  241,  242,  287,
-       64,   65,   24,   24,  109,  121,  109,  109,  120, 1087,
+       24,   62,  184,   62,   63,   24,  102,  241,  242,  292,
+       64,   65,   24,   24,  109,  121,  109,  109,  120, 1092,
       120,  120,  134,  184,  135,  134,  259,   41,   42,   42,
-       42,  148,  318,  149,  148,   47,  162,   47,  163,  162,
-       47,  176,   47,  177,  176,   66,  459,   47,  243,  244,
-      460,   24,   24,   70,   71,   72,   73,   71,   70,   74,
+       42,  148,  323,  149,  148,   47,  162,   47,  163,  162,
+       47,  176,   47,  177,  176,   66,  464,   47,  243,  244,
+      465,   24,   24,   70,   71,   72,   73,   71,   70,   74,
        70,   75,   70,   70,   76,   70,   77,   70,   77,   78,
        70,   79,   80,   80,   80,   70,   81,   70,   70,   82,
        82,   82,   82,   82,   82,   83,   82,   83,   82,   83,
@@ -878,8 +895,8 @@
       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
 
       118,  118,  118,  118,  118,  119,  118,  118,  118,  118,
-      118,  110,  110,  109, 1086,  109,  109,  186,  121,  187,
-      246,  188,  189,  264, 1085,  264,  264,  287,  340,  341,
+      118,  110,  110,  109, 1091,  109,  109,  186,  121,  187,
+      246,  188,  189,  269, 1090,  269,  269,  292,  345,  346,
        41,   42,   42,   42,  122,  122,  123,  124,  122,  122,
       125,  122,  122,  122,  122,  126,  122,  127,  122,  127,
       128,  122,  129,  130,  130,  130,  122,  131,  122,  122,
@@ -908,716 +925,722 @@
       174,  174,  174,  174,  174,  174,  174,  174,  164,  174,
       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
       174,  174,  174,  174,  174,  174,  175,  174,  174,  174,
-      174,  174,  164,  164,  178,  295,  178,  178,  178,  180,
+      174,  174,  164,  164,  178,  300,  178,  178,  178,  180,
 
-      178,  178,  196,  453,  197,  197,  197,  197,  454,  179,
-      198,  245,  196,  179,  197,  197,  197,  197,  246, 1084,
-      199,  200,  200,  200,  200,  248,  487,  201,  296,  202,
+      178,  178,  196,  458,  197,  197,  197,  197,  459,  179,
+      198,  245,  196,  179,  197,  197,  197,  197,  246, 1089,
+      199,  200,  200,  200,  200,  248,  492,  201,  301,  202,
       202,  202,  202,  202,  203,  202,  202,  202,  202,  202,
-      202,  202,  488,  202,  204,  205,  206,  202,  207,  208,
+      202,  202,  493,  202,  204,  205,  206,  202,  207,  208,
       209,  202,  210,  211,  212,  213,  202,  214,  202,  215,
       216,  217,  202,  202,  202,  218,  221,  245,  197,  197,
-      197,  197,  466,  245,  246,  245, 1013,  245,  222,  223,
-      246,  248,  246,  224,  246,  225,  467,  248,  226,  248,
-      260,  248,  222,  320,  287,  223,  221,  193,  197,  197,
+      197,  197,  471,  245,  246,  245, 1018,  245,  222,  223,
+      246,  248,  246,  224,  246,  225,  472,  248,  226,  248,
+      260,  248,  222,  325,  292,  223,  221,  193,  197,  197,
 
-      197,  197,  322,  225,  275,  245,  275,  275, 1019,  223,
+      197,  197,  327,  225,  280,  245,  280,  280, 1088,  223,
       254,  226,  246,  224,  255,  249,  249,  249,  249,  248,
-      250,  183,  340,  341,  253,  223,  227,  256,  228,  624,
-      261,  229, 1083,  245,  230,  231,  232,  233,  234,  235,
-      246,  245,  236,  246,  237,  238,  625,  248,  246,  262,
-      287,  262,  262,  360,  184,  248,  245,  262,  180,  262,
-      262,  241,  242,  246,  179,  264,  180,  264,  264,  821,
-      248,  251,  179,  275,  180,  275,  275,  252,  822,  196,
-      263,  197,  197,  197,  197,  257, 1089,  227,  276,  277,
-      278,  276,  461,  255,  462,  271,  231,  232,  272,  273,
-
-      235,  340,  347,  420,  202,  265,  238,  202,  183,  202,
-      344,  266,  267,  268,  269,  463,  270,  464,  202,  202,
-      202,  366,  367,  246,  202,  276,  277,  278,  276,  280,
-      287,  280,  281,  280,  280,  196,  421,  197,  197,  197,
-      197,  184,  200,  200,  200,  200,  221, 1082,  197,  197,
-      197,  197,  482,  289,  290,  277,  291,  290, 1081,  223,
-      483,  246,  287,  224,  288,  288,  288,  288,  287,  283,
-      284,  366,  367,  524,  285,  223,  290,  277,  291,  290,
-      298,  525,  299,  299,  299,  299,  300,  300,  300,  300,
-      920,  313,  292,  313,  313,  313,  293,  313,  313,  292,
-
-      489,  319,  292,  319,  319,  490,  292,  200,  200,  200,
-      200,  366,  373,  338,  301,  338,  338,  292,  302,  303,
-      370,  299,  299,  299,  299,  292,  317,  317,  317,  317,
-      320,  304,  305,  340,  341,  315,  306,  320,  307,  316,
-      320,  308,  392,  393,  320,  304,  246,  323,  305,  324,
-      324,  324,  324,  287,  359,  320,  307,  363,  340,  364,
-      363,  392,  393,  320,  308,  292,  292, 1080,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      839,  292,  292,  325,  325,  325,  325,  311,  292,  292,
-      292,  449,  221, 1079,  317,  317,  317,  317,  363,  340,
-
-      364,  363, 1078,  450,  292,  223,  340,  341,  628,  224,
-      629,  326,  340,  343,  496,  327,  344,  392,  399,  497,
-      348,  223,  349,  349,  349,  349,  396, 1077,  292,  292,
-      292,  292,  498,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  360,  292,  292,  925,  345,
-      366,  367,  311,  292,  292,  292,  339,  389,  366,  390,
-      389,  340,  341,  339,  366,  369,  339, 1076,  370,  292,
-      339,  385,  472,  472,  310,  312,  919,  350,  350,  350,
-      350,  339,  389,  366,  390,  389,  392,  395,  456,  339,
-      396,  287,  457,  292,  292,  328,  458,  324,  324,  324,
-
-      324,  371,  475,  475,  475,  351, 1075,  329,  330,  352,
-      392,  393,  331,  438,  332,  438,  438,  333,  849,  366,
-      367,  329, 1074,  397,  330,  415,  392,  416,  415,  480,
-      481,  411,  332,  374,  496,  375,  375,  375,  375,  497,
-      333,  320,  320,  320,  320,  320,  320, 1073,  320,  320,
-      320,  320,  320,  320,  320,  320, 1072,  320,  320,  415,
-      392,  416,  415,  336,  320,  320,  320,  392,  393,  423,
-      295,  424,  424,  424,  424,  499,  500,  366,  367,  386,
-      320,  400,  927,  401,  401,  401,  401,  438,  418,  438,
-      438,  480,  516,  376,  376,  376,  376,  178, 1071,  178,
-
-      178,  531,  531,  296,  320,  320,  320,  320,  320,  320,
-      320,  320,  179,  320,  320,  320,  320,  320,  320,  320,
-      320,  377,  320,  320, 1070,  378,  420,  365,  336,  320,
-      320,  320,  484,  391,  365, 1069,  485,  365,  392,  393,
-      391,  365,  335,  391,  923,  320,  439,  391,  439,  439,
-      486,  337,  365, 1015,  402,  402,  402,  402,  391,  421,
-      365,  440,  440,  440,  440,  264,  391,  264,  264,  320,
-      320,  340,  341,  425,  425,  425,  425,  441,  441,  441,
-      441,  275,  403,  275,  275,  353,  404,  349,  349,  349,
-      349,  442,  442,  442,  442,  536,  417,  354,  355,  310,
-
-      537,  426,  356,  417,  357,  427,  417,  358,  549,  549,
-      417,  354, 1068,  245,  355,  443,  443,  443,  443, 1067,
-      246,  417,  357,  200,  200,  200,  200,  248, 1066,  417,
-      358,  339,  339,  340,  341,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  287,  339,  339,  313,
-      245,  313,  313,  361,  339,  339,  339,  246,  221, 1065,
-      197,  197,  197,  197,  248,  200,  200,  200,  200,  975,
-      339,  223,  473,  360,  473,  224,  444,  474,  474,  474,
-      474,  456,  544,  246,  320,  457,  496,  223,  193,  515,
-      287,  554,  444,  322,  339,  339,  339,  339,  340,  341,
-
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-      339,  287,  339,  339,  262,  663,  262,  262,  361,  339,
-      339,  339,  471,  471,  471,  471,  526, 1064,  319,  179,
-      319,  319,  245,  444,  971,  339,  534,  534,  534,  246,
-      245,  362,  504,  504,  504,  504,  248,  246,  664,  444,
-      245,  245,  340,  341,  248, 1063,  245,  246,  246,  339,
-      339,  366,  367,  246,  248,  248,  287,  245,  287,  245,
-      248,  552,  552,  552,  246,  379,  246,  375,  375,  375,
-      375,  248,  338,  248,  338,  338,  509,  380,  381, 1062,
-      505,  972,  382,  850,  383,  340,  341,  384,  507,  508,
-
-      506,  380,  245,  668,  381,  276,  277,  278,  276,  246,
-      608,  512,  383,  340,  341,  609,  248,  510,  340,  343,
-      384,  365,  365,  366,  367,  365,  365,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  669,  365,  365,  276,
-      277,  278,  276,  387,  365,  365,  365,  340,  347, 1061,
-      511,  519,  519,  519,  519,  518,  344, 1013,  246, 1052,
-      365,  288,  288,  288,  288,  287,  290,  277,  291,  290,
-      290,  277,  291,  290,  300,  300,  300,  300,  325,  325,
-      325,  325,  340,  341,  365,  365,  365,  365,  366,  367,
-      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      250,  264,  265,  826,  253,  223,  227,  256,  228,  629,
+      261,  229,  827,  245,  230,  231,  232,  233,  234,  235,
+      246,  245,  236,  246,  237,  238,  630,  248,  246,  262,
+      292,  262,  262,  264,  265,  248,  245,  262,  180,  262,
+      262,  487,  268,  246,  179,  269,  180,  269,  269,  488,
+      248,  251,  179,  294, 1087,  266,  267,  252,  196,  227,
+      197,  197,  197,  197,  183,  257,  425,  276,  231,  232,
+      277,  278,  235,  255,  268, 1094,  345,  346,  238,  280,
+
+      180,  280,  280,  281,  282,  283,  281,  281,  282,  283,
+      281,  264,  265,  202,  270, 1086,  202,  184,  202,  426,
+      271,  272,  273,  274,  466,  275,  467,  202,  202,  202,
+      285,  292,  285,  202,  285,  285,  196,  286,  197,  197,
+      197,  197,  295,  282,  296,  295, 1024,  200,  200,  200,
+      200,  221,  268,  197,  197,  197,  197,  295,  282,  296,
+      295,  345,  346,  468,  223,  469,  246,  549,  224,  293,
+      293,  293,  293,  292,  288,  289,  371,  372, 1085,  290,
+      223,  303,  364,  304,  304,  304,  304,  305,  305,  305,
+      305,  365,  318,  297,  318,  318,  318,  298,  318,  318,
+
+      297,  494,  324,  297,  324,  324,  495,  297,  200,  200,
+      200,  200,  345,  352,  343,  306,  343,  343,  297,  307,
+      308,  349,  304,  304,  304,  304,  297,  322,  322,  322,
+      322,  325,  309,  310,  371,  372,  320,  311,  325,  312,
+      321,  325,  313,  397,  398,  325,  309,  895,  328,  310,
+      329,  329,  329,  329,  371,  378,  325,  312,  368,  345,
+      369,  368,  896,  375,  325,  313,  297,  297,  897,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297, 1084,  297,  297,  330,  330,  330,  330,  316,  297,
+      297,  297,  633,  221,  634,  322,  322,  322,  322,  368,
+
+      345,  369,  368,  397,  398,  297,  223,  345,  346,  315,
+      224,  924,  331,  345,  348,  501,  332,  349,  397,  404,
+      502,  353,  223,  354,  354,  354,  354,  401, 1083,  297,
+      297,  297,  297,  503,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  365,  297,  297,  930,
+      350,  371,  372,  316,  297,  297,  297,  344,  394,  371,
+      395,  394,  345,  346,  344,  371,  374,  344,  501,  375,
+      297,  344,  390,  502,  183, 1082,  317,  454,  355,  355,
+      355,  355,  344,  394,  371,  395,  394,  397,  400,  455,
+      344,  401,  477,  477,  297,  297,  333, 1081,  329,  329,
+
+      329,  329,  376,  480,  480,  480,  356,  184,  334,  335,
+      357,  397,  398,  336,  443,  337,  443,  443,  338,  980,
+      371,  372,  334,  365,  402,  335,  420,  397,  421,  420,
+      485,  486,  416,  337,  379, 1080,  380,  380,  380,  380,
+      529,  338,  325,  325,  325,  325,  325,  325,  530,  325,
+      325,  325,  325,  325,  325,  325,  325, 1079,  325,  325,
+      420,  397,  421,  420,  341,  325,  325,  325,  397,  398,
+      428,  300,  429,  429,  429,  429,  504,  505,  371,  372,
+      391,  325,  405,  932,  406,  406,  406,  406,  443,  423,
+      443,  443,  264,  265,  381,  381,  381,  381,  178, 1020,
+
+      178,  178,  264,  265,  301,  325,  325,  325,  325,  325,
+      325,  325,  325,  179,  325,  325,  325,  325,  325,  325,
+      325,  325,  382,  325,  325, 1078,  383,  425,  370,  341,
+      325,  325,  325,  489,  396,  370,  246,  490,  370,  397,
+      398,  396,  370,  292,  396,  315,  325,  444,  396,  444,
+      444,  491,  342,  370,  292,  407,  407,  407,  407,  396,
+      426,  370,  445,  445,  445,  445, 1077,  396,  264,  265,
+      325,  325,  345,  346,  430,  430,  430,  430,  446,  446,
+      446,  446,  925,  408,  264,  265,  358,  409,  354,  354,
+      354,  354,  447,  447,  447,  447,  668,  422,  359,  360,
+
+      485,  521,  431,  361,  422,  362,  432,  422,  363,  536,
+      536,  422,  359, 1076,  245,  360,  448,  448,  448,  448,
+     1075,  246,  422,  362,  200,  200,  200,  200,  248,  669,
+      422,  363,  344,  344,  345,  346,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  673,  344,  344,
+      269,  245,  269,  269,  366,  344,  344,  344,  246,  221,
+      292,  197,  197,  197,  197,  248,  200,  200,  200,  200,
+      461,  344,  223, 1074,  462,  245,  224,  449,  463,  478,
+      674,  478,  246,  976,  479,  479,  479,  479,  223,  248,
+      539,  539,  539,  449, 1019,  344,  344,  344,  344,  345,
+
+      346,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  292,  344,  344,  264,  265,  512,  513,  366,
+      344,  344,  344,  476,  476,  476,  476,  461,  554,  554,
+      246,  462, 1073,  245,  449,  520,  344,  292,  345,  346,
+      246,  245,  367,  509,  509,  509,  509,  248,  246,  541,
+      449,  245,  245,  417,  542,  248,  934,  245,  246,  246,
+      344,  344,  371,  372,  246,  248,  248, 1072,  245,  501,
+      245,  248,  518,  531,  559,  246,  384,  246,  380,  380,
+      380,  380,  248,  280,  248,  280,  280,  514,  385,  386,
+      340,  510,  928,  387,  262,  388,  262,  262,  389,  345,
+
+      346,  511,  385,  345,  346,  386, 1071,  515,  318,  179,
+      318,  318,  517,  388,  345,  348,  516,  281,  282,  283,
+      281,  389,  370,  370,  371,  372,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  370, 1070,  370,  370,
+      281,  282,  283,  281,  392,  370,  370,  370,  524,  524,
+      524,  524,  523,  246,  345,  346,  293,  293,  293,  293,
+      292,  370,  295,  282,  296,  295,  295,  282,  296,  295,
+      305,  305,  305,  305,  537,  324,  537,  324,  324,  538,
+      538,  538,  538,  371,  372,  370,  370,  370,  370,  371,
+      372,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+
+      370,  370, 1069,  370,  370,  330,  330,  330,  330,  392,
+      370,  370,  370, 1018,  308, 1057,  304,  304,  304,  304,
+      371,  372,  305,  305,  305,  305,  370,  310,  557,  557,
+      557,  311,  393,  532,  535,  535,  535,  535,  325,  345,
+      352,  613,  193,  310, 1068,  532,  614,  327,  349,  532,
+      370,  370,  397,  398,  343,  292,  343,  343,  345,  352,
+      221,  532,  322,  322,  322,  322,  410,  349,  406,  406,
+      406,  406, 1067,  223,  371,  372,  292,  224,  411,  412,
+      345,  346,  854,  413, 1066,  414,  345,  346,  415,  223,
+      981,  555,  411,  555,  365,  412,  556,  556,  556,  556,
+
+      709,  345,  348,  414,  710,  349,  368,  345,  369,  368,
+     1065,  415,  396,  396,  397,  398,  396,  396,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  563,  396,  396,
+      371,  374,  292,  564,  418,  396,  396,  396,  350,  333,
+      292,  329,  329,  329,  329,  974,  330,  330,  330,  330,
+      315,  396,  335,  345,  346,  977,  336,  550,  345,  348,
+      371,  372,  349,  368,  345,  369,  368,  855,  335,  355,
+      355,  355,  355,  550, 1064,  396,  396,  396,  396,  397,
+      398,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      396,  396, 1063,  396,  396,  350,  345,  346,  879,  418,
+
+      396,  396,  396,  553,  553,  553,  553,  345,  346,  371,
+      378,  880,  566,  566,  550,  982,  396,  881,  375,  391,
+      345,  346,  419,  355,  355,  355,  355,  696,  371,  374,
+      550,  567,  375,  567,  562, 1031,  568,  568,  568,  568,
+      396,  396,  433,  700,  429,  429,  429,  429,  371,  374,
+      562, 1023,  375,  975,  434,  435,  345,  346,  315,  436,
+      697,  437,  371,  372,  438,  376,  345,  346,  434, 1025,
+      571,  435,  569,  569,  569,  572,  701,  371,  378,  437,
+      397,  398, 1021,  371,  372,  376,  375,  438,  422,  422,
+     1019,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+
+      422,  422,  422, 1056,  422,  422,  345,  346,  292,  577,
+      441,  422,  422,  422,  365,  371,  372,  780,  371,  372,
+      397,  398,  565,  565,  565,  565, 1055,  422,  371,  372,
+      578,  580,  580,  562,  381,  381,  381,  381,  926,  371,
+      372,  397,  398,  585,  381,  381,  381,  381,  586,  562,
+      781,  422,  422,  422,  422,  576,  422,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  422,  422, 1054,  422,
+      422,  576,  371,  372, 1053,  441,  422,  422,  422,  394,
+      371,  395,  394, 1052,  371,  372,  397,  400,  579,  579,
+      579,  579,  422,  371,  372,  581, 1051,  581,  442,  576,
+
+      582,  582,  582,  582,  394,  371,  395,  394,  983,  583,
+      583,  583,  391,  397,  404,  576,  422,  422,  540,  540,
+      540,  540,  401,  397,  404,  397,  398,  540,  540,  540,
+      397,  400,  401, 1050,  401,  784,  397,  400,  397,  398,
+      401,  540,  540,  540,  540,  540,  540,  297,  297, 1049,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297, 1048,  297,  297,  397,  398,  402,  785,  316,
+      297,  297,  297,  402,  397,  398,  397,  398,  608,  608,
+     1047,  407,  407,  407,  407,  591,  297,  595, 1046,  595,
+      594,  594,  596,  596,  596,  596,  397,  398,  477,  477,
+
+      599,  420,  397,  421,  420,  600,  420,  397,  421,  420,
+      297,  297,  297,  297, 1045,  297,  297,  297,  543,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  544,  544,
+      544,  544,  544,  544,  544,  544,  544,  544,  544,  544,
+      544,  297,  544,  544,  544,  544,  544,  544,  544,  544,
+      544,  544,  544,  544,  544,  544,  544,  544,  544,  544,
+      544,  544,  544,  544,  544,  297,  297,  297,  297, 1044,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297,  978,  297,  297,  397,  398,  340,  650,  316,
+
+      297,  297,  297,  397,  398,  979,  651,  397,  398,  652,
+      340,  407,  407,  407,  407, 1043,  297,  430,  430,  430,
+      430, 1042,  590,  597,  597,  597,  536,  536,  430,  430,
+      430,  430,  611,  611,  611,  545,  264,  265,  590,  604,
+      297,  297,  558,  558,  558,  558,  443, 1041,  443,  443,
+      592,  558,  558,  558,  609,  604,  609,  554,  554,  610,
+      610,  610,  610,  608,  608,  558,  558,  558,  558,  558,
+      558,  325,  325,  325,  325,  325,  325, 1040,  325,  325,
+      325,  325,  325,  325,  325,  325, 1018,  325,  325,  397,
+      398, 1039,  683,  341,  325,  325,  325,  246,  433, 1038,
+
+      429,  429,  429,  429,  292,  593,  593,  593,  593, 1037,
+      325,  435,  480,  480,  480,  436,  590,  444, 1036,  444,
+      444,  445,  445,  445,  445,  838,  839,  435,  446,  446,
+      446,  446,  590, 1035,  325,  325,  325,  325,  325,  325,
+      325,  325,  507,  325,  325,  325,  325,  325,  325,  325,
+      325,  325,  325,  325,  325,  325,  325,  325,  325,  325,
+      325,  325,  560,  560,  560,  560,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  325,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  560,  560,  560,  560,  325,
+
+      325,  325,  325,  325,  325,  325,  325, 1034,  325,  325,
+      325,  325,  325,  325,  325,  325, 1033,  325,  325,  607,
+      607,  607,  607,  341,  325,  325,  325,  539,  539,  539,
+      604,  447,  447,  447,  447,  448,  448,  448,  448,  984,
+      325,  985,  618,  417,  618,  417,  604,  619,  619,  619,
+      619,  476,  476,  476,  476,  479,  479,  479,  479,  561,
+      850,  851,  449, 1032,  325,  325,  345,  346,  479,  479,
+      479,  479,  245, 1017,  245,  557,  557,  557,  449,  246,
+      358,  246,  354,  354,  354,  354,  248,  245,  248,  245,
+      668,  245,  245,  360,  246,  246,  246,  361,  246,  246,
+
+      245,  248,  292,  248, 1016,  248,  248,  246,  245,  360,
+      345,  346,  325,  246,  248,  246,  670,  345,  346,  677,
+      292,  716,  248,  669,  345,  346,  570,  570,  570,  570,
+      921,  678,  245,  566,  566,  570,  570,  570,  679,  246,
+      345,  346,  680,  673,  689,  682,  248, 1021,  690,  570,
+      570,  570,  570,  570,  570,  344,  344,  345,  346,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+     1015,  344,  344,  681,  724, 1014,  674,  366,  344,  344,
+      344,  524,  524,  524,  524,  523,  538,  538,  538,  538,
+      691, 1013,  691,  315,  344,  692,  692,  692,  692,  538,
+
+      538,  538,  538,  711, 1012,  711,  345,  726,  712,  712,
+      712,  712,  556,  556,  556,  556,  345,  346,  344,  344,
+      344,  344,  345,  346,  344,  344,  573,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  574,  574,  574,  574,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  344,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
+      574,  574,  574,  344,  344,  344,  344,  345,  346,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+
+      696,  344,  344,  535,  535,  535,  535,  366,  344,  344,
+      344,  345,  346, 1011,  532,  553,  553,  553,  553,  556,
+      556,  556,  556,  986,  344,  700,  550,  440,  345,  346,
+      532,  345,  730,  697,  371,  372,  345,  346, 1010,  721,
+      727,  721,  550,  575,  722,  722,  722,  722,  344,  344,
+      371,  372,  565,  565,  565,  565,  345,  346,  701,  723,
+      611,  611,  611,  562,  384, 1009,  380,  380,  380,  380,
+      345,  346,  568,  568,  568,  568,  987,  386,  245,  562,
+      440,  387,  345,  346,  742,  246,  568,  568,  568,  568,
+      371,  372,  248,  386,  371,  372,  371,  748,  569,  569,
+
+      569,  739, 1020,  739, 1058,  745,  740,  740,  740,  740,
+      584,  584,  584,  584,  371,  372,  397,  398, 1008,  584,
+      584,  584,  345,  726,  371,  372,  727,  780,  345,  732,
+      580,  580,  733,  584,  584,  584,  584,  584,  584,  370,
+      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370, 1026,  370,  370,  371,  372,  728,
+      781,  392,  370,  370,  370,  734,  760,  345,  732,  371,
+      372, 1007,  741,  579,  579,  579,  579, 1006,  370,  371,
+      372,  397,  766, 1005,  576,  582,  582,  582,  582, 1004,
+      763,  610,  610,  610,  610,  582,  582,  582,  582,  391,
+
+      576, 1003,  370,  370,  370,  370,  371,  372,  370,  370,
+      587,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  370,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  588,  588,  370,  370,  370,
+      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370, 1002,  370,  370,  371,  372,  397,
+      398,  392,  370,  370,  370, 1027,  345,  346,  397,  398,
+
+      573,  397,  398,  583,  583,  583,  371,  744,  370,  784,
+      745, 1001,  371,  750,  594,  594,  751,  596,  596,  596,
+      596,  397,  762,  246,  245,  763, 1000,  589,  397,  398,
+      292,  246,  370,  370,  397,  398,  999,  759,  248,  757,
+      391,  757,  785,  746,  758,  758,  758,  758,  410,  752,
+      406,  406,  406,  406,  998,  397,  398,  844,  764,  997,
+      325,  412,  397,  768,  670,  413,  769,  397,  398,  716,
+      996,  593,  593,  593,  593,  397,  398,  412,  397,  398,
+      371,  372,  590,  596,  596,  596,  596,  610,  610,  610,
+      610,  597,  597,  597,  598,  598,  598,  598,  590,  770,
+
+      371,  744,  245,  598,  598,  598,  775,  440,  775,  246,
+      936,  776,  776,  776,  776, 1022,  248,  598,  598,  598,
+      598,  598,  598,  396,  396,  397,  398,  396,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  995,  396,
+      396,  607,  607,  607,  607,  418,  396,  396,  396,  371,
+      372,  837,  604,  619,  619,  619,  619,  619,  619,  619,
+      619,  340,  396,  692,  692,  692,  692,  994,  604,  692,
+      692,  692,  692,  712,  712,  712,  712,  712,  712,  712,
+      712,  371,  750,  397,  398,  993,  396,  396,  396,  396,
+      397,  398,  396,  396,  601,  396,  396,  396,  396,  396,
+
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      396,  396,  396,  396,  602,  602,  602,  602,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  396,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
+      602,  396,  396,  396,  396,  397,  398,  396,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  992,  396,
+      396,  988,  245,  245,  968,  418,  396,  396,  396,  246,
+      246,  245,  345,  346,  397,  762,  248,  248,  246,  246,
+      345,  346,  396,  345,  346,  248,  292,  967,  722,  722,
+
+      722,  722,  966,  345,  730,  965,  722,  722,  722,  722,
+      964,  603,  727,  834,  835,  963,  396,  396,  612,  612,
+      612,  612, 1022,  845, 1057,  836,  962,  612,  612,  612,
+      345,  346,  961,  371,  372,  960,  860,  587,  959,  371,
+      372,  612,  612,  612,  612,  612,  612,  422,  422,  958,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422, 1028,  422,  422,  345,  730,  397,  398,  441,
+      422,  422,  422,  861,  727,  371,  372,  345,  726,  371,
+      372,  727,  864,  397,  768,  957,  422,  397,  398,  838,
+      265,  740,  740,  740,  740,  740,  740,  740,  740,  371,
+
+      748,  345,  346,  758,  758,  758,  758,  417,  745,  956,
+      422,  422,  422,  422,  728,  422,  422,  422,  615,  422,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  422,  422,  616,  616,
+      616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
+      616,  422,  616,  616,  616,  616,  616,  616,  616,  616,
+      616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
+      616,  616,  616,  616,  616,  422,  422,  422,  422,  955,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422, 1029,  422,  422,  371,  372,  371,  748,  441,
+
+      422,  422,  422, 1023,  397,  398,  745,  397,  398,  345,
+      726,  345,  732,  727,  954,  733,  422,  345,  732,  371,
+      744,  733,  953,  745,  371,  744,  371,  750,  745, 1030,
+      751, 1062,  397,  398,  952,  617,  601,  417,  865,  951,
+      422,  422,  540,  540,  540,  540,  728,  868,  734,  340,
+      869,  540,  540,  540,  734,  246,  746,  776,  776,  776,
+      776,  746,  292,  752,  950,  540,  540,  540,  540,  540,
+      540,  297,  297,  949,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  948,  297,  297,  947,
+      397,  398,  922,  703,  297,  297,  297,  776,  776,  776,
+
+      776,  371,  750,  397,  766,  751,  758,  758,  758,  758,
+      297,  946,  763,  397,  766,  345,  346,  365,  929,  371,
+      372,  945,  763,  371,  372,  391,  931,  397,  398,  397,
+      398,  417,  933,  944,  297,  297,  297,  297,  752,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  315,  297,  297,  315,  315,  315,  315,  316,  297,
+      297,  297,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  315,  297,  315,  315,  315,  315,
+      315,  315,  704,  315,  315,  315,  705,  315,  315,  315,
+      315,  315,  315,  315,  315,  315,  315,  315,  315,  297,
+
+      297,  558,  558,  558,  558,  440,  935,  943,  245,  942,
+      558,  558,  558,  397,  762,  246,  941,  763,  940,  397,
+      762,  939,  248,  763,  558,  558,  558,  558,  558,  558,
+      325,  325,  325,  325,  325,  325,  938,  325,  325,  325,
+      325,  325,  325,  325,  325, 1030,  325,  325,  345,  346,
+      764,  246,  718,  325,  325,  325,  764,  919,  292,  245,
+      245, 1019,  937,  989,  397,  768,  246,  246,  769,  325,
+      371,  372,  246,  248,  248,  971,  990,  971,  971,  292,
+      850,  972,  991,  971,  920,  971,  971,  345,  346, 1024,
+      440, 1059,  915,  325,  325,  325,  325,  325,  325,  325,
+
+      325,  770,  325,  325,  325,  325,  325,  325,  325,  325,
+      340,  325,  325,  340,  340,  340,  340,  341,  325,  325,
+      325,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  325,  340,  340,  340,  340,  340,
+      340,  719,  340,  340,  340,  720,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  325,  325,
+      345,  346, 1018,  246, 1019,  914,  245,  913,  245,  912,
+      292,  397,  398,  246,  911,  246,  570,  570,  570,  570,
+      248,  910,  248,  245,  245,  570,  570,  570,  397,  768,
+      246,  246,  769,  973, 1031,  909,  908,  248,  248,  570,
+
+      570,  570,  570,  570,  570,  344,  344,  345,  346,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      969,  344,  344,  907,  245,  770,  916,  736,  344,  344,
+      344,  246,  345,  346, 1025,  371,  372, 1027,  248,  440,
+      906,  371,  372, 1026,  344, 1060,  397,  398, 1028,  905,
+     1061,  397,  398, 1029,  904,  903,  902,  901,  900,  899,
+      898,  894,  893,  918,  892,  891,  890,  889,  344,  344,
+      344,  344,  345,  346,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  365,  344,  344,  365,  365,
+      365,  365,  366,  344,  344,  344,  365,  365,  365,  365,
+
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  344,
+      365,  365,  365,  365,  365,  365,  737,  365,  365,  365,
+      738,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365,  344,  344,  371,  372,  888,  887,  886,
+      885,  884,  883,  882,  878,  877,  876,  875,  615,  780,
+      873,  584,  584,  584,  584,  872,  245,  871,  245,  867,
+      584,  584,  584,  246,  863,  246,  859,  507,  857,  856,
+      248,  853,  248,  852,  584,  584,  584,  584,  584,  584,
+      370,  370,  371,  372,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  970,  370,  370,  849,  543,
+
+      917,  696,  754,  370,  370,  370,  847,  846,  843,  842,
+      841,  840,  507,  676,  668,  833,  832,  831,  830,  370,
+      829,  828,  825,  824,  823,  822,  821,  820,  819,  818,
+      817,  816,  815,  814,  813,  812,  811,  810,  809,  808,
+      807,  806,  805,  370,  370,  370,  370,  371,  372,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+      391,  370,  370,  391,  391,  391,  391,  392,  370,  370,
+      370,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  370,  391,  391,  391,  391,  391,
+      391,  755,  391,  391,  391,  756,  391,  391,  391,  391,
+
+      391,  391,  391,  391,  391,  391,  391,  391,  370,  370,
+      397,  398,  804,  803,  802,  801,  800,  799,  798,  797,
+      796,  795,  794,  793,  792,  791,  598,  598,  598,  598,
+      790,  780,  778,  777,  714,  598,  598,  598,  713,  708,
+      707,  706,  696,  694,  693,  688,  687,  686,  685,  598,
+      598,  598,  598,  598,  598,  396,  396,  397,  398,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      523,  396,  396,  650,  633,  629,  676,  772,  396,  396,
+      396,  671,  668,  666,  665,  664,  663,  662,  661,  660,
+      659,  658,  657,  656,  396,  655,  654,  653,  649,  648,
+
+      647,  646,  645,  644,  643,  642,  641,  640,  639,  638,
+      637,  636,  635,  632,  631,  628,  627,  626,  396,  396,
+      396,  396,  397,  398,  396,  396,  396,  396,  396,  396,
+      396,  396,  396,  396,  396,  417,  396,  396,  417,  417,
+      417,  417,  418,  396,  396,  396,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  396,
+      417,  417,  417,  417,  417,  417,  773,  417,  417,  417,
+      774,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  396,  396,  612,  612,  612,  612,  625,
+      624,  623,  622,  621,  612,  612,  612,  620,  606,  605,
+
+      425,  552,  551,  548,  547,  546,  534,  533,  612,  612,
+      612,  612,  612,  612,  422,  422,  300,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  507,
+      422,  422,  528,  527,  523,  495,  787,  422,  422,  422,
+      493,  469,  466,  464,  519,  455,  507,  292,  506,  500,
+      499,  496,  484,  422,  483,  482,  475,  474,  473,  470,
+      460,  457,  456,  453,  452,  451,  183,  439,  425,  423,
+      339,  292,  319,  314,  300,  298,  279,  422,  422,  422,
+      422,  183,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  422,  440,  422,  422,  440,  440,  440,
+
+      440,  441,  422,  422,  422,  440,  440,  440,  440,  440,
+      440,  440,  440,  440,  440,  440,  440,  440,  422,  440,
+      440,  440,  440,  440,  440,  788,  440,  440,  440,  789,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
+      440,  440,  422,  422,  297,  297,  279,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  183,
+      297,  297,  190,  181, 1094, 1094,  703,  297,  297,  297,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  297, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  297,  297,  297,
+      297, 1094,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  315,  297,  297,  315,  315,  315,
+      315,  316,  297,  297,  297,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  315,  315,  315,  315,  297,  315,
+      315,  315,  315,  315,  315,  315,  315,  315,  848,  315,
+      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315,  297,  297,  325,  325,  325,  325,  325,  325,
+     1094,  325,  325,  325,  325,  325,  325,  325,  325, 1094,
+      325,  325, 1094, 1094, 1094, 1094,  718,  325,  325,  325,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  325, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  325,  325,  325,
+      325,  325,  325,  325,  325, 1094,  325,  325,  325,  325,
+      325,  325,  325,  325,  340,  325,  325,  340,  340,  340,
+      340,  341,  325,  325,  325,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  325,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  858,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+
+      340,  340,  325,  325,  344,  344,  345,  346,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344, 1094,
+      344,  344, 1094, 1094, 1094, 1094,  736,  344,  344,  344,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  344, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  344,  344,  344,
+      344,  345,  346,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  365,  344,  344,  365,  365,  365,
+      365,  366,  344,  344,  344,  365,  365,  365,  365,  365,
 
-      365,  412,  365,  365,  929,  340,  347,  969,  387,  365,
-      365,  365,  310,  303,  344,  299,  299,  299,  299,  340,
-      341,  300,  300,  300,  300,  365,  305,  340,  341,  558,
-      306,  388,  527,  530,  530,  530,  530,  340,  341,  340,
-      343,  287,  305,  344,  527,  366,  367, 1060,  527,  365,
-      365,  392,  393,  561,  561,  976,  532, 1016,  532,  360,
-      527,  533,  533,  533,  533,  405,  559,  401,  401,  401,
-      401,  921,  325,  325,  325,  325,  345,  406,  407,  366,
-      367, 1059,  408,  545,  409,  366,  367,  410,  366,  369,
-      550,  406,  550,  691,  407,  551,  551,  551,  551,  545,
-
-      340,  343,  409,  310,  344,  363,  340,  364,  363, 1020,
-      410,  391,  391,  392,  393,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  692,  391,  391,  363,
-      340,  364,  363,  413,  391,  391,  391,  345,  221,  695,
-      317,  317,  317,  317,  328, 1058,  324,  324,  324,  324,
-      391,  223,  340,  341,  360,  224, 1026,  330,  775,  366,
-      369,  331,  977,  370,  366,  367,  386,  223,  350,  350,
-      350,  350,  696,  330,  391,  391,  391,  391,  392,  393,
-      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
-      391,  776,  391,  391,  340,  341,  371, 1021,  413,  391,
-
-      391,  391,  548,  548,  548,  548,  340,  341,  366,  373,
-      564,  564,  564,  545,  978,  391, 1014,  370,  386,  340,
-      341,  414,  350,  350,  350,  350,  779,  366,  369,  545,
-      562,  370,  562,  557,  287,  563,  563,  563,  563,  391,
-      391,  428,  386,  424,  424,  424,  424,  340,  341,  557,
-      970,  566,  663,  429,  430,  310,  567, 1018,  431,  780,
-      432,  366,  367,  433,  371,  366,  373,  429,  366,  367,
-      430,  366,  367, 1016,  370,  580,  392,  393,  432, 1017,
-      581,  389,  366,  390,  389,  664,  433,  417,  417, 1014,
-      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-
-      417,  417,  973,  417,  417,  340,  341,  335,  572,  436,
-      417,  417,  417,  366,  367,  573,  668,  366,  367,  392,
-      393,  560,  560,  560,  560,  335,  417,  366,  367,  575,
-      575, 1051,  557,  376,  376,  376,  376,  389,  366,  390,
-      389,  392,  393,  376,  376,  376,  376, 1050,  557,  669,
-      417,  417,  417,  417,  571,  417,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  417,  417, 1018,  417,  417,
-      571,  366,  367, 1049,  436,  417,  417,  417,  392,  395,
-      392,  393, 1048,  366,  367,  392,  393,  574,  574,  574,
-      574,  417,  366,  367,  576, 1047,  576,  437,  571,  577,
-
-      577,  577,  577,  392,  399,  603,  603,  979,  578,  578,
-      578,  412,  396,  335,  571,  417,  417,  535,  535,  535,
-      535, 1046,  392,  399,  472,  472,  535,  535,  535,  392,
-      395,  396,  586,  396,  691,  392,  395,  392,  393,  396,
-      535,  535,  535,  535,  535,  535,  292,  292, 1045,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      292, 1044,  292,  292,  392,  393,  397,  692,  311,  292,
-      292,  292,  397,  392,  393,  392,  393,  606,  606,  606,
-      402,  402,  402,  402,  587,  292,  590, 1043,  590,  589,
-      589,  591,  591,  591,  591,  392,  393,  531,  531,  594,
-
-      415,  392,  416,  415,  595,  415,  392,  416,  415,  292,
-      292,  292,  292, 1042,  292,  292,  292,  538,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  539,  539,  539,
-      539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
-      292,  539,  539,  539,  539,  539,  539,  539,  539,  539,
-      539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
-      539,  539,  539,  539,  292,  292,  292,  292, 1041,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      292,  974,  292,  292,  392,  393,  335,  645,  311,  292,
-
-      292,  292,  392,  393, 1040,  646,  392,  393,  647, 1022,
-      402,  402,  402,  402,  438,  292,  438,  438,  592,  592,
-      592,  585,  588,  588,  588,  588,  425,  425,  425,  425,
-      475,  475,  475,  585,  540,  549,  549,  585, 1039,  292,
-      292,  553,  553,  553,  553,  439, 1038,  439,  439,  585,
-      553,  553,  553,  604,  386,  604,  603,  603,  605,  605,
-      605,  605,  833,  834,  553,  553,  553,  553,  553,  553,
-      320,  320,  320,  320,  320,  320, 1037,  320,  320,  320,
-      320,  320,  320,  320,  320, 1013,  320,  320,  440,  440,
-      440,  440,  336,  320,  320,  320,  246,  428, 1036,  424,
-
-      424,  424,  424,  287,  425,  425,  425,  425, 1035,  320,
-      430,  534,  534,  534,  431,  599,  441,  441,  441,  441,
-      442,  442,  442,  442,  845,  846,  430,  443,  443,  443,
-      443,  599, 1034,  320,  320,  320,  320,  320,  320,  320,
-      320,  502,  320,  320,  320,  320,  320,  320,  320,  320,
-      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
-      320,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  320,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  320,  320,
-
-      320,  320,  320,  320,  320,  320, 1033,  320,  320,  320,
-      320,  320,  320,  320,  320, 1032,  320,  320,  602,  602,
-      602,  602,  336,  320,  320,  320,  613,  287,  613,  599,
-     1031,  614,  614,  614,  614,  471,  471,  471,  471,  320,
-      474,  474,  474,  474, 1030,  599,  444,  474,  474,  474,
-      474,  704, 1029,  245,  245,  705,  695, 1015,  556, 1053,
-      246,  246,  444,  320,  320,  340,  341,  248,  248,  340,
-      341,  245, 1028,  245,  533,  533,  533,  533,  246,  353,
-      246,  349,  349,  349,  349,  248,  245,  248,  245,  696,
-      245,  245,  355,  246, 1027,  246,  356,  246,  246,  672,
-
-      248, 1012,  248,  320,  248,  248,  245,  665,  355,  340,
-      341,  246,  711,  246,  775,  673,  435,  718,  287,  931,
-      248,  533,  533,  533,  533,  565,  565,  565,  565,  674,
-     1017,  676, 1052,  675,  565,  565,  565,  519,  519,  519,
-      519,  518,  684,  677,  366,  367,  685,  776,  565,  565,
-      565,  565,  565,  565,  339,  339,  340,  341,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  890,
-      339,  339,  530,  530,  530,  530,  361,  339,  339,  339,
-      686, 1011,  686,  527,  891,  687,  687,  687,  687,  706,
-      892,  706,  736,  339,  707,  707,  707,  707, 1010,  527,
-
-      551,  551,  551,  551,  551,  551,  551,  551,  552,  552,
-      552,  605,  605,  605,  605,  340,  341,  339,  339,  339,
-      339,  340,  341,  339,  339,  568,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  569,  569,  569,  569,  569,
-      569,  569,  569,  569,  569,  569,  569,  569,  339,  569,
-      569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
-      569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
-      569,  569,  339,  339,  339,  339,  340,  341,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339, 1009,
-
-      339,  339,  548,  548,  548,  548,  361,  339,  339,  339,
-      340,  341, 1008,  545,  340,  341,  340,  721,  340,  341,
-      722,  340,  341,  339,  980,  716, 1007,  716,  412,  545,
-      717,  717,  717,  717,  560,  560,  560,  560,  340,  341,
-      340,  341,  570,  340,  725,  557,  779,  339,  339,  366,
-      367, 1006,  722,  723,  561,  561,  563,  563,  563,  563,
-      719,  557, 1005,  379,  855,  375,  375,  375,  375,  340,
-      341,  340,  727,  340,  341,  728,  381,  366,  367,  780,
-      382,  366,  367,  366,  367,  563,  563,  563,  563,  564,
-      564,  564,  381,  366,  367,  366,  743,  575,  575,  577,
-
-      577,  577,  577,  981,  740,  366,  367,  435,  729,  579,
-      579,  579,  579,  366,  367, 1004,  392,  393,  579,  579,
-      579,  577,  577,  577,  577,  340,  341,  737, 1003,  578,
-      578,  578,  579,  579,  579,  579,  579,  579,  365,  365,
-      366,  367,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  365, 1002,  365,  365,  366,  367,  340,  721,
-      387,  365,  365,  365,  754,  392,  393,  734,  856,  734,
-      392,  393,  735,  735,  735,  735,  752,  365,  752,  392,
-      393,  753,  753,  753,  753, 1001,  589,  589,  340,  341,
-      392,  761,  606,  606,  606,  591,  591,  591,  591,  758,
-
-     1000,  365,  365,  365,  365,  366,  367,  365,  365,  582,
+      365,  365,  365,  365,  365,  365,  365,  365,  344,  365,
+      365,  365,  365,  365,  365,  365,  365,  365,  862,  365,
       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  365,  365,  365,  583,
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
-      583,  583,  365,  583,  583,  583,  583,  583,  583,  583,
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
-      583,  583,  583,  583,  583,  583,  365,  365,  365,  365,
-      366,  367,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  365, 1014,  365,  365,  366,  367,  392,  393,
-      387,  365,  365,  365,  246,  602,  602,  602,  602,  340,
-
-      727,  287,  574,  574,  574,  574,  599,  365,  366,  739,
-      340,  725,  740,  571,  246,  999,  366,  745,  998,  722,
-      746,  287,  599,  245,  392,  757,  584,  997,  758,  571,
-      246,  365,  365,  392,  393,  340,  725,  248,  755,  392,
-      393,  996,  392,  763,  722,  741,  764,  405,  840,  401,
-      401,  401,  401,  747,  995,  588,  588,  588,  588,  994,
-      407,  759,  366,  367,  408,  320,  585,  392,  393,  665,
-      993,  392,  393, 1025,  711, 1057,  407,  392,  393,  765,
-      366,  739,  585,  591,  591,  591,  591,  592,  592,  592,
-      366,  367, 1023,  593,  593,  593,  593,  605,  605,  605,
-
-      605,  245,  593,  593,  593,  770,  992,  770,  246,  991,
-      771,  771,  771,  771,  990,  248,  593,  593,  593,  593,
-      593,  593,  391,  391,  392,  393,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  412,  391,  391,
-      614,  614,  614,  614,  413,  391,  391,  391,  614,  614,
-      614,  614,  687,  687,  687,  687,  687,  687,  687,  687,
-      989,  391,  707,  707,  707,  707,  707,  707,  707,  707,
-      340,  341,  366,  743,  568,  366,  743,  366,  745,  366,
-      367,  740,  988,  582,  740,  391,  391,  391,  391,  392,
-      393,  391,  391,  596,  391,  391,  391,  391,  391,  391,
-
+      365,  365,  344,  344,  370,  370,  371,  372,  370,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  370, 1094,
+      370,  370, 1094, 1094, 1094, 1094,  754,  370,  370,  370,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  370, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  370,  370,  370,
+
+      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  391,  370,  370,  391,  391,  391,
+      391,  392,  370,  370,  370,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  370,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  866,  391,
       391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
-      391,  391,  391,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  391,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      391,  391,  391,  391,  392,  393,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  987,  391,  391,
-      983,  245,  245,  963,  413,  391,  391,  391,  246,  246,
-      245,  245,  340,  341,  962,  248,  248,  246,  246,  340,
-      341,  391,  340,  721,  248,  248,  722,  246,  717,  717,
-
-      717,  717,  392,  393,  287,  717,  717,  717,  717,  961,
-      598,  960,  829,  830,  959,  391,  391,  607,  607,  607,
-      607,  366,  367,  958,  831,  957,  607,  607,  607,  723,
-      832,  956,  366,  367,  917,  340,  721,  392,  757,  722,
-      607,  607,  607,  607,  607,  607,  417,  417,  874,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  875,  417,  417,  859,  366,  367,  876,  436,  417,
-      417,  417,  723,  366,  367,  860,  340,  727,  392,  393,
-      728,  735,  735,  735,  735,  417,  392,  393,  955,  735,
-      735,  735,  735,  954,  753,  753,  753,  753,  392,  761,
-
-      392,  393,  753,  753,  753,  753,  953,  758,  952,  417,
-      417,  417,  417,  729,  417,  417,  417,  610,  417,  417,
+      391,  391,  370,  370,  396,  396,  397,  398,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396, 1094,
+      396,  396, 1094, 1094, 1094, 1094,  772,  396,  396,  396,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094,  396, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  396,  396,  396,
+      396,  397,  398,  396,  396,  396,  396,  396,  396,  396,
+      396,  396,  396,  396,  417,  396,  396,  417,  417,  417,
+      417,  418,  396,  396,  396,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  396,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  870,  417,
       417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  417,  417,  611,  611,  611,
-      611,  611,  611,  611,  611,  611,  611,  611,  611,  611,
-      417,  611,  611,  611,  611,  611,  611,  611,  611,  611,
-      611,  611,  611,  611,  611,  611,  611,  611,  611,  611,
-      611,  611,  611,  611,  417,  417,  417,  417,  951,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417, 1024,  417,  417,  392,  393,  392,  761,  436,  417,
+      417,  417,  396,  396,  422,  422, 1094,  422,  422,  422,
 
-      417,  417,  950,  392,  393,  758,  392,  763,  340,  727,
-      366,  739,  728,  949,  740,  417,  366,  739,  366,  745,
-      740,  948,  746,  366,  745,  392,  757,  746,  947,  758,
-      946,  392,  393,  945,  612,  596,  412,  863,  944,  417,
-      417,  535,  535,  535,  535,  729,  864,  741,  340,  341,
-      535,  535,  535,  741, 1025,  747,  771,  771,  771,  771,
-      747,  943,  759,  942,  535,  535,  535,  535,  535,  535,
-      292,  292,  941,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292, 1026,  292,  292,  771,  771,
-      771,  771,  698,  292,  292,  292,  246,  340,  341,  435,
-
-      392,  757,  940,  287,  758,  360,  924,  366,  367,  292,
-      366,  367,  386,  926,  392,  393,  392,  393,  412,  928,
-      435,  930,  966,  982,  966,  966,  966,  435,  966,  966,
-      435,  916,  939,  292,  292,  292,  292,  759,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      310,  292,  292,  310,  310,  310,  310,  311,  292,  292,
-      292,  310,  310,  310,  310,  310,  310,  310,  310,  310,
-      310,  310,  310,  310,  292,  310,  310,  310,  310,  310,
-      310,  699,  310,  310,  310,  700,  310,  310,  310,  310,
-      310,  310,  310,  310,  310,  310,  310,  310,  292,  292,
-
-      553,  553,  553,  553,  340,  341, 1019,  245, 1054,  553,
-      553,  553,  392,  763,  246,  938,  764,  937,  392,  763,
-      936,  248,  764,  553,  553,  553,  553,  553,  553,  320,
-      320,  320,  320,  320,  320,  935,  320,  320,  320,  320,
-      320,  320,  320,  320,  934,  320,  320,  340,  341,  765,
-      245,  713,  320,  320,  320,  765,  914,  246,  245,  245,
-      245,  933,  984,  932,  248,  246,  246,  246,  320,  340,
-      341, 1020,  248,  248,  248,  985,  366,  367, 1021,  845,
-     1055,  986,  366,  367, 1022,  915,  392,  393, 1023,  913,
-     1056,  833,  320,  320,  320,  320,  320,  320,  320,  320,
-
-      911,  320,  320,  320,  320,  320,  320,  320,  320,  335,
-      320,  320,  335,  335,  335,  335,  336,  320,  320,  320,
-      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
-      335,  335,  335,  320,  335,  335,  335,  335,  335,  335,
-      714,  335,  335,  335,  715,  335,  335,  335,  335,  335,
-      335,  335,  335,  335,  335,  335,  335,  320,  320,  340,
-      341,  246,  246, 1013,  392,  393, 1024,  245,  287,  287,
-      366,  367,  392,  393,  246,  565,  565,  565,  565, 1014,
-      245,  248,  245,  245,  565,  565,  565,  246,  910,  246,
-      246,  967,  968,  909,  248,  908,  248,  248,  565,  565,
-
-      565,  565,  565,  565,  339,  339,  340,  341,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  964,
-      339,  339,  907,  245,  912,  906,  731,  339,  339,  339,
-      246,  905,  904,  903,  902,  901,  900,  248,  899,  898,
-      897,  896,  895,  339,  894,  893,  889,  888,  887,  886,
-      885,  884,  883,  882,  881,  880,  879,  878,  877,  873,
-      965,  872,  871,  870,  610,  775,  868,  339,  339,  339,
-      339,  340,  341,  339,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  360,  339,  339,  360,  360,  360,
-      360,  361,  339,  339,  339,  360,  360,  360,  360,  360,
-
-      360,  360,  360,  360,  360,  360,  360,  360,  339,  360,
-      360,  360,  360,  360,  360,  732,  360,  360,  360,  733,
-      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
-      360,  360,  339,  339,  366,  367,  867,  866,  862,  858,
-      854,  502,  852,  851,  848,  847,  844,  538,  691,  842,
-      579,  579,  579,  579,  841,  838,  837,  836,  835,  579,
-      579,  579,  502,  671,  663,  828,  827,  826,  825,  824,
-      823,  820,  819,  579,  579,  579,  579,  579,  579,  365,
-      365,  366,  367,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  365,  365,  818,  365,  365,  817,  816,  815,
-
-      814,  749,  365,  365,  365,  813,  812,  811,  810,  809,
-      808,  807,  806,  805,  804,  803,  802,  801,  365,  800,
-      799,  798,  797,  796,  795,  794,  793,  792,  791,  790,
-      789,  788,  787,  786,  785,  775,  773,  772,  709,  708,
-      703,  702,  365,  365,  365,  365,  366,  367,  365,  365,
-      365,  365,  365,  365,  365,  365,  365,  365,  365,  386,
-      365,  365,  386,  386,  386,  386,  387,  365,  365,  365,
-      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
-      386,  386,  386,  365,  386,  386,  386,  386,  386,  386,
-      750,  386,  386,  386,  751,  386,  386,  386,  386,  386,
-
-      386,  386,  386,  386,  386,  386,  386,  365,  365,  392,
-      393,  701,  691,  689,  688,  683,  682,  681,  680,  518,
-      645,  628,  624,  678,  671,  593,  593,  593,  593,  666,
-      663,  661,  660,  659,  593,  593,  593,  658,  657,  656,
-      655,  654,  653,  652,  651,  650,  649,  648,  593,  593,
-      593,  593,  593,  593,  391,  391,  392,  393,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  391,  391,  644,
-      391,  391,  643,  642,  641,  640,  767,  391,  391,  391,
-      639,  638,  637,  636,  635,  634,  633,  632,  631,  630,
-      627,  626,  623,  391,  622,  621,  620,  619,  618,  617,
-
-      616,  615,  601,  600,  420,  547,  546,  543,  542,  541,
-      529,  528,  295,  502,  523,  522,  518,  391,  391,  391,
-      391,  392,  393,  391,  391,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  412,  391,  391,  412,  412,  412,
-      412,  413,  391,  391,  391,  412,  412,  412,  412,  412,
-      412,  412,  412,  412,  412,  412,  412,  412,  391,  412,
-      412,  412,  412,  412,  412,  768,  412,  412,  412,  769,
-      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
-      412,  412,  391,  391,  607,  607,  607,  607,  490,  488,
-      464,  461,  459,  607,  607,  607,  514,  450,  513,  502,
-
-      287,  501,  495,  494,  491,  479,  478,  607,  607,  607,
-      607,  607,  607,  417,  417,  477,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  470,  417,
-      417,  469,  468,  465,  455,  782,  417,  417,  417,  452,
-      451,  448,  447,  446,  183,  434,  420,  418,  334,  287,
-      314,  309,  417,  295,  293,  263,  274,  183,  263,  274,
-      183,  190,  181, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089,  417,  417,  417,  417,
-     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  417,  435,  417,  417,  435,  435,  435,  435,
-
-      436,  417,  417,  417,  435,  435,  435,  435,  435,  435,
-      435,  435,  435,  435,  435,  435,  435,  417,  435,  435,
-      435,  435,  435,  435,  783,  435,  435,  435,  784,  435,
-      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
-      435,  417,  417,  292,  292, 1089,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292, 1089,  292,
-      292, 1089, 1089, 1089, 1089,  698,  292,  292,  292, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089,  292, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-
-     1089, 1089, 1089, 1089, 1089, 1089,  292,  292,  292,  292,
-     1089,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  310,  292,  292,  310,  310,  310,  310,
-      311,  292,  292,  292,  310,  310,  310,  310,  310,  310,
-      310,  310,  310,  310,  310,  310,  310,  292,  310,  310,
-      310,  310,  310,  310,  310,  310,  310,  843,  310,  310,
-      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
-      310,  292,  292,  320,  320,  320,  320,  320,  320, 1089,
-      320,  320,  320,  320,  320,  320,  320,  320, 1089,  320,
-      320, 1089, 1089, 1089, 1089,  713,  320,  320,  320, 1089,
-
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089,  320, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089,  320,  320,  320,  320,
-      320,  320,  320,  320, 1089,  320,  320,  320,  320,  320,
-      320,  320,  320,  335,  320,  320,  335,  335,  335,  335,
-      336,  320,  320,  320,  335,  335,  335,  335,  335,  335,
-      335,  335,  335,  335,  335,  335,  335,  320,  335,  335,
-      335,  335,  335,  335,  335,  335,  335,  853,  335,  335,
-      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
-
-      335,  320,  320,  339,  339,  340,  341,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339, 1089,  339,
-      339, 1089, 1089, 1089, 1089,  731,  339,  339,  339, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089,  339, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089,  339,  339,  339,  339,
-      340,  341,  339,  339,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  360,  339,  339,  360,  360,  360,  360,
-      361,  339,  339,  339,  360,  360,  360,  360,  360,  360,
-
-      360,  360,  360,  360,  360,  360,  360,  339,  360,  360,
-      360,  360,  360,  360,  360,  360,  360,  857,  360,  360,
-      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
-      360,  339,  339,  365,  365,  366,  367,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  365,  365, 1089,  365,
-      365, 1089, 1089, 1089, 1089,  749,  365,  365,  365, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089,  365, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089,  365,  365,  365,  365,
-
-      366,  367,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  365,  386,  365,  365,  386,  386,  386,  386,
-      387,  365,  365,  365,  386,  386,  386,  386,  386,  386,
-      386,  386,  386,  386,  386,  386,  386,  365,  386,  386,
-      386,  386,  386,  386,  386,  386,  386,  861,  386,  386,
-      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
-      386,  365,  365,  391,  391,  392,  393,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  391, 1089,  391,
-      391, 1089, 1089, 1089, 1089,  767,  391,  391,  391, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-
-     1089, 1089,  391, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089,  391,  391,  391,  391,
-      392,  393,  391,  391,  391,  391,  391,  391,  391,  391,
-      391,  391,  391,  412,  391,  391,  412,  412,  412,  412,
-      413,  391,  391,  391,  412,  412,  412,  412,  412,  412,
-      412,  412,  412,  412,  412,  412,  412,  391,  412,  412,
-      412,  412,  412,  412,  412,  412,  412,  865,  412,  412,
-      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
-      412,  391,  391,  417,  417, 1089,  417,  417,  417,  417,
-
-      417,  417,  417,  417,  417,  417,  417,  417, 1089,  417,
-      417, 1089, 1089, 1089, 1089,  782,  417,  417,  417, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089,  417, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089,  417,  417,  417,  417,
-     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  417,  435,  417,  417,  435,  435,  435,  435,
-      436,  417,  417,  417,  435,  435,  435,  435,  435,  435,
-      435,  435,  435,  435,  435,  435,  435,  417,  435,  435,
-
-      435,  435,  435,  435,  435,  435,  435,  869,  435,  435,
-      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
-      435,  417,  417,  292,  292, 1089,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  310,  292,
-      292,  310,  310,  310,  310,  311,  292,  292,  292,  310,
-      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
-      310,  310,  292,  310,  310,  310,  310,  310,  310,  310,
-      310,  310,  310,  918,  310,  310,  310,  310,  310,  310,
-      310,  310,  310,  310,  310,  310,  292,  292,  320,  320,
-      320,  320,  320,  320, 1089,  320,  320,  320,  320,  320,
-
-      320,  320,  320,  335,  320,  320,  335,  335,  335,  335,
-      336,  320,  320,  320,  335,  335,  335,  335,  335,  335,
-      335,  335,  335,  335,  335,  335,  335,  320,  335,  335,
-      335,  335,  335,  335,  335,  335,  335,  335,  922,  335,
-      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
-      335,  320,  320,  182, 1089,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  185, 1089, 1089,  185,  185,  193,
-     1089,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      247,  247,  247,  247,  247,  247,  247,  247,  279,  279,
-      279,  279,  282, 1089,  282, 1089,  282,  282,  282,  282,
-
-      286,  286,  286,  286,  286,  286,  286,  292, 1089,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  294, 1089,
-      294,  294,  294,  294,  294,  294,  294,  294,  294,  297,
-     1089,  297,  297,  297,  297,  297,  297,  297,  297,  297,
-      310, 1089,  310,  310,  310,  310,  310,  310,  310,  310,
-      310,  246,  246,  246,  246,  246,  246,  246,  320,  320,
-     1089,  320,  320,  320,  320,  320,  320,  320,  320,  321,
-      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
-      335,  335, 1089,  335,  335,  335,  335,  335,  335,  335,
-      335,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-
-      339,  339,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  342,  342,  346,  346,  346,  346,  346,  346,  346,
-      346,  346,  346,  346,  360,  360,  360,  360,  360,  360,
-      360,  360,  360,  360,  360,  365,  365,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  368,  368,  368,  368,
-      368,  368,  368,  368,  368,  368,  368,  372,  372,  372,
-      372,  372,  372,  372,  372,  372,  372,  372,  386,  386,
-      386,  386,  386,  386,  386,  386,  386,  386,  386,  391,
+      422,  422,  422,  422,  422,  422,  422,  422,  422, 1094,
+      422,  422, 1094, 1094, 1094, 1094,  787,  422,  422,  422,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  422, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  422,  422,  422,
+      422, 1094,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  422,  440,  422,  422,  440,  440,  440,
+      440,  441,  422,  422,  422,  440,  440,  440,  440,  440,
+      440,  440,  440,  440,  440,  440,  440,  440,  422,  440,
+
+      440,  440,  440,  440,  440,  440,  440,  440,  874,  440,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
+      440,  440,  422,  422,  297,  297, 1094,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  315,
+      297,  297,  315,  315,  315,  315,  316,  297,  297,  297,
+      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  297,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  923,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  315,  315,  315,  297,  297,  325,
+      325,  325,  325,  325,  325, 1094,  325,  325,  325,  325,
+
+      325,  325,  325,  325,  340,  325,  325,  340,  340,  340,
+      340,  341,  325,  325,  325,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  325,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  927,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  325,  325,  182, 1094,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  185, 1094, 1094,  185,  185,
+      193, 1094,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  247,  247,  247,  247,  247,  247,  247,  247,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+
+      284,  284,  284,  284,  287, 1094,  287, 1094,  287,  287,
+      287,  287,  291,  291,  291,  291,  291,  291,  291,  297,
+     1094,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      299, 1094,  299,  299,  299,  299,  299,  299,  299,  299,
+      299,  302, 1094,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  315, 1094,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  246,  246,  246,  246,  246,  246,  246,
+      325,  325, 1094,  325,  325,  325,  325,  325,  325,  325,
+      325,  326,  326,  326,  326,  326,  326,  326,  326,  326,
+      326,  326,  340,  340, 1094,  340,  340,  340,  340,  340,
+
+      340,  340,  340,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  347,  347,  347,  347,  347,  347,
+      347,  347,  347,  347,  347,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  365,  365,  365,  365,
+      365,  365,  365,  365,  365,  365,  365,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  377,
+      377,  377,  377,  377,  377,  377,  377,  377,  377,  377,
       391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
-      394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
-
-      394,  398,  398,  398,  398,  398,  398,  398,  398,  398,
-      398,  398,  412,  412,  412,  412,  412,  412,  412,  412,
-      412,  412,  412,  417, 1089,  417,  417,  417,  417,  417,
-      417,  417,  417,  417,  419, 1089,  419,  419,  419,  419,
-      419,  419,  419,  419,  419,  422, 1089,  422,  422,  422,
-      422,  422,  422,  422,  422,  422,  435, 1089,  435,  435,
-      435,  435,  435,  435,  435,  435,  435,  185, 1089, 1089,
-      185,  185,  193, 1089,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  445, 1089, 1089,  445,  445,  445,  476,
-     1089, 1089,  476,  246,  246,  246,  246,  246,  246,  246,
-
-      247,  247,  247,  247,  247,  247,  247,  247,  503, 1089,
-     1089, 1089, 1089,  503,  503,  503,  503,  517,  517,  517,
-      517,  517,  517,  520,  520,  520,  520,  521, 1089,  521,
-      521,  521,  521,  286,  286,  286,  286,  286,  286,  286,
-      292, 1089,  292,  292,  292,  292,  292,  292,  292,  292,
-      292,  294, 1089,  294,  294,  294,  294,  294,  294,  294,
-      294,  294,  297, 1089,  297,  297,  297,  297,  297,  297,
-      297,  297,  297,  310, 1089,  310,  310,  310,  310,  310,
-      310,  310,  310,  310,  320,  320, 1089,  320,  320,  320,
-      320,  320,  320,  320,  320,  321,  321,  321,  321,  321,
-
-      321,  321,  321,  321,  321,  321,  335,  335, 1089,  335,
-      335,  335,  335,  335,  335,  335,  335,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  342,  342,
-      342,  342,  342,  342,  342,  342,  342,  342,  342,  346,
-      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
-      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
-      360,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  368,  368,  368,  368,  368,  368,  368,  368,
-      368,  368,  368,  372,  372,  372,  372,  372,  372,  372,
-      372,  372,  372,  372,  386,  386,  386,  386,  386,  386,
-
-      386,  386,  386,  386,  386,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  394,  394,  394,  394,
-      394,  394,  394,  394,  394,  394,  394,  398,  398,  398,
-      398,  398,  398,  398,  398,  398,  398,  398,  412,  412,
-      412,  412,  412,  412,  412,  412,  412,  412,  412,  417,
-     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      419, 1089,  419,  419,  419,  419,  419,  419,  419,  419,
-      419,  422, 1089,  422,  422,  422,  422,  422,  422,  422,
-      422,  422,  435, 1089,  435,  435,  435,  435,  435,  435,
-      435,  435,  435,  185, 1089, 1089,  185,  185,  445, 1089,
-
-     1089,  445,  445,  445,  476, 1089, 1089,  476,  662, 1089,
-      662,  662,  662,  662,  662,  662,  662,  662,  662,  665,
-     1089,  665,  665,  665,  665,  665,  665,  665,  665,  665,
-      667, 1089,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  670,  670,  670,  670,  670,  670,  670,  247,  247,
-      247,  247,  247,  247,  247,  247,  517,  517,  517,  517,
-      517,  517,  679, 1089,  679,  679,  679,  679,  521, 1089,
-      521,  521,  521,  521,  286,  286,  286,  286,  286,  286,
-      286,  292, 1089,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  690, 1089,  690,  690,  690,  690,  690,  690,
-
-      690,  690,  690,  693, 1089,  693,  693,  693,  693,  693,
-      693,  693,  693,  693,  694, 1089,  694,  694,  694,  694,
-      694,  694,  694,  694,  694,  697, 1089,  697,  697,  697,
-      697,  697,  697,  697,  697,  697,  246,  246,  246,  246,
-      246,  246,  246,  320,  320, 1089,  320,  320,  320,  320,
-      320,  320,  320,  320,  710,  710,  710,  710,  710,  710,
-      710,  710,  710,  710,  710,  712,  712, 1089,  712,  712,
-      712,  712,  712,  712,  712,  712,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  720,  720,  720,
-      720,  720,  720,  720,  720,  720,  720,  720,  724,  724,
-
-      724,  724,  724,  724,  724,  724,  724,  724,  724,  726,
-      726,  726,  726,  726,  726,  726,  726,  726,  726,  726,
-      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
-      730,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  738,  738,  738,  738,  738,  738,  738,  738,
-      738,  738,  738,  742,  742,  742,  742,  742,  742,  742,
-      742,  742,  742,  742,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  756,  756,  756,
-
-      756,  756,  756,  756,  756,  756,  756,  756,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  762,
-      762,  762,  762,  762,  762,  762,  762,  762,  762,  762,
-      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
-      766,  417, 1089,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  774, 1089,  774,  774,  774,  774,  774,  774,
-      774,  774,  774,  777, 1089,  777,  777,  777,  777,  777,
-      777,  777,  777,  777,  778, 1089,  778,  778,  778,  778,
-      778,  778,  778,  778,  778,  781, 1089,  781,  781,  781,
-      781,  781,  781,  781,  781,  781,  445, 1089, 1089,  445,
-
-      445,  445,  662, 1089,  662,  662,  662,  662,  662,  662,
-      662,  662,  662,  665, 1089,  665,  665,  665,  665,  665,
-      665,  665,  665,  665,  667, 1089,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  670,  670,  670,  670,  670,
-      670,  670,  247,  247,  247,  247,  247,  247,  247,  247,
-      679, 1089,  679,  679,  679,  679,  521, 1089,  521,  521,
-      521,  521,  286,  286,  286,  286,  286,  286,  286,  292,
-     1089,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      690, 1089,  690,  690,  690,  690,  690,  690,  690,  690,
-      690,  693, 1089,  693,  693,  693,  693,  693,  693,  693,
-
-      693,  693,  694, 1089,  694,  694,  694,  694,  694,  694,
-      694,  694,  694,  697, 1089,  697,  697,  697,  697,  697,
-      697,  697,  697,  697,  246,  246,  246,  246,  246,  246,
-      246,  320,  320, 1089,  320,  320,  320,  320,  320,  320,
-      320,  320,  710,  710,  710,  710,  710,  710,  710,  710,
-      710,  710,  710,  712,  712, 1089,  712,  712,  712,  712,
-      712,  712,  712,  712,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  720,  720,  720,  720,  720,
-      720,  720,  720,  720,  720,  720,  724,  724,  724,  724,
-      724,  724,  724,  724,  724,  724,  724,  726,  726,  726,
-
-      726,  726,  726,  726,  726,  726,  726,  726,  730,  730,
-      730,  730,  730,  730,  730,  730,  730,  730,  730,  365,
-      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      738,  738,  738,  738,  738,  738,  738,  738,  738,  738,
-      738,  742,  742,  742,  742,  742,  742,  742,  742,  742,
-      742,  742,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  391,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  756,  756,  756,  756,  756,
-      756,  756,  756,  756,  756,  756,  760,  760,  760,  760,
-
-      760,  760,  760,  760,  760,  760,  760,  762,  762,  762,
-      762,  762,  762,  762,  762,  762,  762,  762,  766,  766,
-      766,  766,  766,  766,  766,  766,  766,  766,  766,  417,
-     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      774, 1089,  774,  774,  774,  774,  774,  774,  774,  774,
-      774,  777, 1089,  777,  777,  777,  777,  777,  777,  777,
-      777,  777,  778, 1089,  778,  778,  778,  778,  778,  778,
-      778,  778,  778,  781, 1089,  781,  781,  781,  781,  781,
-      781,  781,  781,  781,  445, 1089, 1089,  445,  445,  445,
-      247,  247,  247,  247,  247,  247,  247,  247,  521, 1089,
-
-      521,  521,  521,  521,  286,  286,  286,  286,  286,  286,
-      286,  292, 1089,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  246,  246,  246,  246,  246,  246,  246,  320,
-      320, 1089,  320,  320,  320,  320,  320,  320,  320,  320,
-       23, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+      391,  396,  396,  396,  396,  396,  396,  396,  396,  396,
 
-     1089, 1089, 1089, 1089, 1089, 1089
+      396,  396,  399,  399,  399,  399,  399,  399,  399,  399,
+      399,  399,  399,  403,  403,  403,  403,  403,  403,  403,
+      403,  403,  403,  403,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  422, 1094,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  424, 1094,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  427, 1094,  427,
+      427,  427,  427,  427,  427,  427,  427,  427,  440, 1094,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  185,
+     1094, 1094,  185,  185,  193, 1094,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  450, 1094, 1094,  450,  450,
+
+      450,  481, 1094, 1094,  481,  246,  246,  246,  246,  246,
+      246,  246,  247,  247,  247,  247,  247,  247,  247,  247,
+      508, 1094, 1094, 1094, 1094,  508,  508,  508,  508,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      522,  522,  522,  522,  522,  522,  525,  525,  525,  525,
+      526, 1094,  526,  526,  526,  526,  291,  291,  291,  291,
+      291,  291,  291,  297, 1094,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  299, 1094,  299,  299,  299,  299,
+      299,  299,  299,  299,  299,  302, 1094,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  315, 1094,  315,  315,
+
+      315,  315,  315,  315,  315,  315,  315,  325,  325, 1094,
+      325,  325,  325,  325,  325,  325,  325,  325,  326,  326,
+      326,  326,  326,  326,  326,  326,  326,  326,  326,  340,
+      340, 1094,  340,  340,  340,  340,  340,  340,  340,  340,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  347,  347,  347,  347,  347,  347,  347,  347,  347,
+      347,  347,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365,  365,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  373,  373,  373,  373,  373,
+
+      373,  373,  373,  373,  373,  373,  377,  377,  377,  377,
+      377,  377,  377,  377,  377,  377,  377,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  399,
+      399,  399,  399,  399,  399,  399,  399,  399,  399,  399,
+      403,  403,  403,  403,  403,  403,  403,  403,  403,  403,
+      403,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  422, 1094,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  424, 1094,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  427, 1094,  427,  427,  427,  427,
+
+      427,  427,  427,  427,  427,  440, 1094,  440,  440,  440,
+      440,  440,  440,  440,  440,  440,  185, 1094, 1094,  185,
+      185,  450, 1094, 1094,  450,  450,  450,  481, 1094, 1094,
+      481,  667, 1094,  667,  667,  667,  667,  667,  667,  667,
+      667,  667,  670, 1094,  670,  670,  670,  670,  670,  670,
+      670,  670,  670,  672, 1094,  672,  672,  672,  672,  672,
+      672,  672,  672,  672,  675,  675,  675,  675,  675,  675,
+      675,  247,  247,  247,  247,  247,  247,  247,  247,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      522,  522,  522,  522,  522,  522,  684, 1094,  684,  684,
+
+      684,  684,  526, 1094,  526,  526,  526,  526,  291,  291,
+      291,  291,  291,  291,  291,  297, 1094,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  695, 1094,  695,  695,
+      695,  695,  695,  695,  695,  695,  695,  698, 1094,  698,
+      698,  698,  698,  698,  698,  698,  698,  698,  699, 1094,
+      699,  699,  699,  699,  699,  699,  699,  699,  699,  702,
+     1094,  702,  702,  702,  702,  702,  702,  702,  702,  702,
+      246,  246,  246,  246,  246,  246,  246,  325,  325, 1094,
+      325,  325,  325,  325,  325,  325,  325,  325,  715,  715,
+      715,  715,  715,  715,  715,  715,  715,  715,  715,  717,
+
+      717, 1094,  717,  717,  717,  717,  717,  717,  717,  717,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  725,  725,  725,  725,  725,  725,  725,  725,  725,
+      725,  725,  729,  729,  729,  729,  729,  729,  729,  729,
+      729,  729,  729,  731,  731,  731,  731,  731,  731,  731,
+      731,  731,  731,  731,  735,  735,  735,  735,  735,  735,
+      735,  735,  735,  735,  735,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  743,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  749,  749,
+
+      749,  749,  749,  749,  749,  749,  749,  749,  749,  753,
+      753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      396,  761,  761,  761,  761,  761,  761,  761,  761,  761,
+      761,  761,  765,  765,  765,  765,  765,  765,  765,  765,
+      765,  765,  765,  767,  767,  767,  767,  767,  767,  767,
+      767,  767,  767,  767,  771,  771,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  422, 1094,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  779, 1094,  779,  779,
+      779,  779,  779,  779,  779,  779,  779,  782, 1094,  782,
+
+      782,  782,  782,  782,  782,  782,  782,  782,  783, 1094,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  786,
+     1094,  786,  786,  786,  786,  786,  786,  786,  786,  786,
+      450, 1094, 1094,  450,  450,  450,  667, 1094,  667,  667,
+      667,  667,  667,  667,  667,  667,  667,  670, 1094,  670,
+      670,  670,  670,  670,  670,  670,  670,  670,  672, 1094,
+      672,  672,  672,  672,  672,  672,  672,  672,  672,  675,
+      675,  675,  675,  675,  675,  675,  247,  247,  247,  247,
+      247,  247,  247,  247,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  684, 1094,  684,  684,  684,
+
+      684,  526, 1094,  526,  526,  526,  526,  291,  291,  291,
+      291,  291,  291,  291,  297, 1094,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  695, 1094,  695,  695,  695,
+      695,  695,  695,  695,  695,  695,  698, 1094,  698,  698,
+      698,  698,  698,  698,  698,  698,  698,  699, 1094,  699,
+      699,  699,  699,  699,  699,  699,  699,  699,  702, 1094,
+      702,  702,  702,  702,  702,  702,  702,  702,  702,  246,
+      246,  246,  246,  246,  246,  246,  325,  325, 1094,  325,
+      325,  325,  325,  325,  325,  325,  325,  715,  715,  715,
+      715,  715,  715,  715,  715,  715,  715,  715,  717,  717,
+
+     1094,  717,  717,  717,  717,  717,  717,  717,  717,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
+      725,  729,  729,  729,  729,  729,  729,  729,  729,  729,
+      729,  729,  731,  731,  731,  731,  731,  731,  731,  731,
+      731,  731,  731,  735,  735,  735,  735,  735,  735,  735,
+      735,  735,  735,  735,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  743,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  749,  749,  749,
+
+      749,  749,  749,  749,  749,  749,  749,  749,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  753,  753,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
+      761,  765,  765,  765,  765,  765,  765,  765,  765,  765,
+      765,  765,  767,  767,  767,  767,  767,  767,  767,  767,
+      767,  767,  767,  771,  771,  771,  771,  771,  771,  771,
+      771,  771,  771,  771,  422, 1094,  422,  422,  422,  422,
+      422,  422,  422,  422,  422,  779, 1094,  779,  779,  779,
+      779,  779,  779,  779,  779,  779,  782, 1094,  782,  782,
+
+      782,  782,  782,  782,  782,  782,  782,  783, 1094,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  786, 1094,
+      786,  786,  786,  786,  786,  786,  786,  786,  786,  450,
+     1094, 1094,  450,  450,  450,  247,  247,  247,  247,  247,
+      247,  247,  247,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  526, 1094,  526,  526,  526,  526,
+      291,  291,  291,  291,  291,  291,  291,  297, 1094,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  246,  246,
+      246,  246,  246,  246,  246,  325,  325, 1094,  325,  325,
+      325,  325,  325,  325,  325,  325,   23, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094
     } ;
 
-static yyconst flex_int16_t yy_chk[7107] =
+static yyconst flex_int16_t yy_chk[7163] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1626,12 +1649,12 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    2,   33,    2,    2,   29,
-       35,    4,  236,    4,    4, 1083,    6,   40,    6,    6,
+       35,    4,  236,    4,    4, 1088,    6,   40,    6,    6,
        33,  236,   35,    8,   40,    8,    8,   55,    2,    3,
        74,    3,    3,    3,    4,   44,   44,    3,    3,    6,
 
         3,    3,   29,    3,    3,    3,    8,   45,   45,  108,
-        3,    3,    3,    3,   10,   13,   10,   10,   12, 1079,
+        3,    3,    3,    3,   10,   13,   10,   10,   12, 1084,
        12,   12,   16,   74,   16,   16,   55,   13,   13,   13,
        13,   18,  108,   18,   18,    3,   20,    3,   20,   20,
         3,   22,    3,   22,   22,    3,  212,    3,   46,   46,
@@ -1664,8 +1687,8 @@
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
 
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   14, 1078,   14,   14,   31,   14,   31,
-       82,   31,   31,   60, 1077,   60,   60,   82,  122,  122,
+       11,   11,   11,   14, 1083,   14,   14,   31,   14,   31,
+       82,   31,   31,   60, 1082,   60,   60,   82,  122,  122,
        14,   14,   14,   14,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
@@ -1697,712 +1720,730 @@
        21,   21,   21,   21,   25,   91,   25,   25,   27,   27,
 
        27,   27,   36,  209,   36,   36,   36,   36,  209,   25,
-       36,   47,   38,   27,   38,   38,   38,   38,   47, 1075,
+       36,   47,   38,   27,   38,   38,   38,   38,   47, 1080,
        38,   39,   39,   39,   39,   47,  233,   39,   91,   39,
        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
        39,   39,  233,   39,   39,   39,   39,   39,   39,   39,
        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
        39,   39,   39,   39,   39,   39,   41,   52,   41,   41,
-       41,   41,  216,   51,   52,   49,  971,   53,   41,   41,
+       41,   41,  216,   51,   52,   49,  976,   53,   41,   41,
        51,   52,   49,   41,   53,   41,  216,   51,   41,   49,
-       56,   53,   41,  112,  971,   41,   42,  112,   42,   42,
+       56,   53,   41,  112,  976,   41,   42,  112,   42,   42,
 
-       42,   42,  112,   41,   67,   48,   67,   67,  975,   42,
+       42,   42,  112,   41,   67,   48,   67,   67, 1079,   42,
        52,   41,   48,   42,   53,   48,   48,   48,   48,   48,
-       49,  121,  124,  124,   51,   42,   43,   53,   43,  455,
-       56,   43, 1074,   50,   43,   43,   43,   43,   43,   43,
-       50,   54,   43,  286,   43,   43,  455,   50,   54,   57,
-      286,   57,   57,  975,  121,   54,   66,   58,   58,   58,
-       58,   59,   59,   66,   57,   61,   61,   61,   61,  655,
-       66,   50,   58,   68,   68,   68,   68,   50,  655,   62,
-       59,   62,   62,   62,   62,   54,   63,   64,   71,   71,
-       71,   71,  213,   66,  213,   64,   64,   64,   64,   64,
-
-       64,  126,  126,  167,   63,   63,   64,   63,  182,   63,
-      126,   63,   63,   63,   63,  214,   63,  214,   63,   63,
-       63,  136,  136,   84,   63,   73,   73,   73,   73,   75,
-       84,   75,   78,   75,   75,   77,  167,   77,   77,   77,
-       77,  182,   78,   78,   78,   78,   80, 1072,   80,   80,
-       80,   80,  231,   84,   85,   85,   85,   85, 1071,   80,
-      231,   83,  849,   80,   83,   83,   83,   83,   83,   78,
-       78,  138,  138,  285,   78,   80,   86,   86,   86,   86,
-       93,  285,   93,   93,   93,   93,   94,   94,   94,   94,
-      849,  100,   96,  100,  100,  101,  101,  101,  101,   96,
-
-      234,  109,   96,  109,  109,  234,   96,  104,  104,  104,
-      104,  140,  140,  120,   94,  120,  120,   96,   94,   95,
-      140,   95,   95,   95,   95,   96,  105,  105,  105,  105,
-      116,   95,   95,  131,  131,  104,   95,  116,   95,  104,
-      116,   95,  150,  150,  116,   95,  684,  113,   95,  113,
-      113,  113,  113,  684,  131,  116,   95,  134,  134,  134,
-      134,  152,  152,  116,   95,   98,   98, 1068,   98,   98,
+       49,   69,   69,  660,   51,   42,   43,   53,   43,  460,
+       56,   43,  660,   50,   43,   43,   43,   43,   43,   43,
+       50,   54,   43,   84,   43,   43,  460,   50,   54,   57,
+       84,   57,   57,   59,   59,   54,   66,   58,   58,   58,
+       58,  231,   69,   66,   57,   61,   61,   61,   61,  231,
+       66,   50,   58,   84, 1077,   59,   59,   50,   62,   64,
+       62,   62,   62,   62,  121,   54,  167,   64,   64,   64,
+       64,   64,   64,   66,   59,   63,  124,  124,   64,   68,
+
+       68,   68,   68,   71,   71,   71,   71,   73,   73,   73,
+       73,   87,   87,   63,   63, 1076,   63,  121,   63,  167,
+       63,   63,   63,   63,  213,   63,  213,   63,   63,   63,
+       75,  323,   75,   63,   75,   75,   77,   78,   77,   77,
+       77,   77,   85,   85,   85,   85,  980,   78,   78,   78,
+       78,   80,   87,   80,   80,   80,   80,   86,   86,   86,
+       86,  131,  131,  214,   80,  214,   83,  323,   80,   83,
+       83,   83,   83,   83,   78,   78,  136,  136, 1073,   78,
+       80,   93,  131,   93,   93,   93,   93,   94,   94,   94,
+       94,  980,  100,   96,  100,  100,  101,  101,  101,  101,
+
+       96,  234,  109,   96,  109,  109,  234,   96,  104,  104,
+      104,  104,  126,  126,  120,   94,  120,  120,   96,   94,
+       95,  126,   95,   95,   95,   95,   96,  105,  105,  105,
+      105,  116,   95,   95,  138,  138,  104,   95,  116,   95,
+      104,  116,   95,  150,  150,  116,   95,  810,  113,   95,
+      113,  113,  113,  113,  140,  140,  116,   95,  134,  134,
+      134,  134,  810,  140,  116,   95,   98,   98,  810,   98,
        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
-      684,   98,   98,  114,  114,  114,  114,   98,   98,   98,
-       98,  206,  106, 1065,  106,  106,  106,  106,  135,  135,
+       98, 1070,   98,   98,  114,  114,  114,  114,   98,   98,
+       98,   98,  463,  106,  463,  106,  106,  106,  106,  135,
 
-      135,  135, 1064,  206,   98,  106,  127,  127,  458,  106,
-      458,  114,  125,  125,  239,  114,  125,  154,  154,  239,
-      127,  106,  127,  127,  127,  127,  154, 1063,   98,   98,
-       99,   99,  239,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,  858,   99,   99,  858,  125,
-      145,  145,   99,   99,   99,   99,  130,  148,  148,  148,
-      148,  128,  128,  130,  139,  139,  130, 1061,  139,   99,
-      130,  145,  222,  222,  844,   99,  844,  128,  128,  128,
-      128,  130,  149,  149,  149,  149,  153,  153,  211,  130,
-      153,  704,  211,   99,   99,  115,  211,  115,  115,  115,
-
-      115,  139,  225,  225,  225,  128, 1060,  115,  115,  128,
-      159,  159,  115,  176,  115,  176,  176,  115,  704,  141,
-      141,  115, 1059,  153,  115,  162,  162,  162,  162,  230,
-      230,  159,  115,  141,  274,  141,  141,  141,  141,  274,
-      115,  118,  118,  118,  118,  118,  118, 1058,  118,  118,
-      118,  118,  118,  118,  118,  118, 1051,  118,  118,  163,
-      163,  163,  163,  118,  118,  118,  118,  155,  155,  169,
-      294,  169,  169,  169,  169,  244,  244,  142,  142,  862,
-      118,  155,  862,  155,  155,  155,  155,  177,  177,  177,
-      177,  271,  271,  142,  142,  142,  142,  178, 1046,  178,
-
-      178,  304,  304,  294,  118,  118,  119,  119,  119,  119,
-      119,  119,  178,  119,  119,  119,  119,  119,  119,  119,
-      119,  142,  119,  119, 1045,  142,  419,  144,  119,  119,
-      119,  119,  232,  158,  144, 1042,  232,  144,  156,  156,
-      158,  144,  854,  158,  854,  119,  179,  158,  179,  179,
-      232,  119,  144,  969,  156,  156,  156,  156,  158,  419,
-      144,  186,  186,  186,  186,  264,  158,  264,  264,  119,
-      119,  129,  129,  170,  170,  170,  170,  187,  187,  187,
-      187,  275,  156,  275,  275,  129,  156,  129,  129,  129,
-      129,  188,  188,  188,  188,  309,  172,  129,  129,  969,
-
-      309,  170,  129,  172,  129,  170,  172,  129,  329,  329,
-      172,  129, 1041,  247,  129,  189,  189,  189,  189, 1039,
-      247,  172,  129,  196,  196,  196,  196,  247, 1038,  172,
-      129,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  318,  132,  132,  313,
-      251,  313,  313,  132,  132,  132,  132,  251,  197, 1037,
-      197,  197,  197,  197,  251,  200,  200,  200,  200,  924,
-      132,  197,  223,  924,  223,  197,  200,  223,  223,  223,
-      223,  267,  318,  289,  321,  267,  334,  197,  321,  267,
-      289,  334,  200,  321,  132,  132,  133,  133,  133,  133,
+      135,  135,  135,  152,  152,   98,  106,  127,  127,  849,
+      106,  849,  114,  125,  125,  239,  114,  125,  154,  154,
+      239,  127,  106,  127,  127,  127,  127,  154, 1069,   98,
+       98,   99,   99,  239,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,  863,   99,   99,  863,
+      125,  145,  145,   99,   99,   99,   99,  130,  148,  148,
+      148,  148,  128,  128,  130,  139,  139,  130,  279,  139,
+       99,  130,  145,  279,  182, 1068,   99,  206,  128,  128,
+      128,  128,  130,  149,  149,  149,  149,  153,  153,  206,
+      130,  153,  222,  222,   99,   99,  115, 1066,  115,  115,
+
+      115,  115,  139,  225,  225,  225,  128,  182,  115,  115,
+      128,  159,  159,  115,  176,  115,  176,  176,  115,  929,
+      141,  141,  115,  929,  153,  115,  162,  162,  162,  162,
+      230,  230,  159,  115,  141, 1065,  141,  141,  141,  141,
+      290,  115,  118,  118,  118,  118,  118,  118,  290,  118,
+      118,  118,  118,  118,  118,  118,  118, 1064,  118,  118,
+      163,  163,  163,  163,  118,  118,  118,  118,  155,  155,
+      169,  299,  169,  169,  169,  169,  244,  244,  142,  142,
+      867,  118,  155,  867,  155,  155,  155,  155,  177,  177,
+      177,  177,  263,  263,  142,  142,  142,  142,  178,  974,
+
+      178,  178,  265,  265,  299,  118,  118,  119,  119,  119,
+      119,  119,  119,  178,  119,  119,  119,  119,  119,  119,
+      119,  119,  142,  119,  119, 1063,  142,  424,  144,  119,
+      119,  119,  119,  232,  158,  144,  291,  232,  144,  156,
+      156,  158,  144,  291,  158,  974,  119,  179,  158,  179,
+      179,  232,  119,  144,  854,  156,  156,  156,  156,  158,
+      424,  144,  186,  186,  186,  186, 1056,  158,  266,  266,
+      119,  119,  129,  129,  170,  170,  170,  170,  187,  187,
+      187,  187,  854,  156,  267,  267,  129,  156,  129,  129,
+      129,  129,  188,  188,  188,  188,  501,  172,  129,  129,
+
+      276,  276,  170,  129,  172,  129,  170,  172,  129,  309,
+      309,  172,  129, 1051,  247,  129,  189,  189,  189,  189,
+     1050,  247,  172,  129,  196,  196,  196,  196,  247,  501,
+      172,  129,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  507,  132,  132,
+      269,  251,  269,  269,  132,  132,  132,  132,  251,  197,
+      925,  197,  197,  197,  197,  251,  200,  200,  200,  200,
+      211,  132,  197, 1047,  211,  253,  197,  200,  211,  223,
+      507,  223,  253,  925,  223,  223,  223,  223,  197,  253,
+      312,  312,  312,  200,  977,  132,  132,  133,  133,  133,
 
       133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  920,  133,  133,  262,  496,  262,  262,  133,  133,
-      133,  133,  221,  221,  221,  221,  289, 1035,  319,  262,
-      319,  319,  249,  221,  920,  133,  307,  307,  307,  249,
-      250,  133,  249,  249,  249,  249,  249,  250,  496,  221,
-      252,  254,  339,  339,  250, 1034,  253,  252,  254,  133,
-      133,  143,  143,  253,  252,  254,  705,  255,  921,  257,
-      253,  332,  332,  332,  255,  143,  257,  143,  143,  143,
-      143,  255,  338,  257,  338,  338,  254,  143,  143, 1033,
-      250,  921,  143,  705,  143,  341,  341,  143,  253,  253,
-
-      252,  143,  256,  502,  143,  276,  276,  276,  276,  256,
-      434,  257,  143,  344,  344,  434,  256,  255,  345,  345,
-      143,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  502,  146,  146,  278,
-      278,  278,  278,  146,  146,  146,  146,  346,  346, 1032,
-      256,  280,  280,  280,  280,  280,  346, 1013,  288, 1013,
-      146,  288,  288,  288,  288,  288,  290,  290,  290,  290,
-      291,  291,  291,  291,  298,  298,  298,  298,  323,  323,
-      323,  323,  351,  351,  146,  146,  147,  147,  147,  147,
+      133,  133,  977,  133,  133,  268,  268,  253,  253,  133,
+      133,  133,  133,  221,  221,  221,  221,  272,  334,  334,
+      294,  272, 1046,  249,  221,  272,  133,  294,  344,  344,
+      249,  250,  133,  249,  249,  249,  249,  249,  250,  314,
+      221,  252,  254,  871,  314,  250,  871,  255,  252,  254,
+      133,  133,  143,  143,  255,  252,  254, 1044,  256,  339,
+      257,  255,  268,  294,  339,  256,  143,  257,  143,  143,
+      143,  143,  256,  280,  257,  280,  280,  254,  143,  143,
+      859,  250,  859,  143,  262,  143,  262,  262,  143,  346,
+
+      346,  252,  143,  349,  349,  143, 1043,  255,  318,  262,
+      318,  318,  257,  143,  350,  350,  256,  281,  281,  281,
+      281,  143,  146,  146,  146,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  146, 1042,  146,  146,
+      283,  283,  283,  283,  146,  146,  146,  146,  285,  285,
+      285,  285,  285,  293,  361,  361,  293,  293,  293,  293,
+      293,  146,  295,  295,  295,  295,  296,  296,  296,  296,
+      303,  303,  303,  303,  310,  324,  310,  324,  324,  310,
+      310,  310,  310,  370,  370,  146,  146,  147,  147,  147,
       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
 
-      147,  866,  147,  147,  866,  347,  347,  918,  147,  147,
-      147,  147,  918,  299,  347,  299,  299,  299,  299,  352,
-      352,  300,  300,  300,  300,  147,  299,  356,  356,  351,
-      299,  147,  300,  303,  303,  303,  303,  354,  354,  342,
-      342,  850,  299,  342,  303,  365,  365, 1030,  300,  147,
-      147,  157,  157,  354,  354,  925,  305,  970,  305,  925,
-      303,  305,  305,  305,  305,  157,  352,  157,  157,  157,
-      157,  850,  325,  325,  325,  325,  342,  157,  157,  367,
-      367, 1029,  157,  325,  157,  370,  370,  157,  371,  371,
-      330,  157,  330,  536,  157,  330,  330,  330,  330,  325,
-
-      343,  343,  157,  970,  343,  363,  363,  363,  363,  976,
-      157,  160,  160,  160,  160,  160,  160,  160,  160,  160,
-      160,  160,  160,  160,  160,  160,  536,  160,  160,  364,
-      364,  364,  364,  160,  160,  160,  160,  343,  317,  538,
-      317,  317,  317,  317,  324, 1028,  324,  324,  324,  324,
-      160,  317,  348,  348,  976,  317, 1026,  324,  608,  368,
-      368,  324,  926,  368,  382,  382,  926,  317,  348,  348,
-      348,  348,  538,  324,  160,  160,  161,  161,  161,  161,
+      147,  147, 1040,  147,  147,  328,  328,  328,  328,  147,
+      147,  147,  147, 1018,  304, 1018,  304,  304,  304,  304,
+      372,  372,  305,  305,  305,  305,  147,  304,  337,  337,
+      337,  304,  147,  305,  308,  308,  308,  308,  326,  351,
+      351,  439,  326,  304, 1039,  308,  439,  326,  351,  305,
+      147,  147,  157,  157,  343,  709,  343,  343,  352,  352,
+      322,  308,  322,  322,  322,  322,  157,  352,  157,  157,
+      157,  157, 1038,  322,  375,  375,  549,  322,  157,  157,
+      356,  356,  709,  157, 1037,  157,  357,  357,  157,  322,
+      930,  335,  157,  335,  930,  157,  335,  335,  335,  335,
+
+      549,  347,  347,  157,  549,  347,  368,  368,  368,  368,
+     1035,  157,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  356,  160,  160,
+      376,  376,  926,  357,  160,  160,  160,  160,  347,  329,
+      710,  329,  329,  329,  329,  923,  330,  330,  330,  330,
+      923,  160,  329,  353,  353,  926,  329,  330,  348,  348,
+      387,  387,  348,  369,  369,  369,  369,  710,  329,  353,
+      353,  353,  353,  330, 1034,  160,  160,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
-      161,  608,  161,  161,  357,  357,  368,  977,  161,  161,
+      161,  161, 1033,  161,  161,  348,  359,  359,  794,  161,
 
-      161,  161,  328,  328,  328,  328,  350,  350,  372,  372,
-      357,  357,  357,  328,  927,  161,  972,  372,  927,  355,
-      355,  161,  350,  350,  350,  350,  610,  369,  369,  328,
-      355,  369,  355,  350,  972,  355,  355,  355,  355,  161,
-      161,  171,  977,  171,  171,  171,  171,  359,  359,  350,
-      919,  359,  662,  171,  171,  919,  359, 1018,  171,  610,
-      171,  377,  377,  171,  369,  373,  373,  171,  378,  378,
-      171,  385,  385, 1016,  373,  385,  391,  391,  171,  973,
-      385,  389,  389,  389,  389,  662,  171,  174,  174, 1014,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  922,  174,  174,  353,  353,  922,  377,  174,
-      174,  174,  174,  380,  380,  378,  667,  374,  374,  393,
-      393,  353,  353,  353,  353,  973,  174,  376,  376,  380,
-      380, 1012,  353,  374,  374,  374,  374,  390,  390,  390,
-      390,  396,  396,  376,  376,  376,  376, 1011,  353,  667,
-      174,  174,  175,  175,  376,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  974,  175,  175,
-      376,  379,  379, 1010,  175,  175,  175,  175,  397,  397,
-      408,  408, 1009,  381,  381,  403,  403,  379,  379,  379,
-      379,  175,  383,  383,  381, 1007,  381,  175,  379,  381,
-
-      381,  381,  381,  398,  398,  429,  429,  928,  383,  383,
-      383,  928,  398,  974,  379,  175,  175,  308,  308,  308,
-      308, 1006,  399,  399,  472,  472,  308,  308,  308,  394,
-      394,  399,  403,  394,  690,  395,  395,  404,  404,  395,
-      308,  308,  308,  308,  308,  308,  310,  310, 1005,  310,
-      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
-      310, 1004,  310,  310,  400,  400,  394,  690,  310,  310,
-      310,  310,  395,  406,  406,  407,  407,  432,  432,  432,
-      400,  400,  400,  400,  404,  310,  407, 1003,  407,  406,
-      406,  407,  407,  407,  407,  411,  411,  531,  531,  411,
-
-      415,  415,  415,  415,  411,  416,  416,  416,  416,  310,
-      310,  311,  311, 1002,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  312,  312, 1001,  312,
-      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
-      312,  923,  312,  312,  402,  402,  923,  481,  312,  312,
-
-      312,  312,  409,  409,  998,  481,  405,  405,  481,  978,
-      402,  402,  402,  402,  438,  312,  438,  438,  409,  409,
-      409,  402,  405,  405,  405,  405,  423,  423,  423,  423,
-      475,  475,  475,  405,  312,  549,  549,  402,  997,  312,
-      312,  333,  333,  333,  333,  439,  996,  439,  439,  405,
-      333,  333,  333,  430,  978,  430,  603,  603,  430,  430,
-      430,  430,  678,  678,  333,  333,  333,  333,  333,  333,
-      335,  335,  335,  335,  335,  335,  995,  335,  335,  335,
-      335,  335,  335,  335,  335,  967,  335,  335,  440,  440,
-      440,  440,  335,  335,  335,  335,  967,  424,  993,  424,
-
-      424,  424,  424,  967,  425,  425,  425,  425,  991,  335,
-      424,  534,  534,  534,  424,  425,  441,  441,  441,  441,
-      442,  442,  442,  442,  701,  701,  424,  443,  443,  443,
-      443,  425,  990,  335,  335,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-
-      337,  337,  337,  337,  337,  337,  989,  337,  337,  337,
-      337,  337,  337,  337,  337,  988,  337,  337,  428,  428,
-      428,  428,  337,  337,  337,  337,  444,  544,  444,  428,
-      987,  444,  444,  444,  444,  471,  471,  471,  471,  337,
-      473,  473,  473,  473,  986,  428,  471,  474,  474,  474,
-      474,  544,  985,  504,  505,  544,  694, 1015,  337, 1015,
-      504,  505,  471,  337,  337,  349,  349,  504,  505,  558,
-      558,  506,  984,  507,  532,  532,  532,  532,  506,  349,
-      507,  349,  349,  349,  349,  506,  508,  507,  509,  694,
-      511,  510,  349,  508,  983,  509,  349,  511,  510,  505,
-
-      508,  962,  509,  554,  511,  510,  512,  554,  349,  358,
-      358,  526,  554,  512,  774,  507,  870,  558,  526,  870,
-      512,  533,  533,  533,  533,  358,  358,  358,  358,  510,
-     1017,  511, 1017,  510,  358,  358,  358,  519,  519,  519,
-      519,  519,  526,  512,  572,  572,  526,  774,  358,  358,
-      358,  358,  358,  358,  360,  360,  360,  360,  360,  360,
-      360,  360,  360,  360,  360,  360,  360,  360,  360,  805,
-      360,  360,  530,  530,  530,  530,  360,  360,  360,  360,
-      527,  960,  527,  530,  805,  527,  527,  527,  527,  545,
-      805,  545,  572,  360,  545,  545,  545,  545,  959,  530,
-
-      550,  550,  550,  550,  551,  551,  551,  551,  552,  552,
-      552,  604,  604,  604,  604,  722,  722,  360,  360,  361,
-      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
-      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
-      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
-      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
-      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
-      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
-      361,  361,  361,  361,  362,  362,  362,  362,  362,  362,
-      362,  362,  362,  362,  362,  362,  362,  362,  362,  958,
-
-      362,  362,  548,  548,  548,  548,  362,  362,  362,  362,
-      559,  559,  957,  548,  557,  557,  566,  566,  560,  560,
-      566,  718,  718,  362,  929,  557,  955,  557,  929,  548,
-      557,  557,  557,  557,  560,  560,  560,  560,  561,  561,
-      562,  562,  362,  567,  567,  560,  778,  362,  362,  375,
-      375,  954,  567,  566,  561,  561,  562,  562,  562,  562,
-      559,  560,  953,  375,  718,  375,  375,  375,  375,  563,
-      563,  568,  568,  564,  564,  568,  375,  573,  573,  778,
-      375,  575,  575,  576,  576,  563,  563,  563,  563,  564,
-      564,  564,  375,  384,  384,  581,  581,  575,  575,  576,
-
-      576,  576,  576,  930,  581,  577,  577,  930,  568,  384,
-      384,  384,  384,  578,  578,  952,  586,  586,  384,  384,
-      384,  577,  577,  577,  577,  719,  719,  573,  951,  578,
-      578,  578,  384,  384,  384,  384,  384,  384,  386,  386,
-      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
-      386,  386,  386,  950,  386,  386,  571,  571,  723,  723,
-      386,  386,  386,  386,  586,  585,  585,  571,  719,  571,
-      589,  589,  571,  571,  571,  571,  585,  386,  585,  590,
-      590,  585,  585,  585,  585,  949,  589,  589,  728,  728,
-      595,  595,  606,  606,  606,  590,  590,  590,  590,  595,
-
-      948,  386,  386,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  388,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  388,  388,  968,  388,  388,  574,  574,  587,  587,
-      388,  388,  388,  388,  968,  602,  602,  602,  602,  729,
-
-      729,  968,  574,  574,  574,  574,  602,  388,  580,  580,
-      724,  724,  580,  574,  685,  946,  582,  582,  945,  724,
-      582,  685,  602,  672,  594,  594,  388,  944,  594,  574,
-      672,  388,  388,  401,  401,  725,  725,  672,  587,  588,
-      588,  943,  596,  596,  725,  580,  596,  401,  685,  401,
-      401,  401,  401,  582,  942,  588,  588,  588,  588,  941,
-      401,  594,  740,  740,  401,  710,  588,  591,  591,  710,
-      940,  592,  592, 1025,  710, 1025,  401,  410,  410,  596,
-      741,  741,  588,  591,  591,  591,  591,  592,  592,  592,
-      746,  746,  979,  410,  410,  410,  410,  605,  605,  605,
-
-      605,  673,  410,  410,  410,  599,  939,  599,  673,  938,
-      599,  599,  599,  599,  937,  673,  410,  410,  410,  410,
-      410,  410,  412,  412,  412,  412,  412,  412,  412,  412,
-      412,  412,  412,  412,  412,  412,  412,  979,  412,  412,
-      613,  613,  613,  613,  412,  412,  412,  412,  614,  614,
-      614,  614,  686,  686,  686,  686,  687,  687,  687,  687,
-      936,  412,  706,  706,  706,  706,  707,  707,  707,  707,
-      731,  731,  742,  742,  731,  743,  743,  747,  747,  749,
-      749,  742,  935,  749,  743,  412,  412,  413,  413,  413,
-      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
-
-      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
-      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
-      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
-      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
-      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
-      413,  413,  414,  414,  414,  414,  414,  414,  414,  414,
-      414,  414,  414,  414,  414,  414,  414,  934,  414,  414,
-      932,  674,  675,  910,  414,  414,  414,  414,  674,  675,
-      676,  677,  716,  716,  909,  674,  675,  676,  677,  717,
-      717,  414,  720,  720,  676,  677,  720,  840,  716,  716,
-
-      716,  716,  758,  758,  840,  717,  717,  717,  717,  907,
-      414,  906,  674,  675,  904,  414,  414,  433,  433,  433,
-      433,  736,  736,  903,  676,  902,  433,  433,  433,  720,
-      677,  899,  737,  737,  840,  721,  721,  759,  759,  721,
-      433,  433,  433,  433,  433,  433,  435,  435,  789,  435,
-      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
-      435,  789,  435,  435,  736,  734,  734,  789,  435,  435,
-      435,  435,  721,  735,  735,  737,  726,  726,  752,  752,
-      726,  734,  734,  734,  734,  435,  753,  753,  898,  735,
-      735,  735,  735,  897,  752,  752,  752,  752,  760,  760,
-
-      764,  764,  753,  753,  753,  753,  896,  760,  895,  435,
-      435,  436,  436,  726,  436,  436,  436,  436,  436,  436,
-      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
-      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
-      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
-      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
-      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
-      436,  436,  436,  436,  436,  436,  437,  437,  893,  437,
-      437,  437,  437,  437,  437,  437,  437,  437,  437,  437,
-      437,  980,  437,  437,  754,  754,  761,  761,  437,  437,
-
-      437,  437,  892,  755,  755,  761,  765,  765,  727,  727,
-      738,  738,  727,  891,  738,  437,  739,  739,  744,  744,
-      739,  890,  744,  745,  745,  756,  756,  745,  889,  756,
-      888,  767,  767,  886,  437,  767,  980,  754,  885,  437,
-      437,  535,  535,  535,  535,  727,  755,  738,  855,  855,
-      535,  535,  535,  739,  981,  744,  770,  770,  770,  770,
-      745,  884,  756,  883,  535,  535,  535,  535,  535,  535,
-      539,  539,  881,  539,  539,  539,  539,  539,  539,  539,
-      539,  539,  539,  539,  539,  982,  539,  539,  771,  771,
-      771,  771,  539,  539,  539,  539,  839,  856,  856,  981,
-
-      757,  757,  880,  839,  757,  857,  857,  859,  859,  539,
-      860,  860,  861,  861,  863,  863,  864,  864,  865,  865,
-      869,  869,  915,  931,  915,  915,  966,  931,  966,  966,
-      982,  839,  879,  539,  539,  540,  540,  757,  540,  540,
-      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
-      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
-      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
-      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
-      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
-      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
-
-      553,  553,  553,  553, 1019, 1019, 1019,  832, 1019,  553,
-      553,  553,  762,  762,  832,  878,  762,  877,  763,  763,
-      876,  832,  763,  553,  553,  553,  553,  553,  553,  555,
-      555,  555,  555,  555,  555,  875,  555,  555,  555,  555,
-      555,  555,  555,  555,  874,  555,  555, 1054, 1054,  762,
-      831,  555,  555,  555,  555,  763,  832,  831,  829,  913,
-      914,  872,  933,  871,  831,  829,  913,  914,  555, 1020,
-     1020, 1020,  829,  913,  914,  933, 1021, 1021, 1021,  846,
-     1021,  933, 1022, 1022, 1022,  837, 1023, 1023, 1023,  831,
-     1023,  834,  555,  555,  556,  556,  556,  556,  556,  556,
-
-      829,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  565,
-      565,  916,  917,  964, 1024, 1024, 1024,  964,  916,  917,
-     1055, 1055, 1056, 1056,  964,  565,  565,  565,  565,  965,
-      830,  964,  911,  965,  565,  565,  565,  830,  828,  911,
-      965,  916,  917,  827,  830,  826,  911,  965,  565,  565,
-
-      565,  565,  565,  565,  569,  569,  569,  569,  569,  569,
-      569,  569,  569,  569,  569,  569,  569,  569,  569,  911,
-      569,  569,  825,  912,  830,  824,  569,  569,  569,  569,
-      912,  823,  822,  821,  820,  819,  818,  912,  817,  814,
-      813,  811,  809,  569,  807,  806,  804,  803,  802,  801,
-      800,  799,  798,  797,  796,  794,  793,  792,  791,  788,
-      912,  786,  785,  784,  782,  777,  773,  569,  569,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  579,  579,  772,  769,  751,  733,
-      715,  713,  709,  708,  703,  702,  700,  698,  693,  689,
-      579,  579,  579,  579,  688,  683,  682,  681,  680,  579,
-      579,  579,  671,  670,  665,  661,  660,  659,  658,  657,
-      656,  654,  653,  579,  579,  579,  579,  579,  579,  583,
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
-      583,  583,  583,  583,  652,  583,  583,  651,  650,  649,
-
-      647,  583,  583,  583,  583,  646,  645,  644,  643,  642,
-      641,  640,  639,  637,  636,  635,  634,  633,  583,  632,
-      631,  630,  629,  628,  627,  625,  624,  623,  622,  621,
-      620,  619,  618,  617,  616,  609,  601,  600,  547,  546,
-      543,  542,  583,  583,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  593,
-      593,  541,  537,  529,  528,  525,  524,  523,  522,  517,
-      516,  515,  514,  513,  503,  593,  593,  593,  593,  500,
-      497,  495,  494,  493,  593,  593,  593,  492,  491,  490,
-      489,  488,  487,  486,  485,  484,  483,  482,  593,  593,
-      593,  593,  593,  593,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  480,
-      597,  597,  479,  478,  477,  469,  597,  597,  597,  597,
-      468,  467,  466,  465,  464,  463,  462,  461,  460,  459,
-      457,  456,  454,  597,  453,  452,  451,  450,  449,  448,
-
-      447,  446,  427,  426,  422,  327,  326,  316,  315,  314,
-      302,  301,  297,  287,  284,  283,  279,  597,  597,  598,
-      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
-      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
-      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
-      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
-      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
-      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
-      598,  598,  598,  598,  607,  607,  607,  607,  273,  272,
-      270,  269,  268,  607,  607,  607,  266,  265,  263,  248,
-
-      246,  245,  238,  237,  235,  229,  228,  607,  607,  607,
-      607,  607,  607,  611,  611,  227,  611,  611,  611,  611,
-      611,  611,  611,  611,  611,  611,  611,  611,  219,  611,
-      611,  218,  217,  215,  210,  611,  611,  611,  611,  208,
-      207,  205,  204,  203,  193,  173,  168,  166,  117,  107,
-      102,   97,  611,   92,   90,   87,   81,   76,   69,   65,
-       34,   32,   28,   23,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  611,  611,  612,  612,
-        0,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612,  612,  612,  697,  697,    0,  697,  697,  697,  697,
-      697,  697,  697,  697,  697,  697,  697,  697,    0,  697,
-      697,    0,    0,    0,    0,  697,  697,  697,  697,    0,
+      161,  161,  161,  333,  333,  333,  333,  355,  355,  377,
+      377,  794,  359,  359,  333,  931,  161,  794,  377,  931,
+      360,  360,  161,  355,  355,  355,  355,  541,  373,  373,
+      333,  360,  373,  360,  355, 1031,  360,  360,  360,  360,
+      161,  161,  171,  543,  171,  171,  171,  171,  374,  374,
+      355, 1023,  374,  924,  171,  171,  362,  362,  924,  171,
+      541,  171,  382,  382,  171,  373,  364,  364,  171,  981,
+      364,  171,  362,  362,  362,  364,  543,  378,  378,  171,
+      396,  396, 1021,  383,  383,  374,  378,  171,  174,  174,
+     1019,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174,  174,  174, 1017,  174,  174,  358,  358,  855,  382,
+      174,  174,  174,  174,  981,  385,  385,  613,  379,  379,
+      398,  398,  358,  358,  358,  358, 1016,  174,  381,  381,
+      383,  385,  385,  358,  379,  379,  379,  379,  855,  390,
+      390,  401,  401,  390,  381,  381,  381,  381,  390,  358,
+      613,  174,  174,  175,  175,  381,  175,  175,  175,  175,
+      175,  175,  175,  175,  175,  175,  175,  175, 1015,  175,
+      175,  381,  384,  384, 1014,  175,  175,  175,  175,  394,
+      394,  394,  394, 1012,  386,  386,  402,  402,  384,  384,
+      384,  384,  175,  388,  388,  386, 1011,  386,  175,  384,
+
+      386,  386,  386,  386,  395,  395,  395,  395,  932,  388,
+      388,  388,  932,  403,  403,  384,  175,  175,  313,  313,
+      313,  313,  403,  404,  404,  413,  413,  313,  313,  313,
+      399,  399,  404, 1010,  399,  615,  400,  400,  408,  408,
+      400,  313,  313,  313,  313,  313,  313,  315,  315, 1009,
+      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315, 1008,  315,  315,  405,  405,  399,  615,  315,
+      315,  315,  315,  400,  411,  411,  412,  412,  434,  434,
+     1007,  405,  405,  405,  405,  408,  315,  412, 1006,  412,
+      411,  411,  412,  412,  412,  412,  416,  416,  477,  477,
+
+      416,  420,  420,  420,  420,  416,  421,  421,  421,  421,
+      315,  315,  316,  316, 1003,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  317,  317, 1002,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  927,  317,  317,  407,  407,  927,  486,  317,
+
+      317,  317,  317,  409,  409,  928,  486,  414,  414,  486,
+      928,  407,  407,  407,  407, 1001,  317,  428,  428,  428,
+      428, 1000,  407,  414,  414,  414,  536,  536,  430,  430,
+      430,  430,  437,  437,  437,  317,  518,  518,  407,  430,
+      317,  317,  338,  338,  338,  338,  443,  998,  443,  443,
+      409,  338,  338,  338,  435,  430,  435,  554,  554,  435,
+      435,  435,  435,  608,  608,  338,  338,  338,  338,  338,
+      338,  340,  340,  340,  340,  340,  340,  996,  340,  340,
+      340,  340,  340,  340,  340,  340,  972,  340,  340,  410,
+      410,  995,  518,  340,  340,  340,  340,  972,  429,  994,
+
+      429,  429,  429,  429,  972,  410,  410,  410,  410,  993,
+      340,  429,  480,  480,  480,  429,  410,  444,  992,  444,
+      444,  445,  445,  445,  445,  683,  683,  429,  446,  446,
+      446,  446,  410,  991,  340,  340,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  342,  342,  342,  342,  342,  342,  990,  342,  342,
+      342,  342,  342,  342,  342,  342,  989,  342,  342,  433,
+      433,  433,  433,  342,  342,  342,  342,  539,  539,  539,
+      433,  447,  447,  447,  447,  448,  448,  448,  448,  933,
+      342,  934,  449,  933,  449,  934,  433,  449,  449,  449,
+      449,  476,  476,  476,  476,  478,  478,  478,  478,  342,
+      706,  706,  476,  988,  342,  342,  354,  354,  479,  479,
+      479,  479,  509,  967,  510,  557,  557,  557,  476,  509,
+      354,  510,  354,  354,  354,  354,  509,  511,  510,  512,
+      667,  513,  514,  354,  511,  844,  512,  354,  513,  514,
+
+      515,  511,  844,  512,  965,  513,  514,  515,  517,  354,
+      363,  363,  559,  531,  515,  517,  559,  566,  566,  510,
+      531,  559,  517,  667,  564,  564,  363,  363,  363,  363,
+      844,  512,  516,  566,  566,  363,  363,  363,  515,  516,
+      727,  727,  515,  672,  531,  517,  516,  975,  531,  363,
+      363,  363,  363,  363,  363,  365,  365,  365,  365,  365,
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      964,  365,  365,  516,  564,  963,  672,  365,  365,  365,
+      365,  524,  524,  524,  524,  524,  537,  537,  537,  537,
+      532,  962,  532,  975,  365,  532,  532,  532,  532,  538,
+
+      538,  538,  538,  550,  960,  550,  728,  728,  550,  550,
+      550,  550,  555,  555,  555,  555,  733,  733,  365,  365,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  367,  367,  367,  367,  367,
+      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
+
+      695,  367,  367,  535,  535,  535,  535,  367,  367,  367,
+      367,  563,  563,  959,  535,  553,  553,  553,  553,  556,
+      556,  556,  556,  935,  367,  699,  553,  935,  562,  562,
+      535,  572,  572,  695,  578,  578,  565,  565,  958,  562,
+      572,  562,  553,  367,  562,  562,  562,  562,  367,  367,
+      380,  380,  565,  565,  565,  565,  567,  567,  699,  563,
+      611,  611,  611,  565,  380,  957,  380,  380,  380,  380,
+      568,  568,  567,  567,  567,  567,  936,  380,  677,  565,
+      936,  380,  569,  569,  578,  677,  568,  568,  568,  568,
+      576,  576,  677,  380,  389,  389,  586,  586,  569,  569,
+
+      569,  576, 1020,  576, 1020,  586,  576,  576,  576,  576,
+      389,  389,  389,  389,  580,  580,  592,  592,  956,  389,
+      389,  389,  571,  571,  577,  577,  571,  779,  573,  573,
+      580,  580,  573,  389,  389,  389,  389,  389,  389,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  982,  391,  391,  579,  579,  571,
+      779,  391,  391,  391,  391,  573,  592,  734,  734,  581,
+      581,  955,  577,  579,  579,  579,  579,  954,  391,  582,
+      582,  600,  600,  953,  579,  581,  581,  581,  581,  951,
+      600,  609,  609,  609,  609,  582,  582,  582,  582,  982,
+
+      579,  950,  391,  391,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  393,
+      393,  393,  393,  393,  393,  393,  393,  393,  393,  393,
+      393,  393,  393,  393,  949,  393,  393,  583,  583,  591,
+      591,  393,  393,  393,  393,  983,  736,  736,  594,  594,
+
+      736,  595,  595,  583,  583,  583,  585,  585,  393,  783,
+      585,  948,  587,  587,  594,  594,  587,  595,  595,  595,
+      595,  599,  599,  689,  678,  599,  947,  393,  590,  590,
+      689,  678,  393,  393,  406,  406,  946,  591,  678,  590,
+      983,  590,  783,  585,  590,  590,  590,  590,  406,  587,
+      406,  406,  406,  406,  945,  593,  593,  689,  599,  944,
+      715,  406,  601,  601,  715,  406,  601,  596,  596,  715,
+      943,  593,  593,  593,  593,  597,  597,  406,  415,  415,
+      745,  745,  593,  596,  596,  596,  596,  610,  610,  610,
+      610,  597,  597,  597,  415,  415,  415,  415,  593,  601,
+
+      746,  746,  682,  415,  415,  415,  604,  875,  604,  682,
+      875,  604,  604,  604,  604,  978,  682,  415,  415,  415,
+      415,  415,  415,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  942,  417,
+      417,  607,  607,  607,  607,  417,  417,  417,  417,  751,
+      751,  682,  607,  618,  618,  618,  618,  619,  619,  619,
+      619,  978,  417,  691,  691,  691,  691,  941,  607,  692,
+      692,  692,  692,  711,  711,  711,  711,  712,  712,  712,
+      712,  752,  752,  763,  763,  940,  417,  417,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419,  419,  419,  419,  419,  939,  419,
+      419,  937,  679,  680,  915,  419,  419,  419,  419,  679,
+      680,  681,  721,  721,  764,  764,  679,  680,  681,  690,
+      722,  722,  419,  723,  723,  681,  690,  914,  721,  721,
+
+      721,  721,  912,  729,  729,  911,  722,  722,  722,  722,
+      909,  419,  729,  679,  680,  908,  419,  419,  438,  438,
+      438,  438, 1022,  690, 1022,  681,  907,  438,  438,  438,
+      724,  724,  904,  754,  754,  903,  723,  754,  902,  741,
+      741,  438,  438,  438,  438,  438,  438,  440,  440,  901,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
+      440,  440,  984,  440,  440,  730,  730,  769,  769,  440,
+      440,  440,  440,  724,  730,  739,  739,  725,  725,  740,
+      740,  725,  741,  770,  770,  900,  440,  757,  757,  839,
+      839,  739,  739,  739,  739,  740,  740,  740,  740,  747,
+
+      747,  860,  860,  757,  757,  757,  757,  984,  747,  898,
+      440,  440,  441,  441,  725,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  442,  442,  897,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  985,  442,  442,  742,  742,  748,  748,  442,
+
+      442,  442,  442,  979,  759,  759,  748,  760,  760,  726,
+      726,  731,  731,  726,  896,  731,  442,  732,  732,  743,
+      743,  732,  895,  743,  744,  744,  749,  749,  744, 1030,
+      749, 1030,  772,  772,  894,  442,  772,  985,  742,  893,
+      442,  442,  540,  540,  540,  540,  726,  759,  731,  979,
+      760,  540,  540,  540,  732,  845,  743,  775,  775,  775,
+      775,  744,  845,  749,  891,  540,  540,  540,  540,  540,
+      540,  544,  544,  890,  544,  544,  544,  544,  544,  544,
+      544,  544,  544,  544,  544,  544,  889,  544,  544,  888,
+      758,  758,  845,  544,  544,  544,  544,  776,  776,  776,
+
+      776,  750,  750,  765,  765,  750,  758,  758,  758,  758,
+      544,  886,  765,  766,  766,  861,  861,  862,  862,  864,
+      864,  885,  766,  865,  865,  866,  866,  868,  868,  869,
+      869,  870,  870,  884,  544,  544,  545,  545,  750,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+
+      545,  558,  558,  558,  558,  874,  874,  883,  837,  882,
+      558,  558,  558,  761,  761,  837,  881,  761,  880,  762,
+      762,  879,  837,  762,  558,  558,  558,  558,  558,  558,
+      560,  560,  560,  560,  560,  560,  877,  560,  560,  560,
+      560,  560,  560,  560,  560,  986,  560,  560, 1059, 1059,
+      761,  921,  560,  560,  560,  560,  762,  837,  921,  918,
+      919,  973,  876,  938,  767,  767,  918,  919,  767,  560,
+     1060, 1060,  973,  918,  919,  920,  938,  920,  920,  973,
+      851,  921,  938,  971,  842,  971,  971, 1024, 1024, 1024,
+      986, 1024,  833,  560,  560,  561,  561,  561,  561,  561,
+
+      561,  767,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      570,  570,  969,  922,  970,  832,  969,  831,  970,  830,
+      922, 1061, 1061,  969,  829,  970,  570,  570,  570,  570,
+      969,  828,  970,  916,  834,  570,  570,  570,  768,  768,
+      916,  834,  768,  922,  987,  827,  826,  916,  834,  570,
+
+      570,  570,  570,  570,  570,  574,  574,  574,  574,  574,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
+      916,  574,  574,  825,  836,  768,  834,  574,  574,  574,
+      574,  836, 1025, 1025, 1025, 1027, 1027, 1027,  836,  987,
+      824, 1026, 1026, 1026,  574, 1026, 1028, 1028, 1028,  823,
+     1028, 1029, 1029, 1029,  822,  819,  818,  816,  814,  812,
+      811,  809,  808,  836,  807,  806,  805,  804,  574,  574,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  584,  584,  803,  802,  801,
+      799,  798,  797,  796,  793,  791,  790,  789,  787,  782,
+      778,  584,  584,  584,  584,  777,  835,  774,  917,  756,
+      584,  584,  584,  835,  738,  917,  720,  718,  714,  713,
+      835,  708,  917,  707,  584,  584,  584,  584,  584,  584,
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  917,  588,  588,  705,  703,
+
+      835,  698,  588,  588,  588,  588,  694,  693,  688,  687,
+      686,  685,  676,  675,  670,  666,  665,  664,  663,  588,
+      662,  661,  659,  658,  657,  656,  655,  654,  652,  651,
+      650,  649,  648,  647,  646,  645,  644,  642,  641,  640,
+      639,  638,  637,  588,  588,  589,  589,  589,  589,  589,
+      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
+      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
+      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
+      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
+      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
+
+      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
+      598,  598,  636,  635,  634,  633,  632,  630,  629,  628,
+      627,  626,  625,  624,  623,  622,  598,  598,  598,  598,
+      621,  614,  606,  605,  552,  598,  598,  598,  551,  548,
+      547,  546,  542,  534,  533,  530,  529,  528,  527,  598,
+      598,  598,  598,  598,  598,  602,  602,  602,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
+      522,  602,  602,  521,  520,  519,  508,  602,  602,  602,
+      602,  505,  502,  500,  499,  498,  497,  496,  495,  494,
+      493,  492,  491,  490,  602,  489,  488,  487,  485,  484,
+
+      483,  482,  474,  473,  472,  471,  470,  469,  468,  467,
+      466,  465,  464,  462,  461,  459,  458,  457,  602,  602,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  612,  612,  612,  612,  456,
+      455,  454,  453,  452,  612,  612,  612,  451,  432,  431,
+
+      427,  332,  331,  321,  320,  319,  307,  306,  612,  612,
+      612,  612,  612,  612,  616,  616,  302,  616,  616,  616,
+      616,  616,  616,  616,  616,  616,  616,  616,  616,  292,
+      616,  616,  289,  288,  284,  278,  616,  616,  616,  616,
+      277,  275,  274,  273,  271,  270,  248,  246,  245,  238,
+      237,  235,  229,  616,  228,  227,  219,  218,  217,  215,
+      210,  208,  207,  205,  204,  203,  193,  173,  168,  166,
+      117,  107,  102,   97,   92,   90,   81,  616,  616,  617,
+      617,   76,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  702,  702,   65,  702,  702,  702,
+      702,  702,  702,  702,  702,  702,  702,  702,  702,   34,
+      702,  702,   32,   28,   23,    0,  702,  702,  702,  702,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  697,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  702,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,  697,  697,  699,  699,
-        0,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-      699,  699,  699,  712,  712,  712,  712,  712,  712,    0,
-      712,  712,  712,  712,  712,  712,  712,  712,    0,  712,
-      712,    0,    0,    0,    0,  712,  712,  712,  712,    0,
+        0,    0,    0,    0,    0,    0,    0,  702,  702,  704,
+      704,    0,  704,  704,  704,  704,  704,  704,  704,  704,
+      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
+      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
+      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
+      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
+      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
+      704,  704,  704,  704,  717,  717,  717,  717,  717,  717,
+        0,  717,  717,  717,  717,  717,  717,  717,  717,    0,
+      717,  717,    0,    0,    0,    0,  717,  717,  717,  717,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  712,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  717,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  712,  712,  714,  714,
-      714,  714,  714,  714,    0,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-
-      714,  714,  714,  730,  730,  730,  730,  730,  730,  730,
-      730,  730,  730,  730,  730,  730,  730,  730,    0,  730,
-      730,    0,    0,    0,    0,  730,  730,  730,  730,    0,
+        0,    0,    0,    0,    0,    0,    0,  717,  717,  719,
+      719,  719,  719,  719,  719,    0,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+
+      719,  719,  719,  719,  735,  735,  735,  735,  735,  735,
+      735,  735,  735,  735,  735,  735,  735,  735,  735,    0,
+      735,  735,    0,    0,    0,    0,  735,  735,  735,  735,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  730,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  735,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  730,  730,  732,  732,
-      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
-      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
-      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
-
-      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
-      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
-      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
-      732,  732,  732,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,    0,  748,
-      748,    0,    0,    0,    0,  748,  748,  748,  748,    0,
+        0,    0,    0,    0,    0,    0,    0,  735,  735,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  753,  753,  753,  753,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  753,  753,    0,
+      753,  753,    0,    0,    0,    0,  753,  753,  753,  753,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  748,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  753,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  748,  748,  750,  750,
+        0,    0,    0,    0,    0,    0,    0,  753,  753,  755,
 
-      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
-      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
-      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
-      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
-      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
-      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
-      750,  750,  750,  766,  766,  766,  766,  766,  766,  766,
-      766,  766,  766,  766,  766,  766,  766,  766,    0,  766,
-      766,    0,    0,    0,    0,  766,  766,  766,  766,    0,
+      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
+      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
+      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
+      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
+      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
+      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
+      755,  755,  755,  755,  771,  771,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  771,  771,  771,  771,    0,
+      771,  771,    0,    0,    0,    0,  771,  771,  771,  771,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,  766,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  771,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  766,  766,  768,  768,
-      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
-      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
-      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
-      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
-      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
-      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
-      768,  768,  768,  781,  781,    0,  781,  781,  781,  781,
+        0,    0,    0,    0,    0,    0,    0,  771,  771,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  786,  786,    0,  786,  786,  786,
 
-      781,  781,  781,  781,  781,  781,  781,  781,    0,  781,
-      781,    0,    0,    0,    0,  781,  781,  781,  781,    0,
+      786,  786,  786,  786,  786,  786,  786,  786,  786,    0,
+      786,  786,    0,    0,    0,    0,  786,  786,  786,  786,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  781,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  786,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  781,  781,  783,  783,
-        0,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-      783,  783,  783,  843,  843,    0,  843,  843,  843,  843,
-      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
-      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
-      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
-      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
-      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
-      843,  843,  843,  843,  843,  843,  843,  843,  853,  853,
-      853,  853,  853,  853,    0,  853,  853,  853,  853,  853,
-
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853, 1090,    0, 1090, 1090, 1090, 1090, 1090,
-     1090, 1090, 1090, 1090, 1091,    0,    0, 1091, 1091, 1092,
-        0, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
-     1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1094,
-     1094, 1094, 1095,    0, 1095,    0, 1095, 1095, 1095, 1095,
-
-     1096, 1096, 1096, 1096, 1096, 1096, 1096, 1097,    0, 1097,
-     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098,    0,
-     1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
-        0, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
-     1100,    0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
-     1100, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1102, 1102,
-        0, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
-     1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
-     1104, 1104,    0, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
-     1104, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
-
-     1105, 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+        0,    0,    0,    0,    0,    0,    0,  786,  786,  788,
+      788,    0,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  848,  848,    0,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  858,
+      858,  858,  858,  858,  858,    0,  858,  858,  858,  858,
+
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858, 1095,    0, 1095, 1095, 1095, 1095,
+     1095, 1095, 1095, 1095, 1095, 1096,    0,    0, 1096, 1096,
+     1097,    0, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
+     1097, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
+     1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+
+     1100, 1100, 1100, 1100, 1101,    0, 1101,    0, 1101, 1101,
+     1101, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
+        0, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+     1104,    0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
+     1104, 1105,    0, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+     1105, 1105, 1106,    0, 1106, 1106, 1106, 1106, 1106, 1106,
      1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
-     1107, 1107, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108,
-     1108, 1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109,
-     1109, 1109, 1109, 1109, 1109, 1109, 1110, 1110, 1110, 1110,
-     1110, 1110, 1110, 1110, 1110, 1110, 1110, 1111, 1111, 1111,
-     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112,
-     1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113,
-     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
-     1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
-
-     1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
-     1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
-     1116, 1116, 1116, 1117,    0, 1117, 1117, 1117, 1117, 1117,
-     1117, 1117, 1117, 1117, 1118,    0, 1118, 1118, 1118, 1118,
-     1118, 1118, 1118, 1118, 1118, 1119,    0, 1119, 1119, 1119,
-     1119, 1119, 1119, 1119, 1119, 1119, 1120,    0, 1120, 1120,
-     1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121,    0,    0,
-     1121, 1121, 1122,    0, 1122, 1122, 1122, 1122, 1122, 1122,
-     1122, 1122, 1122, 1123,    0,    0, 1123, 1123, 1123, 1124,
-        0,    0, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
-
-     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,    0,
-        0,    0,    0, 1127, 1127, 1127, 1127, 1128, 1128, 1128,
-     1128, 1128, 1128, 1129, 1129, 1129, 1129, 1130,    0, 1130,
-     1130, 1130, 1130, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
-     1132,    0, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
-     1132, 1133,    0, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
-     1133, 1133, 1134,    0, 1134, 1134, 1134, 1134, 1134, 1134,
-     1134, 1134, 1134, 1135,    0, 1135, 1135, 1135, 1135, 1135,
-     1135, 1135, 1135, 1135, 1136, 1136,    0, 1136, 1136, 1136,
-     1136, 1136, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 1137,
-
-     1137, 1137, 1137, 1137, 1137, 1137, 1138, 1138,    0, 1138,
-     1138, 1138, 1138, 1138, 1138, 1138, 1138, 1139, 1139, 1139,
-     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140,
-     1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1141,
-     1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
-     1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
-     1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
-     1143, 1143, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
-     1144, 1144, 1144, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
-     1145, 1145, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1146,
-
-     1146, 1146, 1146, 1146, 1146, 1147, 1147, 1147, 1147, 1147,
-     1147, 1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1148,
-     1148, 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 1149,
-     1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, 1150,
-     1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1151,
-        0, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-     1152,    0, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152,
-     1152, 1153,    0, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
-     1153, 1153, 1154,    0, 1154, 1154, 1154, 1154, 1154, 1154,
-     1154, 1154, 1154, 1155,    0,    0, 1155, 1155, 1156,    0,
-
-        0, 1156, 1156, 1156, 1157,    0,    0, 1157, 1158,    0,
-     1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1159,
-        0, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
-     1160,    0, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
-     1160, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1162, 1162,
-     1162, 1162, 1162, 1162, 1162, 1162, 1163, 1163, 1163, 1163,
-     1163, 1163, 1164,    0, 1164, 1164, 1164, 1164, 1165,    0,
-     1165, 1165, 1165, 1165, 1166, 1166, 1166, 1166, 1166, 1166,
-     1166, 1167,    0, 1167, 1167, 1167, 1167, 1167, 1167, 1167,
-     1167, 1167, 1168,    0, 1168, 1168, 1168, 1168, 1168, 1168,
-
-     1168, 1168, 1168, 1169,    0, 1169, 1169, 1169, 1169, 1169,
-     1169, 1169, 1169, 1169, 1170,    0, 1170, 1170, 1170, 1170,
-     1170, 1170, 1170, 1170, 1170, 1171,    0, 1171, 1171, 1171,
-     1171, 1171, 1171, 1171, 1171, 1171, 1172, 1172, 1172, 1172,
-     1172, 1172, 1172, 1173, 1173,    0, 1173, 1173, 1173, 1173,
-     1173, 1173, 1173, 1173, 1174, 1174, 1174, 1174, 1174, 1174,
-     1174, 1174, 1174, 1174, 1174, 1175, 1175,    0, 1175, 1175,
-     1175, 1175, 1175, 1175, 1175, 1175, 1176, 1176, 1176, 1176,
-     1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 1177, 1177,
-     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178,
-
+     1108, 1108,    0, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
+     1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+     1109, 1109, 1110, 1110,    0, 1110, 1110, 1110, 1110, 1110,
+
+     1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
+     1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112,
+     1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113,
+     1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114,
+     1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 1115, 1115,
+     1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116,
+     1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117,
+     1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
+     1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+     1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
+
+     1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
+     1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
+     1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, 1122, 1122,
+     1122, 1122, 1122, 1122, 1122, 1123,    0, 1123, 1123, 1123,
+     1123, 1123, 1123, 1123, 1123, 1123, 1124,    0, 1124, 1124,
+     1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125,    0, 1125,
+     1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126,    0,
+     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,
+        0,    0, 1127, 1127, 1128,    0, 1128, 1128, 1128, 1128,
+     1128, 1128, 1128, 1128, 1128, 1129,    0,    0, 1129, 1129,
+
+     1129, 1130,    0,    0, 1130, 1131, 1131, 1131, 1131, 1131,
+     1131, 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+     1133,    0,    0,    0,    0, 1133, 1133, 1133, 1133, 1134,
+     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
+     1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136, 1136, 1136,
+     1137,    0, 1137, 1137, 1137, 1137, 1138, 1138, 1138, 1138,
+     1138, 1138, 1138, 1139,    0, 1139, 1139, 1139, 1139, 1139,
+     1139, 1139, 1139, 1139, 1140,    0, 1140, 1140, 1140, 1140,
+     1140, 1140, 1140, 1140, 1140, 1141,    0, 1141, 1141, 1141,
+     1141, 1141, 1141, 1141, 1141, 1141, 1142,    0, 1142, 1142,
+
+     1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143,    0,
+     1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1144,
+     1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145,
+     1145,    0, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
+     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+     1146, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
+     1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+     1148, 1148, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1149, 1149, 1149, 1150, 1150, 1150, 1150, 1150, 1150,
+     1150, 1150, 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1151,
+
+     1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152,
+     1152, 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153,
+     1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154,
+     1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155,
+     1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
+     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+     1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+     1157, 1157, 1158,    0, 1158, 1158, 1158, 1158, 1158, 1158,
+     1158, 1158, 1158, 1159,    0, 1159, 1159, 1159, 1159, 1159,
+     1159, 1159, 1159, 1159, 1160,    0, 1160, 1160, 1160, 1160,
+
+     1160, 1160, 1160, 1160, 1160, 1161,    0, 1161, 1161, 1161,
+     1161, 1161, 1161, 1161, 1161, 1161, 1162,    0,    0, 1162,
+     1162, 1163,    0,    0, 1163, 1163, 1163, 1164,    0,    0,
+     1164, 1165,    0, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
+     1165, 1165, 1166,    0, 1166, 1166, 1166, 1166, 1166, 1166,
+     1166, 1166, 1166, 1167,    0, 1167, 1167, 1167, 1167, 1167,
+     1167, 1167, 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
+     1168, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,
+     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
+     1171, 1171, 1171, 1171, 1171, 1171, 1172,    0, 1172, 1172,
+
+     1172, 1172, 1173,    0, 1173, 1173, 1173, 1173, 1174, 1174,
+     1174, 1174, 1174, 1174, 1174, 1175,    0, 1175, 1175, 1175,
+     1175, 1175, 1175, 1175, 1175, 1175, 1176,    0, 1176, 1176,
+     1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177,    0, 1177,
+     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178,    0,
      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
-     1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
-     1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
-     1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
-     1181, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
-     1182, 1182, 1182, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
-     1183, 1183, 1183, 1183, 1184, 1184, 1184, 1184, 1184, 1184,
-     1184, 1184, 1184, 1184, 1184, 1185, 1185, 1185, 1185, 1185,
-     1185, 1185, 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186,
-     1186, 1186, 1186, 1186, 1186, 1186, 1186, 1187, 1187, 1187,
-
-     1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188, 1188,
-     1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1189,
-     1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
-     1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
-     1190, 1191,    0, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
-     1191, 1191, 1192,    0, 1192, 1192, 1192, 1192, 1192, 1192,
-     1192, 1192, 1192, 1193,    0, 1193, 1193, 1193, 1193, 1193,
-     1193, 1193, 1193, 1193, 1194,    0, 1194, 1194, 1194, 1194,
-     1194, 1194, 1194, 1194, 1194, 1195,    0, 1195, 1195, 1195,
-     1195, 1195, 1195, 1195, 1195, 1195, 1196,    0,    0, 1196,
-
-     1196, 1196, 1197,    0, 1197, 1197, 1197, 1197, 1197, 1197,
-     1197, 1197, 1197, 1198,    0, 1198, 1198, 1198, 1198, 1198,
-     1198, 1198, 1198, 1198, 1199,    0, 1199, 1199, 1199, 1199,
-     1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200, 1200, 1200,
-     1200, 1200, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
-     1202,    0, 1202, 1202, 1202, 1202, 1203,    0, 1203, 1203,
-     1203, 1203, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1205,
-        0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
-     1206,    0, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1207,    0, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
-
-     1207, 1207, 1208,    0, 1208, 1208, 1208, 1208, 1208, 1208,
-     1208, 1208, 1208, 1209,    0, 1209, 1209, 1209, 1209, 1209,
+        0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+     1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1181,    0,
+     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1182,
+     1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183,
+
+     1183,    0, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
+     1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
+     1184, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+     1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
+     1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+     1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1188,
+     1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, 1189,
+     1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190,
+     1190, 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191, 1191,
+     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1192,
+
+     1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193,
+     1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+     1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+     1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+     1196, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
+     1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1198, 1198,
+     1198, 1198, 1198, 1198, 1198, 1199,    0, 1199, 1199, 1199,
+     1199, 1199, 1199, 1199, 1199, 1199, 1200,    0, 1200, 1200,
+     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,    0, 1201,
+
+     1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202,    0,
+     1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1203,
+        0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
+     1204,    0,    0, 1204, 1204, 1204, 1205,    0, 1205, 1205,
+     1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206,    0, 1206,
+     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207,    0,
+     1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208,
+     1208, 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209,
      1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210,
-     1210, 1211, 1211,    0, 1211, 1211, 1211, 1211, 1211, 1211,
-     1211, 1211, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
-     1212, 1212, 1212, 1213, 1213,    0, 1213, 1213, 1213, 1213,
-     1213, 1213, 1213, 1213, 1214, 1214, 1214, 1214, 1214, 1214,
-     1214, 1214, 1214, 1214, 1214, 1215, 1215, 1215, 1215, 1215,
-     1215, 1215, 1215, 1215, 1215, 1215, 1216, 1216, 1216, 1216,
-     1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217, 1217, 1217,
+     1210, 1210, 1210, 1210, 1210, 1211,    0, 1211, 1211, 1211,
 
-     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218, 1218,
+     1211, 1212,    0, 1212, 1212, 1212, 1212, 1213, 1213, 1213,
+     1213, 1213, 1213, 1213, 1214,    0, 1214, 1214, 1214, 1214,
+     1214, 1214, 1214, 1214, 1214, 1215,    0, 1215, 1215, 1215,
+     1215, 1215, 1215, 1215, 1215, 1215, 1216,    0, 1216, 1216,
+     1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217,    0, 1217,
+     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218,    0,
      1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219,
-     1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
-     1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
-     1220, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
-     1221, 1221, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
-     1222, 1222, 1222, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
-     1223, 1223, 1223, 1223, 1224, 1224, 1224, 1224, 1224, 1224,
-     1224, 1224, 1224, 1224, 1224, 1225, 1225, 1225, 1225, 1225,
-     1225, 1225, 1225, 1225, 1225, 1225, 1226, 1226, 1226, 1226,
-
-     1226, 1226, 1226, 1226, 1226, 1226, 1226, 1227, 1227, 1227,
-     1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1228, 1228,
-     1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1229,
-        0, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229,
-     1230,    0, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
-     1230, 1231,    0, 1231, 1231, 1231, 1231, 1231, 1231, 1231,
-     1231, 1231, 1232,    0, 1232, 1232, 1232, 1232, 1232, 1232,
-     1232, 1232, 1232, 1233,    0, 1233, 1233, 1233, 1233, 1233,
-     1233, 1233, 1233, 1233, 1234,    0,    0, 1234, 1234, 1234,
-     1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1236,    0,
-
-     1236, 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237,
-     1237, 1238,    0, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
-     1238, 1238, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1240,
-     1240,    0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
-
-     1089, 1089, 1089, 1089, 1089, 1089
+     1219, 1219, 1219, 1219, 1219, 1219, 1220, 1220,    0, 1220,
+     1220, 1220, 1220, 1220, 1220, 1220, 1220, 1221, 1221, 1221,
+     1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1222, 1222,
+
+        0, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1223,
+     1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+     1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
+     1224, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
+     1225, 1225, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+     1226, 1226, 1226, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
+     1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, 1228,
+     1228, 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229,
+     1229, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230,
+     1230, 1230, 1230, 1230, 1230, 1230, 1230, 1231, 1231, 1231,
+
+     1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1232, 1232,
+     1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1233,
+     1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
+     1235, 1235, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
+     1237, 1237, 1237, 1237, 1238,    0, 1238, 1238, 1238, 1238,
+     1238, 1238, 1238, 1238, 1238, 1239,    0, 1239, 1239, 1239,
+     1239, 1239, 1239, 1239, 1239, 1239, 1240,    0, 1240, 1240,
+
+     1240, 1240, 1240, 1240, 1240, 1240, 1240, 1241,    0, 1241,
+     1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242,    0,
+     1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243,
+        0,    0, 1243, 1243, 1243, 1244, 1244, 1244, 1244, 1244,
+     1244, 1244, 1244, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
+     1245, 1245, 1245, 1245, 1246,    0, 1246, 1246, 1246, 1246,
+     1247, 1247, 1247, 1247, 1247, 1247, 1247, 1248,    0, 1248,
+     1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1249, 1249,
+     1249, 1249, 1249, 1249, 1249, 1250, 1250,    0, 1250, 1250,
+     1250, 1250, 1250, 1250, 1250, 1250, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094
     } ;
 
+/* Table of booleans, true if rule could match eol. */
+static yyconst flex_int32_t yy_rule_can_match_eol[149] =
+    {   0,
+0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0,     };
+
 /* The intent behind this definition is that it'll catch
  * any uses of REJECT which flex missed.
  */
@@ -2486,6 +2527,8 @@
 
 #define YYCHOP() (yytext[--yyleng] = '\0')
 
+#define SET_LINE_NUMBER (IMCC_INFO(interp)->line = yylineno)
+
 #define DUP_AND_RET(valp, token)             \
   do {                                       \
       if (valp) (valp)->s = mem_sys_strdup(yytext); \
@@ -2511,7 +2554,7 @@
 
 
 
-#line 2515 "compilers/imcc/imclexer.c"
+#line 2558 "compilers/imcc/imclexer.c"
 
 #define INITIAL 0
 #define emit 1
@@ -2756,7 +2799,7 @@
 	register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 154 "compilers/imcc/imcc.l"
+#line 157 "compilers/imcc/imcc.l"
 
         /* for emacs "*/
         if (IMCC_INFO(interp)->expect_pasm == 1 && !IMCC_INFO(interp)->in_pod) {
@@ -2775,7 +2818,7 @@
             return 0;
         }
 
-#line 2779 "compilers/imcc/imclexer.c"
+#line 2822 "compilers/imcc/imclexer.c"
 
 	if ( !yyg->yy_init )
 		{
@@ -2829,13 +2872,13 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 1090 )
+				if ( yy_current_state >= 1095 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 1089 );
+		while ( yy_current_state != 1094 );
 		yy_cp = yyg->yy_last_accepting_cpos;
 		yy_current_state = yyg->yy_last_accepting_state;
 
@@ -2844,6 +2887,18 @@
 
 		YY_DO_BEFORE_ACTION;
 
+		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
+			{
+			int yyl;
+			for ( yyl = 0; yyl < yyleng; ++yyl )
+				if ( yytext[yyl] == '\n' )
+					   
+    do{ yylineno++;
+        yycolumn=0;
+    }while(0)
+;
+			}
+
 do_action:	/* This label is used only to access EOF actions. */
 
 		switch ( yy_act )
@@ -2857,15 +2912,15 @@
 
 case 1:
 YY_RULE_SETUP
-#line 172 "compilers/imcc/imcc.l"
-{ IMCC_INFO(interp)->line++; }
+#line 175 "compilers/imcc/imcc.l"
+{ SET_LINE_NUMBER; }
 	YY_BREAK
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 174 "compilers/imcc/imcc.l"
+#line 177 "compilers/imcc/imcc.l"
 {
-            IMCC_INFO(interp)->line++;
+            SET_LINE_NUMBER;
             IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
             BEGIN(heredoc2);
     }
@@ -2873,7 +2928,7 @@
 case 3:
 /* rule 3 can match eol */
 YY_RULE_SETUP
-#line 180 "compilers/imcc/imcc.l"
+#line 183 "compilers/imcc/imcc.l"
 {
         /* heredocs have highest priority
          * arrange them before all wildcard state matches */
@@ -2889,9 +2944,9 @@
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 193 "compilers/imcc/imcc.l"
+#line 196 "compilers/imcc/imcc.l"
 {
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         /* Are we at the end of the heredoc? */
         if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
             /* End of the heredoc. */
@@ -2932,7 +2987,7 @@
 case 5:
 /* rule 5 can match eol */
 YY_RULE_SETUP
-#line 232 "compilers/imcc/imcc.l"
+#line 235 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
         yy_push_state(cmt3, yyscanner);
@@ -2945,7 +3000,7 @@
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 242 "compilers/imcc/imcc.l"
+#line 245 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
         yy_push_state(cmt4, yyscanner);
@@ -2953,19 +3008,19 @@
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 247 "compilers/imcc/imcc.l"
+#line 250 "compilers/imcc/imcc.l"
 { yy_push_state(cmt2, yyscanner); }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 249 "compilers/imcc/imcc.l"
+#line 252 "compilers/imcc/imcc.l"
 { yy_push_state(cmt1, yyscanner);  }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 251 "compilers/imcc/imcc.l"
+#line 254 "compilers/imcc/imcc.l"
 {
-        IMCC_INFO(interp)->line = atoi(yytext);
+        yylineno = IMCC_INFO(interp)->line = atoi(yytext);
         yy_pop_state(yyscanner);
         yy_push_state(cmt4, yyscanner);
         return LINECOMMENT;
@@ -2974,7 +3029,7 @@
 case 10:
 /* rule 10 can match eol */
 YY_RULE_SETUP
-#line 258 "compilers/imcc/imcc.l"
+#line 261 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
     }
@@ -2982,7 +3037,7 @@
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 262 "compilers/imcc/imcc.l"
+#line 265 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->expect_pasm == 2)
             BEGIN(INITIAL);
@@ -2994,7 +3049,7 @@
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 271 "compilers/imcc/imcc.l"
+#line 274 "compilers/imcc/imcc.l"
 {
         yy_push_state(cmt5, yyscanner);
     }
@@ -3002,7 +3057,7 @@
 case 13:
 /* rule 13 can match eol */
 YY_RULE_SETUP
-#line 275 "compilers/imcc/imcc.l"
+#line 278 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->expect_pasm == 2)
             BEGIN(INITIAL);
@@ -3017,17 +3072,18 @@
 case 14:
 /* rule 14 can match eol */
 YY_RULE_SETUP
-#line 287 "compilers/imcc/imcc.l"
+#line 290 "compilers/imcc/imcc.l"
 {
     /* this is a stand-alone =cut, but we're not in POD mode, so ignore.  */
-    IMCC_INFO(interp)->line++;
+    SET_LINE_NUMBER;
 }
 	YY_BREAK
 case 15:
+/* rule 15 can match eol */
 YY_RULE_SETUP
-#line 292 "compilers/imcc/imcc.l"
+#line 295 "compilers/imcc/imcc.l"
 {
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 1;
         yy_push_state(pod, yyscanner);
     }
@@ -3035,487 +3091,487 @@
 case 16:
 /* rule 16 can match eol */
 YY_RULE_SETUP
-#line 298 "compilers/imcc/imcc.l"
+#line 301 "compilers/imcc/imcc.l"
 {
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 0;
         yy_pop_state(yyscanner);
     }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 304 "compilers/imcc/imcc.l"
-{ IMCC_INFO(interp)->line++; }
+#line 307 "compilers/imcc/imcc.l"
+{ SET_LINE_NUMBER; }
 	YY_BREAK
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-#line 306 "compilers/imcc/imcc.l"
+#line 309 "compilers/imcc/imcc.l"
 { /* ignore */ }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 308 "compilers/imcc/imcc.l"
+#line 311 "compilers/imcc/imcc.l"
 return TK_LINE;
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 309 "compilers/imcc/imcc.l"
+#line 312 "compilers/imcc/imcc.l"
 return TK_FILE;
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 310 "compilers/imcc/imcc.l"
+#line 313 "compilers/imcc/imcc.l"
 return ANNOTATE;
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 311 "compilers/imcc/imcc.l"
+#line 314 "compilers/imcc/imcc.l"
 return LEXICAL;
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 312 "compilers/imcc/imcc.l"
+#line 315 "compilers/imcc/imcc.l"
 return ARG;
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 313 "compilers/imcc/imcc.l"
+#line 316 "compilers/imcc/imcc.l"
 return SUB;
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 314 "compilers/imcc/imcc.l"
+#line 317 "compilers/imcc/imcc.l"
 return ESUB;
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 315 "compilers/imcc/imcc.l"
+#line 318 "compilers/imcc/imcc.l"
 return PCC_BEGIN;
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 316 "compilers/imcc/imcc.l"
+#line 319 "compilers/imcc/imcc.l"
 return PCC_END;
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 317 "compilers/imcc/imcc.l"
+#line 320 "compilers/imcc/imcc.l"
 return PCC_CALL;
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 318 "compilers/imcc/imcc.l"
+#line 321 "compilers/imcc/imcc.l"
 return NCI_CALL;
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 319 "compilers/imcc/imcc.l"
+#line 322 "compilers/imcc/imcc.l"
 return METH_CALL;
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 320 "compilers/imcc/imcc.l"
+#line 323 "compilers/imcc/imcc.l"
 return INVOCANT;
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 321 "compilers/imcc/imcc.l"
+#line 324 "compilers/imcc/imcc.l"
 return PCC_SUB;
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 322 "compilers/imcc/imcc.l"
+#line 325 "compilers/imcc/imcc.l"
 return PCC_BEGIN_RETURN;
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 323 "compilers/imcc/imcc.l"
+#line 326 "compilers/imcc/imcc.l"
 return PCC_END_RETURN;
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 324 "compilers/imcc/imcc.l"
+#line 327 "compilers/imcc/imcc.l"
 return PCC_BEGIN_YIELD;
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 325 "compilers/imcc/imcc.l"
+#line 328 "compilers/imcc/imcc.l"
 return PCC_END_YIELD;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 327 "compilers/imcc/imcc.l"
+#line 330 "compilers/imcc/imcc.l"
 return METHOD;
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 328 "compilers/imcc/imcc.l"
+#line 331 "compilers/imcc/imcc.l"
 return MULTI;
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 329 "compilers/imcc/imcc.l"
+#line 332 "compilers/imcc/imcc.l"
 return MAIN;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 330 "compilers/imcc/imcc.l"
+#line 333 "compilers/imcc/imcc.l"
 return LOAD;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 331 "compilers/imcc/imcc.l"
+#line 334 "compilers/imcc/imcc.l"
 return INIT;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 332 "compilers/imcc/imcc.l"
+#line 335 "compilers/imcc/imcc.l"
 return IMMEDIATE;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 333 "compilers/imcc/imcc.l"
+#line 336 "compilers/imcc/imcc.l"
 return POSTCOMP;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 334 "compilers/imcc/imcc.l"
+#line 337 "compilers/imcc/imcc.l"
 return ANON;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 335 "compilers/imcc/imcc.l"
+#line 338 "compilers/imcc/imcc.l"
 return OUTER;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 336 "compilers/imcc/imcc.l"
+#line 339 "compilers/imcc/imcc.l"
 return NEED_LEX;
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 337 "compilers/imcc/imcc.l"
+#line 340 "compilers/imcc/imcc.l"
 return VTABLE_METHOD;
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 338 "compilers/imcc/imcc.l"
+#line 341 "compilers/imcc/imcc.l"
 return NS_ENTRY;
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 339 "compilers/imcc/imcc.l"
+#line 342 "compilers/imcc/imcc.l"
 return UNIQUE_REG;
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 340 "compilers/imcc/imcc.l"
+#line 343 "compilers/imcc/imcc.l"
 return SUB_INSTANCE_OF;
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 341 "compilers/imcc/imcc.l"
+#line 344 "compilers/imcc/imcc.l"
 return SUBID;
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 343 "compilers/imcc/imcc.l"
+#line 346 "compilers/imcc/imcc.l"
 return RESULT;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 344 "compilers/imcc/imcc.l"
+#line 347 "compilers/imcc/imcc.l"
 return GET_RESULTS;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 345 "compilers/imcc/imcc.l"
+#line 348 "compilers/imcc/imcc.l"
 return YIELDT;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 346 "compilers/imcc/imcc.l"
+#line 349 "compilers/imcc/imcc.l"
 return SET_YIELD;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 347 "compilers/imcc/imcc.l"
+#line 350 "compilers/imcc/imcc.l"
 return RETURN;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 348 "compilers/imcc/imcc.l"
+#line 351 "compilers/imcc/imcc.l"
 return SET_RETURN;
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 349 "compilers/imcc/imcc.l"
+#line 352 "compilers/imcc/imcc.l"
 return TAILCALL;
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 350 "compilers/imcc/imcc.l"
+#line 353 "compilers/imcc/imcc.l"
 return LOADLIB;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 352 "compilers/imcc/imcc.l"
+#line 355 "compilers/imcc/imcc.l"
 return ADV_FLAT;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 353 "compilers/imcc/imcc.l"
+#line 356 "compilers/imcc/imcc.l"
 return ADV_SLURPY;
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 354 "compilers/imcc/imcc.l"
+#line 357 "compilers/imcc/imcc.l"
 return ADV_OPTIONAL;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 355 "compilers/imcc/imcc.l"
+#line 358 "compilers/imcc/imcc.l"
 return ADV_OPT_FLAG;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 356 "compilers/imcc/imcc.l"
+#line 359 "compilers/imcc/imcc.l"
 return ADV_NAMED;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 357 "compilers/imcc/imcc.l"
+#line 360 "compilers/imcc/imcc.l"
 return ADV_ARROW;
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 358 "compilers/imcc/imcc.l"
+#line 361 "compilers/imcc/imcc.l"
 return ADV_INVOCANT;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 359 "compilers/imcc/imcc.l"
+#line 362 "compilers/imcc/imcc.l"
 return ADV_CALL_SIG;
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 361 "compilers/imcc/imcc.l"
+#line 364 "compilers/imcc/imcc.l"
 return NAMESPACE;
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 362 "compilers/imcc/imcc.l"
+#line 365 "compilers/imcc/imcc.l"
 return HLL;
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 364 "compilers/imcc/imcc.l"
+#line 367 "compilers/imcc/imcc.l"
 return LOCAL;
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 365 "compilers/imcc/imcc.l"
+#line 368 "compilers/imcc/imcc.l"
 return CONST;
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 366 "compilers/imcc/imcc.l"
+#line 369 "compilers/imcc/imcc.l"
 return GLOBAL_CONST;
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 367 "compilers/imcc/imcc.l"
+#line 370 "compilers/imcc/imcc.l"
 return PARAM;
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 368 "compilers/imcc/imcc.l"
+#line 371 "compilers/imcc/imcc.l"
 return GOTO;
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 369 "compilers/imcc/imcc.l"
+#line 372 "compilers/imcc/imcc.l"
 return IF;
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 370 "compilers/imcc/imcc.l"
+#line 373 "compilers/imcc/imcc.l"
 return UNLESS;
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 371 "compilers/imcc/imcc.l"
+#line 374 "compilers/imcc/imcc.l"
 return PNULL;
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 372 "compilers/imcc/imcc.l"
+#line 375 "compilers/imcc/imcc.l"
 return INTV;
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 373 "compilers/imcc/imcc.l"
+#line 376 "compilers/imcc/imcc.l"
 return FLOATV;
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 375 "compilers/imcc/imcc.l"
+#line 378 "compilers/imcc/imcc.l"
 return PMCV;
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 376 "compilers/imcc/imcc.l"
+#line 379 "compilers/imcc/imcc.l"
 return STRINGV;
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 377 "compilers/imcc/imcc.l"
+#line 380 "compilers/imcc/imcc.l"
 return SHIFT_LEFT;
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 378 "compilers/imcc/imcc.l"
+#line 381 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT;
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 379 "compilers/imcc/imcc.l"
+#line 382 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT_U;
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 380 "compilers/imcc/imcc.l"
+#line 383 "compilers/imcc/imcc.l"
 return LOG_AND;
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 381 "compilers/imcc/imcc.l"
+#line 384 "compilers/imcc/imcc.l"
 return LOG_OR;
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 382 "compilers/imcc/imcc.l"
+#line 385 "compilers/imcc/imcc.l"
 return LOG_XOR;
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 383 "compilers/imcc/imcc.l"
+#line 386 "compilers/imcc/imcc.l"
 return RELOP_LT;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 384 "compilers/imcc/imcc.l"
+#line 387 "compilers/imcc/imcc.l"
 return RELOP_LTE;
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 385 "compilers/imcc/imcc.l"
+#line 388 "compilers/imcc/imcc.l"
 return RELOP_GT;
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 386 "compilers/imcc/imcc.l"
+#line 389 "compilers/imcc/imcc.l"
 return RELOP_GTE;
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 387 "compilers/imcc/imcc.l"
+#line 390 "compilers/imcc/imcc.l"
 return RELOP_EQ;
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 388 "compilers/imcc/imcc.l"
+#line 391 "compilers/imcc/imcc.l"
 return RELOP_NE;
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 389 "compilers/imcc/imcc.l"
+#line 392 "compilers/imcc/imcc.l"
 return POW;
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 391 "compilers/imcc/imcc.l"
+#line 394 "compilers/imcc/imcc.l"
 return CONCAT;
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 392 "compilers/imcc/imcc.l"
+#line 395 "compilers/imcc/imcc.l"
 return DOT;
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 394 "compilers/imcc/imcc.l"
+#line 397 "compilers/imcc/imcc.l"
 return PLUS_ASSIGN;
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 395 "compilers/imcc/imcc.l"
+#line 398 "compilers/imcc/imcc.l"
 return MINUS_ASSIGN;
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 396 "compilers/imcc/imcc.l"
+#line 399 "compilers/imcc/imcc.l"
 return MUL_ASSIGN;
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 397 "compilers/imcc/imcc.l"
+#line 400 "compilers/imcc/imcc.l"
 return DIV_ASSIGN;
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 398 "compilers/imcc/imcc.l"
+#line 401 "compilers/imcc/imcc.l"
 return MOD_ASSIGN;
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 399 "compilers/imcc/imcc.l"
+#line 402 "compilers/imcc/imcc.l"
 return FDIV;
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 400 "compilers/imcc/imcc.l"
+#line 403 "compilers/imcc/imcc.l"
 return FDIV_ASSIGN;
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 401 "compilers/imcc/imcc.l"
+#line 404 "compilers/imcc/imcc.l"
 return BAND_ASSIGN;
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 402 "compilers/imcc/imcc.l"
+#line 405 "compilers/imcc/imcc.l"
 return BOR_ASSIGN;
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 403 "compilers/imcc/imcc.l"
+#line 406 "compilers/imcc/imcc.l"
 return BXOR_ASSIGN;
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 404 "compilers/imcc/imcc.l"
+#line 407 "compilers/imcc/imcc.l"
 return SHR_ASSIGN;
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 405 "compilers/imcc/imcc.l"
+#line 408 "compilers/imcc/imcc.l"
 return SHL_ASSIGN;
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 406 "compilers/imcc/imcc.l"
+#line 409 "compilers/imcc/imcc.l"
 return SHR_U_ASSIGN;
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 407 "compilers/imcc/imcc.l"
+#line 410 "compilers/imcc/imcc.l"
 return CONCAT_ASSIGN;
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 409 "compilers/imcc/imcc.l"
+#line 412 "compilers/imcc/imcc.l"
 {
         char *macro_name   = NULL;
         int   start_cond   = YY_START;
@@ -3561,16 +3617,16 @@
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 452 "compilers/imcc/imcc.l"
+#line 455 "compilers/imcc/imcc.l"
 {
         /* the initial whitespace catcher misses this one */
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         return read_macro(valp, interp, yyscanner);
     }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 458 "compilers/imcc/imcc.l"
+#line 461 "compilers/imcc/imcc.l"
 {
         const int c = yylex(valp,yyscanner,interp);
 
@@ -3585,7 +3641,7 @@
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 470 "compilers/imcc/imcc.l"
+#line 473 "compilers/imcc/imcc.l"
 {
         if (valp) {
             char *label;
@@ -3610,7 +3666,7 @@
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 492 "compilers/imcc/imcc.l"
+#line 495 "compilers/imcc/imcc.l"
 {
         if (valp) {
             char *label;
@@ -3633,12 +3689,12 @@
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 512 "compilers/imcc/imcc.l"
+#line 515 "compilers/imcc/imcc.l"
 return COMMA;
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 514 "compilers/imcc/imcc.l"
+#line 517 "compilers/imcc/imcc.l"
 {
         /* trim last ':' */
         YYCHOP();
@@ -3651,7 +3707,7 @@
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 524 "compilers/imcc/imcc.l"
+#line 527 "compilers/imcc/imcc.l"
 {
         char   * const macro_name = mem_sys_strdup(yytext + 1);
         int failed = expand_macro(interp, macro_name, yyscanner);
@@ -3664,32 +3720,32 @@
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 536 "compilers/imcc/imcc.l"
+#line 539 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, FLOATC);
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 537 "compilers/imcc/imcc.l"
+#line 540 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 538 "compilers/imcc/imcc.l"
+#line 541 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 539 "compilers/imcc/imcc.l"
+#line 542 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 540 "compilers/imcc/imcc.l"
+#line 543 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 542 "compilers/imcc/imcc.l"
+#line 545 "compilers/imcc/imcc.l"
 {
         valp->s = mem_sys_strdup(yytext);
 
@@ -3702,7 +3758,7 @@
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 552 "compilers/imcc/imcc.l"
+#line 555 "compilers/imcc/imcc.l"
 {
         valp->s = mem_sys_strdup(yytext);
 
@@ -3711,7 +3767,7 @@
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 558 "compilers/imcc/imcc.l"
+#line 561 "compilers/imcc/imcc.l"
 {
         macro_frame_t *frame;
 
@@ -3742,7 +3798,7 @@
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 586 "compilers/imcc/imcc.l"
+#line 589 "compilers/imcc/imcc.l"
 {
         /* charset:"..." */
         valp->s = mem_sys_strdup(yytext);
@@ -3753,7 +3809,7 @@
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 594 "compilers/imcc/imcc.l"
+#line 597 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3764,7 +3820,7 @@
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 602 "compilers/imcc/imcc.l"
+#line 605 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3775,7 +3831,7 @@
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 610 "compilers/imcc/imcc.l"
+#line 613 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3786,7 +3842,7 @@
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 618 "compilers/imcc/imcc.l"
+#line 621 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3797,7 +3853,7 @@
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 626 "compilers/imcc/imcc.l"
+#line 629 "compilers/imcc/imcc.l"
 {
         IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
             "'%s' is not a valid register name", yytext);
@@ -3805,7 +3861,7 @@
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 631 "compilers/imcc/imcc.l"
+#line 634 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->state->pasm_file == 0)
             IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3819,24 +3875,24 @@
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 643 "compilers/imcc/imcc.l"
+#line 646 "compilers/imcc/imcc.l"
 { return handle_identifier(interp, valp, yytext); }
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 645 "compilers/imcc/imcc.l"
+#line 648 "compilers/imcc/imcc.l"
 /* skip */;
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 647 "compilers/imcc/imcc.l"
+#line 650 "compilers/imcc/imcc.l"
 {
         /* catch all except for state macro */
         return yytext[0];
     }
 	YY_BREAK
 case YY_STATE_EOF(emit):
-#line 652 "compilers/imcc/imcc.l"
+#line 655 "compilers/imcc/imcc.l"
 {
         BEGIN(INITIAL);
 
@@ -3849,34 +3905,34 @@
     }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 663 "compilers/imcc/imcc.l"
+#line 666 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 665 "compilers/imcc/imcc.l"
+#line 668 "compilers/imcc/imcc.l"
 {
         /* the initial whitespace catcher misses this one */
-        IMCC_INFO(interp)->line++;
+        SET_LINE_NUMBER;
         DUP_AND_RET(valp, ENDM);
 }
 	YY_BREAK
 case 138:
 /* rule 138 can match eol */
 YY_RULE_SETUP
-#line 671 "compilers/imcc/imcc.l"
+#line 674 "compilers/imcc/imcc.l"
 {
         DUP_AND_RET(valp, '\n');
     }
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 675 "compilers/imcc/imcc.l"
+#line 678 "compilers/imcc/imcc.l"
 return LABEL;
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 677 "compilers/imcc/imcc.l"
+#line 680 "compilers/imcc/imcc.l"
 {
 
         if (yylex(valp,yyscanner,interp) != LABEL)
@@ -3903,7 +3959,7 @@
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 701 "compilers/imcc/imcc.l"
+#line 704 "compilers/imcc/imcc.l"
 {
     if (valp) {
         if (!IMCC_INFO(interp)->cur_macro_name) {
@@ -3934,44 +3990,44 @@
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 729 "compilers/imcc/imcc.l"
+#line 732 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, ' ');
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 730 "compilers/imcc/imcc.l"
+#line 733 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 731 "compilers/imcc/imcc.l"
+#line 734 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 732 "compilers/imcc/imcc.l"
+#line 735 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, IDENTIFIER);
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 733 "compilers/imcc/imcc.l"
+#line 736 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, MACRO);
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 734 "compilers/imcc/imcc.l"
+#line 737 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, yytext[0]);
 	YY_BREAK
 case YY_STATE_EOF(macro):
-#line 735 "compilers/imcc/imcc.l"
+#line 738 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 737 "compilers/imcc/imcc.l"
+#line 740 "compilers/imcc/imcc.l"
 ECHO;
 	YY_BREAK
-#line 3975 "compilers/imcc/imclexer.c"
+#line 4031 "compilers/imcc/imclexer.c"
 case YY_STATE_EOF(pod):
 case YY_STATE_EOF(cmt1):
 case YY_STATE_EOF(cmt2):
@@ -4274,7 +4330,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 1090 )
+			if ( yy_current_state >= 1095 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4303,11 +4359,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 1090 )
+		if ( yy_current_state >= 1095 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 1089);
+	yy_is_jam = (yy_current_state == 1094);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -4345,6 +4401,10 @@
 
 	*--yy_cp = (char) c;
 
+    if ( c == '\n' ){
+        --yylineno;
+    }
+
 	yyg->yytext_ptr = yy_bp;
 	yyg->yy_hold_char = *yy_cp;
 	yyg->yy_c_buf_p = yy_cp;
@@ -4422,6 +4482,12 @@
 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
 
 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
+		   
+    do{ yylineno++;
+        yycolumn=0;
+    }while(0)
+;
 
 	return c;
 }
@@ -5173,7 +5239,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 737 "compilers/imcc/imcc.l"
+#line 740 "compilers/imcc/imcc.l"
 
 
 
@@ -5702,6 +5768,7 @@
 scan_file(PARROT_INTERP, macro_frame_t *frame, FILE *file, void *yyscanner)
 {
     yyguts_t * const yyg      = (yyguts_t *)yyscanner;
+    const      int   oldline  = IMCC_INFO(interp)->line;
     frame->buffer             = YY_CURRENT_BUFFER;
     frame->s.next             = (parser_state_t *)IMCC_INFO(interp)->frames;
     IMCC_INFO(interp)->frames = frame;
@@ -5711,6 +5778,8 @@
     IMCC_INFO(interp)->line   = 0;
 
     yy_switch_to_buffer(yy_create_buffer(file,YY_BUF_SIZE,yyscanner),yyscanner);
+
+    IMCC_INFO(interp)->line   = oldline;
 }
 
 void

Modified: branches/include_dynpmc_makefile/compilers/imcc/main.c
==============================================================================
--- branches/include_dynpmc_makefile/compilers/imcc/main.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/imcc/main.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -251,13 +251,6 @@
         if (strchr(opt->opt_arg, '2')) {
             IMCC_INFO(interp)->optimizer_level |= (OPT_PRE | OPT_CFG);
         }
-        if (strchr(opt->opt_arg, 't')) {
-#ifdef HAVE_COMPUTED_GOTO
-            *core = PARROT_CGP_CORE;
-#else
-            *core = PARROT_SWITCH_CORE;
-#endif
-        }
         break;
 
       default:
@@ -414,12 +407,6 @@
     if (opt_level & OPT_SUB)
         opt_desc[i++] = 'c';
 
-    if (PARROT_RUNCORE_JIT_OPS_TEST(interp->run_core))
-        opt_desc[i++] = 'j';
-
-    if (PARROT_RUNCORE_PREDEREF_OPS_TEST(interp->run_core))
-        opt_desc[i++] = 't';
-
     opt_desc[i] = '\0';
     return;
 }

Modified: branches/include_dynpmc_makefile/compilers/imcc/parser_util.c
==============================================================================
--- branches/include_dynpmc_makefile/compilers/imcc/parser_util.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/imcc/parser_util.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -383,14 +383,9 @@
     int emit)
 {
     ASSERT_ARGS(INS)
-    int i, op, len;
-    int dirs = 0;
-    Instruction *ins;
-    op_info_t   *op_info;
-    char fullname[64] = "", format[128] = "";
 
     if (STREQ(name, ".annotate")) {
-        ins = _mk_instruction(name, "", n, r, 0);
+        Instruction *ins = _mk_instruction(name, "", n, r, 0);
         if (emit)
             return emitb(interp, unit, ins);
         else
@@ -402,176 +397,183 @@
     ||  (STREQ(name, "get_params"))
     ||  (STREQ(name, "set_returns")))
         return var_arg_ins(interp, unit, name, r, n, emit);
+    else {
+        Instruction *ins;
+        int i, op, len;
+        int dirs = 0;
+        op_info_t   *op_info;
+        char fullname[64] = "", format[128] = "";
 
-    op_fullname(fullname, name, r, n, keyvec);
-    op = interp->op_lib->op_code(interp, fullname, 1);
-
-    /* maybe we have a fullname */
-    if (op < 0)
-        op = interp->op_lib->op_code(interp, name, 1);
-
-    /* still wrong, try reverse compare */
-    if (op < 0) {
-        const char * const n_name = try_rev_cmp(name, r);
-        if (n_name) {
-            name = n_name;
-            op_fullname(fullname, name, r, n, keyvec);
-            op   = interp->op_lib->op_code(interp, fullname, 1);
-        }
-    }
-
-    /* still wrong, try to find an existing op */
-    if (op < 0)
-        op = try_find_op(interp, unit, name, r, n, keyvec, emit);
-
-    if (op < 0) {
-        int ok = 0;
+        op_fullname(fullname, name, r, n, keyvec);
+        op = interp->op_lib->op_code(interp, fullname, 1);
 
-        /* check mixed constants */
-        ins = IMCC_subst_constants_umix(interp, unit, name, r, n + 1);
-        if (ins)
-            goto found_ins;
+        /* maybe we have a fullname */
+        if (op < 0)
+            op = interp->op_lib->op_code(interp, name, 1);
+
+        /* still wrong, try reverse compare */
+        if (op < 0) {
+            const char * const n_name = try_rev_cmp(name, r);
+            if (n_name) {
+                name = n_name;
+                op_fullname(fullname, name, r, n, keyvec);
+                op   = interp->op_lib->op_code(interp, fullname, 1);
+            }
+        }
+
+        /* still wrong, try to find an existing op */
+        if (op < 0)
+            op = try_find_op(interp, unit, name, r, n, keyvec, emit);
 
-        /* and finally multiple constants */
-        ins = IMCC_subst_constants(interp, unit, name, r, n + 1, &ok);
+        if (op < 0) {
+            int ok = 0;
 
-        if (ok) {
+            /* check mixed constants */
+            ins = IMCC_subst_constants_umix(interp, unit, name, r, n + 1);
             if (ins)
                 goto found_ins;
-            else
-                return NULL;
-        }
-    }
-    else
-        strcpy(fullname, name);
 
-    if (op < 0)
-        IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                    "The opcode '%s' (%s<%d>) was not found. "
-                    "Check the type and number of the arguments",
-                    fullname, name, n);
-
-    op_info = &interp->op_info_table[op];
-    *format = '\0';
-
-    /* info->op_count is args + 1
-     * build instruction format
-     * set LV_in / out flags */
-    if (n != op_info->op_count - 1)
-        IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                "arg count mismatch: op #%d '%s' needs %d given %d",
-                op, fullname, op_info->op_count-1, n);
-
-    /* XXX Speed up some by keep track of the end of format ourselves */
-    for (i = 0; i < n; i++) {
-        switch (op_info->dirs[i]) {
-          case PARROT_ARGDIR_INOUT:
-            dirs |= 1 << (16 + i);
-            /* go on */
-          case PARROT_ARGDIR_IN:
-            dirs |= 1 << i ;
-            break;
-
-          case PARROT_ARGDIR_OUT:
-            dirs |= 1 << (16 + i);
-            break;
-
-          default:
-            PARROT_ASSERT(0);
-        };
-
-        if (keyvec & KEY_BIT(i)) {
-            /* XXX Assert that len > 2 */
-            len          = strlen(format) - 2;
-            PARROT_ASSERT(len >= 0);
-            format[len]  = '\0';
-            strcat(format, "[%s], ");
+            /* and finally multiple constants */
+            ins = IMCC_subst_constants(interp, unit, name, r, n + 1, &ok);
+
+            if (ok) {
+                if (ins)
+                    goto found_ins;
+                else
+                    return NULL;
+            }
         }
-        else if (r[i]->set == 'K')
-            strcat(format, "[%s], ");
         else
-            strcat(format, "%s, ");
-    }
+            strcpy(fullname, name);
 
-    len = strlen(format);
-    if (len >= 2)
-        len -= 2;
+        if (op < 0)
+            IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+                        "The opcode '%s' (%s<%d>) was not found. "
+                        "Check the type and number of the arguments",
+                        fullname, name, n);
+
+        op_info = &interp->op_info_table[op];
+        *format = '\0';
+
+        /* info->op_count is args + 1
+         * build instruction format
+         * set LV_in / out flags */
+        if (n != op_info->op_count - 1)
+            IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+                    "arg count mismatch: op #%d '%s' needs %d given %d",
+                    op, fullname, op_info->op_count-1, n);
 
-    format[len] = '\0';
+        /* XXX Speed up some by keep track of the end of format ourselves */
+        for (i = 0; i < n; i++) {
+            switch (op_info->dirs[i]) {
+              case PARROT_ARGDIR_INOUT:
+                dirs |= 1 << (16 + i);
+                /* go on */
+              case PARROT_ARGDIR_IN:
+                dirs |= 1 << i ;
+                break;
+
+              case PARROT_ARGDIR_OUT:
+                dirs |= 1 << (16 + i);
+                break;
+
+              default:
+                PARROT_ASSERT(0);
+            };
+
+            if (keyvec & KEY_BIT(i)) {
+                /* XXX Assert that len > 2 */
+                len          = strlen(format) - 2;
+                PARROT_ASSERT(len >= 0);
+                format[len]  = '\0';
+                strcat(format, "[%s], ");
+            }
+            else if (r[i]->set == 'K')
+                strcat(format, "[%s], ");
+            else
+                strcat(format, "%s, ");
+        }
 
-    if (fmt && *fmt) {
-        strncpy(format, fmt, sizeof (format) - 1);
-        format[sizeof (format) - 1] = '\0';
-    }
+        len = strlen(format);
+        if (len >= 2)
+            len -= 2;
 
-    IMCC_debug(interp, DEBUG_PARSER, "%s %s\t%s\n", name, format, fullname);
+        format[len] = '\0';
 
-    /* make the instruction */
-    ins         = _mk_instruction(name, format, n, r, dirs);
-    ins->keys  |= keyvec;
+        if (fmt && *fmt) {
+            strncpy(format, fmt, sizeof (format) - 1);
+            format[sizeof (format) - 1] = '\0';
+        }
 
-    /* fill in oplib's info */
-    ins->opnum  = op;
-    ins->opsize = n + 1;
+        IMCC_debug(interp, DEBUG_PARSER, "%s %s\t%s\n", name, format, fullname);
 
-    /* mark end as absolute branch */
-    if (STREQ(name, "end") || STREQ(name, "ret")) {
-        ins->type |= ITBRANCH | IF_goto;
-    }
-    else if (STREQ(name, "warningson")) {
-        /* emit a debug seg, if this op is seen */
-        PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
-    }
-    else if (STREQ(name, "yield")) {
-        if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
-            IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                "Cannot yield from non-continuation\n");
+        /* make the instruction */
+        ins         = _mk_instruction(name, format, n, r, dirs);
+        ins->keys  |= keyvec;
 
-        IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub
-            |= 1 | ITPCCYIELD;
-    }
-    else if ((strncmp(name, "invoke", 6) == 0) ||
-             (strncmp(name, "callmethod", 10) == 0)) {
-        if (IMCC_INFO(interp)->cur_unit->type & IMC_PCCSUB)
-            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub |= 1;
-    }
-
-    /* set up branch flags
-     * mark registers that are labels */
-    for (i = 0; i < op_info->op_count - 1; i++) {
-        if (op_info->labels[i])
-            ins->type |= ITBRANCH | (1 << i);
-        else {
-            if (r[i]->type == VTADDRESS)
+        /* fill in oplib's info */
+        ins->opnum  = op;
+        ins->opsize = n + 1;
+
+        /* mark end as absolute branch */
+        if (STREQ(name, "end") || STREQ(name, "ret")) {
+            ins->type |= ITBRANCH | IF_goto;
+        }
+        else if (STREQ(name, "warningson")) {
+            /* emit a debug seg, if this op is seen */
+            PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
+        }
+        else if (STREQ(name, "yield")) {
+            if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
                 IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                        "undefined identifier '%s'\n", r[i]->name);
+                    "Cannot yield from non-continuation\n");
+
+            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub
+                |= 1 | ITPCCYIELD;
         }
-    }
+        else if ((strncmp(name, "invoke", 6) == 0) ||
+                 (strncmp(name, "callmethod", 10) == 0)) {
+            if (IMCC_INFO(interp)->cur_unit->type & IMC_PCCSUB)
+                IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub |= 1;
+        }
+
+        /* set up branch flags
+         * mark registers that are labels */
+        for (i = 0; i < op_info->op_count - 1; i++) {
+            if (op_info->labels[i])
+                ins->type |= ITBRANCH | (1 << i);
+            else {
+                if (r[i]->type == VTADDRESS)
+                    IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+                            "undefined identifier '%s'\n", r[i]->name);
+            }
+        }
+
+        if (op_info->jump) {
+            ins->type |= ITBRANCH;
+            /* TODO use opnum constants */
+            if (STREQ(name, "branch")
+            ||  STREQ(name, "tailcall")
+            ||  STREQ(name, "returncc"))
+                ins->type |= IF_goto;
+            else if (STREQ(fullname, "jump_i")
+                 ||  STREQ(fullname, "branch_i"))
+                IMCC_INFO(interp)->dont_optimize = 1;
+        }
+        else if (STREQ(name, "set") && n == 2) {
+            /* set Px, Py: both PMCs have the same address */
+            if (r[0]->set == r[1]->set && REG_NEEDS_ALLOC(r[1]))
+                ins->type |= ITALIAS;
+        }
+        else if (STREQ(name, "compile"))
+            ++IMCC_INFO(interp)->has_compile;
 
-    if (op_info->jump) {
-        ins->type |= ITBRANCH;
-        /* TODO use opnum constants */
-        if (STREQ(name, "branch")
-        ||  STREQ(name, "tailcall")
-        ||  STREQ(name, "returncc"))
-            ins->type |= IF_goto;
-        else if (STREQ(fullname, "jump_i")
-             ||  STREQ(fullname, "branch_i"))
-            IMCC_INFO(interp)->dont_optimize = 1;
-    }
-    else if (STREQ(name, "set") && n == 2) {
-        /* set Px, Py: both PMCs have the same address */
-        if (r[0]->set == r[1]->set && REG_NEEDS_ALLOC(r[1]))
-            ins->type |= ITALIAS;
-    }
-    else if (STREQ(name, "compile"))
-        ++IMCC_INFO(interp)->has_compile;
-
-  found_ins:
-    if (emit)
-        emitb(interp, unit, ins);
+      found_ins:
+        if (emit)
+            emitb(interp, unit, ins);
 
-    return ins;
+        return ins;
+    }
 }
 
 extern void* yy_scan_string(const char *);

Modified: branches/include_dynpmc_makefile/compilers/imcc/pbc.c
==============================================================================
--- branches/include_dynpmc_makefile/compilers/imcc/pbc.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/imcc/pbc.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -983,31 +983,32 @@
     ASSERT_ARGS(add_const_str)
 
     PackFile_ConstTable *table = interp->code->const_table;
-    STRING * const s = IMCC_string_from_reg(interp, r);
-    int k = -1;
+    STRING * const       s     = IMCC_string_from_reg(interp, r);
     int i;
+
     for (i = 0; i < table->const_count; ++i) {
         PackFile_Constant * const constant = table->constants[i];
         if (constant->type == PFC_STRING) {
             STRING * const sc = constant->u.string;
-            if (Parrot_charset_number_of_str(interp, s) ==
-                    Parrot_charset_number_of_str(interp, sc) &&
-                    Parrot_encoding_number_of_str(interp, s) ==
-                    Parrot_encoding_number_of_str(interp, sc) &&
-                    Parrot_str_equal(interp, s, sc)) {
-                k = i;
-                break;
+            if (Parrot_charset_number_of_str(interp, s)
+            ==  Parrot_charset_number_of_str(interp, sc)
+            &&  Parrot_encoding_number_of_str(interp, s)
+            ==  Parrot_encoding_number_of_str(interp, sc)
+            &&  Parrot_str_equal(interp, s, sc)) {
+                return i;
             }
         }
     }
-    if (k < 0) {
-        PackFile_Constant * constant;
-        k = add_const_table(interp);
-        constant = table->constants[k];
-        constant->type     = PFC_STRING;
-        constant->u.string = s;
+
+    /* otherwise... */
+    {
+        int                k        = add_const_table(interp);
+        PackFile_Constant *constant = table->constants[k];
+        constant->type              = PFC_STRING;
+        constant->u.string          = s;
+
+        return k;
     }
-    return k;
 }
 
 
@@ -1538,13 +1539,14 @@
 build_key(PARROT_INTERP, ARGIN(SymReg *key_reg))
 {
     ASSERT_ARGS(build_key)
-#define KEYLEN 21
-    SymReg   *reg;
+#define MAX_KEY_LEN 10
+#define MAX_KEYNAME_LEN 20
+    SymReg   *reg = key_reg->set == 'K' ? key_reg->nextkey : key_reg;
 
-    char      s_key[KEYLEN * 10];
-    opcode_t  key[KEYLEN + 1]; /* [0] -> length, [1..] -> keys */
+    char      s_key[MAX_KEY_LEN * MAX_KEYNAME_LEN];
+    opcode_t  key[MAX_KEY_LEN * 2 + 1];
     opcode_t  size;
-    int       key_length;     /* P0["hi;there"; S0; 2] has length 3 */
+    int       key_length = 0;     /* P0["hi;there"; S0; 2] has length 3 */
     int       k;
 
     /* 0 is length */
@@ -1554,15 +1556,14 @@
     char     *s  = s_key;
 
     *s           = 0;
-    reg          = key_reg->set == 'K' ? key_reg->nextkey : key_reg;
 
     for (key_length = 0; reg ; reg = reg->nextkey, key_length++) {
         SymReg *r = reg;
         int     type;
 
-        if ((pc - key - 2) >= KEYLEN)
+        if (key_length >= MAX_KEY_LEN)
             IMCC_fatal(interp, 1, "build_key:"
-                    "key too complex increase KEYLEN\n");
+                    "Key too long, increase MAX_KEY_LEN.\n");
 
         /* if key is a register, the original sym is in r->reg */
         type = r->type;

Modified: branches/include_dynpmc_makefile/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/include_dynpmc_makefile/compilers/pct/src/PAST/Compiler.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/pct/src/PAST/Compiler.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -102,7 +102,8 @@
     piropsig['splice']     = 'PPii'
     piropsig['split']      = 'Pss'
     piropsig['sub']        = 'PP+'
-    piropsig['substr']     = 'Ssiis'
+    piropsig['substr']     = 'Ssii'
+    piropsig['replace']    = 'Ssiis'
     piropsig['pow']        = 'NN+'
     piropsig['print']      = 'v*'
     piropsig['say']        = 'v*'
@@ -1150,7 +1151,7 @@
     name = node.'name'()
     if name goto call_by_name
     ##  our first child is the thing to be invoked, so make sure it's a PMC
-    substr signature, 1, 0, 'P'
+    signature = replace signature, 1, 0, 'P'
     (ops, posargs, namedargs) = self.'post_children'(node, 'signature'=>signature)
     goto children_done
   call_by_name:

Modified: branches/include_dynpmc_makefile/compilers/pct/src/PCT/HLLCompiler.pir
==============================================================================
--- branches/include_dynpmc_makefile/compilers/pct/src/PCT/HLLCompiler.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/pct/src/PCT/HLLCompiler.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -928,7 +928,7 @@
 
   load_dumper:
     load_bytecode 'PCT/Dumper.pbc'
-    downcase $S0
+    $S0 = downcase $S0
     $P0 = get_hll_global ['PCT';'Dumper'], $S0
     .tailcall $P0(obj, name)
 .end

Modified: branches/include_dynpmc_makefile/compilers/pge/PGE/Exp.pir
==============================================================================
--- branches/include_dynpmc_makefile/compilers/pge/PGE/Exp.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/pge/PGE/Exp.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -362,7 +362,7 @@
     args['I'] = ''
     $I0 = self['ignorecase']
     if $I0 == 0 goto ignorecase_end
-    args['I'] = 'downcase $S0'
+    args['I'] = '$S0 = downcase $S0'
     literal = downcase literal
   ignorecase_end:
 

Modified: branches/include_dynpmc_makefile/compilers/pge/PGE/OPTable.pir
==============================================================================
--- branches/include_dynpmc_makefile/compilers/pge/PGE/OPTable.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/pge/PGE/OPTable.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -155,7 +155,7 @@
     unless $S0 goto with_looser
     $S0 = tokentable[$S0;'precedence']
     $S0 = clone $S0
-    substr $S0, -1, 0, '<'
+    $S0 = replace $S0, -1, 0, '<'
     token['precedence'] = $S0
   with_looser:
 
@@ -163,7 +163,7 @@
     unless $S0 goto with_tighter
     $S0 = tokentable[$S0;'precedence']
     $S0 = clone $S0
-    substr $S0, -1, 0, '>'
+    $S0 = replace $S0, -1, 0, '>'
     token['precedence'] = $S0
   with_tighter:
 
@@ -377,7 +377,7 @@
     goto key_array_1
   key_next:
     if key == '' goto token_nows
-    chopn key, 1
+    key = chopn key, 1
     goto key_loop
   token_nows:
     if pos == wspos goto oper_not_found

Modified: branches/include_dynpmc_makefile/compilers/pge/PGE/Perl6Regex.pir
==============================================================================
--- branches/include_dynpmc_makefile/compilers/pge/PGE/Perl6Regex.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/pge/PGE/Perl6Regex.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1021,7 +1021,7 @@
     ##   by converting to <, <+, <-, or <!
     $S0 = substr op, -1, 1
     if $S0 != '[' goto parse_loop
-    chopn op, 1
+    op = chopn op, 1
     goto enum
 
   parse_loop:

Modified: branches/include_dynpmc_makefile/compilers/pirc/Rules.mak
==============================================================================
--- branches/include_dynpmc_makefile/compilers/pirc/Rules.mak	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/compilers/pirc/Rules.mak	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,5 @@
 compilers/pirc/src/piremit$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/piremit.c \
         compilers/pirc/src/piremit.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pircompiler.h \
@@ -13,6 +14,7 @@
         $(INC_DIR)/oplib/ops.h
 
 compilers/pirc/src/pirparser$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pirparser.c \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pirdefines.h \
@@ -30,6 +32,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirerr$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pirerr.c \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pirdefines.h \
@@ -44,6 +47,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/bcgen$(O) :  \
+  compilers/pirc/src/bcgen.c \
   compilers/pirc/src/pirsymbol.h \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirregalloc.h \
@@ -57,6 +61,7 @@
   include/pmc/pmc_namespace.h
 
 compilers/pirc/src/pirregalloc$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pirregalloc.c \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pirdefines.h \
@@ -66,25 +71,30 @@
         compilers/pirc/src/bcgen.h \
         $(INC_DIR)/embed.h
 
-compilers/pirc/heredoc/heredocmain$(O) : $(PARROT_H_HEADERS)
+compilers/pirc/heredoc/heredocmain$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/heredoc/heredocmain.c  \
 
 compilers/pirc/macro/macrolexer$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/macro/macrolexer.c  \
         compilers/pirc/macro/macro.h  \
         compilers/pirc/macro/lexer.h  \
         compilers/pirc/macro/macroparser.h
 
 compilers/pirc/macro/macroparser$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/macro/macroparser.c  \
         compilers/pirc/macro/macro.h  \
         compilers/pirc/macro/lexer.h  \
         compilers/pirc/macro/macroparser.h \
         compilers/pirc/macro/macrolexer.h
 
 compilers/pirc/src/hdocprep$(O) : $(PARROT_H_HEADERS) \
-        $(INC_DIR)/embed.h compilers/pirc/src/pirheredoc.h
+        $(INC_DIR)/embed.h compilers/pirc/src/pirheredoc.h \
+        compilers/pirc/src/hdocprep.c
 
 compilers/pirc/src/main$(O) : \
         $(PARROT_H_HEADERS) \
         $(INC_DIR)/embed.h \
+        compilers/pirc/src/main.c \
         compilers/pirc/src/bcgen.h \
         compilers/pirc/src/pirparser.h \
         compilers/pirc/src/pircompiler.h \
@@ -101,6 +111,7 @@
 
 compilers/pirc/src/pircapi$(O) : \
         $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pircapi.c \
         compilers/pirc/src/bcgen.h \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pirparser.h \
@@ -116,6 +127,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/pircompiler$(O) : \
+        compilers/pirc/src/pircompiler.c \
         compilers/pirc/src/pircompiler.h \
         $(PARROT_H_HEADERS) \
         compilers/pirc/src/piryy.h \
@@ -129,6 +141,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/pircompunit$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pircompunit.c \
   compilers/pirc/src/pircompunit.h \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirsymbol.h \
@@ -145,6 +158,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirlexer$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirlexer.c \
   compilers/pirc/src/pirparser.h \
   compilers/pirc/src/pirmacro.h \
   compilers/pirc/src/pirerr.h \
@@ -158,6 +172,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirmacro$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirmacro.c \
   compilers/pirc/src/pirmacro.h \
   compilers/pirc/src/pircompunit.h \
   compilers/pirc/src/pircompiler.h \
@@ -168,6 +183,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirop$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirop.c \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pircompunit.h \
   compilers/pirc/src/pirop.h \
@@ -181,6 +197,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirpcc$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirpcc.c \
   compilers/pirc/src/pirpcc.h \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirerr.h \
@@ -195,6 +212,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirsymbol$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirsymbol.c \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirsymbol.h \
   compilers/pirc/src/piryy.h \

Deleted: branches/include_dynpmc_makefile/config/auto/cgoto.pm
==============================================================================
--- branches/include_dynpmc_makefile/config/auto/cgoto.pm	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,82 +0,0 @@
-# Copyright (C) 2001-2005, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/cgoto.pm - Computed C<goto>
-
-=head1 DESCRIPTION
-
-Determines whether the compiler supports computed C<goto>.
-
-=cut
-
-package auto::cgoto;
-
-use strict;
-use warnings;
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':auto';
-
-sub _init {
-    my $self = shift;
-    return {
-        'description' => 'Does your compiler support computed goto',
-        'result'      => '',
-    };
-}
-
-sub runstep {
-    my ( $self, $conf ) = @_;
-
-    my $test = _probe_for_cgoto( $conf );
-
-    $self->_evaluate_cgoto($conf, $test);
-
-    return 1;
-}
-
-sub _probe_for_cgoto {
-    my $conf = shift;
-    my $cgoto = $conf->options->get('cgoto');
-    my $test;
-    if ( defined $cgoto ) {
-        $test = $cgoto;
-    }
-    else {
-        $conf->cc_gen('config/auto/cgoto/test_c.in');
-        $test = eval { $conf->cc_build(); 1; } || 0;
-        $conf->cc_clean();
-    }
-    return $test;
-}
-
-sub _evaluate_cgoto {
-    my ($self, $conf, $test) = @_;
-    my $verbose = $conf->options->get('verbose');
-    if ($test) {
-        $conf->data->set(
-            cg_flag => '-DHAVE_COMPUTED_GOTO'
-        );
-        print " (yes) " if $verbose;
-        $self->set_result('yes');
-    }
-    else {
-        $conf->data->set(
-            cg_flag   => ''
-        );
-        print " (no) " if $verbose;
-        $self->set_result('no');
-    }
-}
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/include_dynpmc_makefile/config/auto/warnings.pm
==============================================================================
--- branches/include_dynpmc_makefile/config/auto/warnings.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/config/auto/warnings.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -139,7 +139,6 @@
         -Wpointer-sign
         -Wreturn-type
         -Wsequence-point
-        -Wno-shadow
         -Wsign-compare
         -Wstrict-aliasing
         -Wstrict-aliasing=2

Copied: branches/include_dynpmc_makefile/config/auto/zlib.pm (from r46115, trunk/config/auto/zlib.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/config/auto/zlib.pm	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/config/auto/zlib.pm)
@@ -0,0 +1,90 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+config/auto/zlib.pm - Test for zlib library
+
+=head1 DESCRIPTION
+
+This library is linked to a dynamic PMC.
+
+=cut
+
+package auto::zlib;
+
+use strict;
+use warnings;
+
+use base qw(Parrot::Configure::Step);
+
+use Parrot::Configure::Utils ':auto';
+
+
+sub _init {
+    my $self = shift;
+    my %data;
+    $data{description} = q{Does your platform support zlib};
+    $data{result}      = q{};
+    return \%data;
+}
+
+sub runstep {
+    my ( $self, $conf ) = @_;
+
+    my ( $verbose, $without ) = $conf->options->get(
+        qw|
+            verbose
+            without-zlib
+        |
+    );
+
+    if ($without) {
+        $conf->data->set( has_zlib => 0 );
+        $self->set_result('no');
+        return 1;
+    }
+
+    my $osname = $conf->data->get('osname');
+
+    my $extra_libs = $self->_select_lib( {
+        conf            => $conf,
+        osname          => $osname,
+        cc              => $conf->data->get('cc'),
+        win32_nongcc    => 'zlib.lib',
+        default         => '-lz',
+    } );
+
+    $conf->cc_gen('config/auto/zlib/zlib_c.in');
+    eval { $conf->cc_build( q{}, $extra_libs); };
+    my $has_zlib = 0;
+    if ( !$@ ) {
+        my $test = $conf->cc_run();
+        $has_zlib = $self->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+    }
+    $conf->data->set( has_zlib => $has_zlib );
+    $self->set_result($has_zlib ? 'yes' : 'no');
+
+    return 1;
+}
+
+sub _evaluate_cc_run {
+    my $self = shift;
+    my ($conf, $test, $has_zlib, $verbose) = @_;
+    if ( $test =~ m/^(\d\.\d\.\d)/ ) {
+        my $version = $1;
+        $has_zlib = 1;
+        print " (yes) " if $verbose;
+        $self->set_result("yes, $version");
+    }
+    return $has_zlib;
+}
+
+1;
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Copied: branches/include_dynpmc_makefile/config/auto/zlib/zlib_c.in (from r46115, trunk/config/auto/zlib/zlib_c.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/config/auto/zlib/zlib_c.in	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/config/auto/zlib/zlib_c.in)
@@ -0,0 +1,26 @@
+/*
+  Copyright (C) 2010, Parrot Foundation.
+  $Id$
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <zlib.h>
+
+int
+main(int argc, char *argv[])
+{
+    if (0 == strcmp(ZLIB_VERSION, zlibVersion())) {
+        printf("%s\n", ZLIB_VERSION);
+        return EXIT_SUCCESS;
+    }
+    printf("not same version between include and library\n");
+    return EXIT_FAILURE;
+}
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/include_dynpmc_makefile/config/gen/config_h/config_h.in
==============================================================================
--- branches/include_dynpmc_makefile/config/gen/config_h/config_h.in	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/config/gen/config_h/config_h.in	Wed Apr 28 19:17:12 2010	(r46116)
@@ -152,10 +152,6 @@
 /* Oplib and dynamic ops related. */
 #define PARROT_CORE_OPLIB_NAME "core"
 #define PARROT_CORE_OPLIB_INIT Parrot_DynOp_core_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_PREDEREF_OPLIB_INIT Parrot_DynOp_core_prederef_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_SWITCH_OPLIB_INIT Parrot_DynOp_core_switch_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_CG_OPLIB_INIT Parrot_DynOp_core_cg_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_CGP_OPLIB_INIT Parrot_DynOp_core_cgp_ at MAJOR@_ at MINOR@_ at PATCH@
 
 /* ICU. */
 #define PARROT_HAS_ICU @has_icu@

Modified: branches/include_dynpmc_makefile/config/gen/makefiles.pm
==============================================================================
--- branches/include_dynpmc_makefile/config/gen/makefiles.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/config/gen/makefiles.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -48,8 +48,6 @@
             conditioned_lines => 1,
         },
 
-        'compilers/ncigen/Makefile'  =>
-            { SOURCE => 'compilers/ncigen/config/makefiles/ncigen.in' },
         'src/dynpmc/Rules.mak' => {
              SOURCE => 'src/dynpmc/Rules.in',
         },

Modified: branches/include_dynpmc_makefile/config/gen/makefiles/root.in
==============================================================================
--- branches/include_dynpmc_makefile/config/gen/makefiles/root.in	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/config/gen/makefiles/root.in	Wed Apr 28 19:17:12 2010	(r46116)
@@ -85,7 +85,7 @@
 CC_SHARED        = @cc_shared@
 CC_O_OUT         = @cc_o_out@
 CC_WARN          = @ccwarn@
-CFLAGS           = $(CC_INC) @ccflags@ @cc_build_call_frames@ @cc_debug@ @cg_flag@ @gc_flag@ @clock_best@ $(CC_SHARED)
+CFLAGS           = $(CC_INC) @ccflags@ @cc_build_call_frames@ @cc_debug@ @gc_flag@ @clock_best@ $(CC_SHARED)
 LINK_DYNAMIC     = @link_dynamic@
 LINK             = @link@
 LINKFLAGS        = @linkflags@ @link_debug@ @ld_debug@
@@ -120,12 +120,10 @@
 include compilers/imcc/Defines.mak
 include compilers/pirc/Defines.mak
 include compilers/tge/Defines.mak
-include compilers/nqp/Defines.mak
 include compilers/pge/Defines.mak
 include compilers/pct/Defines.mak
 include ext/nqp-rx/Defines.mak
 include compilers/data_json/Defines.mak
-include compilers/json/Defines.mak
 
 ###############################################################################
 #
@@ -142,7 +140,6 @@
 GEN_MAKEFILES = \
     Makefile \
     docs/Makefile \
-    compilers/ncigen/Makefile \
     editor/Makefile \
     ext/Makefile \
     src/dynoplibs/Rules.mak \
@@ -173,8 +170,7 @@
     parrot.pc \
     compilers/imcc/imcc.y.flag \
     compilers/imcc/imcc.l.flag \
-    src/ops/core_ops.c \
-    src/ops/core_ops_switch.c
+    src/ops/core_ops.c
 
 GEN_PASM_INCLUDES = \
 	runtime/parrot/include/cclass.pasm \
@@ -240,7 +236,6 @@
     $(INC_DIR)/vtable.h \
     $(INC_DIR)/oplib/core_ops.h \
     $(INC_DIR)/oplib/ops.h \
-    $(INC_DIR)/oplib/core_ops_switch.h \
     $(INC_DIR)/extend_vtable.h \
     $(INC_DIR)/pbcversion.h
 
@@ -248,7 +243,6 @@
     src/core_ops.c \
     src/nci.c \
     src/glut_nci_thunks.c \
-    src/core_ops_switch.c \
     src/parrot_config.c \
     src/null_config.c \
     src/install_config.c \
@@ -407,12 +401,10 @@
         $(INC_DIR)/core_pmcs.h \
         $(INC_DIR)/compiler.h \
         $(INC_DIR)/cclass.h \
-        include/pmc/pmc_callcontext.h \
-        include/pmc/pmc_parrotinterpreter.h
+        include/pmc/pmc_callcontext.h
 
 # generated list of header files
 GENERAL_H_FILES   = $(NONGEN_HEADERS) $(GEN_HEADERS) \
-#IF(cg_flag): $(INC_DIR)/oplib/core_ops_cg.h $(INC_DIR)/oplib/core_ops_cgp.h
 
 
 CHARSET_O_FILES   = @TEMP_charset_o@
@@ -436,10 +428,7 @@
 
 INTERP_O_FILES = \
     src/string/api$(O) \
-    \
     src/ops/core_ops$(O) \
-    src/ops/core_ops_switch$(O) \
-    \
 #IF(i386_has_gcc_cmpxchg):    src/atomic/gcc_x86$(O) \
     src/byteorder$(O) \
     src/string/charset$(O) \
@@ -503,7 +492,6 @@
     @TEMP_atomic_o@ \
     @TEMP_gc_o@ \
 #IF(platform_asm):    src/platform_asm$(O) \
-#IF(cg_flag):     src/ops/core_ops_cg$(O) src/ops/core_ops_cgp$(O) \
 
 
 OPS_FILES = @ops@ $(GEN_OPSFILES)
@@ -618,7 +606,6 @@
     $(TGE_LIB_PBCS) \
     $(PGE_LIB_PBCS) \
     $(PCT_LIB_PBCS) \
-    $(JSON_LIB_PBCS) \
     $(DATA_JSON_LIB_PBCS) \
     $(NQP_LIB_PBCS) \
     $(GEN_LIBRARY) \
@@ -876,28 +863,33 @@
 	@echo "Invoking Parrot to generate install_config.fpmc"
 	$(PARROT) config_lib.pir --install > $@
 
-src/parrot_config$(O) : $(PARROT_H_HEADERS)
+src/parrot_config$(O) : $(PARROT_H_HEADERS) src/parrot_config.c
 
-src/install_config$(O) : $(PARROT_H_HEADERS)
+src/install_config$(O) : $(PARROT_H_HEADERS) src/install_config.c
 
-src/null_config$(O) : $(PARROT_H_HEADERS)
+src/null_config$(O) : $(PARROT_H_HEADERS) src/null_config.c
 
-src/oo$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_class.h include/pmc/pmc_object.h src/oo.str $(INC_DIR)/oo_private.h
+src/oo$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_class.h src/oo.c \
+    include/pmc/pmc_object.h src/oo.str $(INC_DIR)/oo_private.h
 
-src/scheduler$(O) : $(PARROT_H_HEADERS) src/scheduler.str \
+src/scheduler$(O) : $(PARROT_H_HEADERS) src/scheduler.str src/scheduler.c \
         include/pmc/pmc_scheduler.h include/pmc/pmc_task.h \
         include/pmc/pmc_timer.h \
-        $(INC_DIR)/scheduler_private.h
+        $(INC_DIR)/scheduler_private.h \
+        $(INC_DIR)/runcore_api.h
 
-src/io/core$(O) : $(PARROT_H_HEADERS) src/io/io_private.h
+src/io/core$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/core.c
 
-src/io/socket_api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/api.str include/pmc/pmc_socket.h
+src/io/socket_api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+    src/io/api.str include/pmc/pmc_socket.h src/io/socket_api.c
 
-src/io/socket_unix$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_socket.h src/io/io_private.h
+src/io/socket_unix$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_socket.h \
+    src/io/io_private.h src/io/socket_unix.c
 
 src/io/socket_win32$(O) : $(PARROT_H_HEADERS) \
         src/io/io_private.h \
-        include/pmc/pmc_socket.h
+        include/pmc/pmc_socket.h \
+        src/io/socket_win32.c
 
 O_FILES = \
     $(INTERP_O_FILES) \
@@ -950,7 +942,7 @@
 $(INSTALLABLENCITHUNKGEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE) src/install_config$(O)
 	$(PBC_TO_EXE) parrot_nci_thunk_gen.pbc --install
 
-$(INSTALLABLETAPIR) : tapir.pbc $(PBC_TO_EXE)
+$(INSTALLABLETAPIR) : tapir.pbc $(PBC_TO_EXE) src/install_config$(O)
 	$(PBC_TO_EXE) tapir.pbc --install
 
 #
@@ -958,6 +950,7 @@
 #
 
 src/parrot_debugger$(O) : $(INC_DIR)/embed.h \
+        src/parrot_debugger.c \
         $(INC_DIR)/runcore_api.h \
         compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
         compilers/imcc/cfg.h \
@@ -987,7 +980,8 @@
 # Parrot Disassembler
 #
 
-src/pbc_disassemble$(O) : $(INC_DIR)/embed.h $(PARROT_H_HEADERS)
+src/pbc_disassemble$(O) : $(INC_DIR)/embed.h $(PARROT_H_HEADERS) \
+    src/pbc_disassemble.c
 
 $(DIS) : src/pbc_disassemble$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
@@ -1005,7 +999,8 @@
 #
 # Parrot Dump
 #
-src/packdump$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_sub.h include/pmc/pmc_key.h
+src/packdump$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_sub.h \
+    include/pmc/pmc_key.h src/packdump.c
 
 $(PDUMP) : src/pbc_dump$(O) src/packdump$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
@@ -1014,7 +1009,7 @@
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 src/pbc_dump$(O) : $(INC_DIR)/embed.h  $(INC_DIR)/oplib/ops.h \
-        $(PARROT_H_HEADERS)
+        $(PARROT_H_HEADERS) src/pbc_dump.c
 
 $(INSTALLABLEPDUMP) : src/pbc_dump$(O) src/packdump$(O) \
 	src/install_config$(O) $(LIBPARROT)
@@ -1222,59 +1217,59 @@
 #
 ###############################################################################
 
-src/byteorder$(O) : $(PARROT_H_HEADERS)
+src/byteorder$(O) : $(PARROT_H_HEADERS) src/byteorder.c
 
-src/datatypes$(O) : $(PARROT_H_HEADERS)
+src/datatypes$(O) : $(PARROT_H_HEADERS) src/datatypes.c
 
 src/extend_vtable$(O) : $(PARROT_H_HEADERS) \
-        $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h
+        $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/extend_vtable.c
 
-src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str
+src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str src/global_setup.c
 
-src/global$(O) : $(PARROT_H_HEADERS) src/global.str \
+src/global$(O) : $(PARROT_H_HEADERS) src/global.str src/global.c \
 	include/pmc/pmc_sub.h
 
-src/pmc$(O) : include/pmc/pmc_class.h \
+src/pmc$(O) : include/pmc/pmc_class.h src/pmc.c \
 	src/pmc.str $(PARROT_H_HEADERS)
 
-src/pmc_freeze$(O) : $(PARROT_H_HEADERS) src/pmc_freeze.str
+src/pmc_freeze$(O) : $(PARROT_H_HEADERS) src/pmc_freeze.str src/pmc_freeze.c
 
-src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h
+src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/hash.c
 
-src/library$(O) : $(PARROT_H_HEADERS) src/library.str \
+src/library$(O) : $(PARROT_H_HEADERS) src/library.str src/library.c\
         $(INC_DIR)/dynext.h
 
 $(INC_DIR)/extend_vtable.h src/extend_vtable.c src/vtable.h : src/vtable.tbl $(BUILD_TOOLS_DIR)/vtable_extend.pl lib/Parrot/Vtable.pm
 	$(PERL) $(BUILD_TOOLS_DIR)/vtable_extend.pl
 
-src/key$(O) : $(PARROT_H_HEADERS) src/key.str \
+src/key$(O) : $(PARROT_H_HEADERS) src/key.str src/key.c \
         include/pmc/pmc_key.h
 
-src/gc/mark_sweep$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/mark_sweep$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/mark_sweep.c
 
-src/gc/gc_ms$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/gc_ms$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/gc_ms.c
 
-src/gc/gc_inf$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/gc_inf$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/gc_inf.c
 
-src/gc/api$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/api$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/api.c
 
 src/gc/alloc_resources$(O) : $(PARROT_H_HEADERS) \
-        src/gc/gc_private.h
+        src/gc/gc_private.h src/gc/alloc_resources.c
 
-src/hll$(O) : $(PARROT_H_HEADERS) src/hll.str $(INC_DIR)/dynext.h
+src/hll$(O) : $(PARROT_H_HEADERS) src/hll.str $(INC_DIR)/dynext.h src/hll.c
 
-src/platform$(O) : $(PARROT_H_HEADERS)
+src/platform$(O) : $(PARROT_H_HEADERS) src/platform.c
 
 #IF(platform_asm):src/platform_asm$(O) : $(PARROT_H_HEADERS)
 #IF(platform_asm):
-src/core_pmcs$(O) : $(PARROT_H_HEADERS)
+src/core_pmcs$(O) : $(PARROT_H_HEADERS) src/core_pmcs.c
 
-src/runcore/trace$(O) : include/pmc/pmc_sub.h \
+src/runcore/trace$(O) : include/pmc/pmc_sub.h src/runcore/trace.c \
         $(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_trace.h \
         $(PARROT_H_HEADERS)
 
 src/debug$(O) : $(INC_DIR)/embed.h $(INC_DIR)/extend.h \
-        $(PARROT_H_HEADERS) \
+        $(PARROT_H_HEADERS) src/debug.c \
         $(INC_DIR)/oplib/ops.h \
         $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
         src/debug.str include/pmc/pmc_key.h \
@@ -1282,26 +1277,27 @@
         $(INC_DIR)/extend_vtable.h
 
 src/sub$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
-        src/sub.str \
+        src/sub.str src/sub.c \
 	include/pmc/pmc_sub.h include/pmc/pmc_continuation.h
 
 src/string/api$(O) : $(PARROT_H_HEADERS) src/string/api.str \
-        src/string/private_cstring.h
+        src/string/private_cstring.h src/string/api.c
 
-src/string/primitives$(O) : $(PARROT_H_HEADERS)
+src/string/primitives$(O) : $(PARROT_H_HEADERS) src/string/primitives.c
 
-src/longopt$(O) : $(PARROT_H_HEADERS)
+src/longopt$(O) : $(PARROT_H_HEADERS) src/longopt.c
 
 src/dynext$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/dynext.h \
-        src/dynext.str include/pmc/pmc_parrotlibrary.h
+        src/dynext.str include/pmc/pmc_parrotlibrary.h src/dynext.c
 
 src/exceptions$(O) : $(PARROT_H_HEADERS) \
-        src/exceptions.str \
+        src/exceptions.str src/exceptions.c \
 	include/pmc/pmc_continuation.h
 
-src/thread$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic.h \
+src/thread$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic.h src/thread.c \
         include/pmc/pmc_sub.h \
-	include/pmc/pmc_parrotinterpreter.h
+	include/pmc/pmc_parrotinterpreter.h \
+	$(INC_DIR)/runcore_api.h
 
 ## SUFFIX OVERRIDE - dynloaded files need cc_shared
 src/extend$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/extend.h \
@@ -1309,14 +1305,15 @@
 	$(CC) $(CFLAGS) @optimize::src/extend.c@ @ccwarn::src/extend.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/extend.c
 
 src/runcore/main$(O) : \
+	src/runcore/main.c \
 	src/runcore/main.str \
 	include/pmc/pmc_parrotlibrary.h \
         $(INC_DIR)/dynext.h $(INC_DIR)/oplib/core_ops.h \
-        $(INC_DIR)/oplib/core_ops_switch.h $(INC_DIR)/oplib/ops.h \
+        $(INC_DIR)/oplib/ops.h \
         $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h \
         $(INC_DIR)/runcore_profiling.h
 
-src/runcore/profiling$(O) : src/runcore/profiling.str \
+src/runcore/profiling$(O) : src/runcore/profiling.str src/runcore/profiling.c \
 	include/pmc/pmc_sub.h \
 	include/pmc/pmc_namespace.h \
         $(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h \
@@ -1325,25 +1322,30 @@
 
 src/call/args$(O) : \
         $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
+	src/call/args.c \
 	src/call/args.str \
 	include/pmc/pmc_key.h \
 	include/pmc/pmc_fixedintegerarray.h
 
-src/call/context_accessors$(O): $(PARROT_H_HEADERS)
+src/call/context_accessors$(O): $(PARROT_H_HEADERS) \
+        src/call/context_accessors.c
 
 src/call/pcc$(O) : $(INC_DIR)/oplib/ops.h \
         $(PARROT_H_HEADERS) \
         $(INC_DIR)/runcore_api.h \
+	src/call/pcc.c \
 	src/call/pcc.str \
 	include/pmc/pmc_key.h include/pmc/pmc_continuation.h
 
 src/call/context$(O) : $(PARROT_H_HEADERS) \
-	include/pmc/pmc_sub.h
+	include/pmc/pmc_sub.h src/call/context.c
 
 src/interp/inter_cb$(O) : $(PARROT_H_HEADERS) \
-	src/interp/inter_cb.str
+        include/pmc/pmc_parrotinterpreter.h \
+	src/interp/inter_cb.str src/interp/inter_cb.c
 
 src/interp/inter_misc$(O) : $(PARROT_H_HEADERS) \
+        src/interp/inter_misc.c \
         src/interp/inter_misc.str \
 	compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
@@ -1357,6 +1359,8 @@
 
 src/interp/inter_create$(O) : $(PARROT_H_HEADERS) \
 	$(INC_DIR)/oplib/core_ops.h \
+	src/gc/gc_private.h \
+        src/interp/inter_create.c \
         src/interp/inter_create.str \
 	compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
@@ -1369,33 +1373,43 @@
         $(INC_DIR)/runcore_api.h
 
 src/call/ops$(O) : $(INC_DIR)/oplib/ops.h \
-	$(PARROT_H_HEADERS) include/pmc/pmc_continuation.h
+	$(PARROT_H_HEADERS) include/pmc/pmc_continuation.h \
+        $(INC_DIR)/runcore_api.h src/call/ops.c
 
 src/io/api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+        src/io/api.c \
         src/io/api.str include/pmc/pmc_filehandle.h \
-        include/pmc/pmc_stringhandle.h
+        include/pmc/pmc_stringhandle.h \
+        $(INC_DIR)/extend.h \
+        $(INC_DIR)/extend_vtable.h
 
-src/io/buffer$(O) : $(PARROT_H_HEADERS) src/io/io_private.h
+src/io/buffer$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/buffer.c
 
-src/io/portable$(O) : $(PARROT_H_HEADERS) src/io/io_private.h
+src/io/portable$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/portable.c
 
-src/io/unix$(O) : $(PARROT_H_HEADERS) src/io/io_private.h include/pmc/pmc_filehandle.h
+src/io/unix$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+    include/pmc/pmc_filehandle.h src/io/unix.c
 
-src/io/utf8$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/string/unicode.h
+src/io/utf8$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/string/unicode.h \
+    src/io/utf8.c
 
-src/io/win32$(O) : $(PARROT_H_HEADERS) src/io/io_private.h include/pmc/pmc_filehandle.h
+src/io/win32$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+    include/pmc/pmc_filehandle.h src/io/win32.c
 
-src/gc/alloc_memory$(O) : $(PARROT_H_HEADERS)
+src/gc/alloc_memory$(O) : $(PARROT_H_HEADERS) src/gc/alloc_memory.c
 
 src/main$(O) : $(INC_DIR)/imcc.h $(PARROT_H_HEADERS) \
-        $(INC_DIR)/embed.h
+        $(INC_DIR)/embed.h $(INC_DIR)/runcore_api.h src/gc/gc_private.h \
+        src/main.c
 
 src/multidispatch$(O) : \
+        src/multidispatch.c \
         src/multidispatch.str \
         $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS) \
 	include/pmc/pmc_nci.h include/pmc/pmc_sub.h
 
 src/packfile$(O) : src/packfile.str \
+        src/packfile.c \
 	include/pmc/pmc_sub.h include/pmc/pmc_key.h \
         compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
@@ -1408,20 +1422,22 @@
         $(INC_DIR)/embed.h $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h \
         $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h
 
-src/packfile/pf_items$(O) : $(PARROT_H_HEADERS)
+src/packfile/pf_items$(O) : $(PARROT_H_HEADERS) src/packfile/pf_items.c
 
-src/packout$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h
+src/packout$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/packout.c
 
 src/parrot$(O) : $(GENERAL_H_FILES)
 
 src/runcore/cores$(O) : src/runcore/cores.str \
+        src/runcore/cores.c \
 	include/pmc/pmc_sub.h \
         $(INC_DIR)/dynext.h $(INC_DIR)/embed.h $(INC_DIR)/oplib/core_ops.h \
-        $(INC_DIR)/oplib/core_ops_switch.h $(INC_DIR)/oplib/ops.h \
+        $(INC_DIR)/oplib/ops.h \
         $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
         $(PARROT_H_HEADERS)
 
 src/embed$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/embed.h \
+        src/embed.c \
         $(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_api.h \
         compilers/imcc/imc.h \
         compilers/imcc/cfg.h \
@@ -1434,55 +1450,55 @@
 
 src/dataypes$(O) : $(GENERAL_H_FILES) src/dataypes.c
 
-src/exit$(O) : $(PARROT_H_HEADERS)
+src/exit$(O) : $(PARROT_H_HEADERS) src/exit.c
 
 src/nci/api$(O) : src/nci/api.str \
-        $(PARROT_H_HEADERS) \
-        include/pmc/pmc_unmanagedstruct.h \
-        include/pmc/pmc_nci.h
+        src/nci/api.c \
+        $(PARROT_H_HEADERS)
 
-src/nci/core_thunks$(O) : src/nci/core_thunks.str \
+src/nci/core_thunks$(O) : src/nci/core_thunks.c \
         $(PARROT_H_HEADERS) \
-        include/pmc/pmc_unmanagedstruct.h \
         include/pmc/pmc_nci.h
 
 ## SUFFIX OVERRIDE
-src/nci/extra_thunks$(O) : src/nci/extra_thunks.str \
+src/nci/extra_thunks$(O) : \
     $(PARROT_H_HEADERS) \
-    include/pmc/pmc_unmanagedstruct.h \
     include/pmc/pmc_nci.h \
     src/nci/extra_thunks.c
 	$(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci/extra_thunks.c
 
 src/frame_builder$(O) : $(PARROT_H_HEADERS) src/frame_builder.h \
+        src/frame_builder.c \
         include/pmc/pmc_fixedintegerarray.h \
         include/pmc/pmc_unmanagedstruct.h \
         include/pmc/pmc_managedstruct.h \
         $(INC_DIR)/oplib/ops.h
 
-src/vtables$(O) : $(PARROT_H_HEADERS)
+src/vtables$(O) : $(PARROT_H_HEADERS) src/vtables.c
 
 ## SUFFIX OVERRIDE
-src/gc/system$(O) : $(PARROT_H_HEADERS)  src/gc/gc_private.h
+src/gc/system$(O) : $(PARROT_H_HEADERS)  src/gc/gc_private.h src/gc/system.c
 	$(CC) $(CFLAGS) @optimize::src/gc/system.c@ @ccwarn::src/gc/system.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/gc/system.c
 
 src/gc/gc_private.h : $(INC_DIR)/settings.h
 
-src/warnings$(O) : $(PARROT_H_HEADERS)
+src/gc/malloc$(O) : src/gc/malloc.c
+
+src/warnings$(O) : $(PARROT_H_HEADERS) src/warnings.c
 
-src/misc$(O) : $(PARROT_H_HEADERS)
+src/misc$(O) : $(PARROT_H_HEADERS) src/misc.c
 
-src/utils$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_nci.h
+src/utils$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_nci.h src/utils.c
 
 ## SUFFIX OVERRIDE
-src/spf_render$(O) : $(PARROT_H_HEADERS) src/spf_render.str
+src/spf_render$(O) : $(PARROT_H_HEADERS) src/spf_render.str src/spf_render.c
 	$(CC) $(CFLAGS) @optimize::src/spf_render.c@ @ccwarn::src/spf_render.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/spf_render.c
 
-src/spf_vtable$(O) : $(PARROT_H_HEADERS) src/spf_vtable.str
+src/spf_vtable$(O) : $(PARROT_H_HEADERS) src/spf_vtable.str src/spf_vtable.c
 
-src/string/encoding$(O) : $(PARROT_H_HEADERS)
+src/string/encoding$(O) : $(PARROT_H_HEADERS) src/string/encoding.c
 
-src/string/charset$(O) : $(PARROT_H_HEADERS) \
+src/string/charset$(O) : $(PARROT_H_HEADERS) src/string/charset.c \
         src/string/encoding/fixed_8.h \
         src/string/encoding/utf8.h \
         src/string/encoding/utf16.h \
@@ -1492,16 +1508,18 @@
         src/string/charset/iso-8859-1.h \
         src/string/charset/unicode.h
 
-src/pbc_merge$(O) : $(INC_DIR)/embed.h \
+src/pbc_merge$(O) : $(INC_DIR)/embed.h src/pbc_merge.c \
 	include/pmc/pmc_sub.h $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS)
 
-src/io/filehandle$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_filehandle.h src/io/io_private.h
+src/io/filehandle$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_filehandle.h \
+    src/io/io_private.h src/io/filehandle.c
 
-src/gc/malloc_trace$(O) : src/gc/malloc.c
+src/gc/malloc_trace$(O) : src/gc/malloc.c src/gc/malloc_trace.c
 
-src/packfile/pf_items$(O) : $(PARROT_H_HEADERS)
+src/packfile/pf_items$(O) : $(PARROT_H_HEADERS) src/packfile/pf_items.c
 
-src/atomic/gcc_x86$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic/gcc_x86.h
+src/atomic/gcc_x86$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic/gcc_x86.h \
+    src/atomic/gcc_x86.c
 
 # core_ops depends upon config.h so that it gets updated along with
 # updates to config.h's version numbers
@@ -1521,41 +1539,6 @@
 	include/pmc/pmc_continuation.h
 	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --core @no_lines_flag@
 
-## SUFFIX OVERRIDE
-src/ops/core_ops_switch$(O) : $(GENERAL_H_FILES) src/ops/core_ops_switch.c \
-	include/pmc/pmc_parrotlibrary.h
-	$(CC) $(CFLAGS) @optimize::src/ops/core_ops_switch.c@ @ccwarn::src/ops/core_ops_switch.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/ops/core_ops_switch.c
-
-$(INC_DIR)/oplib/core_ops_switch.h : src/ops/core_ops_switch.c
-
-src/ops/core_ops_switch.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl \
-	lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC_DIR)/config.h \
-	lib/Parrot/OpLib/core.pm lib/Parrot/OpTrans/CSwitch.pm \
-	lib/Parrot/OpTrans/CPrederef.pm
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CSwitch --core @no_lines_flag@
-
-## SUFFIX OVERRIDE
-src/ops/core_ops_cg$(O): $(GENERAL_H_FILES) src/ops/core_ops_cg.c \
-        include/pmc/pmc_parrotlibrary.h
-	$(CC) $(CFLAGS) @optimize::src/ops/core_ops_cg.c@ @ccwarn::src/ops/core_ops_cg.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/ops/core_ops_cg.c
-
-## SUFFIX OVERRIDE
-src/ops/core_ops_cgp$(O): $(GENERAL_H_FILES) src/ops/core_ops_cgp.c \
-        include/pmc/pmc_parrotlibrary.h
-	$(CC) $(CFLAGS) @optimize::src/ops/core_ops_cgp.c@ @ccwarn::src/ops/core_ops_cgp.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/ops/core_ops_cgp.c
-
-src/runcore/cores.c: $(INC_DIR)/oplib/core_ops_cgp.h
-
-$(INC_DIR)/oplib/core_ops_cg.h: src/ops/core_ops_cg.c
-
-src/ops/core_ops_cg.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGoto.pm lib/Parrot/OpLib/core.pm
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGoto --core
-
-$(INC_DIR)/oplib/core_ops_cgp.h: src/ops/core_ops_cgp.c
-
-src/ops/core_ops_cgp.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGP.pm lib/Parrot/OpLib/core.pm lib/Parrot/OpTrans/CPrederef.pm
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGP --core
-
 @TEMP_gc_c@
 
 @TEMP_pmc_build@
@@ -1694,16 +1677,12 @@
 # integrating them in a single run is difficult.
 
 # Normal test package
-test : test_core nqp_test
+test : test_core
 
 # Test Parrot core.
 test_core: test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS)
 
-# Test the NQP compiler
-nqp_test : test_prep compilers/nqp/nqp.pbc
-	$(PERL) compilers/nqp/t/harness
-
 # run the test suite, create a TAP archive and send it off to smolder
 smolder_test : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) --archive --send-to-smolder
@@ -1721,21 +1700,17 @@
 check : test
 
 # Test various run cores and other stuff
-# 'testC', 'testg' and 'testj' are tested only
+# 'testg' and 'testj' are tested only
 # when the needed runcores are available
 fulltest :
 	- at make@ testb \
-#IF(cg_flag):	testC \
 	testf \
-#IF(cg_flag):	testg \
 	testr \
-	testS \
 	src_tests \
 	run_tests \
 	buildtools_tests \
 	perl_tests \
 	library_tests \
-	nqp_test \
 	codetest \
 	benchmark_tests \
 	manifest_tests \
@@ -1746,10 +1721,6 @@
 testb : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) -b $(RUNCORE_TEST_FILES)
 
-# CGP core
-testC : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) -C $(RUNCORE_TEST_FILES)
-
 # fast core
 testf : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) -f $(RUNCORE_TEST_FILES)
@@ -1770,18 +1741,6 @@
 testr : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) -r $(RUNCORE_TEST_FILES)
 
-# switched core
-testS : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) -S $(RUNCORE_TEST_FILES)
-
-# Computed goto jitted core - target retained, but falls back to standard core
-testCj : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) $(RUNCORE_TEST_FILES)
-
-# switched jitted core - target retained, but falls back to standard core
-testSj : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) $(RUNCORE_TEST_FILES)
-
 # test the EXEC stuff
 testexec: test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) --run-exec $(RUNCORE_TEST_FILES)
@@ -1854,13 +1813,12 @@
     ext-clean \
 #UNLESS(win32):    cover-clean \
     editor-clean
-	$(RM_F) $(INC_DIR)/oplib/core_ops_cg.h src/ops/core_ops_cg.c \
-    $(INC_DIR)/oplib/core_ops_cgp.h src/ops/core_ops_cgp.c
+	$(RM_F) $(INC_DIR)/oplib/core_ops_cg.h src/ops/core_ops_cg.c
 	$(RM_F) chartypes "*.s" "*~"
 	$(RM_F) $(FLUID_FILES_1)
 	$(RM_F) $(FLUID_FILES_2)
 	$(RM_RF) lib/Parrot/OpLib
-	$(RM_F) $(NQP_CLEANUPS) $(PGE_CLEANUPS) $(TGE_CLEANUPS) $(JSON_CLEANUPS)
+	$(RM_F) $(NQP_CLEANUPS) $(PGE_CLEANUPS) $(TGE_CLEANUPS)
 	$(RM_F) $(PIRC_CLEANUPS) $(PCT_CLEANUPS) $(DATA_JSON_CLEANUPS)
 	$(RM_F) $(DYNOPLIBS_CLEANUPS) $(DYNPMC_CLEANUPS)
 	$(RM_F) $(GEN_PASM_INCLUDES) $(GEN_PM_INCLUDES)
@@ -2306,16 +2264,12 @@
 cover: \
     cover.dummy \
     cover-testb \
-#IF(cg_flag):    cover-testC \
     cover-testf \
-#IF(cg_flag):    cover-testg \
     cover-testr \
-    cover-testS \
     cover-src \
     cover-run \
     cover-perl \
     cover-extra \
-    cover-nqp \
     cover-codingstd \
     cover-benchmark \
     cover-manifest \
@@ -2338,9 +2292,6 @@
 cover-testb: cover.dummy
 	- at make@ testb
 
-cover-testC: cover.dummy
-	- at make@ testC
-
 cover-testf: cover.dummy
 	- at make@ testf
 
@@ -2353,9 +2304,6 @@
 cover-testr: cover.dummy
 	- at make@ testr
 
-cover-testS: cover.dummy
-	- at make@ testS
-
 cover-src: cover.dummy
 	- at make@ src_tests
 
@@ -2368,9 +2316,6 @@
 cover-extra: cover.dummy
 	- at make@ library_tests
 
-cover-nqp: cover.dummy
-	- at make@ nqp_test
-
 cover-codingstd: cover.dummy
 	- at make@ codingstd_tests
 
@@ -2479,7 +2424,8 @@
     @ld_out@$@ src/nci_test$(O) $(C_LIBS)
 
 # for use by runtime/parrot/library/OpenGL.pir
-src/glut_callbacks$(O): $(GENERAL_H_FILES)
+src/glut_callbacks$(O): $(PARROT_H_HEADERS) \
+    $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/glut_callbacks.c
 
 src/glut_nci_thunks.c: $(NCI_THUNK_GEN)
 	$(NCI_THUNK_GEN) \
@@ -2488,7 +2434,9 @@
 	    --output=src/glut_nci_thunks.c \
 	    <src/glut_nci_thunks.nci
 
-src/glut_nci_thunks$(O): $(GENERAL_H_FILES)
+src/glut_nci_thunks$(O) : $(PARROT_H_HEADERS) \
+    src/glut_nci_thunks.c \
+    include/pmc/pmc_nci.h
 
 $(LIBGLUTCB_SO): $(LIBPARROT) src/glut_callbacks$(O) src/glut_nci_thunks$(O)
 	$(LD) $(LD_LOAD_FLAGS) $(LDFLAGS) \
@@ -2500,7 +2448,8 @@
 	    --output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
 
 ## SUFFIX OVERRIDE
-src/extra_nci_thunks$(O) : $(GENERAL_H_FILES) src/extra_nci_thunks.c
+src/extra_nci_thunks$(O) : $(PARROT_H_HEADERS) src/extra_nci_thunks.c \
+    include/pmc/pmc_nci.h
 	$(CC) $(CFLAGS) @optimize::src/extra_nci_thunks.c@ @ccwarn::src/extra_nci_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/extra_nci_thunks.c
 
 $(EXTRANCITHUNKS_SO) : $(LIBPARROT) src/extra_nci_thunks$(O)
@@ -2579,12 +2528,10 @@
 include runtime/parrot/library/Rules.mak
 include compilers/imcc/Rules.mak
 include compilers/pirc/Rules.mak
-include compilers/nqp/Rules.mak
 include compilers/pge/Rules.mak
 include compilers/pct/Rules.mak
 include compilers/tge/Rules.mak
 include compilers/data_json/Rules.mak
-include compilers/json/Rules.mak
 include ext/nqp-rx/Rules.mak
 
 # Local variables:

Modified: branches/include_dynpmc_makefile/config/init/optimize.pm
==============================================================================
--- branches/include_dynpmc_makefile/config/init/optimize.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/config/init/optimize.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -74,17 +74,6 @@
     $conf->data->set( cc_debug => '' );
     $conf->data->add( ' ', ccflags => "-DDISABLE_GC_DEBUG=1 -DNDEBUG" );
 
-    # per file overrides - not every compiler can optimize every file.
-
-    # The src/ops/core_ops*.c files are challenging to optimize.
-    # gcc can usually handle it, but don't assume any other compilers can,
-    # until there is specific evidence otherwise.
-    if ( ! defined($gccversion)) {
-        $conf->data->set('optimize::src/ops/core_ops_cg.c','');
-        $conf->data->set('optimize::src/ops/core_ops_cgp.c','');
-        $conf->data->set('optimize::src/ops/core_ops_switch.c','');
-    }
-
     # TT #405
     if ($conf->data->get('cpuarch') eq 'amd64') {
         $conf->data->set('optimize::src/gc/system.c','');

Modified: branches/include_dynpmc_makefile/docs/book/draft/appc_command_line_options.pod
==============================================================================
--- branches/include_dynpmc_makefile/docs/book/draft/appc_command_line_options.pod	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/docs/book/draft/appc_command_line_options.pod	Wed Apr 28 19:17:12 2010	(r46116)
@@ -260,18 +260,6 @@
 
 Run with the I<fast core>.
 
-=item -R cgoto
-
-Run the I<computed goto core> (CGoto).
-
-=item -R cgp
-
-Run with the I<CGoto-Prederefed> core.
-
-=item -R switch
-
-Run with the I<Switched core>.
-
 =item -R gcdebug
 
 Performs a full GC run before every op dispatch

Modified: branches/include_dynpmc_makefile/docs/configuration.pod
==============================================================================
--- branches/include_dynpmc_makefile/docs/configuration.pod	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/docs/configuration.pod	Wed Apr 28 19:17:12 2010	(r46116)
@@ -123,10 +123,6 @@
 
 =over 4
 
-=item F<config/auto/cgoto.pm>
-
-    Does your compiler support computed goto...
-
 =item F<gen/config_h.pm>
 
     Generate C headers...
@@ -136,7 +132,7 @@
 Note that on non-interactive steps, the text I<done> will be printed after the
 description when the step finishes executing; for example, the user will see:
 
-    Does your compiler support computed goto..............done.
+    Determine flags for building shared libraries.....-fPIC
 
 =item C<result>
 

Modified: branches/include_dynpmc_makefile/docs/embed.pod
==============================================================================
--- branches/include_dynpmc_makefile/docs/embed.pod	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/docs/embed.pod	Wed Apr 28 19:17:12 2010	(r46116)
@@ -145,12 +145,6 @@
 
 =item PARROT_FAST_CORE
 
-=item PARROT_SWITCH_CORE
-
-=item PARROT_CGP_CORE
-
-=item PARROT_CGOTO_CORE
-
 =item PARROT_EXEC_CORE
 
 =item PARROT_GC_DEBUG_CORE
@@ -236,7 +230,7 @@
 Creates a "dummy" packfile in lieu of actually creating one from a bytecode
 file on disk.
 
-=item C<void Parrot_load_bytecode(PARROT_INTERP, const char *path)>
+=item C<void Parrot_load_bytecode(PARROT_INTERP, STRING *path)>
 
 Reads and load Parrot bytecode or PIR from the file referenced by C<path>.
 You should create a dummy packfile beforehand; see C<PackFile_new_dummy> for

Modified: branches/include_dynpmc_makefile/docs/porting_intro.pod
==============================================================================
--- branches/include_dynpmc_makefile/docs/porting_intro.pod	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/docs/porting_intro.pod	Wed Apr 28 19:17:12 2010	(r46116)
@@ -13,39 +13,6 @@
 internals.  For each feature, a brief description of its purpose, hints on
 helping to port it, and pointers to more information are included.
 
-=head1 CGoto or CGP (CGoto Predereferenced)
-
-=head2 What it is
-
-"Computed goto" is a non-standard C feature that allows taking a pointer to an
-statement label (e.g. "LOOP:" ) using the unary && operator.  Certain Parrot
-runcores make use of this feature as an optimization.
-
-=head2 How to help
-
-If cgoto is not supported in Parrot by default on your platform, try to compile
-config/auto/cgoto/test_c.in with your C compiler and determine why it fails. If
-the compiler does not support the computed goto concept at all, this feature
-cannot be made to work (don't worry, there are other runcores).  However, if
-the compiler supports it but the test is inadequate, please submit a bug report
-describing how the implementation of this feature differs from what Parrot
-expects.
-
-Note that gcc supports this feature out of the box, though it sometimes
-struggles with it in low-memory situations.  Failures during compilation of
-core_ops_cg.c are frequently caused by insufficient resources rather than bugs
-in gcc or Parrot.
-
-=head2 References
-
-=over 4
-
-=item * F<config/auto/cgoto/test_c.in>
-
-=item * I<make testC>
-
-=back
-
 =head1 Threads
 
 =head2 What it is

Modified: branches/include_dynpmc_makefile/docs/project/release_manager_guide.pod
==============================================================================
--- branches/include_dynpmc_makefile/docs/project/release_manager_guide.pod	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/docs/project/release_manager_guide.pod	Wed Apr 28 19:17:12 2010	(r46116)
@@ -66,7 +66,7 @@
 =item a
 
 Increment the version number in the following files:
-F<VERSION>, F<MANIFEST.generated>, F<META.yml>, F<README>.
+F<VERSION>, F<MANIFEST.generated>, F<README>.
 
 Also update the version number, date, and your name in the
 the file: F<docs/parrothist.pod>.

Modified: branches/include_dynpmc_makefile/docs/running.pod
==============================================================================
--- branches/include_dynpmc_makefile/docs/running.pod	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/docs/running.pod	Wed Apr 28 19:17:12 2010	(r46116)
@@ -135,12 +135,8 @@
 may be available on your system:
 
   slow, bounds  bounds checking core (default)
-  cgoto         computed goto core
-  cgp           computed goto-predereferenced core
-  fast          fast core (no bounds checking, profiling, or tracing)
   gcdebug       performs a full GC run before every op dispatch (good for
                 debugging GC problems)
-  switch        switch core
   trace         bounds checking core w/ trace info (see 'parrot --help-debug')
   profiling     see F<docs/dev/profilling.pod>
 
@@ -249,28 +245,6 @@
 The trace and profile cores are also based on the "slow" core, doing
 full bounds checking, and also printing runtime information to stderr.
 
-The switched core eschews these tiny op functions in favor of cases in a large
-switch statement:
-
-    switch_runcore( op ):
-        while ( op ):
-            switch *op:
-                case NOP:
-                    ...
-                case STORE:
-                    ...
-                ...
-
-Depending on the C compiler implementation, this may be faster than function
-calling.  On older systems, it may fail to compile altogether.
-
-The computed-goto ("cgoto") runcore avoids the overhead of function
-calls by jumping directly to the address where each opcode's function
-starts.  The computed-goto-prederef ("CGP") core takes this one step
-further by replacing opcode numbers in the bytecode with those opfunc
-addresses.  See "Predereferencing" in F<docs/glossary.pod> for a
-fuller explanation.
-
 =head1 Operation table
 
  Command Line          Action         Output

Modified: branches/include_dynpmc_makefile/examples/benchmarks/oo1.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/benchmarks/oo1.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/benchmarks/oo1.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -11,8 +11,6 @@
 # python oo1.py                 1.2 (first time)
 # python oo1.py                 0.51
 
-# parrot -R cgp oo1.pasm            -g           -O3
-
 # original list fixed           4.9     (leaks mem ~ 110 M used)
 # don't clone vtable            4.4
 # Dan's vtable cache            4.3           3.8
@@ -31,9 +29,6 @@
 # Dan's new object layout                     1.00
 
 
-# parrot -R cgp oo1-prop.pasm
-#   invokecc                                  0.75
-#   RetCont out of loop                       0.57
 # parrot -R jit oo1-prop.pasm                     0.54
 
 .namespace [ "Foo" ]

Modified: branches/include_dynpmc_makefile/examples/benchmarks/oo2.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/benchmarks/oo2.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/benchmarks/oo2.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -11,17 +11,11 @@
 # python oo2.py                               2.9 (first time)
 # python oo2.py                               2.4
 
-# parrot -R cgp oo2.pasm            -g           -O3
-#   with reuse regsave mem                    6.15
-# anchor P1                                   6.7
-# Dan's new object layout                     5.1
-
 # parrot -R jit oo2.pasm            -g           -O3
 #   with reuse regsave mem                    6.1
 # anchor P1                                   6.5
 # Dan's new object layout                     4.9
 
-# parrot -R cgp oo2-prop.pasm                     2.8
 # parrot -R jit oo2-prop.pasm                     2.6
 
 .namespace [ "Foo" ]

Copied: branches/include_dynpmc_makefile/examples/benchmarks/stress_strings.pir (from r46115, trunk/examples/benchmarks/stress_strings.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/examples/benchmarks/stress_strings.pir	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/examples/benchmarks/stress_strings.pir)
@@ -0,0 +1,43 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+examples/benchmarks/stress_strings.pir - GC strings stress-testing
+
+=head1 SYNOPSIS
+
+    % time ./parrot examples/benchmarks/stress_strings.pir
+
+=head1 DESCRIPTION
+
+Create a lots of strings. Some of them are long-lived, most of them are short lived.
+
+Main purpose - test compact_pool performance.
+
+=cut
+
+.sub 'main' :main
+    .local pmc rsa # array of long lived strings.
+
+    .local int i
+
+    rsa = new ['ResizableStringArray']
+    i = 0
+  loop:
+    $S0 = i         # allocate new string
+    $I0 = i % 10    # every 10th string is longlived
+    if $I0 goto inc_i
+    push rsa, $S0
+  inc_i:
+    inc i
+    if i < 10000000 goto loop
+
+.end
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/include_dynpmc_makefile/examples/c/test_main.c
==============================================================================
--- branches/include_dynpmc_makefile/examples/c/test_main.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/c/test_main.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -209,13 +209,6 @@
 static void
 usage(void)
 {
-#ifdef HAVE_COMPUTED_GOTO
-    const char* cgoto_info = "Deactivate computed goto";
-#else
-    const char* cgoto_info =
-        "Deactivate computed goto (not available on this platform)";
-#endif
-
     fprintf(stderr,
 "Usage: parrot [switches] [--] programfile [arguments]\n\
   -b  --bounds-checks           Activate bounds checks\n\
@@ -223,9 +216,6 @@
   -h  --help                    Display this message\n\
   -j  --jit                     Activate Just-In-Time compiler\n\
   -p  --profile                 Activate profiling\n\
-  -P  --predereferenced_core    Activate predereferencing\n\
-  -S  --switched_core           Activate switched core\n\
-  -g  --no-computed-goto        %s\n\
   -t  --trace                   Activate tracing\n\
   -v  --version                 Display version information\n\
   -.  --wait                    Wait for a keypress (gives Windows users\n\
@@ -233,8 +223,7 @@
       --gc-debug\n\
         Enable garbage collection debugging mode. This may also be enabled\n\
         by setting the environment variable $PARROT_GC_DEBUG to 1.\n\
-\n",
-            cgoto_info);
+\n");
 
     Parrot_exit(interp, 0);
 }

Modified: branches/include_dynpmc_makefile/examples/config/file/configcompiler
==============================================================================
--- branches/include_dynpmc_makefile/examples/config/file/configcompiler	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/config/file/configcompiler	Wed Apr 28 19:17:12 2010	(r46116)
@@ -50,7 +50,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/include_dynpmc_makefile/examples/config/file/configwithfatalstep
==============================================================================
--- branches/include_dynpmc_makefile/examples/config/file/configwithfatalstep	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/config/file/configwithfatalstep	Wed Apr 28 19:17:12 2010	(r46116)
@@ -42,7 +42,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/include_dynpmc_makefile/examples/embed/cotorra.c
==============================================================================
--- branches/include_dynpmc_makefile/examples/embed/cotorra.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/embed/cotorra.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2009, Parrot Foundation.
+Copyright (C) 2009-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -36,7 +36,7 @@
 Parrot_Run_core_t getruncore(const char *name);
 
 Parrot_String create_string(Parrot_Interp interp, const char *name);
-int cotorra_main(Parrot_Interp interp, int argc, char **argv);
+int cotorra_main(Parrot_Interp interp, int argc, const char **argv);
 
 /**********************************************************************/
 
@@ -108,10 +108,7 @@
 {
     static const struct runcoreinfo cores [] = {
         { PARROT_SLOW_CORE,     "slow" },
-        { PARROT_FAST_CORE,     "fast" },
-        { PARROT_CGOTO_CORE,    "cgoto" },
         { PARROT_GC_DEBUG_CORE, "gcdebug" },
-        { PARROT_SWITCH_CORE,   "switch" }
     };
     static const unsigned int n = sizeof (cores)/sizeof (struct runcoreinfo);
     unsigned int i;
@@ -147,7 +144,7 @@
 
 /*
 
-=item C<int cotorra_main(Parrot_Interp interp, int argc, char **argv)>
+=item C<int cotorra_main(Parrot_Interp interp, int argc, const char **argv)>
 
 Auxiliary function to minimize the size of main.
 
@@ -155,12 +152,13 @@
 
 */
 
-int cotorra_main(Parrot_Interp interp, int argc, char **argv)
+int cotorra_main(Parrot_Interp interp, int argc, const char **argv)
 {
-    char *source;
+    const char *source;
     Parrot_PackFile pf;
     const char *stname = NULL;
     const char *exec = NULL;
+    const char *module = NULL;
     int i;
 
     /* Incompatible options are not checked yet */
@@ -171,7 +169,7 @@
                 fail("Option needs argument");
             Parrot_set_trace(interp, getuintval(argv[i]));
         }
-        if (strcmp(argv[i], "--warnings") == 0) {
+        else if (strcmp(argv[i], "--warnings") == 0) {
             ++i;
             if (i >= argc)
                 fail("Option needs argument");
@@ -189,6 +187,12 @@
                 fail("Option needs argument");
             stname = argv[i];
         }
+        else if (strcmp(argv[i], "--load") == 0) {
+            ++i;
+            if (i >= argc)
+                fail("Option needs argument");
+            module = argv[i];
+        }
         else if (strcmp(argv[i], "--runcore") == 0) {
             ++i;
             if (i >= argc)
@@ -198,6 +202,8 @@
         else
             break;
     }
+    if (module)
+        Parrot_load_bytecode(interp, create_string(interp, module));
 
     if (exec) {
         Parrot_String compiler = create_string(interp, "PIR");
@@ -207,16 +213,16 @@
         return 0;
     }
 
-    if (i >= argc)
+    if (i >= argc && ! (module && stname))
         fail("No file to load");
     source = argv[i];
-
-    pf = Parrot_pbc_read(interp, source, 0);
-    if (! pf)
-        fail("Cannot load file");
-
-    Parrot_pbc_load(interp, pf);
-    Parrot_pbc_fixup_loaded(interp);
+    if (source && ! stname) {
+        pf = Parrot_pbc_read(interp, source, 0);
+        if (! pf)
+            fail("Cannot load file");
+        Parrot_pbc_load(interp, pf);
+        Parrot_pbc_fixup_loaded(interp);
+    }
 
     if (stname) {
         Parrot_PMC rootns = Parrot_get_root_namespace(interp);
@@ -224,7 +230,20 @@
         Parrot_PMC parrotns = Parrot_PMC_get_pmc_strkey(interp, rootns, parrotname);
         Parrot_String name = create_string(interp, stname);
         Parrot_PMC start = Parrot_PMC_get_pmc_strkey(interp, parrotns, name);
-        Parrot_ext_call(interp, start, "->");
+        if (Parrot_pmc_is_null(interp, start))
+            fail("start sub not found");
+        if (i < argc) {
+            int pos;
+            Parrot_PMC arg = Parrot_PMC_new(interp,
+                    Parrot_PMC_typenum(interp, "FixedStringArray"));
+            Parrot_PMC_set_intval(interp, arg, argc - i);
+            for (pos = 0; i < argc; ++i, ++pos) {
+                Parrot_PMC_set_string_intkey(interp, arg, pos, create_string(interp, argv[i]));
+            }
+            Parrot_ext_call(interp, start, "P->", arg);
+        }
+        else
+            Parrot_ext_call(interp, start, "->");
     }
     else {
         Parrot_runcode(interp, argc - i, argv + i);
@@ -235,7 +254,7 @@
 
 /*
 
-=item C<int main(int argc, char **argv)>
+=item C<int main(int argc, const char **argv)>
 
 Main function. Create the parrot interpreter and call cotorra_main.
 
@@ -243,7 +262,7 @@
 
 */
 
-int main(int argc, char **argv)
+int main(int argc, const char **argv)
 {
     Parrot_Interp interp;
     int r;

Modified: branches/include_dynpmc_makefile/examples/japh/japh3.pasm
==============================================================================
--- branches/include_dynpmc_makefile/examples/japh/japh3.pasm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/japh/japh3.pasm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2009, Parrot Foundation.
+# Copyright (C) 2004-2010, Parrot Foundation.
 # $Id$
 
 # the substr JaPH
@@ -6,10 +6,9 @@
     set S1, "Parrot "
     set S2, "another "
     set S3, "Just "
-    set S31, S0
-    substr S3, 5,  1, S2
-    substr S3, 13, 1, S1
-    substr S3, 20, 1, S0
+    replace S3, S3, 5,  1, S2
+    replace S3, S3, 13, 1, S1
+    replace S3, S3, 20, 1, S0
     print S3
     end
 

Modified: branches/include_dynpmc_makefile/examples/json/postalcodes.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/json/postalcodes.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/json/postalcodes.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 #!../../parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -64,11 +64,11 @@
     close sock
 
     $I1 = find_charset 'unicode'
-    trans_charset json_result, $I1
+    json_result = trans_charset json_result, $I1
 
     # Strip off http headers.
     $I0 = index json_result, "\r\n\r\n"
-    substr json_result, 0, $I0, ""
+    json_result = replace json_result, 0, $I0, ""
 
     load_language 'data_json'
     $P1 = compreg 'data_json'

Modified: branches/include_dynpmc_makefile/examples/languages/squaak/setup.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/languages/squaak/setup.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/languages/squaak/setup.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -43,7 +43,7 @@
 
     $P2 = new 'Hash'
     $P2['src/gen_actions.pir'] = 'src/parser/actions.pm'
-    $P0['pir_nqp'] = $P2
+    $P0['pir_nqprx'] = $P2
 
     $P3 = new 'Hash'
     $P4 = split "\n", <<'SOURCES'

Modified: branches/include_dynpmc_makefile/examples/languages/squaak/src/parser/actions.pm
==============================================================================
--- branches/include_dynpmc_makefile/examples/languages/squaak/src/parser/actions.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/languages/squaak/src/parser/actions.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -36,35 +36,35 @@
         my $past := @?BLOCK.shift();
 
         for $<stat_or_def> {
-            $past.push($($_));
+            $past.push($_.ast);
         }
         make $past;
     }
 }
 
 method stat_or_def($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method statement($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method if_statement($/) {
-    my $cond := $( $<expression> );
-    my $then := $( $<block> );
+    my $cond := $<expression>.ast;
+    my $then := $<block>.ast;
     my $past := PAST::Op.new( $cond, $then, :pasttype('if'), :node($/) );
 
     ## if there's an else clause, add it to the PAST node.
     if $<else> {
-        $past.push( $( $<else>[0] ) );
+        $past.push( $<else>[0].ast );
     }
     make $past;
 }
 
 method while_statement($/) {
-    my $cond := $( $<expression> );
-    my $body := $( $<block> );
+    my $cond := $<expression>.ast;
+    my $body := $<block>.ast;
     make PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
 }
 
@@ -83,7 +83,7 @@
     our $?BLOCK;
     our @?BLOCK;
 
-    my $init := $( $<for_init> );
+    my $init := $<for_init>.ast;
 
     ## cache the name of the loop variable
     my $itername := $init.name();
@@ -100,7 +100,7 @@
     my $body := @?BLOCK.shift();
     $?BLOCK  := @?BLOCK[0];
     for $<statement> {
-        $body.push($($_));
+        $body.push( $_.ast );
     }
 
     ## if a step was specified, use that; otherwise, use the default of +1.
@@ -108,7 +108,7 @@
     ##
     my $step;
     if $<step> {
-        my $stepsize := $( $<step>[0] );
+        my $stepsize := $<step>[0].ast;
         $step := PAST::Op.new( $iter, $stepsize, :pirop('add'), :node($/) );
     }
     else { ## default is increment by 1
@@ -117,7 +117,7 @@
     $body.push($step);
 
     ## while loop iterator <= end-expression
-    my $cond := PAST::Op.new( $iter, $( $<expression> ), :name('infix:<=') );
+    my $cond := PAST::Op.new( $iter, $<expression>.ast, :name('infix:<=') );
     my $loop := PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
 
     make PAST::Stmts.new( $init, $loop, :node($/) );
@@ -132,12 +132,12 @@
     $?BLOCK := PAST::Block.new( :blocktype('immediate'), :node($/) );
     @?BLOCK.unshift($?BLOCK);
 
-    my $iter := $( $<identifier> );
+    my $iter := $<identifier>.ast;
     ## set a flag that this identifier is being declared
     $iter.isdecl(1);
     $iter.scope('lexical');
     ## the identifier is initialized with this expression
-    $iter.viviself( $( $<expression> ) );
+    $iter.viviself( $<expression>.ast );
 
     ## enter the loop variable as a local into the symbol table.
     $?BLOCK.symbol($iter.name(), :scope('lexical'));
@@ -147,16 +147,16 @@
 
 method try_statement($/) {
     ## get the try block
-    my $try := $( $<try> );
+    my $try := $<try>.ast;
 
     ## create a new PAST::Stmts node for the catch block;
     ## note that no PAST::Block is created, as this currently
     ## has problems with the exception object. For now this will do.
     my $catch := PAST::Stmts.new( :node($/) );
-    $catch.push( $( $<catch> ) );
+    $catch.push( $<catch>.ast );
 
     ## get the exception identifier;
-    my $exc := $( $<exception> );
+    my $exc := $<exception>.ast;
     $exc.isdecl(1);
     $exc.scope('lexical');
     $exc.viviself( PAST::Val.new( :value(0) ) );
@@ -176,14 +176,14 @@
 method exception($/) {
     our $?BLOCK;
 
-    my $exc := $( $<identifier> );
+    my $exc := $<identifier>.ast;
     ## the exception identifier is local to the exception handler
     $?BLOCK.symbol($exc.name(), :scope('lexical'));
     make $exc;
 }
 
 method throw_statement($/) {
-    make PAST::Op.new( $( $<expression> ), :pirop('throw'), :node($/) );
+    make PAST::Op.new( $<expression>.ast, :pirop('throw'), :node($/) );
 }
 
 method block($/, $key) {
@@ -201,24 +201,24 @@
         $?BLOCK  := @?BLOCK[0];
 
         for $<statement> {
-            $past.push($($_));
+            $past.push( $_.ast );
         }
         make $past
     }
 }
 
 method return_statement($/) {
-    my $expr := $( $<expression> );
+    my $expr := $<expression>.ast;
     make PAST::Op.new( $expr, :pasttype('return'), :node($/) );
 }
 
 method do_block($/) {
-    make $( $<block> );
+    make $<block>.ast;
 }
 
 method assignment($/) {
-    my $rhs := $( $<expression> );
-    my $lhs := $( $<primary> );
+    my $rhs := $<expression>.ast;
+    my $lhs := $<primary>.ast;
     $lhs.lvalue(1);
     make PAST::Op.new( $lhs, $rhs, :pasttype('bind'), :node($/) );
 }
@@ -228,13 +228,13 @@
     our $?BLOCK;
 
     ## note that $<parameters> creates a new PAST::Block.
-    my $past := $( $<parameters> );
-    my $name := $( $<identifier> );
+    my $past := $<parameters>.ast;
+    my $name := $<identifier>.ast;
 
     ## set the function name
     $past.name( $name.name() );
     for $<statement> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
 
     ## remove the block from the scope stack
@@ -249,13 +249,13 @@
 method variable_declaration($/) {
     our $?BLOCK;
 
-    my $past := $( $<identifier> );
+    my $past := $<identifier>.ast;
     $past.isdecl(1);
     $past.scope('lexical');
 
     ## if there's an initialization value, use it to viviself the variable.
     if $<expression> {
-        $past.viviself( $( $<expression>[0] ) );
+        $past.viviself( $<expression>[0].ast );
     }
     else { ## otherwise initialize to undef.
         $past.viviself( 'Undef' );
@@ -281,7 +281,7 @@
 
     my $past := PAST::Block.new( :blocktype('declaration'), :node($/) );
     for $<identifier> {
-        my $param := $( $_ );
+        my $param := $_.ast;
         $param.scope('parameter');
         $past.push($param);
 
@@ -297,8 +297,8 @@
 }
 
 method sub_call($/) {
-    my $invocant := $( $<primary> );
-    my $past     := $( $<arguments> );
+    my $invocant := $<primary>.ast;
+    my $past     := $<arguments>.ast;
     ## set the invocant as the first child of the PAST::Op(:pasttype('call')) node
     $past.unshift( $invocant );
     make $past;
@@ -307,15 +307,15 @@
 method arguments($/) {
     my $past := PAST::Op.new( :pasttype('call'), :node($/) );
     for $<expression> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
     make $past;
 }
 
 method primary($/) {
-    my $past := $( $<identifier> );
+    my $past := $<identifier>.ast ;
     for $<postfix_expression> {
-        my $expr := $( $_ );
+        my $expr := $_.ast;
         ## set the current $past as the first child of $expr;
         ## $expr is either a key or an index; both are "keyed"
         ## variable access, where the first child is assumed
@@ -327,11 +327,11 @@
 }
 
 method postfix_expression($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method key($/) {
-    my $key := $( $<expression> );
+    my $key := $<expression>.ast;
 
     make PAST::Var.new( $key, :scope('keyed'),
                               :vivibase('Hash'),
@@ -341,7 +341,7 @@
 }
 
 method member($/) {
-    my $member := $( $<identifier> );
+    my $member := $<identifier>.ast;
     ## x.y is syntactic sugar for x{"y"}, so stringify the identifier:
     my $key    := PAST::Val.new( :returns('String'), :value($member.name()), :node($/) );
 
@@ -353,7 +353,7 @@
 }
 
 method index($/) {
-    my $index := $( $<expression> );
+    my $index := $<expression>.ast;
 
     make PAST::Var.new( $index, :scope('keyed'),
                                 :vivibase('ResizablePMCArray'),
@@ -362,8 +362,8 @@
 }
 
 method named_field($/) {
-    my $past := $( $<expression> );
-    my $name := $( $<string_constant> );
+    my $past := $<expression>.ast;
+    my $name := $<string_constant>.ast;
     ## the passed expression is in fact a named argument,
     ## use the named() accessor to set that name.
     $past.named($name);
@@ -377,7 +377,7 @@
     ## (which is not a valid Squaak name)
     my $past := PAST::Op.new( :name('!array'), :pasttype('call'), :node($/) );
     for $<expression> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
     make $past;
 }
@@ -388,13 +388,13 @@
     ## !hash (which is not a valid Squaak name)
     my $past := PAST::Op.new( :name('!hash'), :pasttype('call'), :node($/) );
     for $<named_field> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
     make $past;
 }
 
 method term($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method identifier($/) {
@@ -413,13 +413,13 @@
 }
 
 method string_constant($/) {
-    make PAST::Val.new( :value( $($<string_literal>) ), :returns('String'), :node($/) );
+    make PAST::Val.new( :value( $<string_literal>.ast ), :returns('String'), :node($/) );
 }
 
 ## Handle the operator precedence table.
 method expression($/, $key) {
     if ($key eq 'end') {
-        make $($<expr>);
+        make $<expr>.ast;
     }
     else {
         my $past := PAST::Op.new( :name($<type>),
@@ -429,7 +429,7 @@
                                   :node($/)
                                 );
         for @($/) {
-            $past.push( $($_) );
+            $past.push( $_.ast );
         }
         make $past;
     }

Modified: branches/include_dynpmc_makefile/examples/library/ncurses_life.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/library/ncurses_life.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/library/ncurses_life.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -478,7 +478,7 @@
     if count > 3 goto space
 
 star:
-    substr new_world, pos, 1, "*"
+    new_world = replace new_world, pos, 1, "*"
 
 space:    # is space already
     inc pos
@@ -608,10 +608,10 @@
     unless len goto out
     $S0 = substr line, 0,1
     eq $S0, "#", check_format
-    chopn line, 1        # \n
+    line = chopn line, 1        # \n
     dec len
     if format != PICTURE goto not_pic
-    substr world, pos, len, line
+    world = replace world, pos, len, line
     pos = pos + size
     goto loop
 
@@ -777,7 +777,7 @@
 
     # TODO abs/rel and bounds checking
     #world[c] = "*"
-    substr world, c, 1, "*"
+    world = replace world, c, 1, "*"
     if s < len goto lp2
 done:
 nok:

Modified: branches/include_dynpmc_makefile/examples/nci/Xlib.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/nci/Xlib.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/nci/Xlib.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -67,10 +67,12 @@
     if xlib goto store
 check2:
     xlib = loadlib 'libX11.so'
+    $I0 = defined xlib
     unless $I0 goto check3
     if xlib goto store
 check3:
     xlib = loadlib 'libX11.so.6'
+    $I0 = defined xlib
     unless $I0 goto check4
     if xlib goto store
 check4:

Modified: branches/include_dynpmc_makefile/examples/nci/xlibtest.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/nci/xlibtest.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/nci/xlibtest.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -285,12 +285,13 @@
     jsonfile = handle.'readall'()
     close handle
 
-    load_bytecode 'compilers/json/JSON.pbc'
-    .local pmc json
-    json = compreg 'JSON'
+    load_language 'data_json'
+    .local pmc json, jsonobject, jsondata
+    json = compreg 'data_json'
     .local pmc jsonobject
-    jsonobject = json(jsonfile)
-    listline = jsonobject [JKEY_LINES]
+    jsonobject = json.'compile'(jsonfile)
+    jsondata = jsonobject()
+    listline = jsondata [JKEY_LINES]
     goto finish
 
 failed:

Modified: branches/include_dynpmc_makefile/examples/pge/demo.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/pge/demo.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/pge/demo.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
 .include "errors.pasm"
@@ -43,7 +43,7 @@
     $I0 = index x, "\n"
   get_cmd:
     $S0 = substr x, 0, $I0
-    chopn x, 1
+    x = chopn x, 1
     if $S0 == "next" goto match_next
     if $S0 == "regex" goto make_p6rule
     if $S0 == "glob" goto make_glob

Modified: branches/include_dynpmc_makefile/examples/pir/befunge/debug.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/pir/befunge/debug.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/pir/befunge/debug.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -181,7 +181,7 @@
     print "bef> "
     $P0 = getstdin
     $S0 = readline $P0
-    chopn $S0, 1
+    $S0 = chopn $S0, 1
     $I0 = length $S0
 
     if $I0 == 0 goto DEBUG__INTERACT__NEXT
@@ -205,7 +205,7 @@
     goto DEBUG__INTERACT__LOOP
 
   DEBUG__INTERACT__BREAK:
-    substr $S0, 0, 6, ""
+    $S0 = replace $S0, 0, 6, ""
     $P0 = get_global "breakpoints"
     $P0[$S0] = 1
     set_global "breakpoints", $P0
@@ -218,7 +218,7 @@
     goto DEBUG__INTERACT__END
 
   DEBUG__INTERACT__DELETE:
-    substr $S0, 0, 7, ""
+    $S0 = replace $S0, 0, 7, ""
     $P0 = get_global "breakpoints"
     delete $P0[$S0]
     set_global "breakpoints", $P0

Modified: branches/include_dynpmc_makefile/examples/pir/befunge/io.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/pir/befunge/io.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/pir/befunge/io.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -41,10 +41,10 @@
 
     $P1 = getstdin
     $S0 = readline $P1
-    chopn $S0, 1
+    $S0 = chopn $S0, 1
 
   _IO__INPUT_CHAR__SUBSTR:
-    $S1 = substr $S0, 0, 1, ""
+    $S1 = replace $S0, 0, 1, ""
     $P0 = $S0
     set_global "user_input", $P0
 
@@ -73,7 +73,7 @@
 
     $P1 = getstdin
     $S0 = readline $P1
-    chopn $S0, 1
+    $S0 = chopn $S0, 1
     len = length $S0
 
   _IO__INPUT_INT__PARSE_INPUT:
@@ -90,7 +90,7 @@
     if i < len goto _IO__INPUT_INT__NEXT_CHAR
 
   _IO__INPUT_INT__NAN:
-    substr $S0, 0, i, ""
+    $S = replace $S0, 0, i, ""
     $P0 = $S0
     set_global "user_input", $P0
 

Modified: branches/include_dynpmc_makefile/examples/pir/befunge/load.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/pir/befunge/load.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/pir/befunge/load.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -34,7 +34,7 @@
 
     newline = index line, "\n"
     if newline < 0 goto LOAD__SKIP_CHOP
-    chopn line, 1
+    line = chopn line, 1
     LOAD__SKIP_CHOP:
     line     = _load__fit_str_to_80(line)
     playline = _load__str_to_array(line)
@@ -86,7 +86,7 @@
     concat str, $S0
 
     # truncate to 80 chars
-    substr str, 80, -1, ''
+    str = replace str, 80, -1, ''
 
     .return(str)
 .end

Modified: branches/include_dynpmc_makefile/examples/pir/pirric.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/pir/pirric.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/pir/pirric.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -102,57 +102,59 @@
     addparent cl, $P0
     set_global 'Literal', cl
 
-    .local pmc keywords
+    .local pmc keywords, methods
+    # Get methods hash to verify
+    methods = inspect runnerclass, 'methods'
     keywords = new 'Hash'
-    setkeyword(keywords, 'CLEAR')
-    setkeyword(keywords, 'CONT')
-    setkeyword(keywords, 'END')
-    setkeyword(keywords, 'EXIT')
-    setkeyword(keywords, 'ERROR')
-    setkeyword(keywords, 'FOR')
-    setkeyword(keywords, 'GOSUB')
-    setkeyword(keywords, 'GOTO')
-    setkeyword(keywords, 'IF')
-    setkeyword(keywords, 'LIST')
-    setkeyword(keywords, 'LOAD')
-    setkeyword(keywords, 'NEXT')
-    setkeyword(keywords, 'NEW')
-    setkeyword(keywords, 'ON')
-    setkeyword(keywords, 'PRINT')
-    setkeyword(keywords, 'REM')
-    setkeyword(keywords, 'RETURN')
-    setkeyword(keywords, 'RUN')
-    setkeyword(keywords, 'SAVE')
-    setkeyword(keywords, 'STOP')
-    setkeyword(keywords, 'TROFF')
-    setkeyword(keywords, 'TRON')
+    setkeyword(methods, keywords, 'CLEAR')
+    setkeyword(methods, keywords, 'CONT')
+    setkeyword(methods, keywords, 'END')
+    setkeyword(methods, keywords, 'EXIT')
+    setkeyword(methods, keywords, 'ERROR')
+    setkeyword(methods, keywords, 'FOR')
+    setkeyword(methods, keywords, 'GOSUB')
+    setkeyword(methods, keywords, 'GOTO')
+    setkeyword(methods, keywords, 'IF')
+    setkeyword(methods, keywords, 'LIST')
+    setkeyword(methods, keywords, 'LOAD')
+    setkeyword(methods, keywords, 'NEXT')
+    setkeyword(methods, keywords, 'NEW')
+    setkeyword(methods, keywords, 'ON')
+    setkeyword(methods, keywords, 'PRINT')
+    setkeyword(methods, keywords, 'REM')
+    setkeyword(methods, keywords, 'RETURN')
+    setkeyword(methods, keywords, 'RUN')
+    setkeyword(methods, keywords, 'SAVE')
+    setkeyword(methods, keywords, 'STOP')
+    setkeyword(methods, keywords, 'TROFF')
+    setkeyword(methods, keywords, 'TRON')
     set_global 'keywords', keywords
 
     .local pmc predefs
     predefs = new 'Hash'
-    setpredef(predefs, 'NEW')
-    setpredef(predefs, 'ISA')
-    setpredef(predefs, 'GETPARROTINTERP')
-    setpredef(predefs, 'CHR$', 'CHR_S')
-    setpredef(predefs, 'ASC')
-    setpredef(predefs, 'LEN')
-    setpredef(predefs, 'LEFT$', 'LEFT_S')
-    setpredef(predefs, 'RIGHT$', 'RIGHT_S')
-    setpredef(predefs, 'MID$', 'MID_S')
-    setpredef(predefs, 'COMPLEX')
-    setpredef(predefs, 'COMPREG')
-    setpredef(predefs, 'EXP')
-    setpredef(predefs, 'LN')
-    setpredef(predefs, 'SIN')
-    setpredef(predefs, 'SINH')
-    setpredef(predefs, 'COS')
-    setpredef(predefs, 'COSH')
-    setpredef(predefs, 'TAN')
-    setpredef(predefs, 'TANH')
-    setpredef(predefs, 'ASIN')
-    setpredef(predefs, 'ACOS')
-    setpredef(predefs, 'ATAN')
-    setpredef(predefs, 'SQR')
+    setpredef(methods, predefs, 'NEW')
+    setpredef(methods, predefs, 'ISA')
+    setpredef(methods, predefs, 'GETPARROTINTERP')
+    setpredef(methods, predefs, 'CHR$', 'CHR_S')
+    setpredef(methods, predefs, 'ASC')
+    setpredef(methods, predefs, 'LEN')
+    setpredef(methods, predefs, 'LEFT$', 'LEFT_S')
+    setpredef(methods, predefs, 'RIGHT$', 'RIGHT_S')
+    setpredef(methods, predefs, 'MID$', 'MID_S')
+    setpredef(methods, predefs, 'COMPLEX')
+    setpredef(methods, predefs, 'COMPREG')
+    setpredef(methods, predefs, 'EXP')
+    setpredef(methods, predefs, 'LN')
+    setpredef(methods, predefs, 'SIN')
+    setpredef(methods, predefs, 'SINH')
+    setpredef(methods, predefs, 'COS')
+    setpredef(methods, predefs, 'COSH')
+    setpredef(methods, predefs, 'TAN')
+    setpredef(methods, predefs, 'TANH')
+    setpredef(methods, predefs, 'ASIN')
+    setpredef(methods, predefs, 'ACOS')
+    setpredef(methods, predefs, 'ATAN')
+    setpredef(methods, predefs, 'SQR')
     set_global 'predefs', predefs
 
 # Create classes for control flow exceptions
@@ -252,6 +254,7 @@
 
 #-----------------------------------------------------------------------
 .sub setkeyword
+    .param pmc methods
     .param pmc keywords
     .param string key
 
@@ -259,10 +262,11 @@
     funcname = concat 'func_', key
 
     .local pmc func
-    func = get_global ['Runner'], funcname
+    func = methods[funcname]
     $I0 = defined func
     if $I0 goto good
-    say 'No func!'
+    print funcname
+    die ': No func!'
     exit 1
 good:
     keywords [key] = func
@@ -270,6 +274,7 @@
 
 #-----------------------------------------------------------------------
 .sub setpredef
+    .param pmc methods
     .param pmc predefs
     .param string key
     .param string name :optional
@@ -282,7 +287,7 @@
     funcname = concat 'predef_', name
 
     .local pmc func
-    func = get_global ['Runner'], funcname
+    func = methods[funcname]
     $I0 = defined func
     if $I0 goto good
     print funcname
@@ -416,7 +421,7 @@
 
     .local pmc vars, var
     vars = getattribute self, 'vars'
-    upcase varname
+    varname = upcase varname
     var = vars[varname]
     .return(var)
 .end
@@ -428,7 +433,7 @@
 
     .local pmc vars, var
     vars = getattribute self, 'vars'
-    upcase varname
+    varname = upcase varname
     vars[varname] = value
 .end
 
@@ -664,7 +669,7 @@
     $I0 = $P2
     $S0 = chr $I0
     $I1 = find_encoding 'utf8'
-    trans_encoding $S0, $I1
+    $S0 = trans_encoding $S0, $I1
     $P3 = new 'String'
     $P3 = $S0
     .return($P3)
@@ -1010,7 +1015,7 @@
     unless $I0 goto fail
 
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     #print $S0
 
 # Some predefined functions:
@@ -1668,7 +1673,7 @@
     key = 'PRINT'
 
 findkey:
-    upcase key
+    key = upcase key
     .local pmc keywords
     keywords = get_hll_global 'keywords'
     $I0 = keywords
@@ -1797,14 +1802,14 @@
     pvar = tokenizer.'get'()
     .local string var
     var = pvar
-    upcase var
+    var = upcase var
     $P0 = tokenizer.'get'()
     ne $P0, '=', fail
     .local pmc value
     value = self.'evaluate'(tokenizer)
     $P0 = tokenizer.'get'()
     $S0 = $P0
-    upcase $S0
+    $S0 = upcase $S0
     ne $S0, 'TO', fail
 
     .local pmc limit
@@ -1815,7 +1820,7 @@
     $I0 = defined $P0
     unless $I0 goto default_step
     $S0 = $P0
-    upcase $S0
+    $S0 = upcase $S0
     ne $S0, 'STEP', fail
     increment = self.'evaluate'(tokenizer)
     goto prepare
@@ -1896,7 +1901,7 @@
     $I0 = defined token
     unless $I0 goto fail
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     ne $S0, 'THEN', fail
 
     $I0 = defined arg
@@ -1917,7 +1922,7 @@
     $I0 = isa $P0, 'String'
     unless $I0 goto nextitem
     $S0 = $P0
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', is_else
     eq $S0, 'IF', is_if
     goto nextitem
@@ -1959,7 +1964,7 @@
     $I1 = defined $P1
     unless $I1 goto fail
     $S1 = $P1
-    upcase $S1
+    $S1 = upcase $S1
     ne $S1, 'B', fail
     $S1 = arg
     pirric_aux_loadbytecode($S1)
@@ -2037,13 +2042,13 @@
     .local pmc token
     token = tokenizer.'get'()
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     if $S0 == 'ERROR' goto on_error
     goto fail
 on_error:
     token = tokenizer.'get'()
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     if $S0 == 'GOTO' goto on_error_goto
     if $S0 == 'EXIT' goto on_error_exit
     goto fail
@@ -2075,7 +2080,7 @@
 
 item:
     $S0 = arg
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', endline
     arg = self.'evaluate'(tokenizer, arg)
 print_it:
@@ -2086,7 +2091,7 @@
     eq arg, ';', nextitem
     eq arg, ',', comma
     $S0 = arg
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', endline
     SyntaxError()
 comma:
@@ -2103,7 +2108,7 @@
     $I0 = defined arg
     unless $I0 goto finish
     $S0 = arg
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', finish
     goto item
 finish:

Modified: branches/include_dynpmc_makefile/examples/pir/quine_ord.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/pir/quine_ord.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/pir/quine_ord.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
 # ATT no autoexpanding svn markers please
 
 .sub quine :main
@@ -838,8 +838,8 @@
 push code_as_data, 45
 push code_as_data, 50
 push code_as_data, 48
+push code_as_data, 49
 push code_as_data, 48
-push code_as_data, 56
 push code_as_data, 44
 push code_as_data, 32
 push code_as_data, 80
@@ -1712,12 +1712,20 @@
 push code_as_data, 32
 push code_as_data, 32
 push code_as_data, 32
-push code_as_data, 115
-push code_as_data, 117
-push code_as_data, 98
-push code_as_data, 115
-push code_as_data, 116
+push code_as_data, 99
+push code_as_data, 111
+push code_as_data, 100
+push code_as_data, 101
+push code_as_data, 32
+push code_as_data, 61
+push code_as_data, 32
 push code_as_data, 114
+push code_as_data, 101
+push code_as_data, 112
+push code_as_data, 108
+push code_as_data, 97
+push code_as_data, 99
+push code_as_data, 101
 push code_as_data, 32
 push code_as_data, 99
 push code_as_data, 111
@@ -1906,6 +1914,40 @@
 push code_as_data, 44
 push code_as_data, 32
 push code_as_data, 49
+push code_as_data, 10
+push code_as_data, 32
+push code_as_data, 32
+push code_as_data, 32
+push code_as_data, 32
+push code_as_data, 32
+push code_as_data, 32
+push code_as_data, 32
+push code_as_data, 32
+push code_as_data, 99
+push code_as_data, 111
+push code_as_data, 100
+push code_as_data, 101
+push code_as_data, 32
+push code_as_data, 61
+push code_as_data, 32
+push code_as_data, 114
+push code_as_data, 101
+push code_as_data, 112
+push code_as_data, 108
+push code_as_data, 97
+push code_as_data, 99
+push code_as_data, 101
+push code_as_data, 32
+push code_as_data, 99
+push code_as_data, 111
+push code_as_data, 100
+push code_as_data, 101
+push code_as_data, 44
+push code_as_data, 32
+push code_as_data, 48
+push code_as_data, 44
+push code_as_data, 32
+push code_as_data, 49
 push code_as_data, 44
 push code_as_data, 32
 push code_as_data, 39
@@ -3530,7 +3572,7 @@
 
 DO_QUINE:
     # First print the stuff data section
-    print "# Copyright (C) 2006-2008, Parrot Foundation.\n"
+    print "# Copyright (C) 2006-2010, Parrot Foundation.\n"
     print "# ATT no autoexpanding svn markers please\n"
     print "\n"
     print ".sub quine :main\n"
@@ -3562,13 +3604,14 @@
     # Ignore everything up to end of data section
     .local int end_of_data_pos
     end_of_data_pos = index code, "# ------ End of data section ------"
-    substr code, 0, end_of_data_pos, ''
+    code = replace code, 0, end_of_data_pos, ''
 
     .local string char_string
     .local int    char_int
     SHIFT_NEXT_CHAR:
     unless code goto FINISH_SHIFT_CHARS
-        char_string = substr code, 0, 1, ''
+        char_string = substr code, 0, 1
+        code = replace code, 0, 1, ''
         char_int = ord char_string
         print 'push code_as_data, '
         print char_int

Modified: branches/include_dynpmc_makefile/examples/pir/substr.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/pir/substr.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/pir/substr.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -31,7 +31,7 @@
 WANE:   $I1 = length $S1
         print  $S1
         print  "\n"
-        chopn  $S1, 1
+        $S1 = chopn $S1, 1
         unless $I1 == $I3 goto WANE
 DONE:
 .end

Modified: branches/include_dynpmc_makefile/examples/sdl/mandel.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/sdl/mandel.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/sdl/mandel.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -556,9 +556,7 @@
 Optimized build
 
   [2] plain  runcore 64 bit                  3.0s
-  [2] -R cgp runcore 64 bit                  1.5s
   [2] plain  runcore 32 bit                  3.6s
-  [2] -R cgp runcore 32 bit                  1.6s
   [1] -R jit                                 1.1s
   [2] -R jit                                 0.8s
   [3] -R jit                                 0.5s

Modified: branches/include_dynpmc_makefile/examples/shootout/ack.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/ack.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/ack.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -3,7 +3,7 @@
 # $Id$
 # OUTPUT="Ack(3, 9) = 4093\n"
 #
-# ./parrot -Oc -R cgp-jit
+# ./parrot -Oc
 # RQ (Karl)
 # Seems to be an old benchmark, now deprecated by the shootout
 #

Modified: branches/include_dynpmc_makefile/examples/shootout/binarytrees.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/binarytrees.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/binarytrees.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/include_dynpmc_makefile/examples/shootout/fasta.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/fasta.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/fasta.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/include_dynpmc_makefile/examples/shootout/knucleotide.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/knucleotide.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/knucleotide.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
 .sub main :main
@@ -13,7 +13,7 @@
 	line = ''
 	.local string seq
 beginwhile_2:
-	chopn line, 1
+	line = chopn line, 1
 	seq .= line
 	line = readline stdin
 	$I0 = length line
@@ -21,7 +21,7 @@
 	$S0 = chopn line, -1
 	if $S0 != ">" goto beginwhile_2
 endwhile_2:
-	upcase seq
+	seq = upcase seq
 	sort_seq(seq, 1)
 	sort_seq(seq, 2)
 	find_seq(seq, "GGT")

Modified: branches/include_dynpmc_makefile/examples/shootout/partialsums.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/partialsums.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/partialsums.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2006-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/include_dynpmc_makefile/examples/shootout/pidigits.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/pidigits.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/pidigits.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/include_dynpmc_makefile/examples/shootout/random.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/random.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/random.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/include_dynpmc_makefile/examples/shootout/recursive-2.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/recursive-2.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/recursive-2.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -6,7 +6,7 @@
 # Fib and Tak by Joshua Isom
 
 # use less registers (leo)
-# time ./parrot -Oc -R cgp-jit recursive-2.pir 11
+# time ./parrot -Oc recursive-2.pir 11
 # real 2.32 s   (AMD X2 at 2000)
 # modified default value to n=3. Karl Forner
 

Modified: branches/include_dynpmc_makefile/examples/shootout/recursive.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/recursive.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/recursive.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -5,7 +5,7 @@
 # Ack by Leopold Toetsch
 # Fib and Tak by Joshua Isom
 # modified default value to n=3. Karl Forner
-# ./parrot -Oc -R cgp-jit recursive.pir N
+# ./parrot -Oc recursive.pir N
 
 .sub main :main
 	.param pmc argv

Modified: branches/include_dynpmc_makefile/examples/shootout/regexdna.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/regexdna.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/regexdna.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 
 .sub main :main
@@ -65,7 +65,7 @@
 	chunklen = length chunk
 	unless chunklen goto endwhile
 	# They don't say you have to match case insenitive...
-	downcase chunk
+	chunk = downcase chunk
 	seq .= chunk
 	goto beginwhile
 endwhile:
@@ -84,7 +84,7 @@
 	$I0 = $P0."from"()
 	$I1 = $P0."to"()
 	$I1 -= $I0
-	substr seq, $I0, $I1, ''
+	seq = replace seq, $I0, $I1, ''
 	goto stripfind
 endstripfind:
 	seqlen = length seq
@@ -140,7 +140,7 @@
 #	$I0 = $P0."from"()
 #	$I1 = $P0."to"()
 #	$I1 -= $I0
-#	substr seq, $I0, $I1, replacement
+#	seq = replace seq, $I0, $I1, replacement
 #	goto switchfind
 #endswitchfind:
 
@@ -164,7 +164,7 @@
 	$P0 = pop matches
 	$I0 = $P0[0]
 	$I1 = $P0[1]
-	substr seq, $I0, $I1, replacement
+	seq = replace seq, $I0, $I1, replacement
 	goto switchloop
 endswitchloop:
 #############################################

Modified: branches/include_dynpmc_makefile/examples/shootout/revcomp.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/revcomp.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/revcomp.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 #!parrot
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 # Reads from stdin a file in the format made by fasta.pir
 # ./parrot -R jit
@@ -54,7 +54,7 @@
 		print line
 		goto endif
 	else:
-		chopn line, 1
+		line = chopn line, 1
 		seq .= line
 	endif:
 	goto beginwhile

Modified: branches/include_dynpmc_makefile/examples/shootout/takfp.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/shootout/takfp.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/shootout/takfp.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,8 +1,8 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #
-# ./parrot -R cgp takfp.pir N         (N = 10 for shootout)
+# ./parrot takfp.pir N         (N = 10 for shootout)
 # by Joshua Isom
 # changed default value to N=7 (shootout default before being deprecated)
 # anyway N=10 froze my laptop. Karl Forner

Modified: branches/include_dynpmc_makefile/examples/tutorial/23_string_ops_substr.pir
==============================================================================
--- branches/include_dynpmc_makefile/examples/tutorial/23_string_ops_substr.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/examples/tutorial/23_string_ops_substr.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2009, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 String Operations (continued)
@@ -10,25 +10,28 @@
 position is left out, C<substr> returns all the characters until the
 end of the string.
 
-An optional fourth argument is a string that will be used to
-replace the characters between the start and end positions.
+C<substr> no longer provides an in-place replace, however there is a
+C<replace> operator that allows this type of operation to be performed,
+although not in-place.  The C<replace> operator assigns a new_srting,
+taking as arguments, the old_string, a start and end position, and a
+string to be inserted in between the start and end positions.
 
 =cut
 
 .sub main :main
 
-    $S0 = substr "abcde", 1, 2    # "bc"
-    say $S0
+    $S0 = substr "abcde", 1, 2
+    say $S0                         # "bc"
 
     set $S1, "abcde"
     $S0 = substr $S1, 1, 2
-    say $S0                   # "bc"
-    say $S1                   # "abcde"
+    say $S0                         # "bc"
+    say $S1                         # "abcde"
 
     set $S1, "abcde"
-    $S0 = substr $S1, 1, 2, "XYZ"
-    say $S0                       # "bc"
-    say $S1                       # "aXYZde"
+    $S0 = replace $S1, 1, 2, "XYZ"
+    say $S0                         # "aXYZde"
+    say $S1                         # "abcde"
 
 .end
 
@@ -37,4 +40,3 @@
 #   fill-column: 100
 # End:
 # vim: expandtab shiftwidth=4 ft=pir:
-

Modified: branches/include_dynpmc_makefile/ext/Parrot-Embed/MANIFEST
==============================================================================
--- branches/include_dynpmc_makefile/ext/Parrot-Embed/MANIFEST	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/ext/Parrot-Embed/MANIFEST	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,7 +1,6 @@
 Build.PL
 Changes
 MANIFEST
-META.yml # Will be created by "make dist"
 README
 lib/Parrot/Embed.pm
 lib/Parrot/Embed.xs

Modified: branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -99,7 +99,7 @@
     sigil = substr $S0, 0, 1
     $I0 = index '$@%&', sigil
     if $I0 < 0 goto sigil_done
-    substr $S0, 0, 1, ''
+    $S0 = replace $S0, 0, 1, ''
     ns[0] = $S0
     $S0 = ns[-1]
     $S0 = concat sigil, $S0
@@ -468,7 +468,7 @@
 .end
 
 
-.sub 'quotemod_check' :method
+.sub 'quotemod_check' :method :nsentry
     .param string mod
 
     $P0 = find_dynamic_lex '%*QUOTEMOD'
@@ -854,7 +854,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1271948647.57035")
+.sub "_block11"  :anon :subid("10_1272455242.78413")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -868,9 +868,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post103") :outer("10_1271948647.57035")
+.sub "" :load :init :subid("post103") :outer("10_1272455242.78413")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1271948647.57035" 
+    .const 'Sub' $P12 = "10_1272455242.78413" 
     .local pmc block
     set block, $P12
     $P340 = get_root_global ["parrot"], "P6metaclass"
@@ -879,84 +879,84 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1271948647.57035") :outer("10_1271948647.57035")
+.sub "_block13"  :subid("11_1272455242.78413") :outer("10_1272455242.78413")
 .annotate "line", 5
-    .const 'Sub' $P329 = "101_1271948647.57035" 
+    .const 'Sub' $P329 = "101_1272455242.78413" 
     capture_lex $P329
-    .const 'Sub' $P322 = "99_1271948647.57035" 
+    .const 'Sub' $P322 = "99_1272455242.78413" 
     capture_lex $P322
-    .const 'Sub' $P309 = "96_1271948647.57035" 
+    .const 'Sub' $P309 = "96_1272455242.78413" 
     capture_lex $P309
-    .const 'Sub' $P277 = "91_1271948647.57035" 
+    .const 'Sub' $P277 = "91_1272455242.78413" 
     capture_lex $P277
-    .const 'Sub' $P271 = "89_1271948647.57035" 
+    .const 'Sub' $P271 = "89_1272455242.78413" 
     capture_lex $P271
-    .const 'Sub' $P266 = "87_1271948647.57035" 
+    .const 'Sub' $P266 = "87_1272455242.78413" 
     capture_lex $P266
-    .const 'Sub' $P260 = "85_1271948647.57035" 
+    .const 'Sub' $P260 = "85_1272455242.78413" 
     capture_lex $P260
-    .const 'Sub' $P254 = "83_1271948647.57035" 
+    .const 'Sub' $P254 = "83_1272455242.78413" 
     capture_lex $P254
-    .const 'Sub' $P249 = "81_1271948647.57035" 
+    .const 'Sub' $P249 = "81_1272455242.78413" 
     capture_lex $P249
-    .const 'Sub' $P244 = "79_1271948647.57035" 
+    .const 'Sub' $P244 = "79_1272455242.78413" 
     capture_lex $P244
-    .const 'Sub' $P239 = "77_1271948647.57035" 
+    .const 'Sub' $P239 = "77_1272455242.78413" 
     capture_lex $P239
-    .const 'Sub' $P234 = "75_1271948647.57035" 
+    .const 'Sub' $P234 = "75_1272455242.78413" 
     capture_lex $P234
-    .const 'Sub' $P229 = "73_1271948647.57035" 
+    .const 'Sub' $P229 = "73_1272455242.78413" 
     capture_lex $P229
-    .const 'Sub' $P224 = "71_1271948647.57035" 
+    .const 'Sub' $P224 = "71_1272455242.78413" 
     capture_lex $P224
-    .const 'Sub' $P219 = "69_1271948647.57035" 
+    .const 'Sub' $P219 = "69_1272455242.78413" 
     capture_lex $P219
-    .const 'Sub' $P208 = "65_1271948647.57035" 
+    .const 'Sub' $P208 = "65_1272455242.78413" 
     capture_lex $P208
-    .const 'Sub' $P195 = "63_1271948647.57035" 
+    .const 'Sub' $P195 = "63_1272455242.78413" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1271948647.57035" 
+    .const 'Sub' $P183 = "61_1272455242.78413" 
     capture_lex $P183
-    .const 'Sub' $P176 = "59_1271948647.57035" 
+    .const 'Sub' $P176 = "59_1272455242.78413" 
     capture_lex $P176
-    .const 'Sub' $P167 = "57_1271948647.57035" 
+    .const 'Sub' $P167 = "57_1272455242.78413" 
     capture_lex $P167
-    .const 'Sub' $P160 = "55_1271948647.57035" 
+    .const 'Sub' $P160 = "55_1272455242.78413" 
     capture_lex $P160
-    .const 'Sub' $P151 = "53_1271948647.57035" 
+    .const 'Sub' $P151 = "53_1272455242.78413" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1271948647.57035" 
+    .const 'Sub' $P144 = "51_1272455242.78413" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1271948647.57035" 
+    .const 'Sub' $P135 = "49_1272455242.78413" 
     capture_lex $P135
-    .const 'Sub' $P128 = "47_1271948647.57035" 
+    .const 'Sub' $P128 = "47_1272455242.78413" 
     capture_lex $P128
-    .const 'Sub' $P121 = "45_1271948647.57035" 
+    .const 'Sub' $P121 = "45_1272455242.78413" 
     capture_lex $P121
-    .const 'Sub' $P111 = "43_1271948647.57035" 
+    .const 'Sub' $P111 = "43_1272455242.78413" 
     capture_lex $P111
-    .const 'Sub' $P103 = "41_1271948647.57035" 
+    .const 'Sub' $P103 = "41_1272455242.78413" 
     capture_lex $P103
-    .const 'Sub' $P93 = "40_1271948647.57035" 
+    .const 'Sub' $P93 = "40_1272455242.78413" 
     capture_lex $P93
-    .const 'Sub' $P87 = "38_1271948647.57035" 
+    .const 'Sub' $P87 = "38_1272455242.78413" 
     capture_lex $P87
-    .const 'Sub' $P82 = "36_1271948647.57035" 
+    .const 'Sub' $P82 = "36_1272455242.78413" 
     capture_lex $P82
-    .const 'Sub' $P74 = "34_1271948647.57035" 
+    .const 'Sub' $P74 = "34_1272455242.78413" 
     capture_lex $P74
-    .const 'Sub' $P68 = "32_1271948647.57035" 
+    .const 'Sub' $P68 = "32_1272455242.78413" 
     capture_lex $P68
-    .const 'Sub' $P62 = "30_1271948647.57035" 
+    .const 'Sub' $P62 = "30_1272455242.78413" 
     capture_lex $P62
-    .const 'Sub' $P56 = "28_1271948647.57035" 
+    .const 'Sub' $P56 = "28_1272455242.78413" 
     capture_lex $P56
-    .const 'Sub' $P23 = "14_1271948647.57035" 
+    .const 'Sub' $P23 = "14_1272455242.78413" 
     capture_lex $P23
-    .const 'Sub' $P15 = "12_1271948647.57035" 
+    .const 'Sub' $P15 = "12_1272455242.78413" 
     capture_lex $P15
 .annotate "line", 33
-    .const 'Sub' $P329 = "101_1271948647.57035" 
+    .const 'Sub' $P329 = "101_1272455242.78413" 
     capture_lex $P329
 .annotate "line", 5
     .return ($P329)
@@ -964,7 +964,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "ws"  :subid("12_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1048,7 +1048,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1271948647.57035") :method
+.sub "!PREFIX__ws"  :subid("13_1272455242.78413") :method
 .annotate "line", 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1057,7 +1057,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "termish"  :subid("14_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx24_tgt
     .local int rx24_pos
@@ -1067,7 +1067,7 @@
     .local pmc rx24_cur
     (rx24_cur, rx24_pos, rx24_tgt) = self."!cursor_start"()
     rx24_cur."!cursor_debug"("START ", "termish")
-    rx24_cur."!cursor_caparray"("postfixish", "prefixish")
+    rx24_cur."!cursor_caparray"("prefixish", "postfixish")
     .lex unicode:"$\x{a2}", rx24_cur
     .local pmc match
     .lex "$/", match
@@ -1149,7 +1149,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1271948647.57035") :method
+.sub "!PREFIX__termish"  :subid("15_1272455242.78413") :method
 .annotate "line", 5
     new $P26, "ResizablePMCArray"
     push $P26, ""
@@ -1158,7 +1158,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1271948647.57035") :method
+.sub "term"  :subid("16_1272455242.78413") :method
 .annotate "line", 13
     $P33 = self."!protoregex"("term")
     .return ($P33)
@@ -1166,7 +1166,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1271948647.57035") :method
+.sub "!PREFIX__term"  :subid("17_1272455242.78413") :method
 .annotate "line", 13
     $P35 = self."!PREFIX__!protoregex"("term")
     .return ($P35)
@@ -1174,7 +1174,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1271948647.57035") :method
+.sub "infix"  :subid("18_1272455242.78413") :method
 .annotate "line", 14
     $P37 = self."!protoregex"("infix")
     .return ($P37)
@@ -1182,7 +1182,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1271948647.57035") :method
+.sub "!PREFIX__infix"  :subid("19_1272455242.78413") :method
 .annotate "line", 14
     $P39 = self."!PREFIX__!protoregex"("infix")
     .return ($P39)
@@ -1190,7 +1190,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1271948647.57035") :method
+.sub "prefix"  :subid("20_1272455242.78413") :method
 .annotate "line", 15
     $P41 = self."!protoregex"("prefix")
     .return ($P41)
@@ -1198,7 +1198,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1271948647.57035") :method
+.sub "!PREFIX__prefix"  :subid("21_1272455242.78413") :method
 .annotate "line", 15
     $P43 = self."!PREFIX__!protoregex"("prefix")
     .return ($P43)
@@ -1206,7 +1206,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1271948647.57035") :method
+.sub "postfix"  :subid("22_1272455242.78413") :method
 .annotate "line", 16
     $P45 = self."!protoregex"("postfix")
     .return ($P45)
@@ -1214,7 +1214,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1271948647.57035") :method
+.sub "!PREFIX__postfix"  :subid("23_1272455242.78413") :method
 .annotate "line", 16
     $P47 = self."!PREFIX__!protoregex"("postfix")
     .return ($P47)
@@ -1222,7 +1222,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1271948647.57035") :method
+.sub "circumfix"  :subid("24_1272455242.78413") :method
 .annotate "line", 17
     $P49 = self."!protoregex"("circumfix")
     .return ($P49)
@@ -1230,7 +1230,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1271948647.57035") :method
+.sub "!PREFIX__circumfix"  :subid("25_1272455242.78413") :method
 .annotate "line", 17
     $P51 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P51)
@@ -1238,7 +1238,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1271948647.57035") :method
+.sub "postcircumfix"  :subid("26_1272455242.78413") :method
 .annotate "line", 18
     $P53 = self."!protoregex"("postcircumfix")
     .return ($P53)
@@ -1246,7 +1246,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1271948647.57035") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1272455242.78413") :method
 .annotate "line", 18
     $P55 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P55)
@@ -1254,7 +1254,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "term:sym<circumfix>"  :subid("28_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx57_tgt
     .local int rx57_pos
@@ -1312,7 +1312,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1271948647.57035") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1272455242.78413") :method
 .annotate "line", 5
     $P59 = self."!PREFIX__!subrule"("circumfix", "")
     new $P60, "ResizablePMCArray"
@@ -1322,7 +1322,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "infixish"  :subid("30_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx63_tgt
     .local int rx63_pos
@@ -1380,7 +1380,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1271948647.57035") :method
+.sub "!PREFIX__infixish"  :subid("31_1272455242.78413") :method
 .annotate "line", 5
     $P65 = self."!PREFIX__!subrule"("OPER=infix", "")
     new $P66, "ResizablePMCArray"
@@ -1390,7 +1390,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "prefixish"  :subid("32_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx69_tgt
     .local int rx69_pos
@@ -1453,7 +1453,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1271948647.57035") :method
+.sub "!PREFIX__prefixish"  :subid("33_1272455242.78413") :method
 .annotate "line", 5
     $P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
     new $P72, "ResizablePMCArray"
@@ -1463,7 +1463,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "postfixish"  :subid("34_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx75_tgt
     .local int rx75_pos
@@ -1537,7 +1537,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1271948647.57035") :method
+.sub "!PREFIX__postfixish"  :subid("35_1272455242.78413") :method
 .annotate "line", 5
     $P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
     $P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
@@ -1549,7 +1549,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "nullterm"  :subid("36_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx83_tgt
     .local int rx83_pos
@@ -1600,7 +1600,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1271948647.57035") :method
+.sub "!PREFIX__nullterm"  :subid("37_1272455242.78413") :method
 .annotate "line", 5
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -1609,7 +1609,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "nullterm_alt"  :subid("38_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 5
     .local string rx88_tgt
     .local int rx88_pos
@@ -1667,7 +1667,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1271948647.57035") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1272455242.78413") :method
 .annotate "line", 5
     $P90 = self."!PREFIX__!subrule"("term", "")
     new $P91, "ResizablePMCArray"
@@ -1677,11 +1677,11 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nulltermish"  :subid("40_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "nulltermish"  :subid("40_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     new $P95, 'ExceptionHandler'
     set_addr $P95, control_94
-    $P95."handle_types"(58)
+    $P95."handle_types"(57)
     push_eh $P95
     .lex "self", self
     find_lex $P98, "self"
@@ -1704,7 +1704,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_delimited"  :subid("41_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx104_tgt
     .local int rx104_pos
@@ -1786,7 +1786,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1271948647.57035") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1272455242.78413") :method
 .annotate "line", 33
     $P106 = self."!PREFIX__!subrule"("starter", "")
     new $P107, "ResizablePMCArray"
@@ -1796,7 +1796,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_atom"  :subid("43_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx112_tgt
     .local int rx112_pos
@@ -1887,7 +1887,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1271948647.57035") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1272455242.78413") :method
 .annotate "line", 33
     new $P114, "ResizablePMCArray"
     push $P114, ""
@@ -1896,7 +1896,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "decint"  :subid("45_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx122_tgt
     .local int rx122_pos
@@ -1968,7 +1968,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1271948647.57035") :method
+.sub "!PREFIX__decint"  :subid("46_1272455242.78413") :method
 .annotate "line", 33
     new $P124, "ResizablePMCArray"
     push $P124, ""
@@ -1977,7 +1977,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "decints"  :subid("47_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx129_tgt
     .local int rx129_pos
@@ -2061,7 +2061,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1271948647.57035") :method
+.sub "!PREFIX__decints"  :subid("48_1272455242.78413") :method
 .annotate "line", 33
     new $P131, "ResizablePMCArray"
     push $P131, ""
@@ -2070,7 +2070,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "hexint"  :subid("49_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx136_tgt
     .local int rx136_pos
@@ -2151,7 +2151,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1271948647.57035") :method
+.sub "!PREFIX__hexint"  :subid("50_1272455242.78413") :method
 .annotate "line", 33
     new $P138, "ResizablePMCArray"
     push $P138, ""
@@ -2160,7 +2160,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "hexints"  :subid("51_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2244,7 +2244,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1271948647.57035") :method
+.sub "!PREFIX__hexints"  :subid("52_1272455242.78413") :method
 .annotate "line", 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2253,7 +2253,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "octint"  :subid("53_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2334,7 +2334,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1271948647.57035") :method
+.sub "!PREFIX__octint"  :subid("54_1272455242.78413") :method
 .annotate "line", 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2343,7 +2343,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "octints"  :subid("55_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx161_tgt
     .local int rx161_pos
@@ -2427,7 +2427,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1271948647.57035") :method
+.sub "!PREFIX__octints"  :subid("56_1272455242.78413") :method
 .annotate "line", 33
     new $P163, "ResizablePMCArray"
     push $P163, ""
@@ -2436,7 +2436,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "binint"  :subid("57_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx168_tgt
     .local int rx168_pos
@@ -2517,7 +2517,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1271948647.57035") :method
+.sub "!PREFIX__binint"  :subid("58_1272455242.78413") :method
 .annotate "line", 33
     new $P170, "ResizablePMCArray"
     push $P170, ""
@@ -2526,7 +2526,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "binints"  :subid("59_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx177_tgt
     .local int rx177_pos
@@ -2610,7 +2610,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1271948647.57035") :method
+.sub "!PREFIX__binints"  :subid("60_1272455242.78413") :method
 .annotate "line", 33
     new $P179, "ResizablePMCArray"
     push $P179, ""
@@ -2619,7 +2619,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "integer"  :subid("61_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx184_tgt
     .local int rx184_pos
@@ -2767,7 +2767,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1271948647.57035") :method
+.sub "!PREFIX__integer"  :subid("62_1272455242.78413") :method
 .annotate "line", 33
     $P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
     $P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
@@ -2785,7 +2785,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "dec_number"  :subid("63_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -2964,7 +2964,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1271948647.57035") :method
+.sub "!PREFIX__dec_number"  :subid("64_1272455242.78413") :method
 .annotate "line", 33
     new $P198, "ResizablePMCArray"
     push $P198, ""
@@ -2975,7 +2975,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "escale"  :subid("65_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx209_tgt
     .local int rx209_pos
@@ -3052,7 +3052,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1271948647.57035") :method
+.sub "!PREFIX__escale"  :subid("66_1272455242.78413") :method
 .annotate "line", 33
     new $P211, "ResizablePMCArray"
     push $P211, "e"
@@ -3062,7 +3062,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1271948647.57035") :method
+.sub "quote_escape"  :subid("67_1272455242.78413") :method
 .annotate "line", 79
     $P216 = self."!protoregex"("quote_escape")
     .return ($P216)
@@ -3070,7 +3070,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1271948647.57035") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1272455242.78413") :method
 .annotate "line", 79
     $P218 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P218)
@@ -3078,7 +3078,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<backslash>"  :subid("69_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx220_tgt
     .local int rx220_pos
@@ -3140,7 +3140,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1272455242.78413") :method
 .annotate "line", 33
     new $P222, "ResizablePMCArray"
     push $P222, "\\\\"
@@ -3149,7 +3149,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<stopper>"  :subid("71_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx225_tgt
     .local int rx225_pos
@@ -3218,7 +3218,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1272455242.78413") :method
 .annotate "line", 33
     new $P227, "ResizablePMCArray"
     push $P227, "\\"
@@ -3227,7 +3227,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<bs>"  :subid("73_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx230_tgt
     .local int rx230_pos
@@ -3289,7 +3289,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1272455242.78413") :method
 .annotate "line", 33
     new $P232, "ResizablePMCArray"
     push $P232, "\\b"
@@ -3298,7 +3298,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<nl>"  :subid("75_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx235_tgt
     .local int rx235_pos
@@ -3360,7 +3360,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1272455242.78413") :method
 .annotate "line", 33
     new $P237, "ResizablePMCArray"
     push $P237, "\\n"
@@ -3369,7 +3369,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<cr>"  :subid("77_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx240_tgt
     .local int rx240_pos
@@ -3431,7 +3431,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1272455242.78413") :method
 .annotate "line", 33
     new $P242, "ResizablePMCArray"
     push $P242, "\\r"
@@ -3440,7 +3440,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<tab>"  :subid("79_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx245_tgt
     .local int rx245_pos
@@ -3502,7 +3502,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1272455242.78413") :method
 .annotate "line", 33
     new $P247, "ResizablePMCArray"
     push $P247, "\\t"
@@ -3511,7 +3511,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<ff>"  :subid("81_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx250_tgt
     .local int rx250_pos
@@ -3573,7 +3573,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1272455242.78413") :method
 .annotate "line", 33
     new $P252, "ResizablePMCArray"
     push $P252, "\\f"
@@ -3582,7 +3582,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("83_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<hex>"  :subid("83_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx255_tgt
     .local int rx255_pos
@@ -3680,7 +3680,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("84_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("84_1272455242.78413") :method
 .annotate "line", 33
     new $P257, "ResizablePMCArray"
     push $P257, unicode:"\\x"
@@ -3689,7 +3689,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("85_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<oct>"  :subid("85_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx261_tgt
     .local int rx261_pos
@@ -3787,7 +3787,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("86_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("86_1272455242.78413") :method
 .annotate "line", 33
     new $P263, "ResizablePMCArray"
     push $P263, "\\o"
@@ -3796,7 +3796,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("87_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<chr>"  :subid("87_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx267_tgt
     .local int rx267_pos
@@ -3865,7 +3865,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("88_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("88_1272455242.78413") :method
 .annotate "line", 33
     new $P269, "ResizablePMCArray"
     push $P269, "\\c"
@@ -3874,7 +3874,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("89_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<0>"  :subid("89_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx272_tgt
     .local int rx272_pos
@@ -3957,7 +3957,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("90_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("90_1272455242.78413") :method
 .annotate "line", 33
     new $P274, "ResizablePMCArray"
     push $P274, "\\0"
@@ -3966,13 +3966,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("91_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "quote_escape:sym<misc>"  :subid("91_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
-    .const 'Sub' $P297 = "95_1271948647.57035" 
+    .const 'Sub' $P297 = "95_1272455242.78413" 
     capture_lex $P297
-    .const 'Sub' $P290 = "94_1271948647.57035" 
+    .const 'Sub' $P290 = "94_1272455242.78413" 
     capture_lex $P290
-    .const 'Sub' $P285 = "93_1271948647.57035" 
+    .const 'Sub' $P285 = "93_1272455242.78413" 
     capture_lex $P285
     .local string rx278_tgt
     .local int rx278_pos
@@ -4009,7 +4009,7 @@
     $P283 = $P282."MATCH"()
     store_lex "$/", $P283
 .annotate "line", 99
-    .const 'Sub' $P285 = "93_1271948647.57035" 
+    .const 'Sub' $P285 = "93_1272455242.78413" 
     capture_lex $P285
     $P286 = $P285()
   # rx literal  "\\"
@@ -4035,7 +4035,7 @@
 .annotate "line", 103
   # rx subrule $P290 subtype=capture negate=
     rx278_cur."!cursor_pos"(rx278_pos)
-    .const 'Sub' $P290 = "94_1271948647.57035" 
+    .const 'Sub' $P290 = "94_1272455242.78413" 
     capture_lex $P290
     $P10 = rx278_cur.$P290()
     unless $P10, rx278_fail
@@ -4069,7 +4069,7 @@
     find_lex $P294, unicode:"$\x{a2}"
     $P295 = $P294."MATCH"()
     store_lex "$/", $P295
-    .const 'Sub' $P297 = "95_1271948647.57035" 
+    .const 'Sub' $P297 = "95_1272455242.78413" 
     capture_lex $P297
     $P307 = $P297()
   alt288_end:
@@ -4115,7 +4115,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("92_1271948647.57035") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("92_1272455242.78413") :method
 .annotate "line", 33
     new $P280, "ResizablePMCArray"
     push $P280, ""
@@ -4124,14 +4124,14 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block284"  :anon :subid("93_1271948647.57035") :outer("91_1271948647.57035")
+.sub "_block284"  :anon :subid("93_1272455242.78413") :outer("91_1272455242.78413")
 .annotate "line", 99
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block289"  :anon :subid("94_1271948647.57035") :method :outer("91_1271948647.57035")
+.sub "_block289"  :anon :subid("94_1272455242.78413") :method :outer("91_1272455242.78413")
 .annotate "line", 103
     .local string rx291_tgt
     .local int rx291_pos
@@ -4186,7 +4186,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block296"  :anon :subid("95_1271948647.57035") :outer("91_1271948647.57035")
+.sub "_block296"  :anon :subid("95_1272455242.78413") :outer("91_1272455242.78413")
 .annotate "line", 104
     find_lex $P298, "$/"
     $P299 = $P298."CURSOR"()
@@ -4209,9 +4209,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("96_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "charname"  :subid("96_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
-    .const 'Sub' $P319 = "98_1271948647.57035" 
+    .const 'Sub' $P319 = "98_1272455242.78413" 
     capture_lex $P319
     .local string rx310_tgt
     .local int rx310_pos
@@ -4289,7 +4289,7 @@
 .annotate "line", 113
   # rx subrule "before" subtype=zerowidth negate=
     rx310_cur."!cursor_pos"(rx310_pos)
-    .const 'Sub' $P319 = "98_1271948647.57035" 
+    .const 'Sub' $P319 = "98_1272455242.78413" 
     capture_lex $P319
     $P10 = rx310_cur."before"($P319)
     unless $P10, rx310_fail
@@ -4314,7 +4314,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("97_1271948647.57035") :method
+.sub "!PREFIX__charname"  :subid("97_1272455242.78413") :method
 .annotate "line", 33
     $P312 = self."!PREFIX__!subrule"("integer", "")
     new $P313, "ResizablePMCArray"
@@ -4376,7 +4376,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block318"  :anon :subid("98_1271948647.57035") :method :outer("96_1271948647.57035")
+.sub "_block318"  :anon :subid("98_1272455242.78413") :method :outer("96_1272455242.78413")
 .annotate "line", 113
     .local string rx320_tgt
     .local int rx320_pos
@@ -4436,7 +4436,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("99_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "charnames"  :subid("99_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx323_tgt
     .local int rx323_pos
@@ -4520,7 +4520,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("100_1271948647.57035") :method
+.sub "!PREFIX__charnames"  :subid("100_1272455242.78413") :method
 .annotate "line", 33
     new $P325, "ResizablePMCArray"
     push $P325, ""
@@ -4529,7 +4529,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("101_1271948647.57035") :method :outer("11_1271948647.57035")
+.sub "charspec"  :subid("101_1272455242.78413") :method :outer("11_1272455242.78413")
 .annotate "line", 33
     .local string rx330_tgt
     .local int rx330_pos
@@ -4659,7 +4659,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("102_1271948647.57035") :method
+.sub "!PREFIX__charspec"  :subid("102_1272455242.78413") :method
 .annotate "line", 33
     $P332 = self."!PREFIX__!subrule"("", "")
     $P333 = self."!PREFIX__!subrule"("charnames", "[")
@@ -4701,7 +4701,7 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1271948650.1622")
+.sub "_block11"  :anon :subid("10_1272455244.05365")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -4715,9 +4715,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post49") :outer("10_1271948650.1622")
+.sub "" :load :init :subid("post49") :outer("10_1272455244.05365")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1271948650.1622" 
+    .const 'Sub' $P12 = "10_1272455244.05365" 
     .local pmc block
     set block, $P12
     $P572 = get_root_global ["parrot"], "P6metaclass"
@@ -4726,72 +4726,72 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1271948650.1622") :outer("10_1271948650.1622")
+.sub "_block13"  :subid("11_1272455244.05365") :outer("10_1272455244.05365")
 .annotate "line", 3
-    .const 'Sub' $P554 = "48_1271948650.1622" 
+    .const 'Sub' $P554 = "48_1272455244.05365" 
     capture_lex $P554
-    .const 'Sub' $P529 = "46_1271948650.1622" 
+    .const 'Sub' $P529 = "46_1272455244.05365" 
     capture_lex $P529
-    .const 'Sub' $P498 = "45_1271948650.1622" 
+    .const 'Sub' $P498 = "45_1272455244.05365" 
     capture_lex $P498
-    .const 'Sub' $P479 = "44_1271948650.1622" 
+    .const 'Sub' $P479 = "44_1272455244.05365" 
     capture_lex $P479
-    .const 'Sub' $P472 = "43_1271948650.1622" 
+    .const 'Sub' $P472 = "43_1272455244.05365" 
     capture_lex $P472
-    .const 'Sub' $P462 = "42_1271948650.1622" 
+    .const 'Sub' $P462 = "42_1272455244.05365" 
     capture_lex $P462
-    .const 'Sub' $P445 = "41_1271948650.1622" 
+    .const 'Sub' $P445 = "41_1272455244.05365" 
     capture_lex $P445
-    .const 'Sub' $P428 = "40_1271948650.1622" 
+    .const 'Sub' $P428 = "40_1272455244.05365" 
     capture_lex $P428
-    .const 'Sub' $P421 = "39_1271948650.1622" 
+    .const 'Sub' $P421 = "39_1272455244.05365" 
     capture_lex $P421
-    .const 'Sub' $P414 = "38_1271948650.1622" 
+    .const 'Sub' $P414 = "38_1272455244.05365" 
     capture_lex $P414
-    .const 'Sub' $P407 = "37_1271948650.1622" 
+    .const 'Sub' $P407 = "37_1272455244.05365" 
     capture_lex $P407
-    .const 'Sub' $P400 = "36_1271948650.1622" 
+    .const 'Sub' $P400 = "36_1272455244.05365" 
     capture_lex $P400
-    .const 'Sub' $P393 = "35_1271948650.1622" 
+    .const 'Sub' $P393 = "35_1272455244.05365" 
     capture_lex $P393
-    .const 'Sub' $P383 = "34_1271948650.1622" 
+    .const 'Sub' $P383 = "34_1272455244.05365" 
     capture_lex $P383
-    .const 'Sub' $P376 = "33_1271948650.1622" 
+    .const 'Sub' $P376 = "33_1272455244.05365" 
     capture_lex $P376
-    .const 'Sub' $P360 = "32_1271948650.1622" 
+    .const 'Sub' $P360 = "32_1272455244.05365" 
     capture_lex $P360
-    .const 'Sub' $P285 = "30_1271948650.1622" 
+    .const 'Sub' $P285 = "30_1272455244.05365" 
     capture_lex $P285
-    .const 'Sub' $P222 = "27_1271948650.1622" 
+    .const 'Sub' $P222 = "27_1272455244.05365" 
     capture_lex $P222
-    .const 'Sub' $P213 = "26_1271948650.1622" 
+    .const 'Sub' $P213 = "26_1272455244.05365" 
     capture_lex $P213
-    .const 'Sub' $P204 = "25_1271948650.1622" 
+    .const 'Sub' $P204 = "25_1272455244.05365" 
     capture_lex $P204
-    .const 'Sub' $P195 = "24_1271948650.1622" 
+    .const 'Sub' $P195 = "24_1272455244.05365" 
     capture_lex $P195
-    .const 'Sub' $P186 = "23_1271948650.1622" 
+    .const 'Sub' $P186 = "23_1272455244.05365" 
     capture_lex $P186
-    .const 'Sub' $P177 = "22_1271948650.1622" 
+    .const 'Sub' $P177 = "22_1272455244.05365" 
     capture_lex $P177
-    .const 'Sub' $P167 = "21_1271948650.1622" 
+    .const 'Sub' $P167 = "21_1272455244.05365" 
     capture_lex $P167
-    .const 'Sub' $P157 = "20_1271948650.1622" 
+    .const 'Sub' $P157 = "20_1272455244.05365" 
     capture_lex $P157
-    .const 'Sub' $P149 = "19_1271948650.1622" 
+    .const 'Sub' $P149 = "19_1272455244.05365" 
     capture_lex $P149
-    .const 'Sub' $P139 = "18_1271948650.1622" 
+    .const 'Sub' $P139 = "18_1272455244.05365" 
     capture_lex $P139
-    .const 'Sub' $P129 = "17_1271948650.1622" 
+    .const 'Sub' $P129 = "17_1272455244.05365" 
     capture_lex $P129
-    .const 'Sub' $P28 = "14_1271948650.1622" 
+    .const 'Sub' $P28 = "14_1272455244.05365" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1271948650.1622" 
+    .const 'Sub' $P22 = "13_1272455244.05365" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1271948650.1622" 
+    .const 'Sub' $P15 = "12_1272455244.05365" 
     capture_lex $P15
 .annotate "line", 197
-    .const 'Sub' $P554 = "48_1271948650.1622" 
+    .const 'Sub' $P554 = "48_1272455244.05365" 
     capture_lex $P554
 .annotate "line", 3
     .return ($P554)
@@ -4799,13 +4799,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "string_to_int"  :subid("12_1271948650.1622") :outer("11_1271948650.1622")
+.sub "string_to_int"  :subid("12_1272455244.05365") :outer("11_1272455244.05365")
     .param pmc param_18
     .param pmc param_19
 .annotate "line", 3
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(58)
+    $P17."handle_types"(57)
     push_eh $P17
     .lex "$src", param_18
     .lex "$base", param_19
@@ -4852,12 +4852,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "ints_to_string"  :subid("13_1271948650.1622") :outer("11_1271948650.1622")
+.sub "ints_to_string"  :subid("13_1272455244.05365") :outer("11_1272455244.05365")
     .param pmc param_25
 .annotate "line", 37
     new $P24, 'ExceptionHandler'
     set_addr $P24, control_23
-    $P24."handle_types"(58)
+    $P24."handle_types"(57)
     push_eh $P24
     .lex "$ints", param_25
 .annotate "line", 38
@@ -4893,18 +4893,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "EXPR"  :subid("14_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "EXPR"  :subid("14_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_31
     .param pmc param_32 :optional
     .param int has_param_32 :opt_flag
 .annotate "line", 62
-    .const 'Sub' $P111 = "16_1271948650.1622" 
+    .const 'Sub' $P111 = "16_1272455244.05365" 
     capture_lex $P111
-    .const 'Sub' $P78 = "15_1271948650.1622" 
+    .const 'Sub' $P78 = "15_1272455244.05365" 
     capture_lex $P78
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
-    $P30."handle_types"(58)
+    $P30."handle_types"(57)
     push_eh $P30
     .lex "self", self
     .lex "$/", param_31
@@ -4920,7 +4920,7 @@
     find_lex $P36, "$key"
     if $P36, unless_35_end
     new $P37, "Exception"
-    set $P37['type'], 58
+    set $P37['type'], 57
     new $P38, "Integer"
     assign $P38, 0
     setattribute $P37, 'payload', $P38
@@ -5035,7 +5035,7 @@
     find_lex $P75, "$past"
     $P76 = $P75."name"()
     if $P76, unless_74_end
-    .const 'Sub' $P78 = "15_1271948650.1622" 
+    .const 'Sub' $P78 = "15_1272455244.05365" 
     capture_lex $P78
     $P78()
   unless_74_end:
@@ -5053,13 +5053,13 @@
     iter $P105, $P107
     new $P123, 'ExceptionHandler'
     set_addr $P123, loop122_handler
-    $P123."handle_types"(65, 67, 66)
+    $P123."handle_types"(64, 66, 65)
     push_eh $P123
   loop122_test:
     unless $P105, loop122_done
     shift $P109, $P105
   loop122_redo:
-    .const 'Sub' $P111 = "16_1271948650.1622" 
+    .const 'Sub' $P111 = "16_1272455244.05365" 
     capture_lex $P111
     $P111($P109)
   loop122_next:
@@ -5068,8 +5068,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P124, exception, 'type'
-    eq $P124, 65, loop122_next
-    eq $P124, 67, loop122_redo
+    eq $P124, 64, loop122_next
+    eq $P124, 66, loop122_redo
   loop122_done:
     pop_eh 
   for_undef_72:
@@ -5104,7 +5104,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block77"  :anon :subid("15_1271948650.1622") :outer("14_1271948650.1622")
+.sub "_block77"  :anon :subid("15_1272455244.05365") :outer("14_1272455244.05365")
 .annotate "line", 71
     new $P79, "Undef"
     .lex "$name", $P79
@@ -5154,7 +5154,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block110"  :anon :subid("16_1271948650.1622") :outer("14_1271948650.1622")
+.sub "_block110"  :anon :subid("16_1272455244.05365") :outer("14_1272455244.05365")
     .param pmc param_112
 .annotate "line", 82
     .lex "$_", param_112
@@ -5177,12 +5177,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>"  :subid("17_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "term:sym<circumfix>"  :subid("17_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_132
 .annotate "line", 87
     new $P131, 'ExceptionHandler'
     set_addr $P131, control_130
-    $P131."handle_types"(58)
+    $P131."handle_types"(57)
     push_eh $P131
     .lex "self", self
     .lex "$/", param_132
@@ -5207,12 +5207,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "termish"  :subid("18_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "termish"  :subid("18_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_142
 .annotate "line", 89
     new $P141, 'ExceptionHandler'
     set_addr $P141, control_140
-    $P141."handle_types"(58)
+    $P141."handle_types"(57)
     push_eh $P141
     .lex "self", self
     .lex "$/", param_142
@@ -5237,12 +5237,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm"  :subid("19_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "nullterm"  :subid("19_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_152
 .annotate "line", 90
     new $P151, 'ExceptionHandler'
     set_addr $P151, control_150
-    $P151."handle_types"(58)
+    $P151."handle_types"(57)
     push_eh $P151
     .lex "self", self
     .lex "$/", param_152
@@ -5259,12 +5259,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm_alt"  :subid("20_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "nullterm_alt"  :subid("20_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_160
 .annotate "line", 91
     new $P159, 'ExceptionHandler'
     set_addr $P159, control_158
-    $P159."handle_types"(58)
+    $P159."handle_types"(57)
     push_eh $P159
     .lex "self", self
     .lex "$/", param_160
@@ -5289,12 +5289,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "integer"  :subid("21_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "integer"  :subid("21_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_170
 .annotate "line", 93
     new $P169, 'ExceptionHandler'
     set_addr $P169, control_168
-    $P169."handle_types"(58)
+    $P169."handle_types"(57)
     push_eh $P169
     .lex "self", self
     .lex "$/", param_170
@@ -5319,12 +5319,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "dec_number"  :subid("22_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "dec_number"  :subid("22_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_180
 .annotate "line", 95
     new $P179, 'ExceptionHandler'
     set_addr $P179, control_178
-    $P179."handle_types"(58)
+    $P179."handle_types"(57)
     push_eh $P179
     .lex "self", self
     .lex "$/", param_180
@@ -5342,12 +5342,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "decint"  :subid("23_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "decint"  :subid("23_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_189
 .annotate "line", 97
     new $P188, 'ExceptionHandler'
     set_addr $P188, control_187
-    $P188."handle_types"(58)
+    $P188."handle_types"(57)
     push_eh $P188
     .lex "self", self
     .lex "$/", param_189
@@ -5365,12 +5365,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "hexint"  :subid("24_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "hexint"  :subid("24_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_198
 .annotate "line", 98
     new $P197, 'ExceptionHandler'
     set_addr $P197, control_196
-    $P197."handle_types"(58)
+    $P197."handle_types"(57)
     push_eh $P197
     .lex "self", self
     .lex "$/", param_198
@@ -5388,12 +5388,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "octint"  :subid("25_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "octint"  :subid("25_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_207
 .annotate "line", 99
     new $P206, 'ExceptionHandler'
     set_addr $P206, control_205
-    $P206."handle_types"(58)
+    $P206."handle_types"(57)
     push_eh $P206
     .lex "self", self
     .lex "$/", param_207
@@ -5411,12 +5411,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "binint"  :subid("26_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "binint"  :subid("26_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_216
 .annotate "line", 100
     new $P215, 'ExceptionHandler'
     set_addr $P215, control_214
-    $P215."handle_types"(58)
+    $P215."handle_types"(57)
     push_eh $P215
     .lex "self", self
     .lex "$/", param_216
@@ -5434,14 +5434,14 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_EXPR"  :subid("27_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_EXPR"  :subid("27_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_225
 .annotate "line", 102
-    .const 'Sub' $P241 = "28_1271948650.1622" 
+    .const 'Sub' $P241 = "28_1272455244.05365" 
     capture_lex $P241
     new $P224, 'ExceptionHandler'
     set_addr $P224, control_223
-    $P224."handle_types"(58)
+    $P224."handle_types"(57)
     push_eh $P224
     .lex "self", self
     .lex "$/", param_225
@@ -5469,7 +5469,7 @@
     $P237 = $P235."ACCEPTS"($P236)
     if $P237, if_234
 .annotate "line", 108
-    .const 'Sub' $P241 = "28_1271948650.1622" 
+    .const 'Sub' $P241 = "28_1272455244.05365" 
     capture_lex $P241
     $P241()
     goto if_234_end
@@ -5508,9 +5508,9 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block240"  :anon :subid("28_1271948650.1622") :outer("27_1271948650.1622")
+.sub "_block240"  :anon :subid("28_1272455244.05365") :outer("27_1272455244.05365")
 .annotate "line", 108
-    .const 'Sub' $P260 = "29_1271948650.1622" 
+    .const 'Sub' $P260 = "29_1272455244.05365" 
     capture_lex $P260
 .annotate "line", 109
     $P242 = root_new ['parrot';'ResizablePMCArray']
@@ -5555,13 +5555,13 @@
     iter $P255, $P256
     new $P266, 'ExceptionHandler'
     set_addr $P266, loop265_handler
-    $P266."handle_types"(65, 67, 66)
+    $P266."handle_types"(64, 66, 65)
     push_eh $P266
   loop265_test:
     unless $P255, loop265_done
     shift $P258, $P255
   loop265_redo:
-    .const 'Sub' $P260 = "29_1271948650.1622" 
+    .const 'Sub' $P260 = "29_1272455244.05365" 
     capture_lex $P260
     $P260($P258)
   loop265_next:
@@ -5570,8 +5570,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P267, exception, 'type'
-    eq $P267, 65, loop265_next
-    eq $P267, 67, loop265_redo
+    eq $P267, 64, loop265_next
+    eq $P267, 66, loop265_redo
   loop265_done:
     pop_eh 
   for_undef_87:
@@ -5584,7 +5584,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block259"  :anon :subid("29_1271948650.1622") :outer("28_1271948650.1622")
+.sub "_block259"  :anon :subid("29_1272455244.05365") :outer("28_1272455244.05365")
     .param pmc param_261
 .annotate "line", 112
     .lex "$_", param_261
@@ -5596,14 +5596,14 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_delimited"  :subid("30_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_delimited"  :subid("30_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_288
 .annotate "line", 125
-    .const 'Sub' $P300 = "31_1271948650.1622" 
+    .const 'Sub' $P300 = "31_1272455244.05365" 
     capture_lex $P300
     new $P287, 'ExceptionHandler'
     set_addr $P287, control_286
-    $P287."handle_types"(58)
+    $P287."handle_types"(57)
     push_eh $P287
     .lex "self", self
     .lex "$/", param_288
@@ -5636,13 +5636,13 @@
     iter $P294, $P296
     new $P333, 'ExceptionHandler'
     set_addr $P333, loop332_handler
-    $P333."handle_types"(65, 67, 66)
+    $P333."handle_types"(64, 66, 65)
     push_eh $P333
   loop332_test:
     unless $P294, loop332_done
     shift $P298, $P294
   loop332_redo:
-    .const 'Sub' $P300 = "31_1271948650.1622" 
+    .const 'Sub' $P300 = "31_1272455244.05365" 
     capture_lex $P300
     $P300($P298)
   loop332_next:
@@ -5651,8 +5651,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P334, exception, 'type'
-    eq $P334, 65, loop332_next
-    eq $P334, 67, loop332_redo
+    eq $P334, 64, loop332_next
+    eq $P334, 66, loop332_redo
   loop332_done:
     pop_eh 
   for_undef_90:
@@ -5681,7 +5681,7 @@
 .annotate "line", 144
     new $P354, 'ExceptionHandler'
     set_addr $P354, loop353_handler
-    $P354."handle_types"(65, 67, 66)
+    $P354."handle_types"(64, 66, 65)
     push_eh $P354
   loop353_test:
     find_lex $P347, "@parts"
@@ -5701,8 +5701,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P355, exception, 'type'
-    eq $P355, 65, loop353_next
-    eq $P355, 67, loop353_redo
+    eq $P355, 64, loop353_next
+    eq $P355, 66, loop353_redo
   loop353_done:
     pop_eh 
 .annotate "line", 147
@@ -5720,7 +5720,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block299"  :anon :subid("31_1271948650.1622") :outer("30_1271948650.1622")
+.sub "_block299"  :anon :subid("31_1272455244.05365") :outer("30_1272455244.05365")
     .param pmc param_302
 .annotate "line", 129
     new $P301, "Undef"
@@ -5789,12 +5789,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_atom"  :subid("32_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_atom"  :subid("32_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_363
 .annotate "line", 150
     new $P362, 'ExceptionHandler'
     set_addr $P362, control_361
-    $P362."handle_types"(58)
+    $P362."handle_types"(57)
     push_eh $P362
     .lex "self", self
     .lex "$/", param_363
@@ -5838,12 +5838,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>"  :subid("33_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<backslash>"  :subid("33_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_379
 .annotate "line", 154
     new $P378, 'ExceptionHandler'
     set_addr $P378, control_377
-    $P378."handle_types"(58)
+    $P378."handle_types"(57)
     push_eh $P378
     .lex "self", self
     .lex "$/", param_379
@@ -5859,12 +5859,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>"  :subid("34_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<stopper>"  :subid("34_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_386
 .annotate "line", 155
     new $P385, 'ExceptionHandler'
     set_addr $P385, control_384
-    $P385."handle_types"(58)
+    $P385."handle_types"(57)
     push_eh $P385
     .lex "self", self
     .lex "$/", param_386
@@ -5889,12 +5889,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>"  :subid("35_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<bs>"  :subid("35_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_396
 .annotate "line", 157
     new $P395, 'ExceptionHandler'
     set_addr $P395, control_394
-    $P395."handle_types"(58)
+    $P395."handle_types"(57)
     push_eh $P395
     .lex "self", self
     .lex "$/", param_396
@@ -5910,12 +5910,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>"  :subid("36_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<nl>"  :subid("36_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_403
 .annotate "line", 158
     new $P402, 'ExceptionHandler'
     set_addr $P402, control_401
-    $P402."handle_types"(58)
+    $P402."handle_types"(57)
     push_eh $P402
     .lex "self", self
     .lex "$/", param_403
@@ -5931,12 +5931,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>"  :subid("37_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<cr>"  :subid("37_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_410
 .annotate "line", 159
     new $P409, 'ExceptionHandler'
     set_addr $P409, control_408
-    $P409."handle_types"(58)
+    $P409."handle_types"(57)
     push_eh $P409
     .lex "self", self
     .lex "$/", param_410
@@ -5952,12 +5952,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>"  :subid("38_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<tab>"  :subid("38_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_417
 .annotate "line", 160
     new $P416, 'ExceptionHandler'
     set_addr $P416, control_415
-    $P416."handle_types"(58)
+    $P416."handle_types"(57)
     push_eh $P416
     .lex "self", self
     .lex "$/", param_417
@@ -5973,12 +5973,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<ff>"  :subid("39_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<ff>"  :subid("39_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_424
 .annotate "line", 161
     new $P423, 'ExceptionHandler'
     set_addr $P423, control_422
-    $P423."handle_types"(58)
+    $P423."handle_types"(57)
     push_eh $P423
     .lex "self", self
     .lex "$/", param_424
@@ -5994,12 +5994,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>"  :subid("40_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<hex>"  :subid("40_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_431
 .annotate "line", 163
     new $P430, 'ExceptionHandler'
     set_addr $P430, control_429
-    $P430."handle_types"(58)
+    $P430."handle_types"(57)
     push_eh $P430
     .lex "self", self
     .lex "$/", param_431
@@ -6052,12 +6052,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>"  :subid("41_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<oct>"  :subid("41_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_448
 .annotate "line", 167
     new $P447, 'ExceptionHandler'
     set_addr $P447, control_446
-    $P447."handle_types"(58)
+    $P447."handle_types"(57)
     push_eh $P447
     .lex "self", self
     .lex "$/", param_448
@@ -6110,12 +6110,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<chr>"  :subid("42_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<chr>"  :subid("42_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_465
 .annotate "line", 171
     new $P464, 'ExceptionHandler'
     set_addr $P464, control_463
-    $P464."handle_types"(58)
+    $P464."handle_types"(57)
     push_eh $P464
     .lex "self", self
     .lex "$/", param_465
@@ -6142,12 +6142,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<0>"  :subid("43_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<0>"  :subid("43_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_475
 .annotate "line", 175
     new $P474, 'ExceptionHandler'
     set_addr $P474, control_473
-    $P474."handle_types"(58)
+    $P474."handle_types"(57)
     push_eh $P474
     .lex "self", self
     .lex "$/", param_475
@@ -6165,12 +6165,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<misc>"  :subid("44_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "quote_escape:sym<misc>"  :subid("44_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_482
 .annotate "line", 179
     new $P481, 'ExceptionHandler'
     set_addr $P481, control_480
-    $P481."handle_types"(58)
+    $P481."handle_types"(57)
     push_eh $P481
     .lex "self", self
     .lex "$/", param_482
@@ -6223,12 +6223,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charname"  :subid("45_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "charname"  :subid("45_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_501
 .annotate "line", 183
     new $P500, 'ExceptionHandler'
     set_addr $P500, control_499
-    $P500."handle_types"(58)
+    $P500."handle_types"(57)
     push_eh $P500
     .lex "self", self
     .lex "$/", param_501
@@ -6296,14 +6296,14 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charnames"  :subid("46_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "charnames"  :subid("46_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_532
 .annotate "line", 191
-    .const 'Sub' $P541 = "47_1271948650.1622" 
+    .const 'Sub' $P541 = "47_1272455244.05365" 
     capture_lex $P541
     new $P531, 'ExceptionHandler'
     set_addr $P531, control_530
-    $P531."handle_types"(58)
+    $P531."handle_types"(57)
     push_eh $P531
     .lex "self", self
     .lex "$/", param_532
@@ -6327,13 +6327,13 @@
     iter $P535, $P537
     new $P548, 'ExceptionHandler'
     set_addr $P548, loop547_handler
-    $P548."handle_types"(65, 67, 66)
+    $P548."handle_types"(64, 66, 65)
     push_eh $P548
   loop547_test:
     unless $P535, loop547_done
     shift $P539, $P535
   loop547_redo:
-    .const 'Sub' $P541 = "47_1271948650.1622" 
+    .const 'Sub' $P541 = "47_1272455244.05365" 
     capture_lex $P541
     $P541($P539)
   loop547_next:
@@ -6342,8 +6342,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P549, exception, 'type'
-    eq $P549, 65, loop547_next
-    eq $P549, 67, loop547_redo
+    eq $P549, 64, loop547_next
+    eq $P549, 66, loop547_redo
   loop547_done:
     pop_eh 
   for_undef_125:
@@ -6362,7 +6362,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block540"  :anon :subid("47_1271948650.1622") :outer("46_1271948650.1622")
+.sub "_block540"  :anon :subid("47_1272455244.05365") :outer("46_1272455244.05365")
     .param pmc param_542
 .annotate "line", 193
     .lex "$_", param_542
@@ -6376,12 +6376,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charspec"  :subid("48_1271948650.1622") :method :outer("11_1271948650.1622")
+.sub "charspec"  :subid("48_1272455244.05365") :method :outer("11_1272455244.05365")
     .param pmc param_557
 .annotate "line", 197
     new $P556, 'ExceptionHandler'
     set_addr $P556, control_555
-    $P556."handle_types"(58)
+    $P556."handle_types"(57)
     push_eh $P556
     .lex "self", self
     .lex "$/", param_557
@@ -6427,7 +6427,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1271948651.35295")
+.sub "_block11"  :anon :subid("10_1272455244.64589")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -6441,9 +6441,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post25") :outer("10_1271948651.35295")
+.sub "" :load :init :subid("post25") :outer("10_1272455244.64589")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1271948651.35295" 
+    .const 'Sub' $P12 = "10_1272455244.64589" 
     .local pmc block
     set block, $P12
 .annotate "line", 2
@@ -6457,28 +6457,28 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1271948651.35295") :outer("10_1271948651.35295")
+.sub "_block13"  :subid("11_1272455244.64589") :outer("10_1272455244.64589")
 .annotate "line", 6
-    .const 'Sub' $P187 = "20_1271948651.35295" 
+    .const 'Sub' $P187 = "20_1272455244.64589" 
     capture_lex $P187
-    .const 'Sub' $P152 = "18_1271948651.35295" 
+    .const 'Sub' $P152 = "18_1272455244.64589" 
     capture_lex $P152
-    .const 'Sub' $P137 = "17_1271948651.35295" 
+    .const 'Sub' $P137 = "17_1272455244.64589" 
     capture_lex $P137
-    .const 'Sub' $P121 = "16_1271948651.35295" 
+    .const 'Sub' $P121 = "16_1272455244.64589" 
     capture_lex $P121
-    .const 'Sub' $P32 = "13_1271948651.35295" 
+    .const 'Sub' $P32 = "13_1272455244.64589" 
     capture_lex $P32
-    .const 'Sub' $P15 = "12_1271948651.35295" 
+    .const 'Sub' $P15 = "12_1272455244.64589" 
     capture_lex $P15
 .annotate "line", 14
-    .const 'Sub' $P15 = "12_1271948651.35295" 
+    .const 'Sub' $P15 = "12_1272455244.64589" 
     capture_lex $P15
     .lex "value_type", $P15
 .annotate "line", 10
     find_lex $P31, "value_type"
 .annotate "line", 69
-    .const 'Sub' $P187 = "20_1271948651.35295" 
+    .const 'Sub' $P187 = "20_1272455244.64589" 
     capture_lex $P187
 .annotate "line", 6
     .return ($P187)
@@ -6486,7 +6486,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post26") :outer("11_1271948651.35295")
+.sub "" :load :init :subid("post26") :outer("11_1272455244.64589")
 .annotate "line", 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -6498,12 +6498,12 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "value_type"  :subid("12_1271948651.35295") :outer("11_1271948651.35295")
+.sub "value_type"  :subid("12_1272455244.64589") :outer("11_1272455244.64589")
     .param pmc param_18
 .annotate "line", 14
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(58)
+    $P17."handle_types"(57)
     push_eh $P17
     .lex "$value", param_18
 .annotate "line", 15
@@ -6542,19 +6542,19 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_exports"  :subid("13_1271948651.35295") :method :outer("11_1271948651.35295")
+.sub "get_exports"  :subid("13_1272455244.64589") :method :outer("11_1272455244.64589")
     .param pmc param_35
     .param pmc param_38 :slurpy
     .param pmc param_36 :optional :named("tagset")
     .param int has_param_36 :opt_flag
 .annotate "line", 20
-    .const 'Sub' $P104 = "15_1271948651.35295" 
+    .const 'Sub' $P104 = "15_1272455244.64589" 
     capture_lex $P104
-    .const 'Sub' $P83 = "14_1271948651.35295" 
+    .const 'Sub' $P83 = "14_1272455244.64589" 
     capture_lex $P83
     new $P34, 'ExceptionHandler'
     set_addr $P34, control_33
-    $P34."handle_types"(58)
+    $P34."handle_types"(57)
     push_eh $P34
     .lex "self", self
     .lex "$module", param_35
@@ -6650,13 +6650,13 @@
     iter $P99, $P100
     new $P117, 'ExceptionHandler'
     set_addr $P117, loop116_handler
-    $P117."handle_types"(65, 67, 66)
+    $P117."handle_types"(64, 66, 65)
     push_eh $P117
   loop116_test:
     unless $P99, loop116_done
     shift $P102, $P99
   loop116_redo:
-    .const 'Sub' $P104 = "15_1271948651.35295" 
+    .const 'Sub' $P104 = "15_1272455244.64589" 
     capture_lex $P104
     $P104($P102)
   loop116_next:
@@ -6665,8 +6665,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P118, exception, 'type'
-    eq $P118, 65, loop116_next
-    eq $P118, 67, loop116_redo
+    eq $P118, 64, loop116_next
+    eq $P118, 66, loop116_redo
   loop116_done:
     pop_eh 
   for_undef_31:
@@ -6680,13 +6680,13 @@
     iter $P78, $P79
     new $P97, 'ExceptionHandler'
     set_addr $P97, loop96_handler
-    $P97."handle_types"(65, 67, 66)
+    $P97."handle_types"(64, 66, 65)
     push_eh $P97
   loop96_test:
     unless $P78, loop96_done
     shift $P81, $P78
   loop96_redo:
-    .const 'Sub' $P83 = "14_1271948651.35295" 
+    .const 'Sub' $P83 = "14_1272455244.64589" 
     capture_lex $P83
     $P83($P81)
   loop96_next:
@@ -6695,8 +6695,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P98, exception, 'type'
-    eq $P98, 65, loop96_next
-    eq $P98, 67, loop96_redo
+    eq $P98, 64, loop96_next
+    eq $P98, 66, loop96_redo
   loop96_done:
     pop_eh 
   for_undef_34:
@@ -6714,7 +6714,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block103"  :anon :subid("15_1271948651.35295") :outer("13_1271948651.35295")
+.sub "_block103"  :anon :subid("15_1272455244.64589") :outer("13_1272455244.64589")
     .param pmc param_106
 .annotate "line", 40
     new $P105, "Undef"
@@ -6746,7 +6746,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block82"  :anon :subid("14_1271948651.35295") :outer("13_1271948651.35295")
+.sub "_block82"  :anon :subid("14_1272455244.64589") :outer("13_1272455244.64589")
     .param pmc param_85
 .annotate "line", 34
     new $P84, "Undef"
@@ -6785,12 +6785,12 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_module"  :subid("16_1271948651.35295") :method :outer("11_1271948651.35295")
+.sub "get_module"  :subid("16_1272455244.64589") :method :outer("11_1272455244.64589")
     .param pmc param_124
 .annotate "line", 47
     new $P123, 'ExceptionHandler'
     set_addr $P123, control_122
-    $P123."handle_types"(58)
+    $P123."handle_types"(57)
     push_eh $P123
     .lex "self", self
     .lex "$name", param_124
@@ -6825,13 +6825,13 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "language"  :subid("17_1271948651.35295") :method :outer("11_1271948651.35295")
+.sub "language"  :subid("17_1272455244.64589") :method :outer("11_1272455244.64589")
     .param pmc param_140 :optional
     .param int has_param_140 :opt_flag
 .annotate "line", 53
     new $P139, 'ExceptionHandler'
     set_addr $P139, control_138
-    $P139."handle_types"(58)
+    $P139."handle_types"(57)
     push_eh $P139
     .lex "self", self
     if has_param_140, optparam_40
@@ -6869,14 +6869,14 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "load_module"  :subid("18_1271948651.35295") :method :outer("11_1271948651.35295")
+.sub "load_module"  :subid("18_1272455244.64589") :method :outer("11_1272455244.64589")
     .param pmc param_155
 .annotate "line", 61
-    .const 'Sub' $P165 = "19_1271948651.35295" 
+    .const 'Sub' $P165 = "19_1272455244.64589" 
     capture_lex $P165
     new $P154, 'ExceptionHandler'
     set_addr $P154, control_153
-    $P154."handle_types"(58)
+    $P154."handle_types"(57)
     push_eh $P154
     .lex "self", self
     .lex "$name", param_155
@@ -6899,7 +6899,7 @@
     assign $P163, 0
     store_lex "$loaded", $P163
 .annotate "line", 64
-    .const 'Sub' $P165 = "19_1271948651.35295" 
+    .const 'Sub' $P165 = "19_1272455244.64589" 
     capture_lex $P165
     $P165()
 .annotate "line", 65
@@ -6928,11 +6928,11 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block164"  :anon :subid("19_1271948651.35295") :outer("18_1271948651.35295")
+.sub "_block164"  :anon :subid("19_1272455244.64589") :outer("18_1272455244.64589")
 .annotate "line", 64
     new $P172, 'ExceptionHandler'
     set_addr $P172, control_171
-    $P172."handle_types_except"(58, 59, 60, 61, 63, 64, 65, 66, 67)
+    $P172."handle_types_except"(57, 58, 59, 60, 62, 63, 64, 65, 66)
     push_eh $P172
     find_lex $P166, "$base"
     concat $P167, $P166, ".pbc"
@@ -6961,15 +6961,15 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "import"  :subid("20_1271948651.35295") :method :outer("11_1271948651.35295")
+.sub "import"  :subid("20_1272455244.64589") :method :outer("11_1272455244.64589")
     .param pmc param_190
     .param pmc param_191
 .annotate "line", 69
-    .const 'Sub' $P197 = "21_1271948651.35295" 
+    .const 'Sub' $P197 = "21_1272455244.64589" 
     capture_lex $P197
     new $P189, 'ExceptionHandler'
     set_addr $P189, control_188
-    $P189."handle_types"(58)
+    $P189."handle_types"(57)
     push_eh $P189
     .lex "self", self
     .lex "$target", param_190
@@ -6981,13 +6981,13 @@
     iter $P192, $P193
     new $P279, 'ExceptionHandler'
     set_addr $P279, loop278_handler
-    $P279."handle_types"(65, 67, 66)
+    $P279."handle_types"(64, 66, 65)
     push_eh $P279
   loop278_test:
     unless $P192, loop278_done
     shift $P195, $P192
   loop278_redo:
-    .const 'Sub' $P197 = "21_1271948651.35295" 
+    .const 'Sub' $P197 = "21_1272455244.64589" 
     capture_lex $P197
     $P197($P195)
   loop278_next:
@@ -6996,8 +6996,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P280, exception, 'type'
-    eq $P280, 65, loop278_next
-    eq $P280, 67, loop278_redo
+    eq $P280, 64, loop278_next
+    eq $P280, 66, loop278_redo
   loop278_done:
     pop_eh 
   for_undef_42:
@@ -7012,14 +7012,14 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block196"  :anon :subid("21_1271948651.35295") :outer("20_1271948651.35295")
+.sub "_block196"  :anon :subid("21_1272455244.64589") :outer("20_1272455244.64589")
     .param pmc param_200
 .annotate "line", 70
-    .const 'Sub' $P267 = "24_1271948651.35295" 
+    .const 'Sub' $P267 = "24_1272455244.64589" 
     capture_lex $P267
-    .const 'Sub' $P247 = "23_1271948651.35295" 
+    .const 'Sub' $P247 = "23_1272455244.64589" 
     capture_lex $P247
-    .const 'Sub' $P218 = "22_1271948651.35295" 
+    .const 'Sub' $P218 = "22_1272455244.64589" 
     capture_lex $P218
 .annotate "line", 71
     new $P198, "Undef"
@@ -7061,13 +7061,13 @@
     iter $P262, $P263
     new $P276, 'ExceptionHandler'
     set_addr $P276, loop275_handler
-    $P276."handle_types"(65, 67, 66)
+    $P276."handle_types"(64, 66, 65)
     push_eh $P276
   loop275_test:
     unless $P262, loop275_done
     shift $P265, $P262
   loop275_redo:
-    .const 'Sub' $P267 = "24_1271948651.35295" 
+    .const 'Sub' $P267 = "24_1272455244.64589" 
     capture_lex $P267
     $P267($P265)
   loop275_next:
@@ -7076,8 +7076,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P277, exception, 'type'
-    eq $P277, 65, loop275_next
-    eq $P277, 67, loop275_redo
+    eq $P277, 64, loop275_next
+    eq $P277, 66, loop275_redo
   loop275_done:
     pop_eh 
   for_undef_43:
@@ -7093,13 +7093,13 @@
     iter $P242, $P243
     new $P260, 'ExceptionHandler'
     set_addr $P260, loop259_handler
-    $P260."handle_types"(65, 67, 66)
+    $P260."handle_types"(64, 66, 65)
     push_eh $P260
   loop259_test:
     unless $P242, loop259_done
     shift $P245, $P242
   loop259_redo:
-    .const 'Sub' $P247 = "23_1271948651.35295" 
+    .const 'Sub' $P247 = "23_1272455244.64589" 
     capture_lex $P247
     $P247($P245)
   loop259_next:
@@ -7108,8 +7108,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P261, exception, 'type'
-    eq $P261, 65, loop259_next
-    eq $P261, 67, loop259_redo
+    eq $P261, 64, loop259_next
+    eq $P261, 66, loop259_redo
   loop259_done:
     pop_eh 
   for_undef_45:
@@ -7127,13 +7127,13 @@
     iter $P213, $P214
     new $P232, 'ExceptionHandler'
     set_addr $P232, loop231_handler
-    $P232."handle_types"(65, 67, 66)
+    $P232."handle_types"(64, 66, 65)
     push_eh $P232
   loop231_test:
     unless $P213, loop231_done
     shift $P216, $P213
   loop231_redo:
-    .const 'Sub' $P218 = "22_1271948651.35295" 
+    .const 'Sub' $P218 = "22_1272455244.64589" 
     capture_lex $P218
     $P218($P216)
   loop231_next:
@@ -7142,8 +7142,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P233, exception, 'type'
-    eq $P233, 65, loop231_next
-    eq $P233, 67, loop231_redo
+    eq $P233, 64, loop231_next
+    eq $P233, 66, loop231_redo
   loop231_done:
     pop_eh 
   for_undef_46:
@@ -7156,7 +7156,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block266"  :anon :subid("24_1271948651.35295") :outer("21_1271948651.35295")
+.sub "_block266"  :anon :subid("24_1272455244.64589") :outer("21_1272455244.64589")
     .param pmc param_268
 .annotate "line", 80
     .lex "$_", param_268
@@ -7176,7 +7176,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block246"  :anon :subid("23_1271948651.35295") :outer("21_1271948651.35295")
+.sub "_block246"  :anon :subid("23_1272455244.64589") :outer("21_1272455244.64589")
     .param pmc param_248
 .annotate "line", 77
     .lex "$_", param_248
@@ -7196,7 +7196,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block217"  :anon :subid("22_1271948651.35295") :outer("21_1271948651.35295")
+.sub "_block217"  :anon :subid("22_1272455244.64589") :outer("21_1272455244.64589")
     .param pmc param_219
 .annotate "line", 74
     .lex "$_", param_219

Modified: branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1271948667.92136")
+.sub "_block11"  :anon :subid("10_1272455252.89365")
 .annotate "line", 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -29,9 +29,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post333") :outer("10_1271948667.92136")
+.sub "" :load :init :subid("post333") :outer("10_1272455252.89365")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1271948667.92136" 
+    .const 'Sub' $P12 = "10_1272455252.89365" 
     .local pmc block
     set block, $P12
     $P1305 = get_root_global ["parrot"], "P6metaclass"
@@ -40,295 +40,295 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1271948667.92136") :outer("10_1271948667.92136")
+.sub "_block13"  :subid("11_1272455252.89365") :outer("10_1272455252.89365")
 .annotate "line", 4
     get_hll_global $P1248, ["NQP";"Regex"], "_block1247" 
     capture_lex $P1248
-    .const 'Sub' $P1234 = "319_1271948667.92136" 
+    .const 'Sub' $P1234 = "319_1272455252.89365" 
     capture_lex $P1234
-    .const 'Sub' $P1228 = "317_1271948667.92136" 
+    .const 'Sub' $P1228 = "317_1272455252.89365" 
     capture_lex $P1228
-    .const 'Sub' $P1222 = "315_1271948667.92136" 
+    .const 'Sub' $P1222 = "315_1272455252.89365" 
     capture_lex $P1222
-    .const 'Sub' $P1215 = "313_1271948667.92136" 
+    .const 'Sub' $P1215 = "313_1272455252.89365" 
     capture_lex $P1215
-    .const 'Sub' $P1208 = "311_1271948667.92136" 
+    .const 'Sub' $P1208 = "311_1272455252.89365" 
     capture_lex $P1208
-    .const 'Sub' $P1201 = "309_1271948667.92136" 
+    .const 'Sub' $P1201 = "309_1272455252.89365" 
     capture_lex $P1201
-    .const 'Sub' $P1194 = "307_1271948667.92136" 
+    .const 'Sub' $P1194 = "307_1272455252.89365" 
     capture_lex $P1194
-    .const 'Sub' $P1188 = "305_1271948667.92136" 
+    .const 'Sub' $P1188 = "305_1272455252.89365" 
     capture_lex $P1188
-    .const 'Sub' $P1181 = "303_1271948667.92136" 
+    .const 'Sub' $P1181 = "303_1272455252.89365" 
     capture_lex $P1181
-    .const 'Sub' $P1174 = "301_1271948667.92136" 
+    .const 'Sub' $P1174 = "301_1272455252.89365" 
     capture_lex $P1174
-    .const 'Sub' $P1167 = "299_1271948667.92136" 
+    .const 'Sub' $P1167 = "299_1272455252.89365" 
     capture_lex $P1167
-    .const 'Sub' $P1160 = "297_1271948667.92136" 
+    .const 'Sub' $P1160 = "297_1272455252.89365" 
     capture_lex $P1160
-    .const 'Sub' $P1153 = "295_1271948667.92136" 
+    .const 'Sub' $P1153 = "295_1272455252.89365" 
     capture_lex $P1153
-    .const 'Sub' $P1146 = "293_1271948667.92136" 
+    .const 'Sub' $P1146 = "293_1272455252.89365" 
     capture_lex $P1146
-    .const 'Sub' $P1139 = "291_1271948667.92136" 
+    .const 'Sub' $P1139 = "291_1272455252.89365" 
     capture_lex $P1139
-    .const 'Sub' $P1132 = "289_1271948667.92136" 
+    .const 'Sub' $P1132 = "289_1272455252.89365" 
     capture_lex $P1132
-    .const 'Sub' $P1125 = "287_1271948667.92136" 
+    .const 'Sub' $P1125 = "287_1272455252.89365" 
     capture_lex $P1125
-    .const 'Sub' $P1118 = "285_1271948667.92136" 
+    .const 'Sub' $P1118 = "285_1272455252.89365" 
     capture_lex $P1118
-    .const 'Sub' $P1111 = "283_1271948667.92136" 
+    .const 'Sub' $P1111 = "283_1272455252.89365" 
     capture_lex $P1111
-    .const 'Sub' $P1104 = "281_1271948667.92136" 
+    .const 'Sub' $P1104 = "281_1272455252.89365" 
     capture_lex $P1104
-    .const 'Sub' $P1097 = "279_1271948667.92136" 
+    .const 'Sub' $P1097 = "279_1272455252.89365" 
     capture_lex $P1097
-    .const 'Sub' $P1090 = "277_1271948667.92136" 
+    .const 'Sub' $P1090 = "277_1272455252.89365" 
     capture_lex $P1090
-    .const 'Sub' $P1083 = "275_1271948667.92136" 
+    .const 'Sub' $P1083 = "275_1272455252.89365" 
     capture_lex $P1083
-    .const 'Sub' $P1076 = "273_1271948667.92136" 
+    .const 'Sub' $P1076 = "273_1272455252.89365" 
     capture_lex $P1076
-    .const 'Sub' $P1069 = "271_1271948667.92136" 
+    .const 'Sub' $P1069 = "271_1272455252.89365" 
     capture_lex $P1069
-    .const 'Sub' $P1062 = "269_1271948667.92136" 
+    .const 'Sub' $P1062 = "269_1272455252.89365" 
     capture_lex $P1062
-    .const 'Sub' $P1055 = "267_1271948667.92136" 
+    .const 'Sub' $P1055 = "267_1272455252.89365" 
     capture_lex $P1055
-    .const 'Sub' $P1048 = "265_1271948667.92136" 
+    .const 'Sub' $P1048 = "265_1272455252.89365" 
     capture_lex $P1048
-    .const 'Sub' $P1041 = "263_1271948667.92136" 
+    .const 'Sub' $P1041 = "263_1272455252.89365" 
     capture_lex $P1041
-    .const 'Sub' $P1034 = "261_1271948667.92136" 
+    .const 'Sub' $P1034 = "261_1272455252.89365" 
     capture_lex $P1034
-    .const 'Sub' $P1027 = "259_1271948667.92136" 
+    .const 'Sub' $P1027 = "259_1272455252.89365" 
     capture_lex $P1027
-    .const 'Sub' $P1020 = "257_1271948667.92136" 
+    .const 'Sub' $P1020 = "257_1272455252.89365" 
     capture_lex $P1020
-    .const 'Sub' $P1013 = "255_1271948667.92136" 
+    .const 'Sub' $P1013 = "255_1272455252.89365" 
     capture_lex $P1013
-    .const 'Sub' $P1006 = "253_1271948667.92136" 
+    .const 'Sub' $P1006 = "253_1272455252.89365" 
     capture_lex $P1006
-    .const 'Sub' $P1000 = "251_1271948667.92136" 
+    .const 'Sub' $P1000 = "251_1272455252.89365" 
     capture_lex $P1000
-    .const 'Sub' $P993 = "249_1271948667.92136" 
+    .const 'Sub' $P993 = "249_1272455252.89365" 
     capture_lex $P993
-    .const 'Sub' $P986 = "247_1271948667.92136" 
+    .const 'Sub' $P986 = "247_1272455252.89365" 
     capture_lex $P986
-    .const 'Sub' $P979 = "245_1271948667.92136" 
+    .const 'Sub' $P979 = "245_1272455252.89365" 
     capture_lex $P979
-    .const 'Sub' $P972 = "243_1271948667.92136" 
+    .const 'Sub' $P972 = "243_1272455252.89365" 
     capture_lex $P972
-    .const 'Sub' $P965 = "241_1271948667.92136" 
+    .const 'Sub' $P965 = "241_1272455252.89365" 
     capture_lex $P965
-    .const 'Sub' $P958 = "239_1271948667.92136" 
+    .const 'Sub' $P958 = "239_1272455252.89365" 
     capture_lex $P958
-    .const 'Sub' $P951 = "237_1271948667.92136" 
+    .const 'Sub' $P951 = "237_1272455252.89365" 
     capture_lex $P951
-    .const 'Sub' $P945 = "235_1271948667.92136" 
+    .const 'Sub' $P945 = "235_1272455252.89365" 
     capture_lex $P945
-    .const 'Sub' $P939 = "233_1271948667.92136" 
+    .const 'Sub' $P939 = "233_1272455252.89365" 
     capture_lex $P939
-    .const 'Sub' $P934 = "231_1271948667.92136" 
+    .const 'Sub' $P934 = "231_1272455252.89365" 
     capture_lex $P934
-    .const 'Sub' $P928 = "229_1271948667.92136" 
+    .const 'Sub' $P928 = "229_1272455252.89365" 
     capture_lex $P928
-    .const 'Sub' $P922 = "227_1271948667.92136" 
+    .const 'Sub' $P922 = "227_1272455252.89365" 
     capture_lex $P922
-    .const 'Sub' $P917 = "225_1271948667.92136" 
+    .const 'Sub' $P917 = "225_1272455252.89365" 
     capture_lex $P917
-    .const 'Sub' $P912 = "223_1271948667.92136" 
+    .const 'Sub' $P912 = "223_1272455252.89365" 
     capture_lex $P912
-    .const 'Sub' $P905 = "221_1271948667.92136" 
+    .const 'Sub' $P905 = "221_1272455252.89365" 
     capture_lex $P905
-    .const 'Sub' $P897 = "219_1271948667.92136" 
+    .const 'Sub' $P897 = "219_1272455252.89365" 
     capture_lex $P897
-    .const 'Sub' $P892 = "217_1271948667.92136" 
+    .const 'Sub' $P892 = "217_1272455252.89365" 
     capture_lex $P892
-    .const 'Sub' $P887 = "215_1271948667.92136" 
+    .const 'Sub' $P887 = "215_1272455252.89365" 
     capture_lex $P887
-    .const 'Sub' $P882 = "213_1271948667.92136" 
+    .const 'Sub' $P882 = "213_1272455252.89365" 
     capture_lex $P882
-    .const 'Sub' $P874 = "211_1271948667.92136" 
+    .const 'Sub' $P874 = "211_1272455252.89365" 
     capture_lex $P874
-    .const 'Sub' $P866 = "209_1271948667.92136" 
+    .const 'Sub' $P866 = "209_1272455252.89365" 
     capture_lex $P866
-    .const 'Sub' $P861 = "207_1271948667.92136" 
+    .const 'Sub' $P861 = "207_1272455252.89365" 
     capture_lex $P861
-    .const 'Sub' $P856 = "205_1271948667.92136" 
+    .const 'Sub' $P856 = "205_1272455252.89365" 
     capture_lex $P856
-    .const 'Sub' $P851 = "203_1271948667.92136" 
+    .const 'Sub' $P851 = "203_1272455252.89365" 
     capture_lex $P851
-    .const 'Sub' $P845 = "201_1271948667.92136" 
+    .const 'Sub' $P845 = "201_1272455252.89365" 
     capture_lex $P845
-    .const 'Sub' $P839 = "199_1271948667.92136" 
+    .const 'Sub' $P839 = "199_1272455252.89365" 
     capture_lex $P839
-    .const 'Sub' $P833 = "197_1271948667.92136" 
+    .const 'Sub' $P833 = "197_1272455252.89365" 
     capture_lex $P833
-    .const 'Sub' $P827 = "195_1271948667.92136" 
+    .const 'Sub' $P827 = "195_1272455252.89365" 
     capture_lex $P827
-    .const 'Sub' $P821 = "193_1271948667.92136" 
+    .const 'Sub' $P821 = "193_1272455252.89365" 
     capture_lex $P821
-    .const 'Sub' $P816 = "191_1271948667.92136" 
+    .const 'Sub' $P816 = "191_1272455252.89365" 
     capture_lex $P816
-    .const 'Sub' $P811 = "189_1271948667.92136" 
+    .const 'Sub' $P811 = "189_1272455252.89365" 
     capture_lex $P811
-    .const 'Sub' $P798 = "185_1271948667.92136" 
+    .const 'Sub' $P798 = "185_1272455252.89365" 
     capture_lex $P798
-    .const 'Sub' $P790 = "183_1271948667.92136" 
+    .const 'Sub' $P790 = "183_1272455252.89365" 
     capture_lex $P790
-    .const 'Sub' $P784 = "181_1271948667.92136" 
+    .const 'Sub' $P784 = "181_1272455252.89365" 
     capture_lex $P784
-    .const 'Sub' $P777 = "179_1271948667.92136" 
+    .const 'Sub' $P777 = "179_1272455252.89365" 
     capture_lex $P777
-    .const 'Sub' $P771 = "177_1271948667.92136" 
+    .const 'Sub' $P771 = "177_1272455252.89365" 
     capture_lex $P771
-    .const 'Sub' $P763 = "175_1271948667.92136" 
+    .const 'Sub' $P763 = "175_1272455252.89365" 
     capture_lex $P763
-    .const 'Sub' $P755 = "173_1271948667.92136" 
+    .const 'Sub' $P755 = "173_1272455252.89365" 
     capture_lex $P755
-    .const 'Sub' $P749 = "171_1271948667.92136" 
+    .const 'Sub' $P749 = "171_1272455252.89365" 
     capture_lex $P749
-    .const 'Sub' $P743 = "169_1271948667.92136" 
+    .const 'Sub' $P743 = "169_1272455252.89365" 
     capture_lex $P743
-    .const 'Sub' $P728 = "165_1271948667.92136" 
+    .const 'Sub' $P728 = "165_1272455252.89365" 
     capture_lex $P728
-    .const 'Sub' $P691 = "163_1271948667.92136" 
+    .const 'Sub' $P691 = "163_1272455252.89365" 
     capture_lex $P691
-    .const 'Sub' $P683 = "161_1271948667.92136" 
+    .const 'Sub' $P683 = "161_1272455252.89365" 
     capture_lex $P683
-    .const 'Sub' $P677 = "159_1271948667.92136" 
+    .const 'Sub' $P677 = "159_1272455252.89365" 
     capture_lex $P677
-    .const 'Sub' $P667 = "157_1271948667.92136" 
+    .const 'Sub' $P667 = "157_1272455252.89365" 
     capture_lex $P667
-    .const 'Sub' $P652 = "155_1271948667.92136" 
+    .const 'Sub' $P652 = "155_1272455252.89365" 
     capture_lex $P652
-    .const 'Sub' $P643 = "153_1271948667.92136" 
+    .const 'Sub' $P643 = "153_1272455252.89365" 
     capture_lex $P643
-    .const 'Sub' $P624 = "151_1271948667.92136" 
+    .const 'Sub' $P624 = "151_1272455252.89365" 
     capture_lex $P624
-    .const 'Sub' $P600 = "149_1271948667.92136" 
+    .const 'Sub' $P600 = "149_1272455252.89365" 
     capture_lex $P600
-    .const 'Sub' $P593 = "147_1271948667.92136" 
+    .const 'Sub' $P593 = "147_1272455252.89365" 
     capture_lex $P593
-    .const 'Sub' $P586 = "145_1271948667.92136" 
+    .const 'Sub' $P586 = "145_1272455252.89365" 
     capture_lex $P586
-    .const 'Sub' $P576 = "141_1271948667.92136" 
+    .const 'Sub' $P576 = "141_1272455252.89365" 
     capture_lex $P576
-    .const 'Sub' $P565 = "139_1271948667.92136" 
+    .const 'Sub' $P565 = "139_1272455252.89365" 
     capture_lex $P565
-    .const 'Sub' $P558 = "137_1271948667.92136" 
+    .const 'Sub' $P558 = "137_1272455252.89365" 
     capture_lex $P558
-    .const 'Sub' $P551 = "135_1271948667.92136" 
+    .const 'Sub' $P551 = "135_1272455252.89365" 
     capture_lex $P551
-    .const 'Sub' $P544 = "133_1271948667.92136" 
+    .const 'Sub' $P544 = "133_1272455252.89365" 
     capture_lex $P544
-    .const 'Sub' $P517 = "129_1271948667.92136" 
+    .const 'Sub' $P517 = "129_1272455252.89365" 
     capture_lex $P517
-    .const 'Sub' $P508 = "127_1271948667.92136" 
+    .const 'Sub' $P508 = "127_1272455252.89365" 
     capture_lex $P508
-    .const 'Sub' $P501 = "125_1271948667.92136" 
+    .const 'Sub' $P501 = "125_1272455252.89365" 
     capture_lex $P501
-    .const 'Sub' $P492 = "121_1271948667.92136" 
+    .const 'Sub' $P492 = "121_1272455252.89365" 
     capture_lex $P492
-    .const 'Sub' $P487 = "119_1271948667.92136" 
+    .const 'Sub' $P487 = "119_1272455252.89365" 
     capture_lex $P487
-    .const 'Sub' $P475 = "117_1271948667.92136" 
+    .const 'Sub' $P475 = "117_1272455252.89365" 
     capture_lex $P475
-    .const 'Sub' $P463 = "115_1271948667.92136" 
+    .const 'Sub' $P463 = "115_1272455252.89365" 
     capture_lex $P463
-    .const 'Sub' $P455 = "113_1271948667.92136" 
+    .const 'Sub' $P455 = "113_1272455252.89365" 
     capture_lex $P455
-    .const 'Sub' $P450 = "111_1271948667.92136" 
+    .const 'Sub' $P450 = "111_1272455252.89365" 
     capture_lex $P450
-    .const 'Sub' $P444 = "109_1271948667.92136" 
+    .const 'Sub' $P444 = "109_1272455252.89365" 
     capture_lex $P444
-    .const 'Sub' $P438 = "107_1271948667.92136" 
+    .const 'Sub' $P438 = "107_1272455252.89365" 
     capture_lex $P438
-    .const 'Sub' $P432 = "105_1271948667.92136" 
+    .const 'Sub' $P432 = "105_1272455252.89365" 
     capture_lex $P432
-    .const 'Sub' $P426 = "103_1271948667.92136" 
+    .const 'Sub' $P426 = "103_1272455252.89365" 
     capture_lex $P426
-    .const 'Sub' $P420 = "101_1271948667.92136" 
+    .const 'Sub' $P420 = "101_1272455252.89365" 
     capture_lex $P420
-    .const 'Sub' $P414 = "99_1271948667.92136" 
+    .const 'Sub' $P414 = "99_1272455252.89365" 
     capture_lex $P414
-    .const 'Sub' $P408 = "97_1271948667.92136" 
+    .const 'Sub' $P408 = "97_1272455252.89365" 
     capture_lex $P408
-    .const 'Sub' $P402 = "95_1271948667.92136" 
+    .const 'Sub' $P402 = "95_1272455252.89365" 
     capture_lex $P402
-    .const 'Sub' $P394 = "93_1271948667.92136" 
+    .const 'Sub' $P394 = "93_1272455252.89365" 
     capture_lex $P394
-    .const 'Sub' $P386 = "91_1271948667.92136" 
+    .const 'Sub' $P386 = "91_1272455252.89365" 
     capture_lex $P386
-    .const 'Sub' $P374 = "87_1271948667.92136" 
+    .const 'Sub' $P374 = "87_1272455252.89365" 
     capture_lex $P374
-    .const 'Sub' $P366 = "85_1271948667.92136" 
+    .const 'Sub' $P366 = "85_1272455252.89365" 
     capture_lex $P366
-    .const 'Sub' $P356 = "81_1271948667.92136" 
+    .const 'Sub' $P356 = "81_1272455252.89365" 
     capture_lex $P356
-    .const 'Sub' $P349 = "79_1271948667.92136" 
+    .const 'Sub' $P349 = "79_1272455252.89365" 
     capture_lex $P349
-    .const 'Sub' $P342 = "77_1271948667.92136" 
+    .const 'Sub' $P342 = "77_1272455252.89365" 
     capture_lex $P342
-    .const 'Sub' $P330 = "73_1271948667.92136" 
+    .const 'Sub' $P330 = "73_1272455252.89365" 
     capture_lex $P330
-    .const 'Sub' $P322 = "71_1271948667.92136" 
+    .const 'Sub' $P322 = "71_1272455252.89365" 
     capture_lex $P322
-    .const 'Sub' $P314 = "69_1271948667.92136" 
+    .const 'Sub' $P314 = "69_1272455252.89365" 
     capture_lex $P314
-    .const 'Sub' $P294 = "67_1271948667.92136" 
+    .const 'Sub' $P294 = "67_1272455252.89365" 
     capture_lex $P294
-    .const 'Sub' $P285 = "65_1271948667.92136" 
+    .const 'Sub' $P285 = "65_1272455252.89365" 
     capture_lex $P285
-    .const 'Sub' $P267 = "62_1271948667.92136" 
+    .const 'Sub' $P267 = "62_1272455252.89365" 
     capture_lex $P267
-    .const 'Sub' $P247 = "60_1271948667.92136" 
+    .const 'Sub' $P247 = "60_1272455252.89365" 
     capture_lex $P247
-    .const 'Sub' $P238 = "56_1271948667.92136" 
+    .const 'Sub' $P238 = "56_1272455252.89365" 
     capture_lex $P238
-    .const 'Sub' $P233 = "54_1271948667.92136" 
+    .const 'Sub' $P233 = "54_1272455252.89365" 
     capture_lex $P233
-    .const 'Sub' $P224 = "50_1271948667.92136" 
+    .const 'Sub' $P224 = "50_1272455252.89365" 
     capture_lex $P224
-    .const 'Sub' $P219 = "48_1271948667.92136" 
+    .const 'Sub' $P219 = "48_1272455252.89365" 
     capture_lex $P219
-    .const 'Sub' $P211 = "46_1271948667.92136" 
+    .const 'Sub' $P211 = "46_1272455252.89365" 
     capture_lex $P211
-    .const 'Sub' $P204 = "44_1271948667.92136" 
+    .const 'Sub' $P204 = "44_1272455252.89365" 
     capture_lex $P204
-    .const 'Sub' $P198 = "42_1271948667.92136" 
+    .const 'Sub' $P198 = "42_1272455252.89365" 
     capture_lex $P198
-    .const 'Sub' $P190 = "40_1271948667.92136" 
+    .const 'Sub' $P190 = "40_1272455252.89365" 
     capture_lex $P190
-    .const 'Sub' $P184 = "38_1271948667.92136" 
+    .const 'Sub' $P184 = "38_1272455252.89365" 
     capture_lex $P184
-    .const 'Sub' $P178 = "36_1271948667.92136" 
+    .const 'Sub' $P178 = "36_1272455252.89365" 
     capture_lex $P178
-    .const 'Sub' $P162 = "33_1271948667.92136" 
+    .const 'Sub' $P162 = "33_1272455252.89365" 
     capture_lex $P162
-    .const 'Sub' $P149 = "31_1271948667.92136" 
+    .const 'Sub' $P149 = "31_1272455252.89365" 
     capture_lex $P149
-    .const 'Sub' $P142 = "29_1271948667.92136" 
+    .const 'Sub' $P142 = "29_1272455252.89365" 
     capture_lex $P142
-    .const 'Sub' $P96 = "26_1271948667.92136" 
+    .const 'Sub' $P96 = "26_1272455252.89365" 
     capture_lex $P96
-    .const 'Sub' $P78 = "23_1271948667.92136" 
+    .const 'Sub' $P78 = "23_1272455252.89365" 
     capture_lex $P78
-    .const 'Sub' $P68 = "21_1271948667.92136" 
+    .const 'Sub' $P68 = "21_1272455252.89365" 
     capture_lex $P68
-    .const 'Sub' $P54 = "19_1271948667.92136" 
+    .const 'Sub' $P54 = "19_1272455252.89365" 
     capture_lex $P54
-    .const 'Sub' $P46 = "17_1271948667.92136" 
+    .const 'Sub' $P46 = "17_1272455252.89365" 
     capture_lex $P46
-    .const 'Sub' $P39 = "15_1271948667.92136" 
+    .const 'Sub' $P39 = "15_1272455252.89365" 
     capture_lex $P39
-    .const 'Sub' $P33 = "13_1271948667.92136" 
+    .const 'Sub' $P33 = "13_1272455252.89365" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1271948667.92136" 
+    .const 'Sub' $P15 = "12_1272455252.89365" 
     capture_lex $P15
 .annotate "line", 536
     get_hll_global $P1248, ["NQP";"Regex"], "_block1247" 
@@ -340,7 +340,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post334") :outer("11_1271948667.92136")
+.sub "" :load :init :subid("post334") :outer("11_1272455252.89365")
 .annotate "line", 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
@@ -397,11 +397,11 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "TOP"  :subid("12_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "TOP"  :subid("12_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(58)
+    $P17."handle_types"(57)
     push_eh $P17
     .lex "self", self
 .annotate "line", 5
@@ -480,7 +480,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "identifier"  :subid("13_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx34_tgt
     .local int rx34_pos
@@ -538,7 +538,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1271948667.92136") :method
+.sub "!PREFIX__identifier"  :subid("14_1272455252.89365") :method
 .annotate "line", 4
     $P36 = self."!PREFIX__!subrule"("ident", "")
     new $P37, "ResizablePMCArray"
@@ -548,7 +548,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "name"  :subid("15_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx40_tgt
     .local int rx40_pos
@@ -622,7 +622,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1271948667.92136") :method
+.sub "!PREFIX__name"  :subid("16_1272455252.89365") :method
 .annotate "line", 4
     new $P42, "ResizablePMCArray"
     push $P42, ""
@@ -631,7 +631,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "deflongname"  :subid("17_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx47_tgt
     .local int rx47_pos
@@ -704,7 +704,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1271948667.92136") :method
+.sub "!PREFIX__deflongname"  :subid("18_1272455252.89365") :method
 .annotate "line", 4
     $P49 = self."!PREFIX__!subrule"("identifier", "")
     new $P50, "ResizablePMCArray"
@@ -714,7 +714,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "ENDSTMT"  :subid("19_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx55_tgt
     .local int rx55_pos
@@ -846,7 +846,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1271948667.92136") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1272455252.89365") :method
 .annotate "line", 4
     new $P57, "ResizablePMCArray"
     push $P57, ""
@@ -855,7 +855,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "ws"  :subid("21_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx69_tgt
     .local int rx69_pos
@@ -981,7 +981,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1271948667.92136") :method
+.sub "!PREFIX__ws"  :subid("22_1272455252.89365") :method
 .annotate "line", 4
     new $P71, "ResizablePMCArray"
     push $P71, ""
@@ -991,9 +991,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "unv"  :subid("23_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
-    .const 'Sub' $P86 = "25_1271948667.92136" 
+    .const 'Sub' $P86 = "25_1272455252.89365" 
     capture_lex $P86
     .local string rx79_tgt
     .local int rx79_pos
@@ -1039,7 +1039,7 @@
   rxanchor84_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx79_cur."!cursor_pos"(rx79_pos)
-    .const 'Sub' $P86 = "25_1271948667.92136" 
+    .const 'Sub' $P86 = "25_1272455252.89365" 
     capture_lex $P86
     $P10 = rx79_cur."before"($P86)
     unless $P10, rx79_fail
@@ -1118,7 +1118,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1271948667.92136") :method
+.sub "!PREFIX__unv"  :subid("24_1272455252.89365") :method
 .annotate "line", 4
     new $P81, "ResizablePMCArray"
     push $P81, ""
@@ -1129,7 +1129,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block85"  :anon :subid("25_1271948667.92136") :method :outer("23_1271948667.92136")
+.sub "_block85"  :anon :subid("25_1272455252.89365") :method :outer("23_1272455252.89365")
 .annotate "line", 44
     .local string rx87_tgt
     .local int rx87_pos
@@ -1219,9 +1219,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "pod_comment"  :subid("26_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
-    .const 'Sub' $P133 = "28_1271948667.92136" 
+    .const 'Sub' $P133 = "28_1272455252.89365" 
     capture_lex $P133
     .local string rx97_tgt
     .local int rx97_pos
@@ -1677,7 +1677,7 @@
   rxanchor131_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx97_cur."!cursor_pos"(rx97_pos)
-    .const 'Sub' $P133 = "28_1271948667.92136" 
+    .const 'Sub' $P133 = "28_1272455252.89365" 
     capture_lex $P133
     $P10 = rx97_cur."before"($P133)
     unless $P10, rx97_fail
@@ -1728,7 +1728,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1271948667.92136") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1272455252.89365") :method
 .annotate "line", 4
     new $P99, "ResizablePMCArray"
     push $P99, ""
@@ -1737,7 +1737,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block132"  :anon :subid("28_1271948667.92136") :method :outer("26_1271948667.92136")
+.sub "_block132"  :anon :subid("28_1272455252.89365") :method :outer("26_1272455252.89365")
 .annotate "line", 67
     .local string rx134_tgt
     .local int rx134_pos
@@ -1856,7 +1856,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "comp_unit"  :subid("29_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx143_tgt
     .local int rx143_pos
@@ -1935,7 +1935,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1271948667.92136") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1272455252.89365") :method
 .annotate "line", 4
     $P145 = self."!PREFIX__!subrule"("", "")
     new $P146, "ResizablePMCArray"
@@ -1945,7 +1945,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statementlist"  :subid("31_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx150_tgt
     .local int rx150_pos
@@ -2053,7 +2053,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1271948667.92136") :method
+.sub "!PREFIX__statementlist"  :subid("32_1272455252.89365") :method
 .annotate "line", 4
     new $P152, "ResizablePMCArray"
     push $P152, ""
@@ -2063,9 +2063,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement"  :subid("33_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
-    .const 'Sub' $P168 = "35_1271948667.92136" 
+    .const 'Sub' $P168 = "35_1272455252.89365" 
     capture_lex $P168
     .local string rx163_tgt
     .local int rx163_pos
@@ -2075,7 +2075,7 @@
     .local pmc rx163_cur
     (rx163_cur, rx163_pos, rx163_tgt) = self."!cursor_start"()
     rx163_cur."!cursor_debug"("START ", "statement")
-    rx163_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
+    rx163_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
     .lex unicode:"$\x{a2}", rx163_cur
     .local pmc match
     .lex "$/", match
@@ -2100,7 +2100,7 @@
 .annotate "line", 93
   # rx subrule "before" subtype=zerowidth negate=1
     rx163_cur."!cursor_pos"(rx163_pos)
-    .const 'Sub' $P168 = "35_1271948667.92136" 
+    .const 'Sub' $P168 = "35_1272455252.89365" 
     capture_lex $P168
     $P10 = rx163_cur."before"($P168)
     if $P10, rx163_fail
@@ -2205,7 +2205,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1271948667.92136") :method
+.sub "!PREFIX__statement"  :subid("34_1272455252.89365") :method
 .annotate "line", 4
     new $P165, "ResizablePMCArray"
     push $P165, ""
@@ -2214,7 +2214,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block167"  :anon :subid("35_1271948667.92136") :method :outer("33_1271948667.92136")
+.sub "_block167"  :anon :subid("35_1272455252.89365") :method :outer("33_1272455252.89365")
 .annotate "line", 93
     .local string rx169_tgt
     .local int rx169_pos
@@ -2278,7 +2278,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "eat_terminator"  :subid("36_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx179_tgt
     .local int rx179_pos
@@ -2365,7 +2365,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1271948667.92136") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1272455252.89365") :method
 .annotate "line", 4
     new $P181, "ResizablePMCArray"
     push $P181, ""
@@ -2377,7 +2377,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "xblock"  :subid("38_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx185_tgt
     .local int rx185_pos
@@ -2448,7 +2448,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1271948667.92136") :method
+.sub "!PREFIX__xblock"  :subid("39_1272455252.89365") :method
 .annotate "line", 4
     $P187 = self."!PREFIX__!subrule"("EXPR", "")
     new $P188, "ResizablePMCArray"
@@ -2458,7 +2458,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "pblock"  :subid("40_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx191_tgt
     .local int rx191_pos
@@ -2577,7 +2577,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1271948667.92136") :method
+.sub "!PREFIX__pblock"  :subid("41_1272455252.89365") :method
 .annotate "line", 4
     $P193 = self."!PREFIX__!subrule"("", "")
     $P194 = self."!PREFIX__!subrule"("", "")
@@ -2590,7 +2590,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "lambda"  :subid("42_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx199_tgt
     .local int rx199_pos
@@ -2661,7 +2661,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1271948667.92136") :method
+.sub "!PREFIX__lambda"  :subid("43_1272455252.89365") :method
 .annotate "line", 4
     new $P201, "ResizablePMCArray"
     push $P201, "<->"
@@ -2671,7 +2671,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "block"  :subid("44_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx205_tgt
     .local int rx205_pos
@@ -2754,7 +2754,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1271948667.92136") :method
+.sub "!PREFIX__block"  :subid("45_1272455252.89365") :method
 .annotate "line", 4
     $P207 = self."!PREFIX__!subrule"("", "")
     new $P208, "ResizablePMCArray"
@@ -2765,7 +2765,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "blockoid"  :subid("46_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx212_tgt
     .local int rx212_pos
@@ -2860,7 +2860,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1271948667.92136") :method
+.sub "!PREFIX__blockoid"  :subid("47_1272455252.89365") :method
 .annotate "line", 4
     $P214 = self."!PREFIX__!subrule"("", "")
     new $P215, "ResizablePMCArray"
@@ -2870,7 +2870,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "newpad"  :subid("48_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx220_tgt
     .local int rx220_pos
@@ -2921,7 +2921,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1271948667.92136") :method
+.sub "!PREFIX__newpad"  :subid("49_1272455252.89365") :method
 .annotate "line", 4
     new $P222, "ResizablePMCArray"
     push $P222, ""
@@ -2930,7 +2930,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("50_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "finishpad"  :subid("50_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx225_tgt
     .local int rx225_pos
@@ -2981,7 +2981,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("51_1271948667.92136") :method
+.sub "!PREFIX__finishpad"  :subid("51_1272455252.89365") :method
 .annotate "line", 4
     new $P227, "ResizablePMCArray"
     push $P227, ""
@@ -2990,7 +2990,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("52_1271948667.92136") :method
+.sub "terminator"  :subid("52_1272455252.89365") :method
 .annotate "line", 144
     $P230 = self."!protoregex"("terminator")
     .return ($P230)
@@ -2998,7 +2998,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("53_1271948667.92136") :method
+.sub "!PREFIX__terminator"  :subid("53_1272455252.89365") :method
 .annotate "line", 144
     $P232 = self."!PREFIX__!protoregex"("terminator")
     .return ($P232)
@@ -3006,7 +3006,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("54_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "terminator:sym<;>"  :subid("54_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx234_tgt
     .local int rx234_pos
@@ -3063,7 +3063,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("55_1271948667.92136") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("55_1272455252.89365") :method
 .annotate "line", 4
     new $P236, "ResizablePMCArray"
     push $P236, ";"
@@ -3072,7 +3072,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("56_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "terminator:sym<}>"  :subid("56_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx239_tgt
     .local int rx239_pos
@@ -3129,7 +3129,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("57_1271948667.92136") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("57_1272455252.89365") :method
 .annotate "line", 4
     new $P241, "ResizablePMCArray"
     push $P241, "}"
@@ -3138,7 +3138,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("58_1271948667.92136") :method
+.sub "statement_control"  :subid("58_1272455252.89365") :method
 .annotate "line", 151
     $P244 = self."!protoregex"("statement_control")
     .return ($P244)
@@ -3146,7 +3146,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("59_1271948667.92136") :method
+.sub "!PREFIX__statement_control"  :subid("59_1272455252.89365") :method
 .annotate "line", 151
     $P246 = self."!PREFIX__!protoregex"("statement_control")
     .return ($P246)
@@ -3154,7 +3154,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("60_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_control:sym<if>"  :subid("60_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx248_tgt
     .local int rx248_pos
@@ -3164,7 +3164,7 @@
     .local pmc rx248_cur
     (rx248_cur, rx248_pos, rx248_tgt) = self."!cursor_start"()
     rx248_cur."!cursor_debug"("START ", "statement_control:sym<if>")
-    rx248_cur."!cursor_caparray"("else", "xblock")
+    rx248_cur."!cursor_caparray"("xblock", "else")
     .lex unicode:"$\x{a2}", rx248_cur
     .local pmc match
     .lex "$/", match
@@ -3348,7 +3348,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("61_1271948667.92136") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("61_1272455252.89365") :method
 .annotate "line", 4
     new $P250, "ResizablePMCArray"
     push $P250, "if"
@@ -3357,9 +3357,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("62_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_control:sym<unless>"  :subid("62_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
-    .const 'Sub' $P278 = "64_1271948667.92136" 
+    .const 'Sub' $P278 = "64_1272455252.89365" 
     capture_lex $P278
     .local string rx268_tgt
     .local int rx268_pos
@@ -3447,7 +3447,7 @@
     rx268_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
     rx268_cur."!cursor_pos"(rx268_pos)
-    .const 'Sub' $P278 = "64_1271948667.92136" 
+    .const 'Sub' $P278 = "64_1272455252.89365" 
     capture_lex $P278
     $P10 = rx268_cur."before"($P278)
     if $P10, rx268_fail
@@ -3499,7 +3499,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("63_1271948667.92136") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("63_1272455252.89365") :method
 .annotate "line", 4
     new $P270, "ResizablePMCArray"
     push $P270, "unless"
@@ -3508,7 +3508,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block277"  :anon :subid("64_1271948667.92136") :method :outer("62_1271948667.92136")
+.sub "_block277"  :anon :subid("64_1272455252.89365") :method :outer("62_1272455252.89365")
 .annotate "line", 163
     .local string rx279_tgt
     .local int rx279_pos
@@ -3564,7 +3564,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("65_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_control:sym<while>"  :subid("65_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx286_tgt
     .local int rx286_pos
@@ -3674,7 +3674,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("66_1271948667.92136") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("66_1272455252.89365") :method
 .annotate "line", 4
     new $P288, "ResizablePMCArray"
     push $P288, "until"
@@ -3684,7 +3684,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("67_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_control:sym<repeat>"  :subid("67_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx295_tgt
     .local int rx295_pos
@@ -3919,7 +3919,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("68_1271948667.92136") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("68_1272455252.89365") :method
 .annotate "line", 4
     new $P297, "ResizablePMCArray"
     push $P297, "repeat"
@@ -3928,7 +3928,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("69_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_control:sym<for>"  :subid("69_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx315_tgt
     .local int rx315_pos
@@ -4025,7 +4025,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("70_1271948667.92136") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("70_1272455252.89365") :method
 .annotate "line", 4
     new $P317, "ResizablePMCArray"
     push $P317, "for"
@@ -4034,7 +4034,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("71_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_control:sym<CATCH>"  :subid("71_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx323_tgt
     .local int rx323_pos
@@ -4131,7 +4131,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("72_1271948667.92136") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("72_1272455252.89365") :method
 .annotate "line", 4
     new $P325, "ResizablePMCArray"
     push $P325, "CATCH"
@@ -4140,7 +4140,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("73_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_control:sym<CONTROL>"  :subid("73_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx331_tgt
     .local int rx331_pos
@@ -4237,7 +4237,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("74_1271948667.92136") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("74_1272455252.89365") :method
 .annotate "line", 4
     new $P333, "ResizablePMCArray"
     push $P333, "CONTROL"
@@ -4246,7 +4246,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("75_1271948667.92136") :method
+.sub "statement_prefix"  :subid("75_1272455252.89365") :method
 .annotate "line", 194
     $P339 = self."!protoregex"("statement_prefix")
     .return ($P339)
@@ -4254,7 +4254,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("76_1271948667.92136") :method
+.sub "!PREFIX__statement_prefix"  :subid("76_1272455252.89365") :method
 .annotate "line", 194
     $P341 = self."!PREFIX__!protoregex"("statement_prefix")
     .return ($P341)
@@ -4262,7 +4262,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("77_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_prefix:sym<INIT>"  :subid("77_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx343_tgt
     .local int rx343_pos
@@ -4341,7 +4341,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("78_1271948667.92136") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("78_1272455252.89365") :method
 .annotate "line", 4
     $P345 = self."!PREFIX__!subrule"("blorst", "INIT")
     new $P346, "ResizablePMCArray"
@@ -4351,7 +4351,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("79_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_prefix:sym<try>"  :subid("79_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx350_tgt
     .local int rx350_pos
@@ -4432,7 +4432,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("80_1271948667.92136") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("80_1272455252.89365") :method
 .annotate "line", 4
     $P352 = self."!PREFIX__!subrule"("blorst", "try")
     new $P353, "ResizablePMCArray"
@@ -4442,7 +4442,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("81_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "blorst"  :subid("81_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx357_tgt
     .local int rx357_pos
@@ -4531,7 +4531,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("82_1271948667.92136") :method
+.sub "!PREFIX__blorst"  :subid("82_1272455252.89365") :method
 .annotate "line", 4
     new $P359, "ResizablePMCArray"
     push $P359, ""
@@ -4540,7 +4540,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("83_1271948667.92136") :method
+.sub "statement_mod_cond"  :subid("83_1272455252.89365") :method
 .annotate "line", 208
     $P363 = self."!protoregex"("statement_mod_cond")
     .return ($P363)
@@ -4548,7 +4548,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("84_1271948667.92136") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("84_1272455252.89365") :method
 .annotate "line", 208
     $P365 = self."!PREFIX__!protoregex"("statement_mod_cond")
     .return ($P365)
@@ -4556,7 +4556,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("85_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_mod_cond:sym<if>"  :subid("85_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx367_tgt
     .local int rx367_pos
@@ -4645,7 +4645,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("86_1271948667.92136") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("86_1272455252.89365") :method
 .annotate "line", 4
     new $P369, "ResizablePMCArray"
     push $P369, "if"
@@ -4654,7 +4654,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("87_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_mod_cond:sym<unless>"  :subid("87_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx375_tgt
     .local int rx375_pos
@@ -4743,7 +4743,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("88_1271948667.92136") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("88_1272455252.89365") :method
 .annotate "line", 4
     new $P377, "ResizablePMCArray"
     push $P377, "unless"
@@ -4752,7 +4752,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("89_1271948667.92136") :method
+.sub "statement_mod_loop"  :subid("89_1272455252.89365") :method
 .annotate "line", 213
     $P383 = self."!protoregex"("statement_mod_loop")
     .return ($P383)
@@ -4760,7 +4760,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("90_1271948667.92136") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("90_1272455252.89365") :method
 .annotate "line", 213
     $P385 = self."!PREFIX__!protoregex"("statement_mod_loop")
     .return ($P385)
@@ -4768,7 +4768,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("91_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_mod_loop:sym<while>"  :subid("91_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx387_tgt
     .local int rx387_pos
@@ -4857,7 +4857,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("92_1271948667.92136") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("92_1272455252.89365") :method
 .annotate "line", 4
     new $P389, "ResizablePMCArray"
     push $P389, "while"
@@ -4866,7 +4866,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("93_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "statement_mod_loop:sym<until>"  :subid("93_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx395_tgt
     .local int rx395_pos
@@ -4955,7 +4955,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("94_1271948667.92136") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("94_1272455252.89365") :method
 .annotate "line", 4
     new $P397, "ResizablePMCArray"
     push $P397, "until"
@@ -4964,7 +4964,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("95_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<fatarrow>"  :subid("95_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx403_tgt
     .local int rx403_pos
@@ -5022,7 +5022,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("96_1271948667.92136") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("96_1272455252.89365") :method
 .annotate "line", 4
     $P405 = self."!PREFIX__!subrule"("fatarrow", "")
     new $P406, "ResizablePMCArray"
@@ -5032,7 +5032,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("97_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<colonpair>"  :subid("97_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx409_tgt
     .local int rx409_pos
@@ -5090,7 +5090,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("98_1271948667.92136") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("98_1272455252.89365") :method
 .annotate "line", 4
     $P411 = self."!PREFIX__!subrule"("colonpair", "")
     new $P412, "ResizablePMCArray"
@@ -5100,7 +5100,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("99_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<variable>"  :subid("99_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx415_tgt
     .local int rx415_pos
@@ -5158,7 +5158,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("100_1271948667.92136") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("100_1272455252.89365") :method
 .annotate "line", 4
     $P417 = self."!PREFIX__!subrule"("variable", "")
     new $P418, "ResizablePMCArray"
@@ -5168,7 +5168,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("101_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<package_declarator>"  :subid("101_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx421_tgt
     .local int rx421_pos
@@ -5226,7 +5226,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("102_1271948667.92136") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("102_1272455252.89365") :method
 .annotate "line", 4
     $P423 = self."!PREFIX__!subrule"("package_declarator", "")
     new $P424, "ResizablePMCArray"
@@ -5236,7 +5236,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("103_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<scope_declarator>"  :subid("103_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx427_tgt
     .local int rx427_pos
@@ -5294,7 +5294,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("104_1271948667.92136") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("104_1272455252.89365") :method
 .annotate "line", 4
     $P429 = self."!PREFIX__!subrule"("scope_declarator", "")
     new $P430, "ResizablePMCArray"
@@ -5304,7 +5304,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("105_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<routine_declarator>"  :subid("105_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx433_tgt
     .local int rx433_pos
@@ -5362,7 +5362,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("106_1271948667.92136") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("106_1272455252.89365") :method
 .annotate "line", 4
     $P435 = self."!PREFIX__!subrule"("routine_declarator", "")
     new $P436, "ResizablePMCArray"
@@ -5372,7 +5372,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("107_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<regex_declarator>"  :subid("107_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx439_tgt
     .local int rx439_pos
@@ -5430,7 +5430,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("108_1271948667.92136") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("108_1272455252.89365") :method
 .annotate "line", 4
     $P441 = self."!PREFIX__!subrule"("regex_declarator", "")
     new $P442, "ResizablePMCArray"
@@ -5440,7 +5440,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("109_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<statement_prefix>"  :subid("109_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx445_tgt
     .local int rx445_pos
@@ -5498,7 +5498,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("110_1271948667.92136") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("110_1272455252.89365") :method
 .annotate "line", 4
     $P447 = self."!PREFIX__!subrule"("statement_prefix", "")
     new $P448, "ResizablePMCArray"
@@ -5508,7 +5508,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("111_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<lambda>"  :subid("111_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx451_tgt
     .local int rx451_pos
@@ -5570,7 +5570,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("112_1271948667.92136") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("112_1272455252.89365") :method
 .annotate "line", 4
     new $P453, "ResizablePMCArray"
     push $P453, ""
@@ -5579,7 +5579,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("113_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "fatarrow"  :subid("113_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx456_tgt
     .local int rx456_pos
@@ -5672,7 +5672,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("114_1271948667.92136") :method
+.sub "!PREFIX__fatarrow"  :subid("114_1272455252.89365") :method
 .annotate "line", 4
     $P458 = self."!PREFIX__!subrule"("key", "")
     new $P459, "ResizablePMCArray"
@@ -5682,7 +5682,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("115_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "colonpair"  :subid("115_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx464_tgt
     .local int rx464_pos
@@ -5811,7 +5811,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("116_1271948667.92136") :method
+.sub "!PREFIX__colonpair"  :subid("116_1272455252.89365") :method
 .annotate "line", 4
     $P466 = self."!PREFIX__!subrule"("circumfix", ":")
     $P467 = self."!PREFIX__!subrule"("identifier", ":")
@@ -5825,7 +5825,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("117_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "variable"  :subid("117_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx476_tgt
     .local int rx476_pos
@@ -5980,7 +5980,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("118_1271948667.92136") :method
+.sub "!PREFIX__variable"  :subid("118_1272455252.89365") :method
 .annotate "line", 4
     $P478 = self."!PREFIX__!subrule"("sigil", "")
     $P479 = self."!PREFIX__!subrule"("sigil", "")
@@ -5995,7 +5995,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("119_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "sigil"  :subid("119_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx488_tgt
     .local int rx488_pos
@@ -6053,7 +6053,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("120_1271948667.92136") :method
+.sub "!PREFIX__sigil"  :subid("120_1272455252.89365") :method
 .annotate "line", 4
     new $P490, "ResizablePMCArray"
     push $P490, "&"
@@ -6065,7 +6065,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("121_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "twigil"  :subid("121_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx493_tgt
     .local int rx493_pos
@@ -6123,7 +6123,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("122_1271948667.92136") :method
+.sub "!PREFIX__twigil"  :subid("122_1272455252.89365") :method
 .annotate "line", 4
     new $P495, "ResizablePMCArray"
     push $P495, "?"
@@ -6134,7 +6134,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("123_1271948667.92136") :method
+.sub "package_declarator"  :subid("123_1272455252.89365") :method
 .annotate "line", 253
     $P498 = self."!protoregex"("package_declarator")
     .return ($P498)
@@ -6142,7 +6142,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("124_1271948667.92136") :method
+.sub "!PREFIX__package_declarator"  :subid("124_1272455252.89365") :method
 .annotate "line", 253
     $P500 = self."!PREFIX__!protoregex"("package_declarator")
     .return ($P500)
@@ -6150,7 +6150,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("125_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "package_declarator:sym<module>"  :subid("125_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx502_tgt
     .local int rx502_pos
@@ -6229,7 +6229,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("126_1271948667.92136") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("126_1272455252.89365") :method
 .annotate "line", 4
     $P504 = self."!PREFIX__!subrule"("package_def", "module")
     new $P505, "ResizablePMCArray"
@@ -6239,7 +6239,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("127_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "package_declarator:sym<class>"  :subid("127_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx509_tgt
     .local int rx509_pos
@@ -6331,7 +6331,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("128_1271948667.92136") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("128_1272455252.89365") :method
 .annotate "line", 4
     $P511 = self."!PREFIX__!subrule"("package_def", "grammar")
     $P512 = self."!PREFIX__!subrule"("package_def", "class")
@@ -6343,7 +6343,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("129_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "package_def"  :subid("129_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx518_tgt
     .local int rx518_pos
@@ -6547,7 +6547,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("130_1271948667.92136") :method
+.sub "!PREFIX__package_def"  :subid("130_1272455252.89365") :method
 .annotate "line", 4
     new $P520, "ResizablePMCArray"
     push $P520, ""
@@ -6556,7 +6556,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("131_1271948667.92136") :method
+.sub "scope_declarator"  :subid("131_1272455252.89365") :method
 .annotate "line", 267
     $P541 = self."!protoregex"("scope_declarator")
     .return ($P541)
@@ -6564,7 +6564,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("132_1271948667.92136") :method
+.sub "!PREFIX__scope_declarator"  :subid("132_1272455252.89365") :method
 .annotate "line", 267
     $P543 = self."!PREFIX__!protoregex"("scope_declarator")
     .return ($P543)
@@ -6572,7 +6572,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("133_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "scope_declarator:sym<my>"  :subid("133_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx545_tgt
     .local int rx545_pos
@@ -6651,7 +6651,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("134_1271948667.92136") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("134_1272455252.89365") :method
 .annotate "line", 4
     $P547 = self."!PREFIX__!subrule"("scoped", "my")
     new $P548, "ResizablePMCArray"
@@ -6661,7 +6661,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("135_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "scope_declarator:sym<our>"  :subid("135_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx552_tgt
     .local int rx552_pos
@@ -6740,7 +6740,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("136_1271948667.92136") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("136_1272455252.89365") :method
 .annotate "line", 4
     $P554 = self."!PREFIX__!subrule"("scoped", "our")
     new $P555, "ResizablePMCArray"
@@ -6750,7 +6750,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("137_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "scope_declarator:sym<has>"  :subid("137_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx559_tgt
     .local int rx559_pos
@@ -6829,7 +6829,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("138_1271948667.92136") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("138_1272455252.89365") :method
 .annotate "line", 4
     $P561 = self."!PREFIX__!subrule"("scoped", "has")
     new $P562, "ResizablePMCArray"
@@ -6839,7 +6839,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("139_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "scoped"  :subid("139_1272455252.89365") :method :outer("11_1272455252.89365")
     .param pmc param_566
 .annotate "line", 272
     .lex "$*SCOPE", param_566
@@ -6936,7 +6936,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("140_1271948667.92136") :method
+.sub "!PREFIX__scoped"  :subid("140_1272455252.89365") :method
 .annotate "line", 4
     new $P569, "ResizablePMCArray"
     push $P569, ""
@@ -6946,7 +6946,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("141_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "variable_declarator"  :subid("141_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx577_tgt
     .local int rx577_pos
@@ -7004,7 +7004,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("142_1271948667.92136") :method
+.sub "!PREFIX__variable_declarator"  :subid("142_1272455252.89365") :method
 .annotate "line", 4
     $P579 = self."!PREFIX__!subrule"("variable", "")
     new $P580, "ResizablePMCArray"
@@ -7014,7 +7014,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("143_1271948667.92136") :method
+.sub "routine_declarator"  :subid("143_1272455252.89365") :method
 .annotate "line", 279
     $P583 = self."!protoregex"("routine_declarator")
     .return ($P583)
@@ -7022,7 +7022,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("144_1271948667.92136") :method
+.sub "!PREFIX__routine_declarator"  :subid("144_1272455252.89365") :method
 .annotate "line", 279
     $P585 = self."!PREFIX__!protoregex"("routine_declarator")
     .return ($P585)
@@ -7030,7 +7030,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("145_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "routine_declarator:sym<sub>"  :subid("145_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx587_tgt
     .local int rx587_pos
@@ -7109,7 +7109,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("146_1271948667.92136") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("146_1272455252.89365") :method
 .annotate "line", 4
     $P589 = self."!PREFIX__!subrule"("routine_def", "sub")
     new $P590, "ResizablePMCArray"
@@ -7119,7 +7119,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("147_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "routine_declarator:sym<method>"  :subid("147_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx594_tgt
     .local int rx594_pos
@@ -7198,7 +7198,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("148_1271948667.92136") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("148_1272455252.89365") :method
 .annotate "line", 4
     $P596 = self."!PREFIX__!subrule"("method_def", "method")
     new $P597, "ResizablePMCArray"
@@ -7208,7 +7208,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("149_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "routine_def"  :subid("149_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx601_tgt
     .local int rx601_pos
@@ -7218,7 +7218,7 @@
     .local pmc rx601_cur
     (rx601_cur, rx601_pos, rx601_tgt) = self."!cursor_start"()
     rx601_cur."!cursor_debug"("START ", "routine_def")
-    rx601_cur."!cursor_caparray"("deflongname", "sigil")
+    rx601_cur."!cursor_caparray"("sigil", "deflongname")
     .lex unicode:"$\x{a2}", rx601_cur
     .local pmc match
     .lex "$/", match
@@ -7415,7 +7415,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("150_1271948667.92136") :method
+.sub "!PREFIX__routine_def"  :subid("150_1272455252.89365") :method
 .annotate "line", 4
     new $P603, "ResizablePMCArray"
     push $P603, ""
@@ -7424,7 +7424,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("151_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "method_def"  :subid("151_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx625_tgt
     .local int rx625_pos
@@ -7594,7 +7594,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("152_1271948667.92136") :method
+.sub "!PREFIX__method_def"  :subid("152_1272455252.89365") :method
 .annotate "line", 4
     new $P627, "ResizablePMCArray"
     push $P627, ""
@@ -7603,7 +7603,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("153_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "signature"  :subid("153_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx644_tgt
     .local int rx644_pos
@@ -7693,7 +7693,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("154_1271948667.92136") :method
+.sub "!PREFIX__signature"  :subid("154_1272455252.89365") :method
 .annotate "line", 4
     new $P646, "ResizablePMCArray"
     push $P646, ""
@@ -7702,7 +7702,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("155_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "parameter"  :subid("155_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx653_tgt
     .local int rx653_pos
@@ -7863,7 +7863,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("156_1271948667.92136") :method
+.sub "!PREFIX__parameter"  :subid("156_1272455252.89365") :method
 .annotate "line", 4
     $P655 = self."!PREFIX__!subrule"("named_param", "")
     $P656 = self."!PREFIX__!subrule"("param_var", "")
@@ -7877,7 +7877,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("157_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "param_var"  :subid("157_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx668_tgt
     .local int rx668_pos
@@ -7985,7 +7985,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("158_1271948667.92136") :method
+.sub "!PREFIX__param_var"  :subid("158_1272455252.89365") :method
 .annotate "line", 4
     $P670 = self."!PREFIX__!subrule"("sigil", "")
     new $P671, "ResizablePMCArray"
@@ -7995,7 +7995,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("159_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "named_param"  :subid("159_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx678_tgt
     .local int rx678_pos
@@ -8061,7 +8061,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("160_1271948667.92136") :method
+.sub "!PREFIX__named_param"  :subid("160_1272455252.89365") :method
 .annotate "line", 4
     $P680 = self."!PREFIX__!subrule"("param_var", ":")
     new $P681, "ResizablePMCArray"
@@ -8071,7 +8071,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("161_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "default_value"  :subid("161_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx684_tgt
     .local int rx684_pos
@@ -8151,7 +8151,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("162_1271948667.92136") :method
+.sub "!PREFIX__default_value"  :subid("162_1272455252.89365") :method
 .annotate "line", 4
     new $P686, "ResizablePMCArray"
     push $P686, ""
@@ -8160,7 +8160,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("163_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "regex_declarator"  :subid("163_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx692_tgt
     .local int rx692_pos
@@ -8561,7 +8561,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("164_1271948667.92136") :method
+.sub "!PREFIX__regex_declarator"  :subid("164_1272455252.89365") :method
 .annotate "line", 4
     new $P694, "ResizablePMCArray"
     push $P694, ""
@@ -8570,7 +8570,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("165_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "dotty"  :subid("165_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx729_tgt
     .local int rx729_pos
@@ -8726,7 +8726,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("166_1271948667.92136") :method
+.sub "!PREFIX__dotty"  :subid("166_1272455252.89365") :method
 .annotate "line", 4
     $P731 = self."!PREFIX__!subrule"("longname=identifier", ".")
     new $P732, "ResizablePMCArray"
@@ -8738,7 +8738,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("167_1271948667.92136") :method
+.sub "term"  :subid("167_1272455252.89365") :method
 .annotate "line", 351
     $P740 = self."!protoregex"("term")
     .return ($P740)
@@ -8746,7 +8746,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("168_1271948667.92136") :method
+.sub "!PREFIX__term"  :subid("168_1272455252.89365") :method
 .annotate "line", 351
     $P742 = self."!PREFIX__!protoregex"("term")
     .return ($P742)
@@ -8754,7 +8754,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("169_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<self>"  :subid("169_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx744_tgt
     .local int rx744_pos
@@ -8834,7 +8834,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("170_1271948667.92136") :method
+.sub "!PREFIX__term:sym<self>"  :subid("170_1272455252.89365") :method
 .annotate "line", 4
     new $P746, "ResizablePMCArray"
     push $P746, "self"
@@ -8843,7 +8843,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("171_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<identifier>"  :subid("171_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx750_tgt
     .local int rx750_pos
@@ -8915,7 +8915,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("172_1271948667.92136") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("172_1272455252.89365") :method
 .annotate "line", 4
     $P752 = self."!PREFIX__!subrule"("identifier", "")
     new $P753, "ResizablePMCArray"
@@ -8925,7 +8925,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("173_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<name>"  :subid("173_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx756_tgt
     .local int rx756_pos
@@ -8998,7 +8998,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("174_1271948667.92136") :method
+.sub "!PREFIX__term:sym<name>"  :subid("174_1272455252.89365") :method
 .annotate "line", 4
     $P758 = self."!PREFIX__!subrule"("name", "")
     new $P759, "ResizablePMCArray"
@@ -9008,7 +9008,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("175_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<pir::op>"  :subid("175_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx764_tgt
     .local int rx764_pos
@@ -9101,7 +9101,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("176_1271948667.92136") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("176_1272455252.89365") :method
 .annotate "line", 4
     new $P766, "ResizablePMCArray"
     push $P766, "pir::"
@@ -9110,7 +9110,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("177_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "args"  :subid("177_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx772_tgt
     .local int rx772_pos
@@ -9182,7 +9182,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("178_1271948667.92136") :method
+.sub "!PREFIX__args"  :subid("178_1272455252.89365") :method
 .annotate "line", 4
     $P774 = self."!PREFIX__!subrule"("arglist", "(")
     new $P775, "ResizablePMCArray"
@@ -9192,7 +9192,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("179_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "arglist"  :subid("179_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx778_tgt
     .local int rx778_pos
@@ -9264,7 +9264,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("180_1271948667.92136") :method
+.sub "!PREFIX__arglist"  :subid("180_1272455252.89365") :method
 .annotate "line", 4
     $P780 = self."!PREFIX__!subrule"("", "")
     new $P781, "ResizablePMCArray"
@@ -9274,7 +9274,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("181_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "term:sym<value>"  :subid("181_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx785_tgt
     .local int rx785_pos
@@ -9332,7 +9332,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("182_1271948667.92136") :method
+.sub "!PREFIX__term:sym<value>"  :subid("182_1272455252.89365") :method
 .annotate "line", 4
     $P787 = self."!PREFIX__!subrule"("value", "")
     new $P788, "ResizablePMCArray"
@@ -9342,7 +9342,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("183_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "value"  :subid("183_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx791_tgt
     .local int rx791_pos
@@ -9416,7 +9416,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("184_1271948667.92136") :method
+.sub "!PREFIX__value"  :subid("184_1272455252.89365") :method
 .annotate "line", 4
     $P793 = self."!PREFIX__!subrule"("number", "")
     $P794 = self."!PREFIX__!subrule"("quote", "")
@@ -9428,7 +9428,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("185_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "number"  :subid("185_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx799_tgt
     .local int rx799_pos
@@ -9528,7 +9528,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("186_1271948667.92136") :method
+.sub "!PREFIX__number"  :subid("186_1272455252.89365") :method
 .annotate "line", 4
     new $P801, "ResizablePMCArray"
     push $P801, ""
@@ -9537,7 +9537,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("187_1271948667.92136") :method
+.sub "quote"  :subid("187_1272455252.89365") :method
 .annotate "line", 392
     $P808 = self."!protoregex"("quote")
     .return ($P808)
@@ -9545,7 +9545,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("188_1271948667.92136") :method
+.sub "!PREFIX__quote"  :subid("188_1272455252.89365") :method
 .annotate "line", 392
     $P810 = self."!PREFIX__!protoregex"("quote")
     .return ($P810)
@@ -9553,7 +9553,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("189_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote:sym<apos>"  :subid("189_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx812_tgt
     .local int rx812_pos
@@ -9617,7 +9617,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("190_1271948667.92136") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("190_1272455252.89365") :method
 .annotate "line", 4
     new $P814, "ResizablePMCArray"
     push $P814, "'"
@@ -9626,7 +9626,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("191_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote:sym<dblq>"  :subid("191_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx817_tgt
     .local int rx817_pos
@@ -9690,7 +9690,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("192_1271948667.92136") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("192_1272455252.89365") :method
 .annotate "line", 4
     new $P819, "ResizablePMCArray"
     push $P819, "\""
@@ -9699,7 +9699,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("193_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote:sym<q>"  :subid("193_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx822_tgt
     .local int rx822_pos
@@ -9775,7 +9775,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("194_1271948667.92136") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("194_1272455252.89365") :method
 .annotate "line", 4
     $P824 = self."!PREFIX__!subrule"("", "q")
     new $P825, "ResizablePMCArray"
@@ -9785,7 +9785,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("195_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote:sym<qq>"  :subid("195_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx828_tgt
     .local int rx828_pos
@@ -9861,7 +9861,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("196_1271948667.92136") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("196_1272455252.89365") :method
 .annotate "line", 4
     $P830 = self."!PREFIX__!subrule"("", "qq")
     new $P831, "ResizablePMCArray"
@@ -9871,7 +9871,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("197_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote:sym<Q>"  :subid("197_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx834_tgt
     .local int rx834_pos
@@ -9947,7 +9947,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("198_1271948667.92136") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("198_1272455252.89365") :method
 .annotate "line", 4
     $P836 = self."!PREFIX__!subrule"("", "Q")
     new $P837, "ResizablePMCArray"
@@ -9957,7 +9957,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("199_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote:sym<Q:PIR>"  :subid("199_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx840_tgt
     .local int rx840_pos
@@ -10027,7 +10027,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("200_1271948667.92136") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("200_1272455252.89365") :method
 .annotate "line", 4
     $P842 = self."!PREFIX__!subrule"("", "Q:PIR")
     new $P843, "ResizablePMCArray"
@@ -10037,7 +10037,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("201_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote:sym</ />"  :subid("201_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx846_tgt
     .local int rx846_pos
@@ -10122,7 +10122,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("202_1271948667.92136") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("202_1272455252.89365") :method
 .annotate "line", 4
     $P848 = self."!PREFIX__!subrule"("", "/")
     new $P849, "ResizablePMCArray"
@@ -10132,7 +10132,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("203_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote_escape:sym<$>"  :subid("203_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx852_tgt
     .local int rx852_pos
@@ -10200,7 +10200,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("204_1271948667.92136") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("204_1272455252.89365") :method
 .annotate "line", 4
     new $P854, "ResizablePMCArray"
     push $P854, "$"
@@ -10209,7 +10209,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("205_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote_escape:sym<{ }>"  :subid("205_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx857_tgt
     .local int rx857_pos
@@ -10277,7 +10277,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("206_1271948667.92136") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("206_1272455252.89365") :method
 .annotate "line", 4
     new $P859, "ResizablePMCArray"
     push $P859, "{"
@@ -10286,7 +10286,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("207_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "quote_escape:sym<esc>"  :subid("207_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx862_tgt
     .local int rx862_pos
@@ -10348,7 +10348,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("208_1271948667.92136") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("208_1272455252.89365") :method
 .annotate "line", 4
     new $P864, "ResizablePMCArray"
     push $P864, "\\e"
@@ -10357,7 +10357,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("209_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "circumfix:sym<( )>"  :subid("209_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx867_tgt
     .local int rx867_pos
@@ -10441,7 +10441,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("210_1271948667.92136") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("210_1272455252.89365") :method
 .annotate "line", 4
     $P869 = self."!PREFIX__!subrule"("", "(")
     new $P870, "ResizablePMCArray"
@@ -10451,7 +10451,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("211_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "circumfix:sym<[ ]>"  :subid("211_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx875_tgt
     .local int rx875_pos
@@ -10535,7 +10535,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("212_1271948667.92136") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("212_1272455252.89365") :method
 .annotate "line", 4
     $P877 = self."!PREFIX__!subrule"("", "[")
     new $P878, "ResizablePMCArray"
@@ -10545,7 +10545,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("213_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "circumfix:sym<ang>"  :subid("213_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx883_tgt
     .local int rx883_pos
@@ -10609,7 +10609,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("214_1271948667.92136") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("214_1272455252.89365") :method
 .annotate "line", 4
     new $P885, "ResizablePMCArray"
     push $P885, "<"
@@ -10618,7 +10618,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("215_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("215_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx888_tgt
     .local int rx888_pos
@@ -10682,7 +10682,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("216_1271948667.92136") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("216_1272455252.89365") :method
 .annotate "line", 4
     new $P890, "ResizablePMCArray"
     push $P890, unicode:"\x{ab}"
@@ -10691,7 +10691,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("217_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "circumfix:sym<{ }>"  :subid("217_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx893_tgt
     .local int rx893_pos
@@ -10755,7 +10755,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("218_1271948667.92136") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("218_1272455252.89365") :method
 .annotate "line", 4
     new $P895, "ResizablePMCArray"
     push $P895, "{"
@@ -10764,7 +10764,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("219_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "circumfix:sym<sigil>"  :subid("219_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx898_tgt
     .local int rx898_pos
@@ -10854,7 +10854,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("220_1271948667.92136") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("220_1272455252.89365") :method
 .annotate "line", 4
     $P900 = self."!PREFIX__!subrule"("sigil", "")
     new $P901, "ResizablePMCArray"
@@ -10864,7 +10864,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("221_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "semilist"  :subid("221_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 4
     .local string rx906_tgt
     .local int rx906_pos
@@ -10932,7 +10932,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("222_1271948667.92136") :method
+.sub "!PREFIX__semilist"  :subid("222_1272455252.89365") :method
 .annotate "line", 4
     new $P908, "ResizablePMCArray"
     push $P908, ""
@@ -10941,7 +10941,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("223_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infixish"  :subid("223_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx913_tgt
     .local int rx913_pos
@@ -11003,7 +11003,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("224_1271948667.92136") :method
+.sub "!PREFIX__infixish"  :subid("224_1272455252.89365") :method
 .annotate "line", 422
     new $P915, "ResizablePMCArray"
     push $P915, ""
@@ -11012,7 +11012,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("225_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infixstopper"  :subid("225_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx918_tgt
     .local int rx918_pos
@@ -11067,7 +11067,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("226_1271948667.92136") :method
+.sub "!PREFIX__infixstopper"  :subid("226_1272455252.89365") :method
 .annotate "line", 422
     new $P920, "ResizablePMCArray"
     push $P920, ""
@@ -11076,7 +11076,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("227_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "postcircumfix:sym<[ ]>"  :subid("227_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx923_tgt
     .local int rx923_pos
@@ -11162,7 +11162,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("228_1271948667.92136") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("228_1272455252.89365") :method
 .annotate "line", 422
     $P925 = self."!PREFIX__!subrule"("", "[")
     new $P926, "ResizablePMCArray"
@@ -11172,7 +11172,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("229_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "postcircumfix:sym<{ }>"  :subid("229_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx929_tgt
     .local int rx929_pos
@@ -11258,7 +11258,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("230_1271948667.92136") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("230_1272455252.89365") :method
 .annotate "line", 422
     $P931 = self."!PREFIX__!subrule"("", "{")
     new $P932, "ResizablePMCArray"
@@ -11268,7 +11268,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("231_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "postcircumfix:sym<ang>"  :subid("231_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx935_tgt
     .local int rx935_pos
@@ -11341,7 +11341,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("232_1271948667.92136") :method
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("232_1272455252.89365") :method
 .annotate "line", 422
     new $P937, "ResizablePMCArray"
     push $P937, "<"
@@ -11350,7 +11350,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("233_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "postcircumfix:sym<( )>"  :subid("233_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx940_tgt
     .local int rx940_pos
@@ -11436,7 +11436,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("234_1271948667.92136") :method
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("234_1272455252.89365") :method
 .annotate "line", 422
     $P942 = self."!PREFIX__!subrule"("", "(")
     new $P943, "ResizablePMCArray"
@@ -11446,7 +11446,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("235_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "postfix:sym<.>"  :subid("235_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx946_tgt
     .local int rx946_pos
@@ -11511,7 +11511,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("236_1271948667.92136") :method
+.sub "!PREFIX__postfix:sym<.>"  :subid("236_1272455252.89365") :method
 .annotate "line", 422
     $P948 = self."!PREFIX__!subrule"("dotty", "")
     new $P949, "ResizablePMCArray"
@@ -11521,7 +11521,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("237_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<++>"  :subid("237_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx952_tgt
     .local int rx952_pos
@@ -11600,7 +11600,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("238_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<++>"  :subid("238_1272455252.89365") :method
 .annotate "line", 422
     $P954 = self."!PREFIX__!subrule"("O", "++")
     new $P955, "ResizablePMCArray"
@@ -11610,7 +11610,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("239_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<-->"  :subid("239_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx959_tgt
     .local int rx959_pos
@@ -11689,7 +11689,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("240_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<-->"  :subid("240_1272455252.89365") :method
 .annotate "line", 422
     $P961 = self."!PREFIX__!subrule"("O", "--")
     new $P962, "ResizablePMCArray"
@@ -11699,7 +11699,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("241_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "postfix:sym<++>"  :subid("241_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx966_tgt
     .local int rx966_pos
@@ -11778,7 +11778,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("242_1271948667.92136") :method
+.sub "!PREFIX__postfix:sym<++>"  :subid("242_1272455252.89365") :method
 .annotate "line", 422
     $P968 = self."!PREFIX__!subrule"("O", "++")
     new $P969, "ResizablePMCArray"
@@ -11788,7 +11788,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("243_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "postfix:sym<-->"  :subid("243_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx973_tgt
     .local int rx973_pos
@@ -11867,7 +11867,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("244_1271948667.92136") :method
+.sub "!PREFIX__postfix:sym<-->"  :subid("244_1272455252.89365") :method
 .annotate "line", 422
     $P975 = self."!PREFIX__!subrule"("O", "--")
     new $P976, "ResizablePMCArray"
@@ -11877,7 +11877,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("245_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<**>"  :subid("245_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx980_tgt
     .local int rx980_pos
@@ -11956,7 +11956,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("246_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<**>"  :subid("246_1272455252.89365") :method
 .annotate "line", 422
     $P982 = self."!PREFIX__!subrule"("O", "**")
     new $P983, "ResizablePMCArray"
@@ -11966,7 +11966,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("247_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<+>"  :subid("247_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx987_tgt
     .local int rx987_pos
@@ -12045,7 +12045,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("248_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<+>"  :subid("248_1272455252.89365") :method
 .annotate "line", 422
     $P989 = self."!PREFIX__!subrule"("O", "+")
     new $P990, "ResizablePMCArray"
@@ -12055,7 +12055,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("249_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<~>"  :subid("249_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx994_tgt
     .local int rx994_pos
@@ -12134,7 +12134,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("250_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<~>"  :subid("250_1272455252.89365") :method
 .annotate "line", 422
     $P996 = self."!PREFIX__!subrule"("O", "~")
     new $P997, "ResizablePMCArray"
@@ -12144,7 +12144,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("251_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<->"  :subid("251_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1001_tgt
     .local int rx1001_pos
@@ -12233,7 +12233,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("252_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<->"  :subid("252_1272455252.89365") :method
 .annotate "line", 422
     new $P1003, "ResizablePMCArray"
     push $P1003, "-"
@@ -12242,7 +12242,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("253_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<?>"  :subid("253_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1007_tgt
     .local int rx1007_pos
@@ -12321,7 +12321,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("254_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<?>"  :subid("254_1272455252.89365") :method
 .annotate "line", 422
     $P1009 = self."!PREFIX__!subrule"("O", "?")
     new $P1010, "ResizablePMCArray"
@@ -12331,7 +12331,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("255_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<!>"  :subid("255_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1014_tgt
     .local int rx1014_pos
@@ -12410,7 +12410,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("256_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<!>"  :subid("256_1272455252.89365") :method
 .annotate "line", 422
     $P1016 = self."!PREFIX__!subrule"("O", "!")
     new $P1017, "ResizablePMCArray"
@@ -12420,7 +12420,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("257_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<|>"  :subid("257_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1021_tgt
     .local int rx1021_pos
@@ -12499,7 +12499,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("258_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<|>"  :subid("258_1272455252.89365") :method
 .annotate "line", 422
     $P1023 = self."!PREFIX__!subrule"("O", "|")
     new $P1024, "ResizablePMCArray"
@@ -12509,7 +12509,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("259_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<*>"  :subid("259_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1028_tgt
     .local int rx1028_pos
@@ -12588,7 +12588,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("260_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<*>"  :subid("260_1272455252.89365") :method
 .annotate "line", 422
     $P1030 = self."!PREFIX__!subrule"("O", "*")
     new $P1031, "ResizablePMCArray"
@@ -12598,7 +12598,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("261_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym</>"  :subid("261_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1035_tgt
     .local int rx1035_pos
@@ -12677,7 +12677,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("262_1271948667.92136") :method
+.sub "!PREFIX__infix:sym</>"  :subid("262_1272455252.89365") :method
 .annotate "line", 422
     $P1037 = self."!PREFIX__!subrule"("O", "/")
     new $P1038, "ResizablePMCArray"
@@ -12687,7 +12687,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("263_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<%>"  :subid("263_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1042_tgt
     .local int rx1042_pos
@@ -12766,7 +12766,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("264_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<%>"  :subid("264_1272455252.89365") :method
 .annotate "line", 422
     $P1044 = self."!PREFIX__!subrule"("O", "%")
     new $P1045, "ResizablePMCArray"
@@ -12776,7 +12776,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("265_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<+>"  :subid("265_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1049_tgt
     .local int rx1049_pos
@@ -12855,7 +12855,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("266_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<+>"  :subid("266_1272455252.89365") :method
 .annotate "line", 422
     $P1051 = self."!PREFIX__!subrule"("O", "+")
     new $P1052, "ResizablePMCArray"
@@ -12865,7 +12865,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("267_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<->"  :subid("267_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1056_tgt
     .local int rx1056_pos
@@ -12944,7 +12944,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("268_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<->"  :subid("268_1272455252.89365") :method
 .annotate "line", 422
     $P1058 = self."!PREFIX__!subrule"("O", "-")
     new $P1059, "ResizablePMCArray"
@@ -12954,7 +12954,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("269_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<~>"  :subid("269_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1063_tgt
     .local int rx1063_pos
@@ -13033,7 +13033,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("270_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<~>"  :subid("270_1272455252.89365") :method
 .annotate "line", 422
     $P1065 = self."!PREFIX__!subrule"("O", "~")
     new $P1066, "ResizablePMCArray"
@@ -13043,7 +13043,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("271_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<==>"  :subid("271_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1070_tgt
     .local int rx1070_pos
@@ -13122,7 +13122,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("272_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<==>"  :subid("272_1272455252.89365") :method
 .annotate "line", 422
     $P1072 = self."!PREFIX__!subrule"("O", "==")
     new $P1073, "ResizablePMCArray"
@@ -13132,7 +13132,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("273_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<!=>"  :subid("273_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1077_tgt
     .local int rx1077_pos
@@ -13211,7 +13211,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("274_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<!=>"  :subid("274_1272455252.89365") :method
 .annotate "line", 422
     $P1079 = self."!PREFIX__!subrule"("O", "!=")
     new $P1080, "ResizablePMCArray"
@@ -13221,7 +13221,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("275_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<<=>"  :subid("275_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1084_tgt
     .local int rx1084_pos
@@ -13300,7 +13300,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("276_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<<=>"  :subid("276_1272455252.89365") :method
 .annotate "line", 422
     $P1086 = self."!PREFIX__!subrule"("O", "<=")
     new $P1087, "ResizablePMCArray"
@@ -13310,7 +13310,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("277_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<>=>"  :subid("277_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1091_tgt
     .local int rx1091_pos
@@ -13389,7 +13389,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("278_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<>=>"  :subid("278_1272455252.89365") :method
 .annotate "line", 422
     $P1093 = self."!PREFIX__!subrule"("O", ">=")
     new $P1094, "ResizablePMCArray"
@@ -13399,7 +13399,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("279_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<<>"  :subid("279_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1098_tgt
     .local int rx1098_pos
@@ -13478,7 +13478,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("280_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<<>"  :subid("280_1272455252.89365") :method
 .annotate "line", 422
     $P1100 = self."!PREFIX__!subrule"("O", "<")
     new $P1101, "ResizablePMCArray"
@@ -13488,7 +13488,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("281_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<>>"  :subid("281_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1105_tgt
     .local int rx1105_pos
@@ -13567,7 +13567,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("282_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<>>"  :subid("282_1272455252.89365") :method
 .annotate "line", 422
     $P1107 = self."!PREFIX__!subrule"("O", ">")
     new $P1108, "ResizablePMCArray"
@@ -13577,7 +13577,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("283_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<eq>"  :subid("283_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1112_tgt
     .local int rx1112_pos
@@ -13656,7 +13656,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("284_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<eq>"  :subid("284_1272455252.89365") :method
 .annotate "line", 422
     $P1114 = self."!PREFIX__!subrule"("O", "eq")
     new $P1115, "ResizablePMCArray"
@@ -13666,7 +13666,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("285_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<ne>"  :subid("285_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1119_tgt
     .local int rx1119_pos
@@ -13745,7 +13745,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("286_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<ne>"  :subid("286_1272455252.89365") :method
 .annotate "line", 422
     $P1121 = self."!PREFIX__!subrule"("O", "ne")
     new $P1122, "ResizablePMCArray"
@@ -13755,7 +13755,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("287_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<le>"  :subid("287_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1126_tgt
     .local int rx1126_pos
@@ -13834,7 +13834,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("288_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<le>"  :subid("288_1272455252.89365") :method
 .annotate "line", 422
     $P1128 = self."!PREFIX__!subrule"("O", "le")
     new $P1129, "ResizablePMCArray"
@@ -13844,7 +13844,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("289_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<ge>"  :subid("289_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1133_tgt
     .local int rx1133_pos
@@ -13923,7 +13923,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("290_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<ge>"  :subid("290_1272455252.89365") :method
 .annotate "line", 422
     $P1135 = self."!PREFIX__!subrule"("O", "ge")
     new $P1136, "ResizablePMCArray"
@@ -13933,7 +13933,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("291_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<lt>"  :subid("291_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1140_tgt
     .local int rx1140_pos
@@ -14012,7 +14012,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("292_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<lt>"  :subid("292_1272455252.89365") :method
 .annotate "line", 422
     $P1142 = self."!PREFIX__!subrule"("O", "lt")
     new $P1143, "ResizablePMCArray"
@@ -14022,7 +14022,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("293_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<gt>"  :subid("293_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1147_tgt
     .local int rx1147_pos
@@ -14101,7 +14101,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("294_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<gt>"  :subid("294_1272455252.89365") :method
 .annotate "line", 422
     $P1149 = self."!PREFIX__!subrule"("O", "gt")
     new $P1150, "ResizablePMCArray"
@@ -14111,7 +14111,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("295_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<=:=>"  :subid("295_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1154_tgt
     .local int rx1154_pos
@@ -14190,7 +14190,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("296_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<=:=>"  :subid("296_1272455252.89365") :method
 .annotate "line", 422
     $P1156 = self."!PREFIX__!subrule"("O", "=:=")
     new $P1157, "ResizablePMCArray"
@@ -14200,7 +14200,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("297_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<~~>"  :subid("297_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1161_tgt
     .local int rx1161_pos
@@ -14279,7 +14279,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("298_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<~~>"  :subid("298_1272455252.89365") :method
 .annotate "line", 422
     $P1163 = self."!PREFIX__!subrule"("O", "~~")
     new $P1164, "ResizablePMCArray"
@@ -14289,7 +14289,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("299_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<&&>"  :subid("299_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1168_tgt
     .local int rx1168_pos
@@ -14368,7 +14368,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("300_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<&&>"  :subid("300_1272455252.89365") :method
 .annotate "line", 422
     $P1170 = self."!PREFIX__!subrule"("O", "&&")
     new $P1171, "ResizablePMCArray"
@@ -14378,7 +14378,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("301_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<||>"  :subid("301_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1175_tgt
     .local int rx1175_pos
@@ -14457,7 +14457,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("302_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<||>"  :subid("302_1272455252.89365") :method
 .annotate "line", 422
     $P1177 = self."!PREFIX__!subrule"("O", "||")
     new $P1178, "ResizablePMCArray"
@@ -14467,7 +14467,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("303_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<//>"  :subid("303_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1182_tgt
     .local int rx1182_pos
@@ -14546,7 +14546,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("304_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<//>"  :subid("304_1272455252.89365") :method
 .annotate "line", 422
     $P1184 = self."!PREFIX__!subrule"("O", "//")
     new $P1185, "ResizablePMCArray"
@@ -14556,7 +14556,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("305_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<?? !!>"  :subid("305_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1189_tgt
     .local int rx1189_pos
@@ -14645,7 +14645,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("306_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("306_1272455252.89365") :method
 .annotate "line", 422
     $P1191 = self."!PREFIX__!subrule"("", "??")
     new $P1192, "ResizablePMCArray"
@@ -14655,7 +14655,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("307_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<=>"  :subid("307_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1195_tgt
     .local int rx1195_pos
@@ -14733,7 +14733,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("308_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<=>"  :subid("308_1272455252.89365") :method
 .annotate "line", 422
     $P1197 = self."!PREFIX__!subrule"("", "=")
     new $P1198, "ResizablePMCArray"
@@ -14743,7 +14743,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("309_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<:=>"  :subid("309_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1202_tgt
     .local int rx1202_pos
@@ -14822,7 +14822,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("310_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<:=>"  :subid("310_1272455252.89365") :method
 .annotate "line", 422
     $P1204 = self."!PREFIX__!subrule"("O", ":=")
     new $P1205, "ResizablePMCArray"
@@ -14832,7 +14832,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("311_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<::=>"  :subid("311_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1209_tgt
     .local int rx1209_pos
@@ -14911,7 +14911,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("312_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<::=>"  :subid("312_1272455252.89365") :method
 .annotate "line", 422
     $P1211 = self."!PREFIX__!subrule"("O", "::=")
     new $P1212, "ResizablePMCArray"
@@ -14921,7 +14921,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("313_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "infix:sym<,>"  :subid("313_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1216_tgt
     .local int rx1216_pos
@@ -15000,7 +15000,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("314_1271948667.92136") :method
+.sub "!PREFIX__infix:sym<,>"  :subid("314_1272455252.89365") :method
 .annotate "line", 422
     $P1218 = self."!PREFIX__!subrule"("O", ",")
     new $P1219, "ResizablePMCArray"
@@ -15010,7 +15010,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("315_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<return>"  :subid("315_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1223_tgt
     .local int rx1223_pos
@@ -15095,7 +15095,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("316_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<return>"  :subid("316_1272455252.89365") :method
 .annotate "line", 422
     new $P1225, "ResizablePMCArray"
     push $P1225, "return"
@@ -15104,7 +15104,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("317_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "prefix:sym<make>"  :subid("317_1272455252.89365") :method :outer("11_1272455252.89365")
 .annotate "line", 422
     .local string rx1229_tgt
     .local int rx1229_pos
@@ -15189,7 +15189,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("318_1271948667.92136") :method
+.sub "!PREFIX__prefix:sym<make>"  :subid("318_1272455252.89365") :method
 .annotate "line", 422
     new $P1231, "ResizablePMCArray"
     push $P1231, "make"
@@ -15198,12 +15198,12 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "smartmatch"  :subid("319_1271948667.92136") :method :outer("11_1271948667.92136")
+.sub "smartmatch"  :subid("319_1272455252.89365") :method :outer("11_1272455252.89365")
     .param pmc param_1237
 .annotate "line", 530
     new $P1236, 'ExceptionHandler'
     set_addr $P1236, control_1235
-    $P1236."handle_types"(58)
+    $P1236."handle_types"(57)
     push_eh $P1236
     .lex "self", self
     .lex "$/", param_1237
@@ -15251,28 +15251,28 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1247"  :subid("320_1271948667.92136") :outer("11_1271948667.92136")
+.sub "_block1247"  :subid("320_1272455252.89365") :outer("11_1272455252.89365")
 .annotate "line", 536
-    .const 'Sub' $P1281 = "331_1271948667.92136" 
+    .const 'Sub' $P1281 = "331_1272455252.89365" 
     capture_lex $P1281
-    .const 'Sub' $P1268 = "328_1271948667.92136" 
+    .const 'Sub' $P1268 = "328_1272455252.89365" 
     capture_lex $P1268
-    .const 'Sub' $P1263 = "326_1271948667.92136" 
+    .const 'Sub' $P1263 = "326_1272455252.89365" 
     capture_lex $P1263
-    .const 'Sub' $P1258 = "324_1271948667.92136" 
+    .const 'Sub' $P1258 = "324_1272455252.89365" 
     capture_lex $P1258
-    .const 'Sub' $P1249 = "321_1271948667.92136" 
+    .const 'Sub' $P1249 = "321_1272455252.89365" 
     capture_lex $P1249
-    .const 'Sub' $P1281 = "331_1271948667.92136" 
+    .const 'Sub' $P1281 = "331_1272455252.89365" 
     capture_lex $P1281
     .return ($P1281)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("321_1271948667.92136") :method :outer("320_1271948667.92136")
+.sub "metachar:sym<:my>"  :subid("321_1272455252.89365") :method :outer("320_1272455252.89365")
 .annotate "line", 536
-    .const 'Sub' $P1255 = "323_1271948667.92136" 
+    .const 'Sub' $P1255 = "323_1272455252.89365" 
     capture_lex $P1255
     .local string rx1250_tgt
     .local int rx1250_pos
@@ -15313,7 +15313,7 @@
     add rx1250_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
     rx1250_cur."!cursor_pos"(rx1250_pos)
-    .const 'Sub' $P1255 = "323_1271948667.92136" 
+    .const 'Sub' $P1255 = "323_1272455252.89365" 
     capture_lex $P1255
     $P10 = rx1250_cur."before"($P1255)
     unless $P10, rx1250_fail
@@ -15356,7 +15356,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("322_1271948667.92136") :method
+.sub "!PREFIX__metachar:sym<:my>"  :subid("322_1272455252.89365") :method
 .annotate "line", 536
     new $P1252, "ResizablePMCArray"
     push $P1252, ":"
@@ -15365,7 +15365,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1254"  :anon :subid("323_1271948667.92136") :method :outer("321_1271948667.92136")
+.sub "_block1254"  :anon :subid("323_1272455252.89365") :method :outer("321_1272455252.89365")
 .annotate "line", 538
     .local string rx1256_tgt
     .local int rx1256_pos
@@ -15421,7 +15421,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("324_1271948667.92136") :method :outer("320_1271948667.92136")
+.sub "metachar:sym<{ }>"  :subid("324_1272455252.89365") :method :outer("320_1272455252.89365")
 .annotate "line", 536
     .local string rx1259_tgt
     .local int rx1259_pos
@@ -15486,7 +15486,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("325_1271948667.92136") :method
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("325_1272455252.89365") :method
 .annotate "line", 536
     new $P1261, "ResizablePMCArray"
     push $P1261, "{"
@@ -15495,7 +15495,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("326_1271948667.92136") :method :outer("320_1271948667.92136")
+.sub "assertion:sym<{ }>"  :subid("326_1272455252.89365") :method :outer("320_1272455252.89365")
 .annotate "line", 536
     .local string rx1264_tgt
     .local int rx1264_pos
@@ -15560,7 +15560,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("327_1271948667.92136") :method
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("327_1272455252.89365") :method
 .annotate "line", 536
     new $P1266, "ResizablePMCArray"
     push $P1266, "{"
@@ -15569,9 +15569,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("328_1271948667.92136") :method :outer("320_1271948667.92136")
+.sub "assertion:sym<name>"  :subid("328_1272455252.89365") :method :outer("320_1272455252.89365")
 .annotate "line", 536
-    .const 'Sub' $P1277 = "330_1271948667.92136" 
+    .const 'Sub' $P1277 = "330_1272455252.89365" 
     capture_lex $P1277
     .local string rx1269_tgt
     .local int rx1269_pos
@@ -15581,7 +15581,7 @@
     .local pmc rx1269_cur
     (rx1269_cur, rx1269_pos, rx1269_tgt) = self."!cursor_start"()
     rx1269_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx1269_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    rx1269_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
     .lex unicode:"$\x{a2}", rx1269_cur
     .local pmc match
     .lex "$/", match
@@ -15636,7 +15636,7 @@
 .annotate "line", 552
   # rx subrule "before" subtype=zerowidth negate=
     rx1269_cur."!cursor_pos"(rx1269_pos)
-    .const 'Sub' $P1277 = "330_1271948667.92136" 
+    .const 'Sub' $P1277 = "330_1272455252.89365" 
     capture_lex $P1277
     $P10 = rx1269_cur."before"($P1277)
     unless $P10, rx1269_fail
@@ -15743,7 +15743,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("329_1271948667.92136") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("329_1272455252.89365") :method
 .annotate "line", 536
     new $P1271, "ResizablePMCArray"
     push $P1271, ""
@@ -15752,7 +15752,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1276"  :anon :subid("330_1271948667.92136") :method :outer("328_1271948667.92136")
+.sub "_block1276"  :anon :subid("330_1272455252.89365") :method :outer("328_1272455252.89365")
 .annotate "line", 552
     .local string rx1278_tgt
     .local int rx1278_pos
@@ -15808,7 +15808,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("331_1271948667.92136") :method :outer("320_1271948667.92136")
+.sub "codeblock"  :subid("331_1272455252.89365") :method :outer("320_1272455252.89365")
 .annotate "line", 536
     .local string rx1282_tgt
     .local int rx1282_pos
@@ -15867,7 +15867,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("332_1271948667.92136") :method
+.sub "!PREFIX__codeblock"  :subid("332_1272455252.89365") :method
 .annotate "line", 536
     $P1284 = self."!PREFIX__!subrule"("block", "")
     new $P1285, "ResizablePMCArray"
@@ -15878,7 +15878,7 @@
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1271948680.36754")
+.sub "_block11"  :anon :subid("10_1272455259.05437")
 .annotate "line", 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -15892,9 +15892,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post127") :outer("10_1271948680.36754")
+.sub "" :load :init :subid("post127") :outer("10_1272455259.05437")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1271948680.36754" 
+    .const 'Sub' $P12 = "10_1272455259.05437" 
     .local pmc block
     set block, $P12
     $P2176 = get_root_global ["parrot"], "P6metaclass"
@@ -15903,201 +15903,201 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1271948680.36754") :outer("10_1271948680.36754")
+.sub "_block13"  :subid("11_1272455259.05437") :outer("10_1272455259.05437")
 .annotate "line", 3
-    .const 'Sub' $P2171 = "126_1271948680.36754" 
+    .const 'Sub' $P2171 = "126_1272455259.05437" 
     capture_lex $P2171
     get_hll_global $P2107, ["NQP";"RegexActions"], "_block2106" 
     capture_lex $P2107
-    .const 'Sub' $P2096 = "120_1271948680.36754" 
+    .const 'Sub' $P2096 = "120_1272455259.05437" 
     capture_lex $P2096
-    .const 'Sub' $P2084 = "119_1271948680.36754" 
+    .const 'Sub' $P2084 = "119_1272455259.05437" 
     capture_lex $P2084
-    .const 'Sub' $P2074 = "118_1271948680.36754" 
+    .const 'Sub' $P2074 = "118_1272455259.05437" 
     capture_lex $P2074
-    .const 'Sub' $P2064 = "117_1271948680.36754" 
+    .const 'Sub' $P2064 = "117_1272455259.05437" 
     capture_lex $P2064
-    .const 'Sub' $P2054 = "116_1271948680.36754" 
+    .const 'Sub' $P2054 = "116_1272455259.05437" 
     capture_lex $P2054
-    .const 'Sub' $P2047 = "115_1271948680.36754" 
+    .const 'Sub' $P2047 = "115_1272455259.05437" 
     capture_lex $P2047
-    .const 'Sub' $P2033 = "114_1271948680.36754" 
+    .const 'Sub' $P2033 = "114_1272455259.05437" 
     capture_lex $P2033
-    .const 'Sub' $P2023 = "113_1271948680.36754" 
+    .const 'Sub' $P2023 = "113_1272455259.05437" 
     capture_lex $P2023
-    .const 'Sub' $P1986 = "112_1271948680.36754" 
+    .const 'Sub' $P1986 = "112_1272455259.05437" 
     capture_lex $P1986
-    .const 'Sub' $P1972 = "111_1271948680.36754" 
+    .const 'Sub' $P1972 = "111_1272455259.05437" 
     capture_lex $P1972
-    .const 'Sub' $P1962 = "110_1271948680.36754" 
+    .const 'Sub' $P1962 = "110_1272455259.05437" 
     capture_lex $P1962
-    .const 'Sub' $P1952 = "109_1271948680.36754" 
+    .const 'Sub' $P1952 = "109_1272455259.05437" 
     capture_lex $P1952
-    .const 'Sub' $P1942 = "108_1271948680.36754" 
+    .const 'Sub' $P1942 = "108_1272455259.05437" 
     capture_lex $P1942
-    .const 'Sub' $P1932 = "107_1271948680.36754" 
+    .const 'Sub' $P1932 = "107_1272455259.05437" 
     capture_lex $P1932
-    .const 'Sub' $P1922 = "106_1271948680.36754" 
+    .const 'Sub' $P1922 = "106_1272455259.05437" 
     capture_lex $P1922
-    .const 'Sub' $P1894 = "105_1271948680.36754" 
+    .const 'Sub' $P1894 = "105_1272455259.05437" 
     capture_lex $P1894
-    .const 'Sub' $P1877 = "104_1271948680.36754" 
+    .const 'Sub' $P1877 = "104_1272455259.05437" 
     capture_lex $P1877
-    .const 'Sub' $P1867 = "103_1271948680.36754" 
+    .const 'Sub' $P1867 = "103_1272455259.05437" 
     capture_lex $P1867
-    .const 'Sub' $P1854 = "102_1271948680.36754" 
+    .const 'Sub' $P1854 = "102_1272455259.05437" 
     capture_lex $P1854
-    .const 'Sub' $P1841 = "101_1271948680.36754" 
+    .const 'Sub' $P1841 = "101_1272455259.05437" 
     capture_lex $P1841
-    .const 'Sub' $P1828 = "100_1271948680.36754" 
+    .const 'Sub' $P1828 = "100_1272455259.05437" 
     capture_lex $P1828
-    .const 'Sub' $P1818 = "99_1271948680.36754" 
+    .const 'Sub' $P1818 = "99_1272455259.05437" 
     capture_lex $P1818
-    .const 'Sub' $P1789 = "98_1271948680.36754" 
+    .const 'Sub' $P1789 = "98_1272455259.05437" 
     capture_lex $P1789
-    .const 'Sub' $P1769 = "97_1271948680.36754" 
+    .const 'Sub' $P1769 = "97_1272455259.05437" 
     capture_lex $P1769
-    .const 'Sub' $P1759 = "96_1271948680.36754" 
+    .const 'Sub' $P1759 = "96_1272455259.05437" 
     capture_lex $P1759
-    .const 'Sub' $P1749 = "95_1271948680.36754" 
+    .const 'Sub' $P1749 = "95_1272455259.05437" 
     capture_lex $P1749
-    .const 'Sub' $P1722 = "94_1271948680.36754" 
+    .const 'Sub' $P1722 = "94_1272455259.05437" 
     capture_lex $P1722
-    .const 'Sub' $P1704 = "93_1271948680.36754" 
+    .const 'Sub' $P1704 = "93_1272455259.05437" 
     capture_lex $P1704
-    .const 'Sub' $P1694 = "92_1271948680.36754" 
+    .const 'Sub' $P1694 = "92_1272455259.05437" 
     capture_lex $P1694
-    .const 'Sub' $P1610 = "89_1271948680.36754" 
+    .const 'Sub' $P1610 = "89_1272455259.05437" 
     capture_lex $P1610
-    .const 'Sub' $P1600 = "88_1271948680.36754" 
+    .const 'Sub' $P1600 = "88_1272455259.05437" 
     capture_lex $P1600
-    .const 'Sub' $P1571 = "87_1271948680.36754" 
+    .const 'Sub' $P1571 = "87_1272455259.05437" 
     capture_lex $P1571
-    .const 'Sub' $P1529 = "86_1271948680.36754" 
+    .const 'Sub' $P1529 = "86_1272455259.05437" 
     capture_lex $P1529
-    .const 'Sub' $P1513 = "85_1271948680.36754" 
+    .const 'Sub' $P1513 = "85_1272455259.05437" 
     capture_lex $P1513
-    .const 'Sub' $P1504 = "84_1271948680.36754" 
+    .const 'Sub' $P1504 = "84_1272455259.05437" 
     capture_lex $P1504
-    .const 'Sub' $P1472 = "83_1271948680.36754" 
+    .const 'Sub' $P1472 = "83_1272455259.05437" 
     capture_lex $P1472
-    .const 'Sub' $P1373 = "80_1271948680.36754" 
+    .const 'Sub' $P1373 = "80_1272455259.05437" 
     capture_lex $P1373
-    .const 'Sub' $P1356 = "79_1271948680.36754" 
+    .const 'Sub' $P1356 = "79_1272455259.05437" 
     capture_lex $P1356
-    .const 'Sub' $P1336 = "78_1271948680.36754" 
+    .const 'Sub' $P1336 = "78_1272455259.05437" 
     capture_lex $P1336
-    .const 'Sub' $P1252 = "77_1271948680.36754" 
+    .const 'Sub' $P1252 = "77_1272455259.05437" 
     capture_lex $P1252
-    .const 'Sub' $P1228 = "75_1271948680.36754" 
+    .const 'Sub' $P1228 = "75_1272455259.05437" 
     capture_lex $P1228
-    .const 'Sub' $P1194 = "73_1271948680.36754" 
+    .const 'Sub' $P1194 = "73_1272455259.05437" 
     capture_lex $P1194
-    .const 'Sub' $P1144 = "71_1271948680.36754" 
+    .const 'Sub' $P1144 = "71_1272455259.05437" 
     capture_lex $P1144
-    .const 'Sub' $P1134 = "70_1271948680.36754" 
+    .const 'Sub' $P1134 = "70_1272455259.05437" 
     capture_lex $P1134
-    .const 'Sub' $P1124 = "69_1271948680.36754" 
+    .const 'Sub' $P1124 = "69_1272455259.05437" 
     capture_lex $P1124
-    .const 'Sub' $P1053 = "67_1271948680.36754" 
+    .const 'Sub' $P1053 = "67_1272455259.05437" 
     capture_lex $P1053
-    .const 'Sub' $P1036 = "66_1271948680.36754" 
+    .const 'Sub' $P1036 = "66_1272455259.05437" 
     capture_lex $P1036
-    .const 'Sub' $P1026 = "65_1271948680.36754" 
+    .const 'Sub' $P1026 = "65_1272455259.05437" 
     capture_lex $P1026
-    .const 'Sub' $P1016 = "64_1271948680.36754" 
+    .const 'Sub' $P1016 = "64_1272455259.05437" 
     capture_lex $P1016
-    .const 'Sub' $P1006 = "63_1271948680.36754" 
+    .const 'Sub' $P1006 = "63_1272455259.05437" 
     capture_lex $P1006
-    .const 'Sub' $P982 = "62_1271948680.36754" 
+    .const 'Sub' $P982 = "62_1272455259.05437" 
     capture_lex $P982
-    .const 'Sub' $P929 = "61_1271948680.36754" 
+    .const 'Sub' $P929 = "61_1272455259.05437" 
     capture_lex $P929
-    .const 'Sub' $P919 = "60_1271948680.36754" 
+    .const 'Sub' $P919 = "60_1272455259.05437" 
     capture_lex $P919
-    .const 'Sub' $P830 = "58_1271948680.36754" 
+    .const 'Sub' $P830 = "58_1272455259.05437" 
     capture_lex $P830
-    .const 'Sub' $P804 = "57_1271948680.36754" 
+    .const 'Sub' $P804 = "57_1272455259.05437" 
     capture_lex $P804
-    .const 'Sub' $P788 = "56_1271948680.36754" 
+    .const 'Sub' $P788 = "56_1272455259.05437" 
     capture_lex $P788
-    .const 'Sub' $P778 = "55_1271948680.36754" 
+    .const 'Sub' $P778 = "55_1272455259.05437" 
     capture_lex $P778
-    .const 'Sub' $P768 = "54_1271948680.36754" 
+    .const 'Sub' $P768 = "54_1272455259.05437" 
     capture_lex $P768
-    .const 'Sub' $P758 = "53_1271948680.36754" 
+    .const 'Sub' $P758 = "53_1272455259.05437" 
     capture_lex $P758
-    .const 'Sub' $P748 = "52_1271948680.36754" 
+    .const 'Sub' $P748 = "52_1272455259.05437" 
     capture_lex $P748
-    .const 'Sub' $P738 = "51_1271948680.36754" 
+    .const 'Sub' $P738 = "51_1272455259.05437" 
     capture_lex $P738
-    .const 'Sub' $P728 = "50_1271948680.36754" 
+    .const 'Sub' $P728 = "50_1272455259.05437" 
     capture_lex $P728
-    .const 'Sub' $P718 = "49_1271948680.36754" 
+    .const 'Sub' $P718 = "49_1272455259.05437" 
     capture_lex $P718
-    .const 'Sub' $P708 = "48_1271948680.36754" 
+    .const 'Sub' $P708 = "48_1272455259.05437" 
     capture_lex $P708
-    .const 'Sub' $P698 = "47_1271948680.36754" 
+    .const 'Sub' $P698 = "47_1272455259.05437" 
     capture_lex $P698
-    .const 'Sub' $P688 = "46_1271948680.36754" 
+    .const 'Sub' $P688 = "46_1272455259.05437" 
     capture_lex $P688
-    .const 'Sub' $P678 = "45_1271948680.36754" 
+    .const 'Sub' $P678 = "45_1272455259.05437" 
     capture_lex $P678
-    .const 'Sub' $P668 = "44_1271948680.36754" 
+    .const 'Sub' $P668 = "44_1272455259.05437" 
     capture_lex $P668
-    .const 'Sub' $P658 = "43_1271948680.36754" 
+    .const 'Sub' $P658 = "43_1272455259.05437" 
     capture_lex $P658
-    .const 'Sub' $P640 = "42_1271948680.36754" 
+    .const 'Sub' $P640 = "42_1272455259.05437" 
     capture_lex $P640
-    .const 'Sub' $P605 = "41_1271948680.36754" 
+    .const 'Sub' $P605 = "41_1272455259.05437" 
     capture_lex $P605
-    .const 'Sub' $P589 = "40_1271948680.36754" 
+    .const 'Sub' $P589 = "40_1272455259.05437" 
     capture_lex $P589
-    .const 'Sub' $P568 = "39_1271948680.36754" 
+    .const 'Sub' $P568 = "39_1272455259.05437" 
     capture_lex $P568
-    .const 'Sub' $P548 = "38_1271948680.36754" 
+    .const 'Sub' $P548 = "38_1272455259.05437" 
     capture_lex $P548
-    .const 'Sub' $P535 = "37_1271948680.36754" 
+    .const 'Sub' $P535 = "37_1272455259.05437" 
     capture_lex $P535
-    .const 'Sub' $P509 = "36_1271948680.36754" 
+    .const 'Sub' $P509 = "36_1272455259.05437" 
     capture_lex $P509
-    .const 'Sub' $P473 = "35_1271948680.36754" 
+    .const 'Sub' $P473 = "35_1272455259.05437" 
     capture_lex $P473
-    .const 'Sub' $P456 = "34_1271948680.36754" 
+    .const 'Sub' $P456 = "34_1272455259.05437" 
     capture_lex $P456
-    .const 'Sub' $P442 = "33_1271948680.36754" 
+    .const 'Sub' $P442 = "33_1272455259.05437" 
     capture_lex $P442
-    .const 'Sub' $P389 = "31_1271948680.36754" 
+    .const 'Sub' $P389 = "31_1272455259.05437" 
     capture_lex $P389
-    .const 'Sub' $P376 = "30_1271948680.36754" 
+    .const 'Sub' $P376 = "30_1272455259.05437" 
     capture_lex $P376
-    .const 'Sub' $P357 = "29_1271948680.36754" 
+    .const 'Sub' $P357 = "29_1272455259.05437" 
     capture_lex $P357
-    .const 'Sub' $P347 = "28_1271948680.36754" 
+    .const 'Sub' $P347 = "28_1272455259.05437" 
     capture_lex $P347
-    .const 'Sub' $P337 = "27_1271948680.36754" 
+    .const 'Sub' $P337 = "27_1272455259.05437" 
     capture_lex $P337
-    .const 'Sub' $P321 = "26_1271948680.36754" 
+    .const 'Sub' $P321 = "26_1272455259.05437" 
     capture_lex $P321
-    .const 'Sub' $P261 = "24_1271948680.36754" 
+    .const 'Sub' $P261 = "24_1272455259.05437" 
     capture_lex $P261
-    .const 'Sub' $P212 = "22_1271948680.36754" 
+    .const 'Sub' $P212 = "22_1272455259.05437" 
     capture_lex $P212
-    .const 'Sub' $P193 = "21_1271948680.36754" 
+    .const 'Sub' $P193 = "21_1272455259.05437" 
     capture_lex $P193
-    .const 'Sub' $P160 = "20_1271948680.36754" 
+    .const 'Sub' $P160 = "20_1272455259.05437" 
     capture_lex $P160
-    .const 'Sub' $P150 = "19_1271948680.36754" 
+    .const 'Sub' $P150 = "19_1272455259.05437" 
     capture_lex $P150
-    .const 'Sub' $P96 = "18_1271948680.36754" 
+    .const 'Sub' $P96 = "18_1272455259.05437" 
     capture_lex $P96
-    .const 'Sub' $P81 = "17_1271948680.36754" 
+    .const 'Sub' $P81 = "17_1272455259.05437" 
     capture_lex $P81
-    .const 'Sub' $P61 = "16_1271948680.36754" 
+    .const 'Sub' $P61 = "16_1272455259.05437" 
     capture_lex $P61
-    .const 'Sub' $P26 = "13_1271948680.36754" 
+    .const 'Sub' $P26 = "13_1272455259.05437" 
     capture_lex $P26
-    .const 'Sub' $P16 = "12_1271948680.36754" 
+    .const 'Sub' $P16 = "12_1272455259.05437" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
     unless_null $P15, vivify_130
@@ -16105,23 +16105,23 @@
     set_global "@BLOCK", $P15
   vivify_130:
 .annotate "line", 9
-    .const 'Sub' $P16 = "12_1271948680.36754" 
+    .const 'Sub' $P16 = "12_1272455259.05437" 
     capture_lex $P16
     .lex "xblock_immediate", $P16
 .annotate "line", 14
-    .const 'Sub' $P26 = "13_1271948680.36754" 
+    .const 'Sub' $P26 = "13_1272455259.05437" 
     capture_lex $P26
     .lex "block_immediate", $P26
 .annotate "line", 24
-    .const 'Sub' $P61 = "16_1271948680.36754" 
+    .const 'Sub' $P61 = "16_1272455259.05437" 
     capture_lex $P61
     .lex "vivitype", $P61
 .annotate "line", 43
-    .const 'Sub' $P81 = "17_1271948680.36754" 
+    .const 'Sub' $P81 = "17_1272455259.05437" 
     capture_lex $P81
     .lex "colonpair_str", $P81
 .annotate "line", 190
-    .const 'Sub' $P96 = "18_1271948680.36754" 
+    .const 'Sub' $P96 = "18_1272455259.05437" 
     capture_lex $P96
     .lex "push_block_handler", $P96
 .annotate "line", 3
@@ -16144,13 +16144,13 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post128") :outer("11_1271948680.36754")
+.sub "" :load :init :subid("post128") :outer("11_1272455259.05437")
 .annotate "line", 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate "line", 5
-    .const 'Sub' $P2171 = "126_1271948680.36754" 
+    .const 'Sub' $P2171 = "126_1272455259.05437" 
     capture_lex $P2171
     $P2171()
     $P2174 = get_root_global ["parrot"], "P6metaclass"
@@ -16159,7 +16159,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2170"  :anon :subid("126_1271948680.36754") :outer("11_1271948680.36754")
+.sub "_block2170"  :anon :subid("126_1272455259.05437") :outer("11_1272455259.05437")
 .annotate "line", 6
     get_global $P2172, "@BLOCK"
     unless_null $P2172, vivify_129
@@ -16174,12 +16174,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock_immediate"  :subid("12_1271948680.36754") :outer("11_1271948680.36754")
+.sub "xblock_immediate"  :subid("12_1272455259.05437") :outer("11_1272455259.05437")
     .param pmc param_19
 .annotate "line", 9
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
-    $P18."handle_types"(58)
+    $P18."handle_types"(57)
     push_eh $P18
     .lex "$xblock", param_19
 .annotate "line", 10
@@ -16210,14 +16210,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "block_immediate"  :subid("13_1271948680.36754") :outer("11_1271948680.36754")
+.sub "block_immediate"  :subid("13_1272455259.05437") :outer("11_1272455259.05437")
     .param pmc param_29
 .annotate "line", 14
-    .const 'Sub' $P39 = "14_1271948680.36754" 
+    .const 'Sub' $P39 = "14_1272455259.05437" 
     capture_lex $P39
     new $P28, 'ExceptionHandler'
     set_addr $P28, control_27
-    $P28."handle_types"(58)
+    $P28."handle_types"(57)
     push_eh $P28
     .lex "$block", param_29
 .annotate "line", 15
@@ -16235,7 +16235,7 @@
     set $P32, $P37
   unless_33_end:
     if $P32, unless_31_end
-    .const 'Sub' $P39 = "14_1271948680.36754" 
+    .const 'Sub' $P39 = "14_1272455259.05437" 
     capture_lex $P39
     $P39()
   unless_31_end:
@@ -16251,9 +16251,9 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block38"  :anon :subid("14_1271948680.36754") :outer("13_1271948680.36754")
+.sub "_block38"  :anon :subid("14_1272455259.05437") :outer("13_1272455259.05437")
 .annotate "line", 16
-    .const 'Sub' $P50 = "15_1271948680.36754" 
+    .const 'Sub' $P50 = "15_1272455259.05437" 
     capture_lex $P50
 .annotate "line", 17
     new $P40, "Undef"
@@ -16270,13 +16270,13 @@
     iter $P44, $P46
     new $P56, 'ExceptionHandler'
     set_addr $P56, loop55_handler
-    $P56."handle_types"(65, 67, 66)
+    $P56."handle_types"(64, 66, 65)
     push_eh $P56
   loop55_test:
     unless $P44, loop55_done
     shift $P48, $P44
   loop55_redo:
-    .const 'Sub' $P50 = "15_1271948680.36754" 
+    .const 'Sub' $P50 = "15_1272455259.05437" 
     capture_lex $P50
     $P50($P48)
   loop55_next:
@@ -16285,8 +16285,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P57, exception, 'type'
-    eq $P57, 65, loop55_next
-    eq $P57, 67, loop55_redo
+    eq $P57, 64, loop55_next
+    eq $P57, 66, loop55_redo
   loop55_done:
     pop_eh 
   for_undef_134:
@@ -16299,7 +16299,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block49"  :anon :subid("15_1271948680.36754") :outer("14_1271948680.36754")
+.sub "_block49"  :anon :subid("15_1272455259.05437") :outer("14_1272455259.05437")
     .param pmc param_51
 .annotate "line", 18
     .lex "$_", param_51
@@ -16311,12 +16311,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "vivitype"  :subid("16_1271948680.36754") :outer("11_1271948680.36754")
+.sub "vivitype"  :subid("16_1272455259.05437") :outer("11_1272455259.05437")
     .param pmc param_64
 .annotate "line", 24
     new $P63, 'ExceptionHandler'
     set_addr $P63, control_62
-    $P63."handle_types"(58)
+    $P63."handle_types"(57)
     push_eh $P63
     .lex "$sigil", param_64
 .annotate "line", 25
@@ -16359,12 +16359,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair_str"  :subid("17_1271948680.36754") :outer("11_1271948680.36754")
+.sub "colonpair_str"  :subid("17_1272455259.05437") :outer("11_1272455259.05437")
     .param pmc param_84
 .annotate "line", 43
     new $P83, 'ExceptionHandler'
     set_addr $P83, control_82
-    $P83."handle_types"(58)
+    $P83."handle_types"(57)
     push_eh $P83
     .lex "$ast", param_84
 .annotate "line", 44
@@ -16397,13 +16397,13 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "push_block_handler"  :subid("18_1271948680.36754") :outer("11_1271948680.36754")
+.sub "push_block_handler"  :subid("18_1272455259.05437") :outer("11_1272455259.05437")
     .param pmc param_99
     .param pmc param_100
 .annotate "line", 190
     new $P98, 'ExceptionHandler'
     set_addr $P98, control_97
-    $P98."handle_types"(58)
+    $P98."handle_types"(57)
     push_eh $P98
     .lex "$/", param_99
     .lex "$block", param_100
@@ -16514,12 +16514,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "TOP"  :subid("19_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "TOP"  :subid("19_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_153
 .annotate "line", 33
     new $P152, 'ExceptionHandler'
     set_addr $P152, control_151
-    $P152."handle_types"(58)
+    $P152."handle_types"(57)
     push_eh $P152
     .lex "self", self
     .lex "$/", param_153
@@ -16544,12 +16544,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "deflongname"  :subid("20_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "deflongname"  :subid("20_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_163
 .annotate "line", 35
     new $P162, 'ExceptionHandler'
     set_addr $P162, control_161
-    $P162."handle_types"(58)
+    $P162."handle_types"(57)
     push_eh $P162
     .lex "self", self
     .lex "$/", param_163
@@ -16633,12 +16633,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "comp_unit"  :subid("21_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "comp_unit"  :subid("21_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_196
 .annotate "line", 49
     new $P195, 'ExceptionHandler'
     set_addr $P195, control_194
-    $P195."handle_types"(58)
+    $P195."handle_types"(57)
     push_eh $P195
     .lex "self", self
     .lex "$/", param_196
@@ -16686,14 +16686,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statementlist"  :subid("22_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statementlist"  :subid("22_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_215
 .annotate "line", 57
-    .const 'Sub' $P229 = "23_1271948680.36754" 
+    .const 'Sub' $P229 = "23_1272455259.05437" 
     capture_lex $P229
     new $P214, 'ExceptionHandler'
     set_addr $P214, control_213
-    $P214."handle_types"(58)
+    $P214."handle_types"(57)
     push_eh $P214
     .lex "self", self
     .lex "$/", param_215
@@ -16728,13 +16728,13 @@
     iter $P223, $P225
     new $P255, 'ExceptionHandler'
     set_addr $P255, loop254_handler
-    $P255."handle_types"(65, 67, 66)
+    $P255."handle_types"(64, 66, 65)
     push_eh $P255
   loop254_test:
     unless $P223, loop254_done
     shift $P227, $P223
   loop254_redo:
-    .const 'Sub' $P229 = "23_1271948680.36754" 
+    .const 'Sub' $P229 = "23_1272455259.05437" 
     capture_lex $P229
     $P229($P227)
   loop254_next:
@@ -16743,8 +16743,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P256, exception, 'type'
-    eq $P256, 65, loop254_next
-    eq $P256, 67, loop254_redo
+    eq $P256, 64, loop254_next
+    eq $P256, 66, loop254_redo
   loop254_done:
     pop_eh 
   for_undef_159:
@@ -16764,7 +16764,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block228"  :anon :subid("23_1271948680.36754") :outer("22_1271948680.36754")
+.sub "_block228"  :anon :subid("23_1272455259.05437") :outer("22_1272455259.05437")
     .param pmc param_231
 .annotate "line", 61
     new $P230, "Undef"
@@ -16824,16 +16824,16 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement"  :subid("24_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement"  :subid("24_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_264
     .param pmc param_265 :optional
     .param int has_param_265 :opt_flag
 .annotate "line", 72
-    .const 'Sub' $P273 = "25_1271948680.36754" 
+    .const 'Sub' $P273 = "25_1272455259.05437" 
     capture_lex $P273
     new $P263, 'ExceptionHandler'
     set_addr $P263, control_262
-    $P263."handle_types"(58)
+    $P263."handle_types"(57)
     push_eh $P263
     .lex "self", self
     .lex "$/", param_264
@@ -16888,7 +16888,7 @@
     goto if_269_end
   if_269:
 .annotate "line", 74
-    .const 'Sub' $P273 = "25_1271948680.36754" 
+    .const 'Sub' $P273 = "25_1272455259.05437" 
     capture_lex $P273
     $P273()
   if_269_end:
@@ -16907,7 +16907,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block272"  :anon :subid("25_1271948680.36754") :outer("24_1271948680.36754")
+.sub "_block272"  :anon :subid("25_1272455259.05437") :outer("24_1272455259.05437")
 .annotate "line", 75
     new $P274, "Undef"
     .lex "$mc", $P274
@@ -17020,12 +17020,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock"  :subid("26_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "xblock"  :subid("26_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_324
 .annotate "line", 90
     new $P323, 'ExceptionHandler'
     set_addr $P323, control_322
-    $P323."handle_types"(58)
+    $P323."handle_types"(57)
     push_eh $P323
     .lex "self", self
     .lex "$/", param_324
@@ -17064,12 +17064,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "pblock"  :subid("27_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "pblock"  :subid("27_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_340
 .annotate "line", 94
     new $P339, 'ExceptionHandler'
     set_addr $P339, control_338
-    $P339."handle_types"(58)
+    $P339."handle_types"(57)
     push_eh $P339
     .lex "self", self
     .lex "$/", param_340
@@ -17096,12 +17096,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "block"  :subid("28_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "block"  :subid("28_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_350
 .annotate "line", 98
     new $P349, 'ExceptionHandler'
     set_addr $P349, control_348
-    $P349."handle_types"(58)
+    $P349."handle_types"(57)
     push_eh $P349
     .lex "self", self
     .lex "$/", param_350
@@ -17128,12 +17128,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "blockoid"  :subid("29_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "blockoid"  :subid("29_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_360
 .annotate "line", 102
     new $P359, 'ExceptionHandler'
     set_addr $P359, control_358
-    $P359."handle_types"(58)
+    $P359."handle_types"(57)
     push_eh $P359
     .lex "self", self
     .lex "$/", param_360
@@ -17181,12 +17181,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "newpad"  :subid("30_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "newpad"  :subid("30_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_379
 .annotate "line", 110
     new $P378, 'ExceptionHandler'
     set_addr $P378, control_377
-    $P378."handle_types"(58)
+    $P378."handle_types"(57)
     push_eh $P378
     .lex "self", self
     .lex "$/", param_379
@@ -17216,14 +17216,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>"  :subid("31_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<if>"  :subid("31_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_392
 .annotate "line", 117
-    .const 'Sub' $P420 = "32_1271948680.36754" 
+    .const 'Sub' $P420 = "32_1272455259.05437" 
     capture_lex $P420
     new $P391, 'ExceptionHandler'
     set_addr $P391, control_390
-    $P391."handle_types"(58)
+    $P391."handle_types"(57)
     push_eh $P391
     .lex "self", self
     .lex "$/", param_392
@@ -17296,7 +17296,7 @@
 .annotate "line", 124
     new $P436, 'ExceptionHandler'
     set_addr $P436, loop435_handler
-    $P436."handle_types"(65, 67, 66)
+    $P436."handle_types"(64, 66, 65)
     push_eh $P436
   loop435_test:
     find_lex $P416, "$count"
@@ -17304,7 +17304,7 @@
     isgt $I418, $N417, 0.0
     unless $I418, loop435_done
   loop435_redo:
-    .const 'Sub' $P420 = "32_1271948680.36754" 
+    .const 'Sub' $P420 = "32_1272455259.05437" 
     capture_lex $P420
     $P420()
   loop435_next:
@@ -17313,8 +17313,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P437, exception, 'type'
-    eq $P437, 65, loop435_next
-    eq $P437, 67, loop435_redo
+    eq $P437, 64, loop435_next
+    eq $P437, 66, loop435_redo
   loop435_done:
     pop_eh 
 .annotate "line", 130
@@ -17332,7 +17332,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block419"  :anon :subid("32_1271948680.36754") :outer("31_1271948680.36754")
+.sub "_block419"  :anon :subid("32_1272455259.05437") :outer("31_1272455259.05437")
 .annotate "line", 126
     new $P421, "Undef"
     .lex "$else", $P421
@@ -17371,12 +17371,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>"  :subid("33_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<unless>"  :subid("33_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_445
 .annotate "line", 133
     new $P444, 'ExceptionHandler'
     set_addr $P444, control_443
-    $P444."handle_types"(58)
+    $P444."handle_types"(57)
     push_eh $P444
     .lex "self", self
     .lex "$/", param_445
@@ -17412,12 +17412,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>"  :subid("34_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<while>"  :subid("34_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_459
 .annotate "line", 139
     new $P458, 'ExceptionHandler'
     set_addr $P458, control_457
-    $P458."handle_types"(58)
+    $P458."handle_types"(57)
     push_eh $P458
     .lex "self", self
     .lex "$/", param_459
@@ -17462,12 +17462,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>"  :subid("35_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<repeat>"  :subid("35_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_476
 .annotate "line", 145
     new $P475, 'ExceptionHandler'
     set_addr $P475, control_474
-    $P475."handle_types"(58)
+    $P475."handle_types"(57)
     push_eh $P475
     .lex "self", self
     .lex "$/", param_476
@@ -17562,12 +17562,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>"  :subid("36_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<for>"  :subid("36_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_512
 .annotate "line", 159
     new $P511, 'ExceptionHandler'
     set_addr $P511, control_510
-    $P511."handle_types"(58)
+    $P511."handle_types"(57)
     push_eh $P511
     .lex "self", self
     .lex "$/", param_512
@@ -17642,12 +17642,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>"  :subid("37_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<return>"  :subid("37_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_538
 .annotate "line", 172
     new $P537, 'ExceptionHandler'
     set_addr $P537, control_536
-    $P537."handle_types"(58)
+    $P537."handle_types"(57)
     push_eh $P537
     .lex "self", self
     .lex "$/", param_538
@@ -17677,12 +17677,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>"  :subid("38_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<CATCH>"  :subid("38_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_551
 .annotate "line", 176
     new $P550, 'ExceptionHandler'
     set_addr $P550, control_549
-    $P550."handle_types"(58)
+    $P550."handle_types"(57)
     push_eh $P550
     .lex "self", self
     .lex "$/", param_551
@@ -17735,12 +17735,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>"  :subid("39_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_control:sym<CONTROL>"  :subid("39_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_571
 .annotate "line", 183
     new $P570, 'ExceptionHandler'
     set_addr $P570, control_569
-    $P570."handle_types"(58)
+    $P570."handle_types"(57)
     push_eh $P570
     .lex "self", self
     .lex "$/", param_571
@@ -17793,12 +17793,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>"  :subid("40_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_prefix:sym<INIT>"  :subid("40_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_592
 .annotate "line", 227
     new $P591, 'ExceptionHandler'
     set_addr $P591, control_590
-    $P591."handle_types"(58)
+    $P591."handle_types"(57)
     push_eh $P591
     .lex "self", self
     .lex "$/", param_592
@@ -17839,12 +17839,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>"  :subid("41_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_prefix:sym<try>"  :subid("41_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_608
 .annotate "line", 232
     new $P607, 'ExceptionHandler'
     set_addr $P607, control_606
-    $P607."handle_types"(58)
+    $P607."handle_types"(57)
     push_eh $P607
     .lex "self", self
     .lex "$/", param_608
@@ -17916,12 +17916,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "blorst"  :subid("42_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "blorst"  :subid("42_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_643
 .annotate "line", 255
     new $P642, 'ExceptionHandler'
     set_addr $P642, control_641
-    $P642."handle_types"(58)
+    $P642."handle_types"(57)
     push_eh $P642
     .lex "self", self
     .lex "$/", param_643
@@ -17975,12 +17975,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>"  :subid("43_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_mod_cond:sym<if>"  :subid("43_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_661
 .annotate "line", 263
     new $P660, 'ExceptionHandler'
     set_addr $P660, control_659
-    $P660."handle_types"(58)
+    $P660."handle_types"(57)
     push_eh $P660
     .lex "self", self
     .lex "$/", param_661
@@ -18005,12 +18005,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>"  :subid("44_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_mod_cond:sym<unless>"  :subid("44_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_671
 .annotate "line", 264
     new $P670, 'ExceptionHandler'
     set_addr $P670, control_669
-    $P670."handle_types"(58)
+    $P670."handle_types"(57)
     push_eh $P670
     .lex "self", self
     .lex "$/", param_671
@@ -18035,12 +18035,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>"  :subid("45_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_mod_loop:sym<while>"  :subid("45_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_681
 .annotate "line", 266
     new $P680, 'ExceptionHandler'
     set_addr $P680, control_679
-    $P680."handle_types"(58)
+    $P680."handle_types"(57)
     push_eh $P680
     .lex "self", self
     .lex "$/", param_681
@@ -18065,12 +18065,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>"  :subid("46_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "statement_mod_loop:sym<until>"  :subid("46_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_691
 .annotate "line", 267
     new $P690, 'ExceptionHandler'
     set_addr $P690, control_689
-    $P690."handle_types"(58)
+    $P690."handle_types"(57)
     push_eh $P690
     .lex "self", self
     .lex "$/", param_691
@@ -18095,12 +18095,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>"  :subid("47_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<fatarrow>"  :subid("47_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_701
 .annotate "line", 271
     new $P700, 'ExceptionHandler'
     set_addr $P700, control_699
-    $P700."handle_types"(58)
+    $P700."handle_types"(57)
     push_eh $P700
     .lex "self", self
     .lex "$/", param_701
@@ -18125,12 +18125,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>"  :subid("48_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<colonpair>"  :subid("48_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_711
 .annotate "line", 272
     new $P710, 'ExceptionHandler'
     set_addr $P710, control_709
-    $P710."handle_types"(58)
+    $P710."handle_types"(57)
     push_eh $P710
     .lex "self", self
     .lex "$/", param_711
@@ -18155,12 +18155,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<variable>"  :subid("49_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<variable>"  :subid("49_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_721
 .annotate "line", 273
     new $P720, 'ExceptionHandler'
     set_addr $P720, control_719
-    $P720."handle_types"(58)
+    $P720."handle_types"(57)
     push_eh $P720
     .lex "self", self
     .lex "$/", param_721
@@ -18185,12 +18185,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>"  :subid("50_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<package_declarator>"  :subid("50_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_731
 .annotate "line", 274
     new $P730, 'ExceptionHandler'
     set_addr $P730, control_729
-    $P730."handle_types"(58)
+    $P730."handle_types"(57)
     push_eh $P730
     .lex "self", self
     .lex "$/", param_731
@@ -18215,12 +18215,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>"  :subid("51_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<scope_declarator>"  :subid("51_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_741
 .annotate "line", 275
     new $P740, 'ExceptionHandler'
     set_addr $P740, control_739
-    $P740."handle_types"(58)
+    $P740."handle_types"(57)
     push_eh $P740
     .lex "self", self
     .lex "$/", param_741
@@ -18245,12 +18245,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>"  :subid("52_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<routine_declarator>"  :subid("52_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_751
 .annotate "line", 276
     new $P750, 'ExceptionHandler'
     set_addr $P750, control_749
-    $P750."handle_types"(58)
+    $P750."handle_types"(57)
     push_eh $P750
     .lex "self", self
     .lex "$/", param_751
@@ -18275,12 +18275,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>"  :subid("53_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<regex_declarator>"  :subid("53_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_761
 .annotate "line", 277
     new $P760, 'ExceptionHandler'
     set_addr $P760, control_759
-    $P760."handle_types"(58)
+    $P760."handle_types"(57)
     push_eh $P760
     .lex "self", self
     .lex "$/", param_761
@@ -18305,12 +18305,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>"  :subid("54_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<statement_prefix>"  :subid("54_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_771
 .annotate "line", 278
     new $P770, 'ExceptionHandler'
     set_addr $P770, control_769
-    $P770."handle_types"(58)
+    $P770."handle_types"(57)
     push_eh $P770
     .lex "self", self
     .lex "$/", param_771
@@ -18335,12 +18335,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>"  :subid("55_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<lambda>"  :subid("55_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_781
 .annotate "line", 279
     new $P780, 'ExceptionHandler'
     set_addr $P780, control_779
-    $P780."handle_types"(58)
+    $P780."handle_types"(57)
     push_eh $P780
     .lex "self", self
     .lex "$/", param_781
@@ -18365,12 +18365,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "fatarrow"  :subid("56_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "fatarrow"  :subid("56_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_791
 .annotate "line", 281
     new $P790, 'ExceptionHandler'
     set_addr $P790, control_789
-    $P790."handle_types"(58)
+    $P790."handle_types"(57)
     push_eh $P790
     .lex "self", self
     .lex "$/", param_791
@@ -18414,12 +18414,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair"  :subid("57_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "colonpair"  :subid("57_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_807
 .annotate "line", 287
     new $P806, 'ExceptionHandler'
     set_addr $P806, control_805
-    $P806."handle_types"(58)
+    $P806."handle_types"(57)
     push_eh $P806
     .lex "self", self
     .lex "$/", param_807
@@ -18495,14 +18495,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable"  :subid("58_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "variable"  :subid("58_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_833
 .annotate "line", 295
-    .const 'Sub' $P846 = "59_1271948680.36754" 
+    .const 'Sub' $P846 = "59_1272455259.05437" 
     capture_lex $P846
     new $P832, 'ExceptionHandler'
     set_addr $P832, control_831
-    $P832."handle_types"(58)
+    $P832."handle_types"(57)
     push_eh $P832
     .lex "self", self
     .lex "$/", param_833
@@ -18522,7 +18522,7 @@
   vivify_297:
     if $P838, if_836
 .annotate "line", 301
-    .const 'Sub' $P846 = "59_1271948680.36754" 
+    .const 'Sub' $P846 = "59_1272455259.05437" 
     capture_lex $P846
     $P846()
     goto if_836_end
@@ -18559,7 +18559,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block845"  :anon :subid("59_1271948680.36754") :outer("58_1271948680.36754")
+.sub "_block845"  :anon :subid("59_1272455259.05437") :outer("58_1272455259.05437")
 .annotate "line", 302
     $P847 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P847
@@ -18728,12 +18728,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>"  :subid("60_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "package_declarator:sym<module>"  :subid("60_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_922
 .annotate "line", 333
     new $P921, 'ExceptionHandler'
     set_addr $P921, control_920
-    $P921."handle_types"(58)
+    $P921."handle_types"(57)
     push_eh $P921
     .lex "self", self
     .lex "$/", param_922
@@ -18758,12 +18758,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>"  :subid("61_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "package_declarator:sym<class>"  :subid("61_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_932
 .annotate "line", 334
     new $P931, 'ExceptionHandler'
     set_addr $P931, control_930
-    $P931."handle_types"(58)
+    $P931."handle_types"(57)
     push_eh $P931
     .lex "self", self
     .lex "$/", param_932
@@ -18915,12 +18915,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_def"  :subid("62_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "package_def"  :subid("62_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_985
 .annotate "line", 357
     new $P984, 'ExceptionHandler'
     set_addr $P984, control_983
-    $P984."handle_types"(58)
+    $P984."handle_types"(57)
     push_eh $P984
     .lex "self", self
     .lex "$/", param_985
@@ -18993,12 +18993,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>"  :subid("63_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "scope_declarator:sym<my>"  :subid("63_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1009
 .annotate "line", 364
     new $P1008, 'ExceptionHandler'
     set_addr $P1008, control_1007
-    $P1008."handle_types"(58)
+    $P1008."handle_types"(57)
     push_eh $P1008
     .lex "self", self
     .lex "$/", param_1009
@@ -19023,12 +19023,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>"  :subid("64_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "scope_declarator:sym<our>"  :subid("64_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1019
 .annotate "line", 365
     new $P1018, 'ExceptionHandler'
     set_addr $P1018, control_1017
-    $P1018."handle_types"(58)
+    $P1018."handle_types"(57)
     push_eh $P1018
     .lex "self", self
     .lex "$/", param_1019
@@ -19053,12 +19053,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>"  :subid("65_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "scope_declarator:sym<has>"  :subid("65_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1029
 .annotate "line", 366
     new $P1028, 'ExceptionHandler'
     set_addr $P1028, control_1027
-    $P1028."handle_types"(58)
+    $P1028."handle_types"(57)
     push_eh $P1028
     .lex "self", self
     .lex "$/", param_1029
@@ -19083,12 +19083,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scoped"  :subid("66_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "scoped"  :subid("66_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1039
 .annotate "line", 368
     new $P1038, 'ExceptionHandler'
     set_addr $P1038, control_1037
-    $P1038."handle_types"(58)
+    $P1038."handle_types"(57)
     push_eh $P1038
     .lex "self", self
     .lex "$/", param_1039
@@ -19141,14 +19141,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable_declarator"  :subid("67_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "variable_declarator"  :subid("67_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1056
 .annotate "line", 374
-    .const 'Sub' $P1096 = "68_1271948680.36754" 
+    .const 'Sub' $P1096 = "68_1272455259.05437" 
     capture_lex $P1096
     new $P1055, 'ExceptionHandler'
     set_addr $P1055, control_1054
-    $P1055."handle_types"(58)
+    $P1055."handle_types"(57)
     push_eh $P1055
     .lex "self", self
     .lex "$/", param_1056
@@ -19226,7 +19226,7 @@
     iseq $I1081, $S1080, "has"
     if $I1081, if_1078
 .annotate "line", 391
-    .const 'Sub' $P1096 = "68_1271948680.36754" 
+    .const 'Sub' $P1096 = "68_1272455259.05437" 
     capture_lex $P1096
     $P1096()
     goto if_1078_end
@@ -19286,7 +19286,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1095"  :anon :subid("68_1271948680.36754") :outer("67_1271948680.36754")
+.sub "_block1095"  :anon :subid("68_1272455259.05437") :outer("67_1272455259.05437")
 .annotate "line", 392
     new $P1097, "Undef"
     .lex "$scope", $P1097
@@ -19347,12 +19347,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>"  :subid("69_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "routine_declarator:sym<sub>"  :subid("69_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1127
 .annotate "line", 402
     new $P1126, 'ExceptionHandler'
     set_addr $P1126, control_1125
-    $P1126."handle_types"(58)
+    $P1126."handle_types"(57)
     push_eh $P1126
     .lex "self", self
     .lex "$/", param_1127
@@ -19377,12 +19377,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>"  :subid("70_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "routine_declarator:sym<method>"  :subid("70_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1137
 .annotate "line", 403
     new $P1136, 'ExceptionHandler'
     set_addr $P1136, control_1135
-    $P1136."handle_types"(58)
+    $P1136."handle_types"(57)
     push_eh $P1136
     .lex "self", self
     .lex "$/", param_1137
@@ -19407,14 +19407,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_def"  :subid("71_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "routine_def"  :subid("71_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1147
 .annotate "line", 405
-    .const 'Sub' $P1158 = "72_1271948680.36754" 
+    .const 'Sub' $P1158 = "72_1272455259.05437" 
     capture_lex $P1158
     new $P1146, 'ExceptionHandler'
     set_addr $P1146, control_1145
-    $P1146."handle_types"(58)
+    $P1146."handle_types"(57)
     push_eh $P1146
     .lex "self", self
     .lex "$/", param_1147
@@ -19447,7 +19447,7 @@
     new $P1156, "Undef"
   vivify_381:
     unless $P1156, if_1154_end
-    .const 'Sub' $P1158 = "72_1271948680.36754" 
+    .const 'Sub' $P1158 = "72_1272455259.05437" 
     capture_lex $P1158
     $P1158()
   if_1154_end:
@@ -19466,7 +19466,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1157"  :anon :subid("72_1271948680.36754") :outer("71_1271948680.36754")
+.sub "_block1157"  :anon :subid("72_1272455259.05437") :outer("71_1272455259.05437")
 .annotate "line", 410
     new $P1159, "Undef"
     .lex "$name", $P1159
@@ -19562,14 +19562,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "method_def"  :subid("73_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "method_def"  :subid("73_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1197
 .annotate "line", 423
-    .const 'Sub' $P1213 = "74_1271948680.36754" 
+    .const 'Sub' $P1213 = "74_1272455259.05437" 
     capture_lex $P1213
     new $P1196, 'ExceptionHandler'
     set_addr $P1196, control_1195
-    $P1196."handle_types"(58)
+    $P1196."handle_types"(57)
     push_eh $P1196
     .lex "self", self
     .lex "$/", param_1197
@@ -19617,7 +19617,7 @@
     new $P1211, "Undef"
   vivify_400:
     unless $P1211, if_1209_end
-    .const 'Sub' $P1213 = "74_1271948680.36754" 
+    .const 'Sub' $P1213 = "74_1272455259.05437" 
     capture_lex $P1213
     $P1213()
   if_1209_end:
@@ -19636,7 +19636,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1212"  :anon :subid("74_1271948680.36754") :outer("73_1271948680.36754")
+.sub "_block1212"  :anon :subid("74_1272455259.05437") :outer("73_1272455259.05437")
 .annotate "line", 430
     new $P1214, "Undef"
     .lex "$name", $P1214
@@ -19667,14 +19667,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "signature"  :subid("75_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "signature"  :subid("75_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1231
 .annotate "line", 437
-    .const 'Sub' $P1242 = "76_1271948680.36754" 
+    .const 'Sub' $P1242 = "76_1272455259.05437" 
     capture_lex $P1242
     new $P1230, 'ExceptionHandler'
     set_addr $P1230, control_1229
-    $P1230."handle_types"(58)
+    $P1230."handle_types"(57)
     push_eh $P1230
     .lex "self", self
     .lex "$/", param_1231
@@ -19708,13 +19708,13 @@
     iter $P1236, $P1238
     new $P1249, 'ExceptionHandler'
     set_addr $P1249, loop1248_handler
-    $P1249."handle_types"(65, 67, 66)
+    $P1249."handle_types"(64, 66, 65)
     push_eh $P1249
   loop1248_test:
     unless $P1236, loop1248_done
     shift $P1240, $P1236
   loop1248_redo:
-    .const 'Sub' $P1242 = "76_1271948680.36754" 
+    .const 'Sub' $P1242 = "76_1272455259.05437" 
     capture_lex $P1242
     $P1242($P1240)
   loop1248_next:
@@ -19723,8 +19723,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1250, exception, 'type'
-    eq $P1250, 65, loop1248_next
-    eq $P1250, 67, loop1248_redo
+    eq $P1250, 64, loop1248_next
+    eq $P1250, 66, loop1248_redo
   loop1248_done:
     pop_eh 
   for_undef_409:
@@ -19739,7 +19739,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1241"  :anon :subid("76_1271948680.36754") :outer("75_1271948680.36754")
+.sub "_block1241"  :anon :subid("76_1272455259.05437") :outer("75_1272455259.05437")
     .param pmc param_1243
 .annotate "line", 439
     .lex "$_", param_1243
@@ -19752,12 +19752,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "parameter"  :subid("77_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "parameter"  :subid("77_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1255
 .annotate "line", 442
     new $P1254, 'ExceptionHandler'
     set_addr $P1254, control_1253
-    $P1254."handle_types"(58)
+    $P1254."handle_types"(57)
     push_eh $P1254
     .lex "self", self
     .lex "$/", param_1255
@@ -19984,12 +19984,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "param_var"  :subid("78_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "param_var"  :subid("78_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1339
 .annotate "line", 474
     new $P1338, 'ExceptionHandler'
     set_addr $P1338, control_1337
-    $P1338."handle_types"(58)
+    $P1338."handle_types"(57)
     push_eh $P1338
     .lex "self", self
     .lex "$/", param_1339
@@ -20037,12 +20037,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "named_param"  :subid("79_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "named_param"  :subid("79_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1359
 .annotate "line", 482
     new $P1358, 'ExceptionHandler'
     set_addr $P1358, control_1357
-    $P1358."handle_types"(58)
+    $P1358."handle_types"(57)
     push_eh $P1358
     .lex "self", self
     .lex "$/", param_1359
@@ -20090,18 +20090,18 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "regex_declarator"  :subid("80_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "regex_declarator"  :subid("80_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1376
     .param pmc param_1377 :optional
     .param int has_param_1377 :opt_flag
 .annotate "line", 488
-    .const 'Sub' $P1447 = "82_1271948680.36754" 
+    .const 'Sub' $P1447 = "82_1272455259.05437" 
     capture_lex $P1447
-    .const 'Sub' $P1419 = "81_1271948680.36754" 
+    .const 'Sub' $P1419 = "81_1272455259.05437" 
     capture_lex $P1419
     new $P1375, 'ExceptionHandler'
     set_addr $P1375, control_1374
-    $P1375."handle_types"(58)
+    $P1375."handle_types"(57)
     push_eh $P1375
     .lex "self", self
     .lex "$/", param_1376
@@ -20155,13 +20155,13 @@
     iseq $I1417, $S1416, "open"
     if $I1417, if_1414
 .annotate "line", 534
-    .const 'Sub' $P1447 = "82_1271948680.36754" 
+    .const 'Sub' $P1447 = "82_1272455259.05437" 
     capture_lex $P1447
     $P1447()
     goto if_1414_end
   if_1414:
 .annotate "line", 521
-    .const 'Sub' $P1419 = "81_1271948680.36754" 
+    .const 'Sub' $P1419 = "81_1272455259.05437" 
     capture_lex $P1419
     $P1419()
   if_1414_end:
@@ -20218,7 +20218,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1446"  :anon :subid("82_1271948680.36754") :outer("80_1271948680.36754")
+.sub "_block1446"  :anon :subid("82_1272455259.05437") :outer("80_1272455259.05437")
 .annotate "line", 535
     new $P1448, "Undef"
     .lex "$regex", $P1448
@@ -20269,7 +20269,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1418"  :anon :subid("81_1271948680.36754") :outer("80_1271948680.36754")
+.sub "_block1418"  :anon :subid("81_1272455259.05437") :outer("80_1272455259.05437")
 .annotate "line", 522
     $P1420 = root_new ['parrot';'Hash']
     .lex "%h", $P1420
@@ -20356,7 +20356,7 @@
     $P1443."symbol"("$/", "lexical" :named("scope"))
 .annotate "line", 532
     new $P1444, "Exception"
-    set $P1444['type'], 58
+    set $P1444['type'], 57
     new $P1445, "Integer"
     assign $P1445, 0
     setattribute $P1444, 'payload', $P1445
@@ -20367,12 +20367,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "dotty"  :subid("83_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "dotty"  :subid("83_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1475
 .annotate "line", 552
     new $P1474, 'ExceptionHandler'
     set_addr $P1474, control_1473
-    $P1474."handle_types"(58)
+    $P1474."handle_types"(57)
     push_eh $P1474
     .lex "self", self
     .lex "$/", param_1475
@@ -20464,12 +20464,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<self>"  :subid("84_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<self>"  :subid("84_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1507
 .annotate "line", 561
     new $P1506, 'ExceptionHandler'
     set_addr $P1506, control_1505
-    $P1506."handle_types"(58)
+    $P1506."handle_types"(57)
     push_eh $P1506
     .lex "self", self
     .lex "$/", param_1507
@@ -20489,12 +20489,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>"  :subid("85_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<identifier>"  :subid("85_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1516
 .annotate "line", 565
     new $P1515, 'ExceptionHandler'
     set_addr $P1515, control_1514
-    $P1515."handle_types"(58)
+    $P1515."handle_types"(57)
     push_eh $P1515
     .lex "self", self
     .lex "$/", param_1516
@@ -20538,12 +20538,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<name>"  :subid("86_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<name>"  :subid("86_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1532
 .annotate "line", 571
     new $P1531, 'ExceptionHandler'
     set_addr $P1531, control_1530
-    $P1531."handle_types"(58)
+    $P1531."handle_types"(57)
     push_eh $P1531
     .lex "self", self
     .lex "$/", param_1532
@@ -20656,12 +20656,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>"  :subid("87_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<pir::op>"  :subid("87_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1574
 .annotate "line", 585
     new $P1573, 'ExceptionHandler'
     set_addr $P1573, control_1572
-    $P1573."handle_types"(58)
+    $P1573."handle_types"(57)
     push_eh $P1573
     .lex "self", self
     .lex "$/", param_1574
@@ -20747,12 +20747,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "args"  :subid("88_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "args"  :subid("88_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1603
 .annotate "line", 600
     new $P1602, 'ExceptionHandler'
     set_addr $P1602, control_1601
-    $P1602."handle_types"(58)
+    $P1602."handle_types"(57)
     push_eh $P1602
     .lex "self", self
     .lex "$/", param_1603
@@ -20777,14 +20777,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "arglist"  :subid("89_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "arglist"  :subid("89_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1613
 .annotate "line", 602
-    .const 'Sub' $P1624 = "90_1271948680.36754" 
+    .const 'Sub' $P1624 = "90_1272455259.05437" 
     capture_lex $P1624
     new $P1612, 'ExceptionHandler'
     set_addr $P1612, control_1611
-    $P1612."handle_types"(58)
+    $P1612."handle_types"(57)
     push_eh $P1612
     .lex "self", self
     .lex "$/", param_1613
@@ -20812,7 +20812,7 @@
     new $P1622, "Undef"
   vivify_499:
     unless $P1622, if_1620_end
-    .const 'Sub' $P1624 = "90_1271948680.36754" 
+    .const 'Sub' $P1624 = "90_1272455259.05437" 
     capture_lex $P1624
     $P1624()
   if_1620_end:
@@ -20830,7 +20830,7 @@
 .annotate "line", 613
     new $P1688, 'ExceptionHandler'
     set_addr $P1688, loop1687_handler
-    $P1688."handle_types"(65, 67, 66)
+    $P1688."handle_types"(64, 66, 65)
     push_eh $P1688
   loop1687_test:
     find_lex $P1661, "$i"
@@ -20901,8 +20901,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1689, exception, 'type'
-    eq $P1689, 65, loop1687_next
-    eq $P1689, 67, loop1687_redo
+    eq $P1689, 64, loop1687_next
+    eq $P1689, 66, loop1687_redo
   loop1687_done:
     pop_eh 
 .annotate "line", 620
@@ -20920,9 +20920,9 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1623"  :anon :subid("90_1271948680.36754") :outer("89_1271948680.36754")
+.sub "_block1623"  :anon :subid("90_1272455259.05437") :outer("89_1272455259.05437")
 .annotate "line", 604
-    .const 'Sub' $P1645 = "91_1271948680.36754" 
+    .const 'Sub' $P1645 = "91_1272455259.05437" 
     capture_lex $P1645
 .annotate "line", 605
     new $P1625, "Undef"
@@ -20969,13 +20969,13 @@
     iter $P1639, $P1641
     new $P1651, 'ExceptionHandler'
     set_addr $P1651, loop1650_handler
-    $P1651."handle_types"(65, 67, 66)
+    $P1651."handle_types"(64, 66, 65)
     push_eh $P1651
   loop1650_test:
     unless $P1639, loop1650_done
     shift $P1643, $P1639
   loop1650_redo:
-    .const 'Sub' $P1645 = "91_1271948680.36754" 
+    .const 'Sub' $P1645 = "91_1272455259.05437" 
     capture_lex $P1645
     $P1645($P1643)
   loop1650_next:
@@ -20984,8 +20984,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1652, exception, 'type'
-    eq $P1652, 65, loop1650_next
-    eq $P1652, 67, loop1650_redo
+    eq $P1652, 64, loop1650_next
+    eq $P1652, 66, loop1650_redo
   loop1650_done:
     pop_eh 
   for_undef_502:
@@ -20998,7 +20998,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1644"  :anon :subid("91_1271948680.36754") :outer("90_1271948680.36754")
+.sub "_block1644"  :anon :subid("91_1272455259.05437") :outer("90_1272455259.05437")
     .param pmc param_1646
 .annotate "line", 607
     .lex "$_", param_1646
@@ -21010,12 +21010,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<value>"  :subid("92_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "term:sym<value>"  :subid("92_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1697
 .annotate "line", 624
     new $P1696, 'ExceptionHandler'
     set_addr $P1696, control_1695
-    $P1696."handle_types"(58)
+    $P1696."handle_types"(57)
     push_eh $P1696
     .lex "self", self
     .lex "$/", param_1697
@@ -21040,12 +21040,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>"  :subid("93_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "circumfix:sym<( )>"  :subid("93_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1707
 .annotate "line", 626
     new $P1706, 'ExceptionHandler'
     set_addr $P1706, control_1705
-    $P1706."handle_types"(58)
+    $P1706."handle_types"(57)
     push_eh $P1706
     .lex "self", self
     .lex "$/", param_1707
@@ -21096,12 +21096,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>"  :subid("94_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "circumfix:sym<[ ]>"  :subid("94_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1725
 .annotate "line", 632
     new $P1724, 'ExceptionHandler'
     set_addr $P1724, control_1723
-    $P1724."handle_types"(58)
+    $P1724."handle_types"(57)
     push_eh $P1724
     .lex "self", self
     .lex "$/", param_1725
@@ -21172,12 +21172,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>"  :subid("95_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "circumfix:sym<ang>"  :subid("95_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1752
 .annotate "line", 647
     new $P1751, 'ExceptionHandler'
     set_addr $P1751, control_1750
-    $P1751."handle_types"(58)
+    $P1751."handle_types"(57)
     push_eh $P1751
     .lex "self", self
     .lex "$/", param_1752
@@ -21202,12 +21202,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("96_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("96_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1762
 .annotate "line", 648
     new $P1761, 'ExceptionHandler'
     set_addr $P1761, control_1760
-    $P1761."handle_types"(58)
+    $P1761."handle_types"(57)
     push_eh $P1761
     .lex "self", self
     .lex "$/", param_1762
@@ -21232,12 +21232,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>"  :subid("97_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "circumfix:sym<{ }>"  :subid("97_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1772
 .annotate "line", 650
     new $P1771, 'ExceptionHandler'
     set_addr $P1771, control_1770
-    $P1771."handle_types"(58)
+    $P1771."handle_types"(57)
     push_eh $P1771
     .lex "self", self
     .lex "$/", param_1772
@@ -21296,12 +21296,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>"  :subid("98_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "circumfix:sym<sigil>"  :subid("98_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1792
 .annotate "line", 656
     new $P1791, 'ExceptionHandler'
     set_addr $P1791, control_1790
-    $P1791."handle_types"(58)
+    $P1791."handle_types"(57)
     push_eh $P1791
     .lex "self", self
     .lex "$/", param_1792
@@ -21375,12 +21375,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "semilist"  :subid("99_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "semilist"  :subid("99_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1821
 .annotate "line", 663
     new $P1820, 'ExceptionHandler'
     set_addr $P1820, control_1819
-    $P1820."handle_types"(58)
+    $P1820."handle_types"(57)
     push_eh $P1820
     .lex "self", self
     .lex "$/", param_1821
@@ -21405,12 +21405,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>"  :subid("100_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "postcircumfix:sym<[ ]>"  :subid("100_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1831
 .annotate "line", 665
     new $P1830, 'ExceptionHandler'
     set_addr $P1830, control_1829
-    $P1830."handle_types"(58)
+    $P1830."handle_types"(57)
     push_eh $P1830
     .lex "self", self
     .lex "$/", param_1831
@@ -21442,12 +21442,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>"  :subid("101_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "postcircumfix:sym<{ }>"  :subid("101_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1844
 .annotate "line", 671
     new $P1843, 'ExceptionHandler'
     set_addr $P1843, control_1842
-    $P1843."handle_types"(58)
+    $P1843."handle_types"(57)
     push_eh $P1843
     .lex "self", self
     .lex "$/", param_1844
@@ -21479,12 +21479,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>"  :subid("102_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "postcircumfix:sym<ang>"  :subid("102_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1857
 .annotate "line", 677
     new $P1856, 'ExceptionHandler'
     set_addr $P1856, control_1855
-    $P1856."handle_types"(58)
+    $P1856."handle_types"(57)
     push_eh $P1856
     .lex "self", self
     .lex "$/", param_1857
@@ -21516,12 +21516,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>"  :subid("103_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "postcircumfix:sym<( )>"  :subid("103_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1870
 .annotate "line", 683
     new $P1869, 'ExceptionHandler'
     set_addr $P1869, control_1868
-    $P1869."handle_types"(58)
+    $P1869."handle_types"(57)
     push_eh $P1869
     .lex "self", self
     .lex "$/", param_1870
@@ -21548,12 +21548,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "value"  :subid("104_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "value"  :subid("104_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1880
 .annotate "line", 687
     new $P1879, 'ExceptionHandler'
     set_addr $P1879, control_1878
-    $P1879."handle_types"(58)
+    $P1879."handle_types"(57)
     push_eh $P1879
     .lex "self", self
     .lex "$/", param_1880
@@ -21603,12 +21603,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "number"  :subid("105_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "number"  :subid("105_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1897
 .annotate "line", 691
     new $P1896, 'ExceptionHandler'
     set_addr $P1896, control_1895
-    $P1896."handle_types"(58)
+    $P1896."handle_types"(57)
     push_eh $P1896
     .lex "self", self
     .lex "$/", param_1897
@@ -21681,12 +21681,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>"  :subid("106_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote:sym<apos>"  :subid("106_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1925
 .annotate "line", 697
     new $P1924, 'ExceptionHandler'
     set_addr $P1924, control_1923
-    $P1924."handle_types"(58)
+    $P1924."handle_types"(57)
     push_eh $P1924
     .lex "self", self
     .lex "$/", param_1925
@@ -21711,12 +21711,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>"  :subid("107_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote:sym<dblq>"  :subid("107_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1935
 .annotate "line", 698
     new $P1934, 'ExceptionHandler'
     set_addr $P1934, control_1933
-    $P1934."handle_types"(58)
+    $P1934."handle_types"(57)
     push_eh $P1934
     .lex "self", self
     .lex "$/", param_1935
@@ -21741,12 +21741,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>"  :subid("108_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote:sym<qq>"  :subid("108_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1945
 .annotate "line", 699
     new $P1944, 'ExceptionHandler'
     set_addr $P1944, control_1943
-    $P1944."handle_types"(58)
+    $P1944."handle_types"(57)
     push_eh $P1944
     .lex "self", self
     .lex "$/", param_1945
@@ -21771,12 +21771,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<q>"  :subid("109_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote:sym<q>"  :subid("109_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1955
 .annotate "line", 700
     new $P1954, 'ExceptionHandler'
     set_addr $P1954, control_1953
-    $P1954."handle_types"(58)
+    $P1954."handle_types"(57)
     push_eh $P1954
     .lex "self", self
     .lex "$/", param_1955
@@ -21801,12 +21801,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>"  :subid("110_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote:sym<Q>"  :subid("110_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1965
 .annotate "line", 701
     new $P1964, 'ExceptionHandler'
     set_addr $P1964, control_1963
-    $P1964."handle_types"(58)
+    $P1964."handle_types"(57)
     push_eh $P1964
     .lex "self", self
     .lex "$/", param_1965
@@ -21831,12 +21831,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>"  :subid("111_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote:sym<Q:PIR>"  :subid("111_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1975
 .annotate "line", 702
     new $P1974, 'ExceptionHandler'
     set_addr $P1974, control_1973
-    $P1974."handle_types"(58)
+    $P1974."handle_types"(57)
     push_eh $P1974
     .lex "self", self
     .lex "$/", param_1975
@@ -21867,14 +21867,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym</ />"  :subid("112_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote:sym</ />"  :subid("112_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_1989
     .param pmc param_1990 :optional
     .param int has_param_1990 :opt_flag
 .annotate "line", 708
     new $P1988, 'ExceptionHandler'
     set_addr $P1988, control_1987
-    $P1988."handle_types"(58)
+    $P1988."handle_types"(57)
     push_eh $P1988
     .lex "self", self
     .lex "$/", param_1989
@@ -21921,7 +21921,7 @@
     $P2001."symbol"("$/", "lexical" :named("scope"))
 .annotate "line", 716
     new $P2002, "Exception"
-    set $P2002['type'], 58
+    set $P2002['type'], 57
     new $P2003, "Integer"
     assign $P2003, 0
     setattribute $P2002, 'payload', $P2003
@@ -21976,12 +21976,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>"  :subid("113_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote_escape:sym<$>"  :subid("113_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2026
 .annotate "line", 731
     new $P2025, 'ExceptionHandler'
     set_addr $P2025, control_2024
-    $P2025."handle_types"(58)
+    $P2025."handle_types"(57)
     push_eh $P2025
     .lex "self", self
     .lex "$/", param_2026
@@ -22006,12 +22006,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>"  :subid("114_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote_escape:sym<{ }>"  :subid("114_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2036
 .annotate "line", 732
     new $P2035, 'ExceptionHandler'
     set_addr $P2035, control_2034
-    $P2035."handle_types"(58)
+    $P2035."handle_types"(57)
     push_eh $P2035
     .lex "self", self
     .lex "$/", param_2036
@@ -22044,12 +22044,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<esc>"  :subid("115_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "quote_escape:sym<esc>"  :subid("115_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2050
 .annotate "line", 737
     new $P2049, 'ExceptionHandler'
     set_addr $P2049, control_2048
-    $P2049."handle_types"(58)
+    $P2049."handle_types"(57)
     push_eh $P2049
     .lex "self", self
     .lex "$/", param_2050
@@ -22065,12 +22065,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>"  :subid("116_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "postfix:sym<.>"  :subid("116_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2057
 .annotate "line", 741
     new $P2056, 'ExceptionHandler'
     set_addr $P2056, control_2055
-    $P2056."handle_types"(58)
+    $P2056."handle_types"(57)
     push_eh $P2056
     .lex "self", self
     .lex "$/", param_2057
@@ -22095,12 +22095,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>"  :subid("117_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "postfix:sym<++>"  :subid("117_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2067
 .annotate "line", 743
     new $P2066, 'ExceptionHandler'
     set_addr $P2066, control_2065
-    $P2066."handle_types"(58)
+    $P2066."handle_types"(57)
     push_eh $P2066
     .lex "self", self
     .lex "$/", param_2067
@@ -22125,12 +22125,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->"  :subid("118_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "postfix:sym<-->"  :subid("118_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2077
 .annotate "line", 749
     new $P2076, 'ExceptionHandler'
     set_addr $P2076, control_2075
-    $P2076."handle_types"(58)
+    $P2076."handle_types"(57)
     push_eh $P2076
     .lex "self", self
     .lex "$/", param_2077
@@ -22155,12 +22155,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>"  :subid("119_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "prefix:sym<make>"  :subid("119_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2087
 .annotate "line", 755
     new $P2086, 'ExceptionHandler'
     set_addr $P2086, control_2085
-    $P2086."handle_types"(58)
+    $P2086."handle_types"(57)
     push_eh $P2086
     .lex "self", self
     .lex "$/", param_2087
@@ -22185,12 +22185,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>"  :subid("120_1271948680.36754") :method :outer("11_1271948680.36754")
+.sub "infix:sym<~~>"  :subid("120_1272455259.05437") :method :outer("11_1272455259.05437")
     .param pmc param_2099
 .annotate "line", 764
     new $P2098, 'ExceptionHandler'
     set_addr $P2098, control_2097
-    $P2098."handle_types"(58)
+    $P2098."handle_types"(57)
     push_eh $P2098
     .lex "self", self
     .lex "$/", param_2099
@@ -22211,18 +22211,18 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2106"  :subid("121_1271948680.36754") :outer("11_1271948680.36754")
+.sub "_block2106"  :subid("121_1272455259.05437") :outer("11_1272455259.05437")
 .annotate "line", 769
-    .const 'Sub' $P2142 = "125_1271948680.36754" 
+    .const 'Sub' $P2142 = "125_1272455259.05437" 
     capture_lex $P2142
-    .const 'Sub' $P2132 = "124_1271948680.36754" 
+    .const 'Sub' $P2132 = "124_1272455259.05437" 
     capture_lex $P2132
-    .const 'Sub' $P2122 = "123_1271948680.36754" 
+    .const 'Sub' $P2122 = "123_1272455259.05437" 
     capture_lex $P2122
-    .const 'Sub' $P2108 = "122_1271948680.36754" 
+    .const 'Sub' $P2108 = "122_1272455259.05437" 
     capture_lex $P2108
 .annotate "line", 780
-    .const 'Sub' $P2142 = "125_1271948680.36754" 
+    .const 'Sub' $P2142 = "125_1272455259.05437" 
     capture_lex $P2142
 .annotate "line", 769
     .return ($P2142)
@@ -22230,12 +22230,12 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>"  :subid("122_1271948680.36754") :method :outer("121_1271948680.36754")
+.sub "metachar:sym<:my>"  :subid("122_1272455259.05437") :method :outer("121_1272455259.05437")
     .param pmc param_2111
 .annotate "line", 771
     new $P2110, 'ExceptionHandler'
     set_addr $P2110, control_2109
-    $P2110."handle_types"(58)
+    $P2110."handle_types"(57)
     push_eh $P2110
     .lex "self", self
     .lex "$/", param_2111
@@ -22269,12 +22269,12 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>"  :subid("123_1271948680.36754") :method :outer("121_1271948680.36754")
+.sub "metachar:sym<{ }>"  :subid("123_1272455259.05437") :method :outer("121_1272455259.05437")
     .param pmc param_2125
 .annotate "line", 776
     new $P2124, 'ExceptionHandler'
     set_addr $P2124, control_2123
-    $P2124."handle_types"(58)
+    $P2124."handle_types"(57)
     push_eh $P2124
     .lex "self", self
     .lex "$/", param_2125
@@ -22299,12 +22299,12 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>"  :subid("124_1271948680.36754") :method :outer("121_1271948680.36754")
+.sub "assertion:sym<{ }>"  :subid("124_1272455259.05437") :method :outer("121_1272455259.05437")
     .param pmc param_2135
 .annotate "line", 778
     new $P2134, 'ExceptionHandler'
     set_addr $P2134, control_2133
-    $P2134."handle_types"(58)
+    $P2134."handle_types"(57)
     push_eh $P2134
     .lex "self", self
     .lex "$/", param_2135
@@ -22329,12 +22329,12 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "codeblock"  :subid("125_1271948680.36754") :method :outer("121_1271948680.36754")
+.sub "codeblock"  :subid("125_1272455259.05437") :method :outer("121_1272455259.05437")
     .param pmc param_2145
 .annotate "line", 780
     new $P2144, 'ExceptionHandler'
     set_addr $P2144, control_2143
-    $P2144."handle_types"(58)
+    $P2144."handle_types"(57)
     push_eh $P2144
     .lex "self", self
     .lex "$/", param_2145

Modified: branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1271948653.77811")
+.sub "_block11"  :anon :subid("10_1272455245.85124")
 .annotate "line", 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -30,9 +30,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post158") :outer("10_1271948653.77811")
+.sub "" :load :init :subid("post158") :outer("10_1272455245.85124")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1271948653.77811" 
+    .const 'Sub' $P12 = "10_1272455245.85124" 
     .local pmc block
     set block, $P12
     $P580 = get_root_global ["parrot"], "P6metaclass"
@@ -41,140 +41,140 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1271948653.77811") :outer("10_1271948653.77811")
+.sub "_block13"  :subid("11_1272455245.85124") :outer("10_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P571 = "156_1271948653.77811" 
+    .const 'Sub' $P571 = "156_1272455245.85124" 
     capture_lex $P571
-    .const 'Sub' $P563 = "154_1271948653.77811" 
+    .const 'Sub' $P563 = "154_1272455245.85124" 
     capture_lex $P563
-    .const 'Sub' $P555 = "152_1271948653.77811" 
+    .const 'Sub' $P555 = "152_1272455245.85124" 
     capture_lex $P555
-    .const 'Sub' $P534 = "147_1271948653.77811" 
+    .const 'Sub' $P534 = "147_1272455245.85124" 
     capture_lex $P534
-    .const 'Sub' $P499 = "141_1271948653.77811" 
+    .const 'Sub' $P499 = "141_1272455245.85124" 
     capture_lex $P499
-    .const 'Sub' $P487 = "138_1271948653.77811" 
+    .const 'Sub' $P487 = "138_1272455245.85124" 
     capture_lex $P487
-    .const 'Sub' $P474 = "135_1271948653.77811" 
+    .const 'Sub' $P474 = "135_1272455245.85124" 
     capture_lex $P474
-    .const 'Sub' $P468 = "133_1271948653.77811" 
+    .const 'Sub' $P468 = "133_1272455245.85124" 
     capture_lex $P468
-    .const 'Sub' $P457 = "130_1271948653.77811" 
+    .const 'Sub' $P457 = "130_1272455245.85124" 
     capture_lex $P457
-    .const 'Sub' $P446 = "127_1271948653.77811" 
+    .const 'Sub' $P446 = "127_1272455245.85124" 
     capture_lex $P446
-    .const 'Sub' $P437 = "123_1271948653.77811" 
+    .const 'Sub' $P437 = "123_1272455245.85124" 
     capture_lex $P437
-    .const 'Sub' $P431 = "121_1271948653.77811" 
+    .const 'Sub' $P431 = "121_1272455245.85124" 
     capture_lex $P431
-    .const 'Sub' $P425 = "119_1271948653.77811" 
+    .const 'Sub' $P425 = "119_1272455245.85124" 
     capture_lex $P425
-    .const 'Sub' $P419 = "117_1271948653.77811" 
+    .const 'Sub' $P419 = "117_1272455245.85124" 
     capture_lex $P419
-    .const 'Sub' $P413 = "115_1271948653.77811" 
+    .const 'Sub' $P413 = "115_1272455245.85124" 
     capture_lex $P413
-    .const 'Sub' $P405 = "113_1271948653.77811" 
+    .const 'Sub' $P405 = "113_1272455245.85124" 
     capture_lex $P405
-    .const 'Sub' $P394 = "111_1271948653.77811" 
+    .const 'Sub' $P394 = "111_1272455245.85124" 
     capture_lex $P394
-    .const 'Sub' $P383 = "109_1271948653.77811" 
+    .const 'Sub' $P383 = "109_1272455245.85124" 
     capture_lex $P383
-    .const 'Sub' $P377 = "107_1271948653.77811" 
+    .const 'Sub' $P377 = "107_1272455245.85124" 
     capture_lex $P377
-    .const 'Sub' $P371 = "105_1271948653.77811" 
+    .const 'Sub' $P371 = "105_1272455245.85124" 
     capture_lex $P371
-    .const 'Sub' $P365 = "103_1271948653.77811" 
+    .const 'Sub' $P365 = "103_1272455245.85124" 
     capture_lex $P365
-    .const 'Sub' $P359 = "101_1271948653.77811" 
+    .const 'Sub' $P359 = "101_1272455245.85124" 
     capture_lex $P359
-    .const 'Sub' $P353 = "99_1271948653.77811" 
+    .const 'Sub' $P353 = "99_1272455245.85124" 
     capture_lex $P353
-    .const 'Sub' $P347 = "97_1271948653.77811" 
+    .const 'Sub' $P347 = "97_1272455245.85124" 
     capture_lex $P347
-    .const 'Sub' $P341 = "95_1271948653.77811" 
+    .const 'Sub' $P341 = "95_1272455245.85124" 
     capture_lex $P341
-    .const 'Sub' $P335 = "93_1271948653.77811" 
+    .const 'Sub' $P335 = "93_1272455245.85124" 
     capture_lex $P335
-    .const 'Sub' $P323 = "89_1271948653.77811" 
+    .const 'Sub' $P323 = "89_1272455245.85124" 
     capture_lex $P323
-    .const 'Sub' $P311 = "87_1271948653.77811" 
+    .const 'Sub' $P311 = "87_1272455245.85124" 
     capture_lex $P311
-    .const 'Sub' $P304 = "85_1271948653.77811" 
+    .const 'Sub' $P304 = "85_1272455245.85124" 
     capture_lex $P304
-    .const 'Sub' $P287 = "83_1271948653.77811" 
+    .const 'Sub' $P287 = "83_1272455245.85124" 
     capture_lex $P287
-    .const 'Sub' $P280 = "81_1271948653.77811" 
+    .const 'Sub' $P280 = "81_1272455245.85124" 
     capture_lex $P280
-    .const 'Sub' $P274 = "79_1271948653.77811" 
+    .const 'Sub' $P274 = "79_1272455245.85124" 
     capture_lex $P274
-    .const 'Sub' $P268 = "77_1271948653.77811" 
+    .const 'Sub' $P268 = "77_1272455245.85124" 
     capture_lex $P268
-    .const 'Sub' $P261 = "75_1271948653.77811" 
+    .const 'Sub' $P261 = "75_1272455245.85124" 
     capture_lex $P261
-    .const 'Sub' $P254 = "73_1271948653.77811" 
+    .const 'Sub' $P254 = "73_1272455245.85124" 
     capture_lex $P254
-    .const 'Sub' $P247 = "71_1271948653.77811" 
+    .const 'Sub' $P247 = "71_1272455245.85124" 
     capture_lex $P247
-    .const 'Sub' $P240 = "69_1271948653.77811" 
+    .const 'Sub' $P240 = "69_1272455245.85124" 
     capture_lex $P240
-    .const 'Sub' $P234 = "67_1271948653.77811" 
+    .const 'Sub' $P234 = "67_1272455245.85124" 
     capture_lex $P234
-    .const 'Sub' $P228 = "65_1271948653.77811" 
+    .const 'Sub' $P228 = "65_1272455245.85124" 
     capture_lex $P228
-    .const 'Sub' $P222 = "63_1271948653.77811" 
+    .const 'Sub' $P222 = "63_1272455245.85124" 
     capture_lex $P222
-    .const 'Sub' $P216 = "61_1271948653.77811" 
+    .const 'Sub' $P216 = "61_1272455245.85124" 
     capture_lex $P216
-    .const 'Sub' $P210 = "59_1271948653.77811" 
+    .const 'Sub' $P210 = "59_1272455245.85124" 
     capture_lex $P210
-    .const 'Sub' $P205 = "57_1271948653.77811" 
+    .const 'Sub' $P205 = "57_1272455245.85124" 
     capture_lex $P205
-    .const 'Sub' $P200 = "55_1271948653.77811" 
+    .const 'Sub' $P200 = "55_1272455245.85124" 
     capture_lex $P200
-    .const 'Sub' $P194 = "53_1271948653.77811" 
+    .const 'Sub' $P194 = "53_1272455245.85124" 
     capture_lex $P194
-    .const 'Sub' $P188 = "51_1271948653.77811" 
+    .const 'Sub' $P188 = "51_1272455245.85124" 
     capture_lex $P188
-    .const 'Sub' $P182 = "49_1271948653.77811" 
+    .const 'Sub' $P182 = "49_1272455245.85124" 
     capture_lex $P182
-    .const 'Sub' $P166 = "44_1271948653.77811" 
+    .const 'Sub' $P166 = "44_1272455245.85124" 
     capture_lex $P166
-    .const 'Sub' $P154 = "42_1271948653.77811" 
+    .const 'Sub' $P154 = "42_1272455245.85124" 
     capture_lex $P154
-    .const 'Sub' $P147 = "40_1271948653.77811" 
+    .const 'Sub' $P147 = "40_1272455245.85124" 
     capture_lex $P147
-    .const 'Sub' $P140 = "38_1271948653.77811" 
+    .const 'Sub' $P140 = "38_1272455245.85124" 
     capture_lex $P140
-    .const 'Sub' $P133 = "36_1271948653.77811" 
+    .const 'Sub' $P133 = "36_1272455245.85124" 
     capture_lex $P133
-    .const 'Sub' $P114 = "31_1271948653.77811" 
+    .const 'Sub' $P114 = "31_1272455245.85124" 
     capture_lex $P114
-    .const 'Sub' $P101 = "28_1271948653.77811" 
+    .const 'Sub' $P101 = "28_1272455245.85124" 
     capture_lex $P101
-    .const 'Sub' $P94 = "26_1271948653.77811" 
+    .const 'Sub' $P94 = "26_1272455245.85124" 
     capture_lex $P94
-    .const 'Sub' $P82 = "24_1271948653.77811" 
+    .const 'Sub' $P82 = "24_1272455245.85124" 
     capture_lex $P82
-    .const 'Sub' $P75 = "22_1271948653.77811" 
+    .const 'Sub' $P75 = "22_1272455245.85124" 
     capture_lex $P75
-    .const 'Sub' $P63 = "20_1271948653.77811" 
+    .const 'Sub' $P63 = "20_1272455245.85124" 
     capture_lex $P63
-    .const 'Sub' $P56 = "18_1271948653.77811" 
+    .const 'Sub' $P56 = "18_1272455245.85124" 
     capture_lex $P56
-    .const 'Sub' $P46 = "15_1271948653.77811" 
+    .const 'Sub' $P46 = "15_1272455245.85124" 
     capture_lex $P46
-    .const 'Sub' $P38 = "13_1271948653.77811" 
+    .const 'Sub' $P38 = "13_1272455245.85124" 
     capture_lex $P38
-    .const 'Sub' $P15 = "12_1271948653.77811" 
+    .const 'Sub' $P15 = "12_1272455245.85124" 
     capture_lex $P15
-    .const 'Sub' $P571 = "156_1271948653.77811" 
+    .const 'Sub' $P571 = "156_1272455245.85124" 
     capture_lex $P571
     .return ($P571)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs"  :subid("12_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "obs"  :subid("12_1272455245.85124") :method :outer("11_1272455245.85124")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -182,7 +182,7 @@
 .annotate "line", 3
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(58)
+    $P17."handle_types"(57)
     push_eh $P17
     .lex "self", self
     .lex "$old", param_18
@@ -222,7 +222,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "ws"  :subid("13_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx39_tgt
     .local int rx39_pos
@@ -304,7 +304,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1271948653.77811") :method
+.sub "!PREFIX__ws"  :subid("14_1272455245.85124") :method
 .annotate "line", 3
     new $P41, "ResizablePMCArray"
     push $P41, ""
@@ -313,9 +313,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "normspace"  :subid("15_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P52 = "17_1271948653.77811" 
+    .const 'Sub' $P52 = "17_1272455245.85124" 
     capture_lex $P52
     .local string rx47_tgt
     .local int rx47_pos
@@ -349,7 +349,7 @@
 .annotate "line", 10
   # rx subrule "before" subtype=zerowidth negate=
     rx47_cur."!cursor_pos"(rx47_pos)
-    .const 'Sub' $P52 = "17_1271948653.77811" 
+    .const 'Sub' $P52 = "17_1272455245.85124" 
     capture_lex $P52
     $P10 = rx47_cur."before"($P52)
     unless $P10, rx47_fail
@@ -377,7 +377,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1271948653.77811") :method
+.sub "!PREFIX__normspace"  :subid("16_1272455245.85124") :method
 .annotate "line", 3
     new $P49, "ResizablePMCArray"
     push $P49, ""
@@ -386,7 +386,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51"  :anon :subid("17_1271948653.77811") :method :outer("15_1271948653.77811")
+.sub "_block51"  :anon :subid("17_1272455245.85124") :method :outer("15_1272455245.85124")
 .annotate "line", 10
     .local string rx53_tgt
     .local int rx53_pos
@@ -454,7 +454,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("18_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "arg"  :subid("18_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx57_tgt
     .local int rx57_pos
@@ -565,7 +565,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("19_1271948653.77811") :method
+.sub "!PREFIX__arg"  :subid("19_1272455245.85124") :method
 .annotate "line", 3
     new $P59, "ResizablePMCArray"
     push $P59, ""
@@ -576,7 +576,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("20_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "arglist"  :subid("20_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx64_tgt
     .local int rx64_pos
@@ -682,7 +682,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("21_1271948653.77811") :method
+.sub "!PREFIX__arglist"  :subid("21_1272455245.85124") :method
 .annotate "line", 3
     new $P66, "ResizablePMCArray"
     push $P66, ""
@@ -691,7 +691,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("22_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "TOP"  :subid("22_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx76_tgt
     .local int rx76_pos
@@ -764,7 +764,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("23_1271948653.77811") :method
+.sub "!PREFIX__TOP"  :subid("23_1272455245.85124") :method
 .annotate "line", 3
     $P78 = self."!PREFIX__!subrule"("nibbler", "")
     new $P79, "ResizablePMCArray"
@@ -774,7 +774,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("24_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "nibbler"  :subid("24_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx83_tgt
     .local int rx83_pos
@@ -942,7 +942,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("25_1271948653.77811") :method
+.sub "!PREFIX__nibbler"  :subid("25_1272455245.85124") :method
 .annotate "line", 3
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -951,7 +951,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("26_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "termish"  :subid("26_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx95_tgt
     .local int rx95_pos
@@ -1019,7 +1019,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("27_1271948653.77811") :method
+.sub "!PREFIX__termish"  :subid("27_1272455245.85124") :method
 .annotate "line", 3
     new $P97, "ResizablePMCArray"
     push $P97, ""
@@ -1028,9 +1028,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("28_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "quantified_atom"  :subid("28_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P110 = "30_1271948653.77811" 
+    .const 'Sub' $P110 = "30_1272455245.85124" 
     capture_lex $P110
     .local string rx102_tgt
     .local int rx102_pos
@@ -1093,7 +1093,7 @@
   alt108_1:
   # rx subrule "before" subtype=zerowidth negate=
     rx102_cur."!cursor_pos"(rx102_pos)
-    .const 'Sub' $P110 = "30_1271948653.77811" 
+    .const 'Sub' $P110 = "30_1272455245.85124" 
     capture_lex $P110
     $P10 = rx102_cur."before"($P110)
     unless $P10, rx102_fail
@@ -1131,7 +1131,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("29_1271948653.77811") :method
+.sub "!PREFIX__quantified_atom"  :subid("29_1272455245.85124") :method
 .annotate "line", 3
     $P104 = self."!PREFIX__!subrule"("atom", "")
     new $P105, "ResizablePMCArray"
@@ -1141,7 +1141,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block109"  :anon :subid("30_1271948653.77811") :method :outer("28_1271948653.77811")
+.sub "_block109"  :anon :subid("30_1272455245.85124") :method :outer("28_1272455245.85124")
 .annotate "line", 41
     .local string rx111_tgt
     .local int rx111_pos
@@ -1197,9 +1197,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("31_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "atom"  :subid("31_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P125 = "33_1271948653.77811" 
+    .const 'Sub' $P125 = "33_1272455245.85124" 
     capture_lex $P125
     .local string rx115_tgt
     .local int rx115_pos
@@ -1259,7 +1259,7 @@
   rxquantg122_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx115_cur."!cursor_pos"(rx115_pos)
-    .const 'Sub' $P125 = "33_1271948653.77811" 
+    .const 'Sub' $P125 = "33_1272455245.85124" 
     capture_lex $P125
     $P10 = rx115_cur."before"($P125)
     unless $P10, rx115_fail
@@ -1296,7 +1296,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("32_1271948653.77811") :method
+.sub "!PREFIX__atom"  :subid("32_1272455245.85124") :method
 .annotate "line", 3
     $P117 = self."!PREFIX__!subrule"("metachar", "")
     new $P118, "ResizablePMCArray"
@@ -1307,7 +1307,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block124"  :anon :subid("33_1271948653.77811") :method :outer("31_1271948653.77811")
+.sub "_block124"  :anon :subid("33_1272455245.85124") :method :outer("31_1272455245.85124")
 .annotate "line", 47
     .local string rx126_tgt
     .local int rx126_pos
@@ -1362,7 +1362,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("34_1271948653.77811") :method
+.sub "quantifier"  :subid("34_1272455245.85124") :method
 .annotate "line", 52
     $P130 = self."!protoregex"("quantifier")
     .return ($P130)
@@ -1370,7 +1370,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("35_1271948653.77811") :method
+.sub "!PREFIX__quantifier"  :subid("35_1272455245.85124") :method
 .annotate "line", 52
     $P132 = self."!PREFIX__!protoregex"("quantifier")
     .return ($P132)
@@ -1378,7 +1378,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("36_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "quantifier:sym<*>"  :subid("36_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx134_tgt
     .local int rx134_pos
@@ -1457,7 +1457,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1271948653.77811") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1272455245.85124") :method
 .annotate "line", 3
     $P136 = self."!PREFIX__!subrule"("backmod", "*")
     new $P137, "ResizablePMCArray"
@@ -1467,7 +1467,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("38_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "quantifier:sym<+>"  :subid("38_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx141_tgt
     .local int rx141_pos
@@ -1546,7 +1546,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1271948653.77811") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1272455245.85124") :method
 .annotate "line", 3
     $P143 = self."!PREFIX__!subrule"("backmod", "+")
     new $P144, "ResizablePMCArray"
@@ -1556,7 +1556,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("40_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "quantifier:sym<?>"  :subid("40_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx148_tgt
     .local int rx148_pos
@@ -1635,7 +1635,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1271948653.77811") :method
+.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1272455245.85124") :method
 .annotate "line", 3
     $P150 = self."!PREFIX__!subrule"("backmod", "?")
     new $P151, "ResizablePMCArray"
@@ -1645,7 +1645,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("42_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "quantifier:sym<**>"  :subid("42_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx155_tgt
     .local int rx155_pos
@@ -1834,7 +1834,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1271948653.77811") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1272455245.85124") :method
 .annotate "line", 3
     new $P157, "ResizablePMCArray"
     push $P157, "**"
@@ -1843,9 +1843,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("44_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backmod"  :subid("44_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P175 = "46_1271948653.77811" 
+    .const 'Sub' $P175 = "46_1272455245.85124" 
     capture_lex $P175
     .local string rx167_tgt
     .local int rx167_pos
@@ -1915,7 +1915,7 @@
   alt173_2:
   # rx subrule "before" subtype=zerowidth negate=1
     rx167_cur."!cursor_pos"(rx167_pos)
-    .const 'Sub' $P175 = "46_1271948653.77811" 
+    .const 'Sub' $P175 = "46_1272455245.85124" 
     capture_lex $P175
     $P10 = rx167_cur."before"($P175)
     if $P10, rx167_fail
@@ -1939,7 +1939,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("45_1271948653.77811") :method
+.sub "!PREFIX__backmod"  :subid("45_1272455245.85124") :method
 .annotate "line", 3
     new $P169, "ResizablePMCArray"
     push $P169, ""
@@ -1948,7 +1948,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174"  :anon :subid("46_1271948653.77811") :method :outer("44_1271948653.77811")
+.sub "_block174"  :anon :subid("46_1272455245.85124") :method :outer("44_1272455245.85124")
 .annotate "line", 71
     .local string rx176_tgt
     .local int rx176_pos
@@ -2004,7 +2004,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("47_1271948653.77811") :method
+.sub "metachar"  :subid("47_1272455245.85124") :method
 .annotate "line", 73
     $P179 = self."!protoregex"("metachar")
     .return ($P179)
@@ -2012,7 +2012,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("48_1271948653.77811") :method
+.sub "!PREFIX__metachar"  :subid("48_1272455245.85124") :method
 .annotate "line", 73
     $P181 = self."!PREFIX__!protoregex"("metachar")
     .return ($P181)
@@ -2020,7 +2020,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("49_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<ws>"  :subid("49_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx183_tgt
     .local int rx183_pos
@@ -2076,7 +2076,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1272455245.85124") :method
 .annotate "line", 3
     $P185 = self."!PREFIX__!subrule"("", "")
     new $P186, "ResizablePMCArray"
@@ -2086,7 +2086,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("51_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<[ ]>"  :subid("51_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx189_tgt
     .local int rx189_pos
@@ -2158,7 +2158,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1272455245.85124") :method
 .annotate "line", 3
     $P191 = self."!PREFIX__!subrule"("nibbler", "[")
     new $P192, "ResizablePMCArray"
@@ -2168,7 +2168,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("53_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<( )>"  :subid("53_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx195_tgt
     .local int rx195_pos
@@ -2240,7 +2240,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1272455245.85124") :method
 .annotate "line", 3
     $P197 = self."!PREFIX__!subrule"("nibbler", "(")
     new $P198, "ResizablePMCArray"
@@ -2250,7 +2250,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("55_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<'>"  :subid("55_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx201_tgt
     .local int rx201_pos
@@ -2314,7 +2314,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("56_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("56_1272455245.85124") :method
 .annotate "line", 3
     new $P203, "ResizablePMCArray"
     push $P203, "'"
@@ -2323,7 +2323,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("57_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<\">"  :subid("57_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx206_tgt
     .local int rx206_pos
@@ -2387,7 +2387,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("58_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("58_1272455245.85124") :method
 .annotate "line", 3
     new $P208, "ResizablePMCArray"
     push $P208, "\""
@@ -2396,7 +2396,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("59_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<.>"  :subid("59_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx211_tgt
     .local int rx211_pos
@@ -2468,7 +2468,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("60_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<.>"  :subid("60_1272455245.85124") :method
 .annotate "line", 3
     new $P213, "ResizablePMCArray"
     push $P213, "."
@@ -2477,7 +2477,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("61_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<^>"  :subid("61_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx217_tgt
     .local int rx217_pos
@@ -2549,7 +2549,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("62_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("62_1272455245.85124") :method
 .annotate "line", 3
     new $P219, "ResizablePMCArray"
     push $P219, "^"
@@ -2558,7 +2558,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("63_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<^^>"  :subid("63_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx223_tgt
     .local int rx223_pos
@@ -2630,7 +2630,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1272455245.85124") :method
 .annotate "line", 3
     new $P225, "ResizablePMCArray"
     push $P225, "^^"
@@ -2639,7 +2639,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("65_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<$>"  :subid("65_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx229_tgt
     .local int rx229_pos
@@ -2711,7 +2711,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("66_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("66_1272455245.85124") :method
 .annotate "line", 3
     new $P231, "ResizablePMCArray"
     push $P231, "$"
@@ -2720,7 +2720,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("67_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<$$>"  :subid("67_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx235_tgt
     .local int rx235_pos
@@ -2792,7 +2792,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1272455245.85124") :method
 .annotate "line", 3
     new $P237, "ResizablePMCArray"
     push $P237, "$$"
@@ -2801,7 +2801,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("69_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<:::>"  :subid("69_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx241_tgt
     .local int rx241_pos
@@ -2878,7 +2878,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1272455245.85124") :method
 .annotate "line", 3
     $P243 = self."!PREFIX__!subrule"("", ":::")
     new $P244, "ResizablePMCArray"
@@ -2888,7 +2888,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("71_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<::>"  :subid("71_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx248_tgt
     .local int rx248_pos
@@ -2965,7 +2965,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("72_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("72_1272455245.85124") :method
 .annotate "line", 3
     $P250 = self."!PREFIX__!subrule"("", "::")
     new $P251, "ResizablePMCArray"
@@ -2975,7 +2975,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("73_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<lwb>"  :subid("73_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx255_tgt
     .local int rx255_pos
@@ -3060,7 +3060,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1272455245.85124") :method
 .annotate "line", 3
     new $P257, "ResizablePMCArray"
     push $P257, unicode:"\x{ab}"
@@ -3070,7 +3070,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("75_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<rwb>"  :subid("75_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx262_tgt
     .local int rx262_pos
@@ -3155,7 +3155,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1272455245.85124") :method
 .annotate "line", 3
     new $P264, "ResizablePMCArray"
     push $P264, unicode:"\x{bb}"
@@ -3165,7 +3165,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("77_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<bs>"  :subid("77_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx269_tgt
     .local int rx269_pos
@@ -3230,7 +3230,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1272455245.85124") :method
 .annotate "line", 3
     $P271 = self."!PREFIX__!subrule"("backslash", "\\")
     new $P272, "ResizablePMCArray"
@@ -3240,7 +3240,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("79_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<mod>"  :subid("79_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx275_tgt
     .local int rx275_pos
@@ -3298,7 +3298,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1272455245.85124") :method
 .annotate "line", 3
     $P277 = self."!PREFIX__!subrule"("mod_internal", "")
     new $P278, "ResizablePMCArray"
@@ -3308,7 +3308,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("81_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<~>"  :subid("81_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx281_tgt
     .local int rx281_pos
@@ -3407,7 +3407,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("82_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("82_1272455245.85124") :method
 .annotate "line", 3
     $P283 = self."!PREFIX__!subrule"("", "~")
     new $P284, "ResizablePMCArray"
@@ -3417,7 +3417,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("83_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<{*}>"  :subid("83_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx288_tgt
     .local int rx288_pos
@@ -3584,7 +3584,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1272455245.85124") :method
 .annotate "line", 3
     new $P290, "ResizablePMCArray"
     push $P290, "{*}"
@@ -3593,7 +3593,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("85_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<assert>"  :subid("85_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx305_tgt
     .local int rx305_pos
@@ -3678,7 +3678,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1272455245.85124") :method
 .annotate "line", 3
     $P307 = self."!PREFIX__!subrule"("assertion", "<")
     new $P308, "ResizablePMCArray"
@@ -3688,7 +3688,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("87_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<var>"  :subid("87_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx312_tgt
     .local int rx312_pos
@@ -3850,7 +3850,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("88_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("88_1272455245.85124") :method
 .annotate "line", 3
     new $P314, "ResizablePMCArray"
     push $P314, "$"
@@ -3860,7 +3860,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("89_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "metachar:sym<PIR>"  :subid("89_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx324_tgt
     .local int rx324_pos
@@ -3951,7 +3951,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1271948653.77811") :method
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1272455245.85124") :method
 .annotate "line", 3
     new $P326, "ResizablePMCArray"
     push $P326, ":PIR{{"
@@ -3960,7 +3960,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("91_1271948653.77811") :method
+.sub "backslash"  :subid("91_1272455245.85124") :method
 .annotate "line", 120
     $P332 = self."!protoregex"("backslash")
     .return ($P332)
@@ -3968,7 +3968,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("92_1271948653.77811") :method
+.sub "!PREFIX__backslash"  :subid("92_1272455245.85124") :method
 .annotate "line", 120
     $P334 = self."!PREFIX__!protoregex"("backslash")
     .return ($P334)
@@ -3976,7 +3976,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("93_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<w>"  :subid("93_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx336_tgt
     .local int rx336_pos
@@ -4048,7 +4048,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("94_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<w>"  :subid("94_1272455245.85124") :method
 .annotate "line", 3
     new $P338, "ResizablePMCArray"
     push $P338, "N"
@@ -4064,7 +4064,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("95_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<b>"  :subid("95_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx342_tgt
     .local int rx342_pos
@@ -4136,7 +4136,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("96_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("96_1272455245.85124") :method
 .annotate "line", 3
     new $P344, "ResizablePMCArray"
     push $P344, "B"
@@ -4146,7 +4146,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("97_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<e>"  :subid("97_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx348_tgt
     .local int rx348_pos
@@ -4218,7 +4218,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("98_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<e>"  :subid("98_1272455245.85124") :method
 .annotate "line", 3
     new $P350, "ResizablePMCArray"
     push $P350, "E"
@@ -4228,7 +4228,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("99_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<f>"  :subid("99_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx354_tgt
     .local int rx354_pos
@@ -4300,7 +4300,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("100_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("100_1272455245.85124") :method
 .annotate "line", 3
     new $P356, "ResizablePMCArray"
     push $P356, "F"
@@ -4310,7 +4310,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("101_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<h>"  :subid("101_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx360_tgt
     .local int rx360_pos
@@ -4382,7 +4382,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("102_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("102_1272455245.85124") :method
 .annotate "line", 3
     new $P362, "ResizablePMCArray"
     push $P362, "H"
@@ -4392,7 +4392,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("103_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<r>"  :subid("103_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx366_tgt
     .local int rx366_pos
@@ -4464,7 +4464,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("104_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("104_1272455245.85124") :method
 .annotate "line", 3
     new $P368, "ResizablePMCArray"
     push $P368, "R"
@@ -4474,7 +4474,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("105_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<t>"  :subid("105_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx372_tgt
     .local int rx372_pos
@@ -4546,7 +4546,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("106_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("106_1272455245.85124") :method
 .annotate "line", 3
     new $P374, "ResizablePMCArray"
     push $P374, "T"
@@ -4556,7 +4556,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("107_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<v>"  :subid("107_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx378_tgt
     .local int rx378_pos
@@ -4628,7 +4628,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("108_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("108_1272455245.85124") :method
 .annotate "line", 3
     new $P380, "ResizablePMCArray"
     push $P380, "V"
@@ -4638,7 +4638,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("109_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<o>"  :subid("109_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx384_tgt
     .local int rx384_pos
@@ -4744,7 +4744,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("110_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<o>"  :subid("110_1272455245.85124") :method
 .annotate "line", 3
     $P386 = self."!PREFIX__!subrule"("octints", "O[")
     $P387 = self."!PREFIX__!subrule"("octint", "O")
@@ -4760,7 +4760,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("111_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<x>"  :subid("111_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx395_tgt
     .local int rx395_pos
@@ -4866,7 +4866,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("112_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<x>"  :subid("112_1272455245.85124") :method
 .annotate "line", 3
     $P397 = self."!PREFIX__!subrule"("hexints", "X[")
     $P398 = self."!PREFIX__!subrule"("hexint", "X")
@@ -4882,7 +4882,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("113_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<c>"  :subid("113_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx406_tgt
     .local int rx406_pos
@@ -4961,7 +4961,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("114_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("114_1272455245.85124") :method
 .annotate "line", 3
     $P408 = self."!PREFIX__!subrule"("charspec", "C")
     $P409 = self."!PREFIX__!subrule"("charspec", "c")
@@ -4973,7 +4973,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("115_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<A>"  :subid("115_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx414_tgt
     .local int rx414_pos
@@ -5036,7 +5036,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("116_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("116_1272455245.85124") :method
 .annotate "line", 3
     $P416 = self."!PREFIX__!subrule"("", "A")
     new $P417, "ResizablePMCArray"
@@ -5046,7 +5046,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("117_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<z>"  :subid("117_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx420_tgt
     .local int rx420_pos
@@ -5109,7 +5109,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("118_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<z>"  :subid("118_1272455245.85124") :method
 .annotate "line", 3
     $P422 = self."!PREFIX__!subrule"("", "z")
     new $P423, "ResizablePMCArray"
@@ -5119,7 +5119,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("119_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<Z>"  :subid("119_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx426_tgt
     .local int rx426_pos
@@ -5182,7 +5182,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1272455245.85124") :method
 .annotate "line", 3
     $P428 = self."!PREFIX__!subrule"("", "Z")
     new $P429, "ResizablePMCArray"
@@ -5192,7 +5192,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("121_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<Q>"  :subid("121_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx432_tgt
     .local int rx432_pos
@@ -5255,7 +5255,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1272455245.85124") :method
 .annotate "line", 3
     $P434 = self."!PREFIX__!subrule"("", "Q")
     new $P435, "ResizablePMCArray"
@@ -5265,7 +5265,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("123_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "backslash:sym<misc>"  :subid("123_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx438_tgt
     .local int rx438_pos
@@ -5322,7 +5322,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1271948653.77811") :method
+.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1272455245.85124") :method
 .annotate "line", 3
     new $P440, "ResizablePMCArray"
     push $P440, ""
@@ -5331,7 +5331,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("125_1271948653.77811") :method
+.sub "assertion"  :subid("125_1272455245.85124") :method
 .annotate "line", 138
     $P443 = self."!protoregex"("assertion")
     .return ($P443)
@@ -5339,7 +5339,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("126_1271948653.77811") :method
+.sub "!PREFIX__assertion"  :subid("126_1272455245.85124") :method
 .annotate "line", 138
     $P445 = self."!PREFIX__!protoregex"("assertion")
     .return ($P445)
@@ -5347,9 +5347,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("127_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "assertion:sym<?>"  :subid("127_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P454 = "129_1271948653.77811" 
+    .const 'Sub' $P454 = "129_1272455245.85124" 
     capture_lex $P454
     .local string rx447_tgt
     .local int rx447_pos
@@ -5393,7 +5393,7 @@
     rx447_cur."!mark_push"(0, rx447_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx447_cur."!cursor_pos"(rx447_pos)
-    .const 'Sub' $P454 = "129_1271948653.77811" 
+    .const 'Sub' $P454 = "129_1272455245.85124" 
     capture_lex $P454
     $P10 = rx447_cur."before"($P454)
     unless $P10, rx447_fail
@@ -5426,7 +5426,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("128_1271948653.77811") :method
+.sub "!PREFIX__assertion:sym<?>"  :subid("128_1272455245.85124") :method
 .annotate "line", 3
     $P449 = self."!PREFIX__!subrule"("assertion", "?")
     new $P450, "ResizablePMCArray"
@@ -5437,7 +5437,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block453"  :anon :subid("129_1271948653.77811") :method :outer("127_1271948653.77811")
+.sub "_block453"  :anon :subid("129_1272455245.85124") :method :outer("127_1272455245.85124")
 .annotate "line", 140
     .local string rx455_tgt
     .local int rx455_pos
@@ -5493,9 +5493,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("130_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "assertion:sym<!>"  :subid("130_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P465 = "132_1271948653.77811" 
+    .const 'Sub' $P465 = "132_1272455245.85124" 
     capture_lex $P465
     .local string rx458_tgt
     .local int rx458_pos
@@ -5539,7 +5539,7 @@
     rx458_cur."!mark_push"(0, rx458_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx458_cur."!cursor_pos"(rx458_pos)
-    .const 'Sub' $P465 = "132_1271948653.77811" 
+    .const 'Sub' $P465 = "132_1272455245.85124" 
     capture_lex $P465
     $P10 = rx458_cur."before"($P465)
     unless $P10, rx458_fail
@@ -5572,7 +5572,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("131_1271948653.77811") :method
+.sub "!PREFIX__assertion:sym<!>"  :subid("131_1272455245.85124") :method
 .annotate "line", 3
     $P460 = self."!PREFIX__!subrule"("assertion", "!")
     new $P461, "ResizablePMCArray"
@@ -5583,7 +5583,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block464"  :anon :subid("132_1271948653.77811") :method :outer("130_1271948653.77811")
+.sub "_block464"  :anon :subid("132_1272455245.85124") :method :outer("130_1272455245.85124")
 .annotate "line", 141
     .local string rx466_tgt
     .local int rx466_pos
@@ -5639,7 +5639,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("133_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "assertion:sym<method>"  :subid("133_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx469_tgt
     .local int rx469_pos
@@ -5705,7 +5705,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("134_1271948653.77811") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("134_1272455245.85124") :method
 .annotate "line", 3
     $P471 = self."!PREFIX__!subrule"("assertion", ".")
     new $P472, "ResizablePMCArray"
@@ -5715,9 +5715,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("135_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "assertion:sym<name>"  :subid("135_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P483 = "137_1271948653.77811" 
+    .const 'Sub' $P483 = "137_1272455245.85124" 
     capture_lex $P483
     .local string rx475_tgt
     .local int rx475_pos
@@ -5727,7 +5727,7 @@
     .local pmc rx475_cur
     (rx475_cur, rx475_pos, rx475_tgt) = self."!cursor_start"()
     rx475_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx475_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    rx475_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
     .lex unicode:"$\x{a2}", rx475_cur
     .local pmc match
     .lex "$/", match
@@ -5782,7 +5782,7 @@
 .annotate "line", 150
   # rx subrule "before" subtype=zerowidth negate=
     rx475_cur."!cursor_pos"(rx475_pos)
-    .const 'Sub' $P483 = "137_1271948653.77811" 
+    .const 'Sub' $P483 = "137_1272455245.85124" 
     capture_lex $P483
     $P10 = rx475_cur."before"($P483)
     unless $P10, rx475_fail
@@ -5889,7 +5889,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("136_1271948653.77811") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("136_1272455245.85124") :method
 .annotate "line", 3
     new $P477, "ResizablePMCArray"
     push $P477, ""
@@ -5898,7 +5898,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482"  :anon :subid("137_1271948653.77811") :method :outer("135_1271948653.77811")
+.sub "_block482"  :anon :subid("137_1272455245.85124") :method :outer("135_1272455245.85124")
 .annotate "line", 150
     .local string rx484_tgt
     .local int rx484_pos
@@ -5954,9 +5954,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("138_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "assertion:sym<[>"  :subid("138_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P493 = "140_1271948653.77811" 
+    .const 'Sub' $P493 = "140_1272455245.85124" 
     capture_lex $P493
     .local string rx488_tgt
     .local int rx488_pos
@@ -5991,7 +5991,7 @@
 .annotate "line", 158
   # rx subrule "before" subtype=zerowidth negate=
     rx488_cur."!cursor_pos"(rx488_pos)
-    .const 'Sub' $P493 = "140_1271948653.77811" 
+    .const 'Sub' $P493 = "140_1272455245.85124" 
     capture_lex $P493
     $P10 = rx488_cur."before"($P493)
     unless $P10, rx488_fail
@@ -6029,7 +6029,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("139_1271948653.77811") :method
+.sub "!PREFIX__assertion:sym<[>"  :subid("139_1272455245.85124") :method
 .annotate "line", 3
     new $P490, "ResizablePMCArray"
     push $P490, ""
@@ -6038,7 +6038,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492"  :anon :subid("140_1271948653.77811") :method :outer("138_1271948653.77811")
+.sub "_block492"  :anon :subid("140_1272455245.85124") :method :outer("138_1272455245.85124")
 .annotate "line", 158
     .local string rx494_tgt
     .local int rx494_pos
@@ -6118,9 +6118,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("141_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "cclass_elem"  :subid("141_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P511 = "143_1271948653.77811" 
+    .const 'Sub' $P511 = "143_1272455245.85124" 
     capture_lex $P511
     .local string rx500_tgt
     .local int rx500_pos
@@ -6223,7 +6223,7 @@
 .annotate "line", 164
   # rx subrule $P511 subtype=capture negate=
     rx500_cur."!cursor_pos"(rx500_pos)
-    .const 'Sub' $P511 = "143_1271948653.77811" 
+    .const 'Sub' $P511 = "143_1272455245.85124" 
     capture_lex $P511
     $P10 = rx500_cur.$P511()
     unless $P10, rx500_fail
@@ -6304,7 +6304,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("142_1271948653.77811") :method
+.sub "!PREFIX__cclass_elem"  :subid("142_1272455245.85124") :method
 .annotate "line", 3
     new $P502, "ResizablePMCArray"
     push $P502, ""
@@ -6315,13 +6315,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510"  :anon :subid("143_1271948653.77811") :method :outer("141_1271948653.77811")
+.sub "_block510"  :anon :subid("143_1272455245.85124") :method :outer("141_1272455245.85124")
 .annotate "line", 164
-    .const 'Sub' $P526 = "146_1271948653.77811" 
+    .const 'Sub' $P526 = "146_1272455245.85124" 
     capture_lex $P526
-    .const 'Sub' $P521 = "145_1271948653.77811" 
+    .const 'Sub' $P521 = "145_1272455245.85124" 
     capture_lex $P521
-    .const 'Sub' $P517 = "144_1271948653.77811" 
+    .const 'Sub' $P517 = "144_1272455245.85124" 
     capture_lex $P517
     .local string rx512_tgt
     .local int rx512_pos
@@ -6392,7 +6392,7 @@
     add rx512_pos, 1
   # rx subrule $P517 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P517 = "144_1271948653.77811" 
+    .const 'Sub' $P517 = "144_1272455245.85124" 
     capture_lex $P517
     $P10 = rx512_cur.$P517()
     unless $P10, rx512_fail
@@ -6403,7 +6403,7 @@
   alt515_1:
   # rx subrule $P521 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P521 = "145_1271948653.77811" 
+    .const 'Sub' $P521 = "145_1272455245.85124" 
     capture_lex $P521
     $P10 = rx512_cur.$P521()
     unless $P10, rx512_fail
@@ -6432,7 +6432,7 @@
     add rx512_pos, rx512_off, $I11
   # rx subrule $P526 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P526 = "146_1271948653.77811" 
+    .const 'Sub' $P526 = "146_1272455245.85124" 
     capture_lex $P526
     $P10 = rx512_cur.$P526()
     unless $P10, rx512_fail
@@ -6461,7 +6461,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516"  :anon :subid("144_1271948653.77811") :method :outer("143_1271948653.77811")
+.sub "_block516"  :anon :subid("144_1272455245.85124") :method :outer("143_1272455245.85124")
 .annotate "line", 166
     .local string rx518_tgt
     .local int rx518_pos
@@ -6513,7 +6513,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520"  :anon :subid("145_1271948653.77811") :method :outer("143_1271948653.77811")
+.sub "_block520"  :anon :subid("145_1272455245.85124") :method :outer("143_1272455245.85124")
 .annotate "line", 166
     .local string rx522_tgt
     .local int rx522_pos
@@ -6569,7 +6569,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525"  :anon :subid("146_1271948653.77811") :method :outer("143_1271948653.77811")
+.sub "_block525"  :anon :subid("146_1272455245.85124") :method :outer("143_1272455245.85124")
 .annotate "line", 166
     .local string rx527_tgt
     .local int rx527_pos
@@ -6621,9 +6621,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("147_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "mod_internal"  :subid("147_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
-    .const 'Sub' $P543 = "149_1271948653.77811" 
+    .const 'Sub' $P543 = "149_1272455245.85124" 
     capture_lex $P543
     .local string rx535_tgt
     .local int rx535_pos
@@ -6673,7 +6673,7 @@
   rxquantr541_loop:
   # rx subrule $P543 subtype=capture negate=
     rx535_cur."!cursor_pos"(rx535_pos)
-    .const 'Sub' $P543 = "149_1271948653.77811" 
+    .const 'Sub' $P543 = "149_1272455245.85124" 
     capture_lex $P543
     $P10 = rx535_cur.$P543()
     unless $P10, rx535_fail
@@ -6775,7 +6775,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("148_1271948653.77811") :method
+.sub "!PREFIX__mod_internal"  :subid("148_1272455245.85124") :method
 .annotate "line", 3
     $P537 = self."!PREFIX__!subrule"("mod_ident", ":")
     new $P538, "ResizablePMCArray"
@@ -6786,7 +6786,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block542"  :anon :subid("149_1271948653.77811") :method :outer("147_1271948653.77811")
+.sub "_block542"  :anon :subid("149_1272455245.85124") :method :outer("147_1272455245.85124")
 .annotate "line", 176
     .local string rx544_tgt
     .local int rx544_pos
@@ -6854,7 +6854,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("150_1271948653.77811") :method
+.sub "mod_ident"  :subid("150_1272455245.85124") :method
 .annotate "line", 181
     $P552 = self."!protoregex"("mod_ident")
     .return ($P552)
@@ -6862,7 +6862,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("151_1271948653.77811") :method
+.sub "!PREFIX__mod_ident"  :subid("151_1272455245.85124") :method
 .annotate "line", 181
     $P554 = self."!PREFIX__!protoregex"("mod_ident")
     .return ($P554)
@@ -6870,7 +6870,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("152_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "mod_ident:sym<ignorecase>"  :subid("152_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx556_tgt
     .local int rx556_pos
@@ -6955,7 +6955,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1271948653.77811") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1272455245.85124") :method
 .annotate "line", 3
     new $P558, "ResizablePMCArray"
     push $P558, "i"
@@ -6964,7 +6964,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("154_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "mod_ident:sym<ratchet>"  :subid("154_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx564_tgt
     .local int rx564_pos
@@ -7049,7 +7049,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1271948653.77811") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1272455245.85124") :method
 .annotate "line", 3
     new $P566, "ResizablePMCArray"
     push $P566, "r"
@@ -7058,7 +7058,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("156_1271948653.77811") :method :outer("11_1271948653.77811")
+.sub "mod_ident:sym<sigspace>"  :subid("156_1272455245.85124") :method :outer("11_1272455245.85124")
 .annotate "line", 3
     .local string rx572_tgt
     .local int rx572_pos
@@ -7143,7 +7143,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1271948653.77811") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1272455245.85124") :method
 .annotate "line", 3
     new $P574, "ResizablePMCArray"
     push $P574, "s"
@@ -7153,7 +7153,7 @@
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1271948660.90108")
+.sub "_block11"  :anon :subid("10_1272455249.42318")
 .annotate "line", 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7167,9 +7167,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post90") :outer("10_1271948660.90108")
+.sub "" :load :init :subid("post90") :outer("10_1272455249.42318")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1271948660.90108" 
+    .const 'Sub' $P12 = "10_1272455249.42318" 
     .local pmc block
     set block, $P12
     $P1570 = get_root_global ["parrot"], "P6metaclass"
@@ -7178,117 +7178,117 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1271948660.90108") :outer("10_1271948660.90108")
+.sub "_block13"  :subid("11_1272455249.42318") :outer("10_1272455249.42318")
 .annotate "line", 4
-    .const 'Sub' $P1536 = "89_1271948660.90108" 
+    .const 'Sub' $P1536 = "89_1272455249.42318" 
     capture_lex $P1536
-    .const 'Sub' $P1467 = "85_1271948660.90108" 
+    .const 'Sub' $P1467 = "85_1272455249.42318" 
     capture_lex $P1467
-    .const 'Sub' $P1399 = "83_1271948660.90108" 
+    .const 'Sub' $P1399 = "83_1272455249.42318" 
     capture_lex $P1399
-    .const 'Sub' $P1326 = "80_1271948660.90108" 
+    .const 'Sub' $P1326 = "80_1272455249.42318" 
     capture_lex $P1326
-    .const 'Sub' $P1312 = "79_1271948660.90108" 
+    .const 'Sub' $P1312 = "79_1272455249.42318" 
     capture_lex $P1312
-    .const 'Sub' $P1288 = "78_1271948660.90108" 
+    .const 'Sub' $P1288 = "78_1272455249.42318" 
     capture_lex $P1288
-    .const 'Sub' $P1270 = "77_1271948660.90108" 
+    .const 'Sub' $P1270 = "77_1272455249.42318" 
     capture_lex $P1270
-    .const 'Sub' $P1256 = "76_1271948660.90108" 
+    .const 'Sub' $P1256 = "76_1272455249.42318" 
     capture_lex $P1256
-    .const 'Sub' $P1243 = "75_1271948660.90108" 
+    .const 'Sub' $P1243 = "75_1272455249.42318" 
     capture_lex $P1243
-    .const 'Sub' $P1212 = "74_1271948660.90108" 
+    .const 'Sub' $P1212 = "74_1272455249.42318" 
     capture_lex $P1212
-    .const 'Sub' $P1181 = "73_1271948660.90108" 
+    .const 'Sub' $P1181 = "73_1272455249.42318" 
     capture_lex $P1181
-    .const 'Sub' $P1165 = "72_1271948660.90108" 
+    .const 'Sub' $P1165 = "72_1272455249.42318" 
     capture_lex $P1165
-    .const 'Sub' $P1149 = "71_1271948660.90108" 
+    .const 'Sub' $P1149 = "71_1272455249.42318" 
     capture_lex $P1149
-    .const 'Sub' $P1133 = "70_1271948660.90108" 
+    .const 'Sub' $P1133 = "70_1272455249.42318" 
     capture_lex $P1133
-    .const 'Sub' $P1117 = "69_1271948660.90108" 
+    .const 'Sub' $P1117 = "69_1272455249.42318" 
     capture_lex $P1117
-    .const 'Sub' $P1101 = "68_1271948660.90108" 
+    .const 'Sub' $P1101 = "68_1272455249.42318" 
     capture_lex $P1101
-    .const 'Sub' $P1085 = "67_1271948660.90108" 
+    .const 'Sub' $P1085 = "67_1272455249.42318" 
     capture_lex $P1085
-    .const 'Sub' $P1069 = "66_1271948660.90108" 
+    .const 'Sub' $P1069 = "66_1272455249.42318" 
     capture_lex $P1069
-    .const 'Sub' $P1045 = "65_1271948660.90108" 
+    .const 'Sub' $P1045 = "65_1272455249.42318" 
     capture_lex $P1045
-    .const 'Sub' $P1030 = "64_1271948660.90108" 
+    .const 'Sub' $P1030 = "64_1272455249.42318" 
     capture_lex $P1030
-    .const 'Sub' $P974 = "63_1271948660.90108" 
+    .const 'Sub' $P974 = "63_1272455249.42318" 
     capture_lex $P974
-    .const 'Sub' $P953 = "62_1271948660.90108" 
+    .const 'Sub' $P953 = "62_1272455249.42318" 
     capture_lex $P953
-    .const 'Sub' $P931 = "61_1271948660.90108" 
+    .const 'Sub' $P931 = "61_1272455249.42318" 
     capture_lex $P931
-    .const 'Sub' $P921 = "60_1271948660.90108" 
+    .const 'Sub' $P921 = "60_1272455249.42318" 
     capture_lex $P921
-    .const 'Sub' $P911 = "59_1271948660.90108" 
+    .const 'Sub' $P911 = "59_1272455249.42318" 
     capture_lex $P911
-    .const 'Sub' $P901 = "58_1271948660.90108" 
+    .const 'Sub' $P901 = "58_1272455249.42318" 
     capture_lex $P901
-    .const 'Sub' $P889 = "57_1271948660.90108" 
+    .const 'Sub' $P889 = "57_1272455249.42318" 
     capture_lex $P889
-    .const 'Sub' $P877 = "56_1271948660.90108" 
+    .const 'Sub' $P877 = "56_1272455249.42318" 
     capture_lex $P877
-    .const 'Sub' $P865 = "55_1271948660.90108" 
+    .const 'Sub' $P865 = "55_1272455249.42318" 
     capture_lex $P865
-    .const 'Sub' $P853 = "54_1271948660.90108" 
+    .const 'Sub' $P853 = "54_1272455249.42318" 
     capture_lex $P853
-    .const 'Sub' $P841 = "53_1271948660.90108" 
+    .const 'Sub' $P841 = "53_1272455249.42318" 
     capture_lex $P841
-    .const 'Sub' $P829 = "52_1271948660.90108" 
+    .const 'Sub' $P829 = "52_1272455249.42318" 
     capture_lex $P829
-    .const 'Sub' $P817 = "51_1271948660.90108" 
+    .const 'Sub' $P817 = "51_1272455249.42318" 
     capture_lex $P817
-    .const 'Sub' $P805 = "50_1271948660.90108" 
+    .const 'Sub' $P805 = "50_1272455249.42318" 
     capture_lex $P805
-    .const 'Sub' $P782 = "49_1271948660.90108" 
+    .const 'Sub' $P782 = "49_1272455249.42318" 
     capture_lex $P782
-    .const 'Sub' $P759 = "48_1271948660.90108" 
+    .const 'Sub' $P759 = "48_1272455249.42318" 
     capture_lex $P759
-    .const 'Sub' $P741 = "47_1271948660.90108" 
+    .const 'Sub' $P741 = "47_1272455249.42318" 
     capture_lex $P741
-    .const 'Sub' $P731 = "46_1271948660.90108" 
+    .const 'Sub' $P731 = "46_1272455249.42318" 
     capture_lex $P731
-    .const 'Sub' $P713 = "45_1271948660.90108" 
+    .const 'Sub' $P713 = "45_1272455249.42318" 
     capture_lex $P713
-    .const 'Sub' $P666 = "44_1271948660.90108" 
+    .const 'Sub' $P666 = "44_1272455249.42318" 
     capture_lex $P666
-    .const 'Sub' $P649 = "43_1271948660.90108" 
+    .const 'Sub' $P649 = "43_1272455249.42318" 
     capture_lex $P649
-    .const 'Sub' $P634 = "42_1271948660.90108" 
+    .const 'Sub' $P634 = "42_1272455249.42318" 
     capture_lex $P634
-    .const 'Sub' $P619 = "41_1271948660.90108" 
+    .const 'Sub' $P619 = "41_1272455249.42318" 
     capture_lex $P619
-    .const 'Sub' $P593 = "40_1271948660.90108" 
+    .const 'Sub' $P593 = "40_1272455249.42318" 
     capture_lex $P593
-    .const 'Sub' $P543 = "38_1271948660.90108" 
+    .const 'Sub' $P543 = "38_1272455249.42318" 
     capture_lex $P543
-    .const 'Sub' $P475 = "36_1271948660.90108" 
+    .const 'Sub' $P475 = "36_1272455249.42318" 
     capture_lex $P475
-    .const 'Sub' $P420 = "33_1271948660.90108" 
+    .const 'Sub' $P420 = "33_1272455249.42318" 
     capture_lex $P420
-    .const 'Sub' $P405 = "32_1271948660.90108" 
+    .const 'Sub' $P405 = "32_1272455249.42318" 
     capture_lex $P405
-    .const 'Sub' $P379 = "30_1271948660.90108" 
+    .const 'Sub' $P379 = "30_1272455249.42318" 
     capture_lex $P379
-    .const 'Sub' $P362 = "29_1271948660.90108" 
+    .const 'Sub' $P362 = "29_1272455249.42318" 
     capture_lex $P362
-    .const 'Sub' $P340 = "28_1271948660.90108" 
+    .const 'Sub' $P340 = "28_1272455249.42318" 
     capture_lex $P340
-    .const 'Sub' $P308 = "27_1271948660.90108" 
+    .const 'Sub' $P308 = "27_1272455249.42318" 
     capture_lex $P308
-    .const 'Sub' $P54 = "14_1271948660.90108" 
+    .const 'Sub' $P54 = "14_1272455249.42318" 
     capture_lex $P54
-    .const 'Sub' $P21 = "13_1271948660.90108" 
+    .const 'Sub' $P21 = "13_1272455249.42318" 
     capture_lex $P21
-    .const 'Sub' $P16 = "12_1271948660.90108" 
+    .const 'Sub' $P16 = "12_1272455249.42318" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
     unless_null $P15, vivify_91
@@ -7296,23 +7296,23 @@
     set_global "@MODIFIERS", $P15
   vivify_91:
 .annotate "line", 6
-    .const 'Sub' $P16 = "12_1271948660.90108" 
+    .const 'Sub' $P16 = "12_1272455249.42318" 
     capture_lex $P16
     .lex "INIT", $P16
 .annotate "line", 479
-    .const 'Sub' $P21 = "13_1271948660.90108" 
+    .const 'Sub' $P21 = "13_1272455249.42318" 
     capture_lex $P21
     .lex "buildsub", $P21
 .annotate "line", 496
-    .const 'Sub' $P54 = "14_1271948660.90108" 
+    .const 'Sub' $P54 = "14_1272455249.42318" 
     capture_lex $P54
     .lex "capnames", $P54
 .annotate "line", 562
-    .const 'Sub' $P308 = "27_1271948660.90108" 
+    .const 'Sub' $P308 = "27_1272455249.42318" 
     capture_lex $P308
     .lex "backmod", $P308
 .annotate "line", 569
-    .const 'Sub' $P340 = "28_1271948660.90108" 
+    .const 'Sub' $P340 = "28_1272455249.42318" 
     capture_lex $P340
     .lex "subrule_alias", $P340
 .annotate "line", 4
@@ -7329,11 +7329,11 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "INIT"  :subid("12_1271948660.90108") :outer("11_1271948660.90108")
+.sub "INIT"  :subid("12_1272455249.42318") :outer("11_1272455249.42318")
 .annotate "line", 6
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
-    $P18."handle_types"(58)
+    $P18."handle_types"(57)
     push_eh $P18
 .annotate "line", 7
 
@@ -7353,14 +7353,14 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub"  :subid("13_1271948660.90108") :outer("11_1271948660.90108")
+.sub "buildsub"  :subid("13_1272455249.42318") :outer("11_1272455249.42318")
     .param pmc param_24
     .param pmc param_25 :optional
     .param int has_param_25 :opt_flag
 .annotate "line", 479
     new $P23, 'ExceptionHandler'
     set_addr $P23, control_22
-    $P23."handle_types"(58)
+    $P23."handle_types"(57)
     push_eh $P23
     .lex "$rpast", param_24
     if has_param_25, optparam_92
@@ -7430,23 +7430,23 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames"  :subid("14_1271948660.90108") :outer("11_1271948660.90108")
+.sub "capnames"  :subid("14_1272455249.42318") :outer("11_1272455249.42318")
     .param pmc param_57
     .param pmc param_58
 .annotate "line", 496
-    .const 'Sub' $P283 = "25_1271948660.90108" 
+    .const 'Sub' $P283 = "25_1272455249.42318" 
     capture_lex $P283
-    .const 'Sub' $P220 = "22_1271948660.90108" 
+    .const 'Sub' $P220 = "22_1272455249.42318" 
     capture_lex $P220
-    .const 'Sub' $P178 = "20_1271948660.90108" 
+    .const 'Sub' $P178 = "20_1272455249.42318" 
     capture_lex $P178
-    .const 'Sub' $P136 = "18_1271948660.90108" 
+    .const 'Sub' $P136 = "18_1272455249.42318" 
     capture_lex $P136
-    .const 'Sub' $P69 = "15_1271948660.90108" 
+    .const 'Sub' $P69 = "15_1272455249.42318" 
     capture_lex $P69
     new $P56, 'ExceptionHandler'
     set_addr $P56, control_55
-    $P56."handle_types"(58)
+    $P56."handle_types"(57)
     push_eh $P56
     .lex "$ast", param_57
     .lex "$count", param_58
@@ -7498,21 +7498,21 @@
     set $S280, $P279
     iseq $I281, $S280, "quant"
     unless $I281, if_278_end
-    .const 'Sub' $P283 = "25_1271948660.90108" 
+    .const 'Sub' $P283 = "25_1272455249.42318" 
     capture_lex $P283
     $P283()
   if_278_end:
     goto if_215_end
   if_215:
 .annotate "line", 534
-    .const 'Sub' $P220 = "22_1271948660.90108" 
+    .const 'Sub' $P220 = "22_1272455249.42318" 
     capture_lex $P220
     $P220()
   if_215_end:
     goto if_168_end
   if_168:
 .annotate "line", 521
-    .const 'Sub' $P178 = "20_1271948660.90108" 
+    .const 'Sub' $P178 = "20_1272455249.42318" 
     capture_lex $P178
     $P178()
   if_168_end:
@@ -7526,13 +7526,13 @@
     iter $P130, $P132
     new $P166, 'ExceptionHandler'
     set_addr $P166, loop165_handler
-    $P166."handle_types"(65, 67, 66)
+    $P166."handle_types"(64, 66, 65)
     push_eh $P166
   loop165_test:
     unless $P130, loop165_done
     shift $P134, $P130
   loop165_redo:
-    .const 'Sub' $P136 = "18_1271948660.90108" 
+    .const 'Sub' $P136 = "18_1272455249.42318" 
     capture_lex $P136
     $P136($P134)
   loop165_next:
@@ -7541,8 +7541,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P167, exception, 'type'
-    eq $P167, 65, loop165_next
-    eq $P167, 67, loop165_redo
+    eq $P167, 64, loop165_next
+    eq $P167, 66, loop165_redo
   loop165_done:
     pop_eh 
   for_undef_114:
@@ -7551,7 +7551,7 @@
     goto if_64_end
   if_64:
 .annotate "line", 499
-    .const 'Sub' $P69 = "15_1271948660.90108" 
+    .const 'Sub' $P69 = "15_1272455249.42318" 
     capture_lex $P69
     $P69()
   if_64_end:
@@ -7575,9 +7575,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block282"  :anon :subid("25_1271948660.90108") :outer("14_1271948660.90108")
+.sub "_block282"  :anon :subid("25_1272455249.42318") :outer("14_1272455249.42318")
 .annotate "line", 551
-    .const 'Sub' $P294 = "26_1271948660.90108" 
+    .const 'Sub' $P294 = "26_1272455249.42318" 
     capture_lex $P294
 .annotate "line", 552
     $P284 = root_new ['parrot';'Hash']
@@ -7600,13 +7600,13 @@
     iter $P289, $P290
     new $P300, 'ExceptionHandler'
     set_addr $P300, loop299_handler
-    $P300."handle_types"(65, 67, 66)
+    $P300."handle_types"(64, 66, 65)
     push_eh $P300
   loop299_test:
     unless $P289, loop299_done
     shift $P292, $P289
   loop299_redo:
-    .const 'Sub' $P294 = "26_1271948660.90108" 
+    .const 'Sub' $P294 = "26_1272455249.42318" 
     capture_lex $P294
     $P294($P292)
   loop299_next:
@@ -7615,8 +7615,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P301, exception, 'type'
-    eq $P301, 65, loop299_next
-    eq $P301, 67, loop299_redo
+    eq $P301, 64, loop299_next
+    eq $P301, 66, loop299_redo
   loop299_done:
     pop_eh 
   for_undef_96:
@@ -7636,7 +7636,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block293"  :anon :subid("26_1271948660.90108") :outer("25_1271948660.90108")
+.sub "_block293"  :anon :subid("26_1272455249.42318") :outer("25_1272455249.42318")
     .param pmc param_295
 .annotate "line", 553
     .lex "$_", param_295
@@ -7656,11 +7656,11 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block219"  :anon :subid("22_1271948660.90108") :outer("14_1271948660.90108")
+.sub "_block219"  :anon :subid("22_1272455249.42318") :outer("14_1272455249.42318")
 .annotate "line", 534
-    .const 'Sub' $P260 = "24_1271948660.90108" 
+    .const 'Sub' $P260 = "24_1272455249.42318" 
     capture_lex $P260
-    .const 'Sub' $P232 = "23_1271948660.90108" 
+    .const 'Sub' $P232 = "23_1272455249.42318" 
     capture_lex $P232
 .annotate "line", 535
     new $P221, "Undef"
@@ -7689,13 +7689,13 @@
     iter $P227, $P228
     new $P249, 'ExceptionHandler'
     set_addr $P249, loop248_handler
-    $P249."handle_types"(65, 67, 66)
+    $P249."handle_types"(64, 66, 65)
     push_eh $P249
   loop248_test:
     unless $P227, loop248_done
     shift $P230, $P227
   loop248_redo:
-    .const 'Sub' $P232 = "23_1271948660.90108" 
+    .const 'Sub' $P232 = "23_1272455249.42318" 
     capture_lex $P232
     $P232($P230)
   loop248_next:
@@ -7704,8 +7704,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P250, exception, 'type'
-    eq $P250, 65, loop248_next
-    eq $P250, 67, loop248_redo
+    eq $P250, 64, loop248_next
+    eq $P250, 66, loop248_redo
   loop248_done:
     pop_eh 
   for_undef_100:
@@ -7728,13 +7728,13 @@
     iter $P255, $P256
     new $P274, 'ExceptionHandler'
     set_addr $P274, loop273_handler
-    $P274."handle_types"(65, 67, 66)
+    $P274."handle_types"(64, 66, 65)
     push_eh $P274
   loop273_test:
     unless $P255, loop273_done
     shift $P258, $P255
   loop273_redo:
-    .const 'Sub' $P260 = "24_1271948660.90108" 
+    .const 'Sub' $P260 = "24_1272455249.42318" 
     capture_lex $P260
     $P260($P258)
   loop273_next:
@@ -7743,8 +7743,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P275, exception, 'type'
-    eq $P275, 65, loop273_next
-    eq $P275, 67, loop273_redo
+    eq $P275, 64, loop273_next
+    eq $P275, 66, loop273_redo
   loop273_done:
     pop_eh 
   for_undef_104:
@@ -7764,7 +7764,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block231"  :anon :subid("23_1271948660.90108") :outer("22_1271948660.90108")
+.sub "_block231"  :anon :subid("23_1272455249.42318") :outer("22_1272455249.42318")
     .param pmc param_233
 .annotate "line", 541
     .lex "$_", param_233
@@ -7804,7 +7804,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block259"  :anon :subid("24_1271948660.90108") :outer("22_1271948660.90108")
+.sub "_block259"  :anon :subid("24_1272455249.42318") :outer("22_1272455249.42318")
     .param pmc param_261
 .annotate "line", 546
     .lex "$_", param_261
@@ -7844,9 +7844,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block177"  :anon :subid("20_1271948660.90108") :outer("14_1271948660.90108")
+.sub "_block177"  :anon :subid("20_1272455249.42318") :outer("14_1272455249.42318")
 .annotate "line", 521
-    .const 'Sub' $P196 = "21_1271948660.90108" 
+    .const 'Sub' $P196 = "21_1272455249.42318" 
     capture_lex $P196
 .annotate "line", 522
     new $P179, "Undef"
@@ -7883,13 +7883,13 @@
     iter $P191, $P192
     new $P213, 'ExceptionHandler'
     set_addr $P213, loop212_handler
-    $P213."handle_types"(65, 67, 66)
+    $P213."handle_types"(64, 66, 65)
     push_eh $P213
   loop212_test:
     unless $P191, loop212_done
     shift $P194, $P191
   loop212_redo:
-    .const 'Sub' $P196 = "21_1271948660.90108" 
+    .const 'Sub' $P196 = "21_1272455249.42318" 
     capture_lex $P196
     $P196($P194)
   loop212_next:
@@ -7898,8 +7898,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P214, exception, 'type'
-    eq $P214, 65, loop212_next
-    eq $P214, 67, loop212_redo
+    eq $P214, 64, loop212_next
+    eq $P214, 66, loop212_redo
   loop212_done:
     pop_eh 
   for_undef_112:
@@ -7909,7 +7909,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block195"  :anon :subid("21_1271948660.90108") :outer("20_1271948660.90108")
+.sub "_block195"  :anon :subid("21_1272455249.42318") :outer("20_1272455249.42318")
     .param pmc param_197
 .annotate "line", 529
     .lex "$_", param_197
@@ -7949,10 +7949,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block135"  :anon :subid("18_1271948660.90108") :outer("14_1271948660.90108")
+.sub "_block135"  :anon :subid("18_1272455249.42318") :outer("14_1272455249.42318")
     .param pmc param_138
 .annotate "line", 513
-    .const 'Sub' $P147 = "19_1271948660.90108" 
+    .const 'Sub' $P147 = "19_1272455249.42318" 
     capture_lex $P147
 .annotate "line", 514
     $P137 = root_new ['parrot';'Hash']
@@ -7969,13 +7969,13 @@
     iter $P142, $P143
     new $P161, 'ExceptionHandler'
     set_addr $P161, loop160_handler
-    $P161."handle_types"(65, 67, 66)
+    $P161."handle_types"(64, 66, 65)
     push_eh $P161
   loop160_test:
     unless $P142, loop160_done
     shift $P145, $P142
   loop160_redo:
-    .const 'Sub' $P147 = "19_1271948660.90108" 
+    .const 'Sub' $P147 = "19_1272455249.42318" 
     capture_lex $P147
     $P147($P145)
   loop160_next:
@@ -7984,8 +7984,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P162, exception, 'type'
-    eq $P162, 65, loop160_next
-    eq $P162, 67, loop160_redo
+    eq $P162, 64, loop160_next
+    eq $P162, 66, loop160_redo
   loop160_done:
     pop_eh 
   for_undef_115:
@@ -8005,7 +8005,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block146"  :anon :subid("19_1271948660.90108") :outer("18_1271948660.90108")
+.sub "_block146"  :anon :subid("19_1272455249.42318") :outer("18_1272455249.42318")
     .param pmc param_148
 .annotate "line", 515
     .lex "$_", param_148
@@ -8045,9 +8045,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block68"  :anon :subid("15_1271948660.90108") :outer("14_1271948660.90108")
+.sub "_block68"  :anon :subid("15_1272455249.42318") :outer("14_1272455249.42318")
 .annotate "line", 499
-    .const 'Sub' $P78 = "16_1271948660.90108" 
+    .const 'Sub' $P78 = "16_1272455249.42318" 
     capture_lex $P78
 .annotate "line", 500
     new $P70, "Undef"
@@ -8062,13 +8062,13 @@
     iter $P72, $P74
     new $P123, 'ExceptionHandler'
     set_addr $P123, loop122_handler
-    $P123."handle_types"(65, 67, 66)
+    $P123."handle_types"(64, 66, 65)
     push_eh $P123
   loop122_test:
     unless $P72, loop122_done
     shift $P76, $P72
   loop122_redo:
-    .const 'Sub' $P78 = "16_1271948660.90108" 
+    .const 'Sub' $P78 = "16_1272455249.42318" 
     capture_lex $P78
     $P78($P76)
   loop122_next:
@@ -8077,8 +8077,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P124, exception, 'type'
-    eq $P124, 65, loop122_next
-    eq $P124, 67, loop122_redo
+    eq $P124, 64, loop122_next
+    eq $P124, 66, loop122_redo
   loop122_done:
     pop_eh 
   for_undef_123:
@@ -8091,10 +8091,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block77"  :anon :subid("16_1271948660.90108") :outer("15_1271948660.90108")
+.sub "_block77"  :anon :subid("16_1272455249.42318") :outer("15_1272455249.42318")
     .param pmc param_80
 .annotate "line", 501
-    .const 'Sub' $P89 = "17_1271948660.90108" 
+    .const 'Sub' $P89 = "17_1272455249.42318" 
     capture_lex $P89
 .annotate "line", 502
     $P79 = root_new ['parrot';'Hash']
@@ -8111,13 +8111,13 @@
     iter $P84, $P85
     new $P110, 'ExceptionHandler'
     set_addr $P110, loop109_handler
-    $P110."handle_types"(65, 67, 66)
+    $P110."handle_types"(64, 66, 65)
     push_eh $P110
   loop109_test:
     unless $P84, loop109_done
     shift $P87, $P84
   loop109_redo:
-    .const 'Sub' $P89 = "17_1271948660.90108" 
+    .const 'Sub' $P89 = "17_1272455249.42318" 
     capture_lex $P89
     $P89($P87)
   loop109_next:
@@ -8126,8 +8126,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P111, exception, 'type'
-    eq $P111, 65, loop109_next
-    eq $P111, 67, loop109_redo
+    eq $P111, 64, loop109_next
+    eq $P111, 66, loop109_redo
   loop109_done:
     pop_eh 
   for_undef_124:
@@ -8166,7 +8166,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block88"  :anon :subid("17_1271948660.90108") :outer("16_1271948660.90108")
+.sub "_block88"  :anon :subid("17_1272455249.42318") :outer("16_1272455249.42318")
     .param pmc param_90
 .annotate "line", 503
     .lex "$_", param_90
@@ -8225,13 +8225,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod"  :subid("27_1271948660.90108") :outer("11_1271948660.90108")
+.sub "backmod"  :subid("27_1272455249.42318") :outer("11_1272455249.42318")
     .param pmc param_311
     .param pmc param_312
 .annotate "line", 562
     new $P310, 'ExceptionHandler'
     set_addr $P310, control_309
-    $P310."handle_types"(58)
+    $P310."handle_types"(57)
     push_eh $P310
     .lex "$ast", param_311
     .lex "$backmod", param_312
@@ -8299,13 +8299,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias"  :subid("28_1271948660.90108") :outer("11_1271948660.90108")
+.sub "subrule_alias"  :subid("28_1272455249.42318") :outer("11_1272455249.42318")
     .param pmc param_343
     .param pmc param_344
 .annotate "line", 569
     new $P342, 'ExceptionHandler'
     set_addr $P342, control_341
-    $P342."handle_types"(58)
+    $P342."handle_types"(57)
     push_eh $P342
     .lex "$past", param_343
     .lex "$name", param_344
@@ -8343,12 +8343,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg"  :subid("29_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "arg"  :subid("29_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_365
 .annotate "line", 14
     new $P364, 'ExceptionHandler'
     set_addr $P364, control_363
-    $P364."handle_types"(58)
+    $P364."handle_types"(57)
     push_eh $P364
     .lex "self", self
     .lex "$/", param_365
@@ -8399,14 +8399,14 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist"  :subid("30_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "arglist"  :subid("30_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_382
 .annotate "line", 18
-    .const 'Sub' $P392 = "31_1271948660.90108" 
+    .const 'Sub' $P392 = "31_1272455249.42318" 
     capture_lex $P392
     new $P381, 'ExceptionHandler'
     set_addr $P381, control_380
-    $P381."handle_types"(58)
+    $P381."handle_types"(57)
     push_eh $P381
     .lex "self", self
     .lex "$/", param_382
@@ -8430,13 +8430,13 @@
     iter $P386, $P388
     new $P399, 'ExceptionHandler'
     set_addr $P399, loop398_handler
-    $P399."handle_types"(65, 67, 66)
+    $P399."handle_types"(64, 66, 65)
     push_eh $P399
   loop398_test:
     unless $P386, loop398_done
     shift $P390, $P386
   loop398_redo:
-    .const 'Sub' $P392 = "31_1271948660.90108" 
+    .const 'Sub' $P392 = "31_1272455249.42318" 
     capture_lex $P392
     $P392($P390)
   loop398_next:
@@ -8445,8 +8445,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P400, exception, 'type'
-    eq $P400, 65, loop398_next
-    eq $P400, 67, loop398_redo
+    eq $P400, 64, loop398_next
+    eq $P400, 66, loop398_redo
   loop398_done:
     pop_eh 
   for_undef_143:
@@ -8465,7 +8465,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block391"  :anon :subid("31_1271948660.90108") :outer("30_1271948660.90108")
+.sub "_block391"  :anon :subid("31_1272455249.42318") :outer("30_1272455249.42318")
     .param pmc param_393
 .annotate "line", 20
     .lex "$_", param_393
@@ -8478,12 +8478,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP"  :subid("32_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "TOP"  :subid("32_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_408
 .annotate "line", 24
     new $P407, 'ExceptionHandler'
     set_addr $P407, control_406
-    $P407."handle_types"(58)
+    $P407."handle_types"(57)
     push_eh $P407
     .lex "self", self
     .lex "$/", param_408
@@ -8520,18 +8520,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler"  :subid("33_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "nibbler"  :subid("33_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_423
     .param pmc param_424 :optional
     .param int has_param_424 :opt_flag
 .annotate "line", 30
-    .const 'Sub' $P458 = "35_1271948660.90108" 
+    .const 'Sub' $P458 = "35_1272455249.42318" 
     capture_lex $P458
-    .const 'Sub' $P432 = "34_1271948660.90108" 
+    .const 'Sub' $P432 = "34_1272455249.42318" 
     capture_lex $P432
     new $P422, 'ExceptionHandler'
     set_addr $P422, control_421
-    $P422."handle_types"(58)
+    $P422."handle_types"(57)
     push_eh $P422
     .lex "self", self
     .lex "$/", param_423
@@ -8548,7 +8548,7 @@
     set $S429, $P428
     iseq $I430, $S429, "open"
     unless $I430, if_427_end
-    .const 'Sub' $P432 = "34_1271948660.90108" 
+    .const 'Sub' $P432 = "34_1272455249.42318" 
     capture_lex $P432
     $P432()
   if_427_end:
@@ -8605,13 +8605,13 @@
     iter $P452, $P454
     new $P465, 'ExceptionHandler'
     set_addr $P465, loop464_handler
-    $P465."handle_types"(65, 67, 66)
+    $P465."handle_types"(64, 66, 65)
     push_eh $P465
   loop464_test:
     unless $P452, loop464_done
     shift $P456, $P452
   loop464_redo:
-    .const 'Sub' $P458 = "35_1271948660.90108" 
+    .const 'Sub' $P458 = "35_1272455249.42318" 
     capture_lex $P458
     $P458($P456)
   loop464_next:
@@ -8620,8 +8620,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P466, exception, 'type'
-    eq $P466, 65, loop464_next
-    eq $P466, 67, loop464_redo
+    eq $P466, 64, loop464_next
+    eq $P466, 66, loop464_redo
   loop464_done:
     pop_eh 
   for_undef_156:
@@ -8641,7 +8641,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block431"  :anon :subid("34_1271948660.90108") :outer("33_1271948660.90108")
+.sub "_block431"  :anon :subid("34_1272455249.42318") :outer("33_1272455249.42318")
 .annotate "line", 32
     $P433 = root_new ['parrot';'Hash']
     .lex "%old", $P433
@@ -8670,7 +8670,7 @@
     $P438."unshift"($P439)
 .annotate "line", 38
     new $P440, "Exception"
-    set $P440['type'], 58
+    set $P440['type'], 57
     new $P441, "Integer"
     assign $P441, 1
     setattribute $P440, 'payload', $P441
@@ -8681,7 +8681,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block457"  :anon :subid("35_1271948660.90108") :outer("33_1271948660.90108")
+.sub "_block457"  :anon :subid("35_1272455249.42318") :outer("33_1272455249.42318")
     .param pmc param_459
 .annotate "line", 45
     .lex "$_", param_459
@@ -8696,14 +8696,14 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish"  :subid("36_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "termish"  :subid("36_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_478
 .annotate "line", 55
-    .const 'Sub' $P491 = "37_1271948660.90108" 
+    .const 'Sub' $P491 = "37_1272455249.42318" 
     capture_lex $P491
     new $P477, 'ExceptionHandler'
     set_addr $P477, control_476
-    $P477."handle_types"(58)
+    $P477."handle_types"(57)
     push_eh $P477
     .lex "self", self
     .lex "$/", param_478
@@ -8736,13 +8736,13 @@
     iter $P485, $P487
     new $P537, 'ExceptionHandler'
     set_addr $P537, loop536_handler
-    $P537."handle_types"(65, 67, 66)
+    $P537."handle_types"(64, 66, 65)
     push_eh $P537
   loop536_test:
     unless $P485, loop536_done
     shift $P489, $P485
   loop536_redo:
-    .const 'Sub' $P491 = "37_1271948660.90108" 
+    .const 'Sub' $P491 = "37_1272455249.42318" 
     capture_lex $P491
     $P491($P489)
   loop536_next:
@@ -8751,8 +8751,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P538, exception, 'type'
-    eq $P538, 65, loop536_next
-    eq $P538, 67, loop536_redo
+    eq $P538, 64, loop536_next
+    eq $P538, 66, loop536_redo
   loop536_done:
     pop_eh 
   for_undef_159:
@@ -8771,7 +8771,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block490"  :anon :subid("37_1271948660.90108") :outer("36_1271948660.90108")
+.sub "_block490"  :anon :subid("37_1272455249.42318") :outer("36_1272455249.42318")
     .param pmc param_493
 .annotate "line", 59
     new $P492, "Undef"
@@ -8898,14 +8898,14 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom"  :subid("38_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "quantified_atom"  :subid("38_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_546
 .annotate "line", 76
-    .const 'Sub' $P555 = "39_1271948660.90108" 
+    .const 'Sub' $P555 = "39_1272455249.42318" 
     capture_lex $P555
     new $P545, 'ExceptionHandler'
     set_addr $P545, control_544
-    $P545."handle_types"(58)
+    $P545."handle_types"(57)
     push_eh $P545
     .lex "self", self
     .lex "$/", param_546
@@ -8964,7 +8964,7 @@
     goto if_551_end
   if_551:
 .annotate "line", 78
-    .const 'Sub' $P555 = "39_1271948660.90108" 
+    .const 'Sub' $P555 = "39_1272455249.42318" 
     capture_lex $P555
     $P555()
   if_551_end:
@@ -9018,7 +9018,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block554"  :anon :subid("39_1271948660.90108") :outer("38_1271948660.90108")
+.sub "_block554"  :anon :subid("39_1272455249.42318") :outer("38_1272455249.42318")
 .annotate "line", 80
     new $P556, "Undef"
     .lex "$qast", $P556
@@ -9057,12 +9057,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom"  :subid("40_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "atom"  :subid("40_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_596
 .annotate "line", 91
     new $P595, 'ExceptionHandler'
     set_addr $P595, control_594
-    $P595."handle_types"(58)
+    $P595."handle_types"(57)
     push_eh $P595
     .lex "self", self
     .lex "$/", param_596
@@ -9135,12 +9135,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>"  :subid("41_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "quantifier:sym<*>"  :subid("41_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_622
 .annotate "line", 101
     new $P621, 'ExceptionHandler'
     set_addr $P621, control_620
-    $P621."handle_types"(58)
+    $P621."handle_types"(57)
     push_eh $P621
     .lex "self", self
     .lex "$/", param_622
@@ -9175,12 +9175,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>"  :subid("42_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "quantifier:sym<+>"  :subid("42_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_637
 .annotate "line", 106
     new $P636, 'ExceptionHandler'
     set_addr $P636, control_635
-    $P636."handle_types"(58)
+    $P636."handle_types"(57)
     push_eh $P636
     .lex "self", self
     .lex "$/", param_637
@@ -9215,12 +9215,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>"  :subid("43_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "quantifier:sym<?>"  :subid("43_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_652
 .annotate "line", 111
     new $P651, 'ExceptionHandler'
     set_addr $P651, control_650
-    $P651."handle_types"(58)
+    $P651."handle_types"(57)
     push_eh $P651
     .lex "self", self
     .lex "$/", param_652
@@ -9259,12 +9259,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>"  :subid("44_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "quantifier:sym<**>"  :subid("44_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_669
 .annotate "line", 117
     new $P668, 'ExceptionHandler'
     set_addr $P668, control_667
-    $P668."handle_types"(58)
+    $P668."handle_types"(57)
     push_eh $P668
     .lex "self", self
     .lex "$/", param_669
@@ -9399,12 +9399,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>"  :subid("45_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<ws>"  :subid("45_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_716
 .annotate "line", 131
     new $P715, 'ExceptionHandler'
     set_addr $P715, control_714
-    $P715."handle_types"(58)
+    $P715."handle_types"(57)
     push_eh $P715
     .lex "self", self
     .lex "$/", param_716
@@ -9451,12 +9451,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>"  :subid("46_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<[ ]>"  :subid("46_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_734
 .annotate "line", 140
     new $P733, 'ExceptionHandler'
     set_addr $P733, control_732
-    $P733."handle_types"(58)
+    $P733."handle_types"(57)
     push_eh $P733
     .lex "self", self
     .lex "$/", param_734
@@ -9483,12 +9483,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>"  :subid("47_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<( )>"  :subid("47_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_744
 .annotate "line", 144
     new $P743, 'ExceptionHandler'
     set_addr $P743, control_742
-    $P743."handle_types"(58)
+    $P743."handle_types"(57)
     push_eh $P743
     .lex "self", self
     .lex "$/", param_744
@@ -9531,12 +9531,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>"  :subid("48_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<'>"  :subid("48_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_762
 .annotate "line", 151
     new $P761, 'ExceptionHandler'
     set_addr $P761, control_760
-    $P761."handle_types"(58)
+    $P761."handle_types"(57)
     push_eh $P761
     .lex "self", self
     .lex "$/", param_762
@@ -9587,12 +9587,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">"  :subid("49_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<\">"  :subid("49_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_785
 .annotate "line", 158
     new $P784, 'ExceptionHandler'
     set_addr $P784, control_783
-    $P784."handle_types"(58)
+    $P784."handle_types"(57)
     push_eh $P784
     .lex "self", self
     .lex "$/", param_785
@@ -9643,12 +9643,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>"  :subid("50_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<.>"  :subid("50_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_808
 .annotate "line", 165
     new $P807, 'ExceptionHandler'
     set_addr $P807, control_806
-    $P807."handle_types"(58)
+    $P807."handle_types"(57)
     push_eh $P807
     .lex "self", self
     .lex "$/", param_808
@@ -9674,12 +9674,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>"  :subid("51_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<^>"  :subid("51_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_820
 .annotate "line", 170
     new $P819, 'ExceptionHandler'
     set_addr $P819, control_818
-    $P819."handle_types"(58)
+    $P819."handle_types"(57)
     push_eh $P819
     .lex "self", self
     .lex "$/", param_820
@@ -9705,12 +9705,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>"  :subid("52_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<^^>"  :subid("52_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_832
 .annotate "line", 175
     new $P831, 'ExceptionHandler'
     set_addr $P831, control_830
-    $P831."handle_types"(58)
+    $P831."handle_types"(57)
     push_eh $P831
     .lex "self", self
     .lex "$/", param_832
@@ -9736,12 +9736,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>"  :subid("53_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<$>"  :subid("53_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_844
 .annotate "line", 180
     new $P843, 'ExceptionHandler'
     set_addr $P843, control_842
-    $P843."handle_types"(58)
+    $P843."handle_types"(57)
     push_eh $P843
     .lex "self", self
     .lex "$/", param_844
@@ -9767,12 +9767,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>"  :subid("54_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<$$>"  :subid("54_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_856
 .annotate "line", 185
     new $P855, 'ExceptionHandler'
     set_addr $P855, control_854
-    $P855."handle_types"(58)
+    $P855."handle_types"(57)
     push_eh $P855
     .lex "self", self
     .lex "$/", param_856
@@ -9798,12 +9798,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>"  :subid("55_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<:::>"  :subid("55_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_868
 .annotate "line", 190
     new $P867, 'ExceptionHandler'
     set_addr $P867, control_866
-    $P867."handle_types"(58)
+    $P867."handle_types"(57)
     push_eh $P867
     .lex "self", self
     .lex "$/", param_868
@@ -9829,12 +9829,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>"  :subid("56_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<lwb>"  :subid("56_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_880
 .annotate "line", 195
     new $P879, 'ExceptionHandler'
     set_addr $P879, control_878
-    $P879."handle_types"(58)
+    $P879."handle_types"(57)
     push_eh $P879
     .lex "self", self
     .lex "$/", param_880
@@ -9860,12 +9860,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>"  :subid("57_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<rwb>"  :subid("57_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_892
 .annotate "line", 200
     new $P891, 'ExceptionHandler'
     set_addr $P891, control_890
-    $P891."handle_types"(58)
+    $P891."handle_types"(57)
     push_eh $P891
     .lex "self", self
     .lex "$/", param_892
@@ -9891,12 +9891,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>"  :subid("58_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<bs>"  :subid("58_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_904
 .annotate "line", 205
     new $P903, 'ExceptionHandler'
     set_addr $P903, control_902
-    $P903."handle_types"(58)
+    $P903."handle_types"(57)
     push_eh $P903
     .lex "self", self
     .lex "$/", param_904
@@ -9923,12 +9923,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>"  :subid("59_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<mod>"  :subid("59_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_914
 .annotate "line", 209
     new $P913, 'ExceptionHandler'
     set_addr $P913, control_912
-    $P913."handle_types"(58)
+    $P913."handle_types"(57)
     push_eh $P913
     .lex "self", self
     .lex "$/", param_914
@@ -9955,12 +9955,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>"  :subid("60_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<assert>"  :subid("60_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_924
 .annotate "line", 213
     new $P923, 'ExceptionHandler'
     set_addr $P923, control_922
-    $P923."handle_types"(58)
+    $P923."handle_types"(57)
     push_eh $P923
     .lex "self", self
     .lex "$/", param_924
@@ -9987,12 +9987,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>"  :subid("61_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<~>"  :subid("61_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_934
 .annotate "line", 217
     new $P933, 'ExceptionHandler'
     set_addr $P933, control_932
-    $P933."handle_types"(58)
+    $P933."handle_types"(57)
     push_eh $P933
     .lex "self", self
     .lex "$/", param_934
@@ -10049,12 +10049,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>"  :subid("62_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<{*}>"  :subid("62_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_956
 .annotate "line", 230
     new $P955, 'ExceptionHandler'
     set_addr $P955, control_954
-    $P955."handle_types"(58)
+    $P955."handle_types"(57)
     push_eh $P955
     .lex "self", self
     .lex "$/", param_956
@@ -10110,12 +10110,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>"  :subid("63_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<var>"  :subid("63_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_977
 .annotate "line", 237
     new $P976, 'ExceptionHandler'
     set_addr $P976, control_975
-    $P976."handle_types"(58)
+    $P976."handle_types"(57)
     push_eh $P976
     .lex "self", self
     .lex "$/", param_977
@@ -10270,12 +10270,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>"  :subid("64_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "metachar:sym<PIR>"  :subid("64_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1033
 .annotate "line", 257
     new $P1032, 'ExceptionHandler'
     set_addr $P1032, control_1031
-    $P1032."handle_types"(58)
+    $P1032."handle_types"(57)
     push_eh $P1032
     .lex "self", self
     .lex "$/", param_1033
@@ -10309,12 +10309,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>"  :subid("65_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<w>"  :subid("65_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1048
 .annotate "line", 265
     new $P1047, 'ExceptionHandler'
     set_addr $P1047, control_1046
-    $P1047."handle_types"(58)
+    $P1047."handle_types"(57)
     push_eh $P1047
     .lex "self", self
     .lex "$/", param_1048
@@ -10375,12 +10375,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>"  :subid("66_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<b>"  :subid("66_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1072
 .annotate "line", 271
     new $P1071, 'ExceptionHandler'
     set_addr $P1071, control_1070
-    $P1071."handle_types"(58)
+    $P1071."handle_types"(57)
     push_eh $P1071
     .lex "self", self
     .lex "$/", param_1072
@@ -10418,12 +10418,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>"  :subid("67_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<e>"  :subid("67_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1088
 .annotate "line", 277
     new $P1087, 'ExceptionHandler'
     set_addr $P1087, control_1086
-    $P1087."handle_types"(58)
+    $P1087."handle_types"(57)
     push_eh $P1087
     .lex "self", self
     .lex "$/", param_1088
@@ -10461,12 +10461,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>"  :subid("68_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<f>"  :subid("68_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1104
 .annotate "line", 283
     new $P1103, 'ExceptionHandler'
     set_addr $P1103, control_1102
-    $P1103."handle_types"(58)
+    $P1103."handle_types"(57)
     push_eh $P1103
     .lex "self", self
     .lex "$/", param_1104
@@ -10504,12 +10504,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>"  :subid("69_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<h>"  :subid("69_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1120
 .annotate "line", 289
     new $P1119, 'ExceptionHandler'
     set_addr $P1119, control_1118
-    $P1119."handle_types"(58)
+    $P1119."handle_types"(57)
     push_eh $P1119
     .lex "self", self
     .lex "$/", param_1120
@@ -10547,12 +10547,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>"  :subid("70_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<r>"  :subid("70_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1136
 .annotate "line", 295
     new $P1135, 'ExceptionHandler'
     set_addr $P1135, control_1134
-    $P1135."handle_types"(58)
+    $P1135."handle_types"(57)
     push_eh $P1135
     .lex "self", self
     .lex "$/", param_1136
@@ -10590,12 +10590,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>"  :subid("71_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<t>"  :subid("71_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1152
 .annotate "line", 301
     new $P1151, 'ExceptionHandler'
     set_addr $P1151, control_1150
-    $P1151."handle_types"(58)
+    $P1151."handle_types"(57)
     push_eh $P1151
     .lex "self", self
     .lex "$/", param_1152
@@ -10633,12 +10633,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>"  :subid("72_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<v>"  :subid("72_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1168
 .annotate "line", 307
     new $P1167, 'ExceptionHandler'
     set_addr $P1167, control_1166
-    $P1167."handle_types"(58)
+    $P1167."handle_types"(57)
     push_eh $P1167
     .lex "self", self
     .lex "$/", param_1168
@@ -10676,12 +10676,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>"  :subid("73_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<o>"  :subid("73_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1184
 .annotate "line", 314
     new $P1183, 'ExceptionHandler'
     set_addr $P1183, control_1182
-    $P1183."handle_types"(58)
+    $P1183."handle_types"(57)
     push_eh $P1183
     .lex "self", self
     .lex "$/", param_1184
@@ -10759,12 +10759,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>"  :subid("74_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<x>"  :subid("74_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1215
 .annotate "line", 323
     new $P1214, 'ExceptionHandler'
     set_addr $P1214, control_1213
-    $P1214."handle_types"(58)
+    $P1214."handle_types"(57)
     push_eh $P1214
     .lex "self", self
     .lex "$/", param_1215
@@ -10842,12 +10842,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<c>"  :subid("75_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<c>"  :subid("75_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1246
 .annotate "line", 332
     new $P1245, 'ExceptionHandler'
     set_addr $P1245, control_1244
-    $P1245."handle_types"(58)
+    $P1245."handle_types"(57)
     push_eh $P1245
     .lex "self", self
     .lex "$/", param_1246
@@ -10877,12 +10877,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>"  :subid("76_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "backslash:sym<misc>"  :subid("76_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1259
 .annotate "line", 336
     new $P1258, 'ExceptionHandler'
     set_addr $P1258, control_1257
-    $P1258."handle_types"(58)
+    $P1258."handle_types"(57)
     push_eh $P1258
     .lex "self", self
     .lex "$/", param_1259
@@ -10910,12 +10910,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>"  :subid("77_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "assertion:sym<?>"  :subid("77_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1273
 .annotate "line", 342
     new $P1272, 'ExceptionHandler'
     set_addr $P1272, control_1271
-    $P1272."handle_types"(58)
+    $P1272."handle_types"(57)
     push_eh $P1272
     .lex "self", self
     .lex "$/", param_1273
@@ -10970,12 +10970,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>"  :subid("78_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "assertion:sym<!>"  :subid("78_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1291
 .annotate "line", 352
     new $P1290, 'ExceptionHandler'
     set_addr $P1290, control_1289
-    $P1290."handle_types"(58)
+    $P1290."handle_types"(57)
     push_eh $P1290
     .lex "self", self
     .lex "$/", param_1291
@@ -11038,12 +11038,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>"  :subid("79_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "assertion:sym<method>"  :subid("79_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1315
 .annotate "line", 365
     new $P1314, 'ExceptionHandler'
     set_addr $P1314, control_1313
-    $P1314."handle_types"(58)
+    $P1314."handle_types"(57)
     push_eh $P1314
     .lex "self", self
     .lex "$/", param_1315
@@ -11081,16 +11081,16 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>"  :subid("80_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "assertion:sym<name>"  :subid("80_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1329
 .annotate "line", 372
-    .const 'Sub' $P1387 = "82_1271948660.90108" 
+    .const 'Sub' $P1387 = "82_1272455249.42318" 
     capture_lex $P1387
-    .const 'Sub' $P1351 = "81_1271948660.90108" 
+    .const 'Sub' $P1351 = "81_1272455249.42318" 
     capture_lex $P1351
     new $P1328, 'ExceptionHandler'
     set_addr $P1328, control_1327
-    $P1328."handle_types"(58)
+    $P1328."handle_types"(57)
     push_eh $P1328
     .lex "self", self
     .lex "$/", param_1329
@@ -11176,13 +11176,13 @@
     iter $P1378, $P1383
     new $P1393, 'ExceptionHandler'
     set_addr $P1393, loop1392_handler
-    $P1393."handle_types"(65, 67, 66)
+    $P1393."handle_types"(64, 66, 65)
     push_eh $P1393
   loop1392_test:
     unless $P1378, loop1392_done
     shift $P1385, $P1378
   loop1392_redo:
-    .const 'Sub' $P1387 = "82_1271948660.90108" 
+    .const 'Sub' $P1387 = "82_1272455249.42318" 
     capture_lex $P1387
     $P1387($P1385)
   loop1392_next:
@@ -11191,8 +11191,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1394, exception, 'type'
-    eq $P1394, 65, loop1392_next
-    eq $P1394, 67, loop1392_redo
+    eq $P1394, 64, loop1392_next
+    eq $P1394, 66, loop1392_redo
   loop1392_done:
     pop_eh 
   for_undef_316:
@@ -11222,7 +11222,7 @@
     goto if_1346_end
   if_1346:
 .annotate "line", 379
-    .const 'Sub' $P1351 = "81_1271948660.90108" 
+    .const 'Sub' $P1351 = "81_1272455249.42318" 
     capture_lex $P1351
     $P1351()
   if_1346_end:
@@ -11263,7 +11263,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1386"  :anon :subid("82_1271948660.90108") :outer("80_1271948660.90108")
+.sub "_block1386"  :anon :subid("82_1272455249.42318") :outer("80_1272455249.42318")
     .param pmc param_1388
 .annotate "line", 401
     .lex "$_", param_1388
@@ -11275,7 +11275,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1350"  :anon :subid("81_1271948660.90108") :outer("80_1271948660.90108")
+.sub "_block1350"  :anon :subid("81_1272455249.42318") :outer("80_1272455249.42318")
 .annotate "line", 380
     new $P1352, "Undef"
     .lex "$regexsym", $P1352
@@ -11285,7 +11285,7 @@
             $I0 = index $S0, ':sym<'
             add $I0, 5
             $S0 = substr $S0, $I0
-            chopn $S0, 1
+            $S0 = chopn $S0, 1
             $P1353 = box $S0
         
     store_lex "$regexsym", $P1353
@@ -11306,14 +11306,14 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>"  :subid("83_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "assertion:sym<[>"  :subid("83_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1402
 .annotate "line", 407
-    .const 'Sub' $P1437 = "84_1271948660.90108" 
+    .const 'Sub' $P1437 = "84_1272455249.42318" 
     capture_lex $P1437
     new $P1401, 'ExceptionHandler'
     set_addr $P1401, control_1400
-    $P1401."handle_types"(58)
+    $P1401."handle_types"(57)
     push_eh $P1401
     .lex "self", self
     .lex "$/", param_1402
@@ -11391,7 +11391,7 @@
 .annotate "line", 420
     new $P1461, 'ExceptionHandler'
     set_addr $P1461, loop1460_handler
-    $P1461."handle_types"(65, 67, 66)
+    $P1461."handle_types"(64, 66, 65)
     push_eh $P1461
   loop1460_test:
     find_lex $P1431, "$i"
@@ -11401,7 +11401,7 @@
     islt $I1435, $N1432, $N1434
     unless $I1435, loop1460_done
   loop1460_redo:
-    .const 'Sub' $P1437 = "84_1271948660.90108" 
+    .const 'Sub' $P1437 = "84_1272455249.42318" 
     capture_lex $P1437
     $P1437()
   loop1460_next:
@@ -11410,8 +11410,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1462, exception, 'type'
-    eq $P1462, 65, loop1460_next
-    eq $P1462, 67, loop1460_redo
+    eq $P1462, 64, loop1460_next
+    eq $P1462, 66, loop1460_redo
   loop1460_done:
     pop_eh 
 .annotate "line", 431
@@ -11429,7 +11429,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1436"  :anon :subid("84_1271948660.90108") :outer("83_1271948660.90108")
+.sub "_block1436"  :anon :subid("84_1272455249.42318") :outer("83_1272455249.42318")
 .annotate "line", 421
     new $P1438, "Undef"
     .lex "$ast", $P1438
@@ -11480,16 +11480,16 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem"  :subid("85_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "cclass_elem"  :subid("85_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1470
 .annotate "line", 434
-    .const 'Sub' $P1495 = "87_1271948660.90108" 
+    .const 'Sub' $P1495 = "87_1272455249.42318" 
     capture_lex $P1495
-    .const 'Sub' $P1479 = "86_1271948660.90108" 
+    .const 'Sub' $P1479 = "86_1272455249.42318" 
     capture_lex $P1479
     new $P1469, 'ExceptionHandler'
     set_addr $P1469, control_1468
-    $P1469."handle_types"(58)
+    $P1469."handle_types"(57)
     push_eh $P1469
     .lex "self", self
     .lex "$/", param_1470
@@ -11528,13 +11528,13 @@
     iter $P1489, $P1491
     new $P1521, 'ExceptionHandler'
     set_addr $P1521, loop1520_handler
-    $P1521."handle_types"(65, 67, 66)
+    $P1521."handle_types"(64, 66, 65)
     push_eh $P1521
   loop1520_test:
     unless $P1489, loop1520_done
     shift $P1493, $P1489
   loop1520_redo:
-    .const 'Sub' $P1495 = "87_1271948660.90108" 
+    .const 'Sub' $P1495 = "87_1272455249.42318" 
     capture_lex $P1495
     $P1495($P1493)
   loop1520_next:
@@ -11543,8 +11543,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1522, exception, 'type'
-    eq $P1522, 65, loop1520_next
-    eq $P1522, 67, loop1520_redo
+    eq $P1522, 64, loop1520_next
+    eq $P1522, 66, loop1520_redo
   loop1520_done:
     pop_eh 
   for_undef_333:
@@ -11558,7 +11558,7 @@
     goto if_1475_end
   if_1475:
 .annotate "line", 437
-    .const 'Sub' $P1479 = "86_1271948660.90108" 
+    .const 'Sub' $P1479 = "86_1272455249.42318" 
     capture_lex $P1479
     $P1479()
   if_1475_end:
@@ -11590,10 +11590,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1494"  :anon :subid("87_1271948660.90108") :outer("85_1271948660.90108")
+.sub "_block1494"  :anon :subid("87_1272455249.42318") :outer("85_1272455249.42318")
     .param pmc param_1496
 .annotate "line", 441
-    .const 'Sub' $P1502 = "88_1271948660.90108" 
+    .const 'Sub' $P1502 = "88_1272455249.42318" 
     capture_lex $P1502
     .lex "$_", param_1496
 .annotate "line", 442
@@ -11622,7 +11622,7 @@
 .annotate "line", 442
     goto if_1498_end
   if_1498:
-    .const 'Sub' $P1502 = "88_1271948660.90108" 
+    .const 'Sub' $P1502 = "88_1272455249.42318" 
     capture_lex $P1502
     $P1515 = $P1502()
     set $P1497, $P1515
@@ -11633,7 +11633,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1501"  :anon :subid("88_1271948660.90108") :outer("87_1271948660.90108")
+.sub "_block1501"  :anon :subid("88_1272455249.42318") :outer("87_1272455249.42318")
 .annotate "line", 443
     new $P1503, "Undef"
     .lex "$a", $P1503
@@ -11697,7 +11697,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1478"  :anon :subid("86_1271948660.90108") :outer("85_1271948660.90108")
+.sub "_block1478"  :anon :subid("86_1272455249.42318") :outer("85_1272455249.42318")
 .annotate "line", 438
     new $P1480, "Undef"
     .lex "$name", $P1480
@@ -11725,12 +11725,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal"  :subid("89_1271948660.90108") :method :outer("11_1271948660.90108")
+.sub "mod_internal"  :subid("89_1272455249.42318") :method :outer("11_1272455249.42318")
     .param pmc param_1539
 .annotate "line", 472
     new $P1538, 'ExceptionHandler'
     set_addr $P1538, control_1537
-    $P1538."handle_types"(58)
+    $P1538."handle_types"(57)
     push_eh $P1538
     .lex "self", self
     .lex "$/", param_1539

Modified: branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/Regex-s0.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/ext/nqp-rx/src/stage0/Regex-s0.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1036,7 +1036,7 @@
   cand_done:
   token_next:
     unless token > '' goto fail
-    chopn token, 1
+    token = chopn token, 1
     goto token_loop
 
   done:

Modified: branches/include_dynpmc_makefile/include/parrot/charset.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/charset.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/charset.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,13 +1,9 @@
 /* charset.h
- *  Copyright (C) 2004-2008, Parrot Foundation.
+ *  Copyright (C) 2004-2010, Parrot Foundation.
  *  SVN Info
  *     $Id$
  *  Overview:
  *     This is the header for the 8-bit fixed-width encoding
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
  */
 
 #ifndef PARROT_CHARSET_H_GUARD
@@ -33,45 +29,44 @@
 #define PARROT_BINARY_CHARSET Parrot_binary_charset_ptr
 #define PARROT_UNICODE_CHARSET Parrot_unicode_charset_ptr
 
-typedef STRING *(*charset_get_graphemes_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset, UINTVAL count);
+typedef STRING * (*charset_get_graphemes_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count);
+typedef STRING * (*charset_to_charset_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_from_unicode_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_compose_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_decompose_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_upcase_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_downcase_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_titlecase_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_upcase_first_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_downcase_first_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef STRING * (*charset_titlecase_first_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef INTVAL   (*charset_compare_t)(PARROT_INTERP, ARGIN(const STRING *lhs), ARGIN(const STRING *rhs));
+typedef INTVAL   (*charset_index_t)(PARROT_INTERP, ARGIN(const STRING *src), ARGIN(const STRING *search_string), UINTVAL offset);
+typedef INTVAL   (*charset_rindex_t)(PARROT_INTERP, ARGIN(const STRING *src), ARGIN(const STRING *search_string), UINTVAL offset);
+typedef UINTVAL  (*charset_validate_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef INTVAL   (*charset_is_cclass_t)(PARROT_INTERP, INTVAL, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_cclass_t)(PARROT_INTERP, INTVAL, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count);
+typedef INTVAL   (*charset_find_not_cclass_t)(PARROT_INTERP, INTVAL, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count);
+typedef INTVAL   (*charset_is_wordchar_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_wordchar_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_not_wordchar_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_is_whitespace_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_whitespace_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_not_whitespace_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_is_digit_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_digit_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_not_digit_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_is_punctuation_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_punctuation_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_not_punctuation_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_is_newline_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_newline_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_not_newline_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef INTVAL   (*charset_find_word_boundary_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef STRING * (*charset_string_from_codepoint_t)(PARROT_INTERP, UINTVAL codepoint);
+typedef size_t   (*charset_compute_hash_t)(PARROT_INTERP, ARGIN(const STRING *src), size_t seed);
 
-typedef STRING * (*charset_to_charset_t)(PARROT_INTERP, STRING *source_string);
-typedef STRING * (*charset_from_unicode_t)(PARROT_INTERP, STRING *source_string);
-typedef STRING* (*charset_compose_t)(PARROT_INTERP, STRING *source_string);
-typedef STRING* (*charset_decompose_t)(PARROT_INTERP, STRING *source_string);
-typedef STRING* (*charset_upcase_t)(PARROT_INTERP, const STRING *source_string);
-typedef STRING* (*charset_downcase_t)(PARROT_INTERP, const STRING *source_string);
-typedef STRING* (*charset_titlecase_t)(PARROT_INTERP, const STRING *source_string);
-typedef STRING* (*charset_upcase_first_t)(PARROT_INTERP, const STRING *source_string);
-typedef STRING* (*charset_downcase_first_t)(PARROT_INTERP, const STRING *source_string);
-typedef STRING* (*charset_titlecase_first_t)(PARROT_INTERP, const STRING *source_string);
-typedef INTVAL (*charset_compare_t)(PARROT_INTERP, const STRING *lhs, const STRING *rhs);
-typedef INTVAL (*charset_index_t)(PARROT_INTERP, STRING *source_string, STRING *search_string, UINTVAL offset);
-typedef INTVAL (*charset_rindex_t)(PARROT_INTERP, STRING *source_string, STRING *search_string, UINTVAL offset);
-typedef UINTVAL (*charset_validate_t)(PARROT_INTERP, STRING *source_string);
-typedef INTVAL (*charset_is_cclass_t)(PARROT_INTERP, INTVAL, const STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_cclass_t)(PARROT_INTERP, INTVAL, STRING *source_string, UINTVAL offset, UINTVAL count);
-typedef INTVAL (*charset_find_not_cclass_t)(PARROT_INTERP, INTVAL, STRING *source_string, UINTVAL offset, UINTVAL count);
-typedef INTVAL (*charset_is_wordchar_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_wordchar_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_not_wordchar_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_is_whitespace_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_whitespace_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_not_whitespace_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_is_digit_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_digit_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_not_digit_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_is_punctuation_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_punctuation_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_not_punctuation_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_is_newline_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_newline_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_not_newline_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_word_boundary_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset);
-typedef STRING *(*charset_string_from_codepoint_t)(PARROT_INTERP, UINTVAL codepoint);
-typedef size_t (*charset_compute_hash_t)(PARROT_INTERP, const STRING *, size_t seed);
-
-typedef STRING* (*charset_converter_t)(PARROT_INTERP, STRING *src);
+typedef STRING * (*charset_converter_t)(PARROT_INTERP, ARGIN(const STRING *src));
 
 /* HEADERIZER BEGIN: src/string/charset.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */

Modified: branches/include_dynpmc_makefile/include/parrot/context.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/context.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/context.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -214,11 +214,6 @@
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-size_t Parrot_pcc_get_pred_offset_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
 UINTVAL Parrot_pcc_get_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -316,13 +311,6 @@
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_pred_offset_func(PARROT_INTERP,
-    ARGIN(PMC *ctx),
-    size_t pred_offset)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
 void Parrot_pcc_set_signature_func(PARROT_INTERP,
     ARGIN(PMC *ctx),
     ARGIN_NULLOK(PMC *sig_object))
@@ -431,10 +419,6 @@
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(ctx))
-#define ASSERT_ARGS_Parrot_pcc_get_pred_offset_func \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_recursion_depth_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
@@ -486,10 +470,6 @@
 #define ASSERT_ARGS_Parrot_pcc_set_pc_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(ctx))
-#define ASSERT_ARGS_Parrot_pcc_set_pred_offset_func \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_signature_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(ctx))
@@ -533,9 +513,6 @@
 #  define Parrot_pcc_get_namespace(i, c) (__C(c)->current_namespace)
 #  define Parrot_pcc_set_namespace(i, c, value) (__C(c)->current_namespace = (value))
 
-#  define Parrot_pcc_get_pred_offset(i, c) (__C(c)->pred_offset)
-#  define Parrot_pcc_set_pred_offset(i, c, value) (__C(c)->pred_offset = (value))
-
 #  define Parrot_pcc_get_pc(i, c) (__C(c)->current_pc)
 #  define Parrot_pcc_set_pc(i, c, value) (__C(c)->current_pc = (value))
 
@@ -594,9 +571,6 @@
 #  define Parrot_pcc_get_namespace(i, c) Parrot_pcc_get_namespace_func((i), (c))
 #  define Parrot_pcc_set_namespace(i, c, value) Parrot_pcc_set_namespace_func((i), (c), (value))
 
-#  define Parrot_pcc_get_pred_offset(i, c) Parrot_pcc_get_pred_offset_func((i), (c))
-#  define Parrot_pcc_set_pred_offset(i, c, value) Parrot_pcc_set_pred_offset_func((i), (c), (value))
-
 #  define Parrot_pcc_get_pc(i, c) Parrot_pcc_get_pc_func((i), (c))
 #  define Parrot_pcc_set_pc(i, c, value) Parrot_pcc_set_pc_func((i), (c), (value))
 

Modified: branches/include_dynpmc_makefile/include/parrot/debugger.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/debugger.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/debugger.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -200,9 +200,9 @@
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
-void Parrot_debugger_start(PARROT_INTERP, ARGIN(opcode_t * cur_opcode))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+void Parrot_debugger_start(PARROT_INTERP,
+    ARGIN_NULLOK(opcode_t * cur_opcode))
+        __attribute__nonnull__(1);
 
 PARROT_EXPORT
 void PDB_load_source(PARROT_INTERP, ARGIN(const char *command))
@@ -371,8 +371,7 @@
 #define ASSERT_ARGS_Parrot_debugger_load __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_debugger_start __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(cur_opcode))
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_PDB_load_source __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(command))

Modified: branches/include_dynpmc_makefile/include/parrot/embed.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/embed.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/embed.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -73,6 +73,8 @@
 
 PARROT_EXPORT void Parrot_run_native(PARROT_INTERP, native_func_t func);
 
+PARROT_EXPORT void Parrot_load_bytecode(PARROT_INTERP, Parrot_String file_str);
+
 /* Parrot_set_config_hash exists in *_config.o (e.g install_config.o),
    so if you make this call then you will need to link with it in
    addition to libparrot */

Modified: branches/include_dynpmc_makefile/include/parrot/encoding.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/encoding.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/encoding.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -15,16 +15,16 @@
 
 #include "parrot/parrot.h"
 
-typedef STRING * (*encoding_to_encoding_t)(PARROT_INTERP, NOTNULL(const STRING *src));
-typedef UINTVAL (*encoding_get_codepoint_t)(PARROT_INTERP, const STRING *src, UINTVAL offset);
-typedef UINTVAL (*encoding_get_byte_t)(PARROT_INTERP, const STRING *src, UINTVAL offset);
-typedef void (*encoding_set_byte_t)(PARROT_INTERP, const STRING *src, UINTVAL offset, UINTVAL count);
-typedef STRING *(*encoding_get_codepoints_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count);
-typedef STRING *(*encoding_get_bytes_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count);
-typedef UINTVAL (*encoding_codepoints_t)(PARROT_INTERP, ARGIN(const STRING *src));
-typedef UINTVAL (*encoding_bytes_t)(PARROT_INTERP, ARGIN(const STRING *src));
-typedef UINTVAL (*encoding_find_cclass_t)(PARROT_INTERP, STRING *s, const INTVAL *typetable, INTVAL flags, UINTVAL offset, UINTVAL count);
-typedef size_t (*encoding_hash_t)(PARROT_INTERP, const STRING *s, size_t hashval);
+typedef STRING * (*encoding_to_encoding_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef UINTVAL  (*encoding_get_codepoint_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef UINTVAL  (*encoding_get_byte_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset);
+typedef void     (*encoding_set_byte_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count);
+typedef STRING * (*encoding_get_codepoints_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count);
+typedef STRING * (*encoding_get_bytes_t)(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count);
+typedef UINTVAL  (*encoding_codepoints_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef UINTVAL  (*encoding_bytes_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef UINTVAL  (*encoding_find_cclass_t)(PARROT_INTERP, ARGIN(const STRING *s), ARGIN(const INTVAL *typetable), INTVAL flags, UINTVAL offset, UINTVAL count);
+typedef size_t   (*encoding_hash_t)(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval);
 
 /* iterator support */
 

Modified: branches/include_dynpmc_makefile/include/parrot/exceptions.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/exceptions.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/exceptions.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -51,7 +51,6 @@
     EXCEPTION_JIT_UNAVAILABLE,
     EXCEPTION_EXEC_UNAVAILABLE,
     EXCEPTION_INTERP_ERROR,
-    EXCEPTION_PREDEREF_LOAD_ERROR,
     EXCEPTION_PARROT_USAGE_ERROR,
     EXCEPTION_PIO_ERROR,
     EXCEPTION_PARROT_POINTER_ERROR,

Modified: branches/include_dynpmc_makefile/include/parrot/gc_api.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/gc_api.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/gc_api.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -31,6 +31,8 @@
 #define WORD_ALIGN_1 (sizeof (void *) - 1)
 #define WORD_ALIGN_MASK ~WORD_ALIGN_1
 
+#define ALIGNED_STRING_SIZE(len) (((len) + sizeof (void*) + WORD_ALIGN_1) & WORD_ALIGN_MASK)
+
 /* pool iteration */
 typedef enum {
     POOL_PMC    = 0x01,

Modified: branches/include_dynpmc_makefile/include/parrot/hash.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/hash.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/hash.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,13 +1,9 @@
 /* hash.h
- *  Copyright (C) 2001-2003, Parrot Foundation.
+ *  Copyright (C) 2001-2010, Parrot Foundation.
  *  SVN Info
  *     $Id$
  *  Overview:
  *     Hashtable implementation
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
  */
 
 #ifndef PARROT_HASH_H_GUARD

Modified: branches/include_dynpmc_makefile/include/parrot/interpreter.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/interpreter.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/interpreter.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -64,9 +64,6 @@
     PARROT_SLOW_CORE,                       /* slow bounds/trace/profile core */
     PARROT_FUNCTION_CORE    = PARROT_SLOW_CORE,
     PARROT_FAST_CORE        = 0x01,         /* fast DO_OP core */
-    PARROT_SWITCH_CORE      = 0x02,         /*   P   = prederef   */
-    PARROT_CGP_CORE         = 0x06,         /*  CP                */
-    PARROT_CGOTO_CORE       = 0x04,         /*  C    = cgoto      */
     PARROT_EXEC_CORE        = 0x20,         /* TODO Parrot_exec_run variants */
     PARROT_GC_DEBUG_CORE    = 0x40,         /* run GC before each op */
     PARROT_DEBUGGER_CORE    = 0x80,         /* used by parrot debugger */
@@ -152,18 +149,6 @@
 struct _Thread_data;    /* in thread.h */
 struct _Caches;         /* caches .h */
 
-typedef struct _Prederef_branch {       /* item for recording branches */
-    size_t offs;                        /* offset in code */
-    void  *op;                          /* opcode at that position */
-} Prederef_branch;
-
-typedef struct _Prederef {
-    void **code;                        /* prederefed code */
-    Prederef_branch *branches;          /* list of branches in code */
-    size_t n_branches;                  /* entries in that list */
-    size_t n_allocated;                 /* allocated size of it */
-} Prederef;
-
 /* Get Context from interpreter */
 #define CONTEXT(interp)         Parrot_pcc_get_context_struct((interp), (interp)->ctx)
 

Modified: branches/include_dynpmc_makefile/include/parrot/io.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/io.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/io.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -495,7 +495,7 @@
 
 size_t Parrot_io_write_buffer(PARROT_INTERP,
     ARGMOD(PMC *filehandle),
-    ARGIN(STRING *s))
+    ARGIN(const STRING *s))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3)
@@ -552,12 +552,11 @@
 
 size_t Parrot_io_write_utf8(PARROT_INTERP,
     ARGMOD(PMC *filehandle),
-    ARGMOD(STRING *s))
+    ARGIN(const STRING *s))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3)
-        FUNC_MODIFIES(*filehandle)
-        FUNC_MODIFIES(*s);
+        FUNC_MODIFIES(*filehandle);
 
 #define ASSERT_ARGS_Parrot_io_read_utf8 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \

Modified: branches/include_dynpmc_makefile/include/parrot/io_portable.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/io_portable.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/io_portable.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -36,7 +36,9 @@
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*filehandle);
 
-INTVAL Parrot_io_flush_portable(SHIM_INTERP, SHIM(PMC *filehandle));
+INTVAL Parrot_io_flush_portable(SHIM_INTERP, ARGIN(PMC *filehandle))
+        __attribute__nonnull__(2);
+
 INTVAL Parrot_io_getblksize_portable(PIOHANDLE fptr);
 INTVAL Parrot_io_init_portable(PARROT_INTERP)
         __attribute__nonnull__(1);
@@ -72,9 +74,10 @@
         __attribute__nonnull__(3);
 
 size_t Parrot_io_read_portable(PARROT_INTERP,
-    SHIM(PMC *filehandle),
+    ARGIN(PMC *filehandle),
     ARGIN(STRING **buf))
         __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
 PIOOFF_T Parrot_io_seek_portable(PARROT_INTERP,
@@ -91,11 +94,10 @@
 
 size_t Parrot_io_write_portable(PARROT_INTERP,
     ARGIN(PMC *filehandle),
-    ARGMOD(STRING *s))
+    ARGIN(const STRING *s))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*s);
+        __attribute__nonnull__(3);
 
 #define ASSERT_ARGS_Parrot_io_close_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
@@ -103,7 +105,8 @@
 #define ASSERT_ARGS_Parrot_io_fdopen_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(filehandle))
-#define ASSERT_ARGS_Parrot_io_flush_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_io_flush_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(filehandle))
 #define ASSERT_ARGS_Parrot_io_getblksize_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_Parrot_io_init_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
@@ -122,6 +125,7 @@
     , PARROT_ASSERT_ARG(buf))
 #define ASSERT_ARGS_Parrot_io_read_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(filehandle) \
     , PARROT_ASSERT_ARG(buf))
 #define ASSERT_ARGS_Parrot_io_seek_portable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \

Modified: branches/include_dynpmc_makefile/include/parrot/io_unix.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/io_unix.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/io_unix.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -117,11 +117,10 @@
 
 size_t Parrot_io_write_unix(PARROT_INTERP,
     ARGIN(PMC *filehandle),
-    ARGMOD(STRING *s))
+    ARGIN(const STRING *s))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*s);
+        __attribute__nonnull__(3);
 
 #define ASSERT_ARGS_Parrot_io_async_unix __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \

Modified: branches/include_dynpmc_makefile/include/parrot/io_win32.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/io_win32.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/io_win32.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -110,7 +110,7 @@
 
 size_t Parrot_io_write_win32(PARROT_INTERP,
     ARGIN(PMC *filehandle),
-    ARGIN(STRING *s))
+    ARGIN(const STRING *s))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);

Modified: branches/include_dynpmc_makefile/include/parrot/op.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/op.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/op.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -57,7 +57,6 @@
 /* NOTE: Sure wish we could put the types here... */
 
 typedef opcode_t *(*op_func_t)(opcode_t *, PARROT_INTERP);
-typedef void **(*op_func_prederef_t)(void **, PARROT_INTERP);
 
 
 /*

Modified: branches/include_dynpmc_makefile/include/parrot/oplib.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/oplib.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/oplib.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -51,7 +51,6 @@
     CORE_OPS_check_events__,    /* inserted into op dispatch when an event
                                    got scheduled */
     CORE_OPS_wrapper__,         /* inserted by dynop_register for new ops */
-    CORE_OPS_prederef__         /* inserted by dynop_register for new ops */
         /* 2 more reserved */
 } special_core_ops_enum;
 

Modified: branches/include_dynpmc_makefile/include/parrot/packfile.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/packfile.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/packfile.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -229,7 +229,7 @@
 typedef struct PackFile_FixupTable {
     PackFile_Segment             base;
     opcode_t                     fixup_count;
-    PackFile_FixupEntry        **fixups;
+    PackFile_FixupEntry         *fixups;
     PackFile_ByteCode           *code;   /* where this segment belongs to */
 } PackFile_FixupTable;
 
@@ -255,7 +255,6 @@
 
 struct PackFile_ByteCode {
     PackFile_Segment       base;
-    Prederef               prederef;    /* The predereferenced code and info */
     struct PackFile_Debug *debugs;
     PackFile_ConstTable   *const_table;
     PackFile_FixupTable   *fixups;
@@ -270,7 +269,7 @@
 typedef struct PackFile_Debug {
     PackFile_Segment        base;
     opcode_t                num_mappings;
-    PackFile_DebugFilenameMapping **mappings;
+    PackFile_DebugFilenameMapping *mappings;
     PackFile_ByteCode      *code;   /* where this segment belongs to */
 } PackFile_Debug;
 

Modified: branches/include_dynpmc_makefile/include/parrot/pmc_freeze.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/pmc_freeze.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/pmc_freeze.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -113,28 +113,27 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
 STRING* Parrot_freeze(PARROT_INTERP, ARGIN(PMC *pmc))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
 UINTVAL Parrot_freeze_size(PARROT_INTERP, ARGIN(PMC *pmc))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
 PMC* Parrot_thaw(PARROT_INTERP, ARGIN(STRING *image))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
 PMC* Parrot_thaw_constants(PARROT_INTERP, ARGIN(STRING *image))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);

Modified: branches/include_dynpmc_makefile/include/parrot/pobj.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/pobj.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/pobj.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -55,10 +55,11 @@
 /* Given a pointer to the buffer, find the ref_count and the actual start of
    the allocated space. Setting ref_count is clunky because we avoid lvalue
    casts. */
-#define Buffer_alloc_offset sizeof (INTVAL)
+#define Buffer_alloc_offset sizeof (void*)
 #define Buffer_bufallocstart(b)  ((char *)Buffer_bufstart(b) - Buffer_alloc_offset)
-#define Buffer_bufrefcount(b)    (*(INTVAL *)Buffer_bufallocstart(b))
 #define Buffer_bufrefcountptr(b) ((INTVAL *)Buffer_bufallocstart(b))
+#define Buffer_pool(b) ((Memory_Block *)( *(INTVAL*)(Buffer_bufallocstart(b)) & ~3 ))
+#define Buffer_poolptr(b) ((Memory_Block **)Buffer_bufallocstart(b))
 
 
 typedef enum {
@@ -142,9 +143,7 @@
     PObj_sysmem_FLAG            = POBJ_FLAG(15),
 
 /* PObj usage FLAGs, COW & GC */
-    /* Mark the contents as Copy on write */
-    PObj_COW_FLAG               = POBJ_FLAG(16),
-    /* the Buffer may have COW copies */
+    /* The Buffer allows COW copies, and may have some. */
     PObj_is_COWable_FLAG        = POBJ_FLAG(17),
     /* Private flag for the GC system. Set if the PObj's in use as
      * far as the GC's concerned */
@@ -208,10 +207,6 @@
 #define PObj_flags_SETTO(o, f) PObj_get_FLAGS(o) = (f)
 #define PObj_flags_CLEARALL(o) PObj_flags_SETTO((o), 0)
 
-#define PObj_COW_TEST(o) PObj_flag_TEST(COW, o)
-#define PObj_COW_SET(o) PObj_flag_SET(COW, o)
-#define PObj_COW_CLEAR(o) PObj_flag_CLEAR(COW, o)
-
 #define PObj_is_COWable_TEST(o) PObj_flag_TEST(is_COWable, o)
 #define PObj_is_COWable_SET(o) PObj_flag_SET(is_COWable, o)
 
@@ -302,17 +297,11 @@
 #define PObj_is_shared_CLEAR(o) PObj_flag_CLEAR(is_shared, o)
 
 /* some combinations */
-#define PObj_is_cowed_TESTALL(o) (PObj_get_FLAGS(o) & \
-            (PObj_COW_FLAG|PObj_constant_FLAG|PObj_external_FLAG))
-#define PObj_is_cowed_SETALL(o) (PObj_get_FLAGS(o) |= \
-            (PObj_COW_FLAG|PObj_constant_FLAG|PObj_external_FLAG))
-
 #define PObj_is_external_or_free_TESTALL(o) (PObj_get_FLAGS(o) & \
             (UINTVAL)(PObj_external_FLAG|PObj_on_free_list_FLAG))
 
 #define PObj_is_external_CLEARALL(o) (PObj_get_FLAGS(o) &= \
-            ~(UINTVAL)(PObj_COW_FLAG| \
-                       PObj_external_FLAG|PObj_sysmem_FLAG))
+            ~(UINTVAL)(PObj_external_FLAG|PObj_sysmem_FLAG))
 
 #define PObj_is_live_or_free_TESTALL(o) (PObj_get_FLAGS(o) & \
         (PObj_live_FLAG | PObj_on_free_list_FLAG))

Modified: branches/include_dynpmc_makefile/include/parrot/runcore_api.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/runcore_api.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/runcore_api.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -38,10 +38,6 @@
 typedef enum Parrot_runcore_flags {
     RUNCORE_REENTRANT_FLAG    = 1 << 0,
     RUNCORE_FUNC_TABLE_FLAG   = 1 << 1,
-    RUNCORE_EVENT_CHECK_FLAG  = 1 << 2,
-    RUNCORE_PREDEREF_OPS_FLAG = 1 << 3,
-    RUNCORE_CGOTO_OPS_FLAG    = 1 << 4,
-    RUNCORE_JIT_OPS_FLAG      = 1 << 5
 } Parrot_runcore_flags;
 
 
@@ -55,26 +51,6 @@
 #define PARROT_RUNCORE_FUNC_TABLE_SET(runcore) \
     Runcore_flag_SET(runcore, RUNCORE_FUNC_TABLE_FLAG)
 
-#define PARROT_RUNCORE_EVENT_CHECK_TEST(runcore) \
-    Runcore_flag_TEST(runcore, RUNCORE_EVENT_CHECK_FLAG)
-#define PARROT_RUNCORE_EVENT_CHECK_SET(runcore) \
-    Runcore_flag_SET(runcore, RUNCORE_EVENT_CHECK_FLAG)
-
-#define PARROT_RUNCORE_PREDEREF_OPS_TEST(runcore) \
-    Runcore_flag_TEST(runcore, RUNCORE_PREDEREF_OPS_FLAG)
-#define PARROT_RUNCORE_PREDEREF_OPS_SET(runcore) \
-    Runcore_flag_SET(runcore, RUNCORE_PREDEREF_OPS_FLAG)
-
-#define PARROT_RUNCORE_CGOTO_OPS_TEST(runcore) \
-    Runcore_flag_TEST(runcore, RUNCORE_CGOTO_OPS_FLAG)
-#define PARROT_RUNCORE_CGOTO_OPS_SET(runcore) \
-    Runcore_flag_SET(runcore, RUNCORE_CGOTO_OPS_FLAG)
-
-#define PARROT_RUNCORE_JIT_OPS_TEST(runcore) \
-    Runcore_flag_TEST(runcore, RUNCORE_JIT_OPS_FLAG)
-#define PARROT_RUNCORE_JIT_OPS_SET(runcore) \
-    Runcore_flag_SET(runcore, RUNCORE_JIT_OPS_FLAG)
-
 /* HEADERIZER BEGIN: src/runcore/main.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
@@ -152,21 +128,6 @@
     ARGIN(Parrot_runcore_t *runcore))
         __attribute__nonnull__(2);
 
-PARROT_CAN_RETURN_NULL
-void * init_prederef(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-void load_prederef(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-void Parrot_runcore_cgoto_init(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
-void Parrot_runcore_cgp_init(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
 void Parrot_runcore_debugger_init(PARROT_INTERP)
         __attribute__nonnull__(1);
 
@@ -182,21 +143,8 @@
 void Parrot_runcore_slow_init(PARROT_INTERP)
         __attribute__nonnull__(1);
 
-void Parrot_runcore_switch_init(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
 #define ASSERT_ARGS_get_core_op_lib_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(runcore))
-#define ASSERT_ARGS_init_prederef __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(runcore))
-#define ASSERT_ARGS_load_prederef __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(runcore))
-#define ASSERT_ARGS_Parrot_runcore_cgoto_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_runcore_cgp_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_runcore_debugger_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_runcore_exec_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -207,8 +155,6 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_runcore_slow_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_runcore_switch_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/runcore/cores.c */
 

Modified: branches/include_dynpmc_makefile/include/parrot/string.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/string.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/string.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -24,7 +24,8 @@
 typedef struct parrot_string_t STRING;
 
 typedef enum Forward_flag {
-    Buffer_moved_FLAG = 1 << 0
+    Buffer_moved_FLAG   = 1 << 0,
+    Buffer_shared_FLAG  = 1 << 1
 } Forward_flags;
 
 /* String iterator */

Modified: branches/include_dynpmc_makefile/include/parrot/string_funcs.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/string_funcs.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/string_funcs.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -75,16 +75,16 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 STRING* Parrot_str_change_encoding(PARROT_INTERP,
-    ARGIN_NULLOK(STRING *src),
+    ARGMOD_NULLOK(STRING *src),
     INTVAL encoding_nr)
-        __attribute__nonnull__(1);
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*src);
 
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
-STRING * Parrot_str_chopn(PARROT_INTERP, ARGMOD(STRING *s), INTVAL n)
+STRING * Parrot_str_chopn(PARROT_INTERP, ARGIN(const STRING *s), INTVAL n)
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*s);
+        __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
@@ -96,7 +96,7 @@
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
-STRING * Parrot_str_compose(PARROT_INTERP, ARGIN_NULLOK(STRING *src))
+STRING * Parrot_str_compose(PARROT_INTERP, ARGIN_NULLOK(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
@@ -109,10 +109,9 @@
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-STRING * Parrot_str_copy(PARROT_INTERP, ARGMOD(STRING *s))
+STRING * Parrot_str_copy(PARROT_INTERP, ARGIN(const STRING *s))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*s);
+        __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
@@ -143,7 +142,7 @@
 PARROT_WARN_UNUSED_RESULT
 INTVAL Parrot_str_find_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN_NULLOK(STRING *s),
+    ARGIN_NULLOK(const STRING *s),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1);
@@ -162,7 +161,7 @@
 PARROT_WARN_UNUSED_RESULT
 INTVAL Parrot_str_find_not_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN_NULLOK(STRING *s),
+    ARGIN_NULLOK(const STRING *s),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1);
@@ -239,7 +238,7 @@
 PARROT_MALLOC
 PARROT_CANNOT_RETURN_NULL
 STRING * Parrot_str_new(PARROT_INTERP,
-    ARGIN_NULLOK(const char * const buffer),
+    ARGIN_NULLOK(const char *buffer),
     const UINTVAL len)
         __attribute__nonnull__(1);
 
@@ -325,7 +324,7 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 STRING * Parrot_str_substr(PARROT_INTERP,
-    ARGIN_NULLOK(STRING *src),
+    ARGIN_NULLOK(const STRING *src),
     INTVAL offset,
     INTVAL length)
         __attribute__nonnull__(1);

Modified: branches/include_dynpmc_makefile/include/parrot/sub.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/sub.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/sub.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -2,14 +2,9 @@
  *  Copyright (C) 2001-2008, Parrot Foundation.
  *  SVN Info
  *     $Id$
- *  Overview:
  *  Data Structure and Algorithms:
  *     Subroutine, coroutine, closure and continuation structures
  *     and related routines.
- *  History:
- *     Initial version by Melvin on on 2002/06/6
- *  Notes:
- *  References:
  */
 
 #ifndef PARROT_SUB_H_GUARD

Modified: branches/include_dynpmc_makefile/include/parrot/vtables.h
==============================================================================
--- branches/include_dynpmc_makefile/include/parrot/vtables.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/include/parrot/vtables.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,13 +1,9 @@
 /* vtables.h
- *  Copyright (C) 2001-2003, Parrot Foundation.
+ *  Copyright (C) 2001-2010, Parrot Foundation.
  *  SVN Info
  *     $Id$
  *  Overview:
  *     Vtable manipulation code. Not to be confused with vtable.h
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
  */
 
 #ifndef PARROT_VTABLES_H_GUARD

Modified: branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -91,7 +91,6 @@
    --opcode=(type)      Use the given type for opcodes
    --ops=(files)        Use the given ops files
 
-   --cgoto=0            Don't build cgoto core - recommended when short of mem
    --jitcapable         Use JIT
    --execcapable        Use JIT to emit a native executable
    --without-threads    Build parrot without thread support
@@ -103,6 +102,7 @@
    --without-gmp        Build parrot without GMP support
    --without-opengl     Build parrot without OpenGL support (GL/GLU/GLUT)
    --without-pcre       Build parrot without pcre support
+   --without-zlib       Build parrot without zlib support
 
 ICU Options:
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf/Shared.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf/Shared.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Configure/Options/Conf/Shared.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -15,7 +15,6 @@
     cc
     ccflags
     ccwarn
-    cgoto
     configure_trace
     cxx
     darwin_no_fink
@@ -80,6 +79,7 @@
     without-opengl
     without-pcre
     without-threads
+    without-zlib
     yacc
 };
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/Configure/Step/List.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Configure/Step/List.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Configure/Step/List.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -41,7 +41,6 @@
     auto::isreg
     auto::jit
     auto::frames
-    auto::cgoto
     auto::inline
     auto::gc
     auto::memalign
@@ -54,6 +53,7 @@
     auto::readline
     auto::pcre
     auto::opengl
+    auto::zlib
     auto::gettext
     auto::snprintf
     auto::perldoc

Modified: branches/include_dynpmc_makefile/lib/Parrot/Distribution.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Distribution.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Distribution.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -281,7 +281,7 @@
                     }
                 }
 
-                print 'WARNING: ' . __FILE__ . ':' . __LINE__ . ' File not found: ' . $name . "\n";
+                print '# WARNING: ' . __FILE__ . ':' . __LINE__ . ' File not found: ' . $name . "\n";
                 return;
             };
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/Docs/Section/Compilers.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Docs/Section/Compilers.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Docs/Section/Compilers.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -45,7 +45,7 @@
         $self->new_group( 'PGE',  'the Parrot Grammar Engine',                 'compilers/pge' ),
         $self->new_group( 'TGE',  'the Tree Grammar Engine',                   'compilers/tge' ),
         $self->new_group( 'PCT',  'Parrot Compiler Toolkit',    'compilers/pct' ),
-        $self->new_group( 'JSON', 'JavaScript Object Notation', 'compilers/json' ),
+        $self->new_group( 'JSON', 'JavaScript Object Notation', 'compilers/data_json' ),
         $self->new_group( 'PIRC', 'a PIR Compiler',             'compilers/pirc' ),
         $self->new_group( 'NCIGEN', 'Native Call Interface Generator', 'compilers/ncigen' ),
     );

Modified: branches/include_dynpmc_makefile/lib/Parrot/Harness/DefaultTests.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Harness/DefaultTests.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Harness/DefaultTests.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -77,6 +77,7 @@
     t/perl/*.t
 );
 
+
 # library tests are run unless --runcore-tests or --core-tests is present.
 @library_tests = qw(
     t/compilers/pct/*.t
@@ -84,6 +85,7 @@
     t/compilers/pge/p5regex/*.t
     t/compilers/pge/perl6regex/*.t
     t/compilers/tge/*.t
+    t/compilers/data_json/*.t
     t/library/*.t
     t/tools/*.t
     t/profiling/*.t

Modified: branches/include_dynpmc_makefile/lib/Parrot/Harness/Options.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Harness/Options.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Harness/Options.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -88,10 +88,7 @@
 
     my %remap      = (
         'j' => '-runcore=fast',
-        'g' => '-runcore=cgoto',
         'G' => '-runcore=gcdebug',
-        'C' => '-runcore=cgp',
-        'S' => '-runcore=switch',
         'b' => '-runcore=bounds',
         'f' => '-runcore=fast',
         'r' => '-run-pbc',
@@ -113,9 +110,6 @@
     print <<"EOF";
 perl t/harness [options] [testfiles]
     -w         ... warnings on
-    -g         ... run CGoto
-    -C         ... run CGP
-    -S         ... run Switched
     -b         ... run bounds checked
     --run-exec ... run exec core
     -f         ... run fast core

Modified: branches/include_dynpmc_makefile/lib/Parrot/Manifest.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Manifest.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Manifest.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 # $Id$
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 
 =head1 NAME
 
@@ -201,7 +201,8 @@
 #
 # See below for documentation on the format of this file.
 #
-# See docs/submissions.pod on how to recreate this file after SVN
+# See docs/submissions.pod and the documentation in
+# $self->{script} on how to recreate this file after SVN
 # has been told about new or deleted files.
 END_HEADER
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/OpTrans.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/OpTrans.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/OpTrans.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -16,15 +16,9 @@
 The subclass hierarchy is as follows:
 
     OpTrans
-       |___________
-       |           |
-       C         CGoto
-       |           |
-    CPrederef      |
-       | |         |
-       | |_________|
-       |           |
-    CSwitch       CGP
+       |
+       |
+       C
 
 =head2 Class Methods
 
@@ -91,11 +85,6 @@
     die ref($self) . " doesn't have core_type()";
 }
 
-=item C<core_prefix()>
-
-Implemented in subclasses to return a short prefix indicating the core
-type used to individuate core function names.
-
 =item C<run_core_func_decl($base)>
 
 Optionally implemented in subclasses to return the C code for the run
@@ -222,14 +211,6 @@
 
 =item C<Parrot::OpTrans::C>
 
-=item C<Parrot::OpTrans::CGP>
-
-=item C<Parrot::OpTrans::CGoto>
-
-=item C<Parrot::OpTrans::CPrederef>
-
-=item C<Parrot::OpTrans::CSwitch>
-
 =back
 
 =cut

Modified: branches/include_dynpmc_makefile/lib/Parrot/OpTrans/C.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/OpTrans/C.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/OpTrans/C.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -33,16 +33,6 @@
     return 'PARROT_FUNCTION_CORE';
 }
 
-=item C<core_prefix()>
-
-Returns an empty string.
-
-=cut
-
-sub core_prefix {
-    return "";
-}
-
 =item C<defines()>
 
 Returns the C C<#define> macros for register access etc.
@@ -173,14 +163,6 @@
 
 =item C<Parrot::OpTrans>
 
-=item C<Parrot::OpTrans::CGP>
-
-=item C<Parrot::OpTrans::CGoto>
-
-=item C<Parrot::OpTrans::CPrederef>
-
-=item C<Parrot::OpTrans::CSwitch>
-
 =back
 
 =cut

Deleted: branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CGP.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CGP.pm	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,162 +0,0 @@
-# Copyright (C) 2002, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpTrans::CGP - C Goto Predereferenced Transform
-
-=head1 DESCRIPTION
-
-C<Parrot::OpTrans::CGP> inherits from C<Parrot::OpTrans::CPrederef> and
-C<Parrot::OpTrans::CGoto> to provide predereferenced register addressing
-and C C<goto> run loop.
-
-=head2 Instance Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpTrans::CGP;
-
-use strict;
-use warnings;
-
-use base qw( Parrot::OpTrans::CPrederef Parrot::OpTrans::CGoto );
-
-=item C<core_type()>
-
-Returns C<PARROT_CGP_CORE>.
-
-=cut
-
-sub core_type {
-    return 'PARROT_CGP_CORE';
-}
-
-=item C<suffix()>
-
-The suffix is C<'_cgp'>.
-
-=cut
-
-sub suffix {
-    return "_cgp";
-}
-
-=item C<core_prefix()>
-
-The core prefix is C<'cgp_'>.
-
-=cut
-
-sub core_prefix {
-    return "cgp_";
-}
-
-=item C<defines()>
-
-Returns the C C<#define> macros required by the ops.
-
-=cut
-
-sub defines {
-    my ( $self, $pred_def );
-    $self     = shift;
-    $pred_def = $self->SUPER::defines();
-    my $type = __PACKAGE__;
-    return $pred_def . <<END;
-/* defines - $0 -> $type */
-#  define opcode_to_prederef(i, op)   \\
-     (opcode_t *) (op   - Parrot_pcc_get_pred_offset(interp, i->ctx))
-END
-}
-
-=item C<goto_address($address)>
-
-Transforms the C<goto ADDRESS($address)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_address {
-    my ( $self, $addr ) = @_;
-
-    #print STDERR "pbcc: map_ret_abs($addr)\n";
-
-    if ( $addr eq '0' ) {
-        return "return (0);";
-    }
-    else {
-        return "if ($addr == 0)
-          return 0;
-   Parrot_cx_handle_tasks(interp, interp->scheduler);
-   _reg_base = (char*)Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp))->regs_i;
-   goto **(void **)(cur_opcode = opcode_to_prederef(interp, $addr))";
-    }
-}
-
-=item C<goto_offset($offset)>
-
-Transforms the C<goto OFFSET($offset)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_offset {
-    my ( $self, $offset ) = @_;
-
-    # this must be a single expression, in case it's in a single-statement if
-    return "do {\nParrot_pcc_set_pc(interp, CURRENT_CONTEXT(interp), CUR_OPCODE + $offset);\n"
-    .      "goto **(void **)(cur_opcode += $offset);\n} while (1)";
-}
-
-sub run_core_func_start {
-    my $type = __PACKAGE__;
-    return <<END_C;
-/* run_core_func_start - $0 -> $type */
-    /* at least gcc 2.95.2 miscompiles set_args - %edi
-     * is used for the vtable call and _reg_base is clobbered
-     * # if 1191 := PARROT_OP_set_args_pc
-     * (gdb) disas l_ops_addr[1191] l_ops_addr[1192]
-     */
-#if defined(__GNUC__) && defined(I386) && defined(PARROT_CGP_REGS)
-    register opcode_t *   cur_opcode __asm__ ("esi") = cur_op;
-    register char *   _reg_base   __asm__ ("edi");
-#else
-    opcode_t *cur_opcode = cur_op;
-    char * _reg_base;
-#endif
-
-    static void *const l_ops_addr[] = {
-END_C
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpTrans>
-
-=item C<Parrot::OpTrans::C>
-
-=item C<Parrot::OpTrans::CGoto>
-
-=item C<Parrot::OpTrans::CPrederef>
-
-=item C<Parrot::OpTrans::CSwitch>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CGoto.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CGoto.pm	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,368 +0,0 @@
-# Copyright (C) 2002-2007, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpTrans::CGoto - CGoto Transform
-
-=head1 DESCRIPTION
-
-Used to generate C code from Parrot operations.
-
-C<Parrot::OpTrans::CGoto> inherits from C<Parrot::OpTrans> to provide a
-C C<goto> run loop.
-
-=head2 Instance Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpTrans::CGoto;
-
-use strict;
-use warnings;
-
-use base qw( Parrot::OpTrans );
-
-=item C<suffix()>
-
-The suffix is C<'_cg'>.
-
-=cut
-
-sub suffix {
-    return "_cg";
-}
-
-=item C<core_prefix()>
-
-The core prefix is C<'cg_'>.
-
-=cut
-
-sub core_prefix {
-    return "cg_";
-}
-
-=item C<core_type()>
-
-The core type is C<PARROT_CGOTO_CORE>.
-
-=cut
-
-sub core_type {
-    return 'PARROT_CGOTO_CORE';
-}
-
-=item C<defines()>
-
-Returns the C C<#define> macros required by the ops.
-
-=cut
-
-sub defines {
-    my $type = __PACKAGE__;
-    return <<END;
-/* defines - $0 -> $type */
-#undef CONST
-#define REL_PC     ((size_t)(cur_opcode - (opcode_t*)interp->code->base.data))
-#define CUR_OPCODE cur_opcode
-#define IREG(i) REG_INT(interp, cur_opcode[i])
-#define NREG(i) REG_NUM(interp, cur_opcode[i])
-#define PREG(i) REG_PMC(interp, cur_opcode[i])
-#define SREG(i) REG_STR(interp, cur_opcode[i])
-#define CONST(i) Parrot_pcc_get_constants(interp, interp->ctx)[cur_opcode[i]]
-END
-}
-
-=item C<pc($pc)>
-
-=item C<pc()>
-
-Sets/gets the current position in Parrot code.
-
-=cut
-
-sub pc {
-    my $self = shift;
-
-    if (@_) {
-        $self->{PC} = shift;
-    }
-    else {
-        return $self->{PC};
-    }
-}
-
-=item C<args(@args)>
-
-=item C<args()>
-
-Sets/gets the transform's arguments.
-
-=cut
-
-sub args {
-    my $self = shift;
-
-    if (@_) {
-        $self->{ARGS} = [@_];
-    }
-    else {
-        return $self->{ARGS};
-    }
-}
-
-=item C<arg($index)>
-
-Returns the argument at C<$index>.
-
-=cut
-
-sub arg {
-    my $self = shift;
-
-    return $self->{ARGS}[shift];
-}
-
-=item C<goto_address($address)>
-
-Transforms the C<goto ADDRESS($address)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_address {
-    my ( $self, $addr ) = @_;
-
-    #print STDERR "pbcc: map_ret_abs($addr)\n";
-
-    if ( $addr eq '0' ) {
-        return "return (0);";
-    }
-    else {
-        return "if ((opcode_t *) $addr == 0)
-          return 0;
-    goto *ops_addr[*(cur_opcode = (opcode_t *)$addr)]";
-    }
-}
-
-=item C<expr_offset($offset)>
-
-Transforms the C<OFFSET($offset)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub expr_offset {
-    my ( $self, $offset ) = @_;
-
-    return "cur_opcode + $offset";
-}
-
-=item C<goto_offset($offset)>
-
-Transforms the C<goto OFFSET($offset)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_offset {
-    my ( $self, $offset ) = @_;
-
-    return "goto *ops_addr[*(cur_opcode += $offset)]";
-}
-
-my %arg_maps = (
-    'op' => "cur_opcode[%ld]",
-
-    'i'  => "IREG(%ld)",
-    'n'  => "NREG(%ld)",
-    'p'  => "PREG(%ld)",
-    's'  => "SREG(%ld)",
-    'k'  => "PREG(%ld)",
-    'ki' => "IREG(%ld)",
-
-    'ic'  => "cur_opcode[%ld]",
-    'nc'  => "CONST(%ld)->u.number",
-    'pc'  => "CONST(%ld)->u.key",
-    'sc'  => "CONST(%ld)->u.string",
-    'kc'  => "CONST(%ld)->u.key",
-    'kic' => "cur_opcode[%ld]"
-);
-
-=item C<access_arg($type, $num, $op)>
-
-Returns the C code for the specified op argument type (see
-C<Parrot::OpTrans>) and value. C<$op> is an instance of C<Parrot::Op>.
-
-=cut
-
-sub access_arg {
-    my ( $self, $type, $num, $op ) = @_;
-
-    #print STDERR "pbcc: map_arg($type, $num)\n";
-
-    die "Unrecognized type '$type' for num '$num'" unless exists $arg_maps{$type};
-
-    return sprintf( $arg_maps{$type}, $num );
-}
-
-=item C<restart_address($address)>
-
-Returns the C code for C<restart ADDRESS($address)>.
-
-=cut
-
-sub restart_address {
-    my ( $self, $addr ) = @_;
-
-    return "interp->resume_offset = $addr; interp->resume_flag = 1";
-}
-
-=item C<restart_offset($offset)>
-
-Returns the C code for C<restart OFFSET($offset)>.
-
-=cut
-
-sub restart_offset {
-    my ( $self, $offset ) = @_;
-
-    return "interp->resume_offset = REL_PC + $offset; interp->resume_flag = 1";
-}
-
-=item C<run_core_func_decl($core)>
-
-Returns the C code for the run core function declaration.
-
-=cut
-
-sub run_core_func_decl {
-    my ( $self, $core ) = @_;
-
-    return "opcode_t * " . $self->core_prefix . "$core(opcode_t *cur_op, PARROT_INTERP)";
-}
-
-=item C<ops_addr_decl($base_suffix)>
-
-Returns the C code for the ops address declaration.
-
-=cut
-
-sub ops_addr_decl {
-    my ( $self, $bs ) = @_;
-
-    return "static void *const* ${bs}ops_addr;\n\n";
-}
-
-=item C<run_core_func_start()>
-
-Returns the C code prior to the run core function.
-
-=cut
-
-sub run_core_func_start {
-    return <<END_C;
-#if defined(__GNUC__) && defined(I386) /* && defined(NO_DYNOPS) */
-    register opcode_t *cur_opcode __asm__ ("esi") = cur_op;
-#else
-    opcode_t *cur_opcode = cur_op;
-#endif
-
-    static void *const l_ops_addr[] = {
-END_C
-}
-
-=item C<run_core_after_addr_table($base_suffix)>
-
-Returns the run core C code for section after the address table.
-
-=cut
-
-sub run_core_after_addr_table {
-    my ( $self, $bs ) = @_;
-    return <<END_C;
-
-    if (!${bs}ops_addr)
-        ${bs}ops_addr = l_ops_addr;
-    if (cur_opcode == 0) {
-        DECL_CONST_CAST;
-        return (opcode_t *) PARROT_const_cast(void **, ${bs}ops_addr);
-    }
-END_C
-}
-
-=item C<run_core_finish($base)>
-
-Returns the C code following the run core function.
-
-=cut
-
-sub run_core_finish {
-    my ( $self, $base ) = @_;
-
-    return "\n} /* " . $self->core_prefix . "$base */\n\n";
-}
-
-=item C<init_func_init1($base)>
-
-Returns the C code for the init function.
-
-=cut
-
-sub init_func_init1 {
-    my ( $self, $base ) = @_;
-    my $cg_func = $self->core_prefix . $base;
-    my $bs      = $base . $self->suffix . '_';
-
-    return <<END_C;
-        if (!${bs}op_lib.op_func_table)
-            ${bs}op_lib.op_func_table = (op_func_t *) $cg_func(0, 0);
-END_C
-}
-
-=item C<init_set_dispatch($base_suffix)>
-
-Returns the C code to initialize the dispatch mechanism within the core's
-initialization function.
-
-=cut
-
-sub init_set_dispatch {
-    my ( $self, $bs ) = @_;
-
-    return <<END_C;
-        ${bs}ops_addr = (void**) init;
-END_C
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpTrans>
-
-=item C<Parrot::OpTrans::C>
-
-=item C<Parrot::OpTrans::CGP>
-
-=item C<Parrot::OpTrans::CPrederef>
-
-=item C<Parrot::OpTrans::CSwitch>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CPrederef.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CPrederef.pm	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,144 +0,0 @@
-#! perl
-# Copyright (C) 2001-2007, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpTrans::CPrederef - C Predereferenced Transform
-
-=head1 DESCRIPTION
-
-C<Parrot::OpTrans::CPrederef> inherits from C<Parrot::OpTrans::C>
-to provide basic functionality for predereferenced run loops (switch,
-CGP).
-
-=head2 Instance Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpTrans::CPrederef;
-
-use strict;
-use warnings;
-
-use Parrot::OpTrans;
-use base qw( Parrot::OpTrans::C );
-
-=item C<defines()>
-
-Returns the C C<#define> macros required by the ops.
-
-=cut
-
-sub defines {
-    my $type = __PACKAGE__;
-    return <<END;
-/* defines - $0 -> $type */
-#define REL_PC ((size_t)(cur_opcode - (opcode_t*)interp->code->prederef.code))
-#define CUR_OPCODE \\
-    ((opcode_t*)cur_opcode + Parrot_pcc_get_pred_offset(interp, CURRENT_CONTEXT(interp)))
-#define OP_AS_OFFS(o) (_reg_base + ((opcode_t*)cur_opcode)[o])
-
-END
-}
-
-=item expr_address($addr)
-
-=item expr_address($offset)
-
-=item expr_pop()
-
-Create various address parts.
-
-=cut
-
-sub expr_address {
-    my ( $self, $addr ) = @_;
-    return "opcode_to_prederef(interp, $addr)";
-}
-
-sub expr_offset {
-    my ( $self, $offset ) = @_;
-    return "CUR_OPCODE + $offset";
-}
-
-sub expr_pop {
-    my ($self) = @_;
-    return "opcode_to_prederef(interp, pop_dest(interp))";
-}
-
-sub run_core_func_decl {
-    my ( $self, $core ) = @_;
-
-    my $type   = __PACKAGE__;
-    my $prefix = $self->core_prefix;
-    return <<END;
-/* run_core_func_decl - $0 -> $type */
-opcode_t * $prefix$core(opcode_t *cur_op, PARROT_INTERP)
-END
-}
-
-=item C<access_arg($type, $num, $op)>
-
-Returns the C code for the specified op argument type (see
-C<Parrot::OpTrans>) and value. C<$op> is an instance of C<Parrot::Op>.
-
-=cut
-
-sub access_arg {
-    my ( $self, $type, $num, $op ) = @_;
-
-    my %arg_maps = (
-        'op' => "cur_opcode[%ld]",
-
-        'i'  => "(*(INTVAL *)OP_AS_OFFS(%ld))",
-        'ki' => "(*(INTVAL *)OP_AS_OFFS(%ld))",
-        'n'  => "(*(FLOATVAL *)OP_AS_OFFS(%ld))",
-        'p'  => "(*(PMC **)OP_AS_OFFS(%ld))",
-        's'  => "(*(STRING **)OP_AS_OFFS(%ld))",
-        'k'  => "(*(PMC **)OP_AS_OFFS(%ld))",
-
-        'ic'  => "((INTVAL)cur_opcode[%ld])",
-        'kic' => "((INTVAL)cur_opcode[%ld])",
-        'nc'  => "(*(FLOATVAL *)cur_opcode[%ld])",
-        'sc'  => "((STRING *)cur_opcode[%ld])",
-        'pc'  => "((PMC *)cur_opcode[%ld])",
-        'kc'  => "((PMC *)cur_opcode[%ld])",
-    );
-
-    die "Unrecognized type '$type' for num '$num' in opcode @{[$op->full_name]}"
-        unless exists $arg_maps{$type};
-
-    return sprintf( $arg_maps{$type}, $num );
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpTrans>
-
-=item C<Parrot::OpTrans::C>
-
-=item C<Parrot::OpTrans::CGP>
-
-=item C<Parrot::OpTrans::CGoto>
-
-=item C<Parrot::OpTrans::CSwitch>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CSwitch.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/OpTrans/CSwitch.pm	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,247 +0,0 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpTrans::CSwitch - C Switch Transform
-
-=head1 DESCRIPTION
-
-C<Parrot::OpTrans::CSwitch> inherits from C<Parrot::OpTrans::CPrederef>
-to provide a mixture of predereferenced register addressing and a
-C<switch>ed run loop.
-
-=head2 Instance Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpTrans::CSwitch;
-
-use strict;
-use warnings;
-
-use Parrot::OpTrans;
-use base qw( Parrot::OpTrans::CPrederef );
-
-sub new {
-    my $class = shift;
-    my $self  = $class->SUPER::new(@_);
-    $self->{split_count} ||= 0;
-    return $self;
-}
-
-=item C<core_type()>
-
-The core type is C<PARROT_SWITCH_CORE>.
-
-=cut
-
-sub core_type {
-    return 'PARROT_SWITCH_CORE';
-}
-
-=item C<core_prefix()>
-
-The prefix is C<'switch_'>.
-
-=cut
-
-sub core_prefix {
-    return "switch_";
-}
-
-=item C<suffix()>
-
-The suffix is C<'_switch'>.
-
-=cut
-
-sub suffix {
-    return "_switch";
-}
-
-=item C<defines()>
-
-Returns the C C<#define> macros required by the ops.
-
-=cut
-
-sub defines {
-    my ( $self, $pred_def );
-    $self     = shift;
-    $pred_def = $self->SUPER::defines();
-    my $type = __PACKAGE__;
-    return $pred_def . <<END;
-/* defines - $0 -> $type */
-#  define opcode_to_prederef(i, op)   (op ? \\
-     (opcode_t*) (op   - Parrot_pcc_get_pred_offset(interp, i->ctx)) : (opcode_t*)NULL)
-END
-}
-
-=item C<goto_address($address)>
-
-Transforms the C<goto ADDRESS($address)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_address {
-    my ( $self, $addr ) = @_;
-
-    #print STDERR "pbcc: map_ret_abs($addr)\n";
-
-    if ( $addr eq '0' ) {
-        return "return (0);";
-    }
-    else {
-        return <<EOC;
-            {
-               cur_opcode = opcode_to_prederef(interp, $addr);
-               goto SWITCH_RELOAD;
-            }
-EOC
-    }
-}
-
-=item C<goto_offset($offset)>
-
-Transforms the C<goto OFFSET($offset)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_offset {
-    my ( $self, $offset ) = @_;
-    return "{ cur_opcode += $offset; goto SWITCH_AGAIN; }";
-}
-
-=item C<init_func_init1($base)>
-
-Returns the C code for the init function.
-
-=cut
-
-sub init_func_init1 {
-    my ( $self, $base ) = @_;
-    my $cg_func = $self->core_prefix . $base;
-    my $bs      = $base . $self->suffix . '_';
-
-    return <<END_C;
-        if (!${bs}op_lib.op_func_table)
-            ${bs}op_lib.op_func_table = (op_func_t *)&${bs}op_lib;
-END_C
-}
-
-
-=item C<run_core_func_start()>
-
-Returns the C code prior to the run core function.
-
-=cut
-
-sub run_core_func_start {
-    my $type = __PACKAGE__;
-    return <<END_C;
-/* run_core_func_start - $0 -> $type */
-#if defined(__GNUC__) && defined(I386) && defined(PARROT_SWITCH_REGS)
-    register opcode_t *   cur_opcode __asm__ ("esi") = cur_op;
-    register char *   _reg_base   __asm__ ("edi");
-#else
-    opcode_t * cur_opcode = cur_op;
-    char * _reg_base;
-#endif
-
-SWITCH_RELOAD:
-    _reg_base = (char*)Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp))->regs_i;
-    do {
-SWITCH_AGAIN:
-    Parrot_cx_handle_tasks(interp, interp->scheduler);
-    if (!cur_opcode)
-        break;
-    switch (*(opcode_t*)cur_opcode) {
-END_C
-}
-
-=item C<run_core_split($base)>
-
-If defined return code to split e.g. a switch.
-
-=cut
-
-sub run_core_split {
-    my ($self) = @_;
-    $self->{split_count}++;
-
-    return <<END_C;
-    default:
-    switch (*(opcode_t*)cur_opcode) {
-END_C
-}
-
-=item C<run_core_finish($base)>
-
-Returns the C code following the run core function.
-
-=cut
-
-sub run_core_finish {
-    my ( $self, $base ) = @_;
-    my $bs = $base . $self->suffix . '_';
-    my $c  = <<END_C;
-        default:
-            if (*(opcode_t*)cur_opcode >= 0 &&
-                *(opcode_t*)cur_opcode < (opcode_t)${bs}op_lib.op_count) {
-                *(opcode_t*)cur_opcode = CORE_OPS_wrapper__;
-                continue;
-            }
-            Parrot_ex_throw_from_c_args(interp, NULL, 1,
-                "illegal opcode in switch core\\n");
-            break;
-        } /* switch */
-END_C
-    for ( my $i = 0 ; $i < $self->{split_count} ; $i++ ) {
-        $c .= <<END_C;
-    } /* switch $i */
-END_C
-    }
-    $c .= <<END_C;
-    } while (1);
-    return NULL;
-}
-END_C
-
-    $c .= " /* " . $self->core_prefix . "$base */\n\n";
-
-    return $c;
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpTrans>
-
-=item C<Parrot::OpTrans::C>
-
-=item C<Parrot::OpTrans::CGP>
-
-=item C<Parrot::OpTrans::CGoto>
-
-=item C<Parrot::OpTrans::CPrederef>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Auxiliary.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Auxiliary.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Auxiliary.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -12,7 +12,7 @@
     my $usage_msg = <<USAGE;
     % perl tools/build/ops2c.pl trans [--help] [--no-lines] [--dynamic]
                                       [--core | input.ops [input2.ops ...]]
-       trans := C | CGoto | CGP | CSwitch | CPrederef
+       trans := C
 
 For example:
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Utils.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Utils.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Ops2c/Utils.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -89,10 +89,10 @@
         return;
     }
     my $class_name = shift @argv;
-    my %is_allowed = map { $_ => 1 } qw(C CGoto CGP CSwitch CPrederef);
+    my %is_allowed = map { $_ => 1 } qw( C );
     unless ( $is_allowed{$class_name} ) {
         print STDERR
-            "Parrot::Ops2c::Utils::new() requires C, CGoto, CGP, CSwitch and/or  CPrederef: $!";
+            "Parrot::Ops2c::Utils::new() requires C: $!";
         return;
     }
 
@@ -372,10 +372,6 @@
 
     $self->_print_run_core_func_decl_source($SOURCE);
 
-    $self->_print_cg_jump_table($SOURCE);
-
-    $self->_print_goto_opcode($SOURCE);
-
     $self->_print_op_function_definitions($SOURCE);
 }
 
@@ -650,7 +646,6 @@
             $one_op .= "$definition $comment {\n$src}\n\n";
             push @op_funcs,  $one_op;
             push @op_protos, $prototype;
-            $prev_src = $src if ( $self->{suffix} eq '_cgp' || $self->{suffix} eq '_switch' );
             $prev_index = $index;
         }
         $index++;
@@ -662,47 +657,6 @@
     $self->{cg_jump_table} = \@cg_jump_table;
 }
 
-sub _print_cg_jump_table {
-    my ( $self, $fh ) = @_;
-
-    my @cg_jump_table = @{ $self->{cg_jump_table} };
-
-    if ( $self->{suffix} =~ /cg/ ) {
-        print $fh @cg_jump_table;
-        print $fh <<END_C;
-        NULL
-    };
-END_C
-        print $fh $self->{trans}->run_core_after_addr_table( $self->{bs} );
-    }
-    return 1;
-}
-
-sub _print_goto_opcode {
-    my ( $self, $fh ) = @_;
-
-    if ( $self->{suffix} =~ /cgp/ ) {
-        print $fh <<END_C;
-#ifdef __GNUC__
-# ifdef I386
-    else if (cur_opcode == (opcode_t *)(void **) 1)
-    __asm__ ("jmp *4(%ebp)");  /* jump to ret addr, used by JIT */
-# endif
-#endif
-    _reg_base = (char*)Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp))->regs_i;
-    goto **(void **)cur_opcode;
-
-END_C
-    }
-    elsif ( $self->{suffix} =~ /cg/ ) {
-        print $fh <<END_C;
-goto *$self->{bs}ops_addr[*cur_opcode];
-
-END_C
-    }
-    return 1;
-}
-
 sub _print_op_function_definitions {
     my ( $self, $fh ) = @_;
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/MethodEmitter.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/MethodEmitter.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/MethodEmitter.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -107,7 +107,7 @@
         $newl   = "\n";
         $semi   = '';
     }
-    my $pmcarg = 'PMC *pmc';
+    my $pmcarg = 'PMC *_self';
     $pmcarg    = "SHIM($pmcarg)" if $self->pmc_unused;
 
     return <<"EOC";
@@ -134,7 +134,7 @@
       \.(\w+)        # other_method
       \(\s*(.*?)\)   # capture argument list
       }x,
-        sub { "pmc->vtable->$1(" . full_arguments($2) . ')' }
+        sub { "_self->vtable->$1(" . full_arguments($2) . ')' }
     );
 
     # Rewrite STATICSELF.other_method(args...)
@@ -151,8 +151,8 @@
         }
     );
 
-    # Rewrite SELF -> pmc, INTERP -> interp
-    $body->subst( qr{\bSELF\b},   sub { 'pmc' } );
+    # Rewrite SELF -> _self, INTERP -> interp
+    $body->subst( qr{\bSELF\b},   sub { '_self' } );
     $body->subst( qr{\bINTERP\b}, sub { 'interp' } );
 
     # Rewrite GET_ATTR, SET_ATTR with typename
@@ -219,7 +219,7 @@
         \.(\w+)        # other_method
         \(\s*(.*?)\)   # capture argument list
       }x,
-        sub { "pmc->vtable->$1(" . full_arguments($2) . ')' }
+        sub { "_self->vtable->$1(" . full_arguments($2) . ')' }
     );
 
     # Rewrite SELF(args...). See comments above.
@@ -228,7 +228,7 @@
         \bSELF\b       # Macro: SELF
         \(\s*(.*?)\)   # capture argument list
       }x,
-        sub { "pmc->vtable->$name(" . full_arguments($1) . ')' }
+        sub { "_self->vtable->$name(" . full_arguments($1) . ')' }
     );
 
     # Rewrite OtherClass.SELF.other_method(args...)
@@ -304,8 +304,8 @@
         }
     );
 
-    # Rewrite SELF -> pmc, INTERP -> interp
-    $body->subst( qr{\bSELF\b},   sub { 'pmc' } );
+    # Rewrite SELF -> _self, INTERP -> interp
+    $body->subst( qr{\bSELF\b},   sub { '_self' } );
     $body->subst( qr{\bINTERP\b}, sub { 'interp' } );
 
     # Rewrite GET_ATTR, SET_ATTR with typename

Modified: branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PCCMETHOD.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PCCMETHOD.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PCCMETHOD.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -399,7 +399,7 @@
     unshift @$linear_args,
         {
         type  => convert_type_string_to_reg_type('PMC'),
-        name  => 'pmc',
+        name  => '_self',
         attrs => parse_adverb_attributes(':invocant')
         };
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Null.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Null.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Null.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -44,7 +44,7 @@
         # to avoid compiler warnings
         my $body = <<"EOC";
     UNUSED(interp)
-    UNUSED(pmc)
+    UNUSED(_self)
 EOC
 
         foreach my $param (split /,\s*/, $method->parameters) {

Modified: branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Object.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Object.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/Object.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -52,7 +52,7 @@
         $superargs       =~ s/^,//;
 
         my $method_body_text = <<"EOC";
-    Parrot_Object_attributes * const obj       = PARROT_OBJECT(pmc);
+    Parrot_Object_attributes * const obj       = PARROT_OBJECT(_self);
     Parrot_Class_attributes  * const _class    = PARROT_CLASS(obj->_class);
     STRING        * const meth_name = CONST_STRING_GEN(interp, "$vt_method_name");
 
@@ -66,7 +66,7 @@
         PMC * const meth = Parrot_oo_find_vtable_override_for_class(interp, cur_class, meth_name);
         if (!PMC_IS_NULL(meth)) {
             $pcc_result_decl
-            Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi$pcc_sig", pmc$pcc_args);
+            Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi$pcc_sig", _self$pcc_args);
             $pcc_return_stmt
         }
         /* method name is $vt_method_name */

Modified: branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/default.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/default.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMC/default.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -55,9 +55,9 @@
             # Generate default_ro_find_method.
             $self->{emitter}->emit(<<'EOC');
 static  PMC *
-Parrot_default_ro_find_method(PARROT_INTERP, PMC *pmc, STRING *method_name) {
+Parrot_default_ro_find_method(PARROT_INTERP, PMC *_self, STRING *method_name) {
     /* Use non-readonly find_method. Current vtable is ro variant. So ro_variant contains non-ro variant */
-    PMC *const method = pmc->vtable->ro_variant_vtable->find_method(interp, pmc, method_name);
+    PMC *const method = _self->vtable->ro_variant_vtable->find_method(interp, _self, method_name);
     if (!PMC_IS_NULL(VTABLE_getprop(interp, method, CONST_STRING_GEN(interp, "write"))))
         return PMCNULL;
     else
@@ -90,7 +90,7 @@
         $body .= "    UNUSED($param)\n";
     }
     my $vt_method_name = uc $method->name;
-    $body .= qq{    $stub_func(interp, pmc, PARROT_VTABLE_SLOT_$vt_method_name);\n};
+    $body .= qq{    $stub_func(interp, _self, PARROT_VTABLE_SLOT_$vt_method_name);\n};
 
     $clone->body( Parrot::Pmc2c::Emitter->text($body));
 

Modified: branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMCEmitter.pm	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/lib/Parrot/Pmc2c/PMCEmitter.pm	Wed Apr 28 19:17:12 2010	(r46116)
@@ -476,6 +476,7 @@
     my $multi_strings = '';
     my $cache         = {};
 
+    my $i = 0;
     for my $multi (@$multi_funcs) {
         my ($name, $ssig, $fsig, $ns, $func) = @$multi;
         my ($name_str, $ssig_str, $fsig_str, $ns_name)     =
@@ -487,21 +488,23 @@
                    [$ns,   $ns_name ]) {
             my ($raw_string, $name) = @$s;
             next if $strings_seen{$name}++;
-            $multi_strings .=  "        STRING * const $name = "
+            $multi_strings .=  "            STRING * const $name = "
                            . qq|CONST_STRING_GEN(interp, "$raw_string");\n|;
         }
 
         push @multi_list, <<END_MULTI_LIST;
-        { $name_str,
-          $ssig_str,
-          $fsig_str,
-          $ns_name,
-          (funcptr_t) $func }
+            _temp_multi_func_list[$i].multi_name = $name_str;
+            _temp_multi_func_list[$i].short_sig = $ssig_str;
+            _temp_multi_func_list[$i].full_sig = $fsig_str;
+            _temp_multi_func_list[$i].ns_name = $ns_name;
+            _temp_multi_func_list[$i].func_ptr = (funcptr_t) $func;
 END_MULTI_LIST
+        $i++;
 
     }
 
-    my $multi_list = join( ",\n", @multi_list);
+    my $multi_list_size = @multi_list;
+    my $multi_list = join( "\n", @multi_list);
 
     my @isa = grep { $_ ne 'default' } @{ $self->parents };
 
@@ -692,14 +695,13 @@
 
 
     if ( @$multi_funcs ) {
+        # Don't const the list, breaks some older C compilers
         $cout .= $multi_strings . <<"EOC";
 
-            $const multi_func_list _temp_multi_func_list[] = {
-                $multi_list
-            };
-#define N_MULTI_LIST (sizeof(_temp_multi_func_list)/sizeof(_temp_multi_func_list[0]))
+            multi_func_list _temp_multi_func_list[$multi_list_size];
+$multi_list
             Parrot_mmd_add_multi_list_from_c_args(interp,
-                _temp_multi_func_list, N_MULTI_LIST);
+                _temp_multi_func_list, $multi_list_size);
 EOC
     }
 

Modified: branches/include_dynpmc_makefile/ports/cygwin/README
==============================================================================
--- branches/include_dynpmc_makefile/ports/cygwin/README	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/ports/cygwin/README	Wed Apr 28 19:17:12 2010	(r46116)
@@ -682,9 +682,6 @@
  /usr/include/parrot/1.0.0/parrot/op.h
  /usr/include/parrot/1.0.0/parrot/oplib.h
  /usr/include/parrot/1.0.0/parrot/oplib/core_ops.h
- /usr/include/parrot/1.0.0/parrot/oplib/core_ops_cg.h
- /usr/include/parrot/1.0.0/parrot/oplib/core_ops_cgp.h
- /usr/include/parrot/1.0.0/parrot/oplib/core_ops_switch.h
  /usr/include/parrot/1.0.0/parrot/oplib/ops.h
  /usr/include/parrot/1.0.0/parrot/packfile.h
  /usr/include/parrot/1.0.0/parrot/parrot.h
@@ -748,8 +745,6 @@
  /usr/lib/parrot/1.0.0/src/install_config.o
  /usr/lib/parrot/1.0.0/src/nci.c
  /usr/lib/parrot/1.0.0/src/null_config.o
- /usr/lib/parrot/1.0.0/src/ops/core_ops_cgp.c
- /usr/lib/parrot/1.0.0/src/ops/core_ops_switch.c
  /usr/lib/parrot/1.0.0/src/parrot_config.o
  /usr/lib/parrot/1.0.0/tools/build/ops2c.pl
  /usr/lib/parrot/1.0.0/tools/build/pmc2c.pl
@@ -892,7 +887,6 @@
  /usr/share/doc/parrot/1.0.0/html/config/auto/attributes.pm.html
  /usr/share/doc/parrot/1.0.0/html/config/auto/backtrace.pm.html
  /usr/share/doc/parrot/1.0.0/html/config/auto/byteorder.pm.html
- /usr/share/doc/parrot/1.0.0/html/config/auto/cgoto.pm.html
  /usr/share/doc/parrot/1.0.0/html/config/auto/cpu.pm.html
  /usr/share/doc/parrot/1.0.0/html/config/auto/cpu/i386/auto.pm.html
  /usr/share/doc/parrot/1.0.0/html/config/auto/cpu/ppc/auto.pm.html

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/CGI/QueryHash.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/CGI/QueryHash.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/CGI/QueryHash.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -143,7 +143,7 @@
         # TODO: This should be an array
         v_array = new 'Hash'
         v_array[0] = v
-        substr k, -2, 2, ''
+        k = replace k, -2, 2, ''
         query_hash[k] = v_array
         branch next_item
 v_isnt_array:

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/Crow.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/Crow.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/Crow.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -124,7 +124,7 @@
         $I0 = index template, symbol
         if -1 == $I0 goto repl_done
         $I1 = length symbol
-        substr template, $I0, $I1, value
+        template = replace template, $I0, $I1, value
         goto repl_loop
       repl_done:
     goto it_loop

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/JSON.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/JSON.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/JSON.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -12,7 +12,7 @@
  load_bytecode 'JSON.pir'
  $S0 = _json( $P0 )
 
-To generate a PMC from a JSON string, see L<compilers/json/JSON.pir>.
+To generate a PMC from a JSON string, see L<compilers/data_json>.
 
 =cut
 

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/MIME/Base64.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/MIME/Base64.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/MIME/Base64.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -164,9 +164,9 @@
 
     # padding with '='
     if len_mod_3 == 0 goto END_2
-        substr base64, -1, 1, ascii:"="
+        base64 = replace base64, -1, 1, ascii:"="
         if len_mod_3 == 2 goto END_2
-            substr base64, -2, 1, ascii:"="
+            base64 = replace base64, -2, 1, ascii:"="
     END_2:
 
     .return( base64 )
@@ -260,9 +260,9 @@
     # cut padded '='
     if len_mod_4 == 0 goto END_3
         if len_mod_4 == 1 goto END_3
-	    chopn plain, 1
+	    plain = chopn plain, 1
             if len_mod_4 == 3 goto END_3
-	        chopn plain, 1
+	        plain = chopn plain, 1
     END_3:
 
     .return( plain )

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/OpenGL.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/OpenGL.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/OpenGL.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -309,8 +309,7 @@
     # Rename all 'glutcb*' symbols to 'glut*'
   rename_callbacks:
     .local string renamed
-    renamed = clone symbol
-    substr renamed, 4, 2, ''
+    renamed = replace symbol, 4, 2, ''
     export_renames[symbol] = renamed
     goto symbol_loop
   symbol_loop_end:
@@ -371,8 +370,7 @@
     # Rename all 'glutcb*' symbols to 'glut*'
   rename_callbacks:
     .local string renamed
-    renamed = clone symbol
-    substr renamed, 4, 2, ''
+    renamed = replace symbol, 4, 2, ''
     export_renames[symbol] = renamed
     goto symbol_loop
   symbol_loop_end:

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/PIRProfile.nqp
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/PIRProfile.nqp	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/PIRProfile.nqp	Wed Apr 28 19:17:12 2010	(r46116)
@@ -17,8 +17,9 @@
 }
 
 method build_profile_array() {
-
-    my @pprof_lines := pir::split("\n", self<profile>);
+    my %config := self.get_config();
+    my $newline := %config<win32> ?? "\r\n" !! "\n";
+    my @pprof_lines := pir::split($newline, self<profile>);
     self<profile_array> := ();
 
     for @pprof_lines -> $line {
@@ -34,7 +35,7 @@
     my %line_hash := {};
 
     my $colon_idx := pir::index($line, ":");
-    #if the line starts with "VERSION, CLI or END_OF_RUNLOOP, 
+    #if the line starts with "VERSION, CLI or END_OF_RUNLOOP,
     if ($colon_idx >= 3) {
         my $type := pir::substr($line, 0, $colon_idx);
         my $data := pir::substr($line, $colon_idx+1);

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/Want.nqp
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/Want.nqp	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/ProfTest/Want.nqp	Wed Apr 28 19:17:12 2010	(r46116)
@@ -147,7 +147,7 @@
 
 method accepts(%prof_line) {
     if self<found_cs> && self<slurp_until> {
-        if pir::downcase(%prof_line<type>) ne self<slurp_until> {
+        if pir::downcase__SS(%prof_line<type>) ne self<slurp_until> {
             return 1;
         }
         return 0;

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/String/Utils.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/String/Utils.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/String/Utils.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -53,7 +53,7 @@
     $I0 = strl - sepl
     $I1 = index res, sep, $I0
     unless $I1 == $I0 goto return
-    chopn res, sepl
+    res = chopn res, sepl
     goto chomp
 
   return:

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Harness.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Harness.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Harness.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -45,7 +45,7 @@
     set_global ['TAP';'Harness'], 'LEGAL_CALLBACK', $P0
 .end
 
-.sub 'init' :vtable :init
+.sub 'init' :vtable :method
     $P0 = get_global ['TAP';'Harness'], 'LEGAL_CALLBACK'
     setattribute self, 'ok_callbacks', $P0
 .end
@@ -339,8 +339,7 @@
     cmd .= " *"
     system(cmd)
     chdir(current_dir)
-    cmd = "gzip --best " . $S0
-    system(cmd)
+    gzip($S0)
     rmtree(dir)
     .return (aggregate)
 .end

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Parser.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Parser.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/TAP/Parser.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -660,7 +660,7 @@
     set_global ['TAP';'Parser'], 'LEGAL_CALLBACK', $P0
 .end
 
-.sub 'init' :vtable :init
+.sub 'init' :vtable :method
     $P0 = new 'ResizableIntegerArray'
     setattribute self, 'skipped', $P0
     $P0 = new 'ResizableIntegerArray'

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -312,22 +312,18 @@
     .return()
 .end
 
-=item C<diag( diagnostic_message )>
+=item C<diag( diagnostic_message, ... )>
 
 Records a diagnostic message for output.
 
 =cut
 
 .sub 'diag' :method
-    .param string diagnostic
+    .param pmc args :slurpy
 
-    if diagnostic goto DIAGNOSTIC_SET
-    .return()
-
-  DIAGNOSTIC_SET:
     .local pmc output
     output = self.'output'()
-    output.'diag'( diagnostic )
+    .tailcall output.'diag'( args :flat )
 .end
 
 =item C<ok( passed, description )>

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder/Output.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder/Output.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/Test/Builder/Output.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -122,7 +122,8 @@
   	newline_index = index message, "\n"
 	if newline_index == -1 goto END_LOOP
 	inc newline_index
-	line = substr message, 0, newline_index, ''
+	line    = substr message, 0, newline_index
+	message = replace message, 0, newline_index, ''
 	push lines, line
 	if message goto SPLIT_LOOP
 
@@ -161,7 +162,7 @@
 	.return( message )
 .end
 
-=item C<diag( message )>
+=item C<diag( message, ... )>
 
 Writes the string C<message> to the diagnostic filehandle, TAP-escaping any
 unescaped newlines.
@@ -169,7 +170,9 @@
 =cut
 
 .sub diag :method
-	.param string message
+	.param pmc args :slurpy
+	.local string message
+	message = join '', args
 
 	.local int message_length
 	message_length = length message
@@ -190,7 +193,7 @@
   WRITE_MESSAGE:
 	.local pmc diag_output
 	diag_output = self.'diag_output'()
-	diag_output.'puts'( message )
+	.tailcall diag_output.'puts'( message )
 .end
 
 =back

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/Test/More.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/Test/More.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/Test/More.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -527,18 +527,18 @@
   done:
 .end
 
-=item C<diag( diagnostic )>
+=item C<diag( diagnostic, ... )>
 
 Prints C<diagnostic> to the screen, without affecting test comparisons.
 
 =cut
 
 .sub diag
-    .param string diagnostic
+    .param pmc args :slurpy
 
     .local pmc test
     get_hll_global test, [ 'Test'; 'More' ], '_test'
-    test.'diag'( diagnostic )
+    .tailcall test.'diag'( args :flat )
 .end
 
 

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/distutils.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/distutils.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -62,7 +62,7 @@
 
 Output a skeleton for Plumage
 
-=item sdist, sdist_gztar, sdist_bztar, sdist_zip, sdist_rpm, manifest
+=item sdist, sdist_gztar, sdist_zip, sdist_rpm, manifest
 
 Create a source distribution or a source RPM package
 
@@ -100,10 +100,6 @@
 
 core module Pod-Html
 
-=item chmod (in step 'install')
-
-core module ExtUtils::Command, see TT #1322
-
 =back
 
 =head2 PARROT DEPENDENCIES
@@ -126,15 +122,11 @@
 
 =item smoke
 
-tar, gzip, curl
+tar, curl
 
 =item sdist_gztar
 
-Some coreutils : tar, gzip
-
-=item sdist_bztar
-
-bzip2
+Some coreutils : tar
 
 =item sdist_zip
 
@@ -254,8 +246,6 @@
     register_step_after('clean', _clean_html_pod)
     .const 'Sub' _clean_gztar = '_clean_gztar'
     register_step_after('clean', _clean_gztar)
-    .const 'Sub' _clean_bztar = '_clean_bztar'
-    register_step_after('clean', _clean_bztar)
     .const 'Sub' _clean_zip = '_clean_zip'
     register_step_after('clean', _clean_zip)
     .const 'Sub' _clean_smoke = '_clean_smoke'
@@ -289,8 +279,6 @@
     register_step('sdist', _sdist)
     .const 'Sub' _sdist_gztar = '_sdist_gztar'
     register_step('sdist_gztar', _sdist_gztar)
-    .const 'Sub' _sdist_bztar = '_sdist_bztar'
-    register_step('sdist_bztar', _sdist_bztar)
     .const 'Sub' _sdist_zip = '_sdist_zip'
     register_step('sdist_zip', _sdist_zip)
     .const 'Sub' _manifest = '_manifest'
@@ -1276,9 +1264,6 @@
 .sub 'get_cores'
     $P0 = new 'Hash'
     $P0['C'] = ''
-#    $P0['CGP'] = '_cgp'
-#    $P0['CGoto'] = '_cg'
-    $P0['CSwitch'] = '_switch'
     .return ($P0)
 .end
 
@@ -3058,9 +3043,8 @@
 
     rmtree($S0)
 
-    cmd = 'gzip --best ' . $S0
-    cmd .= '.tar'
-    system(cmd, 1 :named('verbose'))
+    $S1 = $S0 . '.tar'
+    gzip($S1)
   L1:
 .end
 
@@ -3101,45 +3085,6 @@
     .return ($S0)
 .end
 
-=head3 Step sdist_bztar
-
-=cut
-
-.sub '_sdist_bztar' :anon
-    .param pmc kv :slurpy :named
-    run_step('manifest', kv :flat :named)
-
-    $S0 = slurp('MANIFEST')
-    $P0 = split "\n", $S0
-    $S0 = pop $P0
-    $S0 = get_tarname('.tar.bz2', kv :flat :named)
-    $I0 = newer($S0, $P0)
-    if $I0 goto L1
-    $S0 = get_tarname('', kv :flat :named)
-    copy_sdist($S0, $P0)
-
-    .local string cmd
-    cmd = 'tar -cvf ' . $S0
-    cmd .= '.tar '
-    cmd .= $S0
-    system(cmd, 1 :named('verbose'))
-
-    rmtree($S0)
-
-    cmd = 'bzip2 ' . $S0
-    cmd .= '.tar'
-    system(cmd, 1 :named('verbose'))
-  L1:
-.end
-
-.sub '_clean_bztar' :anon
-    .param pmc kv :slurpy :named
-
-    $S0 = get_tarname('.tar.bz2', kv :flat :named)
-    unlink($S0, 1 :named('verbose'))
-    unlink('MANIFEST', 1 :named('verbose'))
-.end
-
 =head3 Step sdist_zip
 
 =cut
@@ -4276,9 +4221,6 @@
     flags .= " "
     $S0 = $P0['cc_hasjit']
     flags .= $S0
-    flags .= " "
-    $S0 = $P0['cg_flag']
-    flags .= $S0
     .return (flags)
 .end
 

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/osutils.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/osutils.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/osutils.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -260,19 +260,8 @@
     .param string filename
     .param int mode
     .param int verbose          :named('verbose') :optional
-    # see TT #1322
-    $P0 = get_config()
-    .local string cmd
-    cmd = $P0['perl']
-    cmd .= " -MExtUtils::Command -e ExtUtils::Command::chmod "
-    $P1 = new 'FixedIntegerArray'
-    set $P1, 1
-    $P1[0] = mode
-    $S0 = sprintf '0%o', $P1
-    cmd .= $S0
-    cmd .= " "
-    cmd .= filename
-    system(cmd, verbose :named('verbose'))
+    $P0 = new 'OS'
+    $P0.'chmod'(filename, mode)
 .end
 
 =item unlink
@@ -764,6 +753,48 @@
   L7:
 .end
 
+=item gzip
+
+=cut
+
+.sub 'gzip'
+    .param string filename
+    .local pmc fh, gh
+    fh = new 'FileHandle'
+    push_eh _handler1
+    $S0 = fh.'readall'(filename)
+    $I0 = length $S0
+    pop_eh
+    $P0 = loadlib 'gziphandle'
+    push_eh _handler2
+    gh = new 'GzipHandle'
+    $S1 = filename . '.gz'
+    gh.'open'($S1, 'wb')
+    gh.'puts'($S0)
+    gh.'close'()
+    unlink(filename)
+    .return ()
+  _handler1:
+    .local pmc e
+    .get_results (e)
+    $S0 = "Can't open '"
+    $S0 .= filename
+    $S0 .= "' ("
+    $S1 = err
+    $S0 .= $S1
+    $S0 .= ")\n"
+    e = $S0
+    rethrow e
+  _handler2:
+    .local pmc e
+    .get_results (e)
+    $S0 = "Can't gzip '"
+    $S0 .= filename
+    $S0 .= "'\n"
+    e = $S0
+    rethrow e
+.end
+
 =back
 
 =head1 AUTHOR

Modified: branches/include_dynpmc_makefile/runtime/parrot/library/uuid.pir
==============================================================================
--- branches/include_dynpmc_makefile/runtime/parrot/library/uuid.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/runtime/parrot/library/uuid.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -289,7 +289,7 @@
 .sub 'hex' :anon
     .param string in
     .const string xdigits = '0123456789ABCDEF'
-    upcase in
+    in  = upcase in
     $S1 = substr in, 0, 1
     $I1 = index xdigits, $S1
     $I1 *= 16

Modified: branches/include_dynpmc_makefile/src/call/context.c
==============================================================================
--- branches/include_dynpmc_makefile/src/call/context.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/call/context.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -320,7 +320,6 @@
     ctx->current_object    = NULL;
     ctx->handlers          = PMCNULL;
     ctx->caller_ctx        = NULL;
-    ctx->pred_offset       = 0;
     ctx->current_sig       = PMCNULL;
     ctx->current_sub       = PMCNULL;
 
@@ -330,7 +329,6 @@
         ctx->warns             = old->warns;
         ctx->errors            = old->errors;
         ctx->trace_flags       = old->trace_flags;
-        ctx->pred_offset       = old->pred_offset;
         ctx->current_HLL       = old->current_HLL;
         ctx->current_namespace = old->current_namespace;
         /* end COW */
@@ -342,7 +340,6 @@
         ctx->warns             = 0;
         ctx->errors            = 0;
         ctx->trace_flags       = 0;
-        ctx->pred_offset       = 0;
         ctx->current_HLL       = 0;
         ctx->current_namespace = PMCNULL;
         ctx->recursion_depth   = 0;
@@ -526,18 +523,12 @@
 {
     ASSERT_ARGS(Parrot_pcc_free_registers)
     Parrot_CallContext_attributes * const ctx = PARROT_CALLCONTEXT(pmcctx);
-    size_t reg_size;
 
-    if (!ctx)
-        return;
-
-    reg_size = Parrot_pcc_calculate_registers_size(interp, ctx->n_regs_used);
-    if (!reg_size)
-        return;
-
-    /* Free registers */
-    Parrot_gc_free_fixed_size_storage(interp, reg_size, ctx->registers);
+    const size_t reg_size =
+        Parrot_pcc_calculate_registers_size(interp, ctx->n_regs_used);
 
+    if (reg_size)
+        Parrot_gc_free_fixed_size_storage(interp, reg_size, ctx->registers);
 }
 
 

Modified: branches/include_dynpmc_makefile/src/call/context_accessors.c
==============================================================================
--- branches/include_dynpmc_makefile/src/call/context_accessors.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/call/context_accessors.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -471,38 +471,6 @@
 
 /*
 
-=item C<size_t Parrot_pcc_get_pred_offset_func(PARROT_INTERP, PMC *ctx)>
-
-=item C<void Parrot_pcc_set_pred_offset_func(PARROT_INTERP, PMC *ctx, size_t
-pred_offset)>
-
-Get/set pred_offset
-
-=cut
-
-*/
-
-PARROT_EXPORT
-size_t
-Parrot_pcc_get_pred_offset_func(PARROT_INTERP, ARGIN(PMC *ctx))
-{
-    ASSERT_ARGS(Parrot_pcc_get_pred_offset_func)
-    Parrot_Context const *c = get_context_struct_fast(interp, ctx);
-    return c->pred_offset;
-}
-
-PARROT_EXPORT
-void
-Parrot_pcc_set_pred_offset_func(PARROT_INTERP, ARGIN(PMC *ctx), size_t pred_offset)
-{
-    ASSERT_ARGS(Parrot_pcc_set_pred_offset_func)
-    Parrot_Context *c = get_context_struct_fast(interp, ctx);
-    c->pred_offset = pred_offset;
-}
-
-
-/*
-
 =item C<UINTVAL Parrot_pcc_warnings_on_func(PARROT_INTERP, PMC *ctx, UINTVAL
 flags)>
 

Modified: branches/include_dynpmc_makefile/src/call/pcc.c
==============================================================================
--- branches/include_dynpmc_makefile/src/call/pcc.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/call/pcc.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -356,9 +356,6 @@
         Parrot_runcore_t *old_core = interp->run_core;
         const opcode_t offset = dest - interp->code->base.data;
 
-        if (PARROT_RUNCORE_PREDEREF_OPS_TEST(interp->run_core))
-            Parrot_runcore_switch(interp, CONST_STRING(interp, "slow"));
-
         runops(interp, offset);
         Interp_core_SET(interp, old_core);
     }

Modified: branches/include_dynpmc_makefile/src/debug.c
==============================================================================
--- branches/include_dynpmc_makefile/src/debug.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/debug.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -863,7 +863,7 @@
 
 PARROT_EXPORT
 void
-Parrot_debugger_start(PARROT_INTERP, ARGIN(opcode_t * cur_opcode))
+Parrot_debugger_start(PARROT_INTERP, ARGIN_NULLOK(opcode_t * cur_opcode))
 {
     ASSERT_ARGS(Parrot_debugger_start)
     TRACEDEB_MSG("Parrot_debugger_start");

Modified: branches/include_dynpmc_makefile/src/dynoplibs/Defines.in
==============================================================================
--- branches/include_dynpmc_makefile/src/dynoplibs/Defines.in	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/dynoplibs/Defines.in	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,12 +1,6 @@
 DYNOPLIBS_TARGETS = \
-#IF(cg_flag):    $(DYNEXT_DIR)/obscure_ops_cg$(LOAD_EXT) \
-#IF(cg_flag):    $(DYNEXT_DIR)/obscure_ops_cgp$(LOAD_EXT) \
     $(DYNEXT_DIR)/obscure_ops$(LOAD_EXT) \
-    $(DYNEXT_DIR)/obscure_ops_switch$(LOAD_EXT) \
-#IF(cg_flag):    $(DYNEXT_DIR)/math_ops_cg$(LOAD_EXT) \
-#IF(cg_flag):    $(DYNEXT_DIR)/math_ops_cgp$(LOAD_EXT) \
     $(DYNEXT_DIR)/math_ops$(LOAD_EXT) \
-    $(DYNEXT_DIR)/math_ops_switch$(LOAD_EXT)
 
 DYNOPLIBS_CLEANUPS = \
     src/dynoplibs/*.c \

Modified: branches/include_dynpmc_makefile/src/dynoplibs/Rules.in
==============================================================================
--- branches/include_dynpmc_makefile/src/dynoplibs/Rules.in	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/dynoplibs/Rules.in	Wed Apr 28 19:17:12 2010	(r46116)
@@ -14,42 +14,6 @@
 src/dynoplibs/obscure_ops.c: src/dynoplibs/obscure.ops $(BUILD_TOOLS_DIR)/ops2c.pl
 	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --dynamic src/dynoplibs/obscure.ops
 
-$(DYNEXT_DIR)/obscure_ops_switch$(LOAD_EXT): src/dynoplibs/obscure_ops_switch$(O) $(LIBPARROT)
-	$(LD) @ld_out@$@ src/dynoplibs/obscure_ops_switch$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-#IF(cygwin or hpux):	$(CHMOD) 0775 $@
-
-src/dynoplibs/obscure_ops_switch$(O): include/pmc/pmc_parrotlibrary.h include/pmc/pmc_callcontext.h src/dynoplibs/obscure_ops_switch.c $(PARROT_H_HEADERS)
-
-src/dynoplibs/obscure_ops_switch.h: src/dynoplibs/obscure_ops_switch.c
-
-src/dynoplibs/obscure_ops_switch.c: src/dynoplibs/obscure.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CSwitch --dynamic src/dynoplibs/obscure.ops
-
-$(DYNEXT_DIR)/obscure_ops_cg$(LOAD_EXT): src/dynoplibs/obscure_ops_cg$(O) $(LIBPARROT)
-	$(LD) @ld_out@$@ src/dynoplibs/obscure_ops_cg$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-#IF(cygwin or hpux):	$(CHMOD) 0775 $@
-
-src/dynoplibs/obscure_ops_cg$(O): include/pmc/pmc_parrotlibrary.h include/pmc/pmc_callcontext.h src/dynoplibs/obscure_ops_cg.c $(PARROT_H_HEADERS)
-
-src/dynoplibs/obscure_ops_cg.h: src/dynoplibs/obscure_ops_cg.c
-
-src/dynoplibs/obscure_ops_cg.c: src/dynoplibs/obscure.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGoto --dynamic src/dynoplibs/obscure.ops
-
-$(DYNEXT_DIR)/obscure_ops_cgp$(LOAD_EXT): src/dynoplibs/obscure_ops_cgp$(O) $(LIBPARROT)
-	$(LD) @ld_out@$@ src/dynoplibs/obscure_ops_cgp$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-#IF(cygwin or hpux):	$(CHMOD) 0775 $@
-
-src/dynoplibs/obscure_ops_cgp$(O): include/pmc/pmc_parrotlibrary.h include/pmc/pmc_callcontext.h src/dynoplibs/obscure_ops_cgp.c $(PARROT_H_HEADERS)
-
-src/dynoplibs/obscure_ops_cgp.h: src/dynoplibs/obscure_ops_cgp.c
-
-src/dynoplibs/obscure_ops_cgp.c: src/dynoplibs/obscure.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGP --dynamic src/dynoplibs/obscure.ops
-
 $(DYNEXT_DIR)/math_ops$(LOAD_EXT): src/dynoplibs/math_ops$(O) $(LIBPARROT)
 	$(LD) @ld_out@$@ src/dynoplibs/math_ops$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
@@ -62,38 +26,3 @@
 
 src/dynoplibs/math_ops.h: src/dynoplibs/math_ops.c
 
-$(DYNEXT_DIR)/math_ops_switch$(LOAD_EXT): src/dynoplibs/math_ops_switch$(O) $(LIBPARROT)
-	$(LD) @ld_out@$@ src/dynoplibs/math_ops_switch$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-#IF(cygwin or hpux):	$(CHMOD) 0775 $@
-
-src/dynoplibs/math_ops_switch$(O): include/pmc/pmc_parrotlibrary.h include/pmc/pmc_callcontext.h src/dynoplibs/math_ops_switch.c $(PARROT_H_HEADERS)
-
-src/dynoplibs/math_ops_switch.h: src/dynoplibs/math_ops_switch.c
-
-src/dynoplibs/math_ops_switch.c: src/dynoplibs/math.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CSwitch --dynamic src/dynoplibs/math.ops
-
-$(DYNEXT_DIR)/math_ops_cg$(LOAD_EXT): src/dynoplibs/math_ops_cg$(O) $(LIBPARROT)
-	$(LD) @ld_out@$@ src/dynoplibs/math_ops_cg$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-#IF(cygwin or hpux):	$(CHMOD) 0775 $@
-
-src/dynoplibs/math_ops_cg$(O): include/pmc/pmc_parrotlibrary.h include/pmc/pmc_callcontext.h src/dynoplibs/math_ops_cg.c $(PARROT_H_HEADERS)
-
-src/dynoplibs/math_ops_cg.h: src/dynoplibs/math_ops_cg.c
-
-src/dynoplibs/math_ops_cg.c: src/dynoplibs/math.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGoto --dynamic src/dynoplibs/math.ops
-
-$(DYNEXT_DIR)/math_ops_cgp$(LOAD_EXT): src/dynoplibs/math_ops_cgp$(O) $(LIBPARROT)
-	$(LD) @ld_out@$@ src/dynoplibs/math_ops_cgp$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-#IF(cygwin or hpux):	$(CHMOD) 0775 $@
-
-src/dynoplibs/math_ops_cgp$(O): include/pmc/pmc_parrotlibrary.h include/pmc/pmc_callcontext.h src/dynoplibs/math_ops_cgp.c $(PARROT_H_HEADERS)
-
-src/dynoplibs/math_ops_cgp.h: src/dynoplibs/math_ops_cgp.c
-
-src/dynoplibs/math_ops_cgp.c: src/dynoplibs/math.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGP --dynamic src/dynoplibs/math.ops

Copied: branches/include_dynpmc_makefile/src/dynpmc/gziphandle.pmc (from r46115, trunk/src/dynpmc/gziphandle.pmc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/src/dynpmc/gziphandle.pmc	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/src/dynpmc/gziphandle.pmc)
@@ -0,0 +1,301 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/dynpmc/gziphandle.pmc - GzipHandle PMC
+
+=head1 DESCRIPTION
+
+The GzipHandle PMC performs I/O operations on a source or destination file.
+
+This PMC wraps the zlib.
+
+=head2 Vtable Functions
+
+=over 4
+
+=cut
+
+*/
+
+#include <zlib.h>
+#include "parrot/extend.h"
+
+#define CHAR char
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
+pmclass GzipHandle provides Handle dynpmc auto_attrs {
+    ATTR void *file;
+
+/*
+
+=item C<void init()>
+
+Initializes a newly created FileHandle object.
+
+=cut
+
+*/
+    VTABLE void init() {
+        PARROT_GZIPHANDLE(SELF)->file = NULL;
+    }
+
+/*
+
+=item C<INTVAL get_bool()>
+
+Returns whether the GzipHandle has reached the end of the file.
+
+=cut
+
+*/
+    VTABLE INTVAL get_bool() {
+        gzFile file;
+        GET_ATTR_file(INTERP, SELF, file);
+        return !gzeof(file);
+    }
+
+/*
+
+=back
+
+=head2 Stream-Oriented Methods
+
+=over 4
+
+=item C<METHOD open(STRING *filename, STRING *mode :optional)>
+
+Opens the file at the given filename (including path) with the given mode. The
+invocant is modified and becomes an open filehandle.
+
+=cut
+
+*/
+    METHOD open(STRING *filename, STRING *mode :optional,
+                               INTVAL has_mode :opt_flag) {
+        gzFile file;
+        char *path;
+        char *mod = (char *)"rb";
+        path = Parrot_str_to_cstring(INTERP, filename);
+        if (has_mode)
+            mod = Parrot_str_to_cstring(INTERP, mode);
+        file = gzopen(path, mod);
+        Parrot_str_free_cstring(path);
+        if (has_mode)
+            Parrot_str_free_cstring(mod);
+        if (NULL == file) {
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ILL_INHERIT,
+                "gzopen fails");
+        }
+        SET_ATTR_file(INTERP, SELF, file);
+        RETURN(PMC SELF);
+    }
+
+/*
+
+=item C<METHOD close()>
+
+Close the gziphandle.
+
+=cut
+
+*/
+    METHOD close() {
+        INTVAL status;
+        gzFile file;
+        GET_ATTR_file(INTERP, SELF, file);
+        status = gzclose(file);
+        RETURN(INTVAL status);
+    }
+
+/*
+
+=item C<METHOD eof()>
+
+Returns true if the filehandle is at end-of-file, returns false otherwise.
+
+=cut
+
+*/
+    METHOD eof() {
+        INTVAL status;
+        gzFile file;
+        GET_ATTR_file(INTERP, SELF, file);
+        status = gzeof(file);
+        RETURN(INTVAL status);
+    }
+
+/*
+
+=item C<METHOD flush()>
+
+Flushes the gziphandle.
+
+=cut
+
+*/
+    METHOD flush() {
+        INTVAL status;
+        gzFile file;
+        GET_ATTR_file(INTERP, SELF, file);
+        status = gzflush(file, Z_SYNC_FLUSH);
+        RETURN(INTVAL status);
+    }
+
+/*
+
+=item C<METHOD print([INTVAL|FLOATVAL|STRING *|PMC*] value)>
+
+Print the passed in integer, number, string, or PMC to the gziphandle.
+(Integers, numbers, and strings are auto-boxed as PMCs.)
+
+=cut
+
+*/
+    METHOD print(PMC *value) {
+        gzFile file;
+        STRING * const str = VTABLE_get_string(INTERP, value);
+        char *buf = Parrot_str_to_cstring(INTERP, str);
+        UINTVAL len =  Parrot_str_byte_length(INTERP, str);
+        GET_ATTR_file(INTERP, SELF, file);
+        (void)gzwrite(file, buf, len);
+        Parrot_str_free_cstring(buf);
+    }
+
+
+/*
+
+=item C<METHOD puts(STRING *value)>
+
+Print the string to the gziphandle.
+
+=cut
+
+*/
+    METHOD puts(STRING *value) {
+        INTVAL status;
+        gzFile file;
+        char *buf = Parrot_str_to_cstring(INTERP, value);
+        UINTVAL len =  Parrot_str_byte_length(INTERP, value);
+        GET_ATTR_file(INTERP, SELF, file);
+        status =  gzwrite(file, buf, len);
+        Parrot_str_free_cstring(buf);
+        RETURN(INTVAL status);
+    }
+
+/*
+
+=item C<METHOD read(INTVAL bytes)>
+
+Read the given number of bytes from the gziphandle and return them in a string.
+
+=cut
+
+*/
+    METHOD read(INTVAL length) {
+        int result;
+        gzFile file;
+        STRING *str = STRINGNULL;
+        char * const buf = mem_allocate_n_zeroed_typed(length, char);
+        GET_ATTR_file(INTERP, SELF, file);
+        result = gzread(file, buf, length);
+        if (result > 0) {
+            str = Parrot_str_new(INTERP, buf, result);
+        }
+        mem_sys_free(buf);
+        RETURN(STRING *str);
+    }
+
+/*
+
+=item C<METHOD is_tty()>
+
+GzipHandles are never tty's, returns false.
+
+=cut
+
+*/
+    METHOD is_tty() {
+        RETURN(INTVAL 0);
+    }
+
+/*
+
+=back
+
+=head2 Basic Methods
+
+=over 4
+
+=item C<METHOD version()>
+
+Returns a string with the zlib version.
+
+*/
+    METHOD version() {
+        STRING *version = Parrot_str_new_constant(INTERP, zlibVersion());
+        RETURN(STRING *version);
+    }
+
+    METHOD compress(STRING *str) {
+        int rc;
+        char *buf;
+        STRING *dst = NULL;
+        UINTVAL srcLen, bufSize, dstLen;
+        char *src = Parrot_str_to_cstring(INTERP, str);
+        if (NULL == src) {
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ILL_INHERIT,
+                "failed to allocate");
+        }
+        srcLen = Parrot_str_byte_length(INTERP, str);
+        bufSize = 12 + srcLen + srcLen / 1000;
+        buf = mem_allocate_n_zeroed_typed(bufSize, char);
+        if (NULL == buf) {
+            Parrot_str_free_cstring(src);
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ILL_INHERIT,
+                "failed to allocate");
+        }
+        rc = compress((Bytef *)buf, &dstLen, (const Bytef *)src, srcLen);
+        Parrot_str_free_cstring(src);
+        switch (rc) {
+          case Z_OK:
+            dst = Parrot_str_new(INTERP, buf, dstLen);
+            mem_sys_free(buf);
+            break;
+
+          case Z_MEM_ERROR:
+            mem_sys_free(buf);
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ILL_INHERIT,
+                "not enough memory");
+            break;
+
+          case Z_BUF_ERROR:
+            mem_sys_free(buf);
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ILL_INHERIT,
+                "output buffer error");
+            break;
+        }
+        RETURN(STRING *dst);
+    }
+
+/*
+
+=back
+
+=cut
+
+*/
+
+}
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+

Modified: branches/include_dynpmc_makefile/src/embed.c
==============================================================================
--- branches/include_dynpmc_makefile/src/embed.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/embed.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -336,15 +336,6 @@
       case PARROT_FAST_CORE:
         Parrot_runcore_switch(interp, Parrot_str_new_constant(interp, "fast"));
         break;
-      case PARROT_SWITCH_CORE:
-        Parrot_runcore_switch(interp, Parrot_str_new_constant(interp, "switch"));
-        break;
-      case PARROT_CGP_CORE:
-        Parrot_runcore_switch(interp, Parrot_str_new_constant(interp, "cgp"));
-        break;
-      case PARROT_CGOTO_CORE:
-        Parrot_runcore_switch(interp, Parrot_str_new_constant(interp, "cgoto"));
-        break;
       case PARROT_EXEC_CORE:
         Parrot_runcore_switch(interp, Parrot_str_new_constant(interp, "exec"));
         break;
@@ -716,8 +707,8 @@
      */
 
     for (i = 0; i < ft->fixup_count; i++) {
-        if (ft->fixups[i]->type == enum_fixup_sub) {
-            const opcode_t ci      = ft->fixups[i]->offset;
+        if (ft->fixups[i].type == enum_fixup_sub) {
+            const opcode_t ci      = ft->fixups[i].offset;
             PMC    * const sub_pmc = ct->constants[ci]->u.key;
             Parrot_Sub_attributes *sub;
 
@@ -957,7 +948,7 @@
 Parrot_disassemble(PARROT_INTERP, ARGIN(const char *outfile), Parrot_disassemble_options options)
 {
     PDB_line_t *line;
-    PDB_t * const pdb   = mem_gc_allocate_typed(interp, PDB_t);
+    PDB_t * const pdb   = mem_gc_allocate_zeroed_typed(interp, PDB_t);
     int num_mappings    = 0;
     int curr_mapping    = 0;
     int op_code_seq_num = 0;
@@ -1001,12 +992,12 @@
 
         /* Parrot_io_fprintf(interp, output, "%i < %i %i == %i \n", curr_mapping,
          * num_mappings, op_code_seq_num,
-         * interp->code->debugs->mappings[curr_mapping]->offset); */
+         * interp->code->debugs->mappings[curr_mapping].offset); */
 
         if (debugs && curr_mapping < num_mappings) {
-            if (op_code_seq_num == interp->code->debugs->mappings[curr_mapping]->offset) {
+            if (op_code_seq_num == interp->code->debugs->mappings[curr_mapping].offset) {
                 const int filename_const_offset =
-                    interp->code->debugs->mappings[curr_mapping]->filename;
+                    interp->code->debugs->mappings[curr_mapping].filename;
                 Parrot_io_fprintf(interp, output, "# Current Source Filename '%Ss'\n",
                         interp->code->const_table->constants[filename_const_offset]->u.string);
                 curr_mapping++;

Modified: branches/include_dynpmc_makefile/src/gc/alloc_resources.c
==============================================================================
--- branches/include_dynpmc_makefile/src/gc/alloc_resources.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/gc/alloc_resources.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -90,14 +90,19 @@
         FUNC_MODIFIES(*new_block);
 
 static void free_pool(ARGFREE(Fixed_Size_Pool *pool));
+static int is_block_almost_full(ARGIN(const Memory_Block *block))
+        __attribute__nonnull__(1);
+
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static char * move_one_buffer(PARROT_INTERP,
+    ARGIN(Memory_Block *pool),
     ARGMOD(Buffer *old_buf),
     ARGMOD(char *new_pool_ptr))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3)
+        __attribute__nonnull__(4)
         FUNC_MODIFIES(*old_buf)
         FUNC_MODIFIES(*new_pool_ptr);
 
@@ -168,8 +173,11 @@
     , PARROT_ASSERT_ARG(pool) \
     , PARROT_ASSERT_ARG(new_block))
 #define ASSERT_ARGS_free_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_is_block_almost_full __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(block))
 #define ASSERT_ARGS_move_one_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(pool) \
     , PARROT_ASSERT_ARG(old_buf) \
     , PARROT_ASSERT_ARG(new_pool_ptr))
 #define ASSERT_ARGS_new_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -275,15 +283,13 @@
 
 Buffer memory layout:
 
-                    +-----------------+
-                    |  ref_count   |f |    # GC header
-  obj->bufstart  -> +-----------------+
-                    |  data           |
-                    v                 v
-
- * if PObj_is_COWable is set, then we have
-   - a ref_count, {inc, dec}remented by 2 always
-   - the lo bit 'f' means 'is being forwarded" - what TAIL_flag was
+                    +-------------------+
+                    | flags # GC header |
+  obj->bufstart  -> +-------------------+
+                    |  data             |
+                    v                   v
+
+ * if PObj_is_COWable is set, then we have space for flags.
 
  * if PObj_align_FLAG is set, obj->bufstart is aligned like discussed above
  * obj->buflen is the usable length excluding the optional GC part.
@@ -457,6 +463,7 @@
 
     /* Snag a block big enough for everything */
     total_size = pad_pool_size(pool);
+
     alloc_new_block(mem_pools, total_size, pool, "inside compact");
 
     new_block = pool->top_block;
@@ -482,7 +489,14 @@
             const size_t objects_end = cur_buffer_arena->used;
 
             for (i = objects_end; i; --i) {
-                cur_spot = move_one_buffer(interp, b, cur_spot);
+
+                if (Buffer_buflen(b) && PObj_is_movable_TESTALL(b)) {
+                    Memory_Block *old_block = Buffer_pool(b);
+
+                    if (!is_block_almost_full(old_block))
+                        cur_spot = move_one_buffer(interp, new_block, b, cur_spot);
+                }
+
                 b = (Buffer *)((char *)b + object_size);
             }
         }
@@ -536,34 +550,37 @@
 pad_pool_size(ARGIN(const Variable_Size_Pool *pool))
 {
     ASSERT_ARGS(pad_pool_size)
-    const Memory_Block *cur_block = pool->top_block;
+    Memory_Block *cur_block = pool->top_block;
 
-    UINTVAL total_size = 0;
+    UINTVAL total_size   = 0;
+#if RESOURCE_DEBUG
+    size_t  total_blocks = 0;
+#endif
 
     while (cur_block) {
-        total_size += (cur_block->size - cur_block->free);
+        total_size += cur_block->size - cur_block->freed - cur_block->free;
         cur_block   = cur_block->prev;
+#if RESOURCE_DEBUG
+        ++total_blocks;
+#endif
     }
 
-    /*
-     * XXX for some reason the guarantee isn't correct
-     *     TODO check why
-     */
-
-    /* total_size -= pool->guaranteed_reclaimable; */
-
     /* this makes for ever increasing allocations but fewer collect runs */
 #if WE_WANT_EVER_GROWING_ALLOCATIONS
     total_size += pool->minimum_block_size;
 #endif
 
+#if RESOURCE_DEBUG
+    fprintf(stderr, "Total blocks: %d\n", total_blocks);
+#endif
+
     return total_size;
 }
 
 /*
 
-=item C<static char * move_one_buffer(PARROT_INTERP, Buffer *old_buf, char
-*new_pool_ptr)>
+=item C<static char * move_one_buffer(PARROT_INTERP, Memory_Block *pool, Buffer
+*old_buf, char *new_pool_ptr)>
 
 The compact_pool operation collects disjointed blocks of memory allocated on a
 given pool's free list into one large block of memory. Once the new larger
@@ -577,91 +594,85 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static char *
-move_one_buffer(PARROT_INTERP, ARGMOD(Buffer *old_buf), ARGMOD(char *new_pool_ptr))
+move_one_buffer(PARROT_INTERP, ARGIN(Memory_Block *pool),
+        ARGMOD(Buffer *old_buf), ARGMOD(char *new_pool_ptr))
 {
     ASSERT_ARGS(move_one_buffer)
-    /* ! (on_free_list | constant | external | sysmem) */
-    if (Buffer_buflen(old_buf) && PObj_is_movable_TESTALL(old_buf)) {
-        INTVAL *ref_count = NULL;
-        ptrdiff_t offset = 0;
+
+    INTVAL       *flags     = NULL;
+    ptrdiff_t     offset    = 0;
+    Memory_Block *old_block = NULL;
 #if RESOURCE_DEBUG
-        if (Buffer_buflen(old_buf) >= RESOURCE_DEBUG_SIZE)
-            debug_print_buf(interp, old_buf);
+    if (Buffer_buflen(old_buf) >= RESOURCE_DEBUG_SIZE)
+        debug_print_buf(interp, old_buf);
 #else
-        UNUSED(interp);
+    UNUSED(interp);
 #endif
 
-        /* we can't perform the math all the time, because
-         * strstart might be in unallocated memory */
-        if (PObj_is_COWable_TEST(old_buf)) {
-            ref_count = Buffer_bufrefcountptr(old_buf);
-
-            if (PObj_is_string_TEST(old_buf)) {
-                offset = (ptrdiff_t)((STRING *)old_buf)->strstart -
-                    (ptrdiff_t)Buffer_bufstart(old_buf);
-            }
+    /* we can't perform the math all the time, because
+        * strstart might be in unallocated memory */
+    if (PObj_is_COWable_TEST(old_buf)) {
+        flags = Buffer_bufrefcountptr(old_buf);
+        old_block = Buffer_pool(old_buf);
+
+        if (PObj_is_string_TEST(old_buf)) {
+            offset = (ptrdiff_t)((STRING *)old_buf)->strstart -
+                (ptrdiff_t)Buffer_bufstart(old_buf);
         }
+    }
+
+    /* buffer has already been moved; just change the header */
+    if (flags && (*flags & Buffer_shared_FLAG)
+              && (*flags & Buffer_moved_FLAG)) {
+        /* Find out who else references our data */
+        Buffer * const hdr = *((Buffer **)Buffer_bufstart(old_buf));
+
+        PARROT_ASSERT(PObj_is_COWable_TEST(old_buf));
+
+        /* Make sure they know that we own it too */
+        /* Set Buffer_shared_FLAG in new buffer */
+        *Buffer_bufrefcountptr(hdr) |= Buffer_shared_FLAG;
+
+        /* Now make sure we point to where the other guy does */
+        Buffer_bufstart(old_buf) = Buffer_bufstart(hdr);
+
+        /* And if we're a string, update strstart */
+        /* Somewhat of a hack, but if we get per-pool
+            * collections, it should help ease the pain */
+        if (PObj_is_string_TEST(old_buf))
+            ((STRING *)old_buf)->strstart =
+                (char *)Buffer_bufstart(old_buf) + offset;
+    }
+    else {
+        new_pool_ptr = aligned_mem(old_buf, new_pool_ptr);
 
-        /* buffer has already been moved; just change the header */
-        if (PObj_COW_TEST(old_buf)
-        && (ref_count && *ref_count & Buffer_moved_FLAG)) {
-            /* Find out who else references our data */
-            Buffer * const hdr = *((Buffer **)Buffer_bufstart(old_buf));
+        /* Copy our memory to the new pool */
+        memcpy(new_pool_ptr, Buffer_bufstart(old_buf),
+                                Buffer_buflen(old_buf));
 
+        /* If we're shared */
+        if (flags && (*flags & Buffer_shared_FLAG)) {
             PARROT_ASSERT(PObj_is_COWable_TEST(old_buf));
 
-            /* Make sure they know that we own it too */
-            PObj_COW_SET(hdr);
+            /* Let the old buffer know how to find us */
+            *((Buffer **)Buffer_bufstart(old_buf)) = old_buf;
 
-            /* TODO incr ref_count, after fixing string too
-             * Now make sure we point to where the other guy does */
-            Buffer_bufstart(old_buf) = Buffer_bufstart(hdr);
-
-            /* And if we're a string, update strstart */
-            /* Somewhat of a hack, but if we get per-pool
-             * collections, it should help ease the pain */
-            if (PObj_is_string_TEST(old_buf))
-                ((STRING *)old_buf)->strstart =
-                    (char *)Buffer_bufstart(old_buf) + offset;
+            /* Finally, let the tail know that we've moved, so
+                * that any other references can know to look for
+                * us and not re-copy */
+            *flags |= Buffer_moved_FLAG;
         }
-        else {
-            new_pool_ptr = aligned_mem(old_buf, new_pool_ptr);
-
-            if (PObj_is_COWable_TEST(old_buf)) {
-                INTVAL * const new_ref_count = ((INTVAL*) new_pool_ptr) - 1;
-                *new_ref_count        = 2;
-            }
 
-            /* Copy our memory to the new pool */
-            memcpy(new_pool_ptr, Buffer_bufstart(old_buf),
-                                 Buffer_buflen(old_buf));
-
-            /* If we're COW */
-            if (PObj_COW_TEST(old_buf)) {
-                PARROT_ASSERT(PObj_is_COWable_TEST(old_buf));
-
-                /* Let the old buffer know how to find us */
-                *((Buffer **)Buffer_bufstart(old_buf)) = old_buf;
-
-                /* No guarantees that our data is still COW, so
-                 * assume not, and let the above code fix-up */
-                PObj_COW_CLEAR(old_buf);
-
-                /* Finally, let the tail know that we've moved, so
-                 * that any other references can know to look for
-                 * us and not re-copy */
-                if (ref_count)
-                    *ref_count |= Buffer_moved_FLAG;
-            }
+        Buffer_bufstart(old_buf) = new_pool_ptr;
 
-            Buffer_bufstart(old_buf) = new_pool_ptr;
+        /* Remember new pool inside */
+        *Buffer_poolptr(old_buf) = pool;
 
-            if (PObj_is_string_TEST(old_buf))
-                ((STRING *)old_buf)->strstart =
-                     (char *)Buffer_bufstart(old_buf) + offset;
+        if (PObj_is_string_TEST(old_buf))
+            ((STRING *)old_buf)->strstart =
+                    (char *)Buffer_bufstart(old_buf) + offset;
 
-            new_pool_ptr += Buffer_buflen(old_buf);
-        }
+        new_pool_ptr += Buffer_buflen(old_buf);
     }
 
     return new_pool_ptr;
@@ -692,24 +703,37 @@
         UINTVAL total_size)
 {
     ASSERT_ARGS(free_old_mem_blocks)
-    Memory_Block *cur_block = new_block->prev;
+    Memory_Block *prev_block = new_block;
+    Memory_Block *cur_block  = new_block->prev;
+    size_t i;
 
     PARROT_ASSERT(new_block == pool->top_block);
 
     while (cur_block) {
         Memory_Block * const next_block = cur_block->prev;
 
-        /* Note that we don't have it any more */
-        mem_pools->memory_allocated -= cur_block->size;
+        if (is_block_almost_full(cur_block)) {
+            /* Skip block */
+            prev_block = cur_block;
+            cur_block  = next_block;
+        }
+        else {
+            /* Note that we don't have it any more */
+            mem_pools->memory_allocated -= cur_block->size;
 
-        /* We know the pool body and pool header are a single chunk, so
-         * this is enough to get rid of 'em both */
-        mem_internal_free(cur_block);
-        cur_block = next_block;
+            /* We know the pool body and pool header are a single chunk, so
+             * this is enough to get rid of 'em both */
+            mem_internal_free(cur_block);
+            cur_block        = next_block;
+
+            /* Unlink it from list */
+            prev_block->prev = next_block;
+        }
     }
 
-    /* Set our new pool as the only pool */
-    new_block->prev       = NULL;
+    /* Terminate list */
+    prev_block->prev = NULL;
+
 
     /* ANR: I suspect this should be set to new_block->size, instead of passing
      * in the raw value of total_size, because alloc_new_block pads the size of
@@ -722,49 +746,45 @@
 
 /*
 
-=item C<char * aligned_mem(const Buffer *buffer, char *mem)>
+=item C<static int is_block_almost_full(const Memory_Block *block)>
 
-Returns a pointer to the aligned allocated storage for Buffer C<buffer>,
-which might not be the same as the pointer to C<buffer> because of
-memory alignment.
+Tests if the block is almost full and should be skipped during compacting.
+
+Returns true if less that 20% of block is available
 
 =cut
 
 */
 
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-char *
-aligned_mem(SHIM(const Buffer *buffer), ARGIN(char *mem))
+static int
+is_block_almost_full(ARGIN(const Memory_Block *block))
 {
-    ASSERT_ARGS(aligned_mem)
-    mem += sizeof (void *);
-    mem  = (char *)(((unsigned long)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
-
-    return mem;
+    ASSERT_ARGS(is_block_almost_full)
+    return (block->free + block->freed) < block->size * 0.2;
 }
 
 /*
 
-=item C<size_t aligned_string_size(size_t len)>
+=item C<char * aligned_mem(const Buffer *buffer, char *mem)>
 
-Determines the size of a string of length C<len> in RAM, accounting for
-alignment.
+Returns a pointer to the aligned allocated storage for Buffer C<buffer>,
+which might not be the same as the pointer to C<buffer> because of
+memory alignment.
 
 =cut
 
 */
 
-PARROT_CONST_FUNCTION
+PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-size_t
-aligned_string_size(size_t len)
+char *
+aligned_mem(SHIM(const Buffer *buffer), ARGIN(char *mem))
 {
-    ASSERT_ARGS(aligned_string_size)
+    ASSERT_ARGS(aligned_mem)
+    mem += sizeof (void *);
+    mem  = (char *)(((unsigned long)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
 
-    len += sizeof (void *);
-    len  = (len + WORD_ALIGN_1) & WORD_ALIGN_MASK;
-    return len;
+    return mem;
 }
 
 /*

Modified: branches/include_dynpmc_makefile/src/gc/api.c
==============================================================================
--- branches/include_dynpmc_makefile/src/gc/api.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/gc/api.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -342,6 +342,7 @@
     PObj_get_FLAGS(pmc) = PObj_is_PMC_FLAG|flags;
     pmc->vtable         = NULL;
     PMC_data(pmc)       = NULL;
+    PMC_metadata(pmc)   = PMCNULL;
 
     return pmc;
 }

Modified: branches/include_dynpmc_makefile/src/gc/gc_ms.c
==============================================================================
--- branches/include_dynpmc_makefile/src/gc/gc_ms.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/gc/gc_ms.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -70,6 +70,12 @@
 PARROT_CANNOT_RETURN_NULL
 static void * gc_ms_allocate_memory_chunk_zeroed(SHIM_INTERP, size_t size);
 
+PARROT_CANNOT_RETURN_NULL
+static void * gc_ms_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*pmc);
+
 PARROT_CAN_RETURN_NULL
 static PMC* gc_ms_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
         __attribute__nonnull__(1);
@@ -215,6 +221,35 @@
 static void gc_ms_unblock_GC_sweep(PARROT_INTERP)
         __attribute__nonnull__(1);
 
+static void Parrot_gc_allocate_new_attributes_arena(
+    ARGMOD(PMC_Attribute_Pool *pool))
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*pool);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_MALLOC
+static PMC_Attribute_Pool * Parrot_gc_create_attrib_pool(size_t attrib_idx);
+
+PARROT_CANNOT_RETURN_NULL
+static PMC_Attribute_Pool * Parrot_gc_get_attribute_pool(SHIM_INTERP,
+    ARGMOD(Memory_Pools *mem_pools),
+    size_t attrib_size)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*mem_pools);
+
+PARROT_CANNOT_RETURN_NULL
+static void * Parrot_gc_get_attributes_from_pool(PARROT_INTERP,
+    ARGMOD(PMC_Attribute_Pool * pool))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(* pool);
+
+static void Parrot_gc_initialize_fixed_size_pools(SHIM_INTERP,
+    ARGMOD(Memory_Pools *mem_pools),
+    size_t init_num_pools)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*mem_pools);
+
 #define ASSERT_ARGS_gc_ms_active_sized_buffers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(mem_pools))
 #define ASSERT_ARGS_gc_ms_add_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -233,6 +268,9 @@
 #define ASSERT_ARGS_gc_ms_allocate_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_gc_ms_allocate_memory_chunk_zeroed \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_gc_ms_allocate_pmc_attributes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(pmc))
 #define ASSERT_ARGS_gc_ms_allocate_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_gc_ms_allocate_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -308,6 +346,19 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_gc_ms_unblock_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_gc_allocate_new_attributes_arena \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_Parrot_gc_create_attrib_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_gc_get_attribute_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(mem_pools))
+#define ASSERT_ARGS_Parrot_gc_get_attributes_from_pool \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_Parrot_gc_initialize_fixed_size_pools \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(mem_pools))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -480,9 +531,6 @@
     pt_gc_start_mark(interp);
     Parrot_gc_run_init(interp, interp->mem_pools);
 
-    /* compact STRING pools to collect free headers and allocated buffers */
-    Parrot_gc_compact_memory_pool(interp);
-
     /* Now go trace the PMCs. returning true means we did a complete trace.
        false means it was a lazy trace. */
     if (gc_ms_trace_active_PMCs(interp, (flags & GC_trace_stack_FLAG)
@@ -503,6 +551,9 @@
         Parrot_gc_clear_live_bits(interp, mem_pools->pmc_pool);
     }
 
+    /* compact STRING pools to collect free headers and allocated buffers */
+    Parrot_gc_compact_memory_pool(interp);
+
     pt_gc_stop_mark(interp);
 
     /* Note it */
@@ -615,7 +666,7 @@
             ? interp->mem_pools->constant_pmc_pool
             : interp->mem_pools->pmc_pool;
 
-    return (PMC*)pool->get_free_object(interp, interp->mem_pools, pool);
+    return (PMC *)pool->get_free_object(interp, interp->mem_pools, pool);
 }
 
 /*
@@ -661,7 +712,9 @@
             ? interp->mem_pools->constant_string_header_pool
             : interp->mem_pools->string_header_pool;
 
-    return (STRING *)pool->get_free_object(interp, interp->mem_pools, pool);
+    STRING *s = (STRING *)pool->get_free_object(interp, interp->mem_pools, pool);
+    memset(s, 0, sizeof (STRING));
+    return s;
 }
 
 
@@ -735,7 +788,190 @@
 
 /*
 
-=item C<void * gc_ms_allocate_pmc_attributes(PARROT_INTERP, PMC *pmc)>
+=over 4
+
+=item C<static void * Parrot_gc_get_attributes_from_pool(PARROT_INTERP,
+PMC_Attribute_Pool * pool)>
+
+Get a new fixed-size storage space from the given pool. The pool contains
+information on the size of the item to allocate already.
+
+=item C<static void Parrot_gc_allocate_new_attributes_arena(PMC_Attribute_Pool
+*pool)>
+
+Allocate a new arena of fixed-sized data structures for the given pool.
+
+=item C<static void Parrot_gc_initialize_fixed_size_pools(PARROT_INTERP,
+Memory_Pools *mem_pools, size_t init_num_pools)>
+
+Initialize the pools (zeroize)
+
+=item C<static PMC_Attribute_Pool * Parrot_gc_get_attribute_pool(PARROT_INTERP,
+Memory_Pools *mem_pools, size_t attrib_size)>
+
+Find a fixed-sized data structure pool given the size of the object to
+allocate. If the pool does not exist, create it.
+
+=item C<static PMC_Attribute_Pool * Parrot_gc_create_attrib_pool(size_t
+attrib_idx)>
+
+Create a new pool for fixed-sized data items with the given C<attrib_size>.
+
+=back
+
+=cut
+
+*/
+
+PARROT_CANNOT_RETURN_NULL
+static void *
+Parrot_gc_get_attributes_from_pool(PARROT_INTERP, ARGMOD(PMC_Attribute_Pool * pool))
+{
+    ASSERT_ARGS(Parrot_gc_get_attributes_from_pool)
+    PMC_Attribute_Free_List *item;
+
+#if GC_USE_LAZY_ALLOCATOR
+    if (pool->free_list) {
+        item            = pool->free_list;
+        pool->free_list = item->next;
+    }
+    else if (pool->newfree) {
+        item          = pool->newfree;
+        pool->newfree = (PMC_Attribute_Free_List *)
+                        ((char *)(pool->newfree) + pool->attr_size);
+        if (pool->newfree >= pool->newlast)
+            pool->newfree = NULL;
+    }
+    else {
+        Parrot_gc_allocate_new_attributes_arena(pool);
+        return Parrot_gc_get_attributes_from_pool(interp, pool);
+    }
+#else
+    if (pool->free_list == NULL)
+        Parrot_gc_allocate_new_attributes_arena(pool);
+    item            = pool->free_list;
+    pool->free_list = item->next;
+#endif
+
+    pool->num_free_objects--;
+    return (void *)item;
+}
+
+
+static void
+Parrot_gc_allocate_new_attributes_arena(ARGMOD(PMC_Attribute_Pool *pool))
+{
+    ASSERT_ARGS(Parrot_gc_allocate_new_attributes_arena)
+    PMC_Attribute_Free_List *next;
+
+    const size_t num_items  = pool->objects_per_alloc;
+    const size_t item_size  = pool->attr_size;
+    const size_t item_space = item_size * num_items;
+    const size_t total_size = sizeof (PMC_Attribute_Arena) + item_space;
+
+    PMC_Attribute_Arena * const new_arena = (PMC_Attribute_Arena *)mem_internal_allocate(
+        total_size);
+
+    new_arena->prev = NULL;
+    new_arena->next = pool->top_arena;
+    pool->top_arena = new_arena;
+    next            = (PMC_Attribute_Free_List *)(new_arena + 1);
+
+#if GC_USE_LAZY_ALLOCATOR
+    pool->newfree   = next;
+    pool->newlast   = (PMC_Attribute_Free_List *)((char *)next + item_space);
+#else
+    pool->free_list = next;
+    for (i = 0; i < num_items; i++) {
+        list        = next;
+        list->next  = (PMC_Attribute_Free_List *)((char *)list + item_size);
+        next        = list->next;
+    }
+    list->next      = pool->free_list;
+#endif
+
+    pool->num_free_objects += num_items;
+    pool->total_objects    += num_items;
+}
+
+static void
+Parrot_gc_initialize_fixed_size_pools(SHIM_INTERP,
+        ARGMOD(Memory_Pools *mem_pools),
+        size_t init_num_pools)
+{
+    ASSERT_ARGS(Parrot_gc_initialize_fixed_size_pools)
+    PMC_Attribute_Pool **pools;
+    const size_t total_size = (init_num_pools + 1) * sizeof (void *);
+
+    pools = (PMC_Attribute_Pool **)mem_internal_allocate(total_size);
+    memset(pools, 0, total_size);
+
+    mem_pools->attrib_pools = pools;
+    mem_pools->num_attribs = init_num_pools;
+}
+
+
+PARROT_CANNOT_RETURN_NULL
+static PMC_Attribute_Pool *
+Parrot_gc_get_attribute_pool(SHIM_INTERP,
+        ARGMOD(Memory_Pools *mem_pools),
+        size_t attrib_size)
+{
+    ASSERT_ARGS(Parrot_gc_get_attribute_pool)
+
+    PMC_Attribute_Pool **pools = mem_pools->attrib_pools;
+    const size_t         idx   = (attrib_size < sizeof (void *))
+                               ? 0
+                               : attrib_size - sizeof (void *);
+
+    if (mem_pools->num_attribs <= idx) {
+        const size_t total_length = idx + GC_ATTRIB_POOLS_HEADROOM;
+        const size_t total_size   = total_length * sizeof (void *);
+        const size_t current_size = mem_pools->num_attribs;
+        const size_t diff         = total_length - current_size;
+
+        pools = (PMC_Attribute_Pool **)mem_internal_realloc(pools, total_size);
+        memset(pools + current_size, 0, diff * sizeof (void *));
+        mem_pools->attrib_pools = pools;
+        mem_pools->num_attribs = total_length;
+    }
+
+    if (!pools[idx]) {
+        PMC_Attribute_Pool * const pool = Parrot_gc_create_attrib_pool(idx);
+        /* Create the first arena now, so we don't have to check for it later */
+        Parrot_gc_allocate_new_attributes_arena(pool);
+        pools[idx] = pool;
+    }
+
+    return pools[idx];
+}
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_MALLOC
+static PMC_Attribute_Pool *
+Parrot_gc_create_attrib_pool(size_t attrib_idx)
+{
+    ASSERT_ARGS(Parrot_gc_create_attrib_pool)
+    const size_t attrib_size = attrib_idx + sizeof (void *);
+    const size_t num_objs_raw =
+        (GC_FIXED_SIZE_POOL_SIZE - sizeof (PMC_Attribute_Arena)) / attrib_size;
+    const size_t num_objs = (num_objs_raw == 0)?(1):(num_objs_raw);
+    PMC_Attribute_Pool * const newpool = mem_internal_allocate_typed(PMC_Attribute_Pool);
+
+    newpool->attr_size         = attrib_size;
+    newpool->total_objects     = 0;
+    newpool->objects_per_alloc = num_objs;
+    newpool->num_free_objects  = 0;
+    newpool->free_list         = NULL;
+    newpool->top_arena         = NULL;
+
+    return newpool;
+}
+
+
+/*
+
+=item C<static void * gc_ms_allocate_pmc_attributes(PARROT_INTERP, PMC *pmc)>
 
 Allocates a new attribute structure for a PMC if it has the auto_attrs flag
 set.
@@ -745,7 +981,7 @@
 */
 
 PARROT_CANNOT_RETURN_NULL
-void *
+static void *
 gc_ms_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
 {
     ASSERT_ARGS(gc_ms_allocate_pmc_attributes)
@@ -834,12 +1070,15 @@
     ARGOUT(Buffer *buffer), size_t size)
 {
     ASSERT_ARGS(gc_ms_allocate_buffer_storage)
-    const size_t new_size   = aligned_string_size(size);
+    const size_t new_size   = ALIGNED_STRING_SIZE(size);
 
     Buffer_bufstart(buffer) = (void *)aligned_mem(buffer,
         (char *)mem_allocate(interp,
         interp->mem_pools, new_size, interp->mem_pools->memory_pool));
 
+    /* Save pool used to allocate into buffer header */
+    *Buffer_poolptr(buffer) = interp->mem_pools->memory_pool->top_block;
+
     Buffer_buflen(buffer)   = new_size - sizeof (void *);
 }
 
@@ -880,8 +1119,8 @@
      * normally, which play ping pong with buffers.
      * The normal case is therefore always to allocate a new block
      */
-    new_size = aligned_string_size(newsize);
-    old_size = aligned_string_size(Buffer_buflen(buffer));
+    new_size = ALIGNED_STRING_SIZE(newsize);
+    old_size = ALIGNED_STRING_SIZE(Buffer_buflen(buffer));
     needed   = new_size - old_size;
 
     if ((pool->top_block->free >= needed)
@@ -894,11 +1133,6 @@
 
     copysize = Buffer_buflen(buffer);
 
-    if (!PObj_COW_TEST(buffer))
-        pool->guaranteed_reclaimable += copysize;
-    else
-        pool->possibly_reclaimable   += copysize;
-
     mem = (char *)mem_allocate(interp, interp->mem_pools, new_size, pool);
     mem = aligned_mem(buffer, mem);
 
@@ -912,6 +1146,9 @@
     new_size -= sizeof (void *);
 
     Buffer_buflen(buffer) = new_size;
+
+    /* Save pool used to allocate into buffer header */
+    *Buffer_poolptr(buffer) = interp->mem_pools->memory_pool->top_block;
 }
 
 /*
@@ -947,12 +1184,15 @@
                 ? interp->mem_pools->constant_string_pool
                 : interp->mem_pools->memory_pool;
 
-    new_size = aligned_string_size(size);
+    new_size = ALIGNED_STRING_SIZE(size);
     mem      = (char *)mem_allocate(interp, interp->mem_pools, new_size, pool);
     mem     += sizeof (void *);
 
     Buffer_bufstart(str) = str->strstart = mem;
     Buffer_buflen(str)   = new_size - sizeof (void *);
+
+    /* Save pool used to allocate into buffer header */
+    *Buffer_poolptr(str) = pool->top_block;
 }
 
 /*
@@ -991,8 +1231,8 @@
      * - if the passed strings buffer is the last string in the pool and
      * - if there is enough size, we can just move the pool's top pointer
      */
-    new_size = aligned_string_size(newsize);
-    old_size = aligned_string_size(Buffer_buflen(str));
+    new_size = ALIGNED_STRING_SIZE(newsize);
+    old_size = ALIGNED_STRING_SIZE(Buffer_buflen(str));
     needed   = new_size - old_size;
 
     if (pool->top_block->free >= needed
@@ -1008,11 +1248,6 @@
     /* only copy used memory, not total string buffer */
     copysize = str->bufused;
 
-    if (!PObj_COW_TEST(str))
-        pool->guaranteed_reclaimable += Buffer_buflen(str);
-    else
-        pool->possibly_reclaimable   += Buffer_buflen(str);
-
     mem = (char *)mem_allocate(interp, interp->mem_pools, new_size, pool);
     mem += sizeof (void *);
 
@@ -1026,6 +1261,9 @@
      * those bugs, this can be removed which would make things cheaper */
     if (copysize)
         memcpy(mem, oldmem, copysize);
+
+    /* Save pool used to allocate into buffer header */
+    *Buffer_poolptr(str) = pool->top_block;
 }
 
 /*
@@ -1380,9 +1618,6 @@
     pool->free_list = ((GC_MS_PObj_Wrapper*)ptr)->next_ptr;
 #endif
 
-    /* PObj_flags_SETTO(ptr, 0); */
-    memset(ptr, 0, pool->object_size);
-
     --pool->num_free_objects;
 
     return ptr;

Modified: branches/include_dynpmc_makefile/src/gc/gc_private.h
==============================================================================
--- branches/include_dynpmc_makefile/src/gc/gc_private.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/gc/gc_private.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -171,6 +171,9 @@
     struct Memory_Block *next;
     char *start;
     char *top;
+
+    /* Amount of freed memory. Used in compact_pool */
+    size_t freed;
 } Memory_Block;
 
 typedef struct Variable_Size_Pool {
@@ -393,26 +396,6 @@
     ARGIN(const Fixed_Size_Pool *pool))
         __attribute__nonnull__(2);
 
-PARROT_CANNOT_RETURN_NULL
-PMC_Attribute_Pool * Parrot_gc_get_attribute_pool(SHIM_INTERP,
-    ARGMOD(Memory_Pools *mem_pools),
-    size_t attrib_size)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*mem_pools);
-
-PARROT_CANNOT_RETURN_NULL
-void * Parrot_gc_get_attributes_from_pool(PARROT_INTERP,
-    ARGMOD(PMC_Attribute_Pool * pool))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(* pool);
-
-void Parrot_gc_initialize_fixed_size_pools(SHIM_INTERP,
-    ARGMOD(Memory_Pools *mem_pools),
-    size_t init_num_pools)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*mem_pools);
-
 void Parrot_gc_run_init(SHIM_INTERP, ARGMOD(Memory_Pools *mem_pools))
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*mem_pools);
@@ -459,15 +442,6 @@
     , PARROT_ASSERT_ARG(new_arena))
 #define ASSERT_ARGS_Parrot_gc_clear_live_bits __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(pool))
-#define ASSERT_ARGS_Parrot_gc_get_attribute_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(mem_pools))
-#define ASSERT_ARGS_Parrot_gc_get_attributes_from_pool \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(pool))
-#define ASSERT_ARGS_Parrot_gc_initialize_fixed_size_pools \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(mem_pools))
 #define ASSERT_ARGS_Parrot_gc_run_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(mem_pools))
 #define ASSERT_ARGS_Parrot_gc_sweep_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -489,10 +463,6 @@
 char * aligned_mem(SHIM(const Buffer *buffer), ARGIN(char *mem))
         __attribute__nonnull__(2);
 
-PARROT_CONST_FUNCTION
-PARROT_WARN_UNUSED_RESULT
-size_t aligned_string_size(size_t len);
-
 void check_buffer_ptr(
     ARGMOD(Buffer * pobj),
     ARGMOD(Variable_Size_Pool * pool))
@@ -557,7 +527,6 @@
 
 #define ASSERT_ARGS_aligned_mem __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(mem))
-#define ASSERT_ARGS_aligned_string_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_check_buffer_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(pobj) \
     , PARROT_ASSERT_ARG(pool))
@@ -596,12 +565,6 @@
 void * gc_ms_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
         __attribute__nonnull__(1);
 
-PARROT_CANNOT_RETURN_NULL
-void * gc_ms_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*pmc);
-
 void gc_ms_allocate_string_storage(PARROT_INTERP,
     ARGOUT(STRING *str),
     size_t size)
@@ -635,9 +598,6 @@
 #define ASSERT_ARGS_gc_ms_allocate_fixed_size_storage \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_gc_ms_allocate_pmc_attributes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(pmc))
 #define ASSERT_ARGS_gc_ms_allocate_string_storage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(str))

Modified: branches/include_dynpmc_makefile/src/gc/mark_sweep.c
==============================================================================
--- branches/include_dynpmc_makefile/src/gc/mark_sweep.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/gc/mark_sweep.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -77,15 +77,6 @@
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*mem_pools);
 
-static void Parrot_gc_allocate_new_attributes_arena(
-    ARGMOD(PMC_Attribute_Pool *pool))
-        __attribute__nonnull__(1)
-        FUNC_MODIFIES(*pool);
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_MALLOC
-static PMC_Attribute_Pool * Parrot_gc_create_attrib_pool(size_t attrib_idx);
-
 #define ASSERT_ARGS_free_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(pool) \
     , PARROT_ASSERT_ARG(b))
@@ -102,10 +93,6 @@
 #define ASSERT_ARGS_new_string_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(mem_pools))
-#define ASSERT_ARGS_Parrot_gc_allocate_new_attributes_arena \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(pool))
-#define ASSERT_ARGS_Parrot_gc_create_attrib_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -704,13 +691,28 @@
     ASSERT_ARGS(free_buffer)
     Variable_Size_Pool * const mem_pool = (Variable_Size_Pool *)pool->mem_pool;
 
+    /* If there is no allocated buffer - bail out */
+    if (!Buffer_buflen(b))
+        return;
+
     /* XXX Jarkko reported that on irix pool->mem_pool was NULL, which really
      * shouldn't happen */
     if (mem_pool) {
-        if (!PObj_COW_TEST(b))
-            mem_pool->guaranteed_reclaimable += Buffer_buflen(b);
-        else
-            mem_pool->possibly_reclaimable   += Buffer_buflen(b);
+        /* Update Memory_Block usage */
+        if (PObj_is_movable_TESTALL(b)) {
+            INTVAL *buffer_flags = Buffer_bufrefcountptr(b);
+
+            /* Mask low 2 bits used for flags */
+            Memory_Block * block = Buffer_pool(b);
+
+            PARROT_ASSERT(block);
+
+            /* We can have shared buffers. Don't count them (yet) */
+            if (!(*buffer_flags & Buffer_shared_FLAG)) {
+                block->freed  += ALIGNED_STRING_SIZE(Buffer_buflen(b));
+            }
+
+        }
     }
 
     Buffer_buflen(b) = 0;
@@ -899,188 +901,6 @@
     return 0;
 }
 
-/*
-
-=over 4
-
-=item C<void * Parrot_gc_get_attributes_from_pool(PARROT_INTERP,
-PMC_Attribute_Pool * pool)>
-
-Get a new fixed-size storage space from the given pool. The pool contains
-information on the size of the item to allocate already.
-
-=item C<static void Parrot_gc_allocate_new_attributes_arena(PMC_Attribute_Pool
-*pool)>
-
-Allocate a new arena of fixed-sized data structures for the given pool.
-
-=item C<void Parrot_gc_initialize_fixed_size_pools(PARROT_INTERP, Memory_Pools
-*mem_pools, size_t init_num_pools)>
-
-Initialize the pools (zeroize)
-
-=item C<PMC_Attribute_Pool * Parrot_gc_get_attribute_pool(PARROT_INTERP,
-Memory_Pools *mem_pools, size_t attrib_size)>
-
-Find a fixed-sized data structure pool given the size of the object to
-allocate. If the pool does not exist, create it.
-
-=item C<static PMC_Attribute_Pool * Parrot_gc_create_attrib_pool(size_t
-attrib_idx)>
-
-Create a new pool for fixed-sized data items with the given C<attrib_size>.
-
-=back
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-void *
-Parrot_gc_get_attributes_from_pool(PARROT_INTERP, ARGMOD(PMC_Attribute_Pool * pool))
-{
-    ASSERT_ARGS(Parrot_gc_get_attributes_from_pool)
-    PMC_Attribute_Free_List *item;
-
-#if GC_USE_LAZY_ALLOCATOR
-    if (pool->free_list) {
-        item            = pool->free_list;
-        pool->free_list = item->next;
-    }
-    else if (pool->newfree) {
-        item          = pool->newfree;
-        pool->newfree = (PMC_Attribute_Free_List *)
-                        ((char *)(pool->newfree) + pool->attr_size);
-        if (pool->newfree >= pool->newlast)
-            pool->newfree = NULL;
-    }
-    else {
-        Parrot_gc_allocate_new_attributes_arena(pool);
-        return Parrot_gc_get_attributes_from_pool(interp, pool);
-    }
-#else
-    if (pool->free_list == NULL)
-        Parrot_gc_allocate_new_attributes_arena(pool);
-    item            = pool->free_list;
-    pool->free_list = item->next;
-#endif
-
-    pool->num_free_objects--;
-    return (void *)item;
-}
-
-
-static void
-Parrot_gc_allocate_new_attributes_arena(ARGMOD(PMC_Attribute_Pool *pool))
-{
-    ASSERT_ARGS(Parrot_gc_allocate_new_attributes_arena)
-    PMC_Attribute_Free_List *next;
-
-    const size_t num_items  = pool->objects_per_alloc;
-    const size_t item_size  = pool->attr_size;
-    const size_t item_space = item_size * num_items;
-    const size_t total_size = sizeof (PMC_Attribute_Arena) + item_space;
-
-    PMC_Attribute_Arena * const new_arena = (PMC_Attribute_Arena *)mem_internal_allocate(
-        total_size);
-
-    new_arena->prev = NULL;
-    new_arena->next = pool->top_arena;
-    pool->top_arena = new_arena;
-    next            = (PMC_Attribute_Free_List *)(new_arena + 1);
-
-#if GC_USE_LAZY_ALLOCATOR
-    pool->newfree   = next;
-    pool->newlast   = (PMC_Attribute_Free_List *)((char *)next + item_space);
-#else
-    pool->free_list = next;
-    for (i = 0; i < num_items; i++) {
-        list        = next;
-        list->next  = (PMC_Attribute_Free_List *)((char *)list + item_size);
-        next        = list->next;
-    }
-    list->next      = pool->free_list;
-#endif
-
-    pool->num_free_objects += num_items;
-    pool->total_objects    += num_items;
-}
-
-void
-Parrot_gc_initialize_fixed_size_pools(SHIM_INTERP,
-        ARGMOD(Memory_Pools *mem_pools),
-        size_t init_num_pools)
-{
-    ASSERT_ARGS(Parrot_gc_initialize_fixed_size_pools)
-    PMC_Attribute_Pool **pools;
-    const size_t total_size = (init_num_pools + 1) * sizeof (void *);
-
-    pools = (PMC_Attribute_Pool **)mem_internal_allocate(total_size);
-    memset(pools, 0, total_size);
-
-    mem_pools->attrib_pools = pools;
-    mem_pools->num_attribs = init_num_pools;
-}
-
-
-PARROT_CANNOT_RETURN_NULL
-PMC_Attribute_Pool *
-Parrot_gc_get_attribute_pool(SHIM_INTERP,
-        ARGMOD(Memory_Pools *mem_pools),
-        size_t attrib_size)
-{
-    ASSERT_ARGS(Parrot_gc_get_attribute_pool)
-
-    PMC_Attribute_Pool **pools = mem_pools->attrib_pools;
-    const size_t         idx   = (attrib_size < sizeof (void *))
-                               ? 0
-                               : attrib_size - sizeof (void *);
-
-    if (mem_pools->num_attribs <= idx) {
-        const size_t total_length = idx + GC_ATTRIB_POOLS_HEADROOM;
-        const size_t total_size   = total_length * sizeof (void *);
-        const size_t current_size = mem_pools->num_attribs;
-        const size_t diff         = total_length - current_size;
-
-        pools = (PMC_Attribute_Pool **)mem_internal_realloc(pools, total_size);
-        memset(pools + current_size, 0, diff * sizeof (void *));
-        mem_pools->attrib_pools = pools;
-        mem_pools->num_attribs = total_length;
-    }
-
-    if (!pools[idx]) {
-        PMC_Attribute_Pool * const pool = Parrot_gc_create_attrib_pool(idx);
-        /* Create the first arena now, so we don't have to check for it later */
-        Parrot_gc_allocate_new_attributes_arena(pool);
-        pools[idx] = pool;
-    }
-
-    return pools[idx];
-}
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_MALLOC
-static PMC_Attribute_Pool *
-Parrot_gc_create_attrib_pool(size_t attrib_idx)
-{
-    ASSERT_ARGS(Parrot_gc_create_attrib_pool)
-    const size_t attrib_size = attrib_idx + sizeof (void *);
-    const size_t num_objs_raw =
-        (GC_FIXED_SIZE_POOL_SIZE - sizeof (PMC_Attribute_Arena)) / attrib_size;
-    const size_t num_objs = (num_objs_raw == 0)?(1):(num_objs_raw);
-    PMC_Attribute_Pool * const newpool = mem_internal_allocate_typed(PMC_Attribute_Pool);
-
-    newpool->attr_size         = attrib_size;
-    newpool->total_objects     = 0;
-    newpool->objects_per_alloc = num_objs;
-    newpool->num_free_objects  = 0;
-    newpool->free_list         = NULL;
-    newpool->top_arena         = NULL;
-
-    return newpool;
-}
-
 
 /*
 

Modified: branches/include_dynpmc_makefile/src/interp/inter_misc.c
==============================================================================
--- branches/include_dynpmc_makefile/src/interp/inter_misc.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/interp/inter_misc.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -237,12 +237,6 @@
             else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "fast")))
                 return PARROT_FAST_CORE;
             else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "switch")))
-                return PARROT_SWITCH_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "cgp")))
-                return PARROT_CGP_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "cgoto")))
-                return PARROT_CGOTO_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "exec")))
                 return PARROT_EXEC_CORE;
             else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "gc_debug")))
                 return PARROT_GC_DEBUG_CORE;

Modified: branches/include_dynpmc_makefile/src/io/api.c
==============================================================================
--- branches/include_dynpmc_makefile/src/io/api.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/io/api.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -28,6 +28,7 @@
 */
 
 #include "parrot/parrot.h"
+#include "parrot/extend.h"
 #include "io_private.h"
 #include "api.str"
 #include "pmc/pmc_filehandle.h"
@@ -122,25 +123,24 @@
     ASSERT_ARGS(Parrot_io_open)
     PMC *new_filehandle, *filehandle;
     INTVAL flags;
+    const INTVAL typenum = Parrot_get_ctx_HLL_type(interp,
+                                                   Parrot_PMC_typenum(interp, "FileHandle"));
     if (PMC_IS_NULL(pmc)) {
-        /* TODO: We should look up the HLL mapped type, instead of always
-           using FileHandle here */
-        new_filehandle = Parrot_pmc_new(interp, enum_class_FileHandle);
-        PARROT_ASSERT(new_filehandle->vtable->base_type == enum_class_FileHandle);
+        new_filehandle = Parrot_pmc_new(interp, typenum);
     }
     else
         new_filehandle = pmc;
 
     flags = Parrot_io_parse_open_flags(interp, mode);
-    if (new_filehandle->vtable->base_type == enum_class_FileHandle) {
+    if (new_filehandle->vtable->base_type == typenum) {
         /* TODO: StringHandle may have a null path, but a filehandle really
            shouldn't allow that. */
-        PARROT_ASSERT(new_filehandle->vtable->base_type == enum_class_FileHandle);
+        PARROT_ASSERT(new_filehandle->vtable->base_type == typenum);
         filehandle = PIO_OPEN(interp, new_filehandle, path, flags);
         if (PMC_IS_NULL(filehandle))
             Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_PIO_ERROR,
                 "Unable to open filehandle from path '%S'", path);
-        PARROT_ASSERT(filehandle->vtable->base_type == enum_class_FileHandle);
+        PARROT_ASSERT(filehandle->vtable->base_type == typenum);
         SETATTR_FileHandle_flags(interp, new_filehandle, flags);
         SETATTR_FileHandle_filename(interp, new_filehandle, path);
         SETATTR_FileHandle_mode(interp, new_filehandle, mode);
@@ -460,14 +460,13 @@
 Parrot_io_write(PARROT_INTERP, ARGMOD(PMC *pmc), ARGIN(const void *buffer), size_t length)
 {
     ASSERT_ARGS(Parrot_io_write)
-    DECL_CONST_CAST;
     INTVAL result;
     STRING *s;
 
     if (PMC_IS_NULL(pmc))
         return -1;
 
-    s = Parrot_str_new(interp, (char *) PARROT_const_cast(void *, buffer), length);
+    s = Parrot_str_new(interp, (const char *)buffer, length);
 
     result = Parrot_io_putps(interp, pmc, s);
     return result;

Modified: branches/include_dynpmc_makefile/src/io/buffer.c
==============================================================================
--- branches/include_dynpmc_makefile/src/io/buffer.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/io/buffer.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -337,11 +337,9 @@
         size_t got;
 
         if (len >= Parrot_io_get_buffer_size(interp, filehandle)) {
-            STRING     fake;
-            STRING    *sf = &fake;
-
-            Buffer_bufstart(sf) = (char *)out_buf;
-            fake.bufused        = len;
+            STRING *sf = Parrot_str_new_init(interp, (char *)out_buf, len,
+                PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
+                PObj_external_FLAG);
             got                 = PIO_READ(interp, filehandle, &sf);
             s->strlen           = s->bufused = current + got;
 
@@ -545,8 +543,8 @@
 
 /*
 
-=item C<size_t Parrot_io_write_buffer(PARROT_INTERP, PMC *filehandle, STRING
-*s)>
+=item C<size_t Parrot_io_write_buffer(PARROT_INTERP, PMC *filehandle, const
+STRING *s)>
 
 The buffer layer's C<Write> function.
 
@@ -555,7 +553,7 @@
 */
 
 size_t
-Parrot_io_write_buffer(PARROT_INTERP, ARGMOD(PMC *filehandle), ARGIN(STRING *s))
+Parrot_io_write_buffer(PARROT_INTERP, ARGMOD(PMC *filehandle), ARGIN(const STRING *s))
 {
     ASSERT_ARGS(Parrot_io_write_buffer)
     unsigned char * const buffer_start = Parrot_io_get_buffer_start(interp, filehandle);

Modified: branches/include_dynpmc_makefile/src/io/portable.c
==============================================================================
--- branches/include_dynpmc_makefile/src/io/portable.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/io/portable.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -349,7 +349,7 @@
 */
 
 INTVAL
-Parrot_io_flush_portable(SHIM_INTERP, SHIM(PMC *filehandle))
+Parrot_io_flush_portable(SHIM_INTERP, ARGIN(PMC *filehandle))
 {
     ASSERT_ARGS(Parrot_io_flush_portable)
     return fflush((FILE *)Parrot_io_get_os_handle(interp, filehandle));
@@ -369,7 +369,7 @@
 */
 
 size_t
-Parrot_io_read_portable(PARROT_INTERP, SHIM(PMC *filehandle),
+Parrot_io_read_portable(PARROT_INTERP, ARGIN(PMC *filehandle),
               ARGIN(STRING **buf))
 {
     ASSERT_ARGS(Parrot_io_read_portable)
@@ -393,8 +393,8 @@
 
 /*
 
-=item C<size_t Parrot_io_write_portable(PARROT_INTERP, PMC *filehandle, STRING
-*s)>
+=item C<size_t Parrot_io_write_portable(PARROT_INTERP, PMC *filehandle, const
+STRING *s)>
 
 Writes the given STRING to the provided IO PMC.
 
@@ -403,10 +403,10 @@
 */
 
 size_t
-Parrot_io_write_portable(PARROT_INTERP, ARGIN(PMC *filehandle), ARGMOD(STRING *s))
+Parrot_io_write_portable(PARROT_INTERP, ARGIN(PMC *filehandle), ARGIN(const STRING *s))
 {
     ASSERT_ARGS(Parrot_io_write_portable)
-    void * const buffer = s->strstart;
+    const void * const buffer = s->strstart;
     return fwrite(buffer, 1, s->bufused,
                   (FILE *)Parrot_io_get_os_handle(interp, filehandle));
 }
@@ -424,15 +424,15 @@
 */
 
 PIOOFF_T
-Parrot_io_seek_portable(PARROT_INTERP, ARGMOD(PMC *filehandle),
-              PIOOFF_T offset, INTVAL whence)
+Parrot_io_seek_portable(PARROT_INTERP, ARGMOD(PMC *filehandle), PIOOFF_T offset, INTVAL whence)
 {
     ASSERT_ARGS(Parrot_io_seek_portable)
-    PIOOFF_T pos;
     errno = 0;
 
-    if ((pos = fseek((FILE *)Parrot_io_get_os_handle(interp, filehandle),
-                    (long)offset, whence)) >= 0)
+    const PIOOFF_T pos = fseek(
+            (FILE *)Parrot_io_get_os_handle(interp, filehandle), (long)offset, whence);
+
+    if (pos >= 0)
         Parrot_io_set_file_position(interp, filehandle, pos);
 
     /* Seek clears EOF */

Modified: branches/include_dynpmc_makefile/src/io/unix.c
==============================================================================
--- branches/include_dynpmc_makefile/src/io/unix.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/io/unix.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -541,7 +541,8 @@
 
 /*
 
-=item C<size_t Parrot_io_write_unix(PARROT_INTERP, PMC *filehandle, STRING *s)>
+=item C<size_t Parrot_io_write_unix(PARROT_INTERP, PMC *filehandle, const STRING
+*s)>
 
 Calls C<write()> to write C<len> bytes from the memory starting at
 C<buffer> to the file descriptor in C<*io>.
@@ -551,7 +552,7 @@
 */
 
 size_t
-Parrot_io_write_unix(PARROT_INTERP, ARGIN(PMC *filehandle), ARGMOD(STRING *s))
+Parrot_io_write_unix(PARROT_INTERP, ARGIN(PMC *filehandle), ARGIN(const STRING *s))
 {
     ASSERT_ARGS(Parrot_io_write_unix)
     const PIOHANDLE file_descriptor = Parrot_io_get_os_handle(interp, filehandle);

Modified: branches/include_dynpmc_makefile/src/io/utf8.c
==============================================================================
--- branches/include_dynpmc_makefile/src/io/utf8.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/io/utf8.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -101,7 +101,8 @@
 
 /*
 
-=item C<size_t Parrot_io_write_utf8(PARROT_INTERP, PMC *filehandle, STRING *s)>
+=item C<size_t Parrot_io_write_utf8(PARROT_INTERP, PMC *filehandle, const STRING
+*s)>
 
 Write a Parrot string to a filehandle in UTF-8 format.
 
@@ -110,8 +111,7 @@
 */
 
 size_t
-Parrot_io_write_utf8(PARROT_INTERP, ARGMOD(PMC *filehandle),
-        ARGMOD(STRING *s))
+Parrot_io_write_utf8(PARROT_INTERP, ARGMOD(PMC *filehandle), ARGIN(const STRING *s))
 {
     ASSERT_ARGS(Parrot_io_write_utf8)
     STRING *dest;
@@ -134,10 +134,6 @@
 F<src/io/io_layers.c>,
 F<src/io/io_private.h>.
 
-=head1 HISTORY
-
-Initially written by Leo.
-
 =cut
 
 */

Modified: branches/include_dynpmc_makefile/src/io/win32.c
==============================================================================
--- branches/include_dynpmc_makefile/src/io/win32.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/io/win32.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -472,7 +472,8 @@
 
 /*
 
-=item C<size_t Parrot_io_write_win32(PARROT_INTERP, PMC *filehandle, STRING *s)>
+=item C<size_t Parrot_io_write_win32(PARROT_INTERP, PMC *filehandle, const
+STRING *s)>
 
 Calls C<WriteFile()> to write C<len> bytes from the memory starting at
 C<buffer> to C<*io>'s file descriptor. Returns C<(size_t)-1> on
@@ -483,9 +484,7 @@
 */
 
 size_t
-Parrot_io_write_win32(PARROT_INTERP,
-        ARGIN(PMC *filehandle),
-        ARGIN(STRING *s))
+Parrot_io_write_win32(PARROT_INTERP, ARGIN(PMC *filehandle), ARGIN(const STRING *s))
 {
     ASSERT_ARGS(Parrot_io_write_win32)
     DWORD countwrote = 0;

Modified: branches/include_dynpmc_makefile/src/main.c
==============================================================================
--- branches/include_dynpmc_makefile/src/main.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/main.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -301,8 +301,8 @@
     "       --hash-seed F00F  specify hex value to use as hash seed\n"
     "    -X --dynext add path to dynamic extension search\n"
     "   <Run core options>\n"
-    "    -R --runcore slow|bounds|fast|cgoto|cgp\n"
-    "    -R --runcore switch|trace|profiling|gcdebug\n"
+    "    -R --runcore slow|bounds|fast\n"
+    "    -R --runcore trace|profiling|gcdebug\n"
     "    -t --trace [flags]\n"
     "   <VM options>\n"
     "    -D --parrot-debug[=HEXFLAGS]\n"
@@ -461,18 +461,8 @@
                 *core = PARROT_SLOW_CORE;
             else if (STREQ(opt.opt_arg, "fast") || STREQ(opt.opt_arg, "function"))
                 *core = PARROT_FAST_CORE;
-            else if (STREQ(opt.opt_arg, "switch"))
-                *core = PARROT_SWITCH_CORE;
-            else if (STREQ(opt.opt_arg, "cgp"))
-                *core = PARROT_CGP_CORE;
-            else if (STREQ(opt.opt_arg, "cgoto"))
-                *core = PARROT_CGOTO_CORE;
             else if (STREQ(opt.opt_arg, "jit"))
                 *core = PARROT_FAST_CORE;
-            else if (STREQ(opt.opt_arg, "cgp-jit"))
-                *core = PARROT_CGP_CORE;
-            else if (STREQ(opt.opt_arg, "switch-jit"))
-                *core = PARROT_SWITCH_CORE;
             else if (STREQ(opt.opt_arg, "exec"))
                 *core = PARROT_EXEC_CORE;
             else if (STREQ(opt.opt_arg, "trace"))

Modified: branches/include_dynpmc_makefile/src/oo.c
==============================================================================
--- branches/include_dynpmc_makefile/src/oo.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/oo.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2007-2009, Parrot Foundation.
+Copyright (C) 2007-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -169,49 +169,51 @@
     ASSERT_ARGS(Parrot_oo_get_class)
     PMC *classobj = PMCNULL;
 
-    if (PObj_is_class_TEST(key))
-        classobj = key;
-    else {
-        /* Fast select of behavior based on type of the lookup key */
-        switch (key->vtable->base_type) {
-          case enum_class_NameSpace:
-            classobj = VTABLE_get_class(interp, key);
-            break;
-          case enum_class_String:
-          case enum_class_Key:
-          case enum_class_ResizableStringArray:
-            {
-                PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
-                                        interp->HLL_namespace,
-                                        Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
-                PMC * const ns     = Parrot_get_namespace_keyed(interp,
-                                        hll_ns, key);
+    if (!PMC_IS_NULL(key)) {
+        if (PObj_is_class_TEST(key))
+            classobj = key;
+        else {
+            /* Fast select of behavior based on type of the lookup key */
+            switch (key->vtable->base_type) {
+              case enum_class_NameSpace:
+                classobj = VTABLE_get_class(interp, key);
+                break;
+              case enum_class_String:
+              case enum_class_Key:
+              case enum_class_ResizableStringArray:
+                {
+                    PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
+                                            interp->HLL_namespace,
+                                            Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
+                    PMC * const ns     = Parrot_get_namespace_keyed(interp,
+                                            hll_ns, key);
 
-                if (!PMC_IS_NULL(ns))
-                    classobj = VTABLE_get_class(interp, ns);
+                    if (!PMC_IS_NULL(ns))
+                        classobj = VTABLE_get_class(interp, ns);
+                }
+              default:
+                break;
             }
-          default:
-            break;
         }
-    }
 
-    /* If the PMCProxy doesn't exist yet for the given key, we look up the
-       type ID here and create a new one */
-    if (PMC_IS_NULL(classobj)) {
-        INTVAL type;
-        const INTVAL base_type = key->vtable->base_type;
-
-        /* This is a hack! All PMCs should be able to be handled through
-           a single codepath, and all of them should be able to avoid
-           stringification because it's so imprecise. */
-        if (base_type == enum_class_Key
-         || base_type == enum_class_ResizableStringArray
-         || base_type == enum_class_String)
-            type = Parrot_pmc_get_type(interp, key);
-        else
-            type = Parrot_pmc_get_type_str(interp, VTABLE_get_string(interp, key));
+        /* If the PMCProxy doesn't exist yet for the given key, we look up the
+           type ID here and create a new one */
+        if (PMC_IS_NULL(classobj)) {
+            INTVAL type;
+            const INTVAL base_type = key->vtable->base_type;
+
+            /* This is a hack! All PMCs should be able to be handled through
+               a single codepath, and all of them should be able to avoid
+               stringification because it's so imprecise. */
+            if (base_type == enum_class_Key
+             || base_type == enum_class_ResizableStringArray
+             || base_type == enum_class_String)
+                type = Parrot_pmc_get_type(interp, key);
+            else
+                type = Parrot_pmc_get_type_str(interp, VTABLE_get_string(interp, key));
 
-        classobj = get_pmc_proxy(interp, type);
+            classobj = get_pmc_proxy(interp, type);
+        }
     }
 
     return classobj;
@@ -1039,13 +1041,27 @@
 
     PMC * const  mro = _class->vtable->mro;
     const INTVAL n   = VTABLE_elements(interp, mro);
+    STRING * const methods_str = CONST_STRING(interp, "methods");
+    STRING * const class_str = CONST_STRING(interp, "class");
 
     for (i = 0; i < n; ++i) {
-        PMC *method, *ns;
+        PMC *ns, *class_obj, *_class, *method_hash;
+        PMC *method = PMCNULL;
 
         _class = VTABLE_get_pmc_keyed_int(interp, mro, i);
         ns     = VTABLE_get_namespace(interp, _class);
-        method = VTABLE_get_pmc_keyed_str(interp, ns, method_name);
+
+        class_obj = VTABLE_inspect_str(interp, ns, class_str);
+        if (PMC_IS_NULL(class_obj))
+            method_hash = VTABLE_inspect_str(interp, ns, methods_str);
+        else
+            method_hash = VTABLE_inspect_str(interp, class_obj, methods_str);
+
+        if (!PMC_IS_NULL(method_hash))
+            method = VTABLE_get_pmc_keyed_str(interp, method_hash, method_name);
+
+        if (PMC_IS_NULL(method))
+            method = VTABLE_get_pmc_keyed_str(interp, ns, method_name);
 
         TRACE_FM(interp, _class, method_name, method);
 

Modified: branches/include_dynpmc_makefile/src/ops/bit.ops
==============================================================================
--- branches/include_dynpmc_makefile/src/ops/bit.ops	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/ops/bit.ops	Wed Apr 28 19:17:12 2010	(r46116)
@@ -89,8 +89,6 @@
     VTABLE_set_integer_native(interp, $1, a & b);
 }
 
-=item B<bands>(inout STR, in STR)
-
 =item B<bands>(invar PMC, in STR)
 
 =item B<bands>(invar PMC, invar PMC)
@@ -109,10 +107,6 @@
 
 =cut
 
-inline op bands(inout STR, in STR) :base_core :deprecated {
-    $1 = Parrot_str_bitwise_and(interp, $1, $2);
-}
-
 inline op bands(invar PMC, in STR) :base_core {
     STRING * const a = VTABLE_get_string(interp, $1);
     STRING * const b = Parrot_str_bitwise_and(interp, a, $2);
@@ -177,8 +171,6 @@
     $1 = b;
 }
 
-=item B<bnots>(inout STR)
-
 =item B<bnots>(invar PMC)
 
 =item B<bnots>(out STR, in STR)
@@ -187,10 +179,6 @@
 
 =cut
 
-inline op bnots(inout STR) :base_core :deprecated {
-    $1 = Parrot_str_bitwise_not(interp, $1);
-}
-
 inline op bnots(out STR, in STR) :base_core {
     $1 = Parrot_str_bitwise_not(interp, $2);
 }
@@ -259,8 +247,6 @@
     VTABLE_set_integer_native(interp, $1, a | b);
 }
 
-=item B<bors>(inout STR, in STR)
-
 =item B<bors>(invar PMC, in STR)
 
 =item B<bors>(invar PMC, invar PMC)
@@ -279,10 +265,6 @@
 
 =cut
 
-inline op bors(inout STR, in STR) :base_core :deprecated {
-    $1 = Parrot_str_bitwise_or(interp, $1, $2);
-}
-
 inline op bors(invar PMC, in STR) :base_core {
     STRING * const a = VTABLE_get_string(interp, $1);
     STRING * const b = Parrot_str_bitwise_or(interp, a, $2);
@@ -559,8 +541,6 @@
     VTABLE_set_integer_native(interp, $1, (INTVAL)c);
 }
 
-=item B<bxors>(inout STR, in STR)
-
 =item B<bxors>(invar PMC, in STR)
 
 =item B<bxors>(invar PMC, invar PMC)
@@ -579,10 +559,6 @@
 
 =cut
 
-inline op bxors(inout STR, in STR) :base_core :deprecated {
-    $1 = Parrot_str_bitwise_xor(interp, $1, $2);
-}
-
 inline op bxors(invar PMC, in STR) :base_core {
     STRING * const a = VTABLE_get_string(interp, $1);
     STRING * const b = Parrot_str_bitwise_xor(interp, a, $2);

Modified: branches/include_dynpmc_makefile/src/ops/ops.num
==============================================================================
--- branches/include_dynpmc_makefile/src/ops/ops.num	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/ops/ops.num	Wed Apr 28 19:17:12 2010	(r46116)
@@ -154,1142 +154,1110 @@
 band_p_p_i                      130
 band_p_p_ic                     131
 band_p_p_p                      132
-bands_s_s                       133
-bands_s_sc                      134
-bands_p_s                       135
-bands_p_sc                      136
-bands_p_p                       137
-bands_s_s_s                     138
-bands_s_sc_s                    139
-bands_s_s_sc                    140
-bands_p_p_s                     141
-bands_p_p_sc                    142
-bands_p_p_p                     143
-bnot_i                          144
-bnot_i_i                        145
-bnot_p                          146
-bnot_p_p                        147
-bnots_s                         148
-bnots_s_s                       149
-bnots_s_sc                      150
-bnots_p                         151
-bnots_p_p                       152
-bor_i_i                         153
-bor_i_ic                        154
-bor_p_i                         155
-bor_p_ic                        156
-bor_p_p                         157
-bor_i_i_i                       158
-bor_i_ic_i                      159
-bor_i_i_ic                      160
-bor_p_p_i                       161
-bor_p_p_ic                      162
-bor_p_p_p                       163
-bors_s_s                        164
-bors_s_sc                       165
-bors_p_s                        166
-bors_p_sc                       167
-bors_p_p                        168
-bors_s_s_s                      169
-bors_s_sc_s                     170
-bors_s_s_sc                     171
-bors_p_p_s                      172
-bors_p_p_sc                     173
-bors_p_p_p                      174
-shl_i_i                         175
-shl_i_ic                        176
-shl_p_i                         177
-shl_p_ic                        178
-shl_p_p                         179
-shl_i_i_i                       180
-shl_i_ic_i                      181
-shl_i_i_ic                      182
-shl_p_p_i                       183
-shl_p_p_ic                      184
-shl_p_p_p                       185
-shr_i_i                         186
-shr_i_ic                        187
-shr_p_i                         188
-shr_p_ic                        189
-shr_p_p                         190
-shr_i_i_i                       191
-shr_i_ic_i                      192
-shr_i_i_ic                      193
-shr_p_p_i                       194
-shr_p_p_ic                      195
-shr_p_p_p                       196
-lsr_i_i                         197
-lsr_i_ic                        198
-lsr_p_i                         199
-lsr_p_ic                        200
-lsr_p_p                         201
-lsr_i_i_i                       202
-lsr_i_ic_i                      203
-lsr_i_i_ic                      204
-lsr_p_p_i                       205
-lsr_p_p_ic                      206
-lsr_p_p_p                       207
-rot_i_i_i_ic                    208
-rot_i_ic_i_ic                   209
-rot_i_i_ic_ic                   210
-bxor_i_i                        211
-bxor_i_ic                       212
-bxor_p_i                        213
-bxor_p_ic                       214
-bxor_p_p                        215
-bxor_i_i_i                      216
-bxor_i_ic_i                     217
-bxor_i_i_ic                     218
-bxor_p_p_i                      219
-bxor_p_p_ic                     220
-bxor_p_p_p                      221
-bxors_s_s                       222
-bxors_s_sc                      223
-bxors_p_s                       224
-bxors_p_sc                      225
-bxors_p_p                       226
-bxors_s_s_s                     227
-bxors_s_sc_s                    228
-bxors_s_s_sc                    229
-bxors_p_p_s                     230
-bxors_p_p_sc                    231
-bxors_p_p_p                     232
-eq_i_i_ic                       233
-eq_ic_i_ic                      234
-eq_i_ic_ic                      235
-eq_n_n_ic                       236
-eq_nc_n_ic                      237
-eq_n_nc_ic                      238
-eq_s_s_ic                       239
-eq_sc_s_ic                      240
-eq_s_sc_ic                      241
-eq_p_p_ic                       242
-eq_p_i_ic                       243
-eq_p_ic_ic                      244
-eq_p_n_ic                       245
-eq_p_nc_ic                      246
-eq_p_s_ic                       247
-eq_p_sc_ic                      248
-eq_str_p_p_ic                   249
-eq_num_p_p_ic                   250
-eq_addr_s_s_ic                  251
-eq_addr_sc_s_ic                 252
-eq_addr_s_sc_ic                 253
-eq_addr_sc_sc_ic                254
-eq_addr_p_p_ic                  255
-ne_i_i_ic                       256
-ne_ic_i_ic                      257
-ne_i_ic_ic                      258
-ne_n_n_ic                       259
-ne_nc_n_ic                      260
-ne_n_nc_ic                      261
-ne_s_s_ic                       262
-ne_sc_s_ic                      263
-ne_s_sc_ic                      264
-ne_p_p_ic                       265
-ne_p_i_ic                       266
-ne_p_ic_ic                      267
-ne_p_n_ic                       268
-ne_p_nc_ic                      269
-ne_p_s_ic                       270
-ne_p_sc_ic                      271
-ne_str_p_p_ic                   272
-ne_num_p_p_ic                   273
-ne_addr_s_s_ic                  274
-ne_addr_sc_s_ic                 275
-ne_addr_s_sc_ic                 276
-ne_addr_sc_sc_ic                277
-ne_addr_p_p_ic                  278
-lt_i_i_ic                       279
-lt_ic_i_ic                      280
-lt_i_ic_ic                      281
-lt_n_n_ic                       282
-lt_nc_n_ic                      283
-lt_n_nc_ic                      284
-lt_s_s_ic                       285
-lt_sc_s_ic                      286
-lt_s_sc_ic                      287
-lt_p_p_ic                       288
-lt_p_i_ic                       289
-lt_p_ic_ic                      290
-lt_p_n_ic                       291
-lt_p_nc_ic                      292
-lt_p_s_ic                       293
-lt_p_sc_ic                      294
-lt_str_p_p_ic                   295
-lt_num_p_p_ic                   296
-le_i_i_ic                       297
-le_ic_i_ic                      298
-le_i_ic_ic                      299
-le_n_n_ic                       300
-le_nc_n_ic                      301
-le_n_nc_ic                      302
-le_s_s_ic                       303
-le_sc_s_ic                      304
-le_s_sc_ic                      305
-le_p_p_ic                       306
-le_p_i_ic                       307
-le_p_ic_ic                      308
-le_p_n_ic                       309
-le_p_nc_ic                      310
-le_p_s_ic                       311
-le_p_sc_ic                      312
-le_str_p_p_ic                   313
-le_num_p_p_ic                   314
-gt_p_p_ic                       315
-gt_p_i_ic                       316
-gt_p_ic_ic                      317
-gt_p_n_ic                       318
-gt_p_nc_ic                      319
-gt_p_s_ic                       320
-gt_p_sc_ic                      321
-gt_str_p_p_ic                   322
-gt_num_p_p_ic                   323
-ge_p_p_ic                       324
-ge_p_i_ic                       325
-ge_p_ic_ic                      326
-ge_p_n_ic                       327
-ge_p_nc_ic                      328
-ge_p_s_ic                       329
-ge_p_sc_ic                      330
-ge_str_p_p_ic                   331
-ge_num_p_p_ic                   332
-if_null_p_ic                    333
-if_null_s_ic                    334
-unless_null_p_ic                335
-unless_null_s_ic                336
-cmp_i_i_i                       337
-cmp_i_ic_i                      338
-cmp_i_i_ic                      339
-cmp_i_n_n                       340
-cmp_i_nc_n                      341
-cmp_i_n_nc                      342
-cmp_i_s_s                       343
-cmp_i_sc_s                      344
-cmp_i_s_sc                      345
-cmp_i_p_p                       346
-cmp_i_p_i                       347
-cmp_i_p_ic                      348
-cmp_i_p_n                       349
-cmp_i_p_nc                      350
-cmp_i_p_s                       351
-cmp_i_p_sc                      352
-cmp_str_i_p_p                   353
-cmp_num_i_p_p                   354
-cmp_pmc_p_p_p                   355
-issame_i_p_p                    356
-issame_i_s_s                    357
-issame_i_sc_s                   358
-issame_i_s_sc                   359
-issame_i_sc_sc                  360
-isntsame_i_p_p                  361
-isntsame_i_s_s                  362
-isntsame_i_sc_s                 363
-isntsame_i_s_sc                 364
-isntsame_i_sc_sc                365
-istrue_i_p                      366
-isfalse_i_p                     367
-isnull_i_p                      368
-isnull_i_pc                     369
-isnull_i_s                      370
-isnull_i_sc                     371
-isgt_i_p_p                      372
-isge_i_p_p                      373
-isle_i_i_i                      374
-isle_i_ic_i                     375
-isle_i_i_ic                     376
-isle_i_n_n                      377
-isle_i_nc_n                     378
-isle_i_n_nc                     379
-isle_i_s_s                      380
-isle_i_sc_s                     381
-isle_i_s_sc                     382
-isle_i_p_p                      383
-islt_i_i_i                      384
-islt_i_ic_i                     385
-islt_i_i_ic                     386
-islt_i_n_n                      387
-islt_i_nc_n                     388
-islt_i_n_nc                     389
-islt_i_s_s                      390
-islt_i_sc_s                     391
-islt_i_s_sc                     392
-islt_i_p_p                      393
-iseq_i_i_i                      394
-iseq_i_ic_i                     395
-iseq_i_i_ic                     396
-iseq_i_n_n                      397
-iseq_i_nc_n                     398
-iseq_i_n_nc                     399
-iseq_i_s_s                      400
-iseq_i_sc_s                     401
-iseq_i_s_sc                     402
-iseq_i_p_p                      403
-isne_i_i_i                      404
-isne_i_ic_i                     405
-isne_i_i_ic                     406
-isne_i_n_n                      407
-isne_i_nc_n                     408
-isne_i_n_nc                     409
-isne_i_s_s                      410
-isne_i_sc_s                     411
-isne_i_s_sc                     412
-isne_i_p_p                      413
-and_i_i_i                       414
-and_i_ic_i                      415
-and_i_i_ic                      416
-and_p_p_p                       417
-not_i                           418
-not_i_i                         419
-not_p                           420
-not_p_p                         421
-or_i_i_i                        422
-or_i_ic_i                       423
-or_i_i_ic                       424
-or_p_p_p                        425
-xor_i_i_i                       426
-xor_i_ic_i                      427
-xor_i_i_ic                      428
-xor_p_p_p                       429
-debug_init                      430
-debug_load_sc                   431
-debug_break                     432
-debug_print                     433
-backtrace                       434
-getline_i                       435
-getfile_s                       436
-set_label_p_ic                  437
-get_label_i_p                   438
-close_p                         439
-fdopen_p_i_s                    440
-fdopen_p_ic_s                   441
-fdopen_p_i_sc                   442
-fdopen_p_ic_sc                  443
-getstdin_p                      444
-getstdout_p                     445
-getstderr_p                     446
-setstdin_p                      447
-setstdout_p                     448
-setstderr_p                     449
-open_p_s_s                      450
-open_p_sc_s                     451
-open_p_s_sc                     452
-open_p_sc_sc                    453
-open_p_s                        454
-open_p_sc                       455
-print_i                         456
-print_ic                        457
-print_n                         458
-print_nc                        459
-print_s                         460
-print_sc                        461
-print_p                         462
-say_i                           463
-say_ic                          464
-say_n                           465
-say_nc                          466
-say_s                           467
-say_sc                          468
-say_p                           469
-printerr_i                      470
-printerr_ic                     471
-printerr_n                      472
-printerr_nc                     473
-printerr_s                      474
-printerr_sc                     475
-printerr_p                      476
-print_p_i                       477
-print_p_ic                      478
-print_p_n                       479
-print_p_nc                      480
-print_p_s                       481
-print_p_sc                      482
-print_p_p                       483
-read_s_i                        484
-read_s_ic                       485
-read_s_p_i                      486
-read_s_p_ic                     487
-readline_s_p                    488
-peek_s                          489
-peek_s_p                        490
-stat_i_s_i                      491
-stat_i_sc_i                     492
-stat_i_s_ic                     493
-stat_i_sc_ic                    494
-stat_i_i_i                      495
-stat_i_ic_i                     496
-stat_i_i_ic                     497
-stat_i_ic_ic                    498
-seek_p_i_i                      499
-seek_p_ic_i                     500
-seek_p_i_ic                     501
-seek_p_ic_ic                    502
-seek_p_i_i_i                    503
-seek_p_ic_i_i                   504
-seek_p_i_ic_i                   505
-seek_p_ic_ic_i                  506
-seek_p_i_i_ic                   507
-seek_p_ic_i_ic                  508
-seek_p_i_ic_ic                  509
-seek_p_ic_ic_ic                 510
-tell_i_p                        511
-tell_i_i_p                      512
-abs_i                           513
-abs_n                           514
-abs_i_i                         515
-abs_n_n                         516
-abs_p                           517
-abs_p_p                         518
-add_i_i                         519
-add_i_ic                        520
-add_n_n                         521
-add_n_nc                        522
-add_p_p                         523
-add_p_i                         524
-add_p_ic                        525
-add_p_n                         526
-add_p_nc                        527
-add_i_i_i                       528
-add_i_ic_i                      529
-add_i_i_ic                      530
-add_n_n_n                       531
-add_n_nc_n                      532
-add_n_n_nc                      533
-add_p_p_p                       534
-add_p_p_i                       535
-add_p_p_ic                      536
-add_p_p_n                       537
-add_p_p_nc                      538
-cmod_i_i_i                      539
-cmod_i_ic_i                     540
-cmod_i_i_ic                     541
-cmod_p_p_i                      542
-cmod_p_p_ic                     543
-cmod_p_p_p                      544
-cmod_n_n_n                      545
-cmod_n_nc_n                     546
-cmod_n_n_nc                     547
-cmod_p_p_n                      548
-cmod_p_p_nc                     549
-dec_i                           550
-dec_n                           551
-dec_p                           552
-div_i_i                         553
-div_i_ic                        554
-div_n_n                         555
-div_n_nc                        556
-div_p_p                         557
-div_p_i                         558
-div_p_ic                        559
-div_p_n                         560
-div_p_nc                        561
-div_i_i_i                       562
-div_i_ic_i                      563
-div_i_i_ic                      564
-div_i_ic_ic                     565
-div_n_n_n                       566
-div_n_nc_n                      567
-div_n_n_nc                      568
-div_n_nc_nc                     569
-div_p_p_p                       570
-div_p_p_i                       571
-div_p_p_ic                      572
-div_p_p_n                       573
-div_p_p_nc                      574
-fdiv_i_i                        575
-fdiv_i_ic                       576
-fdiv_n_n                        577
-fdiv_n_nc                       578
-fdiv_p_p                        579
-fdiv_p_i                        580
-fdiv_p_ic                       581
-fdiv_p_n                        582
-fdiv_p_nc                       583
-fdiv_i_i_i                      584
-fdiv_i_ic_i                     585
-fdiv_i_i_ic                     586
-fdiv_n_n_n                      587
-fdiv_n_nc_n                     588
-fdiv_n_n_nc                     589
-fdiv_p_p_p                      590
-fdiv_p_p_i                      591
-fdiv_p_p_ic                     592
-fdiv_p_p_n                      593
-fdiv_p_p_nc                     594
-ceil_n                          595
-ceil_i_n                        596
-ceil_n_n                        597
-floor_n                         598
-floor_i_n                       599
-floor_n_n                       600
-inc_i                           601
-inc_n                           602
-inc_p                           603
-mod_i_i                         604
-mod_i_ic                        605
-mod_n_n                         606
-mod_n_nc                        607
-mod_p_p                         608
-mod_p_i                         609
-mod_p_ic                        610
-mod_p_n                         611
-mod_p_nc                        612
-mod_i_i_i                       613
-mod_i_ic_i                      614
-mod_i_i_ic                      615
-mod_n_n_n                       616
-mod_n_nc_n                      617
-mod_n_n_nc                      618
-mod_p_p_p                       619
-mod_p_p_i                       620
-mod_p_p_ic                      621
-mod_p_p_n                       622
-mod_p_p_nc                      623
-mul_i_i                         624
-mul_i_ic                        625
-mul_n_n                         626
-mul_n_nc                        627
-mul_p_p                         628
-mul_p_i                         629
-mul_p_ic                        630
-mul_p_n                         631
-mul_p_nc                        632
-mul_i_i_i                       633
-mul_i_ic_i                      634
-mul_i_i_ic                      635
-mul_n_n_n                       636
-mul_n_nc_n                      637
-mul_n_n_nc                      638
-mul_p_p_p                       639
-mul_p_p_i                       640
-mul_p_p_ic                      641
-mul_p_p_n                       642
-mul_p_p_nc                      643
-neg_i                           644
-neg_n                           645
-neg_p                           646
-neg_i_i                         647
-neg_n_n                         648
-neg_p_p                         649
-pow_n_n_n                       650
-pow_n_nc_n                      651
-pow_n_n_nc                      652
-pow_p_p_p                       653
-pow_p_p_i                       654
-pow_p_p_ic                      655
-pow_p_p_n                       656
-pow_p_p_nc                      657
-pow_n_n_i                       658
-pow_n_nc_i                      659
-pow_n_n_ic                      660
-pow_n_nc_ic                     661
-sub_i_i                         662
-sub_i_ic                        663
-sub_n_n                         664
-sub_n_nc                        665
-sub_p_p                         666
-sub_p_i                         667
-sub_p_ic                        668
-sub_p_n                         669
-sub_p_nc                        670
-sub_i_i_i                       671
-sub_i_ic_i                      672
-sub_i_i_ic                      673
-sub_n_n_n                       674
-sub_n_nc_n                      675
-sub_n_n_nc                      676
-sub_p_p_p                       677
-sub_p_p_i                       678
-sub_p_p_ic                      679
-sub_p_p_n                       680
-sub_p_p_nc                      681
-sqrt_n_n                        682
-acos_n_n                        683
-asec_n_n                        684
-asin_n_n                        685
-atan_n_n                        686
-atan_n_n_n                      687
-atan_n_nc_n                     688
-atan_n_n_nc                     689
-cos_n_n                         690
-cosh_n_n                        691
-exp_n_n                         692
-ln_n_n                          693
-log10_n_n                       694
-log2_n_n                        695
-sec_n_n                         696
-sech_n_n                        697
-sin_n_n                         698
-sinh_n_n                        699
-tan_n_n                         700
-tanh_n_n                        701
-gcd_i_i_i                       702
-gcd_i_ic_i                      703
-gcd_i_i_ic                      704
-lcm_i_i_i                       705
-lcm_i_ic_i                      706
-lcm_i_i_ic                      707
-fact_i_i                        708
-fact_n_i                        709
-callmethodcc_p_s                710
-callmethodcc_p_sc               711
-callmethodcc_p_p                712
-callmethod_p_s_p                713
-callmethod_p_sc_p               714
-callmethod_p_p_p                715
-tailcallmethod_p_s              716
-tailcallmethod_p_sc             717
-tailcallmethod_p_p              718
-addmethod_p_s_p                 719
-addmethod_p_sc_p                720
-can_i_p_s                       721
-can_i_p_sc                      722
-does_i_p_s                      723
-does_i_p_sc                     724
-does_i_p_p                      725
-does_i_p_pc                     726
-isa_i_p_s                       727
-isa_i_p_sc                      728
-isa_i_p_p                       729
-isa_i_p_pc                      730
-newclass_p_s                    731
-newclass_p_sc                   732
-newclass_p_p                    733
-newclass_p_pc                   734
-subclass_p_p                    735
-subclass_p_pc                   736
-subclass_p_p_s                  737
-subclass_p_pc_s                 738
-subclass_p_p_sc                 739
-subclass_p_pc_sc                740
-subclass_p_p_p                  741
-subclass_p_pc_p                 742
-subclass_p_p_pc                 743
-subclass_p_pc_pc                744
-subclass_p_s                    745
-subclass_p_sc                   746
-subclass_p_s_s                  747
-subclass_p_sc_s                 748
-subclass_p_s_sc                 749
-subclass_p_sc_sc                750
-subclass_p_s_p                  751
-subclass_p_sc_p                 752
-subclass_p_s_pc                 753
-subclass_p_sc_pc                754
-get_class_p_s                   755
-get_class_p_sc                  756
-get_class_p_p                   757
-get_class_p_pc                  758
-class_p_p                       759
-addparent_p_p                   760
-removeparent_p_p                761
-addrole_p_p                     762
-addattribute_p_s                763
-addattribute_p_sc               764
-removeattribute_p_s             765
-removeattribute_p_sc            766
-getattribute_p_p_s              767
-getattribute_p_p_sc             768
-getattribute_p_p_p_s            769
-getattribute_p_p_pc_s           770
-getattribute_p_p_p_sc           771
-getattribute_p_p_pc_sc          772
-setattribute_p_s_p              773
-setattribute_p_sc_p             774
-setattribute_p_p_s_p            775
-setattribute_p_pc_s_p           776
-setattribute_p_p_sc_p           777
-setattribute_p_pc_sc_p          778
-inspect_p_p                     779
-inspect_p_pc                    780
-inspect_p_p_s                   781
-inspect_p_pc_s                  782
-inspect_p_p_sc                  783
-inspect_p_pc_sc                 784
-new_p_s                         785
-new_p_sc                        786
-new_p_s_p                       787
-new_p_sc_p                      788
-new_p_s_pc                      789
-new_p_sc_pc                     790
-new_p_p                         791
-new_p_pc                        792
-new_p_p_p                       793
-new_p_pc_p                      794
-new_p_p_pc                      795
-new_p_pc_pc                     796
-root_new_p_p                    797
-root_new_p_pc                   798
-root_new_p_p_p                  799
-root_new_p_pc_p                 800
-root_new_p_p_pc                 801
-root_new_p_pc_pc                802
-typeof_s_p                      803
-typeof_p_p                      804
-get_repr_s_p                    805
-find_method_p_p_s               806
-find_method_p_p_sc              807
-defined_i_p                     808
-defined_i_p_ki                  809
-defined_i_p_kic                 810
-defined_i_p_k                   811
-defined_i_p_kc                  812
-exists_i_p_ki                   813
-exists_i_p_kic                  814
-exists_i_p_k                    815
-exists_i_p_kc                   816
-delete_p_k                      817
-delete_p_kc                     818
-delete_p_ki                     819
-delete_p_kic                    820
-elements_i_p                    821
-push_p_i                        822
-push_p_ic                       823
-push_p_n                        824
-push_p_nc                       825
-push_p_s                        826
-push_p_sc                       827
-push_p_p                        828
-pop_i_p                         829
-pop_n_p                         830
-pop_s_p                         831
-pop_p_p                         832
-unshift_p_i                     833
-unshift_p_ic                    834
-unshift_p_n                     835
-unshift_p_nc                    836
-unshift_p_s                     837
-unshift_p_sc                    838
-unshift_p_p                     839
-shift_i_p                       840
-shift_n_p                       841
-shift_s_p                       842
-shift_p_p                       843
-splice_p_p_i_i                  844
-splice_p_p_ic_i                 845
-splice_p_p_i_ic                 846
-splice_p_p_ic_ic                847
-setprop_p_s_p                   848
-setprop_p_sc_p                  849
-getprop_p_s_p                   850
-getprop_p_sc_p                  851
-delprop_p_s                     852
-delprop_p_sc                    853
-prophash_p_p                    854
-freeze_s_p                      855
-thaw_p_s                        856
-thaw_p_sc                       857
-add_multi_s_s_p                 858
-add_multi_sc_s_p                859
-add_multi_s_sc_p                860
-add_multi_sc_sc_p               861
-find_multi_p_s_s                862
-find_multi_p_sc_s               863
-find_multi_p_s_sc               864
-find_multi_p_sc_sc              865
-register_p                      866
-unregister_p                    867
-box_p_i                         868
-box_p_ic                        869
-box_p_n                         870
-box_p_nc                        871
-box_p_s                         872
-box_p_sc                        873
-iter_p_p                        874
-morph_p_p                       875
-morph_p_pc                      876
-clone_s_s                       877
-clone_s_sc                      878
-exchange_i_i                    879
-exchange_p_p                    880
-exchange_n_n                    881
-exchange_s_s                    882
-set_i_i                         883
-set_i_ic                        884
-set_i_n                         885
-set_i_nc                        886
-set_i_s                         887
-set_i_sc                        888
-set_n_n                         889
-set_n_nc                        890
-set_n_i                         891
-set_n_ic                        892
-set_n_s                         893
-set_n_sc                        894
-set_n_p                         895
-set_s_p                         896
-set_s_s                         897
-set_s_sc                        898
-set_s_i                         899
-set_s_ic                        900
-set_s_n                         901
-set_s_nc                        902
-set_p_pc                        903
-set_p_p                         904
-set_p_i                         905
-set_p_ic                        906
-set_p_n                         907
-set_p_nc                        908
-set_p_s                         909
-set_p_sc                        910
-set_i_p                         911
-assign_p_p                      912
-assign_p_i                      913
-assign_p_ic                     914
-assign_p_n                      915
-assign_p_nc                     916
-assign_p_s                      917
-assign_p_sc                     918
-assign_s_s                      919
-assign_s_sc                     920
-setref_p_p                      921
-deref_p_p                       922
-setp_ind_i_p                    923
-setp_ind_ic_p                   924
-setn_ind_i_n                    925
-setn_ind_ic_n                   926
-setn_ind_i_nc                   927
-setn_ind_ic_nc                  928
-sets_ind_i_s                    929
-sets_ind_ic_s                   930
-sets_ind_i_sc                   931
-sets_ind_ic_sc                  932
-seti_ind_i_i                    933
-seti_ind_ic_i                   934
-seti_ind_i_ic                   935
-seti_ind_ic_ic                  936
-set_p_ki_i                      937
-set_p_kic_i                     938
-set_p_ki_ic                     939
-set_p_kic_ic                    940
-set_p_ki_n                      941
-set_p_kic_n                     942
-set_p_ki_nc                     943
-set_p_kic_nc                    944
-set_p_ki_s                      945
-set_p_kic_s                     946
-set_p_ki_sc                     947
-set_p_kic_sc                    948
-set_p_ki_p                      949
-set_p_kic_p                     950
-set_i_p_ki                      951
-set_i_p_kic                     952
-set_n_p_ki                      953
-set_n_p_kic                     954
-set_s_p_ki                      955
-set_s_p_kic                     956
-set_p_p_ki                      957
-set_p_p_kic                     958
-set_p_k_i                       959
-set_p_kc_i                      960
-set_p_k_ic                      961
-set_p_kc_ic                     962
-set_p_k_n                       963
-set_p_kc_n                      964
-set_p_k_nc                      965
-set_p_kc_nc                     966
-set_p_k_s                       967
-set_p_kc_s                      968
-set_p_k_sc                      969
-set_p_kc_sc                     970
-set_p_k_p                       971
-set_p_kc_p                      972
-set_i_p_k                       973
-set_i_p_kc                      974
-set_n_p_k                       975
-set_n_p_kc                      976
-set_s_p_k                       977
-set_s_p_kc                      978
-set_p_p_k                       979
-set_p_p_kc                      980
-clone_p_p                       981
-clone_p_p_p                     982
-clone_p_p_pc                    983
-copy_p_p                        984
-null_s                          985
-null_i                          986
-null_p                          987
-null_n                          988
-cleari                          989
-clearn                          990
-clears                          991
-clearp                          992
-ord_i_s                         993
-ord_i_sc                        994
-ord_i_s_i                       995
-ord_i_sc_i                      996
-ord_i_s_ic                      997
-ord_i_sc_ic                     998
-chr_s_i                         999
-chr_s_ic                       1000
-chopn_s_i                      1001
-chopn_s_ic                     1002
-chopn_s_s_i                    1003
-chopn_s_sc_i                   1004
-chopn_s_s_ic                   1005
-chopn_s_sc_ic                  1006
-concat_s_s                     1007
-concat_s_sc                    1008
-concat_p_p                     1009
-concat_p_s                     1010
-concat_p_sc                    1011
-concat_s_s_s                   1012
-concat_s_sc_s                  1013
-concat_s_s_sc                  1014
-concat_p_p_s                   1015
-concat_p_p_sc                  1016
-concat_p_p_p                   1017
-repeat_s_s_i                   1018
-repeat_s_sc_i                  1019
-repeat_s_s_ic                  1020
-repeat_s_sc_ic                 1021
-repeat_p_p_i                   1022
-repeat_p_p_ic                  1023
-repeat_p_p_p                   1024
-repeat_p_i                     1025
-repeat_p_ic                    1026
-repeat_p_p                     1027
-length_i_s                     1028
-length_i_sc                    1029
-bytelength_i_s                 1030
-bytelength_i_sc                1031
-pin_s                          1032
-unpin_s                        1033
-substr_s_s_i                   1034
-substr_s_sc_i                  1035
-substr_s_s_ic                  1036
-substr_s_sc_ic                 1037
-substr_s_s_i_i                 1038
-substr_s_sc_i_i                1039
-substr_s_s_ic_i                1040
-substr_s_sc_ic_i               1041
-substr_s_s_i_ic                1042
-substr_s_sc_i_ic               1043
-substr_s_s_ic_ic               1044
-substr_s_sc_ic_ic              1045
-substr_s_s_i_i_s               1046
-substr_s_s_ic_i_s              1047
-substr_s_s_i_ic_s              1048
-substr_s_s_ic_ic_s             1049
-substr_s_s_i_i_sc              1050
-substr_s_s_ic_i_sc             1051
-substr_s_s_i_ic_sc             1052
-substr_s_s_ic_ic_sc            1053
-substr_s_i_i_s                 1054
-substr_s_ic_i_s                1055
-substr_s_i_ic_s                1056
-substr_s_ic_ic_s               1057
-substr_s_i_i_sc                1058
-substr_s_ic_i_sc               1059
-substr_s_i_ic_sc               1060
-substr_s_ic_ic_sc              1061
-substr_s_p_i_i                 1062
-substr_s_p_ic_i                1063
-substr_s_p_i_ic                1064
-substr_s_p_ic_ic               1065
-replace_s_s_i_i_s              1066
-replace_s_sc_i_i_s             1067
-replace_s_s_ic_i_s             1068
-replace_s_sc_ic_i_s            1069
-replace_s_s_i_ic_s             1070
-replace_s_sc_i_ic_s            1071
-replace_s_s_ic_ic_s            1072
-replace_s_sc_ic_ic_s           1073
-replace_s_s_i_i_sc             1074
-replace_s_sc_i_i_sc            1075
-replace_s_s_ic_i_sc            1076
-replace_s_sc_ic_i_sc           1077
-replace_s_s_i_ic_sc            1078
-replace_s_sc_i_ic_sc           1079
-replace_s_s_ic_ic_sc           1080
-replace_s_sc_ic_ic_sc          1081
-index_i_s_s                    1082
-index_i_sc_s                   1083
-index_i_s_sc                   1084
-index_i_sc_sc                  1085
-index_i_s_s_i                  1086
-index_i_sc_s_i                 1087
-index_i_s_sc_i                 1088
-index_i_sc_sc_i                1089
-index_i_s_s_ic                 1090
-index_i_sc_s_ic                1091
-index_i_s_sc_ic                1092
-index_i_sc_sc_ic               1093
-sprintf_s_s_p                  1094
-sprintf_s_sc_p                 1095
-sprintf_p_p_p                  1096
-new_s                          1097
-new_s_i                        1098
-new_s_ic                       1099
-stringinfo_i_s_i               1100
-stringinfo_i_sc_i              1101
-stringinfo_i_s_ic              1102
-stringinfo_i_sc_ic             1103
-upcase_s_s                     1104
-upcase_s_sc                    1105
-upcase_s                       1106
-downcase_s_s                   1107
-downcase_s_sc                  1108
-downcase_s                     1109
-titlecase_s_s                  1110
-titlecase_s_sc                 1111
-titlecase_s                    1112
-join_s_s_p                     1113
-join_s_sc_p                    1114
-split_p_s_s                    1115
-split_p_sc_s                   1116
-split_p_s_sc                   1117
-split_p_sc_sc                  1118
-charset_i_s                    1119
-charset_i_sc                   1120
-charsetname_s_i                1121
-charsetname_s_ic               1122
-find_charset_i_s               1123
-find_charset_i_sc              1124
-trans_charset_s_i              1125
-trans_charset_s_ic             1126
-trans_charset_s_s_i            1127
-trans_charset_s_sc_i           1128
-trans_charset_s_s_ic           1129
-trans_charset_s_sc_ic          1130
-encoding_i_s                   1131
-encoding_i_sc                  1132
-encodingname_s_i               1133
-encodingname_s_ic              1134
-find_encoding_i_s              1135
-find_encoding_i_sc             1136
-trans_encoding_s_i             1137
-trans_encoding_s_ic            1138
-trans_encoding_s_s_i           1139
-trans_encoding_s_sc_i          1140
-trans_encoding_s_s_ic          1141
-trans_encoding_s_sc_ic         1142
-is_cclass_i_i_s_i              1143
-is_cclass_i_ic_s_i             1144
-is_cclass_i_i_sc_i             1145
-is_cclass_i_ic_sc_i            1146
-is_cclass_i_i_s_ic             1147
-is_cclass_i_ic_s_ic            1148
-is_cclass_i_i_sc_ic            1149
-is_cclass_i_ic_sc_ic           1150
-find_cclass_i_i_s_i_i          1151
-find_cclass_i_ic_s_i_i         1152
-find_cclass_i_i_sc_i_i         1153
-find_cclass_i_ic_sc_i_i        1154
-find_cclass_i_i_s_ic_i         1155
-find_cclass_i_ic_s_ic_i        1156
-find_cclass_i_i_sc_ic_i        1157
-find_cclass_i_ic_sc_ic_i       1158
-find_cclass_i_i_s_i_ic         1159
-find_cclass_i_ic_s_i_ic        1160
-find_cclass_i_i_sc_i_ic        1161
-find_cclass_i_ic_sc_i_ic       1162
-find_cclass_i_i_s_ic_ic        1163
-find_cclass_i_ic_s_ic_ic       1164
-find_cclass_i_i_sc_ic_ic       1165
-find_cclass_i_ic_sc_ic_ic      1166
-find_not_cclass_i_i_s_i_i      1167
-find_not_cclass_i_ic_s_i_i     1168
-find_not_cclass_i_i_sc_i_i     1169
-find_not_cclass_i_ic_sc_i_i    1170
-find_not_cclass_i_i_s_ic_i     1171
-find_not_cclass_i_ic_s_ic_i    1172
-find_not_cclass_i_i_sc_ic_i    1173
-find_not_cclass_i_ic_sc_ic_i   1174
-find_not_cclass_i_i_s_i_ic     1175
-find_not_cclass_i_ic_s_i_ic    1176
-find_not_cclass_i_i_sc_i_ic    1177
-find_not_cclass_i_ic_sc_i_ic   1178
-find_not_cclass_i_i_s_ic_ic    1179
-find_not_cclass_i_ic_s_ic_ic   1180
-find_not_cclass_i_i_sc_ic_ic   1181
-find_not_cclass_i_ic_sc_ic_ic  1182
-escape_s_s                     1183
-compose_s_s                    1184
-compose_s_sc                   1185
-spawnw_i_s                     1186
-spawnw_i_sc                    1187
-spawnw_i_p                     1188
-err_i                          1189
-err_s                          1190
-err_s_i                        1191
-err_s_ic                       1192
-time_i                         1193
-time_n                         1194
-gmtime_s_i                     1195
-gmtime_s_ic                    1196
-localtime_s_i                  1197
-localtime_s_ic                 1198
-decodetime_p_i                 1199
-decodetime_p_ic                1200
-decodelocaltime_p_i            1201
-decodelocaltime_p_ic           1202
-sysinfo_s_i                    1203
-sysinfo_s_ic                   1204
-sysinfo_i_i                    1205
-sysinfo_i_ic                   1206
-sleep_i                        1207
-sleep_ic                       1208
-sleep_n                        1209
-sleep_nc                       1210
-sizeof_i_i                     1211
-sizeof_i_ic                    1212
-store_lex_s_p                  1213
-store_lex_sc_p                 1214
-store_dynamic_lex_s_p          1215
-store_dynamic_lex_sc_p         1216
-find_lex_p_s                   1217
-find_lex_p_sc                  1218
-find_dynamic_lex_p_s           1219
-find_dynamic_lex_p_sc          1220
-find_caller_lex_p_s            1221
-find_caller_lex_p_sc           1222
-get_namespace_p                1223
-get_namespace_p_p              1224
-get_namespace_p_pc             1225
-get_hll_namespace_p            1226
-get_hll_namespace_p_p          1227
-get_hll_namespace_p_pc         1228
-get_root_namespace_p           1229
-get_root_namespace_p_p         1230
-get_root_namespace_p_pc        1231
-get_global_p_s                 1232
-get_global_p_sc                1233
-get_global_p_p_s               1234
-get_global_p_pc_s              1235
-get_global_p_p_sc              1236
-get_global_p_pc_sc             1237
-get_hll_global_p_s             1238
-get_hll_global_p_sc            1239
-get_hll_global_p_p_s           1240
-get_hll_global_p_pc_s          1241
-get_hll_global_p_p_sc          1242
-get_hll_global_p_pc_sc         1243
-get_root_global_p_s            1244
-get_root_global_p_sc           1245
-get_root_global_p_p_s          1246
-get_root_global_p_pc_s         1247
-get_root_global_p_p_sc         1248
-get_root_global_p_pc_sc        1249
-set_global_s_p                 1250
-set_global_sc_p                1251
-set_global_p_s_p               1252
-set_global_pc_s_p              1253
-set_global_p_sc_p              1254
-set_global_pc_sc_p             1255
-set_hll_global_s_p             1256
-set_hll_global_sc_p            1257
-set_hll_global_p_s_p           1258
-set_hll_global_pc_s_p          1259
-set_hll_global_p_sc_p          1260
-set_hll_global_pc_sc_p         1261
-set_root_global_s_p            1262
-set_root_global_sc_p           1263
-set_root_global_p_s_p          1264
-set_root_global_pc_s_p         1265
-set_root_global_p_sc_p         1266
-set_root_global_pc_sc_p        1267
-find_name_p_s                  1268
-find_name_p_sc                 1269
-find_sub_not_null_p_s          1270
-find_sub_not_null_p_sc         1271
+bands_p_s                       133
+bands_p_sc                      134
+bands_p_p                       135
+bands_s_s_s                     136
+bands_s_sc_s                    137
+bands_s_s_sc                    138
+bands_p_p_s                     139
+bands_p_p_sc                    140
+bands_p_p_p                     141
+bnot_i                          142
+bnot_i_i                        143
+bnot_p                          144
+bnot_p_p                        145
+bnots_s_s                       146
+bnots_s_sc                      147
+bnots_p                         148
+bnots_p_p                       149
+bor_i_i                         150
+bor_i_ic                        151
+bor_p_i                         152
+bor_p_ic                        153
+bor_p_p                         154
+bor_i_i_i                       155
+bor_i_ic_i                      156
+bor_i_i_ic                      157
+bor_p_p_i                       158
+bor_p_p_ic                      159
+bor_p_p_p                       160
+bors_p_s                        161
+bors_p_sc                       162
+bors_p_p                        163
+bors_s_s_s                      164
+bors_s_sc_s                     165
+bors_s_s_sc                     166
+bors_p_p_s                      167
+bors_p_p_sc                     168
+bors_p_p_p                      169
+shl_i_i                         170
+shl_i_ic                        171
+shl_p_i                         172
+shl_p_ic                        173
+shl_p_p                         174
+shl_i_i_i                       175
+shl_i_ic_i                      176
+shl_i_i_ic                      177
+shl_p_p_i                       178
+shl_p_p_ic                      179
+shl_p_p_p                       180
+shr_i_i                         181
+shr_i_ic                        182
+shr_p_i                         183
+shr_p_ic                        184
+shr_p_p                         185
+shr_i_i_i                       186
+shr_i_ic_i                      187
+shr_i_i_ic                      188
+shr_p_p_i                       189
+shr_p_p_ic                      190
+shr_p_p_p                       191
+lsr_i_i                         192
+lsr_i_ic                        193
+lsr_p_i                         194
+lsr_p_ic                        195
+lsr_p_p                         196
+lsr_i_i_i                       197
+lsr_i_ic_i                      198
+lsr_i_i_ic                      199
+lsr_p_p_i                       200
+lsr_p_p_ic                      201
+lsr_p_p_p                       202
+rot_i_i_i_ic                    203
+rot_i_ic_i_ic                   204
+rot_i_i_ic_ic                   205
+bxor_i_i                        206
+bxor_i_ic                       207
+bxor_p_i                        208
+bxor_p_ic                       209
+bxor_p_p                        210
+bxor_i_i_i                      211
+bxor_i_ic_i                     212
+bxor_i_i_ic                     213
+bxor_p_p_i                      214
+bxor_p_p_ic                     215
+bxor_p_p_p                      216
+bxors_p_s                       217
+bxors_p_sc                      218
+bxors_p_p                       219
+bxors_s_s_s                     220
+bxors_s_sc_s                    221
+bxors_s_s_sc                    222
+bxors_p_p_s                     223
+bxors_p_p_sc                    224
+bxors_p_p_p                     225
+eq_i_i_ic                       226
+eq_ic_i_ic                      227
+eq_i_ic_ic                      228
+eq_n_n_ic                       229
+eq_nc_n_ic                      230
+eq_n_nc_ic                      231
+eq_s_s_ic                       232
+eq_sc_s_ic                      233
+eq_s_sc_ic                      234
+eq_p_p_ic                       235
+eq_p_i_ic                       236
+eq_p_ic_ic                      237
+eq_p_n_ic                       238
+eq_p_nc_ic                      239
+eq_p_s_ic                       240
+eq_p_sc_ic                      241
+eq_str_p_p_ic                   242
+eq_num_p_p_ic                   243
+eq_addr_s_s_ic                  244
+eq_addr_sc_s_ic                 245
+eq_addr_s_sc_ic                 246
+eq_addr_sc_sc_ic                247
+eq_addr_p_p_ic                  248
+ne_i_i_ic                       249
+ne_ic_i_ic                      250
+ne_i_ic_ic                      251
+ne_n_n_ic                       252
+ne_nc_n_ic                      253
+ne_n_nc_ic                      254
+ne_s_s_ic                       255
+ne_sc_s_ic                      256
+ne_s_sc_ic                      257
+ne_p_p_ic                       258
+ne_p_i_ic                       259
+ne_p_ic_ic                      260
+ne_p_n_ic                       261
+ne_p_nc_ic                      262
+ne_p_s_ic                       263
+ne_p_sc_ic                      264
+ne_str_p_p_ic                   265
+ne_num_p_p_ic                   266
+ne_addr_s_s_ic                  267
+ne_addr_sc_s_ic                 268
+ne_addr_s_sc_ic                 269
+ne_addr_sc_sc_ic                270
+ne_addr_p_p_ic                  271
+lt_i_i_ic                       272
+lt_ic_i_ic                      273
+lt_i_ic_ic                      274
+lt_n_n_ic                       275
+lt_nc_n_ic                      276
+lt_n_nc_ic                      277
+lt_s_s_ic                       278
+lt_sc_s_ic                      279
+lt_s_sc_ic                      280
+lt_p_p_ic                       281
+lt_p_i_ic                       282
+lt_p_ic_ic                      283
+lt_p_n_ic                       284
+lt_p_nc_ic                      285
+lt_p_s_ic                       286
+lt_p_sc_ic                      287
+lt_str_p_p_ic                   288
+lt_num_p_p_ic                   289
+le_i_i_ic                       290
+le_ic_i_ic                      291
+le_i_ic_ic                      292
+le_n_n_ic                       293
+le_nc_n_ic                      294
+le_n_nc_ic                      295
+le_s_s_ic                       296
+le_sc_s_ic                      297
+le_s_sc_ic                      298
+le_p_p_ic                       299
+le_p_i_ic                       300
+le_p_ic_ic                      301
+le_p_n_ic                       302
+le_p_nc_ic                      303
+le_p_s_ic                       304
+le_p_sc_ic                      305
+le_str_p_p_ic                   306
+le_num_p_p_ic                   307
+gt_p_p_ic                       308
+gt_p_i_ic                       309
+gt_p_ic_ic                      310
+gt_p_n_ic                       311
+gt_p_nc_ic                      312
+gt_p_s_ic                       313
+gt_p_sc_ic                      314
+gt_str_p_p_ic                   315
+gt_num_p_p_ic                   316
+ge_p_p_ic                       317
+ge_p_i_ic                       318
+ge_p_ic_ic                      319
+ge_p_n_ic                       320
+ge_p_nc_ic                      321
+ge_p_s_ic                       322
+ge_p_sc_ic                      323
+ge_str_p_p_ic                   324
+ge_num_p_p_ic                   325
+if_null_p_ic                    326
+if_null_s_ic                    327
+unless_null_p_ic                328
+unless_null_s_ic                329
+cmp_i_i_i                       330
+cmp_i_ic_i                      331
+cmp_i_i_ic                      332
+cmp_i_n_n                       333
+cmp_i_nc_n                      334
+cmp_i_n_nc                      335
+cmp_i_s_s                       336
+cmp_i_sc_s                      337
+cmp_i_s_sc                      338
+cmp_i_p_p                       339
+cmp_i_p_i                       340
+cmp_i_p_ic                      341
+cmp_i_p_n                       342
+cmp_i_p_nc                      343
+cmp_i_p_s                       344
+cmp_i_p_sc                      345
+cmp_str_i_p_p                   346
+cmp_num_i_p_p                   347
+cmp_pmc_p_p_p                   348
+issame_i_p_p                    349
+issame_i_s_s                    350
+issame_i_sc_s                   351
+issame_i_s_sc                   352
+issame_i_sc_sc                  353
+isntsame_i_p_p                  354
+isntsame_i_s_s                  355
+isntsame_i_sc_s                 356
+isntsame_i_s_sc                 357
+isntsame_i_sc_sc                358
+istrue_i_p                      359
+isfalse_i_p                     360
+isnull_i_p                      361
+isnull_i_pc                     362
+isnull_i_s                      363
+isnull_i_sc                     364
+isgt_i_p_p                      365
+isge_i_p_p                      366
+isle_i_i_i                      367
+isle_i_ic_i                     368
+isle_i_i_ic                     369
+isle_i_n_n                      370
+isle_i_nc_n                     371
+isle_i_n_nc                     372
+isle_i_s_s                      373
+isle_i_sc_s                     374
+isle_i_s_sc                     375
+isle_i_p_p                      376
+islt_i_i_i                      377
+islt_i_ic_i                     378
+islt_i_i_ic                     379
+islt_i_n_n                      380
+islt_i_nc_n                     381
+islt_i_n_nc                     382
+islt_i_s_s                      383
+islt_i_sc_s                     384
+islt_i_s_sc                     385
+islt_i_p_p                      386
+iseq_i_i_i                      387
+iseq_i_ic_i                     388
+iseq_i_i_ic                     389
+iseq_i_n_n                      390
+iseq_i_nc_n                     391
+iseq_i_n_nc                     392
+iseq_i_s_s                      393
+iseq_i_sc_s                     394
+iseq_i_s_sc                     395
+iseq_i_p_p                      396
+isne_i_i_i                      397
+isne_i_ic_i                     398
+isne_i_i_ic                     399
+isne_i_n_n                      400
+isne_i_nc_n                     401
+isne_i_n_nc                     402
+isne_i_s_s                      403
+isne_i_sc_s                     404
+isne_i_s_sc                     405
+isne_i_p_p                      406
+and_i_i_i                       407
+and_i_ic_i                      408
+and_i_i_ic                      409
+and_p_p_p                       410
+not_i                           411
+not_i_i                         412
+not_p                           413
+not_p_p                         414
+or_i_i_i                        415
+or_i_ic_i                       416
+or_i_i_ic                       417
+or_p_p_p                        418
+xor_i_i_i                       419
+xor_i_ic_i                      420
+xor_i_i_ic                      421
+xor_p_p_p                       422
+debug_init                      423
+debug_load_sc                   424
+debug_break                     425
+debug_print                     426
+backtrace                       427
+getline_i                       428
+getfile_s                       429
+set_label_p_ic                  430
+get_label_i_p                   431
+close_p                         432
+fdopen_p_i_s                    433
+fdopen_p_ic_s                   434
+fdopen_p_i_sc                   435
+fdopen_p_ic_sc                  436
+getstdin_p                      437
+getstdout_p                     438
+getstderr_p                     439
+setstdin_p                      440
+setstdout_p                     441
+setstderr_p                     442
+open_p_s_s                      443
+open_p_sc_s                     444
+open_p_s_sc                     445
+open_p_sc_sc                    446
+open_p_s                        447
+open_p_sc                       448
+print_i                         449
+print_ic                        450
+print_n                         451
+print_nc                        452
+print_s                         453
+print_sc                        454
+print_p                         455
+say_i                           456
+say_ic                          457
+say_n                           458
+say_nc                          459
+say_s                           460
+say_sc                          461
+say_p                           462
+printerr_i                      463
+printerr_ic                     464
+printerr_n                      465
+printerr_nc                     466
+printerr_s                      467
+printerr_sc                     468
+printerr_p                      469
+print_p_i                       470
+print_p_ic                      471
+print_p_n                       472
+print_p_nc                      473
+print_p_s                       474
+print_p_sc                      475
+print_p_p                       476
+read_s_i                        477
+read_s_ic                       478
+read_s_p_i                      479
+read_s_p_ic                     480
+readline_s_p                    481
+peek_s                          482
+peek_s_p                        483
+stat_i_s_i                      484
+stat_i_sc_i                     485
+stat_i_s_ic                     486
+stat_i_sc_ic                    487
+stat_i_i_i                      488
+stat_i_ic_i                     489
+stat_i_i_ic                     490
+stat_i_ic_ic                    491
+seek_p_i_i                      492
+seek_p_ic_i                     493
+seek_p_i_ic                     494
+seek_p_ic_ic                    495
+seek_p_i_i_i                    496
+seek_p_ic_i_i                   497
+seek_p_i_ic_i                   498
+seek_p_ic_ic_i                  499
+seek_p_i_i_ic                   500
+seek_p_ic_i_ic                  501
+seek_p_i_ic_ic                  502
+seek_p_ic_ic_ic                 503
+tell_i_p                        504
+tell_i_i_p                      505
+abs_i                           506
+abs_n                           507
+abs_i_i                         508
+abs_n_n                         509
+abs_p                           510
+abs_p_p                         511
+add_i_i                         512
+add_i_ic                        513
+add_n_n                         514
+add_n_nc                        515
+add_p_p                         516
+add_p_i                         517
+add_p_ic                        518
+add_p_n                         519
+add_p_nc                        520
+add_i_i_i                       521
+add_i_ic_i                      522
+add_i_i_ic                      523
+add_n_n_n                       524
+add_n_nc_n                      525
+add_n_n_nc                      526
+add_p_p_p                       527
+add_p_p_i                       528
+add_p_p_ic                      529
+add_p_p_n                       530
+add_p_p_nc                      531
+cmod_i_i_i                      532
+cmod_i_ic_i                     533
+cmod_i_i_ic                     534
+cmod_p_p_i                      535
+cmod_p_p_ic                     536
+cmod_p_p_p                      537
+cmod_n_n_n                      538
+cmod_n_nc_n                     539
+cmod_n_n_nc                     540
+cmod_p_p_n                      541
+cmod_p_p_nc                     542
+dec_i                           543
+dec_n                           544
+dec_p                           545
+div_i_i                         546
+div_i_ic                        547
+div_n_n                         548
+div_n_nc                        549
+div_p_p                         550
+div_p_i                         551
+div_p_ic                        552
+div_p_n                         553
+div_p_nc                        554
+div_i_i_i                       555
+div_i_ic_i                      556
+div_i_i_ic                      557
+div_i_ic_ic                     558
+div_n_n_n                       559
+div_n_nc_n                      560
+div_n_n_nc                      561
+div_n_nc_nc                     562
+div_p_p_p                       563
+div_p_p_i                       564
+div_p_p_ic                      565
+div_p_p_n                       566
+div_p_p_nc                      567
+fdiv_i_i                        568
+fdiv_i_ic                       569
+fdiv_n_n                        570
+fdiv_n_nc                       571
+fdiv_p_p                        572
+fdiv_p_i                        573
+fdiv_p_ic                       574
+fdiv_p_n                        575
+fdiv_p_nc                       576
+fdiv_i_i_i                      577
+fdiv_i_ic_i                     578
+fdiv_i_i_ic                     579
+fdiv_n_n_n                      580
+fdiv_n_nc_n                     581
+fdiv_n_n_nc                     582
+fdiv_p_p_p                      583
+fdiv_p_p_i                      584
+fdiv_p_p_ic                     585
+fdiv_p_p_n                      586
+fdiv_p_p_nc                     587
+ceil_n                          588
+ceil_i_n                        589
+ceil_n_n                        590
+floor_n                         591
+floor_i_n                       592
+floor_n_n                       593
+inc_i                           594
+inc_n                           595
+inc_p                           596
+mod_i_i                         597
+mod_i_ic                        598
+mod_n_n                         599
+mod_n_nc                        600
+mod_p_p                         601
+mod_p_i                         602
+mod_p_ic                        603
+mod_p_n                         604
+mod_p_nc                        605
+mod_i_i_i                       606
+mod_i_ic_i                      607
+mod_i_i_ic                      608
+mod_n_n_n                       609
+mod_n_nc_n                      610
+mod_n_n_nc                      611
+mod_p_p_p                       612
+mod_p_p_i                       613
+mod_p_p_ic                      614
+mod_p_p_n                       615
+mod_p_p_nc                      616
+mul_i_i                         617
+mul_i_ic                        618
+mul_n_n                         619
+mul_n_nc                        620
+mul_p_p                         621
+mul_p_i                         622
+mul_p_ic                        623
+mul_p_n                         624
+mul_p_nc                        625
+mul_i_i_i                       626
+mul_i_ic_i                      627
+mul_i_i_ic                      628
+mul_n_n_n                       629
+mul_n_nc_n                      630
+mul_n_n_nc                      631
+mul_p_p_p                       632
+mul_p_p_i                       633
+mul_p_p_ic                      634
+mul_p_p_n                       635
+mul_p_p_nc                      636
+neg_i                           637
+neg_n                           638
+neg_p                           639
+neg_i_i                         640
+neg_n_n                         641
+neg_p_p                         642
+pow_n_n_n                       643
+pow_n_nc_n                      644
+pow_n_n_nc                      645
+pow_p_p_p                       646
+pow_p_p_i                       647
+pow_p_p_ic                      648
+pow_p_p_n                       649
+pow_p_p_nc                      650
+pow_n_n_i                       651
+pow_n_nc_i                      652
+pow_n_n_ic                      653
+pow_n_nc_ic                     654
+sub_i_i                         655
+sub_i_ic                        656
+sub_n_n                         657
+sub_n_nc                        658
+sub_p_p                         659
+sub_p_i                         660
+sub_p_ic                        661
+sub_p_n                         662
+sub_p_nc                        663
+sub_i_i_i                       664
+sub_i_ic_i                      665
+sub_i_i_ic                      666
+sub_n_n_n                       667
+sub_n_nc_n                      668
+sub_n_n_nc                      669
+sub_p_p_p                       670
+sub_p_p_i                       671
+sub_p_p_ic                      672
+sub_p_p_n                       673
+sub_p_p_nc                      674
+sqrt_n_n                        675
+acos_n_n                        676
+asec_n_n                        677
+asin_n_n                        678
+atan_n_n                        679
+atan_n_n_n                      680
+atan_n_nc_n                     681
+atan_n_n_nc                     682
+cos_n_n                         683
+cosh_n_n                        684
+exp_n_n                         685
+ln_n_n                          686
+log10_n_n                       687
+log2_n_n                        688
+sec_n_n                         689
+sech_n_n                        690
+sin_n_n                         691
+sinh_n_n                        692
+tan_n_n                         693
+tanh_n_n                        694
+gcd_i_i_i                       695
+gcd_i_ic_i                      696
+gcd_i_i_ic                      697
+lcm_i_i_i                       698
+lcm_i_ic_i                      699
+lcm_i_i_ic                      700
+fact_i_i                        701
+fact_n_i                        702
+callmethodcc_p_s                703
+callmethodcc_p_sc               704
+callmethodcc_p_p                705
+callmethod_p_s_p                706
+callmethod_p_sc_p               707
+callmethod_p_p_p                708
+tailcallmethod_p_s              709
+tailcallmethod_p_sc             710
+tailcallmethod_p_p              711
+addmethod_p_s_p                 712
+addmethod_p_sc_p                713
+can_i_p_s                       714
+can_i_p_sc                      715
+does_i_p_s                      716
+does_i_p_sc                     717
+does_i_p_p                      718
+does_i_p_pc                     719
+isa_i_p_s                       720
+isa_i_p_sc                      721
+isa_i_p_p                       722
+isa_i_p_pc                      723
+newclass_p_s                    724
+newclass_p_sc                   725
+newclass_p_p                    726
+newclass_p_pc                   727
+subclass_p_p                    728
+subclass_p_pc                   729
+subclass_p_p_s                  730
+subclass_p_pc_s                 731
+subclass_p_p_sc                 732
+subclass_p_pc_sc                733
+subclass_p_p_p                  734
+subclass_p_pc_p                 735
+subclass_p_p_pc                 736
+subclass_p_pc_pc                737
+subclass_p_s                    738
+subclass_p_sc                   739
+subclass_p_s_s                  740
+subclass_p_sc_s                 741
+subclass_p_s_sc                 742
+subclass_p_sc_sc                743
+subclass_p_s_p                  744
+subclass_p_sc_p                 745
+subclass_p_s_pc                 746
+subclass_p_sc_pc                747
+get_class_p_s                   748
+get_class_p_sc                  749
+get_class_p_p                   750
+get_class_p_pc                  751
+class_p_p                       752
+addparent_p_p                   753
+removeparent_p_p                754
+addrole_p_p                     755
+addattribute_p_s                756
+addattribute_p_sc               757
+removeattribute_p_s             758
+removeattribute_p_sc            759
+getattribute_p_p_s              760
+getattribute_p_p_sc             761
+getattribute_p_p_p_s            762
+getattribute_p_p_pc_s           763
+getattribute_p_p_p_sc           764
+getattribute_p_p_pc_sc          765
+setattribute_p_s_p              766
+setattribute_p_sc_p             767
+setattribute_p_p_s_p            768
+setattribute_p_pc_s_p           769
+setattribute_p_p_sc_p           770
+setattribute_p_pc_sc_p          771
+inspect_p_p                     772
+inspect_p_pc                    773
+inspect_p_p_s                   774
+inspect_p_pc_s                  775
+inspect_p_p_sc                  776
+inspect_p_pc_sc                 777
+new_p_s                         778
+new_p_sc                        779
+new_p_s_p                       780
+new_p_sc_p                      781
+new_p_s_pc                      782
+new_p_sc_pc                     783
+new_p_p                         784
+new_p_pc                        785
+new_p_p_p                       786
+new_p_pc_p                      787
+new_p_p_pc                      788
+new_p_pc_pc                     789
+root_new_p_p                    790
+root_new_p_pc                   791
+root_new_p_p_p                  792
+root_new_p_pc_p                 793
+root_new_p_p_pc                 794
+root_new_p_pc_pc                795
+typeof_s_p                      796
+typeof_p_p                      797
+get_repr_s_p                    798
+find_method_p_p_s               799
+find_method_p_p_sc              800
+defined_i_p                     801
+defined_i_p_ki                  802
+defined_i_p_kic                 803
+defined_i_p_k                   804
+defined_i_p_kc                  805
+exists_i_p_ki                   806
+exists_i_p_kic                  807
+exists_i_p_k                    808
+exists_i_p_kc                   809
+delete_p_k                      810
+delete_p_kc                     811
+delete_p_ki                     812
+delete_p_kic                    813
+elements_i_p                    814
+push_p_i                        815
+push_p_ic                       816
+push_p_n                        817
+push_p_nc                       818
+push_p_s                        819
+push_p_sc                       820
+push_p_p                        821
+pop_i_p                         822
+pop_n_p                         823
+pop_s_p                         824
+pop_p_p                         825
+unshift_p_i                     826
+unshift_p_ic                    827
+unshift_p_n                     828
+unshift_p_nc                    829
+unshift_p_s                     830
+unshift_p_sc                    831
+unshift_p_p                     832
+shift_i_p                       833
+shift_n_p                       834
+shift_s_p                       835
+shift_p_p                       836
+splice_p_p_i_i                  837
+splice_p_p_ic_i                 838
+splice_p_p_i_ic                 839
+splice_p_p_ic_ic                840
+setprop_p_s_p                   841
+setprop_p_sc_p                  842
+getprop_p_s_p                   843
+getprop_p_sc_p                  844
+delprop_p_s                     845
+delprop_p_sc                    846
+prophash_p_p                    847
+freeze_s_p                      848
+thaw_p_s                        849
+thaw_p_sc                       850
+add_multi_s_s_p                 851
+add_multi_sc_s_p                852
+add_multi_s_sc_p                853
+add_multi_sc_sc_p               854
+find_multi_p_s_s                855
+find_multi_p_sc_s               856
+find_multi_p_s_sc               857
+find_multi_p_sc_sc              858
+register_p                      859
+unregister_p                    860
+box_p_i                         861
+box_p_ic                        862
+box_p_n                         863
+box_p_nc                        864
+box_p_s                         865
+box_p_sc                        866
+iter_p_p                        867
+morph_p_p                       868
+morph_p_pc                      869
+clone_s_s                       870
+clone_s_sc                      871
+exchange_i_i                    872
+exchange_p_p                    873
+exchange_n_n                    874
+exchange_s_s                    875
+set_i_i                         876
+set_i_ic                        877
+set_i_n                         878
+set_i_nc                        879
+set_i_s                         880
+set_i_sc                        881
+set_n_n                         882
+set_n_nc                        883
+set_n_i                         884
+set_n_ic                        885
+set_n_s                         886
+set_n_sc                        887
+set_n_p                         888
+set_s_p                         889
+set_s_s                         890
+set_s_sc                        891
+set_s_i                         892
+set_s_ic                        893
+set_s_n                         894
+set_s_nc                        895
+set_p_pc                        896
+set_p_p                         897
+set_p_i                         898
+set_p_ic                        899
+set_p_n                         900
+set_p_nc                        901
+set_p_s                         902
+set_p_sc                        903
+set_i_p                         904
+assign_p_p                      905
+assign_p_i                      906
+assign_p_ic                     907
+assign_p_n                      908
+assign_p_nc                     909
+assign_p_s                      910
+assign_p_sc                     911
+assign_s_s                      912
+assign_s_sc                     913
+setref_p_p                      914
+deref_p_p                       915
+setp_ind_i_p                    916
+setp_ind_ic_p                   917
+setn_ind_i_n                    918
+setn_ind_ic_n                   919
+setn_ind_i_nc                   920
+setn_ind_ic_nc                  921
+sets_ind_i_s                    922
+sets_ind_ic_s                   923
+sets_ind_i_sc                   924
+sets_ind_ic_sc                  925
+seti_ind_i_i                    926
+seti_ind_ic_i                   927
+seti_ind_i_ic                   928
+seti_ind_ic_ic                  929
+set_p_ki_i                      930
+set_p_kic_i                     931
+set_p_ki_ic                     932
+set_p_kic_ic                    933
+set_p_ki_n                      934
+set_p_kic_n                     935
+set_p_ki_nc                     936
+set_p_kic_nc                    937
+set_p_ki_s                      938
+set_p_kic_s                     939
+set_p_ki_sc                     940
+set_p_kic_sc                    941
+set_p_ki_p                      942
+set_p_kic_p                     943
+set_i_p_ki                      944
+set_i_p_kic                     945
+set_n_p_ki                      946
+set_n_p_kic                     947
+set_s_p_ki                      948
+set_s_p_kic                     949
+set_p_p_ki                      950
+set_p_p_kic                     951
+set_p_k_i                       952
+set_p_kc_i                      953
+set_p_k_ic                      954
+set_p_kc_ic                     955
+set_p_k_n                       956
+set_p_kc_n                      957
+set_p_k_nc                      958
+set_p_kc_nc                     959
+set_p_k_s                       960
+set_p_kc_s                      961
+set_p_k_sc                      962
+set_p_kc_sc                     963
+set_p_k_p                       964
+set_p_kc_p                      965
+set_i_p_k                       966
+set_i_p_kc                      967
+set_n_p_k                       968
+set_n_p_kc                      969
+set_s_p_k                       970
+set_s_p_kc                      971
+set_p_p_k                       972
+set_p_p_kc                      973
+clone_p_p                       974
+clone_p_p_p                     975
+clone_p_p_pc                    976
+copy_p_p                        977
+null_s                          978
+null_i                          979
+null_p                          980
+null_n                          981
+cleari                          982
+clearn                          983
+clears                          984
+clearp                          985
+ord_i_s                         986
+ord_i_sc                        987
+ord_i_s_i                       988
+ord_i_sc_i                      989
+ord_i_s_ic                      990
+ord_i_sc_ic                     991
+chr_s_i                         992
+chr_s_ic                        993
+chopn_s_s_i                     994
+chopn_s_sc_i                    995
+chopn_s_s_ic                    996
+chopn_s_sc_ic                   997
+concat_s_s                      998
+concat_s_sc                     999
+concat_p_p                     1000
+concat_p_s                     1001
+concat_p_sc                    1002
+concat_s_s_s                   1003
+concat_s_sc_s                  1004
+concat_s_s_sc                  1005
+concat_p_p_s                   1006
+concat_p_p_sc                  1007
+concat_p_p_p                   1008
+repeat_s_s_i                   1009
+repeat_s_sc_i                  1010
+repeat_s_s_ic                  1011
+repeat_s_sc_ic                 1012
+repeat_p_p_i                   1013
+repeat_p_p_ic                  1014
+repeat_p_p_p                   1015
+repeat_p_i                     1016
+repeat_p_ic                    1017
+repeat_p_p                     1018
+length_i_s                     1019
+length_i_sc                    1020
+bytelength_i_s                 1021
+bytelength_i_sc                1022
+pin_s                          1023
+unpin_s                        1024
+substr_s_s_i                   1025
+substr_s_sc_i                  1026
+substr_s_s_ic                  1027
+substr_s_sc_ic                 1028
+substr_s_s_i_i                 1029
+substr_s_sc_i_i                1030
+substr_s_s_ic_i                1031
+substr_s_sc_ic_i               1032
+substr_s_s_i_ic                1033
+substr_s_sc_i_ic               1034
+substr_s_s_ic_ic               1035
+substr_s_sc_ic_ic              1036
+substr_s_p_i_i                 1037
+substr_s_p_ic_i                1038
+substr_s_p_i_ic                1039
+substr_s_p_ic_ic               1040
+replace_s_s_i_i_s              1041
+replace_s_sc_i_i_s             1042
+replace_s_s_ic_i_s             1043
+replace_s_sc_ic_i_s            1044
+replace_s_s_i_ic_s             1045
+replace_s_sc_i_ic_s            1046
+replace_s_s_ic_ic_s            1047
+replace_s_sc_ic_ic_s           1048
+replace_s_s_i_i_sc             1049
+replace_s_sc_i_i_sc            1050
+replace_s_s_ic_i_sc            1051
+replace_s_sc_ic_i_sc           1052
+replace_s_s_i_ic_sc            1053
+replace_s_sc_i_ic_sc           1054
+replace_s_s_ic_ic_sc           1055
+replace_s_sc_ic_ic_sc          1056
+index_i_s_s                    1057
+index_i_sc_s                   1058
+index_i_s_sc                   1059
+index_i_sc_sc                  1060
+index_i_s_s_i                  1061
+index_i_sc_s_i                 1062
+index_i_s_sc_i                 1063
+index_i_sc_sc_i                1064
+index_i_s_s_ic                 1065
+index_i_sc_s_ic                1066
+index_i_s_sc_ic                1067
+index_i_sc_sc_ic               1068
+sprintf_s_s_p                  1069
+sprintf_s_sc_p                 1070
+sprintf_p_p_p                  1071
+new_s                          1072
+new_s_i                        1073
+new_s_ic                       1074
+stringinfo_i_s_i               1075
+stringinfo_i_sc_i              1076
+stringinfo_i_s_ic              1077
+stringinfo_i_sc_ic             1078
+upcase_s_s                     1079
+upcase_s_sc                    1080
+downcase_s_s                   1081
+downcase_s_sc                  1082
+titlecase_s_s                  1083
+titlecase_s_sc                 1084
+join_s_s_p                     1085
+join_s_sc_p                    1086
+split_p_s_s                    1087
+split_p_sc_s                   1088
+split_p_s_sc                   1089
+split_p_sc_sc                  1090
+charset_i_s                    1091
+charset_i_sc                   1092
+charsetname_s_i                1093
+charsetname_s_ic               1094
+find_charset_i_s               1095
+find_charset_i_sc              1096
+trans_charset_s_s_i            1097
+trans_charset_s_sc_i           1098
+trans_charset_s_s_ic           1099
+trans_charset_s_sc_ic          1100
+encoding_i_s                   1101
+encoding_i_sc                  1102
+encodingname_s_i               1103
+encodingname_s_ic              1104
+find_encoding_i_s              1105
+find_encoding_i_sc             1106
+trans_encoding_s_s_i           1107
+trans_encoding_s_sc_i          1108
+trans_encoding_s_s_ic          1109
+trans_encoding_s_sc_ic         1110
+is_cclass_i_i_s_i              1111
+is_cclass_i_ic_s_i             1112
+is_cclass_i_i_sc_i             1113
+is_cclass_i_ic_sc_i            1114
+is_cclass_i_i_s_ic             1115
+is_cclass_i_ic_s_ic            1116
+is_cclass_i_i_sc_ic            1117
+is_cclass_i_ic_sc_ic           1118
+find_cclass_i_i_s_i_i          1119
+find_cclass_i_ic_s_i_i         1120
+find_cclass_i_i_sc_i_i         1121
+find_cclass_i_ic_sc_i_i        1122
+find_cclass_i_i_s_ic_i         1123
+find_cclass_i_ic_s_ic_i        1124
+find_cclass_i_i_sc_ic_i        1125
+find_cclass_i_ic_sc_ic_i       1126
+find_cclass_i_i_s_i_ic         1127
+find_cclass_i_ic_s_i_ic        1128
+find_cclass_i_i_sc_i_ic        1129
+find_cclass_i_ic_sc_i_ic       1130
+find_cclass_i_i_s_ic_ic        1131
+find_cclass_i_ic_s_ic_ic       1132
+find_cclass_i_i_sc_ic_ic       1133
+find_cclass_i_ic_sc_ic_ic      1134
+find_not_cclass_i_i_s_i_i      1135
+find_not_cclass_i_ic_s_i_i     1136
+find_not_cclass_i_i_sc_i_i     1137
+find_not_cclass_i_ic_sc_i_i    1138
+find_not_cclass_i_i_s_ic_i     1139
+find_not_cclass_i_ic_s_ic_i    1140
+find_not_cclass_i_i_sc_ic_i    1141
+find_not_cclass_i_ic_sc_ic_i   1142
+find_not_cclass_i_i_s_i_ic     1143
+find_not_cclass_i_ic_s_i_ic    1144
+find_not_cclass_i_i_sc_i_ic    1145
+find_not_cclass_i_ic_sc_i_ic   1146
+find_not_cclass_i_i_s_ic_ic    1147
+find_not_cclass_i_ic_s_ic_ic   1148
+find_not_cclass_i_i_sc_ic_ic   1149
+find_not_cclass_i_ic_sc_ic_ic  1150
+escape_s_s                     1151
+compose_s_s                    1152
+compose_s_sc                   1153
+spawnw_i_s                     1154
+spawnw_i_sc                    1155
+spawnw_i_p                     1156
+err_i                          1157
+err_s                          1158
+err_s_i                        1159
+err_s_ic                       1160
+time_i                         1161
+time_n                         1162
+gmtime_s_i                     1163
+gmtime_s_ic                    1164
+localtime_s_i                  1165
+localtime_s_ic                 1166
+decodetime_p_i                 1167
+decodetime_p_ic                1168
+decodelocaltime_p_i            1169
+decodelocaltime_p_ic           1170
+sysinfo_s_i                    1171
+sysinfo_s_ic                   1172
+sysinfo_i_i                    1173
+sysinfo_i_ic                   1174
+sleep_i                        1175
+sleep_ic                       1176
+sleep_n                        1177
+sleep_nc                       1178
+sizeof_i_i                     1179
+sizeof_i_ic                    1180
+store_lex_s_p                  1181
+store_lex_sc_p                 1182
+store_dynamic_lex_s_p          1183
+store_dynamic_lex_sc_p         1184
+find_lex_p_s                   1185
+find_lex_p_sc                  1186
+find_dynamic_lex_p_s           1187
+find_dynamic_lex_p_sc          1188
+find_caller_lex_p_s            1189
+find_caller_lex_p_sc           1190
+get_namespace_p                1191
+get_namespace_p_p              1192
+get_namespace_p_pc             1193
+get_hll_namespace_p            1194
+get_hll_namespace_p_p          1195
+get_hll_namespace_p_pc         1196
+get_root_namespace_p           1197
+get_root_namespace_p_p         1198
+get_root_namespace_p_pc        1199
+get_global_p_s                 1200
+get_global_p_sc                1201
+get_global_p_p_s               1202
+get_global_p_pc_s              1203
+get_global_p_p_sc              1204
+get_global_p_pc_sc             1205
+get_hll_global_p_s             1206
+get_hll_global_p_sc            1207
+get_hll_global_p_p_s           1208
+get_hll_global_p_pc_s          1209
+get_hll_global_p_p_sc          1210
+get_hll_global_p_pc_sc         1211
+get_root_global_p_s            1212
+get_root_global_p_sc           1213
+get_root_global_p_p_s          1214
+get_root_global_p_pc_s         1215
+get_root_global_p_p_sc         1216
+get_root_global_p_pc_sc        1217
+set_global_s_p                 1218
+set_global_sc_p                1219
+set_global_p_s_p               1220
+set_global_pc_s_p              1221
+set_global_p_sc_p              1222
+set_global_pc_sc_p             1223
+set_hll_global_s_p             1224
+set_hll_global_sc_p            1225
+set_hll_global_p_s_p           1226
+set_hll_global_pc_s_p          1227
+set_hll_global_p_sc_p          1228
+set_hll_global_pc_sc_p         1229
+set_root_global_s_p            1230
+set_root_global_sc_p           1231
+set_root_global_p_s_p          1232
+set_root_global_pc_s_p         1233
+set_root_global_p_sc_p         1234
+set_root_global_pc_sc_p        1235
+find_name_p_s                  1236
+find_name_p_sc                 1237
+find_sub_not_null_p_s          1238
+find_sub_not_null_p_sc         1239

Modified: branches/include_dynpmc_makefile/src/ops/string.ops
==============================================================================
--- branches/include_dynpmc_makefile/src/ops/string.ops	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/ops/string.ops	Wed Apr 28 19:17:12 2010	(r46116)
@@ -57,11 +57,6 @@
 }
 
 
-=item B<chopn>(inout STR, in INT)
-
-Remove n characters specified by integer $2 from the tail of string $1.
-If $2 is negative, cut the string after -$2 characters.
-
 =item B<chopn>(out STR, in STR, in INT)
 
 Remove n characters specified by integer $3 from the tail of string $2,
@@ -70,10 +65,6 @@
 
 =cut
 
-inline op chopn(inout STR, in INT) :base_core :deprecated {
-    $1 = Parrot_str_chopn(interp, $1, $2);
-}
-
 inline op chopn(out STR, in STR, in INT) :base_core {
     $1 = Parrot_str_chopn(interp, $2, $3);
 }
@@ -240,19 +231,15 @@
 
 =item B<substr>(out STR, in STR, in INT, in INT)
 
-=item B<substr>(out STR, inout STR, in INT, in INT, in STR)
-
-=item B<substr>(inout STR, in INT, in INT, in STR)
-
-=item B<replace>(out STR, in STR, in INT, in INT, in STR)
-
 =item B<substr>(out STR, invar PMC, in INT, in INT)
 
 Set $1 to the portion of $2 starting at (zero-based) character position
 $3 and having length $4. If no length ($4) is provided, it is equivalent to
-passing in the length of $2. This creates a COW copy of $2.
+passing in the length of $2.
+
+=item B<replace>(out STR, in STR, in INT, in INT, in STR)
 
-Optionally pass in string $5 for replacement. If the length of $5 is
+Replace part of $2 starting from $3 of length $4 with $5. If the length of $5 is
 different from the length specified in $4, then $2 will grow or shrink
 accordingly. If $3 is one character position larger than the length of
 $2, then $5 is appended to $2 (and the empty string is returned);
@@ -264,8 +251,7 @@
 the end of the string (ie an offset of -1 corresponds to the last
 character).
 
-The third form is optimized for replace only, ignoring the replaced
-substring and does not waste a register to do the string replace.
+New $1 string returned.
 
 =cut
 
@@ -278,15 +264,6 @@
     $1 = Parrot_str_substr(interp, $2, $3, $4);
 }
 
-inline op substr(out STR, inout STR, in INT, in INT, in STR) :base_core :deprecated {
-    $1 = Parrot_str_substr(interp, $2, $3, $4);
-    $2 = Parrot_str_replace(interp, $2, $3, $4, $5);
-}
-
-inline op substr(inout STR, in INT, in INT, in STR) :base_core :deprecated {
-    $1 = Parrot_str_replace(interp, $1, $2, $3, $4);
-}
-
 inline op substr(out STR, invar PMC, in INT, in INT) :base_core {
     $1 = VTABLE_substr_str(interp, $2, $3, $4);
 }
@@ -426,58 +403,32 @@
 
 Uppercase $2 and put the result in $1
 
-=item B<upcase>(inout STR)
-
-Uppercase $1 in place
-
 =cut
 
 inline op upcase(out STR, in STR) :base_core {
     $1 = Parrot_str_upcase(interp, $2);
 }
 
-inline op upcase(inout STR) :base_core :deprecated {
-    $1 = Parrot_str_upcase(interp, $1);
-}
-
-
 =item B<downcase>(out STR, in STR)
 
 Downcase $2 and put the result in $1
 
-=item B<downcase>(inout STR)
-
-Downcase $1 in place
-
 =cut
 
 inline op downcase(out STR, in STR) :base_core {
     $1 = Parrot_str_downcase(interp, $2);
 }
 
-inline op downcase(inout STR) :base_core :deprecated {
-    $1 = Parrot_str_downcase(interp, $1);
-}
-
-
 =item B<titlecase>(out STR, in STR)
 
 Titlecase $2 and put the result in $1
 
-=item B<titlecase>(inout STR)
-
-Titlecase $1 in place
-
 =cut
 
 inline op titlecase(out STR, in STR) :base_core {
     $1 = Parrot_str_titlecase(interp, $2);
 }
 
-inline op titlecase(inout STR) :base_core :deprecated {
-    $1 = Parrot_str_titlecase(interp, $1);
-}
-
 
 =item B<join>(out STR, in STR, invar PMC)
 
@@ -519,10 +470,6 @@
 Return the charset number of the charset named $2. If the charset doesn't
 exist, throw an exception.
 
-=item B<trans_charset>(inout STR, in INT)
-
-Change the string to have the specified charset.
-
 =item B<trans_charset>(out STR, in STR, in INT)
 
 Create a string $1 from $2 with the specified charset.
@@ -550,10 +497,6 @@
     $1 = n;
 }
 
-op trans_charset(inout STR, in INT) :deprecated {
-    $1 = Parrot_str_change_charset(interp, $1, $2);
-}
-
 op trans_charset(out STR, in STR, in INT) {
     $1 = Parrot_str_change_charset(interp, $2, $3);
 }
@@ -573,10 +516,6 @@
 Return the encoding number of the encoding named $2. If the encoding doesn't
 exist, throw an exception.
 
-=item B<trans_encoding>(inout STR, in INT)
-
-Change the string to have the specified encoding.
-
 =item B<trans_encoding>(out STR, in STR, in INT)
 
 Create a string $1 from $2 with the specified encoding.
@@ -604,10 +543,6 @@
     $1 = n;
 }
 
-op trans_encoding(inout STR, in INT) :deprecated {
-    $1 = Parrot_str_change_encoding(interp, $1, $2);
-}
-
 op trans_encoding(out STR, in STR, in INT) {
     $1 = Parrot_str_change_encoding(interp, $2, $3);
 }

Modified: branches/include_dynpmc_makefile/src/packdump.c
==============================================================================
--- branches/include_dynpmc_makefile/src/packdump.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/packdump.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -378,18 +378,18 @@
 
     for (i = 0; i < ft->fixup_count; i++) {
         Parrot_io_printf(interp, "\t#%d\n", (int) i);
-        switch (ft->fixups[i]->type) {
+        switch (ft->fixups[i].type) {
           case enum_fixup_label:
           case enum_fixup_sub:
             Parrot_io_printf(interp,
                         "\ttype => %d offs => %8d name => '%s',\n",
-                        (int)ft->fixups[i]->type,
-                        (int)ft->fixups[i]->offset,
-                        ft->fixups[i]->name);
+                        (int)ft->fixups[i].type,
+                        (int)ft->fixups[i].offset,
+                        ft->fixups[i].name);
             break;
           default:
             Parrot_io_printf(interp, "\ttype => %d ???,\n",
-                        (int) ft->fixups[i]->type);
+                        (int) ft->fixups[i].type);
             break;
         }
     }

Modified: branches/include_dynpmc_makefile/src/packfile.c
==============================================================================
--- branches/include_dynpmc_makefile/src/packfile.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/packfile.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -684,12 +684,6 @@
     Parrot_runcore_t *old_core = interp->run_core;
     PMC              *retval   = PMCNULL;
 
-    /* turn off JIT and prederef - both would act on the whole
-     * PackFile which probably isn't worth the effort */
-    if (PARROT_RUNCORE_JIT_OPS_TEST(interp->run_core)
-    ||  PARROT_RUNCORE_PREDEREF_OPS_TEST(interp->run_core))
-        Parrot_runcore_switch(interp, CONST_STRING(interp, "fast"));
-
     Parrot_pcc_set_constants(interp, CURRENT_CONTEXT(interp),
             interp->code->const_table->constants);
 
@@ -925,13 +919,13 @@
     TRACE_PRINTF(("PackFile: do_sub_pragmas (action=%d)\n", action));
 
     for (i = 0; i < ft->fixup_count; i++) {
-        switch (ft->fixups[i]->type) {
+        switch (ft->fixups[i].type) {
             case enum_fixup_sub:
             {
                 /* offset is an index into const_table holding the Sub PMC */
                 PMC           *sub_pmc;
                 Parrot_Sub_attributes    *sub;
-                const opcode_t ci = ft->fixups[i]->offset;
+                const opcode_t ci = ft->fixups[i].offset;
 
                 if (ci < 0 || ci >= ct->const_count)
                     Parrot_ex_throw_from_c_args(interp, NULL, 1,
@@ -949,7 +943,7 @@
 
                     /* replace Sub PMC with computation results */
                     if (action == PBC_IMMEDIATE && !PMC_IS_NULL(result)) {
-                        ft->fixups[i]->type      = enum_fixup_none;
+                        ft->fixups[i].type      = enum_fixup_none;
                         ct->constants[ci]->u.key = result;
                     }
                 }
@@ -2581,16 +2575,6 @@
     ASSERT_ARGS(byte_code_destroy)
     PackFile_ByteCode * const byte_code = (PackFile_ByteCode *)self;
 
-    if (byte_code->prederef.code) {
-        Parrot_free_memalign(byte_code->prederef.code);
-        byte_code->prederef.code = NULL;
-
-        if (byte_code->prederef.branches) {
-            mem_gc_free(interp, byte_code->prederef.branches);
-            byte_code->prederef.branches = NULL;
-        }
-    }
-
     byte_code->fixups      = NULL;
     byte_code->const_table = NULL;
     byte_code->debugs      = NULL;
@@ -2641,11 +2625,6 @@
 {
     ASSERT_ARGS(pf_debug_destroy)
     PackFile_Debug * const debug = (PackFile_Debug *) self;
-    int i;
-
-    /* Free each mapping. */
-    for (i = 0; i < debug->num_mappings; i++)
-        mem_gc_free(interp, debug->mappings[i]);
 
     /* Free mappings pointer array. */
     mem_gc_free(interp, debug->mappings);
@@ -2729,8 +2708,8 @@
     /* Now store each mapping. */
     for (i = 0; i < n; i++) {
         /* Bytecode offset and filename. */
-        *cursor++ = debug->mappings[i]->offset;
-        *cursor++ = debug->mappings[i]->filename;
+        *cursor++ = debug->mappings[i].offset;
+        *cursor++ = debug->mappings[i].filename;
     }
 
     return cursor;
@@ -2770,15 +2749,13 @@
 
     /* Allocate space for mappings vector. */
     debug->mappings = mem_gc_allocate_n_zeroed_typed(interp,
-            debug->num_mappings + 1, PackFile_DebugFilenameMapping *);
+            debug->num_mappings, PackFile_DebugFilenameMapping);
 
     /* Read in each mapping. */
     for (i = 0; i < debug->num_mappings; i++) {
-        /* Allocate struct and get offset and filename type. */
-        debug->mappings[i]           =
-                mem_gc_allocate_zeroed_typed(interp, PackFile_DebugFilenameMapping);
-        debug->mappings[i]->offset   = PF_fetch_opcode(self->pf, &cursor);
-        debug->mappings[i]->filename = PF_fetch_opcode(self->pf, &cursor);
+        /* Get offset and filename type. */
+        debug->mappings[i].offset   = PF_fetch_opcode(self->pf, &cursor);
+        debug->mappings[i].filename = PF_fetch_opcode(self->pf, &cursor);
     }
 
     /* find seg e.g. CODE_DB => CODE and attach it */
@@ -2823,9 +2800,9 @@
     for (i = 0; i < debug->num_mappings; i++) {
         Parrot_io_printf(interp, "    #%d\n    [\n", i);
         Parrot_io_printf(interp, "        OFFSET => %d,\n",
-                   debug->mappings[i]->offset);
+                   debug->mappings[i].offset);
         Parrot_io_printf(interp, "        FILENAME => %Ss\n",
-                PF_CONST(debug->code, debug->mappings[i]->filename)->u.string);
+                PF_CONST(debug->code, debug->mappings[i].filename)->u.string);
         Parrot_io_printf(interp, "    ],\n");
     }
 
@@ -2908,7 +2885,7 @@
 
     /* If the previous mapping has the same filename, don't record it. */
     if (debug->num_mappings) {
-        prev_filename_n = debug->mappings[debug->num_mappings-1]->filename;
+        prev_filename_n = debug->mappings[debug->num_mappings-1].filename;
         filename_pstr = Parrot_str_new(interp, filename, 0);
         if (ct->constants[prev_filename_n]->type == PFC_STRING &&
                 Parrot_str_equal(interp, filename_pstr,
@@ -2920,18 +2897,18 @@
     /* Allocate space for the extra entry. */
     debug->mappings = mem_gc_realloc_n_typed(interp,
             debug->mappings, debug->num_mappings + 1,
-            PackFile_DebugFilenameMapping *);
+            PackFile_DebugFilenameMapping);
 
     /* Can it just go on the end? */
     if (debug->num_mappings == 0
-    ||  offset              >= debug->mappings[debug->num_mappings - 1]->offset)
+    ||  offset              >= debug->mappings[debug->num_mappings - 1].offset)
         insert_pos = debug->num_mappings;
     else {
         /* Find the right place and shift stuff that's after it. */
         int i;
 
         for (i = 0; i < debug->num_mappings; i++) {
-            if (debug->mappings[i]->offset > offset) {
+            if (debug->mappings[i].offset > offset) {
                 insert_pos = i;
                 memmove(debug->mappings + i + 1, debug->mappings + i,
                     debug->num_mappings - i);
@@ -2943,14 +2920,13 @@
     /* Need to put filename in constants table. */
     {
         /* Set up new entry and insert it. */
-        PackFile_DebugFilenameMapping *mapping =
-                mem_gc_allocate_zeroed_typed(interp, PackFile_DebugFilenameMapping);
+        PackFile_DebugFilenameMapping *mapping = debug->mappings + insert_pos;
         STRING *namestr = Parrot_str_new_init(interp, filename, strlen(filename),
                 PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, 0);
         size_t count = ct->const_count;
         size_t i;
 
-        mapping->offset       = offset;
+        mapping->offset = offset;
 
         /* Check if there is already a constant with this filename */
         for (i= 0; i < count; ++i) {
@@ -2978,8 +2954,7 @@
         }
 
         /* Set the mapped value */
-        mapping->filename     = count;
-        debug->mappings[insert_pos] = mapping;
+        mapping->filename = count;
         debug->num_mappings         = debug->num_mappings + 1;
     }
 }
@@ -3012,10 +2987,10 @@
         /* If this is the last mapping or the current position is
            between this mapping and the next one, return a filename. */
        if (i + 1                          == debug->num_mappings
-       || (debug->mappings[i]->offset     <= pc
-       &&  debug->mappings[i + 1]->offset >  pc))
+       || (debug->mappings[i].offset     <= pc
+       &&  debug->mappings[i + 1].offset >  pc))
             return PF_CONST(debug->code,
-                    debug->mappings[i]->filename)->u.string;
+                    debug->mappings[i].filename)->u.string;
     }
 
     /* Otherwise, no mappings == no filename. */
@@ -3099,10 +3074,6 @@
                                ? find_constants(interp, new_cs->const_table)
                                : new_cs->const_table->constants);
 
-    /* new_cs->const_table->constants; */
-    Parrot_pcc_set_pred_offset(interp, CURRENT_CONTEXT(interp),
-        new_cs->base.data - (opcode_t*) new_cs->prederef.code);
-
     if (really)
         prepare_for_run(interp);
 
@@ -3287,26 +3258,20 @@
 PackFile_FixupTable_clear(PARROT_INTERP, ARGMOD(PackFile_FixupTable *self))
 {
     ASSERT_ARGS(PackFile_FixupTable_clear)
-    opcode_t i;
 
     if (!self) {
         Parrot_io_eprintf(interp, "PackFile_FixupTable_clear: self == NULL!\n");
         return;
     }
 
-    for (i = 0; i < self->fixup_count; i++) {
-        mem_gc_free(interp, self->fixups[i]->name);
-        self->fixups[i]->name = NULL;
-
-        mem_gc_free(interp, self->fixups[i]);
-        self->fixups[i] = NULL;
-    }
-
     if (self->fixup_count) {
+        opcode_t i;
+        for (i = 0; i < self->fixup_count; i++) {
+            mem_gc_free(interp, self->fixups[i].name);
+            self->fixups[i].name = NULL;
+        }
         mem_gc_free(interp, self->fixups);
-        self->fixups = NULL;
     }
-
     self->fixups      = NULL;
     self->fixup_count = 0;
 
@@ -3354,10 +3319,10 @@
     for (i = 0; i < ft->fixup_count; i++) {
         /* fixup_entry type */
         size++;
-        switch (ft->fixups[i]->type) {
+        switch (ft->fixups[i].type) {
           case enum_fixup_label:
           case enum_fixup_sub:
-            size += PF_size_cstring(ft->fixups[i]->name);
+            size += PF_size_cstring(ft->fixups[i].name);
             size ++; /* offset */
             break;
           case enum_fixup_none:
@@ -3395,12 +3360,12 @@
     *cursor++ = ft->fixup_count;
 
     for (i = 0; i < ft->fixup_count; i++) {
-        *cursor++ = (opcode_t) ft->fixups[i]->type;
-        switch (ft->fixups[i]->type) {
+        *cursor++ = (opcode_t) ft->fixups[i].type;
+        switch (ft->fixups[i].type) {
           case enum_fixup_label:
           case enum_fixup_sub:
-            cursor    = PF_store_cstring(cursor, ft->fixups[i]->name);
-            *cursor++ = ft->fixups[i]->offset;
+            cursor    = PF_store_cstring(cursor, ft->fixups[i].name);
+            *cursor++ = ft->fixups[i].offset;
             break;
           case enum_fixup_none:
             break;
@@ -3477,7 +3442,7 @@
 
     if (self->fixup_count) {
         self->fixups = mem_gc_allocate_n_zeroed_typed(interp,
-            self->fixup_count, PackFile_FixupEntry *);
+            self->fixup_count, PackFile_FixupEntry);
 
         if (!self->fixups) {
             Parrot_io_eprintf(interp,
@@ -3489,9 +3454,7 @@
     }
 
     for (i = 0; i < self->fixup_count; i++) {
-        PackFile_FixupEntry * const entry           =
-                                    self->fixups[i] =
-                                    mem_gc_allocate_zeroed_typed(interp, PackFile_FixupEntry);
+        PackFile_FixupEntry * const entry = self->fixups + i;
 
         entry->type = PF_fetch_opcode(pf, &cursor);
 
@@ -3550,12 +3513,11 @@
 
     i = self->fixup_count++;
     self->fixups = mem_gc_realloc_n_typed_zeroed(interp,
-            self->fixups, self->fixup_count, i, PackFile_FixupEntry *);
+            self->fixups, self->fixup_count, i, PackFile_FixupEntry);
 
-    self->fixups[i]         = mem_gc_allocate_zeroed_typed(interp, PackFile_FixupEntry);
-    self->fixups[i]->type   = type;
-    self->fixups[i]->name   = mem_sys_strdup(label);
-    self->fixups[i]->offset = offs;
+    self->fixups[i].type   = type;
+    self->fixups[i].name   = mem_sys_strdup(label);
+    self->fixups[i].offset = offs;
 }
 
 
@@ -3582,9 +3544,9 @@
     ASSERT_ARGS(find_fixup)
     opcode_t i;
     for (i = 0; i < ft->fixup_count; i++) {
-        if ((INTVAL)((enum_fixup_t)ft->fixups[i]->type) == type
-        &&  STREQ(ft->fixups[i]->name, name)) {
-            return ft->fixups[i];
+        if ((INTVAL)((enum_fixup_t)ft->fixups[i].type) == type
+        &&  STREQ(ft->fixups[i].name, name)) {
+            return ft->fixups + i;
         }
     }
 
@@ -4829,6 +4791,12 @@
     PackFile * const pf = Parrot_pbc_read(interp, filename, 0);
 
     if (pf) {
+        /* An embedder can try to load_bytecode without having an initial_pf */
+        if (!interp->initial_pf) {
+            interp->initial_pf = PackFile_new_dummy(interp, CONST_STRING(interp, "dummy"));
+            /* PackFile_new_dummy must never fail */
+            PARROT_ASSERT(interp->initial_pf);
+        }
         PackFile_add_segment(interp, &interp->initial_pf->directory,
                 &pf->directory.base);
 

Modified: branches/include_dynpmc_makefile/src/packfile/pf_items.c
==============================================================================
--- branches/include_dynpmc_makefile/src/packfile/pf_items.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/packfile/pf_items.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1307,17 +1307,14 @@
 {
     ASSERT_ARGS(PF_fetch_string)
     STRING   *s;
-    opcode_t  flag_charset_word;
     UINTVAL   flags;
     UINTVAL   charset_nr;
     size_t    size;
-    const int wordsize = pf ? pf->header->wordsize : sizeof (opcode_t);
+    const int wordsize          = pf ? pf->header->wordsize : sizeof (opcode_t);
+    opcode_t  flag_charset_word = PF_fetch_opcode(pf, cursor);
 
-    flag_charset_word = PF_fetch_opcode(pf, cursor);
-
-    if (flag_charset_word == -1) {
+    if (flag_charset_word == -1)
         return STRINGNULL;
-    }
 
     /* decode flags and charset */
     flags         = (flag_charset_word & 0x1 ? PObj_constant_FLAG : 0) |

Modified: branches/include_dynpmc_makefile/src/pbc_merge.c
==============================================================================
--- branches/include_dynpmc_makefile/src/pbc_merge.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pbc_merge.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -474,8 +474,7 @@
 {
     ASSERT_ARGS(pbc_merge_fixups)
     PackFile_FixupTable  *fixup_seg;
-    PackFile_FixupEntry **fixups = mem_gc_allocate_typed(interp,
-            PackFile_FixupEntry *);
+    PackFile_FixupEntry  *fixups = NULL;
     opcode_t              cursor = 0;
     int                   i;
 
@@ -504,14 +503,14 @@
         /* Allocate space for these fixups, provided we have some. */
         if (in_seg->fixup_count > 0) {
             fixups = mem_gc_realloc_n_typed(interp, fixups,
-                    cursor + in_seg->fixup_count, PackFile_FixupEntry*);
+                    cursor + in_seg->fixup_count, PackFile_FixupEntry);
         }
 
         /* Loop over the fixups and copy them to the output PBC, correcting
            the offsets into the bytecode. */
         for (j = 0; j < in_seg->fixup_count; j++) {
             /* Get the entry and allocate space for copies. */
-            const PackFile_FixupEntry * const cur_entry = in_seg->fixups[j];
+            const PackFile_FixupEntry * const cur_entry = in_seg->fixups + j;
             PackFile_FixupEntry * const copy =
                 mem_gc_allocate_typed(interp, PackFile_FixupEntry);
             char * const name_copy = mem_gc_allocate_n_typed(interp,
@@ -536,7 +535,7 @@
             }
 
             /* Slot it into the list. */
-            fixups[cursor] = copy;
+            fixups[cursor] = *copy;
             cursor++;
         }
     }
@@ -566,8 +565,8 @@
     PackFile_Debug                 *debug_seg;
     opcode_t                       *lines    = mem_gc_allocate_typed(interp,
                                                 opcode_t);
-    PackFile_DebugFilenameMapping **mappings =
-        mem_gc_allocate_typed(interp, PackFile_DebugFilenameMapping *);
+    PackFile_DebugFilenameMapping *mappings =
+        mem_gc_allocate_typed(interp, PackFile_DebugFilenameMapping);
 
     opcode_t num_mappings = 0;
     opcode_t num_lines    = 0;
@@ -591,16 +590,14 @@
         /* Concatenate mappings. */
         mappings = mem_gc_realloc_n_typed(interp, mappings,
                 num_mappings + in_seg->num_mappings,
-                PackFile_DebugFilenameMapping*);
+                PackFile_DebugFilenameMapping);
 
         for (j = 0; j < in_seg->num_mappings; j++) {
-            PackFile_DebugFilenameMapping * const mapping =
-                mem_gc_allocate_typed(interp, PackFile_DebugFilenameMapping);
+            PackFile_DebugFilenameMapping *mapping = mappings + num_mappings + j;
 
-            STRUCT_COPY(mapping, in_seg->mappings[j]);
+            STRUCT_COPY_FROM_STRUCT(mapping, in_seg->mappings[j]);
             mapping->offset   += num_lines;
             mapping->filename += inputs[i]->const_start;
-            mappings[num_mappings + j] = mapping;
         }
 
         num_lines    += in_seg->base.size - 1;

Modified: branches/include_dynpmc_makefile/src/pmc/callcontext.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/callcontext.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/callcontext.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -434,10 +434,6 @@
     ATTR UINTVAL                trace_flags;
     ATTR UINTVAL                recursion_depth; /* Sub call recursion depth */
 
-    /* code->prederefed.code - code->base.data in opcodes
-     * to simplify conversion between code ptrs in e.g. invoke */
-    ATTR size_t pred_offset;
-
     /* Storage for arguments */
     ATTR struct Pcc_cell *positionals; /* array of positionals */
     ATTR INTVAL  num_positionals;      /* count of used positionals */
@@ -753,7 +749,7 @@
                     case STRINGCELL: type = enum_type_STRING;   break;
                     case PMCCELL:
                         type = PMC_IS_NULL(c[i].u.p)
-                             ? enum_type_PMC
+                             ? (INTVAL) enum_type_PMC
                              : VTABLE_type(interp, c[i].u.p);
                         break;
                     default:
@@ -933,10 +929,13 @@
 
     VTABLE void push_integer(INTVAL value) {
         Pcc_cell *cells;
-        INTVAL    num_pos;
+        INTVAL    num_pos, allocated_positionals;
 
         GET_ATTR_num_positionals(INTERP, SELF, num_pos);
-        ensure_positionals_storage(INTERP, SELF, num_pos + 1);
+        GET_ATTR_allocated_positionals(interp, SELF, allocated_positionals);
+
+        if (num_pos + 1 > allocated_positionals)
+            ensure_positionals_storage(INTERP, SELF, num_pos + 1);
 
         GET_ATTR_positionals(INTERP, SELF, cells);
         cells[num_pos].u.i      = value;
@@ -972,10 +971,13 @@
 
     VTABLE void push_pmc(PMC *value) {
         Pcc_cell *cells;
-        INTVAL    num_pos;
+        INTVAL    num_pos, allocated_positionals;
 
         GET_ATTR_num_positionals(INTERP, SELF, num_pos);
-        ensure_positionals_storage(INTERP, SELF, num_pos + 1);
+        GET_ATTR_allocated_positionals(interp, SELF, allocated_positionals);
+
+        if (num_pos + 1 > allocated_positionals)
+            ensure_positionals_storage(INTERP, SELF, num_pos + 1);
 
         GET_ATTR_positionals(INTERP, SELF, cells);
         cells[num_pos].u.p      = value;

Modified: branches/include_dynpmc_makefile/src/pmc/default.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/default.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/default.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -358,7 +358,7 @@
         else
             Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ILL_INHERIT,
                 "init_pmc() not implemented in class '%Ss'",
-                caller(interp, pmc));
+                caller(interp, SELF));
     }
 
 /*

Modified: branches/include_dynpmc_makefile/src/pmc/eval.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/eval.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/eval.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -74,13 +74,13 @@
         return;
 
     for (i = 0; i < ft->fixup_count; i++) {
-        const PackFile_FixupEntry * const e = ft->fixups[i];
+        PackFile_FixupEntry * const e = ft->fixups + i;
 
         if (e->type == enum_fixup_sub) {
             opcode_t  ci             = e->offset;
 
             ct->constants[ci]->u.key = NULL;
-            ft->fixups[i]->type      = 0;
+            e->type                  = 0;
         }
     }
 }
@@ -113,7 +113,7 @@
         return PMCNULL;
 
     for (i = n = 0; i < ft->fixup_count; i++) {
-        PackFile_FixupEntry *e = ft->fixups[i];
+        const PackFile_FixupEntry * const e = ft->fixups + i;
 
         if (e->type == enum_fixup_sub) {
             opcode_t ci = e->offset;
@@ -152,7 +152,7 @@
         return;
 
     for (i = 0; i < ft->fixup_count; i++) {
-        PackFile_FixupEntry *e = ft->fixups[i];
+        const PackFile_FixupEntry * const e = ft->fixups + i;
 
         if (e->type == enum_fixup_sub) {
             opcode_t  ci  = e->offset;
@@ -427,7 +427,7 @@
             return 0;
 
         for (i = n = 0; i < ft->fixup_count; i++) {
-            PackFile_FixupEntry *e = ft->fixups[i];
+            const PackFile_FixupEntry * const e = ft->fixups + i;
 
             if (e->type == enum_fixup_sub)
                 n++;

Modified: branches/include_dynpmc_makefile/src/pmc/exception.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/exception.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/exception.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -113,7 +113,7 @@
         INTVAL severity_val;
         STRING *message_val;
 
-        INTVAL ishash = VTABLE_isa(interp, values, CONST_STRING(interp, 'Hash'));
+        const INTVAL ishash = VTABLE_isa(interp, values, CONST_STRING(interp, 'Hash'));
 
         if (ishash) {
             STRING * const severity = CONST_STRING(interp, "severity");
@@ -205,7 +205,7 @@
 */
 
     VTABLE INTVAL get_integer() {
-        Parrot_Exception_attributes * const exception = PARROT_EXCEPTION(SELF);
+        const Parrot_Exception_attributes * const exception = PARROT_EXCEPTION(SELF);
         return exception->id;
     }
 
@@ -221,7 +221,7 @@
 */
 
     VTABLE STRING *get_string_keyed(PMC *key) {
-        STRING *name = VTABLE_get_string(INTERP, key);
+        STRING * const name = VTABLE_get_string(INTERP, key);
         STRING *message;
 
         if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "message"))) {
@@ -247,7 +247,7 @@
 */
 
     VTABLE INTVAL get_integer_keyed(PMC *key) {
-        STRING *name   = VTABLE_get_string(INTERP, key);
+        STRING * const name = VTABLE_get_string(INTERP, key);
         INTVAL  result = 0;
 
         if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
@@ -316,7 +316,7 @@
 */
 
     VTABLE PMC *get_pmc_keyed(PMC *key) {
-        STRING *s = VTABLE_get_string(INTERP, key);
+        STRING * const s = VTABLE_get_string(INTERP, key);
         return SELF.get_attr_str(s);
     }
 
@@ -376,7 +376,7 @@
 */
 
     VTABLE void set_string_keyed(PMC *key, STRING *value) {
-        STRING *name = VTABLE_get_string(INTERP, key);
+        STRING * const name = VTABLE_get_string(INTERP, key);
 
         if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "message"))) {
             SELF.set_string_native(value);
@@ -399,7 +399,7 @@
 */
 
     VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
-        STRING *name = VTABLE_get_string(INTERP, key);
+        STRING * const name = VTABLE_get_string(INTERP, key);
 
         if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
             SET_ATTR_type(interp, SELF, value);
@@ -461,7 +461,7 @@
 */
 
     VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
-        STRING *s = VTABLE_get_string(INTERP, key);
+        STRING * const s = VTABLE_get_string(INTERP, key);
         SELF.set_attr_str(s, value);
     }
 
@@ -492,7 +492,7 @@
 */
 
     VTABLE void *get_pointer() {
-        Parrot_Exception_attributes * const core_struct = PARROT_EXCEPTION(SELF);
+        const Parrot_Exception_attributes * const core_struct = PARROT_EXCEPTION(SELF);
         return core_struct->handler_ctx;
     }
 
@@ -604,23 +604,23 @@
     VTABLE void set_attr_str(STRING *name, PMC *value) {
 
         if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
-            INTVAL type = VTABLE_get_integer(interp, value);
+            const INTVAL type = VTABLE_get_integer(interp, value);
             SET_ATTR_type(interp, SELF, type);
         }
         else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "severity"))) {
-            INTVAL severity = VTABLE_get_integer(interp, value);
+            const INTVAL severity = VTABLE_get_integer(interp, value);
             SET_ATTR_severity(interp, SELF, severity);
         }
         else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "exit_code"))) {
-            INTVAL exit_code = VTABLE_get_integer(interp, value);
+            const INTVAL exit_code = VTABLE_get_integer(interp, value);
             SET_ATTR_exit_code(interp, SELF, exit_code);
         }
         else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handled"))) {
-            INTVAL handled = VTABLE_get_integer(interp, value);
+            const INTVAL handled = VTABLE_get_integer(interp, value);
             SET_ATTR_handled(interp, SELF, handled);
         }
         else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "message"))) {
-            STRING *message = VTABLE_get_string(interp, value);
+            STRING * const message = VTABLE_get_string(interp, value);
             SELF.set_string_native(message);
         }
         else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "payload"))) {
@@ -639,7 +639,7 @@
             /* Ensure it's a ret cont, and extract the from_ctx.
              * XXX TT #596 - when we have Context PMCs, just take and set that. */
             if (!PMC_IS_NULL(value) && VTABLE_isa(interp, value, CONST_STRING(interp, "Continuation"))) {
-                PMC *ctx = PMC_cont(value)->from_ctx;
+                PMC * const ctx = PMC_cont(value)->from_ctx;
                 if (!PMC_IS_NULL(ctx))
                     SET_ATTR_thrower(interp, SELF, ctx);
             }
@@ -704,7 +704,7 @@
         /* Get resume continuation, to find location we failed at. */
         GET_ATTR_resume(interp, SELF, resume);
         if (!PMC_IS_NULL(resume)) {
-            Parrot_Continuation_attributes *cont = PARROT_CONTINUATION(resume);
+            const Parrot_Continuation_attributes * const cont = PARROT_CONTINUATION(resume);
             if (cont->seg != NULL && cont->seg->annotations != NULL)
                 result = PackFile_Annotations_lookup(interp, cont->seg->annotations,
                         cont->address - cont->seg->base.data, name);
@@ -737,20 +737,17 @@
     METHOD backtrace() {
         PMC *result = PMCNULL;
         PMC *resume;
-        Parrot_Continuation_attributes    *cont;
 
         /* Get starting context, then loop over them. */
         GET_ATTR_resume(interp, SELF, resume);
         if (!PMC_IS_NULL(resume)) {
-            /* We have a resume continuation, so we can get the address from
-             * that. */
-            cont    = PARROT_CONTINUATION(resume);
+            /* We have a resume continuation, so we can get the address from that. */
+            const Parrot_Continuation_attributes * const cont = PARROT_CONTINUATION(resume);
             Parrot_pcc_invoke_method_from_c_args(INTERP, cont->to_ctx, CONST_STRING(interp, "backtrace"), "P->P", resume, &result);
         }
         else {
             PMC *cur_ctx;
             /* No return continuation. Assuming we're being called  */
-            cont = NULL;
             GET_ATTR_thrower(interp, SELF, cur_ctx);
             Parrot_pcc_invoke_method_from_c_args(INTERP, CURRENT_CONTEXT(INTERP), CONST_STRING(interp, "backtrace"), "->P", &result);
         }

Modified: branches/include_dynpmc_makefile/src/pmc/fixedfloatarray.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/fixedfloatarray.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/fixedfloatarray.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -80,24 +80,22 @@
 */
 
     VTABLE PMC *clone() {
-        INTVAL    size;
-        FLOATVAL *self_float_array, *dest_float_array;
-        size_t mem_size;
-        PMC   * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
+        FLOATVAL *self_float_array;
+        PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
         GET_ATTR_float_array(INTERP, SELF, self_float_array);
-
-        if (!self_float_array)
-            return dest;
-
-        GET_ATTR_size(INTERP, SELF, size);
-        SET_ATTR_size(INTERP, dest, size);
-        mem_size          = size * sizeof (FLOATVAL);
-
-        dest_float_array  = (FLOATVAL*)Parrot_gc_allocate_memory_chunk(INTERP, mem_size);
-        mem_sys_memcopy(dest_float_array, self_float_array, mem_size);
-        SET_ATTR_float_array(INTERP, dest, dest_float_array);
-        PObj_custom_destroy_SET(dest);
-
+        if (self_float_array) {
+            INTVAL size;
+            GET_ATTR_size(INTERP, SELF, size);
+            {
+                FLOATVAL * const dest_float_array = mem_gc_allocate_n_typed(INTERP,
+                        size, FLOATVAL);
+                mem_copy_n_typed(dest_float_array, self_float_array,
+                        size, FLOATVAL);
+                SET_ATTR_float_array(INTERP, dest, dest_float_array);
+            }
+            SET_ATTR_size(INTERP, dest, size);
+            PObj_custom_destroy_SET(dest);
+        }
         return dest;
     }
 

Modified: branches/include_dynpmc_makefile/src/pmc/fixedintegerarray.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/fixedintegerarray.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/fixedintegerarray.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -110,16 +110,16 @@
         GET_ATTR_int_array(INTERP, SELF, int_array);
 
         if (int_array) {
-            INTVAL      *dest_int_array;
-            INTVAL       size;
-
+            INTVAL size;
             GET_ATTR_size(INTERP, SELF, size);
-
-            dest_int_array = mem_gc_allocate_n_typed(INTERP, size, INTVAL);
+            {
+                INTVAL * const dest_int_array = mem_gc_allocate_n_typed(INTERP,
+                        size, INTVAL);
+                mem_copy_n_typed(dest_int_array, int_array,
+                        size, INTVAL);
+                SET_ATTR_int_array(INTERP, dest, dest_int_array);
+            }
             SET_ATTR_size(INTERP, dest, size);
-            SET_ATTR_int_array(INTERP, dest, dest_int_array);
-
-            mem_sys_memcopy(dest_int_array, int_array, size * sizeof (INTVAL));
             PObj_custom_destroy_SET(dest);
         }
 

Modified: branches/include_dynpmc_makefile/src/pmc/hash.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/hash.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/hash.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -541,7 +541,7 @@
     VTABLE FLOATVAL get_number_keyed(PMC *key) {
         PMC               *nextkey;
         PMC               *valpmc;
-        const Hash * const hash   = (Hash *)VTABLE_get_pointer(interp, pmc);
+        const Hash * const hash   = (Hash *)SELF.get_pointer();
         void       * const keystr = hash_key_from_pmc(INTERP, hash, key);
         HashBucket * const b      = parrot_hash_get_bucket(INTERP, hash, keystr);
 

Modified: branches/include_dynpmc_makefile/src/pmc/namespace.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/namespace.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/namespace.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -299,8 +299,9 @@
 */
 
     VTABLE void init() {
-        PARROT_NAMESPACE(SELF)->vtable = PMCNULL;
-        PARROT_NAMESPACE(SELF)->_class = PMCNULL;
+        PARROT_NAMESPACE(SELF)->vtable  = PMCNULL;
+        PARROT_NAMESPACE(SELF)->methods = PMCNULL;
+        PARROT_NAMESPACE(SELF)->_class  = PMCNULL;
         SELF.set_pointer(parrot_new_hash(INTERP));
         PObj_custom_mark_destroy_SETALL(SELF);
     }
@@ -651,6 +652,61 @@
 
 /*
 
+=item C<PMC *inspect_str(STRING *what)>
+
+Provides introspection of a specific piece of information about the
+namespace. The available information is:
+
+=over 8
+
+=item class
+
+The class object associated with the namespace, if any.
+
+=item methods
+
+A temporary cache of methods (destroyed when class object is created).
+Hash keyed on method name, value is an invokable PMC. Includes methods
+composed in from roles.
+
+=item vtable_overrides
+
+A temporary cache of vtable overrides (destroyed when class object is
+created). Hash keyed on vtable name, value is an invokable PMC.
+Includes vtable overrides composed in from roles.
+
+=back
+
+=cut
+
+*/
+
+    VTABLE PMC *inspect_str(STRING *what) {
+        const Parrot_NameSpace_attributes * const nsinfo = PARROT_NAMESPACE(SELF);
+        PMC *found;
+
+        if (Parrot_str_equal(interp, what, CONST_STRING(interp, "methods"))) {
+            found = nsinfo->methods;
+        }
+        else if (Parrot_str_equal(interp, what, CONST_STRING(interp, "vtable_overrides"))) {
+            found = nsinfo->vtable;
+        }
+        else if (Parrot_str_equal(interp, what, CONST_STRING(interp, "class"))) {
+            found = nsinfo->_class;
+        }
+        else
+            Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+                "Unknown introspection value '%S'", what);
+
+        /* return found value */
+        if (PMC_IS_NULL(found))
+            return PMCNULL;
+
+        return found;
+    }
+
+/*
+
 =back
 
 =head2 Methods

Modified: branches/include_dynpmc_makefile/src/pmc/object.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/object.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/object.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -496,7 +496,7 @@
 
 */
     VTABLE INTVAL get_integer() {
-        Parrot_Object_attributes * const obj       = PARROT_OBJECT(pmc);
+        Parrot_Object_attributes * const obj       = PARROT_OBJECT(SELF);
         Parrot_Class_attributes  * const _class    = PARROT_CLASS(obj->_class);
         STRING * const meth_name = CONST_STRING(interp, "get_integer");
 
@@ -511,7 +511,7 @@
                     cur_class, meth_name);
             if (!PMC_IS_NULL(meth)) {
                 INTVAL result;
-                Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->I", pmc, &result);
+                Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->I", SELF, &result);
                 return result;
 
             }
@@ -519,7 +519,7 @@
             if (cur_class->vtable->base_type == enum_class_PMCProxy) {
                 /* Get the PMC instance and call the vtable function on that. */
                 STRING * const proxy      = CONST_STRING(interp, "proxy");
-                PMC    * const del_object = VTABLE_get_attr_str(interp, pmc, proxy);
+                PMC    * const del_object = VTABLE_get_attr_str(interp, SELF, proxy);
 
                 if (!PMC_IS_NULL(del_object)) {
                     return (INTVAL)VTABLE_get_integer(interp, del_object);
@@ -527,7 +527,7 @@
                 }
             }
         }
-        return interp->vtables[enum_class_default]->get_integer(interp, pmc);
+        return interp->vtables[enum_class_default]->get_integer(interp, SELF);
     }
 
 /*
@@ -710,7 +710,7 @@
 */
 
     opcode_t * invoke(void *next) {
-        Parrot_Object_attributes * const obj    = PARROT_OBJECT(pmc);
+        Parrot_Object_attributes * const obj    = PARROT_OBJECT(SELF);
         Parrot_Class_attributes  * const _class = PARROT_CLASS(obj->_class);
 
         /* Walk and search for the vtable. */
@@ -740,14 +740,14 @@
             if (cur_class->vtable->base_type == enum_class_PMCProxy) {
                 /* Get the PMC instance and call the vtable function on that. */
                 PMC * const del_object =
-                    VTABLE_get_attr_keyed(interp, pmc, cur_class, proxy);
+                    VTABLE_get_attr_keyed(interp, SELF, cur_class, proxy);
 
                 if (!PMC_IS_NULL(del_object))
                     return VTABLE_invoke(interp, del_object, next);
             }
         }
 
-        return (opcode_t *)interp->vtables[enum_class_default]->invoke(interp, pmc, next);
+        return (opcode_t *)interp->vtables[enum_class_default]->invoke(interp, SELF, next);
     }
 
 /*
@@ -776,7 +776,7 @@
 */
 
     VTABLE PMC * clone() {
-        Parrot_Object_attributes * const obj = PARROT_OBJECT(pmc);
+        Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
         /* If we have a custom override, invoke it.
          * If not, use the oo function. */
         STRING * const meth_name = CONST_STRING(interp, "clone");
@@ -785,7 +785,7 @@
         PMC *result;
 
         if (!PMC_IS_NULL(meth)) {
-            Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->P", pmc, &result);
+            Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->P", SELF, &result);
         }
         else {
             result = Parrot_oo_clone_object(interp, SELF, NULL);
@@ -873,8 +873,8 @@
         type_num = SELF->vtable->base_type;
 
         /* make sure metadata doesn't go away unexpectedly */
-        if (PMC_metadata(pmc))
-            PMC_metadata(pmc) = pt_shared_fixup(interp, PMC_metadata(pmc));
+        if (PMC_metadata(SELF))
+            PMC_metadata(SELF) = pt_shared_fixup(interp, PMC_metadata(SELF));
 
         PARROT_ASSERT(master->vtables[type_num]->pmc_class);
         /* don't want the referenced class disappearing on us */

Modified: branches/include_dynpmc_makefile/src/pmc/os.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/os.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/os.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -563,6 +563,32 @@
         }
     }
 
+/*
+
+=item C<chmod(STRING *path, INTVAL mode)>
+
+=cut
+
+*/
+
+    METHOD chmod(STRING *path, INTVAL mode) {
+        char * const cpath = Parrot_str_to_cstring(INTERP, path);
+
+#ifndef WIN32
+        const int    error = chmod(cpath, mode);
+#else
+        const int    error = _chmod(cpath, mode);
+#endif
+
+        Parrot_str_free_cstring(cpath);
+
+        if (error) {
+            const char * const errmsg = strerror(errno);
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_EXTERNAL_ERROR,
+                errmsg);
+        }
+    }
+
 }
 
 /*

Modified: branches/include_dynpmc_makefile/src/pmc/packfileannotations.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/packfileannotations.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/packfileannotations.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -267,7 +267,6 @@
         PackFile_Annotations *res = mem_gc_allocate_zeroed_typed(INTERP,
                 PackFile_Annotations);
         INTVAL                i, num;
-        INTVAL                key_type;
         PMC                  *keys;             /* Temporary representation of Keys */
         PMC                  *names;            /* Constants for Key's names */
         PMC                  *types;            /* Types of Keys */
@@ -304,8 +303,9 @@
         res->num_entries = num;
         res->entries = mem_gc_allocate_n_typed(INTERP, num, PackFile_Annotations_Entry*);
         for (i = 0; i < num; ++i) {
-            PMC  *entity = VTABLE_get_pmc_keyed_int(interp, attrs->annotations, i);
-            Parrot_PackfileAnnotation_attributes *entity_attrs = PARROT_PACKFILEANNOTATION(entity);
+            PMC  * const entity = VTABLE_get_pmc_keyed_int(interp, attrs->annotations, i);
+            const Parrot_PackfileAnnotation_attributes * const entity_attrs =
+                PARROT_PACKFILEANNOTATION(entity);
 
             /* Handle creating of Key */
             PMC * key_array = VTABLE_get_pmc_keyed_str(interp, keys, entity_attrs->name);

Modified: branches/include_dynpmc_makefile/src/pmc/packfilefixupentry.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/packfilefixupentry.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/packfilefixupentry.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -58,7 +58,7 @@
 */
 
     VTABLE void mark() {
-        Parrot_PackfileFixupEntry_attributes * attrs =
+        Parrot_PackfileFixupEntry_attributes * const attrs =
                 PARROT_PACKFILEFIXUPENTRY(SELF);
 
         Parrot_gc_mark_STRING_alive(interp, attrs->name);
@@ -75,7 +75,7 @@
 */
 
     VTABLE void set_pointer(void * pointer) {
-        Parrot_PackfileFixupEntry_attributes * attrs =
+        Parrot_PackfileFixupEntry_attributes * const attrs =
                 PARROT_PACKFILEFIXUPENTRY(SELF);
         PackFile_FixupEntry *entry = (PackFile_FixupEntry*)pointer;
 
@@ -96,9 +96,9 @@
 
 */
     VTABLE void *get_pointer() {
-        Parrot_PackfileFixupEntry_attributes * attrs =
+        Parrot_PackfileFixupEntry_attributes * const attrs =
                 PARROT_PACKFILEFIXUPENTRY(SELF);
-        PackFile_FixupEntry                  * entry =
+        PackFile_FixupEntry                  * const entry =
                 mem_gc_allocate_zeroed_typed(INTERP, PackFile_FixupEntry);
 
         entry->type     = attrs->type;
@@ -173,7 +173,7 @@
 
 */
     METHOD get_type() {
-        INTVAL rv = PARROT_PACKFILEFIXUPENTRY(SELF)->type;
+        const INTVAL rv = PARROT_PACKFILEFIXUPENTRY(SELF)->type;
         RETURN(INTVAL rv);
     }
 

Modified: branches/include_dynpmc_makefile/src/pmc/packfilefixuptable.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/packfilefixuptable.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/packfilefixuptable.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -92,7 +92,7 @@
         VTABLE_set_integer_native(interp, attrs->entries, table->fixup_count);
 
         for (i = 0; i < table->fixup_count; ++i) {
-            val = table->fixups[i];
+            val = table->fixups + i;
             entry = Parrot_pmc_new(interp, enum_class_PackfileFixupEntry);
             VTABLE_set_pointer(interp, entry, (void*)val);
             VTABLE_set_pmc_keyed_int(interp, attrs->entries, i, entry);
@@ -120,13 +120,14 @@
         pftable->base.type   = PF_FIXUP_SEG;
         pftable->fixup_count = VTABLE_elements(interp, attrs->entries);
         pftable->fixups      = mem_gc_allocate_n_typed(INTERP,
-                pftable->fixup_count, PackFile_FixupEntry*);
+                pftable->fixup_count, PackFile_FixupEntry);
 
         /* Copy all entries */
         for (i = 0; i < pftable->fixup_count; ++i) {
             entry = VTABLE_get_pmc_keyed_int(interp, attrs->entries, i);
             val   = (PackFile_FixupEntry*)VTABLE_get_pointer(interp, entry);
-            pftable->fixups[i] = val;
+            pftable->fixups[i] = *val;
+            mem_gc_free(INTERP, val);
         }
 
         return pftable;

Modified: branches/include_dynpmc_makefile/src/pmc/resizablefloatarray.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/resizablefloatarray.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/resizablefloatarray.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -156,7 +156,7 @@
 
         /* copy trimmed extra space */
         GET_ATTR_size(INTERP, SELF, size);
-        SET_ATTR_resize_threshold(INTERP, SELF, size);
+        SET_ATTR_resize_threshold(INTERP, copy, size);
 
         return copy;
     }

Modified: branches/include_dynpmc_makefile/src/pmc/stringhandle.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/stringhandle.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/stringhandle.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2008, Parrot Foundation.
+Copyright (C) 2008-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -22,7 +22,7 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_INLINE
-static int encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
+static int encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
         __attribute__nonnull__(1);
 
 #define ASSERT_ARGS_encoding_is_utf8 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -36,7 +36,7 @@
 
 =over 4
 
-=item C<static int encoding_is_utf8(PARROT_INTERP, STRING *s)>
+=item C<static int encoding_is_utf8(PARROT_INTERP, const STRING *s)>
 
 Helper function for internal usage. Return 1 if the string argument is
 not null and has utf8 encoding, 0 otherwise.
@@ -49,7 +49,7 @@
 
 PARROT_INLINE
 static int
-encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
+encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
 {
     ASSERT_ARGS(encoding_is_utf8)
     if (STRING_IS_NULL(s))
@@ -81,7 +81,7 @@
 */
 
     VTABLE void init() {
-        Parrot_StringHandle_attributes *data_struct =
+        Parrot_StringHandle_attributes * const data_struct =
                 (Parrot_StringHandle_attributes *) PMC_data(SELF);
 
         data_struct->flags        = 0;
@@ -255,8 +255,7 @@
 */
 
     METHOD is_closed() {
-        INTVAL status;
-        status = Parrot_io_is_closed(INTERP, SELF);
+        const INTVAL status = Parrot_io_is_closed(INTERP, SELF);
         RETURN(INTVAL status);
     }
 
@@ -272,8 +271,7 @@
 */
 
     METHOD read(INTVAL length) {
-        STRING *string_result;
-        string_result = Parrot_io_reads(INTERP, SELF, length);
+        STRING * const string_result = Parrot_io_reads(INTERP, SELF, length);
         RETURN(STRING *string_result);
     }
 
@@ -289,8 +287,7 @@
 */
 
     METHOD readline() {
-        STRING *string_result;
-        string_result = Parrot_io_readline(INTERP, SELF);
+        STRING * const string_result = Parrot_io_readline(INTERP, SELF);
         RETURN(STRING *string_result);
     }
 
@@ -526,6 +523,7 @@
 */
 
     METHOD get_fd() {
+        UNUSED(interp);
         RETURN(INTVAL -1);
     }
 

Modified: branches/include_dynpmc_makefile/src/pmc/sub.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/sub.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/sub.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -675,7 +675,7 @@
         VTABLE_push_integer(INTERP, info, (INTVAL) sub->start_offs);
         VTABLE_push_integer(INTERP, info, (INTVAL) sub->end_offs);
         VTABLE_push_integer(INTERP, info,
-            (INTVAL)(PObj_get_FLAGS(pmc) & SUB_FLAG_PF_MASK));
+            (INTVAL)(PObj_get_FLAGS(SELF) & SUB_FLAG_PF_MASK));
 
         VTABLE_push_string(INTERP, info, sub->name);
 

Modified: branches/include_dynpmc_makefile/src/pmc/unmanagedstruct.pmc
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc/unmanagedstruct.pmc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc/unmanagedstruct.pmc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -957,7 +957,7 @@
 
     VTABLE INTVAL get_integer_keyed_int(INTVAL ix) {
         int   type;
-        const char * const p = char_offset_int(INTERP, pmc, ix, &type);
+        const char * const p = char_offset_int(INTERP, SELF, ix, &type);
         return ret_int(INTERP, p, type);
     }
 
@@ -973,7 +973,7 @@
 
     VTABLE INTVAL get_integer_keyed(PMC *key) {
         int   type;
-        char * const p = char_offset_key(INTERP, pmc, key, &type);
+        char * const p = char_offset_key(INTERP, SELF, key, &type);
         return ret_int(INTERP, p, type);
     }
 
@@ -989,7 +989,7 @@
 
     VTABLE FLOATVAL get_number_keyed_int(INTVAL key) {
         int   type;
-        char * const p = char_offset_int(INTERP, pmc, key, &type);
+        char * const p = char_offset_int(INTERP, SELF, key, &type);
         return ret_float(INTERP, p, type);
     }
 
@@ -1005,7 +1005,7 @@
 
     VTABLE FLOATVAL get_number_keyed(PMC *key) {
         int   type;
-        char * const p = char_offset_key(INTERP, pmc, key, &type);
+        char * const p = char_offset_key(INTERP, SELF, key, &type);
         return ret_float(INTERP, p, type);
     }
 
@@ -1021,7 +1021,7 @@
 
     VTABLE STRING *get_string_keyed_int(INTVAL key) {
         int   type;
-        char * const p = char_offset_int(INTERP, pmc, key, &type);
+        char * const p = char_offset_int(INTERP, SELF, key, &type);
         return ret_string(INTERP, p, type);
     }
 
@@ -1037,7 +1037,7 @@
 
     VTABLE STRING *get_string_keyed(PMC *key) {
         int   type;
-        char * const p = char_offset_key(INTERP, pmc, key, &type);
+        char * const p = char_offset_key(INTERP, SELF, key, &type);
         return ret_string(INTERP, p, type);
     }
 
@@ -1053,8 +1053,8 @@
 
     VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
         int   type;
-        char * const p = char_offset_int(INTERP, pmc, key, &type);
-        return ret_pmc(INTERP, pmc, p, type, key);
+        char * const p = char_offset_int(INTERP, SELF, key, &type);
+        return ret_pmc(INTERP, SELF, p, type, key);
     }
 
 /*
@@ -1069,8 +1069,8 @@
 
     VTABLE PMC *get_pmc_keyed(PMC *key) {
         int   type;
-        char * const p = char_offset_key(INTERP, pmc, key, &type);
-        return ret_pmc(INTERP, pmc, p, type, key_2_idx(INTERP, pmc, key));
+        char * const p = char_offset_key(INTERP, SELF, key, &type);
+        return ret_pmc(INTERP, SELF, p, type, key_2_idx(INTERP, SELF, key));
     }
 
 /*
@@ -1113,7 +1113,7 @@
 
     VTABLE void set_integer_keyed_int(INTVAL ix, INTVAL value) {
         int   type;
-        char * const p = char_offset_int(INTERP, pmc, ix, &type);
+        char * const p = char_offset_int(INTERP, SELF, ix, &type);
         set_int(INTERP, p, type, value);
     }
 
@@ -1131,7 +1131,7 @@
 
     VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
         int   type;
-        char * const p = char_offset_key(INTERP, pmc, key, &type);
+        char * const p = char_offset_key(INTERP, SELF, key, &type);
         set_int(INTERP, p, type, value);
     }
 
@@ -1147,7 +1147,7 @@
 
     VTABLE void set_number_keyed_int(INTVAL key, FLOATVAL value) {
         int   type;
-        char * const p = char_offset_int(INTERP, pmc, key, &type);
+        char * const p = char_offset_int(INTERP, SELF, key, &type);
         set_float(INTERP, p, type, value);
     }
 
@@ -1163,7 +1163,7 @@
 
     VTABLE void set_number_keyed(PMC *key, FLOATVAL value) {
         int type;
-        char * const p = char_offset_key(INTERP, pmc, key, &type);
+        char * const p = char_offset_key(INTERP, SELF, key, &type);
         set_float(INTERP, p, type, value);
     }
 
@@ -1179,7 +1179,7 @@
 
     VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
         int   type;
-        char * const p = char_offset_int(INTERP, pmc, key, &type);
+        char * const p = char_offset_int(INTERP, SELF, key, &type);
         set_string(INTERP, p, type, value);
     }
 
@@ -1195,7 +1195,7 @@
 
     VTABLE void set_string_keyed(PMC *key, STRING *value) {
         int   type;
-        char * const p = char_offset_key(INTERP, pmc, key, &type);
+        char * const p = char_offset_key(INTERP, SELF, key, &type);
         set_string(INTERP, p, type, value);
     }
 

Modified: branches/include_dynpmc_makefile/src/pmc_freeze.c
==============================================================================
--- branches/include_dynpmc_makefile/src/pmc_freeze.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/pmc_freeze.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -49,7 +49,7 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
 STRING*
 Parrot_freeze(PARROT_INTERP, ARGIN(PMC *pmc))
 {
@@ -73,7 +73,6 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
 UINTVAL
 Parrot_freeze_size(PARROT_INTERP, ARGIN(PMC *pmc))
 {
@@ -106,7 +105,7 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
 PMC*
 Parrot_thaw(PARROT_INTERP, ARGIN(STRING *image))
 {
@@ -158,7 +157,7 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
 PMC*
 Parrot_thaw_constants(PARROT_INTERP, ARGIN(STRING *image))
 {

Modified: branches/include_dynpmc_makefile/src/runcore/cores.c
==============================================================================
--- branches/include_dynpmc_makefile/src/runcore/cores.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/runcore/cores.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -249,17 +249,11 @@
 
 #include "parrot/oplib/ops.h"
 #include "parrot/oplib/core_ops.h"
-#include "parrot/oplib/core_ops_switch.h"
 #include "parrot/dynext.h"
 
 #include "pmc/pmc_sub.h"
 #include "pmc/pmc_callcontext.h"
 
-#ifdef HAVE_COMPUTED_GOTO
-#  include "parrot/oplib/core_ops_cg.h"
-#  include "parrot/oplib/core_ops_cgp.h"
-#endif
-
 #ifdef WIN32
 #  define getpid _getpid
 #endif
@@ -271,23 +265,6 @@
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
-static opcode_t * runops_cgoto_core(PARROT_INTERP,
-    SHIM(Parrot_runcore_t *runcore),
-    ARGIN(opcode_t *pc))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static opcode_t * runops_cgp_core(PARROT_INTERP,
-    ARGIN(Parrot_runcore_t *runcore),
-    ARGIN(opcode_t *pc))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
 static opcode_t * runops_debugger_core(PARROT_INTERP,
     SHIM(Parrot_runcore_t *runcore),
     ARGIN(opcode_t *pc))
@@ -328,27 +305,11 @@
         __attribute__nonnull__(3);
 
 PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static opcode_t * runops_switch_core(PARROT_INTERP,
-    ARGIN(Parrot_runcore_t *runcore),
-    ARGIN(opcode_t *pc))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static opcode_t * runops_trace_core(PARROT_INTERP, ARGIN(opcode_t *pc))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-#define ASSERT_ARGS_runops_cgoto_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(pc))
-#define ASSERT_ARGS_runops_cgp_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(runcore) \
-    , PARROT_ASSERT_ARG(pc))
 #define ASSERT_ARGS_runops_debugger_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pc))
@@ -365,10 +326,6 @@
 #define ASSERT_ARGS_runops_slow_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pc))
-#define ASSERT_ARGS_runops_switch_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(runcore) \
-    , PARROT_ASSERT_ARG(pc))
 #define ASSERT_ARGS_runops_trace_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pc))
@@ -438,36 +395,6 @@
 
 /*
 
-=item C<void Parrot_runcore_switch_init(PARROT_INTERP)>
-
-Registers the switch runcore with Parrot.
-
-=cut
-
-*/
-
-void
-Parrot_runcore_switch_init(PARROT_INTERP)
-{
-    ASSERT_ARGS(Parrot_runcore_switch_init)
-
-    Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
-    coredata->name             = CONST_STRING(interp, "switch");
-    coredata->id               = PARROT_SWITCH_CORE;
-    coredata->opinit           = PARROT_CORE_SWITCH_OPLIB_INIT;
-    coredata->runops           = runops_switch_core;
-    coredata->prepare_run      = init_prederef;
-    coredata->destroy          = NULL;
-    coredata->flags            = 0;
-
-    PARROT_RUNCORE_PREDEREF_OPS_SET(coredata);
-
-    Parrot_runcore_register(interp, coredata);
-}
-
-
-/*
-
 =item C<void Parrot_runcore_exec_init(PARROT_INTERP)>
 
 Registers the exec runcore with Parrot.
@@ -543,7 +470,7 @@
     coredata->name             = CONST_STRING(interp, "debugger");
     coredata->id               = PARROT_DEBUGGER_CORE;
     coredata->opinit           = PARROT_CORE_OPLIB_INIT;
-    coredata->prepare_run      = init_prederef;
+    coredata->prepare_run      = NULL;
     coredata->runops           = runops_debugger_core;
     coredata->destroy          = NULL;
     coredata->flags            = 0;
@@ -556,75 +483,6 @@
 
 /*
 
-=item C<void Parrot_runcore_cgp_init(PARROT_INTERP)>
-
-Registers the CGP runcore with Parrot.
-
-=cut
-
-*/
-
-#ifdef HAVE_COMPUTED_GOTO
-
-void
-Parrot_runcore_cgp_init(PARROT_INTERP)
-{
-    ASSERT_ARGS(Parrot_runcore_cgp_init)
-
-    Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
-    coredata->name             = CONST_STRING(interp, "cgp");
-    coredata->id               = PARROT_CGP_CORE;
-    coredata->opinit           = PARROT_CORE_CGP_OPLIB_INIT;
-    coredata->prepare_run      = init_prederef;
-    coredata->runops           = runops_cgp_core;
-    coredata->flags            = 0;
-
-    coredata->destroy          = NULL;
-
-    PARROT_RUNCORE_CGOTO_OPS_SET(coredata);
-    PARROT_RUNCORE_EVENT_CHECK_SET(coredata);
-    PARROT_RUNCORE_PREDEREF_OPS_SET(coredata);
-
-    Parrot_runcore_register(interp, coredata);
-}
-
-
-/*
-
-=item C<void Parrot_runcore_cgoto_init(PARROT_INTERP)>
-
-Registers the cgoto runcore with Parrot.
-
-=cut
-
-*/
-
-void
-Parrot_runcore_cgoto_init(PARROT_INTERP)
-{
-    ASSERT_ARGS(Parrot_runcore_cgoto_init)
-
-    Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
-    coredata->name             = CONST_STRING(interp, "cgoto");
-    coredata->id               = PARROT_CGOTO_CORE;
-    coredata->opinit           = PARROT_CORE_CG_OPLIB_INIT;
-    coredata->runops           = runops_cgoto_core;
-    coredata->destroy          = NULL;
-    coredata->prepare_run      = NULL;
-    coredata->flags            = 0;
-
-    PARROT_RUNCORE_FUNC_TABLE_SET(coredata);
-    PARROT_RUNCORE_CGOTO_OPS_SET(coredata);
-
-    Parrot_runcore_register(interp, coredata);
-}
-
-
-#endif /* #ifdef HAVE_COMPUTED_GOTO */
-
-
-/*
-
 =item C<static opcode_t * runops_fast_core(PARROT_INTERP, Parrot_runcore_t
 *runcore, opcode_t *pc)>
 
@@ -660,42 +518,6 @@
 }
 
 
-/*
-
-=item C<static opcode_t * runops_cgoto_core(PARROT_INTERP, Parrot_runcore_t
-*runcore, opcode_t *pc)>
-
-Runs the Parrot operations starting at C<pc> until there are no more
-operations, using the computed C<goto> core, performing no bounds checking,
-profiling, or tracing.
-
-If computed C<goto> is not available then Parrot exits with exit code 1.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static opcode_t *
-runops_cgoto_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
-{
-    ASSERT_ARGS(runops_cgoto_core)
-
-    /* disable pc */
-    Parrot_pcc_set_pc(interp, CURRENT_CONTEXT(interp), NULL);
-
-#ifdef HAVE_COMPUTED_GOTO
-    pc = cg_core(pc, interp);
-    return pc;
-#else
-    UNUSED(pc);
-    Parrot_io_eprintf(interp,
-            "Computed goto unavailable in this configuration.\n");
-    Parrot_exit(interp, 1);
-#endif
-}
-
 #ifdef code_start
 #  undef code_start
 #endif
@@ -935,120 +757,6 @@
 }
 
 
-/*
-
-=item C<static opcode_t * runops_switch_core(PARROT_INTERP, Parrot_runcore_t
-*runcore, opcode_t *pc)>
-
-Runs the C<switch> core.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static opcode_t *
-runops_switch_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
-{
-    ASSERT_ARGS(runops_switch_core)
-    opcode_t * const code_start = (opcode_t *)interp->code->base.data;
-    opcode_t        *pc_prederef;
-
-    init_prederef(interp, runcore);
-    pc_prederef = (opcode_t*)interp->code->prederef.code + (pc - code_start);
-
-    return switch_core(pc_prederef, interp);
-}
-
-
-/*
-
-=item C<void * init_prederef(PARROT_INTERP, Parrot_runcore_t *runcore)>
-
-Initialize: load prederef C<func_table>, file prederef.code.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-void *
-init_prederef(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore))
-{
-    ASSERT_ARGS(init_prederef)
-    load_prederef(interp, runcore);
-
-    if (!interp->code->prederef.code) {
-        void        *pred_func;
-        opcode_t    *pc = interp->code->base.data;
-        const size_t N  = interp->code->base.size;
-        size_t       i;
-
-        void ** const temp =
-            (void **)Parrot_memalign_if_possible(256, N * sizeof (void *));
-        /* calc and remember pred_offset */
-        CONTEXT(interp)->pred_offset = pc - (opcode_t *)temp;
-
-        /* fill with the prederef__ opcode function */
-        if (PARROT_RUNCORE_PREDEREF_OPS_TEST(runcore)
-        && !PARROT_RUNCORE_CGOTO_OPS_TEST(runcore))
-            pred_func = (void *)CORE_OPS_prederef__;
-        else {
-            PARROT_ASSERT(interp->op_lib->op_func_table);
-            pred_func = ((void **)
-                    interp->op_lib->op_func_table)[CORE_OPS_prederef__];
-        }
-
-        for (i = 0; i < N;) {
-            const op_info_t * const opinfo = &interp->op_info_table[*pc];
-            size_t n = opinfo->op_count;
-
-            temp[i] = pred_func;
-
-            ADD_OP_VAR_PART(interp, interp->code, pc, n);
-
-            pc += n;
-            i  += n;
-        }
-
-        interp->code->prederef.code = temp;
-    }
-
-    return NULL;
-}
-
-
-/*
-
-=item C<void load_prederef(PARROT_INTERP, Parrot_runcore_t *runcore)>
-
-C<< interp->op_lib >> = prederefed oplib.
-
-=cut
-
-*/
-
-void
-load_prederef(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore))
-{
-    ASSERT_ARGS(load_prederef)
-    const oplib_init_f init_func = get_core_op_lib_init(interp, runcore);
-
-    int (*get_op)(PARROT_INTERP, const char * name, int full);
-
-    get_op          = interp->op_lib->op_code;
-    interp->op_lib  = init_func(interp, 1);
-
-    /* preserve the get_op function */
-    interp->op_lib->op_code = get_op;
-
-    if (interp->op_lib->op_count != interp->op_count)
-        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_PREDEREF_LOAD_ERROR,
-            "Illegal op count (%d) in prederef oplib\n",
-            (int)interp->op_lib->op_count);
-}
-
 
 /*
 
@@ -1099,41 +807,6 @@
 
 /*
 
-=item C<static opcode_t * runops_cgp_core(PARROT_INTERP, Parrot_runcore_t
-*runcore, opcode_t *pc)>
-
-Runs the computed goto and predereferenced core.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static opcode_t *
-runops_cgp_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
-{
-    ASSERT_ARGS(runops_cgp_core)
-#ifdef HAVE_COMPUTED_GOTO
-    opcode_t * const code_start = (opcode_t *)interp->code->base.data;
-    opcode_t        *pc_prederef;
-
-    init_prederef(interp, runcore);
-
-    pc_prederef = (opcode_t *)interp->code->prederef.code + (pc - code_start);
-    return cgp_core(pc_prederef, interp);
-
-#else
-    UNUSED(pc);
-    Parrot_io_eprintf(interp,
-            "Computed goto unavailable in this configuration.\n");
-    Parrot_exit(interp, 1);
-#endif
-
-}
-
-/*
-
 =back
 
 */

Modified: branches/include_dynpmc_makefile/src/runcore/main.c
==============================================================================
--- branches/include_dynpmc_makefile/src/runcore/main.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/runcore/main.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -22,14 +22,9 @@
 #include "parrot/runcore_api.h"
 #include "parrot/runcore_profiling.h"
 #include "parrot/oplib/core_ops.h"
-#include "parrot/oplib/core_ops_switch.h"
 #include "parrot/oplib/ops.h"
 #include "main.str"
 
-#ifdef HAVE_COMPUTED_GOTO
-#  include "parrot/oplib/core_ops_cg.h"
-#  include "parrot/oplib/core_ops_cgp.h"
-#endif
 #include "parrot/dynext.h"
 #include "pmc/pmc_parrotlibrary.h"
 #include "pmc/pmc_callcontext.h"
@@ -44,12 +39,6 @@
 static void dynop_register_switch(PARROT_INTERP, size_t n_old, size_t n_new)
         __attribute__nonnull__(1);
 
-static void dynop_register_xx(PARROT_INTERP,
-    size_t n_old,
-    size_t n_new,
-    oplib_init_f init_func)
-        __attribute__nonnull__(1);
-
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static oplib_init_f get_dynamic_op_lib_init(SHIM_INTERP,
@@ -62,25 +51,13 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-static void stop_prederef(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
-static void turn_ev_check(PARROT_INTERP, int on)
-        __attribute__nonnull__(1);
-
 #define ASSERT_ARGS_dynop_register_switch __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_dynop_register_xx __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_get_dynamic_op_lib_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(lib))
 #define ASSERT_ARGS_notify_func_table __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(table))
-#define ASSERT_ARGS_stop_prederef __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_turn_ev_check __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -105,7 +82,6 @@
 
     Parrot_runcore_slow_init(interp);
     Parrot_runcore_fast_init(interp);
-    Parrot_runcore_switch_init(interp);
 
     Parrot_runcore_exec_init(interp);
     Parrot_runcore_gc_debug_init(interp);
@@ -115,11 +91,6 @@
 
     /* set the default runcore */
     Parrot_runcore_switch(interp, default_core);
-
-#ifdef HAVE_COMPUTED_GOTO
-    Parrot_runcore_cgp_init(interp);
-    Parrot_runcore_cgoto_init(interp);
-#endif
 }
 
 
@@ -187,44 +158,6 @@
 
 /*
 
-=item C<static void turn_ev_check(PARROT_INTERP, int on)>
-
-Turn on or off event checking for prederefed cores.
-
-Fills in the C<event_checker> opcode, or restores original ops in all
-branch locations of the opcode stream.
-
-Note that when C<on> is true, this is being called from the event
-handler thread.
-
-=cut
-
-*/
-
-static void
-turn_ev_check(PARROT_INTERP, int on)
-{
-    ASSERT_ARGS(turn_ev_check)
-    const Prederef * const pi = &interp->code->prederef;
-    size_t i;
-
-    if (!pi->branches)
-        return;
-
-    for (i = 0; i < pi->n_branches; ++i) {
-        const size_t offs = pi->branches[i].offs;
-        if (on)
-            interp->code->prederef.code[offs] =
-                ((void **)interp->op_lib->op_func_table)
-                            [CORE_OPS_check_events__];
-        else
-            interp->code->prederef.code[offs] = pi->branches[i].op;
-    }
-}
-
-
-/*
-
 =item C<static oplib_init_f get_dynamic_op_lib_init(PARROT_INTERP, const PMC
 *lib)>
 
@@ -249,33 +182,6 @@
 
 /*
 
-=item C<static void stop_prederef(PARROT_INTERP)>
-
-Restore the interpreter's op function tables to their initial state.
-Also recreate the event function pointers. This is only necessary
-for run-core changes, but we don't know the old run core.
-
-=cut
-
-*/
-
-static void
-stop_prederef(PARROT_INTERP)
-{
-    ASSERT_ARGS(stop_prederef)
-    interp->op_func_table = PARROT_CORE_OPLIB_INIT(interp, 1)->op_func_table;
-
-    if (interp->evc_func_table) {
-        mem_gc_free(interp, interp->evc_func_table);
-        interp->evc_func_table = NULL;
-    }
-
-    Parrot_setup_event_func_ptrs(interp);
-}
-
-
-/*
-
 =item C<void prepare_for_run(PARROT_INTERP)>
 
 Prepares to run the interpreter's run core.
@@ -337,7 +243,6 @@
             if ((int)interp->resume_offset < 0)
                 Parrot_ex_throw_from_c_args(interp, NULL, 1,
                     "branch_cs: illegal resume offset");
-            stop_prederef(interp);
         }
     }
 }
@@ -397,9 +302,6 @@
 Parrot_runcore_destroy(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_runcore_destroy)
-#ifdef HAVE_COMPUTED_GOTO
-    op_lib_t         *cg_lib;
-#endif
     size_t            num_cores = interp->num_cores;
     size_t            i;
 
@@ -423,19 +325,6 @@
     if (interp->n_libs <= 0)
         return;
 
-#ifdef HAVE_COMPUTED_GOTO
-    cg_lib = PARROT_CORE_CGP_OPLIB_INIT(interp, 1);
-
-    if (cg_lib->op_func_table)
-        mem_gc_free(interp, cg_lib->op_func_table);
-    cg_lib->op_func_table = NULL;
-
-    cg_lib = PARROT_CORE_CG_OPLIB_INIT(interp, 1);
-    if (cg_lib->op_func_table)
-        mem_gc_free(interp, cg_lib->op_func_table);
-    cg_lib->op_func_table = NULL;
-#endif
-
     mem_gc_free(interp, interp->op_info_table);
     mem_gc_free(interp, interp->op_func_table);
     interp->op_info_table = NULL;
@@ -560,129 +449,10 @@
     core->flags         = OP_FUNC_IS_ALLOCATED | OP_INFO_IS_ALLOCATED;
 
     /* done for plain core */
-#ifdef HAVE_COMPUTED_GOTO
-    dynop_register_xx(interp, n_old, n_new, PARROT_CORE_CGP_OPLIB_INIT);
-    dynop_register_xx(interp, n_old, n_new, PARROT_CORE_CG_OPLIB_INIT);
-#endif
-
     dynop_register_switch(interp, n_old, n_new);
 }
 
 
-/*
-
-=item C<static void dynop_register_xx(PARROT_INTERP, size_t n_old, size_t n_new,
-oplib_init_f init_func)>
-
-Register C<op_lib> with other cores.
-
-=cut
-
-*/
-
-#ifdef HAVE_COMPUTED_GOTO
-
-static void
-dynop_register_xx(PARROT_INTERP,
-        size_t n_old, size_t n_new, oplib_init_f init_func)
-{
-    ASSERT_ARGS(dynop_register_xx)
-    const size_t n_tot    = n_old + n_new;
-    op_func_t   *ops_addr = NULL;
-    op_lib_t    *cg_lib   = init_func(interp, 1);
-
-#  if 0
-    /* related to CG and CGP ops issue below */
-    op_lib_t    *new_lib;
-    STRING *op_variant;
-    oplib_init_f new_init_func;
-    PMC *lib_variant;
-#  endif
-
-    if (cg_lib->flags & OP_FUNC_IS_ALLOCATED) {
-        ops_addr = mem_gc_realloc_n_typed_zeroed(interp,
-                cg_lib->op_func_table, n_tot, n_old, op_func_t);
-    }
-    else {
-        size_t i;
-
-        ops_addr      = mem_gc_allocate_n_zeroed_typed(interp, n_tot, op_func_t);
-        cg_lib->flags = OP_FUNC_IS_ALLOCATED;
-
-        for (i = 0; i < n_old; ++i)
-            ops_addr[i] = cg_lib->op_func_table[i];
-    }
-
-    /*
-     * XXX running CG and CGP ops currently works only via the wrapper
-     *
-     * the problem is:
-     *  The actual runcores cg_core and cgp_core are very big functions.
-     *  The C compiler usually addresses "spilled" registers in the C stack.
-     *  The loaded opcode lib is another possibly big function, but with
-     *  a likely different stack layout. Directly jumping around between
-     *  code locations in these two opcode functions works, but access
-     *  to stack-ed (or spilled) variables fails badly.
-     *
-     *  We would need to prepare the assembly source of the opcode
-     *  lib so that all variable access on the stack has the same
-     *  layout and compile the prepared assembly to ops_cgp?.o
-     *
-     *  The switched core is different anyway, as we can't extend the
-     *  compiled big switch statement with the new cases. We have
-     *  always to use the wrapper__ opcode called from the default case.
-     */
-#  if 0
-    /* check if the lib_pmc exists with a _xx flavor */
-    new_init_func = get_op_lib_init(0, 0, lib_pmc);
-    new_lib       = new_init_func(1);
-    op_variant    = Parrot_sprintf_c(interp, "%s_ops%s",
-                        new_lib->name, cg_lib->suffix);
-    lib_variant   = Parrot_load_lib(interp, op_variant, NULL);
-
-    /* XXX running CG and CGP ops currently works only via the wrapper */
-    if (0 /*lib_variant */) {
-        size_t i;
-
-        new_init_func = get_dynamic_op_lib_init(interp, lib_variant);
-        new_lib       = new_init_func(1);
-
-        for (i = n_old; i < n_tot; ++i)
-            ops_addr[i] = (new_lib->op_func_table)[i - n_old];
-
-        new_lib->op_func_table = ops_addr;
-        new_lib->op_count      = n_tot;
-
-        new_init_func((long) ops_addr);
-    }
-    else
-#  endif
-    {
-        size_t i;
-
-        /* if not install wrappers */
-        /* fill new entries with the wrapper op */
-        for (i = n_old; i < n_tot; ++i)
-            ops_addr[i] = ops_addr[CORE_OPS_wrapper__];
-    }
-
-    /* if we are running this core, update event check ops */
-    if (interp->run_core->id == cg_lib->core_type) {
-        size_t i;
-
-        for (i = n_old; i < n_tot; ++i)
-            interp->evc_func_table[i] =
-                (op_func_t)ops_addr[CORE_OPS_check_events__];
-        interp->save_func_table = ops_addr;
-    }
-
-    /* tell the cg_core about the new jump table */
-    cg_lib->op_func_table = ops_addr;
-    cg_lib->op_count      = n_tot;
-    init_func(interp, (long) ops_addr);
-}
-
-#endif
 
 
 /*
@@ -702,7 +472,7 @@
 dynop_register_switch(PARROT_INTERP, size_t n_old, size_t n_new)
 {
     ASSERT_ARGS(dynop_register_switch)
-    op_lib_t * const lib = PARROT_CORE_SWITCH_OPLIB_INIT(interp, 1);
+    op_lib_t * const lib = PARROT_CORE_OPLIB_INIT(interp, 1);
     lib->op_count        = n_old + n_new;
 }
 
@@ -729,9 +499,6 @@
         PARROT_ASSERT(table);
         interp->op_func_table = table;
     }
-
-    if (PARROT_RUNCORE_EVENT_CHECK_TEST(interp->run_core))
-        turn_ev_check(interp, on);
 }
 
 

Modified: branches/include_dynpmc_makefile/src/string/api.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/api.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/api.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -251,7 +251,7 @@
   ascii <op> utf8 => utf8
                   => ascii, B<if> C<STRING *b> has ascii chars only.
 
-Returs NULL, if no compatible string representation can be found.
+Returns NULL, if no compatible string representation can be found.
 
 =cut
 
@@ -355,7 +355,7 @@
 
 /*
 
-=item C<STRING * Parrot_str_copy(PARROT_INTERP, STRING *s)>
+=item C<STRING * Parrot_str_copy(PARROT_INTERP, const STRING *s)>
 
 Creates and returns a shallow copy of the specified Parrot string.
 
@@ -367,32 +367,27 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 STRING *
-Parrot_str_copy(PARROT_INTERP, ARGMOD(STRING *s))
+Parrot_str_copy(PARROT_INTERP, ARGIN(const STRING *s))
 {
     ASSERT_ARGS(Parrot_str_copy)
     STRING *d;
+    const int is_movable = PObj_is_movable_TESTALL(s);
 
     /* We set COW flag to avoid cloning buffer in compact_pool */
 
-    if (PObj_constant_TEST(s)) {
-        d = Parrot_gc_new_string_header(interp,
-            PObj_get_FLAGS(s) & ~PObj_constant_FLAG);
-        PObj_COW_SET(s);
-        STRUCT_COPY(d, s);
-        /* we can't move the memory, because constants aren't
-         * scanned in compact_pool, therefore the other end
-         * would point to garbage.
-         */
-        PObj_constant_CLEAR(d);
-        PObj_external_SET(d);
-    }
-    else {
-        d = Parrot_gc_new_string_header(interp, PObj_get_FLAGS(s));
-        PObj_COW_SET(s);
-        STRUCT_COPY(d, s);
-        PObj_sysmem_CLEAR(d);
+    d = Parrot_gc_new_string_header(interp,
+        PObj_get_FLAGS(s) & ~PObj_constant_FLAG);
+    STRUCT_COPY(d, s);
+
+    /* Now check that buffer allocated from pool and affected by compacting */
+    if (is_movable) {
+        /* If so, mark it as shared */
+        INTVAL * const buffer_flags = Buffer_bufrefcountptr(d);
+        *buffer_flags |= Buffer_shared_FLAG;
     }
 
+    PARROT_ASSERT(is_movable == PObj_is_movable_TESTALL(d));
+
     return d;
 }
 
@@ -484,8 +479,8 @@
 
 /*
 
-=item C<STRING * Parrot_str_new(PARROT_INTERP, const char * const buffer, const
-UINTVAL len)>
+=item C<STRING * Parrot_str_new(PARROT_INTERP, const char *buffer, const UINTVAL
+len)>
 
 Makes a Parrot string from a specified C string.
 
@@ -498,17 +493,18 @@
 PARROT_MALLOC
 PARROT_CANNOT_RETURN_NULL
 STRING *
-Parrot_str_new(PARROT_INTERP, ARGIN_NULLOK(const char * const buffer), const UINTVAL len)
+Parrot_str_new(PARROT_INTERP, ARGIN_NULLOK(const char *buffer), const UINTVAL len)
 {
     ASSERT_ARGS(Parrot_str_new)
-    return Parrot_str_new_init(interp, buffer,
-           len
-             ? len
-             : buffer
-                 ? strlen(buffer)
-                 : 0,
-           /* Force an 8-bit encoding at some point? */
-           PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, 0);
+    /* Force an 8-bit encoding at some point? */
+    if (len)
+        return Parrot_str_new_init(interp, buffer, len,
+            PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, 0);
+    else {
+        const UINTVAL buff_length = buffer ? strlen(buffer) : 0;
+        return Parrot_str_new_init(interp, buffer, buff_length,
+            PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, 0);
+    }
 }
 
 
@@ -535,7 +531,7 @@
 {
     ASSERT_ARGS(Parrot_str_new_from_buffer)
 
-    STRING *result          = Parrot_gc_new_string_header(interp, 0);
+    STRING * const result   = Parrot_gc_new_string_header(interp, 0);
     Buffer_bufstart(result) = Buffer_bufstart(buffer);
     Buffer_buflen(result)   = Buffer_buflen(buffer);
     result->strstart        = (char *)Buffer_bufstart(result);
@@ -656,18 +652,17 @@
     ASSERT_ARGS(string_make)
     const CHARSET *charset;
 
-    if (!charset_name)
-        charset_name = "ascii";
-
-    charset = Parrot_find_charset(interp, charset_name);
-
-    if (!charset)
-        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
-            "Can't make '%s' charset strings", charset_name);
+    if (charset_name) {
+        charset = Parrot_find_charset(interp, charset_name);
+        if (!charset)
+            Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
+                "Can't make '%s' charset strings", charset_name);
+    }
+    else
+        charset = Parrot_get_charset(interp, 0);
 
     return Parrot_str_new_init(interp, buffer, len,
         charset->preferred_encoding, charset, flags);
-
 }
 
 
@@ -772,9 +767,8 @@
         else
             s->strlen = CHARSET_CODEPOINTS(interp, s);
     }
-    else {
+    else
         s->strlen = s->bufused = 0;
-    }
 
     return s;
 }
@@ -803,7 +797,7 @@
 {
     ASSERT_ARGS(Parrot_str_byte_length)
 
-    return !STRING_IS_NULL(s) ? s->strlen : 0;
+    return STRING_IS_NULL(s) ? 0 : s->strlen;
 }
 
 
@@ -1042,8 +1036,8 @@
 
 /*
 
-=item C<STRING * Parrot_str_substr(PARROT_INTERP, STRING *src, INTVAL offset,
-INTVAL length)>
+=item C<STRING * Parrot_str_substr(PARROT_INTERP, const STRING *src, INTVAL
+offset, INTVAL length)>
 
 Returns substring of length C<length> from C<offset> from the specified
 Parrot string.
@@ -1057,7 +1051,7 @@
 PARROT_WARN_UNUSED_RESULT
 STRING *
 Parrot_str_substr(PARROT_INTERP,
-        ARGIN_NULLOK(STRING *src), INTVAL offset, INTVAL length)
+        ARGIN_NULLOK(const STRING *src), INTVAL offset, INTVAL length)
 {
     ASSERT_ARGS(Parrot_str_substr)
 
@@ -1222,7 +1216,7 @@
 
 /*
 
-=item C<STRING * Parrot_str_chopn(PARROT_INTERP, STRING *s, INTVAL n)>
+=item C<STRING * Parrot_str_chopn(PARROT_INTERP, const STRING *s, INTVAL n)>
 
 Removes the last C<n> characters of the specified Parrot string and returns the
 modified string. If C<n> is negative, cuts the string after C<+n> characters.
@@ -1234,7 +1228,7 @@
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
 STRING *
-Parrot_str_chopn(PARROT_INTERP, ARGMOD(STRING *s), INTVAL n)
+Parrot_str_chopn(PARROT_INTERP, ARGIN(const STRING *s), INTVAL n)
 {
     ASSERT_ARGS(Parrot_str_chopn)
 
@@ -1357,28 +1351,25 @@
 {
     ASSERT_ARGS(Parrot_str_equal)
 
-    if ((s1 == s2) || (STRING_IS_NULL(s1) && STRING_IS_NULL(s2))) {
+    if ((s1 == s2) || (STRING_IS_NULL(s1) && STRING_IS_NULL(s2)))
         return 1;
-    }
-    else if (STRING_IS_NULL(s2)) {
+    else if (STRING_IS_NULL(s2))
         return s1->strlen == 0;
-    }
-    else if (STRING_IS_NULL(s1)) {
+    else if (STRING_IS_NULL(s1))
         return s2->strlen == 0;
-    }
 
    /* we don't care which is bigger */
     else if (s1->strlen != s2->strlen)
         return 0;
-    else if (s1->hashval != s2->hashval && s1->hashval && s2->hashval)
+    else if ((s1->hashval != s2->hashval) && s1->hashval && s2->hashval)
         return 0;
 
     /* s2->strlen is the same here */
-    else if (!s1->strlen)
+    else if (s1->strlen == 0)
         return 1;
 
     /* COWed strings */
-    else if (s1->strstart == s2->strstart && s1->bufused == s2->bufused)
+    else if ((s1->strstart == s2->strstart) && (s1->bufused == s2->bufused))
         return 1;
 
     /*
@@ -1386,7 +1377,7 @@
      * both strings are non-null
      * both strings have same length
      */
-    return !CHARSET_COMPARE(interp, s1, s2);
+    return CHARSET_COMPARE(interp, s1, s2) == 0;
 }
 
 
@@ -1802,6 +1793,7 @@
 Integer uses only parse_start, parse_before_dot and parse_end.
 
 */
+
 typedef enum number_parse_state {
     parse_start,
     parse_before_dot,
@@ -1843,11 +1835,11 @@
     ASSERT_ARGS(Parrot_str_to_int)
     if (STRING_IS_NULL(s))
         return 0;
-    {
-        const INTVAL        max_safe  = PARROT_INTVAL_MAX / 10;
-        const INTVAL        last_dig  = PARROT_INTVAL_MAX % 10;
+    else {
+        const UINTVAL       max_safe  = -(UINTVAL)PARROT_INTVAL_MIN / 10;
+        const UINTVAL       last_dig  = (-(UINTVAL)PARROT_INTVAL_MIN) % 10;
         int                 sign      = 1;
-        INTVAL              i         = 0;
+        UINTVAL             i         = 0;
         String_iter         iter;
         UINTVAL             offs;
         number_parse_state  state = parse_start;
@@ -1863,7 +1855,7 @@
             switch (state) {
               case parse_start:
                 if (isdigit((unsigned char)c)) {
-                    const INTVAL nextval = c - '0';
+                    const UINTVAL nextval = c - '0';
                     if (i < max_safe || (i == max_safe && nextval <= last_dig))
                         i = i * 10 + nextval;
                     else
@@ -1887,7 +1879,7 @@
 
               case parse_before_dot:
                 if (isdigit((unsigned char)c)) {
-                    const INTVAL nextval = c - '0';
+                    const UINTVAL nextval = c - '0';
                     if (i < max_safe || (i == max_safe && nextval <= last_dig))
                         i = i * 10 + nextval;
                     else
@@ -1905,9 +1897,11 @@
             }
         }
 
-        i *= sign;
-
-        return i;
+        if (sign == 1 && i > (UINTVAL)PARROT_INTVAL_MAX)
+            Parrot_ex_throw_from_c_args(interp, NULL,
+                    EXCEPTION_ERR_OVERFLOW,
+                    "Integer value of String '%S' too big", s);
+        return sign == -1 ? -i : i;
     }
 }
 
@@ -2635,7 +2629,7 @@
         Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
             "Can't upcase NULL string");
     else {
-        STRING * res = CHARSET_UPCASE(interp, s);
+        STRING * const res = CHARSET_UPCASE(interp, s);
         res->hashval = 0;
         return res;
     }
@@ -2665,7 +2659,7 @@
         Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
             "Can't downcase NULL string");
     else {
-        STRING * res = CHARSET_DOWNCASE(interp, s);
+        STRING * const res = CHARSET_DOWNCASE(interp, s);
         res->hashval = 0;
         return res;
     }
@@ -2695,7 +2689,7 @@
         Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
             "Can't titlecase NULL string");
     else {
-        STRING * res = CHARSET_TITLECASE(interp, s);
+        STRING * const res = CHARSET_TITLECASE(interp, s);
         res->hashval = 0;
         return res;
     }
@@ -2792,8 +2786,8 @@
 
 /*
 
-=item C<INTVAL Parrot_str_find_cclass(PARROT_INTERP, INTVAL flags, STRING *s,
-UINTVAL offset, UINTVAL count)>
+=item C<INTVAL Parrot_str_find_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*s, UINTVAL offset, UINTVAL count)>
 
 Finds the first occurrence of the given character class in C<flags> in the
 string, and returns its glyph-wise index.
@@ -2805,7 +2799,7 @@
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
 INTVAL
-Parrot_str_find_cclass(PARROT_INTERP, INTVAL flags, ARGIN_NULLOK(STRING *s),
+Parrot_str_find_cclass(PARROT_INTERP, INTVAL flags, ARGIN_NULLOK(const STRING *s),
                           UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(Parrot_str_find_cclass)
@@ -2819,8 +2813,8 @@
 
 /*
 
-=item C<INTVAL Parrot_str_find_not_cclass(PARROT_INTERP, INTVAL flags, STRING
-*s, UINTVAL offset, UINTVAL count)>
+=item C<INTVAL Parrot_str_find_not_cclass(PARROT_INTERP, INTVAL flags, const
+STRING *s, UINTVAL offset, UINTVAL count)>
 
 Finds the first occurrence of the a character I<not> in the given character
 class in C<flags> in the string starting from C<offset> and looking at C<count>
@@ -2835,7 +2829,7 @@
 PARROT_WARN_UNUSED_RESULT
 INTVAL
 Parrot_str_find_not_cclass(PARROT_INTERP, INTVAL flags,
-    ARGIN_NULLOK(STRING *s), UINTVAL offset, UINTVAL count)
+    ARGIN_NULLOK(const STRING *s), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(Parrot_str_find_not_cclass)
 
@@ -2900,7 +2894,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 STRING*
-Parrot_str_change_encoding(PARROT_INTERP, ARGIN_NULLOK(STRING *src),
+Parrot_str_change_encoding(PARROT_INTERP, ARGMOD_NULLOK(STRING *src),
         INTVAL encoding_nr)
 {
     ASSERT_ARGS(Parrot_str_change_encoding)
@@ -2924,7 +2918,7 @@
 
 /*
 
-=item C<STRING * Parrot_str_compose(PARROT_INTERP, STRING *src)>
+=item C<STRING * Parrot_str_compose(PARROT_INTERP, const STRING *src)>
 
 Normalizes the string.
 
@@ -2936,7 +2930,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 STRING *
-Parrot_str_compose(PARROT_INTERP, ARGIN_NULLOK(STRING *src))
+Parrot_str_compose(PARROT_INTERP, ARGIN_NULLOK(const STRING *src))
 {
     ASSERT_ARGS(Parrot_str_compose)
 
@@ -3191,7 +3185,7 @@
     if (minus)
         *--p = '-';
 
-    return string_make(interp, p, (UINTVAL)(tail - p), "ascii", 0);
+    return string_make(interp, p, (UINTVAL)(tail - p), NULL, 0);
 }
 
 

Modified: branches/include_dynpmc_makefile/src/string/charset/ascii.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/charset/ascii.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/charset/ascii.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -32,31 +32,29 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* compose(PARROT_INTERP, ARGIN(STRING *src))
+static STRING* compose(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* decompose(PARROT_INTERP, ARGMOD(STRING *src))
+static STRING* decompose(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*src);
+        __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+static STRING* downcase(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* downcase_first(PARROT_INTERP,
-    ARGIN(const STRING *source_string))
+static STRING* downcase_first(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
 static INTVAL find_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -64,7 +62,7 @@
 
 static INTVAL find_not_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -73,7 +71,7 @@
 PARROT_WARN_UNUSED_RESULT
 static INTVAL is_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(const STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset)
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
@@ -84,39 +82,37 @@
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
+static STRING* titlecase(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* titlecase_first(PARROT_INTERP,
-    ARGIN(const STRING *source_string))
+static STRING* titlecase_first(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING * to_ascii(PARROT_INTERP, ARGIN(STRING *src))
+static STRING * to_ascii(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING * to_charset(PARROT_INTERP, ARGIN(STRING *src))
+static STRING * to_charset(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+static STRING* upcase(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* upcase_first(PARROT_INTERP,
-    ARGIN(const STRING *source_string))
+static STRING* upcase_first(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
-static UINTVAL validate(PARROT_INTERP, ARGIN(STRING *src))
+static UINTVAL validate(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
@@ -128,27 +124,27 @@
     , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_downcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_downcase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_find_not_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_is_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_string_from_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_titlecase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_to_ascii __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(src))
@@ -157,10 +153,10 @@
     , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_upcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_upcase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_validate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(src))
@@ -169,10 +165,10 @@
 
 /*
 
-=item C<STRING * ascii_get_graphemes(PARROT_INTERP, STRING *source_string,
-UINTVAL offset, UINTVAL count)>
+=item C<STRING * ascii_get_graphemes(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
 
-Retrieves the graphemes for the STRING C<source_string>, starting at
+Retrieves the graphemes for the STRING C<src>, starting at
 C<offset> and ending at C<offset + count>.
 
 =cut
@@ -182,16 +178,15 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 STRING *
-ascii_get_graphemes(PARROT_INTERP, ARGIN(STRING *source_string),
-        UINTVAL offset, UINTVAL count)
+ascii_get_graphemes(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(ascii_get_graphemes)
-    return ENCODING_GET_BYTES(interp, source_string, offset, count);
+    return ENCODING_GET_BYTES(interp, src, offset, count);
 }
 
 /*
 
-=item C<static STRING * to_ascii(PARROT_INTERP, STRING *src)>
+=item C<static STRING * to_ascii(PARROT_INTERP, const STRING *src)>
 
 Attempts to convert STRING C<src> to ASCII in STRING C<dest>. Throws
 an exception if unconvertable UNICODE characters are involved.
@@ -202,7 +197,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-to_ascii(PARROT_INTERP, ARGIN(STRING *src))
+to_ascii(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(to_ascii)
     String_iter iter;
@@ -211,7 +206,7 @@
     const UINTVAL len = src->strlen;
 
     /* the string can't grow. Just clone it */
-    STRING * dest = Parrot_str_clone(interp, src);
+    STRING * const dest = Parrot_str_clone(interp, src);
 
     p = (unsigned char *)dest->strstart;
     ENCODING_ITER_INIT(interp, src, &iter);
@@ -231,7 +226,7 @@
 
 /*
 
-=item C<static STRING * to_charset(PARROT_INTERP, STRING *src)>
+=item C<static STRING * to_charset(PARROT_INTERP, const STRING *src)>
 
 Converts STRING C<src> to ASCII charset STRING C<dest>.
 
@@ -241,7 +236,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-to_charset(PARROT_INTERP, ARGIN(STRING *src))
+to_charset(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(to_charset)
     const charset_converter_t conversion_func =
@@ -255,10 +250,9 @@
     }
 }
 
-/* A noop. can't compose ascii */
 /*
 
-=item C<static STRING* compose(PARROT_INTERP, STRING *src)>
+=item C<static STRING* compose(PARROT_INTERP, const STRING *src)>
 
 Can't compose ASCII strings, so performs a string copy on it and
 returns the new string.
@@ -269,16 +263,18 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-compose(PARROT_INTERP, ARGIN(STRING *src))
+compose(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(compose)
-    return src;
+
+    STRING * const dest = Parrot_str_copy(interp, src);
+
+    return dest;
 }
 
-/* A noop. can't decompose ascii */
 /*
 
-=item C<static STRING* decompose(PARROT_INTERP, STRING *src)>
+=item C<static STRING* decompose(PARROT_INTERP, const STRING *src)>
 
 Can't decompose ASCII, so we perform a string copy instead and return
 a pointer to the new string.
@@ -289,17 +285,20 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-decompose(PARROT_INTERP, ARGMOD(STRING *src))
+decompose(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(decompose)
-    return src;
+
+    STRING * const dest = Parrot_str_copy(interp, src);
+
+    return dest;
 }
 
 /*
 
-=item C<static STRING* upcase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* upcase(PARROT_INTERP, const STRING *src)>
 
-Converts the STRING C<source_string> to all uppercase.
+Converts the STRING C<src> to all uppercase.
 
 =cut
 
@@ -307,11 +306,11 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+upcase(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(upcase)
-    STRING * const result = Parrot_str_clone(interp, source_string);
-    const UINTVAL n = source_string->strlen;
+    STRING * const result = Parrot_str_clone(interp, src);
+    const UINTVAL n = src->strlen;
 
     if (n) {
         char * const buffer = result->strstart;
@@ -327,9 +326,9 @@
 
 /*
 
-=item C<static STRING* downcase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* downcase(PARROT_INTERP, const STRING *src)>
 
-Converts the STRING C<source_string> to all lower-case.
+Converts the STRING C<src> to all lower-case.
 
 =cut
 
@@ -337,11 +336,11 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+downcase(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(downcase)
-    STRING       *result = Parrot_str_clone(interp, source_string);
-    const UINTVAL n      = source_string->strlen;
+    STRING       *result = Parrot_str_clone(interp, src);
+    const UINTVAL n      = src->strlen;
 
     if (n) {
         char * const buffer = result->strstart;
@@ -357,9 +356,9 @@
 
 /*
 
-=item C<static STRING* titlecase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* titlecase(PARROT_INTERP, const STRING *src)>
 
-Converts the STRING given by C<source_string> to title case, where
+Converts the STRING given by C<src> to title case, where
 the first character is upper case and all the rest of the characters
 are lower-case.
 
@@ -369,11 +368,11 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
+titlecase(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(titlecase)
-    STRING       *result = Parrot_str_clone(interp, source_string);
-    const UINTVAL n      = source_string->strlen;
+    STRING       *result = Parrot_str_clone(interp, src);
+    const UINTVAL n      = src->strlen;
 
     if (n) {
         char * const buffer = result->strstart;
@@ -390,9 +389,9 @@
 
 /*
 
-=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *src)>
 
-Sets the first character in the STRING C<source_string> to upper case,
+Sets the first character in the STRING C<src> to upper case,
 but doesn't modify the rest of the string.
 
 =cut
@@ -401,12 +400,12 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-upcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
+upcase_first(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(upcase_first)
-    STRING *result = Parrot_str_clone(interp, source_string);
+    STRING * const result = Parrot_str_clone(interp, src);
 
-    if (result->strlen) {
+    if (result->strlen > 0) {
         char * const buffer = result->strstart;
         buffer[0] = (char)toupper((unsigned char)buffer[0]);
     }
@@ -416,10 +415,9 @@
 
 /*
 
-=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING *src)>
 
-Sets the first character of the STRING C<source_string> to lowercase,
+Sets the first character of the STRING C<src> to lowercase,
 but doesn't modify the rest of the characters.
 
 =cut
@@ -428,12 +426,12 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-downcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
+downcase_first(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(downcase_first)
-    STRING *result = Parrot_str_clone(interp, source_string);
+    STRING * const result = Parrot_str_clone(interp, src);
 
-    if (result->strlen) {
+    if (result->strlen > 0) {
         char * const buffer = result->strstart;
         buffer[0] = (char)tolower((unsigned char)buffer[0]);
     }
@@ -443,10 +441,9 @@
 
 /*
 
-=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING *src)>
 
-Converts the first letter of STRING C<source_string> to upper case,
+Converts the first letter of STRING C<src> to upper case,
 but doesn't modify the rest of the string.
 
 =cut
@@ -455,12 +452,12 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-titlecase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
+titlecase_first(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(titlecase_first)
-    STRING *result = Parrot_str_clone(interp, source_string);
+    STRING * const result = Parrot_str_clone(interp, src);
 
-    if (result->strlen) {
+    if (result->strlen > 0) {
         char * const buffer = result->strstart;
         buffer[0] = (char)toupper((unsigned char)buffer[0]);
     }
@@ -516,8 +513,8 @@
 
 /*
 
-=item C<INTVAL mixed_cs_index(PARROT_INTERP, STRING *src, STRING *search,
-UINTVAL offs)>
+=item C<INTVAL mixed_cs_index(PARROT_INTERP, const STRING *src, const STRING
+*search, UINTVAL offs)>
 
 Searches for the first instance of STRING C<search> in STRING C<src>.
 returns the position where the substring is found if it is indeed found.
@@ -530,7 +527,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 INTVAL
-mixed_cs_index(PARROT_INTERP, ARGIN(STRING *src), ARGIN(STRING *search),
+mixed_cs_index(PARROT_INTERP, ARGIN(const STRING *src), ARGIN(const STRING *search),
     UINTVAL offs)
 {
     ASSERT_ARGS(mixed_cs_index)
@@ -576,7 +573,7 @@
 
 /*
 
-=item C<INTVAL ascii_cs_index(PARROT_INTERP, STRING *source_string, STRING
+=item C<INTVAL ascii_cs_index(PARROT_INTERP, const STRING *src, const STRING
 *search_string, UINTVAL offset)>
 
 Searches for the first instance of STRING C<search> in STRING C<src>.
@@ -589,28 +586,28 @@
 
 PARROT_WARN_UNUSED_RESULT
 INTVAL
-ascii_cs_index(PARROT_INTERP, ARGIN(STRING *source_string),
-        ARGIN(STRING *search_string), UINTVAL offset)
+ascii_cs_index(PARROT_INTERP, ARGIN(const STRING *src),
+        ARGIN(const STRING *search_string), UINTVAL offset)
 {
     ASSERT_ARGS(ascii_cs_index)
     INTVAL retval;
-    if (source_string->charset != search_string->charset) {
-        return mixed_cs_index(interp, source_string, search_string, offset);
+    if (src->charset != search_string->charset) {
+        return mixed_cs_index(interp, src, search_string, offset);
     }
 
-    PARROT_ASSERT(source_string->encoding == Parrot_fixed_8_encoding_ptr);
-    retval = Parrot_byte_index(interp, source_string,
+    PARROT_ASSERT(src->encoding == Parrot_fixed_8_encoding_ptr);
+    retval = Parrot_byte_index(interp, src,
             search_string, offset);
     return retval;
 }
 
 /*
 
-=item C<INTVAL ascii_cs_rindex(PARROT_INTERP, STRING *source_string, STRING
+=item C<INTVAL ascii_cs_rindex(PARROT_INTERP, const STRING *src, const STRING
 *search_string, UINTVAL offset)>
 
 Searches for the last instance of STRING C<search_string> in STRING
-C<source_string>. Starts searching at C<offset>.
+C<src>. Starts searching at C<offset>.
 
 =cut
 
@@ -618,25 +615,25 @@
 
 PARROT_WARN_UNUSED_RESULT
 INTVAL
-ascii_cs_rindex(PARROT_INTERP, ARGIN(STRING *source_string),
-        ARGIN(STRING *search_string), UINTVAL offset)
+ascii_cs_rindex(PARROT_INTERP, ARGIN(const STRING *src),
+        ARGIN(const STRING *search_string), UINTVAL offset)
 {
     ASSERT_ARGS(ascii_cs_rindex)
     INTVAL retval;
 
-    if (source_string->charset != search_string->charset)
+    if (src->charset != search_string->charset)
         Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
             "Cross-charset index not supported");
 
-    PARROT_ASSERT(source_string->encoding == Parrot_fixed_8_encoding_ptr);
-    retval = Parrot_byte_rindex(interp, source_string,
+    PARROT_ASSERT(src->encoding == Parrot_fixed_8_encoding_ptr);
+    retval = Parrot_byte_rindex(interp, src,
             search_string, offset);
     return retval;
 }
 
 /*
 
-=item C<static UINTVAL validate(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL validate(PARROT_INTERP, const STRING *src)>
 
 Verifies that the given string is valid ASCII. Returns 1 if it is ASCII,
 returns 0 otherwise.
@@ -647,7 +644,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-validate(PARROT_INTERP, ARGIN(STRING *src))
+validate(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(validate)
     UINTVAL offset;
@@ -686,8 +683,8 @@
 
 /*
 
-=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING
-*source_string, UINTVAL offset)>
+=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
+UINTVAL offset)>
 
 =cut
 
@@ -695,17 +692,16 @@
 
 PARROT_WARN_UNUSED_RESULT
 static INTVAL
-is_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *source_string), UINTVAL offset)
+is_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src), UINTVAL offset)
 {
     ASSERT_ARGS(is_cclass)
     UINTVAL codepoint;
 
-    if (offset >= source_string->strlen)
+    if (offset >= src->strlen)
         return 0;
-    codepoint = ENCODING_GET_CODEPOINT(interp, source_string, offset);
+    codepoint = ENCODING_GET_CODEPOINT(interp, src, offset);
 
-    if (codepoint >= sizeof (Parrot_ascii_typetable) /
-            sizeof (Parrot_ascii_typetable[0])) {
+    if (codepoint >= sizeof (Parrot_ascii_typetable) / sizeof (Parrot_ascii_typetable[0])) {
         return 0;
     }
     return (Parrot_ascii_typetable[codepoint] & flags) ? 1 : 0;
@@ -713,8 +709,8 @@
 
 /*
 
-=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 Find a character in the given character class.  Delegates to the find_cclass
 method of the encoding plugin.
@@ -725,38 +721,37 @@
 
 PARROT_WARN_UNUSED_RESULT
 static INTVAL
-find_cclass(PARROT_INTERP, INTVAL flags, ARGIN(STRING *source_string),
-            UINTVAL offset, UINTVAL count)
+find_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_cclass)
     UINTVAL pos = offset;
     UINTVAL end = offset + count;
 
-    end = source_string->strlen < end ? source_string->strlen : end;
-    return ENCODING_FIND_CCLASS(interp, source_string, Parrot_ascii_typetable,
+    end = src->strlen < end ? src->strlen : end;
+    return ENCODING_FIND_CCLASS(interp, src, Parrot_ascii_typetable,
             flags, pos, end);
 }
 
 /*
 
-=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 =cut
 
 */
 
 static INTVAL
-find_not_cclass(PARROT_INTERP, INTVAL flags, ARGIN(STRING *source_string),
-                UINTVAL offset, UINTVAL count)
+find_not_cclass(PARROT_INTERP,
+                INTVAL flags, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_not_cclass)
     UINTVAL pos = offset;
     UINTVAL end = offset + count;
 
-    end = source_string->strlen < end ? source_string->strlen : end;
+    end = src->strlen < end ? src->strlen : end;
     for (; pos < end; ++pos) {
-        const UINTVAL codepoint = ENCODING_GET_CODEPOINT(interp, source_string, pos);
+        const UINTVAL codepoint = ENCODING_GET_CODEPOINT(interp, src, pos);
         if ((Parrot_ascii_typetable[codepoint] & flags) == 0) {
             return pos;
         }
@@ -766,10 +761,10 @@
 
 /*
 
-=item C<size_t ascii_compute_hash(PARROT_INTERP, const STRING *source_string,
-size_t seed)>
+=item C<size_t ascii_compute_hash(PARROT_INTERP, const STRING *src, size_t
+seed)>
 
-Computes the hash of STRING C<source_string> starting with seed value
+Computes the hash of STRING C<src> starting with seed value
 C<seed>.
 
 =cut
@@ -778,14 +773,14 @@
 
 PARROT_PURE_FUNCTION
 size_t
-ascii_compute_hash(SHIM_INTERP, ARGIN(const STRING *source_string), size_t seed)
+ascii_compute_hash(SHIM_INTERP, ARGIN(const STRING *src), size_t seed)
 {
     ASSERT_ARGS(ascii_compute_hash)
     size_t hashval = seed;
-    const char *buffptr = (const char *)source_string->strstart;
-    UINTVAL len = source_string->strlen;
+    const char *buffptr = (const char *)src->strstart;
+    UINTVAL len = src->strlen;
 
-    PARROT_ASSERT(source_string->encoding == Parrot_fixed_8_encoding_ptr);
+    PARROT_ASSERT(src->encoding == Parrot_fixed_8_encoding_ptr);
     while (len--) {
         hashval += hashval << 5;
         hashval += *buffptr++;
@@ -842,7 +837,7 @@
 
 /*
 
-=item C<STRING * charset_cvt_ascii_to_binary(PARROT_INTERP, STRING *src)>
+=item C<STRING * charset_cvt_ascii_to_binary(PARROT_INTERP, const STRING *src)>
 
 Converts an ASCII STRING C<src> to a binary STRING C<dest>.
 
@@ -852,10 +847,10 @@
 
 PARROT_CANNOT_RETURN_NULL
 STRING *
-charset_cvt_ascii_to_binary(PARROT_INTERP, ARGIN(STRING *src))
+charset_cvt_ascii_to_binary(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(charset_cvt_ascii_to_binary)
-    STRING *dest = Parrot_str_clone(interp, src);
+    STRING * const dest = Parrot_str_clone(interp, src);
     UINTVAL offs;
 
     for (offs = 0; offs < src->strlen; ++offs) {
@@ -869,7 +864,8 @@
 
 /*
 
-=item C<STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, STRING *src)>
+=item C<STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, const STRING
+*src)>
 
 Converts ASCII STRING C<src> to ISO8859-1 STRING C<dest>.
 
@@ -879,10 +875,10 @@
 
 PARROT_CANNOT_RETURN_NULL
 STRING *
-charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
+charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(charset_cvt_ascii_to_iso_8859_1)
-    STRING * dest = Parrot_str_clone(interp, src);
+    STRING * const dest = Parrot_str_clone(interp, src);
     UINTVAL offs;
 
     for (offs = 0; offs < src->strlen; ++offs) {

Modified: branches/include_dynpmc_makefile/src/string/charset/ascii.h
==============================================================================
--- branches/include_dynpmc_makefile/src/string/charset/ascii.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/charset/ascii.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -30,14 +30,14 @@
 
 PARROT_PURE_FUNCTION
 size_t ascii_compute_hash(SHIM_INTERP,
-    ARGIN(const STRING *source_string),
+    ARGIN(const STRING *src),
     size_t seed)
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
 INTVAL ascii_cs_index(PARROT_INTERP,
-    ARGIN(STRING *source_string),
-    ARGIN(STRING *search_string),
+    ARGIN(const STRING *src),
+    ARGIN(const STRING *search_string),
     UINTVAL offset)
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
@@ -45,8 +45,8 @@
 
 PARROT_WARN_UNUSED_RESULT
 INTVAL ascii_cs_rindex(PARROT_INTERP,
-    ARGIN(STRING *source_string),
-    ARGIN(STRING *search_string),
+    ARGIN(const STRING *src),
+    ARGIN(const STRING *search_string),
     UINTVAL offset)
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
@@ -55,26 +55,28 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 STRING * ascii_get_graphemes(PARROT_INTERP,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-STRING * charset_cvt_ascii_to_binary(PARROT_INTERP, ARGIN(STRING *src))
+STRING * charset_cvt_ascii_to_binary(PARROT_INTERP,
+    ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
+STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP,
+    ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
 INTVAL mixed_cs_index(PARROT_INTERP,
-    ARGIN(STRING *src),
-    ARGIN(STRING *search),
+    ARGIN(const STRING *src),
+    ARGIN(const STRING *search),
     UINTVAL offs)
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
@@ -88,18 +90,18 @@
     , PARROT_ASSERT_ARG(lhs) \
     , PARROT_ASSERT_ARG(rhs))
 #define ASSERT_ARGS_ascii_compute_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(source_string))
+       PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_ascii_cs_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string) \
+    , PARROT_ASSERT_ARG(src) \
     , PARROT_ASSERT_ARG(search_string))
 #define ASSERT_ARGS_ascii_cs_rindex __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string) \
+    , PARROT_ASSERT_ARG(src) \
     , PARROT_ASSERT_ARG(search_string))
 #define ASSERT_ARGS_ascii_get_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_charset_cvt_ascii_to_binary __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(src))

Modified: branches/include_dynpmc_makefile/src/string/charset/binary.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/charset/binary.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/charset/binary.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -34,47 +34,46 @@
         __attribute__nonnull__(3);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* compose(PARROT_INTERP, SHIM(STRING *source_string))
+static STRING* compose(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 static INTVAL cs_index(SHIM_INTERP,
-    SHIM(STRING *source_string),
-    SHIM(STRING *search_string),
+    SHIM(const STRING *src),
+    SHIM(const STRING *search_string),
     SHIM(UINTVAL offset));
 
 static INTVAL cs_rindex(SHIM_INTERP,
-    SHIM(STRING *source_string),
-    SHIM(STRING *search_string),
+    SHIM(const STRING *src),
+    SHIM(const STRING *search_string),
     SHIM(UINTVAL offset));
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* decompose(PARROT_INTERP, SHIM(STRING *source_string))
+static STRING* decompose(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* downcase(PARROT_INTERP, SHIM(const STRING *source_string))
+static STRING* downcase(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* downcase_first(PARROT_INTERP,
-    SHIM(const STRING *source_string))
+static STRING* downcase_first(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 static INTVAL find_cclass(SHIM_INTERP,
     SHIM(INTVAL flags),
-    SHIM(STRING *source_string),
+    SHIM(const STRING *src),
     UINTVAL offset,
     UINTVAL count);
 
 static INTVAL find_not_cclass(SHIM_INTERP,
     SHIM(INTVAL flags),
-    SHIM(STRING *source_string),
+    SHIM(const STRING *src),
     UINTVAL offset,
     UINTVAL count);
 
 static INTVAL is_cclass(SHIM_INTERP,
     SHIM(INTVAL flags),
-    SHIM(const STRING *source_string),
+    SHIM(const STRING *src),
     SHIM(UINTVAL offset));
 
 PARROT_CANNOT_RETURN_NULL
@@ -82,29 +81,27 @@
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* titlecase(PARROT_INTERP, SHIM(const STRING *source_string))
+static STRING* titlecase(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* titlecase_first(PARROT_INTERP,
-    SHIM(const STRING *source_string))
+static STRING* titlecase_first(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* to_charset(PARROT_INTERP, ARGIN(STRING *src))
+static STRING* to_charset(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* upcase(PARROT_INTERP, SHIM(const STRING *source_string))
+static STRING* upcase(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* upcase_first(PARROT_INTERP,
-    SHIM(const STRING *source_string))
+static STRING* upcase_first(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
-static UINTVAL validate(SHIM_INTERP, SHIM(STRING *source_string));
+static UINTVAL validate(SHIM_INTERP, SHIM(const STRING *src));
 #define ASSERT_ARGS_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(lhs) \
     , PARROT_ASSERT_ARG(rhs))
@@ -148,7 +145,7 @@
 
 /*
 
-=item C<static STRING* to_charset(PARROT_INTERP, STRING *src)>
+=item C<static STRING* to_charset(PARROT_INTERP, const STRING *src)>
 
 Converts the STRING C<src> to STRING C<dest> in binary mode. Throws
 an exception if a suitable conversion function is not found.
@@ -159,7 +156,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-to_charset(PARROT_INTERP, ARGIN(STRING *src))
+to_charset(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(to_charset)
     charset_converter_t conversion_func =
@@ -174,7 +171,7 @@
 
 /*
 
-=item C<static STRING* compose(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* compose(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we cannot compose a binary string.
 
@@ -185,7 +182,7 @@
 /* A err. can't compose binary */
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-compose(PARROT_INTERP, SHIM(STRING *source_string))
+compose(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(compose)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't compose binary data");
@@ -193,7 +190,7 @@
 
 /*
 
-=item C<static STRING* decompose(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* decompose(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we cannot decompose a binary string.
 
@@ -204,7 +201,7 @@
 /* A err. can't decompose binary */
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-decompose(PARROT_INTERP, SHIM(STRING *source_string))
+decompose(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(decompose)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't decompose binary data");
@@ -212,7 +209,7 @@
 
 /*
 
-=item C<static STRING* upcase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* upcase(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we cannot convert a binary string to
 upper case.
@@ -223,7 +220,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-upcase(PARROT_INTERP, SHIM(const STRING *source_string))
+upcase(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(upcase)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't upcase binary data");
@@ -231,7 +228,7 @@
 
 /*
 
-=item C<static STRING* downcase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* downcase(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we cannot convert a binary string to
 lower-case.
@@ -242,7 +239,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-downcase(PARROT_INTERP, SHIM(const STRING *source_string))
+downcase(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(downcase)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't downcase binary data");
@@ -250,7 +247,7 @@
 
 /*
 
-=item C<static STRING* titlecase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* titlecase(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we cannot convert a binary string to
 title case.
@@ -261,7 +258,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-titlecase(PARROT_INTERP, SHIM(const STRING *source_string))
+titlecase(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(titlecase)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't titlecase binary data");
@@ -269,7 +266,7 @@
 
 /*
 
-=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we cannot set the first "character" of the
 binary string to uppercase.
@@ -280,7 +277,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-upcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
+upcase_first(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(upcase_first)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't upcase binary data");
@@ -288,8 +285,7 @@
 
 /*
 
-=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we cannot set the first "character"
 of the binary string to lowercase.
@@ -300,7 +296,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-downcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
+downcase_first(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(downcase_first)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't downcase binary data");
@@ -308,8 +304,7 @@
 
 /*
 
-=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING *src)>
 
 Throws an exception because we can't convert the first "character"
 of binary data to title case.
@@ -320,7 +315,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-titlecase_first(PARROT_INTERP, SHIM(const STRING *source_string))
+titlecase_first(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(titlecase_first)
     EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't titlecase binary data");
@@ -351,7 +346,7 @@
 
 /*
 
-=item C<static INTVAL cs_index(PARROT_INTERP, STRING *source_string, STRING
+=item C<static INTVAL cs_index(PARROT_INTERP, const STRING *src, const STRING
 *search_string, UINTVAL offset)>
 
 Returns -1. It makes no sense to try and search for a substring in
@@ -362,8 +357,8 @@
 */
 
 static INTVAL
-cs_index(SHIM_INTERP, SHIM(STRING *source_string),
-        SHIM(STRING *search_string), SHIM(UINTVAL offset))
+cs_index(SHIM_INTERP, SHIM(const STRING *src),
+        SHIM(const STRING *search_string), SHIM(UINTVAL offset))
 {
     ASSERT_ARGS(cs_index)
     return -1;
@@ -371,7 +366,7 @@
 
 /*
 
-=item C<static INTVAL cs_rindex(PARROT_INTERP, STRING *source_string, STRING
+=item C<static INTVAL cs_rindex(PARROT_INTERP, const STRING *src, const STRING
 *search_string, UINTVAL offset)>
 
 Returns -1. It makes no sense to search for the last substring match
@@ -382,8 +377,8 @@
 */
 
 static INTVAL
-cs_rindex(SHIM_INTERP, SHIM(STRING *source_string),
-        SHIM(STRING *search_string), SHIM(UINTVAL offset))
+cs_rindex(SHIM_INTERP, SHIM(const STRING *src),
+        SHIM(const STRING *search_string), SHIM(UINTVAL offset))
 {
     ASSERT_ARGS(cs_rindex)
     return -1;
@@ -391,7 +386,7 @@
 
 /*
 
-=item C<static UINTVAL validate(PARROT_INTERP, STRING *source_string)>
+=item C<static UINTVAL validate(PARROT_INTERP, const STRING *src)>
 
 Returns 1. All sequential data is valid binary data.
 
@@ -401,7 +396,7 @@
 
 /* Binary's always valid */
 static UINTVAL
-validate(SHIM_INTERP, SHIM(STRING *source_string))
+validate(SHIM_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(validate)
     return 1;
@@ -409,16 +404,15 @@
 
 /*
 
-=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING
-*source_string, UINTVAL offset)>
+=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
+UINTVAL offset)>
 
 =cut
 
 */
 
 static INTVAL
-is_cclass(SHIM_INTERP, SHIM(INTVAL flags), SHIM(const STRING *source_string),
-        SHIM(UINTVAL offset))
+is_cclass(SHIM_INTERP, SHIM(INTVAL flags), SHIM(const STRING *src), SHIM(UINTVAL offset))
 {
     ASSERT_ARGS(is_cclass)
     return 0;
@@ -426,8 +420,8 @@
 
 /*
 
-=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 =cut
 
@@ -435,7 +429,7 @@
 
 static INTVAL
 find_cclass(SHIM_INTERP, SHIM(INTVAL flags),
-            SHIM(STRING *source_string), UINTVAL offset, UINTVAL count)
+            SHIM(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_cclass)
     return offset + count;
@@ -443,8 +437,8 @@
 
 /*
 
-=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 =cut
 
@@ -452,7 +446,7 @@
 
 static INTVAL
 find_not_cclass(SHIM_INTERP, SHIM(INTVAL flags),
-               SHIM(STRING *source_string), UINTVAL offset, UINTVAL count)
+               SHIM(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_not_cclass)
     return offset + count;

Modified: branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -27,28 +27,27 @@
 
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-static STRING* compose(PARROT_INTERP, ARGIN(STRING *src))
+static STRING* compose(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* decompose(PARROT_INTERP, SHIM(STRING *src))
+static STRING* decompose(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+static STRING* downcase(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* downcase_first(PARROT_INTERP,
-    ARGIN(const STRING *source_string))
+static STRING* downcase_first(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 static INTVAL find_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -56,7 +55,7 @@
 
 static INTVAL find_not_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -64,7 +63,7 @@
 
 static INTVAL is_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(const STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset)
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
@@ -74,44 +73,42 @@
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
+static STRING* titlecase(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* titlecase_first(PARROT_INTERP,
-    ARGIN(const STRING *source_string))
+static STRING* titlecase_first(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-static STRING * to_charset(PARROT_INTERP, ARGIN(STRING *src))
+static STRING * to_charset(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING * to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
+static STRING * to_iso_8859_1(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING * to_unicode(PARROT_INTERP, ARGIN(STRING *src))
+static STRING * to_unicode(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+static STRING* upcase(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* upcase_first(PARROT_INTERP,
-    ARGIN(const STRING *source_string))
+static STRING* upcase_first(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-static UINTVAL validate(PARROT_INTERP, ARGIN(STRING *src))
+static UINTVAL validate(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
@@ -122,27 +119,27 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_downcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_downcase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_find_not_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_is_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_string_from_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_titlecase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_to_charset __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(src))
@@ -154,10 +151,10 @@
     , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_upcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_upcase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_validate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(src))
@@ -168,7 +165,7 @@
 
 /*
 
-=item C<static STRING * to_iso_8859_1(PARROT_INTERP, STRING *src)>
+=item C<static STRING * to_iso_8859_1(PARROT_INTERP, const STRING *src)>
 
 Converts STRING C<src> to iso-8859-1 in STRING C<dest>.
 
@@ -178,7 +175,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
+to_iso_8859_1(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(to_iso_8859_1)
     UINTVAL offs, src_len;
@@ -204,7 +201,7 @@
 
 /*
 
-=item C<static STRING * to_unicode(PARROT_INTERP, STRING *src)>
+=item C<static STRING * to_unicode(PARROT_INTERP, const STRING *src)>
 
 Converts STRING C<src> to unicode STRING C<dest>.
 
@@ -214,7 +211,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-to_unicode(PARROT_INTERP, ARGIN(STRING *src))
+to_unicode(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(to_unicode)
     STRING * dest = Parrot_str_clone(interp, src);
@@ -244,7 +241,7 @@
 
 /*
 
-=item C<static STRING * to_charset(PARROT_INTERP, STRING *src)>
+=item C<static STRING * to_charset(PARROT_INTERP, const STRING *src)>
 
 Converts the STRING C<src> to an ISO-8859-1 STRING C<dest>.
 
@@ -255,7 +252,7 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 static STRING *
-to_charset(PARROT_INTERP, ARGIN(STRING *src))
+to_charset(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(to_charset)
     const charset_converter_t conversion_func =
@@ -270,7 +267,7 @@
 
 /*
 
-=item C<static STRING* compose(PARROT_INTERP, STRING *src)>
+=item C<static STRING* compose(PARROT_INTERP, const STRING *src)>
 
 ISO-8859-1 does not support composing, so we just copy the STRING C<src> and return the
 copy.
@@ -279,19 +276,21 @@
 
 */
 
-/* A noop. can't compose iso-8859-1 */
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 static STRING*
-compose(PARROT_INTERP, ARGIN(STRING *src))
+compose(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(compose)
-    return src;
+
+    STRING * const dest = Parrot_str_copy(interp, src);
+
+    return dest;
 }
 
 /*
 
-=item C<static STRING* decompose(PARROT_INTERP, STRING *src)>
+=item C<static STRING* decompose(PARROT_INTERP, const STRING *src)>
 
 SO-8859-1 does not support decomposing, so we throw an exception.
 
@@ -301,7 +300,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-decompose(PARROT_INTERP, SHIM(STRING *src))
+decompose(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(decompose)
     Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
@@ -310,9 +309,9 @@
 
 /*
 
-=item C<static STRING* upcase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* upcase(PARROT_INTERP, const STRING *src)>
 
-Convert all graphemes in the STRING C<source_string> to upper case, for those
+Convert all graphemes in the STRING C<src> to upper case, for those
 graphemes that support cases.
 
 =cut
@@ -321,12 +320,12 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+upcase(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(upcase)
     unsigned char *buffer;
     UINTVAL        offset = 0;
-    STRING        *result = Parrot_str_clone(interp, source_string);
+    STRING        *result = Parrot_str_clone(interp, src);
 
     if (!result->strlen)
         return result;
@@ -346,9 +345,9 @@
 
 /*
 
-=item C<static STRING* downcase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* downcase(PARROT_INTERP, const STRING *src)>
 
-Converts all graphemes in STRING C<source_string> to lower-case, for those graphemes
+Converts all graphemes in STRING C<src> to lower-case, for those graphemes
 that support cases.
 
 =cut
@@ -357,12 +356,12 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+downcase(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(downcase)
     unsigned char *buffer;
     UINTVAL        offset = 0;
-    STRING        *result = Parrot_str_clone(interp, source_string);
+    STRING        *result = Parrot_str_clone(interp, src);
 
     if (!result->strlen)
         return result;
@@ -382,9 +381,9 @@
 
 /*
 
-=item C<static STRING* titlecase(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* titlecase(PARROT_INTERP, const STRING *src)>
 
-Converts the graphemes in STRING C<source_string> to title case, for those graphemes
+Converts the graphemes in STRING C<src> to title case, for those graphemes
 that support cases.
 
 =cut
@@ -393,13 +392,13 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
+titlecase(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(titlecase)
     unsigned char *buffer;
     unsigned int   c;
     UINTVAL        offset;
-    STRING        *result = Parrot_str_clone(interp, source_string);
+    STRING        *result = Parrot_str_clone(interp, src);
 
     if (!result->strlen)
         return result;
@@ -426,9 +425,9 @@
 
 /*
 
-=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *src)>
 
-Converts the first grapheme in STRING C<source_string> to upper case, if it
+Converts the first grapheme in STRING C<src> to upper case, if it
 supports cases.
 
 =cut
@@ -437,12 +436,12 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-upcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
+upcase_first(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(upcase_first)
     unsigned char *buffer;
     unsigned int   c;
-    STRING        *result = Parrot_str_clone(interp, source_string);
+    STRING        *result = Parrot_str_clone(interp, src);
 
     if (!result->strlen)
         return result;
@@ -460,10 +459,9 @@
 
 /*
 
-=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING *src)>
 
-Converts the first character of the STRING C<source_string> to lower case, if the
+Converts the first character of the STRING C<src> to lower case, if the
 grapheme supports lower case.
 
 =cut
@@ -472,12 +470,12 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-downcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
+downcase_first(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(downcase_first)
     unsigned char *buffer;
     unsigned int   c;
-    STRING        *result = Parrot_str_clone(interp, source_string);
+    STRING        *result = Parrot_str_clone(interp, src);
 
     if (!result->strlen)
         return result;
@@ -495,10 +493,9 @@
 
 /*
 
-=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING *src)>
 
-Converts the first grapheme in STRING C<source_string> to title case, if the grapheme
+Converts the first grapheme in STRING C<src> to title case, if the grapheme
 supports case.
 
 =cut
@@ -507,16 +504,16 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-titlecase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
+titlecase_first(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(titlecase_first)
-    return upcase_first(interp, source_string);
+    return upcase_first(interp, src);
 }
 
 
 /*
 
-=item C<static UINTVAL validate(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL validate(PARROT_INTERP, const STRING *src)>
 
 Returns 1 if the STRING C<src> is a valid ISO-8859-1 STRING. Returns 0 otherwise.
 
@@ -525,7 +522,7 @@
 */
 
 static UINTVAL
-validate(PARROT_INTERP, ARGIN(STRING *src))
+validate(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(validate)
     UINTVAL offset;
@@ -540,22 +537,21 @@
 
 /*
 
-=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING
-*source_string, UINTVAL offset)>
+=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
+UINTVAL offset)>
 
 =cut
 
 */
 
 static INTVAL
-is_cclass(PARROT_INTERP, INTVAL flags,
-          ARGIN(const STRING *source_string), UINTVAL offset)
+is_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src), UINTVAL offset)
 {
     ASSERT_ARGS(is_cclass)
     UINTVAL codepoint;
 
-    if (offset >= source_string->strlen) return 0;
-    codepoint = ENCODING_GET_CODEPOINT(interp, source_string, offset);
+    if (offset >= src->strlen) return 0;
+    codepoint = ENCODING_GET_CODEPOINT(interp, src, offset);
 
     if (codepoint >= sizeof (Parrot_ascii_typetable) /
                      sizeof (Parrot_ascii_typetable[0])) {
@@ -566,8 +562,8 @@
 
 /*
 
-=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 Find a character in the given character class.  Delegates to the find_cclass
 method of the encoding plugin.
@@ -578,21 +574,21 @@
 
 static INTVAL
 find_cclass(PARROT_INTERP, INTVAL flags,
-            ARGIN(STRING *source_string), UINTVAL offset, UINTVAL count)
+                ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_cclass)
-    UINTVAL pos = offset;
+    const UINTVAL pos = offset;
     UINTVAL end = offset + count;
 
-    end = source_string->strlen < end ? source_string->strlen : end;
-    return ENCODING_FIND_CCLASS(interp, source_string,
+    end = src->strlen < end ? src->strlen : end;
+    return ENCODING_FIND_CCLASS(interp, src,
             Parrot_iso_8859_1_typetable, flags, pos, end);
 }
 
 /*
 
-=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 =cut
 
@@ -600,15 +596,15 @@
 
 static INTVAL
 find_not_cclass(PARROT_INTERP, INTVAL flags,
-                ARGIN(STRING *source_string), UINTVAL offset, UINTVAL count)
+                ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_not_cclass)
     UINTVAL pos = offset;
     UINTVAL end = offset + count;
 
-    end = source_string->strlen < end ? source_string->strlen : end;
+    end = src->strlen < end ? src->strlen : end;
     for (; pos < end; ++pos) {
-        const UINTVAL codepoint = ENCODING_GET_CODEPOINT(interp, source_string, pos);
+        const UINTVAL codepoint = ENCODING_GET_CODEPOINT(interp, src, pos);
         if ((Parrot_iso_8859_1_typetable[codepoint] & flags) == 0) {
             return pos;
         }
@@ -686,7 +682,8 @@
 
 /*
 
-=item C<STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, STRING *src)>
+=item C<STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, const STRING
+*src)>
 
 Converts STRING C<src> in ISO-8859-1 to ASCII STRING C<dest>.
 
@@ -697,7 +694,7 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 STRING *
-charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, ARGIN(STRING *src))
+charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(charset_cvt_iso_8859_1_to_ascii)
     UINTVAL offs;

Modified: branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.h
==============================================================================
--- branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.h	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/charset/iso-8859-1.h	Wed Apr 28 19:17:12 2010	(r46116)
@@ -18,7 +18,8 @@
 
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, ARGIN(STRING *src))
+STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP,
+    ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 

Modified: branches/include_dynpmc_makefile/src/string/charset/unicode.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/charset/unicode.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/charset/unicode.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2005-2009, Parrot Foundation.
+Copyright (C) 2005-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -34,7 +34,7 @@
         __attribute__nonnull__(3);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* compose(PARROT_INTERP, ARGIN(STRING *src))
+static STRING* compose(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
@@ -45,13 +45,13 @@
         __attribute__nonnull__(2);
 
 static INTVAL cs_rindex(PARROT_INTERP,
-    SHIM(STRING *source_string),
-    SHIM(STRING *search_string),
+    SHIM(const STRING *src),
+    SHIM(const STRING *search_string),
     SHIM(UINTVAL offset))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* decompose(PARROT_INTERP, SHIM(STRING *src))
+static STRING* decompose(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
@@ -60,13 +60,12 @@
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* downcase_first(PARROT_INTERP,
-    SHIM(const STRING *source_string))
+static STRING* downcase_first(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 static INTVAL find_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -74,7 +73,7 @@
 
 static INTVAL find_not_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -82,7 +81,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_graphemes(PARROT_INTERP,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -90,7 +89,7 @@
 
 static INTVAL is_cclass(PARROT_INTERP,
     INTVAL flags,
-    ARGIN(const STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset)
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
@@ -105,12 +104,11 @@
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* titlecase_first(PARROT_INTERP,
-    SHIM(const STRING *source_string))
+static STRING* titlecase_first(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* to_charset(PARROT_INTERP, ARGIN(STRING *src))
+static STRING* to_charset(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
@@ -123,11 +121,10 @@
         __attribute__nonnull__(2);
 
 PARROT_CANNOT_RETURN_NULL
-static STRING* upcase_first(PARROT_INTERP,
-    SHIM(const STRING *source_string))
+static STRING* upcase_first(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
-static UINTVAL validate(PARROT_INTERP, ARGIN(STRING *src))
+static UINTVAL validate(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
@@ -152,16 +149,16 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_find_not_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_get_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_is_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_string_from_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -204,10 +201,10 @@
 
 /*
 
-=item C<static STRING * get_graphemes(PARROT_INTERP, STRING *source_string,
-UINTVAL offset, UINTVAL count)>
+=item C<static STRING * get_graphemes(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
 
-Gets the graphemes from STRING C<source_string> starting at C<offset>. Gets
+Gets the graphemes from STRING C<src> starting at C<offset>. Gets
 C<count> graphemes total.
 
 =cut
@@ -216,17 +213,16 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_graphemes(PARROT_INTERP, ARGIN(STRING *source_string),
-        UINTVAL offset, UINTVAL count)
+get_graphemes(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_graphemes)
-    return ENCODING_GET_CODEPOINTS(interp, source_string, offset, count);
+    return ENCODING_GET_CODEPOINTS(interp, src, offset, count);
 }
 
 
 /*
 
-=item C<static STRING* to_charset(PARROT_INTERP, STRING *src)>
+=item C<static STRING* to_charset(PARROT_INTERP, const STRING *src)>
 
 Converts input STRING C<src> to unicode STRING C<dest>.
 
@@ -236,7 +232,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-to_charset(PARROT_INTERP, ARGIN(STRING *src))
+to_charset(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(to_charset)
     const charset_converter_t conversion_func =
@@ -252,7 +248,7 @@
 
 /*
 
-=item C<static STRING* compose(PARROT_INTERP, STRING *src)>
+=item C<static STRING* compose(PARROT_INTERP, const STRING *src)>
 
 If Parrot is built with ICU, composes the STRING C<src>. Attempts to
 denormalize the STRING into the ICU default, NFC.
@@ -265,7 +261,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-compose(PARROT_INTERP, ARGIN(STRING *src))
+compose(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(compose)
 #if PARROT_HAS_ICU
@@ -315,7 +311,7 @@
 
 /*
 
-=item C<static STRING* decompose(PARROT_INTERP, STRING *src)>
+=item C<static STRING* decompose(PARROT_INTERP, const STRING *src)>
 
 Decompose function for unicode charset. This function is not yet implemented.
 
@@ -325,7 +321,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-decompose(PARROT_INTERP, SHIM(STRING *src))
+decompose(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(decompose)
     /* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -577,9 +573,9 @@
 
 /*
 
-=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *src)>
 
-Converts the first grapheme in the STRING C<source_string> to uppercase, if the
+Converts the first grapheme in the STRING C<src> to uppercase, if the
 grapheme supports it. Not implemented.
 
 =cut
@@ -588,7 +584,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-upcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
+upcase_first(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(upcase_first)
     /* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -598,10 +594,9 @@
 
 /*
 
-=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING *src)>
 
-Converts the first grapheme in the STRING C<source_string> to lower-case, if
+Converts the first grapheme in the STRING C<src> to lower-case, if
 the grapheme supports it. Not implemented
 
 =cut
@@ -610,7 +605,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-downcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
+downcase_first(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(downcase_first)
     /* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -620,10 +615,9 @@
 
 /*
 
-=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
-*source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING *src)>
 
-Converts the first grapheme in STRING C<source_string> to title case, if the
+Converts the first grapheme in STRING C<src> to title case, if the
 string supports it. Not implemented.
 
 =cut
@@ -632,7 +626,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING*
-titlecase_first(PARROT_INTERP, SHIM(const STRING *source_string))
+titlecase_first(PARROT_INTERP, SHIM(const STRING *src))
 {
     ASSERT_ARGS(titlecase_first)
     /* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -688,10 +682,10 @@
 
 /*
 
-=item C<static INTVAL cs_rindex(PARROT_INTERP, STRING *source_string, STRING
+=item C<static INTVAL cs_rindex(PARROT_INTERP, const STRING *src, const STRING
 *search_string, UINTVAL offset)>
 
-Finds the last index of substring C<search_string> in STRING C<source_string>,
+Finds the last index of substring C<search_string> in STRING C<src>,
 starting from C<offset>. Not implemented.
 
 =cut
@@ -699,8 +693,8 @@
 */
 
 static INTVAL
-cs_rindex(PARROT_INTERP, SHIM(STRING *source_string),
-        SHIM(STRING *search_string), SHIM(UINTVAL offset))
+cs_rindex(PARROT_INTERP, SHIM(const STRING *src),
+        SHIM(const STRING *search_string), SHIM(UINTVAL offset))
 {
     ASSERT_ARGS(cs_rindex)
     /* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -710,7 +704,7 @@
 
 /*
 
-=item C<static UINTVAL validate(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL validate(PARROT_INTERP, const STRING *src)>
 
 Returns 1 if the STRING C<src> is a valid unicode string, returns 0 otherwise.
 
@@ -719,7 +713,7 @@
 */
 
 static UINTVAL
-validate(PARROT_INTERP, ARGIN(STRING *src))
+validate(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(validate)
     UINTVAL     offset;
@@ -752,6 +746,7 @@
 {
     ASSERT_ARGS(u_iscclass)
 #if PARROT_HAS_ICU
+    UNUSED(interp);
             /* XXX which one
                return u_charDigitValue(codepoint);
                */
@@ -835,24 +830,23 @@
 
 /*
 
-=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING
-*source_string, UINTVAL offset)>
+=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
+UINTVAL offset)>
 
 =cut
 
 */
 
 static INTVAL
-is_cclass(PARROT_INTERP, INTVAL flags,
-          ARGIN(const STRING *source_string), UINTVAL offset)
+is_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src), UINTVAL offset)
 {
     ASSERT_ARGS(is_cclass)
     UINTVAL codepoint;
 
-    if (offset >= source_string->strlen)
+    if (offset >= src->strlen)
         return 0;
 
-    codepoint = ENCODING_GET_CODEPOINT(interp, source_string, offset);
+    codepoint = ENCODING_GET_CODEPOINT(interp, src, offset);
 
     if (codepoint >= 256)
         return u_iscclass(interp, codepoint, flags) != 0;
@@ -863,16 +857,15 @@
 
 /*
 
-=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 =cut
 
 */
 
 static INTVAL
-find_cclass(PARROT_INTERP, INTVAL flags,
-            ARGIN(STRING *source_string), UINTVAL offset, UINTVAL count)
+find_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_cclass)
     String_iter iter;
@@ -880,11 +873,11 @@
     UINTVAL     pos = offset;
     UINTVAL     end = offset + count;
 
-    ENCODING_ITER_INIT(interp, source_string, &iter);
+    ENCODING_ITER_INIT(interp, src, &iter);
 
     iter.set_position(interp, &iter, pos);
 
-    end = source_string->strlen < end ? source_string->strlen : end;
+    end = src->strlen < end ? src->strlen : end;
 
     for (; pos < end; ++pos) {
         codepoint = iter.get_and_advance(interp, &iter);
@@ -904,16 +897,16 @@
 
 /*
 
-=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, STRING
-*source_string, UINTVAL offset, UINTVAL count)>
+=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
+*src, UINTVAL offset, UINTVAL count)>
 
 =cut
 
 */
 
 static INTVAL
-find_not_cclass(PARROT_INTERP, INTVAL flags,
-                ARGIN(STRING *source_string), UINTVAL offset, UINTVAL count)
+find_not_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src),
+        UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(find_not_cclass)
     String_iter iter;
@@ -922,17 +915,17 @@
     UINTVAL     end = offset + count;
     int         bit;
 
-    if (pos > source_string->strlen) {
+    if (pos > src->strlen) {
         /* XXX: Throw in this case? */
         return offset + count;
     }
 
-    ENCODING_ITER_INIT(interp, source_string, &iter);
+    ENCODING_ITER_INIT(interp, src, &iter);
 
     if (pos)
         iter.set_position(interp, &iter, pos);
 
-    end = source_string->strlen < end ? source_string->strlen : end;
+    end = src->strlen < end ? src->strlen : end;
 
     if (flags == enum_cclass_any)
         return end;

Modified: branches/include_dynpmc_makefile/src/string/encoding/fixed_8.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/encoding/fixed_8.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/encoding/fixed_8.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -24,16 +24,16 @@
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
-static UINTVAL bytes(SHIM_INTERP, ARGIN(const STRING *source_string))
+static UINTVAL bytes(SHIM_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(2);
 
-static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *source_string))
+static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL find_cclass(SHIM_INTERP,
-    ARGIN(STRING *s),
+    ARGIN(const STRING *s),
     ARGIN(const INTVAL *typetable),
     INTVAL flags,
     UINTVAL pos,
@@ -66,14 +66,14 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL get_byte(SHIM_INTERP,
-    ARGIN(const STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset)
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_bytes(PARROT_INTERP,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -81,7 +81,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL get_codepoint(PARROT_INTERP,
-    ARGIN(const STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset)
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -89,7 +89,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_codepoints(PARROT_INTERP,
-    ARGIN(STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -103,7 +103,7 @@
         FUNC_MODIFIES(*iter);
 
 static void set_byte(PARROT_INTERP,
-    ARGIN(const STRING *source_string),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL byte)
         __attribute__nonnull__(1)
@@ -115,10 +115,10 @@
         __attribute__nonnull__(1);
 
 #define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(source_string))
+       PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(s) \
     , PARROT_ASSERT_ARG(typetable))
@@ -133,22 +133,22 @@
 #define ASSERT_ARGS_fixed_8_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(s))
 #define ASSERT_ARGS_get_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(source_string))
+       PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_get_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_get_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(src) \
     , PARROT_ASSERT_ARG(iter))
 #define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(source_string))
+    , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
@@ -182,8 +182,8 @@
 
 /*
 
-=item C<static UINTVAL get_codepoint(PARROT_INTERP, const STRING *source_string,
-UINTVAL offset)>
+=item C<static UINTVAL get_codepoint(PARROT_INTERP, const STRING *src, UINTVAL
+offset)>
 
 codepoints are bytes, so delegate
 
@@ -193,17 +193,17 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-get_codepoint(PARROT_INTERP, ARGIN(const STRING *source_string),
+get_codepoint(PARROT_INTERP, ARGIN(const STRING *src),
         UINTVAL offset)
 {
     ASSERT_ARGS(get_codepoint)
-    return get_byte(interp, source_string, offset);
+    return get_byte(interp, src, offset);
 }
 
 
 /*
 
-=item C<static UINTVAL find_cclass(PARROT_INTERP, STRING *s, const INTVAL
+=item C<static UINTVAL find_cclass(PARROT_INTERP, const STRING *s, const INTVAL
 *typetable, INTVAL flags, UINTVAL pos, UINTVAL end)>
 
 codepoints are bytes, so delegate
@@ -214,7 +214,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-find_cclass(SHIM_INTERP, ARGIN(STRING *s), ARGIN(const INTVAL *typetable),
+find_cclass(SHIM_INTERP, ARGIN(const STRING *s), ARGIN(const INTVAL *typetable),
 INTVAL flags, UINTVAL pos, UINTVAL end)
 {
     ASSERT_ARGS(find_cclass)
@@ -229,8 +229,8 @@
 
 /*
 
-=item C<static UINTVAL get_byte(PARROT_INTERP, const STRING *source_string,
-UINTVAL offset)>
+=item C<static UINTVAL get_byte(PARROT_INTERP, const STRING *src, UINTVAL
+offset)>
 
 Returns the byte in string C<src> at position C<offset>.
 
@@ -240,15 +240,15 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-get_byte(SHIM_INTERP, ARGIN(const STRING *source_string), UINTVAL offset)
+get_byte(SHIM_INTERP, ARGIN(const STRING *src), UINTVAL offset)
 {
     ASSERT_ARGS(get_byte)
-    const unsigned char *contents = (const unsigned char *)source_string->strstart;
+    const unsigned char *contents = (const unsigned char *)src->strstart;
 
-    if (offset >= source_string->bufused) {
+    if (offset >= src->bufused) {
 /*        Parrot_ex_throw_from_c_args(interp, NULL, 0,
                 "get_byte past the end of the buffer (%i of %i)",
-                offset, source_string->bufused); */
+                offset, src->bufused); */
         return 0;
     }
 
@@ -257,8 +257,8 @@
 
 /*
 
-=item C<static void set_byte(PARROT_INTERP, const STRING *source_string, UINTVAL
-offset, UINTVAL byte)>
+=item C<static void set_byte(PARROT_INTERP, const STRING *src, UINTVAL offset,
+UINTVAL byte)>
 
 Sets, in string C<src> at position C<offset>, the byte C<byte>.
 
@@ -267,24 +267,23 @@
 */
 
 static void
-set_byte(PARROT_INTERP, ARGIN(const STRING *source_string),
-        UINTVAL offset, UINTVAL byte)
+set_byte(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL byte)
 {
     ASSERT_ARGS(set_byte)
     unsigned char *contents;
 
-    if (offset >= source_string->bufused)
+    if (offset >= src->bufused)
         Parrot_ex_throw_from_c_args(interp, NULL, 0,
             "set_byte past the end of the buffer");
 
-    contents = (unsigned char *)source_string->strstart;
+    contents = (unsigned char *)src->strstart;
     contents[offset] = (unsigned char)byte;
 }
 
 /*
 
-=item C<static STRING * get_codepoints(PARROT_INTERP, STRING *source_string,
-UINTVAL offset, UINTVAL count)>
+=item C<static STRING * get_codepoints(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
 
 Returns the codepoints in string C<src> at position C<offset> and length
 C<count>.  (Delegates to C<get_bytes>.)
@@ -296,19 +295,17 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_codepoints(PARROT_INTERP, ARGIN(STRING *source_string),
-        UINTVAL offset, UINTVAL count)
+get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_codepoints)
-    STRING * const return_string = get_bytes(interp, source_string,
-            offset, count);
-    return_string->charset = source_string->charset;
+    STRING * const return_string = get_bytes(interp, src, offset, count);
+    return_string->charset = src->charset;
     return return_string;
 }
 
 /*
 
-=item C<static STRING * get_bytes(PARROT_INTERP, STRING *source_string, UINTVAL
+=item C<static STRING * get_bytes(PARROT_INTERP, const STRING *src, UINTVAL
 offset, UINTVAL count)>
 
 Returns the bytes in string C<src> at position C<offset> and length C<count>.
@@ -320,13 +317,13 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_bytes(PARROT_INTERP, ARGIN(STRING *source_string), UINTVAL offset, UINTVAL count)
+get_bytes(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_bytes)
-    STRING * const return_string = Parrot_str_copy(interp, source_string);
+    STRING * const return_string = Parrot_str_copy(interp, src);
 
-    return_string->encoding = source_string->encoding;
-    return_string->charset = source_string->charset;
+    return_string->encoding = src->encoding;
+    return_string->charset = src->charset;
 
     return_string->strstart = (char *)return_string->strstart + offset ;
     return_string->bufused = count;
@@ -340,7 +337,7 @@
 
 /*
 
-=item C<static UINTVAL codepoints(PARROT_INTERP, const STRING *source_string)>
+=item C<static UINTVAL codepoints(PARROT_INTERP, const STRING *src)>
 
 Returns the number of codepoints in string C<src>.
 
@@ -349,15 +346,15 @@
 */
 
 static UINTVAL
-codepoints(PARROT_INTERP, ARGIN(const STRING *source_string))
+codepoints(PARROT_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(codepoints)
-    return bytes(interp, source_string);
+    return bytes(interp, src);
 }
 
 /*
 
-=item C<static UINTVAL bytes(PARROT_INTERP, const STRING *source_string)>
+=item C<static UINTVAL bytes(PARROT_INTERP, const STRING *src)>
 
 Returns the number of bytes in string C<src>.
 
@@ -366,10 +363,10 @@
 */
 
 static UINTVAL
-bytes(SHIM_INTERP, ARGIN(const STRING *source_string))
+bytes(SHIM_INTERP, ARGIN(const STRING *src))
 {
     ASSERT_ARGS(bytes)
-    return source_string->bufused;
+    return src->bufused;
 }
 
 /*

Modified: branches/include_dynpmc_makefile/src/string/encoding/ucs2.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/encoding/ucs2.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/encoding/ucs2.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -47,7 +47,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL find_cclass(PARROT_INTERP,
-    ARGIN(STRING *s),
+    ARGIN(const STRING *s),
     ARGIN(const INTVAL *typetable),
     INTVAL flags,
     UINTVAL pos,
@@ -64,7 +64,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_bytes(PARROT_INTERP,
-    SHIM(STRING *src),
+    SHIM(const STRING *src),
     SHIM(UINTVAL offset),
     SHIM(UINTVAL count))
         __attribute__nonnull__(1);
@@ -78,7 +78,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_codepoints(PARROT_INTERP,
-    ARGIN(STRING *src),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -221,6 +221,7 @@
     ASSERT_ARGS(get_codepoint)
 #if PARROT_HAS_ICU
     const UChar * const s = (const UChar*) src->strstart;
+    UNUSED(interp);
     return s[offset];
 #else
     UNUSED(offset);
@@ -232,7 +233,7 @@
 
 /*
 
-=item C<static UINTVAL find_cclass(PARROT_INTERP, STRING *s, const INTVAL
+=item C<static UINTVAL find_cclass(PARROT_INTERP, const STRING *s, const INTVAL
 *typetable, INTVAL flags, UINTVAL pos, UINTVAL end)>
 
 Stub, the charset level handles this for unicode strings.
@@ -243,7 +244,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-find_cclass(PARROT_INTERP, ARGIN(STRING *s), ARGIN(const INTVAL *typetable),
+find_cclass(PARROT_INTERP, ARGIN(const STRING *s), ARGIN(const INTVAL *typetable),
 INTVAL flags, UINTVAL pos, UINTVAL end)
 {
     UNUSED(s);
@@ -296,7 +297,7 @@
 
 /*
 
-=item C<static STRING * get_codepoints(PARROT_INTERP, STRING *src, UINTVAL
+=item C<static STRING * get_codepoints(PARROT_INTERP, const STRING *src, UINTVAL
 offset, UINTVAL count)>
 
 Returns the codepoints in string C<src> at position C<offset> and length
@@ -309,7 +310,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_codepoints(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL count)
+get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_codepoints)
     STRING * const return_string = Parrot_str_copy(interp, src);
@@ -337,8 +338,8 @@
 
 /*
 
-=item C<static STRING * get_bytes(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count)>
+=item C<static STRING * get_bytes(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
 
 Returns the bytes in string C<src> at position C<offset> and length C<count>.
 
@@ -349,7 +350,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_bytes(PARROT_INTERP, SHIM(STRING *src), SHIM(UINTVAL offset),
+get_bytes(PARROT_INTERP, SHIM(const STRING *src), SHIM(UINTVAL offset),
         SHIM(UINTVAL count))
 {
     ASSERT_ARGS(get_bytes)
@@ -483,8 +484,9 @@
 {
     ASSERT_ARGS(ucs2_hash)
 #if PARROT_HAS_ICU
-    UChar  *pos = (UChar*) s->strstart;
+    const UChar *pos = (const UChar*) s->strstart;
     UINTVAL len = s->strlen;
+    UNUSED(interp);
 
     while (len--) {
         hashval += hashval << 5;

Modified: branches/include_dynpmc_makefile/src/string/encoding/utf16.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/encoding/utf16.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/encoding/utf16.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -37,7 +37,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL find_cclass(PARROT_INTERP,
-    ARGIN(STRING *s),
+    ARGIN(const STRING *s),
     ARGIN(const INTVAL *typetable),
     INTVAL flags,
     UINTVAL pos,
@@ -54,7 +54,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_bytes(PARROT_INTERP,
-    ARGIN(STRING *src),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -69,7 +69,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_codepoints(PARROT_INTERP,
-    ARGIN(STRING *src),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -97,23 +97,19 @@
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
-static UINTVAL utf16_decode_and_advance(PARROT_INTERP,
-    ARGMOD(String_iter *i))
-        __attribute__nonnull__(1)
+static UINTVAL utf16_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*i);
 
-static void utf16_encode_and_advance(PARROT_INTERP,
+static void utf16_encode_and_advance(SHIM_INTERP,
     ARGMOD(String_iter *i),
     UINTVAL c)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*i);
 
-static void utf16_set_position(PARROT_INTERP,
+static void utf16_set_position(SHIM_INTERP,
     ARGMOD(String_iter *i),
     UINTVAL n)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*i);
 
@@ -148,14 +144,11 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_utf16_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(i))
+       PARROT_ASSERT_ARG(i))
 #define ASSERT_ARGS_utf16_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(i))
+       PARROT_ASSERT_ARG(i))
 #define ASSERT_ARGS_utf16_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(i))
+       PARROT_ASSERT_ARG(i))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -213,14 +206,6 @@
         result->strlen = result->bufused = 0;
         return result;
     }
-    /*
-       u_strFromUTF8(UChar *dest,
-       int32_t destCapacity,
-       int32_t *pDestLength,
-       const char *src,
-       int32_t srcLength,
-       UErrorCode *pErrorCode);
-       */
 #if PARROT_HAS_ICU
     Parrot_gc_allocate_string_storage(interp, result, sizeof (UChar) * src_len);
     p = (UChar *)result->strstart;
@@ -279,8 +264,9 @@
 {
     ASSERT_ARGS(get_codepoint)
 #if PARROT_HAS_ICU
-    UChar * const s = (UChar*) src->strstart;
+    const UChar * const s = (UChar*) src->strstart;
     UINTVAL c, pos;
+    UNUSED(interp);
 
     pos = 0;
     U16_FWD_N_UNSAFE(s, pos, offset);
@@ -298,7 +284,7 @@
 
 /*
 
-=item C<static UINTVAL find_cclass(PARROT_INTERP, STRING *s, const INTVAL
+=item C<static UINTVAL find_cclass(PARROT_INTERP, const STRING *s, const INTVAL
 *typetable, INTVAL flags, UINTVAL pos, UINTVAL end)>
 
 Stub, the charset level handles this for unicode strings.
@@ -309,7 +295,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-find_cclass(PARROT_INTERP, ARGIN(STRING *s), ARGIN(const INTVAL *typetable),
+find_cclass(PARROT_INTERP, ARGIN(const STRING *s), ARGIN(const INTVAL *typetable),
 INTVAL flags, UINTVAL pos, UINTVAL end)
 {
     UNUSED(s);
@@ -375,7 +361,7 @@
 
 /*
 
-=item C<static STRING * get_codepoints(PARROT_INTERP, STRING *src, UINTVAL
+=item C<static STRING * get_codepoints(PARROT_INTERP, const STRING *src, UINTVAL
 offset, UINTVAL count)>
 
 Returns the codepoints in string C<src> at position C<offset> and length
@@ -388,7 +374,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_codepoints(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL count)
+get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_codepoints)
     String_iter iter;
@@ -409,8 +395,8 @@
 
 /*
 
-=item C<static STRING * get_bytes(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count)>
+=item C<static STRING * get_bytes(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
 
 Returns the bytes in string C<src> at position C<offset> and length C<count>.
 
@@ -421,7 +407,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_bytes(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL count)
+get_bytes(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_bytes)
     UNUSED(interp);
@@ -488,12 +474,13 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-utf16_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i))
+utf16_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
 {
     ASSERT_ARGS(utf16_decode_and_advance)
-    UChar *s = (UChar*) i->str->strstart;
-    UINTVAL c, pos;
-    pos = i->bytepos / sizeof (UChar);
+    const UChar * const s = (const UChar*) i->str->strstart;
+    UINTVAL pos = i->bytepos / sizeof (UChar);
+    UINTVAL c;
+
     /* TODO either make sure that we don't go past end or use SAFE
      *      iter versions
      */
@@ -516,12 +503,11 @@
 */
 
 static void
-utf16_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+utf16_encode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL c)
 {
     ASSERT_ARGS(utf16_encode_and_advance)
-    UChar *s = (UChar*) i->str->strstart;
-    UINTVAL pos;
-    pos = i->bytepos / sizeof (UChar);
+    UChar * const s = (UChar*) i->str->strstart;
+    UINTVAL pos = i->bytepos / sizeof (UChar);
     U16_APPEND_UNSAFE(s, pos, c);
     i->charpos++;
     i->bytepos = pos * sizeof (UChar);
@@ -539,7 +525,7 @@
 */
 
 static void
-utf16_set_position(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL n)
+utf16_set_position(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL n)
 {
     ASSERT_ARGS(utf16_set_position)
     UChar * const s = (UChar*) i->str->strstart;
@@ -570,6 +556,7 @@
     iter->str = src;
     iter->bytepos = iter->charpos = 0;
 #if PARROT_HAS_ICU
+    UNUSED(interp);
     iter->get_and_advance = utf16_decode_and_advance;
     iter->set_and_advance = utf16_encode_and_advance;
     iter->set_position =    utf16_set_position;

Modified: branches/include_dynpmc_makefile/src/string/encoding/utf8.c
==============================================================================
--- branches/include_dynpmc_makefile/src/string/encoding/utf8.c	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/src/string/encoding/utf8.c	Wed Apr 28 19:17:12 2010	(r46116)
@@ -37,7 +37,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL find_cclass(PARROT_INTERP,
-    SHIM(STRING *s),
+    SHIM(const STRING *s),
     SHIM(const INTVAL *typetable),
     SHIM(INTVAL flags),
     SHIM(UINTVAL pos),
@@ -51,12 +51,11 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_bytes(PARROT_INTERP,
-    ARGMOD(STRING *src),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*src);
+        __attribute__nonnull__(2);
 
 static UINTVAL get_codepoint(PARROT_INTERP,
     ARGIN(const STRING *src),
@@ -66,7 +65,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING * get_codepoints(PARROT_INTERP,
-    ARGIN(STRING *src),
+    ARGIN(const STRING *src),
     UINTVAL offset,
     UINTVAL count)
         __attribute__nonnull__(1)
@@ -592,7 +591,7 @@
 
 /*
 
-=item C<static UINTVAL find_cclass(PARROT_INTERP, STRING *s, const INTVAL
+=item C<static UINTVAL find_cclass(PARROT_INTERP, const STRING *s, const INTVAL
 *typetable, INTVAL flags, UINTVAL pos, UINTVAL end)>
 
 Stub, the charset level handles this for unicode strings.
@@ -603,7 +602,7 @@
 
 PARROT_WARN_UNUSED_RESULT
 static UINTVAL
-find_cclass(PARROT_INTERP, SHIM(STRING *s), SHIM(const INTVAL *typetable),
+find_cclass(PARROT_INTERP, SHIM(const STRING *s), SHIM(const INTVAL *typetable),
 SHIM(INTVAL flags), SHIM(UINTVAL pos), SHIM(UINTVAL end))
 {
     Parrot_ex_throw_from_c_args(interp, NULL,
@@ -664,7 +663,7 @@
 
 /*
 
-=item C<static STRING * get_codepoints(PARROT_INTERP, STRING *src, UINTVAL
+=item C<static STRING * get_codepoints(PARROT_INTERP, const STRING *src, UINTVAL
 offset, UINTVAL count)>
 
 Returns the codepoints in string C<src> at position C<offset> and length
@@ -676,7 +675,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_codepoints(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL count)
+get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_codepoints)
 
@@ -704,8 +703,8 @@
 
 /*
 
-=item C<static STRING * get_bytes(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count)>
+=item C<static STRING * get_bytes(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
 
 Returns the bytes in string C<src> at position C<offset> and length C<count>.
 
@@ -715,7 +714,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static STRING *
-get_bytes(PARROT_INTERP, ARGMOD(STRING *src), UINTVAL offset, UINTVAL count)
+get_bytes(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
 {
     ASSERT_ARGS(get_bytes)
     STRING * const return_string = Parrot_str_copy(interp, src);

Copied: branches/include_dynpmc_makefile/t/compilers/data_json/from_parrot.t (from r46115, trunk/t/compilers/data_json/from_parrot.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/t/compilers/data_json/from_parrot.t	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/t/compilers/data_json/from_parrot.t)
@@ -0,0 +1,441 @@
+#!./parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/compilers/data_json/from_parrot.t - test parrot to JSON conversion.
+
+=head1 SYNOPSIS
+
+    % prove t/compilers/data_json/from_parrot.t
+
+=head1 DESCRIPTION
+
+Tests JSON->Parrot conversions.
+
+=cut
+
+.sub main :main
+    .include 'test_more.pir'
+    plan(39)
+
+    load_bytecode 'JSON.pbc'
+    test_create_json_of_an_empty_string()
+    test_create_json_of_a_non_empty_string()
+    test_create_json_of_a_string_with_simple_escapes()
+    test_create_json_of_some_integers()
+    test_create_json_of_some_numbers()
+    test_create_json_of_various_scalars_with_pretty_option()
+    test_create_json_of_an_array()
+    test_create_pretty_json_of_an_array()
+    test_create_json_of_array_keep_element_ordering()
+    test_create_json_of_a_mixed_array()
+    test_create_json_of_hash()
+    test_create_non_pretty_json_of_hash()
+    test_create_json_of_nested_structure_including_resizablepmcarray_and_empties()
+    test_create_non_pretty_json_of_nested_structure()
+    test_create_json_of_string_pmcs()
+    test_create_json_of_integer_pmcs()
+    test_create_json_of_boolean_pmcs()
+    test_create_json_of_null_and_undef()
+.end
+
+
+# no. 1
+.sub test_create_json_of_an_empty_string
+    .local string s
+    s = ''
+
+    $S0 = _json( s, 0 )
+    is($S0, '""', 'Create JSON of an empty string')
+.end
+
+
+# no. 2
+.sub test_create_json_of_a_non_empty_string
+    .local string s
+    s = 'abcdeABCDE01234$%^&*'
+
+    $S0 = _json( s, 0 )
+    is($S0, '"abcdeABCDE01234$%^&*"', 'Create JSON of a non-empty string')
+.end
+
+
+# no. 3
+.sub test_create_json_of_a_string_with_simple_escapes
+    .local string s
+    s = "abcde\\ABCDE\"01234\n$%^&*"
+    # XXX more escapes need to be tested; see http://www.json.org/
+    $S0 = _json( s, 0 )
+    is($S0, '"abcde\\ABCDE\"01234\n$%^&*"', 'Create JSON of a string with simple escapes')
+.end
+
+
+# no. 4..8
+.sub test_create_json_of_some_integers
+    .local int i
+    i = 0
+    $S0 = _json( i, 0 )
+    is($S0, 0, 'Create JSON of some integers (0)')
+    i = 35
+    $S0 = _json( i, 0 )
+    is($S0, 35, 'Create JSON of some integers (35)')
+    i = -42
+    $S0 = _json( i, 0 )
+    is($S0, -42, 'Create JSON of some integers (-42)')
+    i = 2147483647
+    $S0 = _json( i, 0 )
+    is($S0, 2147483647, 'Create JSON of some integers (2147483647)')
+    i = -2147483648
+    $S0 = _json( i, 0 )
+    is($S0, -2147483648, 'Create JSON of some integers (-2147483648)')
+.end
+
+
+# no. 9..12
+.sub test_create_json_of_some_numbers
+    .local num n
+    n = 0.0
+    $S0 = _json( n )
+    is($S0, 0, 'Create JSON of some numbers (0)')
+    n = 2.50
+    $S0 = _json( n )
+    is($S0, 2.5, 'Create JSON of some numbers (2.5)')
+    n = -42.0
+    $S0 = _json( n )
+    is($S0, -42, 'Create JSON of some numbers (-42)')
+    n = 4.5e1
+    $S0 = _json( n )
+    is($S0, 45, 'Create JSON of some numbers (45)')
+.end
+
+
+# no. 13..15
+.sub test_create_json_of_various_scalars_with_pretty_option
+    .local string s
+    s = "abcde\\ABCDE\"01234\n$%^&*"
+    $S0 = _json( s, 1 )
+    is($S0, "\"abcde\\\\ABCDE\\\"01234\\n\$\%\^\&\*\"\n", 'Create JSON of various scalars with pretty option (string)')
+
+    .local int i
+    i = -42
+    $S0 = _json( i, 1 )
+    is($S0, "-42\n", 'Create JSON of various scalars with pretty option (integer)')
+
+    .local num n
+    n = 2.50
+    $S0 = _json( n, 1 )
+    is($S0, "2.5\n", 'Create JSON of various scalars with pretty option (number)')
+.end
+
+
+# no. 16
+.sub test_create_json_of_an_array
+    .local pmc array
+
+    new array, 'ResizablePMCArray'
+    array = 10
+    array[0] = 0
+    array[1] = 1
+    array[2] = 2
+    array[3] = 3
+    array[4] = 4
+    array[5] = 5
+    array[6] = 6
+    array[7] = 7
+    array[8] = 8
+    array[9] = 9
+
+    $S0 = _json( array, 0 )
+    is($S0, '[0,1,2,3,4,5,6,7,8,9]', 'Create JSON of an array')
+.end
+
+
+# no. 17
+.sub test_create_pretty_json_of_an_array
+    .local pmc array
+
+    new array, 'ResizablePMCArray'
+    array = 10
+    array[0] = 0
+    array[1] = 1
+    array[2] = 2
+    array[3] = 3
+    array[4] = 4
+    array[5] = 5
+    array[6] = 6
+    array[7] = 7
+    array[8] = 8
+    array[9] = 9
+
+    $S0 = _json( array, 1 )
+    is($S0, <<'OUTPUT', 'Create pretty JSON of an array')
+[
+  0,
+  1,
+  2,
+  3,
+  4,
+  5,
+  6,
+  7,
+  8,
+  9
+]
+OUTPUT
+.end
+
+
+# no. 18
+.sub test_create_json_of_array_keep_element_ordering
+    .local pmc array
+
+    new array, 'ResizablePMCArray'
+    array = 6
+    array[0] = 35
+    array[1] = 1
+    array[2] = -5
+    array[3] = 0
+    array[4] = -2147483648
+    array[5] = 2147483647
+
+    $S0 = _json( array, 1 )
+    is($S0, <<'OUTPUT', 'Create JSON of an array, keep element ordering')
+[
+  35,
+  1,
+  -5,
+  0,
+  -2147483648,
+  2147483647
+]
+OUTPUT
+.end
+
+
+# no. 19
+.sub test_create_json_of_a_mixed_array
+    .local pmc array
+
+    new array, 'ResizablePMCArray'
+    array = 6
+    array[0] = 0
+    array[1] = 1500e-2
+    array[2] = "JSON"
+    array[3] = -7
+    array[4] = "json"
+    array[5] = 0.0
+
+    $S0 = _json( array, 1 )
+    is($S0, <<'OUTPUT', 'Create JSON of a mixed array')
+[
+  0,
+  15,
+  "JSON",
+  -7,
+  "json",
+  0
+]
+OUTPUT
+.end
+
+
+# no. 20
+.sub test_create_json_of_hash
+    .local pmc hash
+
+    new hash, 'Hash'
+    hash["alpha"] = 29
+    hash["beta"] = "B"
+    hash["gamma"] = 3.1
+    hash["delta"] = "DELTA"
+
+    $S0 = _json( hash, 1 )
+    is($S0, <<'OUTPUT', 'Create JSON of hash')
+{
+  "alpha" : 29,
+  "beta" : "B",
+  "delta" : "DELTA",
+  "gamma" : 3.1
+}
+OUTPUT
+.end
+
+
+# no. 21
+.sub test_create_non_pretty_json_of_hash
+    .local pmc hash
+
+    new hash, 'Hash'
+    hash["alpha"] = 29
+    hash["beta"] = "B"
+    hash["gamma"] = 3.1
+    hash["delta"] = "DELTA"
+
+    $S0 = _json( hash, 0 )
+    is($S0, '{"alpha":29,"beta":"B","delta":"DELTA","gamma":3.1}', 'Create non-pretty JSON of hash')
+.end
+
+
+# no. 22
+.sub test_create_json_of_nested_structure_including_resizablepmcarray_and_empties
+    .local pmc street1, street2, city1, city2, country, world
+
+    street1 = new 'Hash'
+    street1["Perl"] = "Highway"
+    street1["Python"] = "Grove"
+    street1["Ruby"] = "Lane"
+
+    street2 = new 'Hash'  # empty
+
+    city1 = new 'ResizablePMCArray'
+    push city1, street1
+    push city1, street2
+
+    city2 = new 'FixedPMCArray'  # empty
+
+    country = new 'FixedPMCArray'
+    country = 2
+    country[0] = city1
+    country[1] = city2
+
+    world = new 'Hash'
+    world["population"] = 1234567890
+    world["some_country"] = country
+
+    $S0 = _json( world, 1 )
+    is($S0, <<'OUTPUT', 'Create JSON of nested structure including ResizablePMCArray and empties')
+{
+  "population" : 1234567890,
+  "some_country" : [
+    [
+      {
+        "Perl" : "Highway",
+        "Python" : "Grove",
+        "Ruby" : "Lane"
+      },
+      {
+      }
+    ],
+    [
+    ]
+  ]
+}
+OUTPUT
+.end
+
+
+# no. 23
+.sub test_create_non_pretty_json_of_nested_structure
+    .local pmc street1, street2, city1, city2, country, world
+
+    street1 = new 'Hash'
+    street1["Perl"] = "Highway"
+    street1["Python"] = "Grove"
+    street1["Ruby"] = "Lane"
+
+    street2 = new 'Hash'  # empty
+
+    city1 = new 'ResizablePMCArray'
+    push city1, street1
+    push city1, street2
+
+    city2 = new 'FixedPMCArray'  # empty
+
+    country = new 'FixedPMCArray'
+    country = 2
+    country[0] = city1
+    country[1] = city2
+
+    world = new 'Hash'
+    world["population"] = 1234567890
+    world["some_country"] = country
+
+    $S0 = _json( world, 0 )
+    is($S0, '{"population":1234567890,"some_country":[[{"Perl":"Highway","Python":"Grove","Ruby":"Lane"},{}],[]]}', 'Create non-pretty JSON of nested structure')
+.end
+
+
+# no. 24..27
+.sub test_create_json_of_string_pmcs
+    .local pmc s
+
+    s = new 'String'
+    s = ''
+    $S0 = _json( s, 0 )
+    is($S0, '""', 'Create JSON of String PMCs')
+    $S0 = _json( s, 1 )
+    is($S0, "\"\"\n", 'Create JSON of String PMCs')
+
+    s = new 'String'
+    s = "12345\"67890"
+    $S0 = _json( s, 0 )
+    is($S0, '"12345\"67890"', 'Create JSON of String PMCs')
+    $S0 = _json( s, 1 )
+    is($S0, "\"12345\\\"67890\"\n", 'Create JSON of String PMCs')
+.end
+
+
+# no. 28..31
+.sub test_create_json_of_integer_pmcs
+    .local pmc i
+
+    i = new 'Integer'
+    i = 0
+    $S0 = _json( i, 0 )
+    is($S0, 0, 'Create JSON of String PMCs')
+    $S0 = _json( i, 1 )
+    is($S0, "0\n", 'Create JSON of String PMCs')
+
+    i = new 'Integer'
+    i = -42
+    $S0 = _json( i, 0 )
+    is($S0, -42, 'Create JSON of String PMCs')
+    $S0 = _json( i, 1 )
+    is($S0, "-42\n", 'Create JSON of String PMCs')
+.end
+
+
+# no. 32..35
+.sub test_create_json_of_boolean_pmcs
+    .local pmc b
+
+    b = new 'Boolean'
+    b = 0
+    $S0 = _json( b, 0 )
+    is($S0, 'false', 'Create JSON of Boolean PMCs')
+    $S0 = _json( b, 1 )
+    is($S0, "false\n", 'Create JSON of Boolean PMCs')
+
+    b = new 'Boolean'
+    b = 1
+    $S0 = _json( b, 0 )
+    is($S0, 'true', 'Create JSON of Boolean PMCs')
+    $S0 = _json( b, 1 )
+    is($S0, "true\n", 'Create JSON of Boolean PMCs')
+.end
+
+
+# no. 36..39
+.sub test_create_json_of_null_and_undef
+    .local pmc n
+    null n
+
+    $S0 = _json( n, 0 )
+    is($S0, 'null', 'Create JSON of null and .Undef')
+    $S0 = _json( n, 1 )
+    is($S0, "null\n", 'Create JSON of null and .Undef')
+
+    n = new 'Undef'
+    $S0 = _json( n, 0 )
+    is($S0, 'null', 'Create JSON of null and .Undef')
+    $S0 = _json( n, 1 )
+    is($S0, "null\n", 'Create JSON of null and .Undef')
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/include_dynpmc_makefile/t/compilers/data_json/to_parrot.t (from r46115, trunk/t/compilers/data_json/to_parrot.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/t/compilers/data_json/to_parrot.t	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/t/compilers/data_json/to_parrot.t)
@@ -0,0 +1,731 @@
+#!perl
+# Copyright (C) 2001-2008, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( t . lib ../lib ../../lib );
+
+use Test::More;
+use Parrot::Test tests => 60;
+
+=head1 NAME
+
+t/compilers/data_json/to_parrot.t - test JSON to parrot conversions
+
+=head1 SYNOPSIS
+
+    % prove t/compilers/data_json/to_parrot.t
+
+=head1 DESCRIPTION
+
+Tests JSON->Parrot conversions.
+
+=cut
+
+json_dump_is( <<'JSON', <<'OUT', 'empty string' );
+""
+JSON
+"JSON" => ""
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string' );
+"json"
+JSON
+"JSON" => "json"
+OUT
+
+json_isnt( 'a', 'strings need quotes' );
+
+json_dump_is( <<'JSON', <<'OUT', 'string with backslash "' );
+"\"json\""
+JSON
+"JSON" => "\"json\""
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string with backslash \\' );
+"\\json\\"
+JSON
+"JSON" => "\\json\\"
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string with /' );
+"\/json\/"
+JSON
+"JSON" => "/json/"
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string with backslash b' );
+"\bjson\b"
+JSON
+"JSON" => "\bjson\b"
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string with backslash f' );
+"\fjson\f"
+JSON
+"JSON" => "\fjson\f"
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string with backslash n' );
+"\njson\n"
+JSON
+"JSON" => "\njson\n"
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string with backslash r' );
+"\rjson\r"
+JSON
+"JSON" => "\rjson\r"
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'string with backslash t' );
+"\tjson\t"
+JSON
+"JSON" => "\tjson\t"
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int' );
+1
+JSON
+"JSON" => 1
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int minus' );
+-1
+JSON
+"JSON" => -1
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int frac' );
+3.14
+JSON
+"JSON" => 3.14
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int frac minus' );
+-3.14
+JSON
+"JSON" => -3.14
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int exp' );
+1e+11
+JSON
+"JSON" => 100000000000
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int exp' );
+2e-12
+JSON
+"JSON" => 2e-12
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int exp minus' );
+-1e+11
+JSON
+"JSON" => -100000000000
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int exp minus' );
+-2e-12
+JSON
+"JSON" => -2e-12
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int frac exp' );
+3.14e+10
+JSON
+"JSON" => 31400000000
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'number int frac exp minus' );
+-3.14e+10
+JSON
+"JSON" => -31400000000
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'null' );
+null
+JSON
+"JSON" => null
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'true' );
+true
+JSON
+"JSON" => 1
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'false' );
+false
+JSON
+"JSON" => 0
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'empty array' );
+[]
+JSON
+"JSON" => ResizablePMCArray (size:0) [
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'simple array' );
+[1,2,3]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    1,
+    2,
+    3
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'simple array (check white spaces)' );
+[    1 , 2    ,  3   ]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    1,
+    2,
+    3
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of empty arrays' );
+[[],[],[]]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    ResizablePMCArray (size:0) [
+    ],
+    ResizablePMCArray (size:0) [
+    ],
+    ResizablePMCArray (size:0) [
+    ]
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of empty arrays (check white spaces)' );
+[    []  ,  [] , []     ]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    ResizablePMCArray (size:0) [
+    ],
+    ResizablePMCArray (size:0) [
+    ],
+    ResizablePMCArray (size:0) [
+    ]
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of arrays of integers' );
+[[1,2,3],[1,2,3],[1,2,3]]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    ResizablePMCArray (size:3) [
+        1,
+        2,
+        3
+    ],
+    ResizablePMCArray (size:3) [
+        1,
+        2,
+        3
+    ],
+    ResizablePMCArray (size:3) [
+        1,
+        2,
+        3
+    ]
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of empty strings' );
+["","",""]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    "",
+    "",
+    ""
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of strings' );
+["string a","string b","string c"]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    "string a",
+    "string b",
+    "string c"
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of empty objects' );
+[{},{},{}]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    Hash {
+    },
+    Hash {
+    },
+    Hash {
+    }
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of empty objects (check white spaces)' );
+[    {} , {}  , {}    ]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    Hash {
+    },
+    Hash {
+    },
+    Hash {
+    }
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of objects with one element' );
+[{"one":1},{"two":2},{"three":3}]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    Hash {
+        "one" => 1
+    },
+    Hash {
+        "two" => 2
+    },
+    Hash {
+        "three" => 3
+    }
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of objects with one element (white space check)' );
+[  { "one"  : 1 }  , {    "two"    :  2 } , {"three"  : 3} ]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    Hash {
+        "one" => 1
+    },
+    Hash {
+        "two" => 2
+    },
+    Hash {
+        "three" => 3
+    }
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'array of objects with multiple elements' );
+[{"one":1,"two":2,"three":3},{"one":1,"two":2,"three":3},{"one":1,"two":2,"three":3}]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    Hash {
+        "one" => 1,
+        "three" => 3,
+        "two" => 2
+    },
+    Hash {
+        "one" => 1,
+        "three" => 3,
+        "two" => 2
+    },
+    Hash {
+        "one" => 1,
+        "three" => 3,
+        "two" => 2
+    }
+]
+OUT
+
+json_dump_is(
+    <<'JSON', <<'OUT', 'array of boolean objects' );
+[false,true,null]
+JSON
+"JSON" => ResizablePMCArray (size:3) [
+    0,
+    1,
+    null
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'empty object' );
+{}
+JSON
+"JSON" => Hash {
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with one element' );
+{"one":1}
+JSON
+"JSON" => Hash {
+    "one" => 1
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with numbers' );
+{"one":1,"two":2,"three":3}
+JSON
+"JSON" => Hash {
+    "one" => 1,
+    "three" => 3,
+    "two" => 2
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with strings' );
+{"one":"string a","two":"string b","three":"string c"}
+JSON
+"JSON" => Hash {
+    "one" => "string a",
+    "three" => "string c",
+    "two" => "string b"
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with strings (white space check)' );
+{  "one" : "string a"    ,   "two"  :  "string b" , "three"   : "string c"    }
+JSON
+"JSON" => Hash {
+    "one" => "string a",
+    "three" => "string c",
+    "two" => "string b"
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with one empty object' );
+{"one":{}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with one object with one element' );
+{"one":{"one":1}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => 1
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with one object of various element with integers' );
+{"one":{"one":1,"two":2,"three":3}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => 1,
+        "three" => 3,
+        "two" => 2
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with one object of various element with strings' );
+{"one":{"one":"string a","two":"string b","three":"string c"}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => "string a",
+        "three" => "string c",
+        "two" => "string b"
+    }
+}
+OUT
+
+json_dump_is(
+    <<'JSON', <<'OUT', 'object with one object of various element with strings (check white spaces)' );
+{   "one" :  { "one" :   "string a" , "two"  : "string b"  ,  "three" :  "string c"   }    }
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => "string a",
+        "three" => "string c",
+        "two" => "string b"
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with more than one empty object' );
+{"one":{},"two":{},"three":{}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+    },
+    "three" => Hash {
+    },
+    "two" => Hash {
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with more than one object with one integer element' );
+{"one":{"one":1},"two":{"two":2},"three":{"three":3}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => 1
+    },
+    "three" => Hash {
+        "three" => 3
+    },
+    "two" => Hash {
+        "two" => 2
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with more than one object with various integer elements' );
+{"one":{"one":1,"two":2,"three":3},"two":{"one":1,"two":2,"three":3},"three":{"one":1,"two":2,"three":3}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => 1,
+        "three" => 3,
+        "two" => 2
+    },
+    "three" => Hash {
+        "one" => 1,
+        "three" => 3,
+        "two" => 2
+    },
+    "two" => Hash {
+        "one" => 1,
+        "three" => 3,
+        "two" => 2
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with more than one object with one string element' );
+{"one":{"one":"string a"},"two":{"two":"string b"},"three":{"three":"string c"}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => "string a"
+    },
+    "three" => Hash {
+        "three" => "string c"
+    },
+    "two" => Hash {
+        "two" => "string b"
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with more than one object with various integer elements' );
+{"one":{"one":"string a","two":"string b","three":"string c"},"two":{"one":"string a","two":"string b","three":"string c"},"three":{"one":"string a","two":"string b","three":"string c"}}
+JSON
+"JSON" => Hash {
+    "one" => Hash {
+        "one" => "string a",
+        "three" => "string c",
+        "two" => "string b"
+    },
+    "three" => Hash {
+        "one" => "string a",
+        "three" => "string c",
+        "two" => "string b"
+    },
+    "two" => Hash {
+        "one" => "string a",
+        "three" => "string c",
+        "two" => "string b"
+    }
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with empty array' );
+{"one":[]}
+JSON
+"JSON" => Hash {
+    "one" => ResizablePMCArray (size:0) [
+    ]
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with array' );
+{"one":[1,2,3]}
+JSON
+"JSON" => Hash {
+    "one" => ResizablePMCArray (size:3) [
+        1,
+        2,
+        3
+    ]
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with various arrays' );
+{"one":[1,2,3],"two":[1,2,3],"three":[1,2,3]}
+JSON
+"JSON" => Hash {
+    "one" => ResizablePMCArray (size:3) [
+        1,
+        2,
+        3
+    ],
+    "three" => ResizablePMCArray (size:3) [
+        1,
+        2,
+        3
+    ],
+    "two" => ResizablePMCArray (size:3) [
+        1,
+        2,
+        3
+    ]
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'object with boolean values' );
+{"one":true,"two":false,"three":null}
+JSON
+"JSON" => Hash {
+    "one" => 1,
+    "three" => null,
+    "two" => 0
+}
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'example taken from the RFC' );
+{"Image":{"Width":800,"Height":600,"Title":"View from 15th Floor","Thumbnail":{"Url":"http://www.example.com/image/481989943","Height":125,"Width":"100"},"IDs":[116, 943, 234, 38793]}}
+JSON
+"JSON" => Hash {
+    "Image" => Hash {
+        "Height" => 600,
+        "IDs" => ResizablePMCArray (size:4) [
+            116,
+            943,
+            234,
+            38793
+        ],
+        "Thumbnail" => Hash {
+            "Height" => 125,
+            "Url" => "http://www.example.com/image/481989943",
+            "Width" => "100"
+        },
+        "Title" => "View from 15th Floor",
+        "Width" => 800
+    }
+}
+OUT
+
+json_dump_is(
+    <<'JSON', <<'OUT', 'another example taken from the RFC', todo => 'check number precision' );
+[{"precision":"zip","Latitude":37.7668,"Longitude":-122.3959,"Address":"","City":"SAN FRANCISCO","State":"CA","Zip":"94107","Country":"US"},{"precision":"zip","Latitude":37.371991,"Longitude":-122.026020,"Address":"","City":"SUNNYVALE", "State":"CA", "Zip":"94085", "Country":"US"}]
+JSON
+"JSON" => ResizablePMCArray (size:2) [
+    Hash {
+        "Address" => "",
+        "City" => "SAN FRANCISCO",
+        "Country" => "US",
+        "Latitude" => 37.7668,
+        "Longitude" => -122.3959,
+        "State" => "CA",
+        "Zip" => "94107",
+        "precision" => "zip"
+    },
+    Hash {
+        "Address" => "",
+        "City" => "SUNNYVALE",
+        "Country" => "US",
+        "Latitude" => 37.371991,
+        "Longitude" => -122.026020,
+        "State" => "CA",
+        "Zip" => "94085",
+        "precision" => "zip"
+    }
+]
+OUT
+
+json_dump_is( <<'JSON', <<'OUT', 'random object/array example' );
+[[],[{},{}],{"str":true},{"a":"1","b":{},"c":"2"},[true],false,{"e":[],"d":3}]
+JSON
+"JSON" => ResizablePMCArray (size:7) [
+    ResizablePMCArray (size:0) [
+    ],
+    ResizablePMCArray (size:2) [
+        Hash {
+        },
+        Hash {
+        }
+    ],
+    Hash {
+        "str" => 1
+    },
+    Hash {
+        "a" => "1",
+        "b" => Hash {
+        },
+        "c" => "2"
+    },
+    ResizablePMCArray (size:1) [
+        1
+    ],
+    0,
+    Hash {
+        "d" => 3,
+        "e" => ResizablePMCArray (size:0) [
+        ]
+    }
+]
+OUT
+
+# TT #1226 Need many more tests, exercising all aspects of http://www.json.org/
+
+sub json_dump_is {
+    my ( $code, $dumped, $reason, %args ) = @_;
+
+    chomp $code;
+    $code =~ s{("|\\)}{\\$1}g;
+    $code =~ s{\n}{\\n}g;
+
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+    return pir_output_is( <<"END_PIR", $dumped, $reason, %args );
+
+.sub test :main
+    load_language 'data_json'
+    load_bytecode 'dumper.pbc'
+
+    .local pmc JSON, eval, result
+    JSON = compreg 'data_json'
+    eval = JSON.'compile'("$code")
+    result = eval()
+    _dumper(result, "JSON")
+.end
+END_PIR
+
+}
+
+sub json_isnt {
+    my ( $code, $reason, %args ) = @_;
+
+    $code =~ s{("|\\)}{\\$1}g;
+    $code =~ s{\n}{\\n}g;
+
+    return pir_error_output_like( <<"END_PIR", qr/not a valid JSON value/, $reason, %args );
+
+.sub test :main
+    load_language 'data_json'
+
+    .local pmc JSON, eval, result
+
+    JSON = compreg 'data_json'
+    eval = JSON.'compile'("$code")
+    result = eval()
+.end
+END_PIR
+
+}
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Modified: branches/include_dynpmc_makefile/t/compilers/imcc/reg/spill.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/imcc/reg/spill.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/imcc/reg/spill.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/imcc/syn/labels.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/imcc/syn/labels.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/imcc/syn/labels.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/imcc/syn/objects.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/imcc/syn/objects.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/imcc/syn/objects.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/imcc/syn/op.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/imcc/syn/op.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/imcc/syn/op.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/imcc/syn/regressions.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/imcc/syn/regressions.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/imcc/syn/regressions.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -230,10 +230,10 @@
 
 pir_error_output_like( <<'CODE', <<'OUT', 'over long keys should not segfault (TT #641)');
 .sub main
- $P0 = new [0;0;0;0;0;0;0;0;0;0;0;0] # more than KEYLEN.
+ $P0 = new [0;0;0;0;0;0;0;0;0;0;0;0] # more than MAX_KEY_LEN.
 .end
 CODE
-/key too complex/
+/Key too long/
 OUT
 
 # This test probably belongs in subflags.t

Modified: branches/include_dynpmc_makefile/t/compilers/imcc/syn/scope.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/imcc/syn/scope.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/imcc/syn/scope.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/imcc/syn/veracity.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/imcc/syn/veracity.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/imcc/syn/veracity.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/pct/complete_workflow.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/pct/complete_workflow.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/pct/complete_workflow.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -94,7 +94,7 @@
     # thingy() is executed before TOP.
     # So setting $?MY_OUR_VAR here won't affect the generated PAST
     our $?MY_OUR_VAR := 'was set in method TOP';
-    make $( $<thingy> );
+    make $<thingy>.ast;
 }
 
 method thingy($/) {
@@ -126,7 +126,7 @@
 
 method TOP($/) {
     our $?MY_OUR_VAR;
-    my $past := $( $<thingy> ); # $?MY_OUR_VAR has been set in thingy()
+    my $past := $<thingy>.ast; # $?MY_OUR_VAR has been set in thingy()
     $past[0][0].value( 'our var ' ~ $?MY_OUR_VAR );
 
     make $past;
@@ -181,18 +181,18 @@
 
 method TOP($/) {
     my $past := PAST::Stmts.new();
-    $past.push( $( $<scope_a> ) );
-    $past.push( $( $<scope_b> ) );
+    $past.push( $<scope_a>.ast );
+    $past.push( $<scope_b>.ast );
 
     make $past;
 }
 
 method scope_a($/) {
-   make $( $<thingy> );
+   make $<thingy>.ast;
 }
 
 method scope_b($/) {
-   make $( $<thingy> );
+   make $<thingy>.ast;
 }
 
 method INIT_SCOPE_A($/) {
@@ -244,7 +244,7 @@
 method TOP($/) {
     my $past := PAST::Stmts.new();
     for $<thingy_or_stuff> {
-        $past.push( $( $_ ) );
+        $past.push( $_.ast );
     }
 
     our $?MY_OUR_VAR;
@@ -254,7 +254,7 @@
 }
 
 method thingy_or_stuff($/,$key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method THINGY($/) {
@@ -310,7 +310,7 @@
     my $PARROT        = "$BUILD_DIR/parrot$PConfig{exe}";
     my $PGE_LIBRARY   = "$BUILD_DIR/runtime/parrot/library/PGE";
     my $PERL6GRAMMAR  = "$PGE_LIBRARY/Perl6Grammar.pbc";
-    my $NQP           = "$BUILD_DIR/compilers/nqp/nqp.pbc";
+    my $NQP           = "$BUILD_DIR/parrot-nqp.pbc";
 
     my $tempfile_opts = {
          DIR      => $TEST_DIR,

Modified: branches/include_dynpmc_makefile/t/compilers/pge/02-match.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/pge/02-match.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/pge/02-match.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/pge/03-optable.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/pge/03-optable.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/pge/03-optable.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/pge/04-compile.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/pge/04-compile.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/pge/04-compile.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2007-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/pge/p5regex/p5rx.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/pge/p5regex/p5rx.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/pge/p5regex/p5rx.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 #!./parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 # vi: ft=pir
 
@@ -696,7 +696,7 @@
     # NOTE: there can be multiple tabs between entries, so skip until
     # we have something.
     # remove the trailing newline from record
-    chopn test_line, 1
+    test_line = chopn test_line, 1
 
     $P1 = split "\t", test_line
 
@@ -825,27 +825,27 @@
   target1:
     $I0 = index target, '\n'
     if $I0 == -1 goto target2
-    substr target, $I0, 2, "\n"
+    target = replace target, $I0, 2, "\n"
     goto target1
   target2:
     $I0 = index target, '\r'
     if $I0 == -1 goto target3
-    substr target, $I0, 2, "\r"
+    target = replace target, $I0, 2, "\r"
     goto target2
   target3:
     $I0 = index target, '\e'
     if $I0 == -1 goto target4
-    substr target, $I0, 2, "\e"
+    target = replace target, $I0, 2, "\e"
     goto target3
   target4:
     $I0 = index target, '\t'
     if $I0 == -1 goto target5
-    substr target, $I0, 2, "\t"
+    target = replace target, $I0, 2, "\t"
     goto target4
   target5:
     $I0 = index target, '\f'
     if $I0 == -1 goto target6
-    substr target, $I0, 2, "\f"
+    target = replace target, $I0, 2, "\f"
     goto target5
   target6:
     # handle \xHH, hex escape.
@@ -859,7 +859,7 @@
     if $I2 > $I1 goto target7
     $S0 = substr target, $I2, 2
     $S1 = hex_chr($S0)
-    substr target, $I0, 4, $S1
+    target = replace target, $I0, 4, $S1
 
     inc x_pos
     goto target6

Modified: branches/include_dynpmc_makefile/t/compilers/pge/perl6regex/01-regex.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/pge/perl6regex/01-regex.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/pge/perl6regex/01-regex.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,5 +1,5 @@
 #!./parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -237,8 +237,8 @@
     # remove /'s
     $S0 = substr result, 0, 1
     if $S0 != "/" goto bad_line
-    substr result, 0, 1, ''
-    substr result, -1, 1, ''
+    result = replace result, 0, 1, ''
+    result = replace result, -1, 1, ''
 
     $I0 = index $S1, result
     if $I0 == -1 goto is_nok
@@ -276,12 +276,13 @@
     .local string message
     get_results '0', exception
     message = exception
+    print '# '
     say message
     # remove /'s
     $S0 = substr result, 0, 1
     if $S0 != "/" goto bad_error
-    substr result, 0, 1, ''
-    substr result, -1, 1, ''
+    result = replace result, 0, 1, ''
+    result = replace result, -1, 1, ''
     $I0 = index message, result
     if $I0 == -1 goto bad_error
     ok = 1
@@ -313,7 +314,7 @@
     # NOTE: there can be multiple tabs between entries, so skip until
     # we have something.
     # remove the trailing newline from record
-    chopn test_line, 1
+    test_line = chopn test_line, 1
 
     $P1 = split "\t", test_line
     $I0 = elements $P1 # length of array
@@ -441,27 +442,27 @@
   target1:
     $I0 = index target, '\n'
     if $I0 == -1 goto target2
-    substr target, $I0, 2, "\n"
+    target = replace target, $I0, 2, "\n"
     goto target1
   target2:
     $I0 = index target, '\r'
     if $I0 == -1 goto target3
-    substr target, $I0, 2, "\r"
+    target = replace target, $I0, 2, "\r"
     goto target2
   target3:
     $I0 = index target, '\e'
     if $I0 == -1 goto target4
-    substr target, $I0, 2, "\e"
+    target = replace target, $I0, 2, "\e"
     goto target3
   target4:
     $I0 = index target, '\t'
     if $I0 == -1 goto target5
-    substr target, $I0, 2, "\t"
+    target = replace target, $I0, 2, "\t"
     goto target4
   target5:
     $I0 = index target, '\f'
     if $I0 == -1 goto target6
-    substr target, $I0, 2, "\f"
+    target = replace target, $I0, 2, "\f"
     goto target5
   target6:
     # handle \xHH, hex escape.
@@ -474,7 +475,7 @@
     ($S0, $I2) = $P0(target, 'x', $I1)
     $S3 = substr target, $I1, $I2
     $I2 += 2
-    substr target, $I0, $I2, $S0
+    target = replace target, $I0, $I2, $S0
     goto target6
   target7:
     .return (target)

Modified: branches/include_dynpmc_makefile/t/compilers/pge/pge-hs.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/pge/pge-hs.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/pge/pge-hs.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/tge/basic.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/tge/basic.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/tge/basic.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/compilers/tge/parser.t
==============================================================================
--- branches/include_dynpmc_makefile/t/compilers/tge/parser.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/compilers/tge/parser.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/configure/testlib/adefectivefoobar
==============================================================================
--- branches/include_dynpmc_makefile/t/configure/testlib/adefectivefoobar	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/configure/testlib/adefectivefoobar	Wed Apr 28 19:17:12 2010	(r46116)
@@ -40,7 +40,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/include_dynpmc_makefile/t/configure/testlib/bdefectivefoobar
==============================================================================
--- branches/include_dynpmc_makefile/t/configure/testlib/bdefectivefoobar	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/configure/testlib/bdefectivefoobar	Wed Apr 28 19:17:12 2010	(r46116)
@@ -50,7 +50,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/include_dynpmc_makefile/t/configure/testlib/cdefectivefoobar
==============================================================================
--- branches/include_dynpmc_makefile/t/configure/testlib/cdefectivefoobar	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/configure/testlib/cdefectivefoobar	Wed Apr 28 19:17:12 2010	(r46116)
@@ -51,7 +51,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/include_dynpmc_makefile/t/configure/testlib/ddefectivefoobar
==============================================================================
--- branches/include_dynpmc_makefile/t/configure/testlib/ddefectivefoobar	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/configure/testlib/ddefectivefoobar	Wed Apr 28 19:17:12 2010	(r46116)
@@ -42,7 +42,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/include_dynpmc_makefile/t/configure/testlib/verbosefoobar
==============================================================================
--- branches/include_dynpmc_makefile/t/configure/testlib/verbosefoobar	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/configure/testlib/verbosefoobar	Wed Apr 28 19:17:12 2010	(r46116)
@@ -44,7 +44,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Deleted: branches/include_dynpmc_makefile/t/distro/meta_yml.t
==============================================================================
--- branches/include_dynpmc_makefile/t/distro/meta_yml.t	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,39 +0,0 @@
-#! perl
-# Copyright (C) 2008-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/distro/meta_yml.t - check sanity of the META.yml file
-
-=head1 SYNOPSIS
-
-    % prove t/distro/meta_yml.t
-
-=head1 DESCRIPTION
-
-Checks the sanitiy of the file META.yml, which gives information
-on a CPAN distribution.
-
-=cut
-
-use strict;
-use warnings;
-use 5.008;
-
-use Test::More;
-
-# Test::CPAN::Meta complains about 'artistic2' license.
-# So let's wait for version 0.08
-# See http://rt.cpan.org/Public/Bug/Display.html?id=34130
-eval "use Test::CPAN::Meta 0.08";
-plan skip_all => "Test::CPAN::Meta 0.08 required for testing META.yml" if $@;
-
-meta_yaml_ok();
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/include_dynpmc_makefile/t/dynoplibs/math.t
==============================================================================
--- branches/include_dynpmc_makefile/t/dynoplibs/math.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/dynoplibs/math.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/dynoplibs/obscure.t
==============================================================================
--- branches/include_dynpmc_makefile/t/dynoplibs/obscure.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/dynoplibs/obscure.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/dynpmc/foo2.t
==============================================================================
--- branches/include_dynpmc_makefile/t/dynpmc/foo2.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/dynpmc/foo2.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Copied: branches/include_dynpmc_makefile/t/dynpmc/gziphandle.t (from r46115, trunk/t/dynpmc/gziphandle.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/t/dynpmc/gziphandle.t	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/t/dynpmc/gziphandle.t)
@@ -0,0 +1,66 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynpmc/gziphandle.t - test the GzipHandle PMC
+
+=head1 SYNOPSIS
+
+        % parrot t/dynpmc/gziphandle.t
+
+=head1 DESCRIPTION
+
+Tests the C<GzipHandle> PMC, a zlib wrapper.
+
+=cut
+
+.sub 'main' :main
+    .include 'test_more.pir'
+    .include 'iglobals.pasm'
+    .local pmc config_hash, interp
+    .local int num_tests
+
+    num_tests = 3
+    plan(num_tests)
+    interp = getinterp
+    config_hash = interp[.IGLOBALS_CONFIG_HASH]
+    $S0 = config_hash['has_zlib']
+    unless $S0 goto no_zlib
+
+    $P0 = loadlib 'gziphandle'
+    test_handle()
+    test_version()
+    .return()
+
+  no_zlib:
+    skip(num_tests, 'No zlib library available')
+    .return()
+.end
+
+
+.sub 'test_handle'
+    $P0 = new 'GzipHandle'
+    $S0 = typeof $P0
+    is($S0, 'GzipHandle', 'GzipHandle typeof')
+    $I0 = does $P0, 'Handle'
+    ok($I0, 'does Handle')
+.end
+
+.sub 'test_version'
+    $P0 = new 'GzipHandle'
+    $S0 =$P0.'version'()
+    diag($S0)
+    $I0 = index $S0, '1.'
+    is($I0, 0, 'zlib version')
+.end
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+
+

Modified: branches/include_dynpmc_makefile/t/dynpmc/rational.t
==============================================================================
--- branches/include_dynpmc_makefile/t/dynpmc/rational.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/dynpmc/rational.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/dynpmc/subproxy.t
==============================================================================
--- branches/include_dynpmc_makefile/t/dynpmc/subproxy.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/dynpmc/subproxy.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/examples/shootout.t
==============================================================================
--- branches/include_dynpmc_makefile/t/examples/shootout.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/examples/shootout.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -35,7 +35,7 @@
 To add a new test, you do not have to modify this script:
 
  1. add your script (toto.pir) to examples/shootout
- 2. put parrot options in the first line (e.g  "#!./parrot -Oc -R cgp-jit")
+ 2. put parrot options in the first line (e.g  "#!./parrot -Oc")
  3. make sure you have default argument values
  4. put the expected output as a file : toto.pir_output
  5. if you need an input file (to be read from stdin), call it toto.pir_input
@@ -74,15 +74,13 @@
         $args =~ s/-j/-C/;
         $args =~ s/-Cj/-C/;
     }
-    unless ( $PConfig{cg_flag} =~ /HAVE/ ) {
-        $args =~ s/-Cj/-j/;
+    $args =~ s/-Cj/-j/;
 
-        # Remove any plain -C option.
-        $args =~ s/(^|\s)-C(\s|$)/$1$2/;
+    # Remove any plain -C option.
+    $args =~ s/(^|\s)-C(\s|$)/$1$2/;
 
-        # Remove any extra Cs still floating around
-        $args =~ s/C//;
-    }
+    # Remove any extra Cs still floating around
+    $args =~ s/C//;
 
     # look for input files
     my $input = "$file$INPUT_EXT";

Modified: branches/include_dynpmc_makefile/t/examples/tutorial.t
==============================================================================
--- branches/include_dynpmc_makefile/t/examples/tutorial.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/examples/tutorial.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -97,8 +97,8 @@
 bc
 bc
 abcde
-bc
 aXYZde
+abcde
 END_EXPECTED
 
     '24_string_ops_clone.pir' => << 'END_EXPECTED',

Modified: branches/include_dynpmc_makefile/t/harness
==============================================================================
--- branches/include_dynpmc_makefile/t/harness	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/harness	Wed Apr 28 19:17:12 2010	(r46116)
@@ -134,10 +134,6 @@
 
 Turn warnings on.
 
-=item C<-g>
-
-Run the C<CGoto> core.
-
 =item C<-G>
 
 Run the C<GCDebug> core.
@@ -146,14 +142,6 @@
 
 Alias for running with the fast core.
 
-=item C<-C>
-
-Run the C<CGP> core.
-
-=item C<-S>
-
-Run Switched.
-
 =item C<-b>
 
 Run bounds checking enabled.

Modified: branches/include_dynpmc_makefile/t/include/fp_equality.t
==============================================================================
--- branches/include_dynpmc_makefile/t/include/fp_equality.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/include/fp_equality.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/configure.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/configure.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/configure.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/getopt_obj.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/getopt_obj.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/getopt_obj.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/hllmacros.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/hllmacros.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/hllmacros.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/md5.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/md5.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/md5.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/mime_base64.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/mime_base64.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/mime_base64.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -23,7 +23,7 @@
     load_bytecode 'MIME/Base64.pbc'
     load_bytecode 'PGE.pbc'
     load_bytecode 'PGE/Util.pbc'
-    load_bytecode 'compilers/json/JSON.pbc'
+    load_language 'data_json'
 
     .local pmc plan, is, ok
     plan = get_hll_global [ 'Test'; 'More' ], 'plan'
@@ -32,11 +32,11 @@
 
     plan(550)
 
-    .local pmc JSON
-    JSON = compreg "JSON"
+    .local pmc json
+    json = compreg 'data_json'
 
     .local pmc encode_decode_tests, decode_tests
-    encode_decode_tests = JSON( <<'END_JSON' )
+    encode_decode_tests = json.'compile'( <<'END_JSON' )
 [ ["Hello, World!\n","SGVsbG8sIFdvcmxkIQo="],
   ["\u0000","AA=="],
   ["\u0001","AQ=="],
@@ -310,7 +310,7 @@
 ]
 END_JSON
 
-    decode_tests = JSON( <<'END_JSON' )
+    decode_tests = json.'compile'( <<'END_JSON' )
 [ ["YWE=","aa"],
   [" YWE=","aa"],
   ["Y WE=","aa"],
@@ -333,6 +333,7 @@
     .local pmc test_iterator, test_case
     .local string plain, base64, comment, comment_cnt
 
+    encode_decode_tests = encode_decode_tests()
     test_iterator = iter encode_decode_tests
     enc_dec_loop:
         unless test_iterator goto enc_dec_loop_end
@@ -351,6 +352,7 @@
     goto enc_dec_loop
     enc_dec_loop_end:
 
+    decode_tests = decode_tests()
     test_iterator = iter decode_tests
     dec_loop:
         unless test_iterator goto dec_loop_end

Modified: branches/include_dynpmc_makefile/t/library/osutils.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/osutils.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/osutils.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/parrotlib.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/parrotlib.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/parrotlib.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/pcre.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/pcre.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/pcre.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -26,7 +26,7 @@
 
 # if we keep pcre, we need a config test
 my $cmd = ( $^O =~ /MSWin32/ ) ? "pcregrep --version" : "pcre-config --version";
-my $has_pcre = !Parrot::Test::run_command( $cmd, STDERR => File::Spec->devnull, );
+my $has_pcre = !Parrot::Test::run_command( $cmd, STDOUT => File::Spec->devnull ,STDERR => File::Spec->devnull, );
 my $pcre_libpath = '';
 
 # It's possible that libpcre is installed in some non-standard path...

Modified: branches/include_dynpmc_makefile/t/library/protoobject.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/protoobject.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/protoobject.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/rand.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/rand.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/rand.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/range.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/range.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/range.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/tap_parser.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/tap_parser.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/tap_parser.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/test_class.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/test_class.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/test_class.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/test_more.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/test_more.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/test_more.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/library/uuid.t
==============================================================================
--- branches/include_dynpmc_makefile/t/library/uuid.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/library/uuid.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/include_dynpmc_makefile/t/native_pbc/integer_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/include_dynpmc_makefile/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/include_dynpmc_makefile/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/include_dynpmc_makefile/t/oo/attributes.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/attributes.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/attributes.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/composition.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/composition.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/composition.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/inheritance.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/inheritance.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/inheritance.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/isa.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/isa.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/isa.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/metamodel.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/metamodel.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/metamodel.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/methods.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/methods.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/methods.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
@@ -21,12 +21,14 @@
 
     create_library()
 
-    plan(5)
+    plan(6)
 
     loading_methods_from_file()
     loading_methods_from_eval()
     overridden_find_method()
 
+    overridden_core_pmc()
+
     delete_library()
 
 .end
@@ -126,6 +128,20 @@
 
 .namespace []
 
+.sub 'overridden_core_pmc'
+    .local string msg
+    msg = "able to invoke overridden method on core PMC (TT #1596)"
+    $P0 = new 'ResizablePMCArray'
+    $I0 = $P0.'foo'()
+    is($I0, 1, msg)
+    .return()
+.end
+
+.namespace ['ResizablePMCArray']
+.sub 'foo' :method
+    .return(1)
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/include_dynpmc_makefile/t/oo/mro-c3.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/mro-c3.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/mro-c3.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/names.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/names.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/names.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/new.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/new.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/new.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/ops.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/ops.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/ops.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
@@ -20,7 +20,7 @@
     .include 'except_types.pasm'
     .include 'test_more.pir'
 
-    plan(18)
+    plan(20)
 
     op_addrole_p_p()
     op_inspect_p_p()
@@ -89,6 +89,10 @@
     $P3 = $P2.'inspect'('name')
     is ($P3, 'Monkey', 'got name of found class')
 
+    null $S0
+    $P5 = get_class $S0
+    $I2 = isnull $P5
+    is ($I2, 1, 'null p gives null p')
 .end
 
 .sub op_get_class_p_p
@@ -113,6 +117,11 @@
     $I1 = isa $P2 , 'Class'
     ok ($I1, 'get_class with a namespace found a class')
     is ($P3, 'Monkey', 'got name of found class')
+
+    null $P5
+    $P6 = get_class $P5
+    $I2 = isnull $P6
+    is ($I2, 1, 'null s gives null p')
 .end
 
 .sub op_addattribute_p_s

Modified: branches/include_dynpmc_makefile/t/oo/proxy.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/proxy.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/proxy.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/root_new.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/root_new.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/root_new.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/subclass.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/subclass.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/subclass.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/oo/vtableoverride.t
==============================================================================
--- branches/include_dynpmc_makefile/t/oo/vtableoverride.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/oo/vtableoverride.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2009, Parrot Foundation.
 # $Id$
 
@@ -18,12 +18,23 @@
 
 .sub main :main
     .include 'test_more.pir'
-    plan(13)
+    plan(14)
 
     newclass_tests()
     subclass_tests()
     vtable_implies_self_tests()
     anon_vtable_tests()
+    invalid_vtable()
+.end
+
+.sub invalid_vtable
+    throws_substring(<<'CODE',' but was used with ', 'invalid :vtable throws an exception')
+    .namespace [ "Test" ]
+    .sub monkey :method :vtable("not_in_the_vtable")
+        .param int key
+        .return("monkey")
+    .end
+CODE
 .end
 
 .sub 'newclass_tests'

Modified: branches/include_dynpmc_makefile/t/op/00ff-dos.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/00ff-dos.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/00ff-dos.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/00ff-unix.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/00ff-unix.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/00ff-unix.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
@@ -26,7 +26,7 @@
 .sub test_fileformat_unix
     lives_ok( <<'CODE', 'fileformat unix' )
 .sub main
-    print "testing\n"
+    print "# testing\n"
 .end
 CODE
 .end

Modified: branches/include_dynpmc_makefile/t/op/64bit.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/64bit.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/64bit.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/annotate-old.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/annotate-old.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/annotate-old.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -24,8 +24,8 @@
 =cut
 
 TODO: {
-    local $TODO = q|fails in fast and cgoto runcores - TT #1135|
-        if $ENV{TEST_PROG_ARGS} =~ /--runcore=(fast|cgoto)/;
+    local $TODO = q|fails in fast runcore - TT #1135|
+        if ($ENV{TEST_PROG_ARGS} || '') =~ /--runcore=fast/;
 
 pir_error_output_like( <<CODE, <<OUTPUT, 'unhandled exception from loaded function');
 .sub main :main

Modified: branches/include_dynpmc_makefile/t/op/annotate.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/annotate.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/annotate.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/arithmetics.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/arithmetics.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/arithmetics.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/arithmetics_pmc.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/arithmetics_pmc.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/arithmetics_pmc.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/box.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/box.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/box.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/cc_params.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/cc_params.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/cc_params.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/cmp-nonbranch.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/cmp-nonbranch.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/cmp-nonbranch.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/comp.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/comp.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/comp.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/copy.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/copy.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/copy.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/debuginfo.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/debuginfo.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/debuginfo.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -24,11 +24,11 @@
 =cut
 
 $ENV{TEST_PROG_ARGS} ||= '';
-my $nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=(fast|cgoto)/
+my $nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
     ? "\\(unknown file\\)\n-1" : "debuginfo_\\d+\\.pasm\n\\d";
 
 #SKIP: {
-#skip "disabled on fast-core",1 if $ENV{TEST_PROG_ARGS} =~ /--runcore=(fast|cgoto)/;
+#skip "disabled on fast-core",1 if $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/;
 
 pasm_output_like( <<'CODE', <<"OUTPUT", "getline, getfile" );
 .pcc_sub main:
@@ -158,7 +158,7 @@
 called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
 OUTPUT
 
-$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=(fast|cgoto)/
+$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
     ? '\(\(unknown file\):-1\)' : '\(xyz.pir:126\)';
 
 pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
@@ -173,7 +173,7 @@
 /$nolineno/
 OUTPUT
 
-$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=(fast|cgoto)/
+$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
     ? '\(\(unknown file\):-1\)' : '\(foo.p6:128\)';
 pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
 .sub main :main

Modified: branches/include_dynpmc_makefile/t/op/errorson.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/errorson.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/errorson.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/fetch.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/fetch.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/fetch.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/gc-leaky.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/gc-leaky.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/gc-leaky.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -48,7 +48,7 @@
         if counter > 1e6 goto done
         goto loop
     done:
-        say ""
+        diag("")
         $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS
         $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS
 

Modified: branches/include_dynpmc_makefile/t/op/gc.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/gc.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/gc.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/globals.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/globals.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/globals.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/ifunless.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/ifunless.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/ifunless.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2005, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/inf_nan.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/inf_nan.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/inf_nan.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/integer.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/integer.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/integer.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/interp.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/interp.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/interp.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -154,9 +154,6 @@
     $I0 = interpinfo .INTERPINFO_CURRENT_RUNCORE
     if $I0 == .PARROT_FUNCTION_CORE   goto ok1
     if $I0 == .PARROT_FAST_CORE       goto ok1
-    if $I0 == .PARROT_SWITCH_CORE     goto ok1
-    if $I0 == .PARROT_CGOTO_CORE      goto ok1
-    if $I0 == .PARROT_CGP_CORE        goto ok1
     if $I0 == .PARROT_EXEC_CORE       goto ok1
     if $I0 == .PARROT_GC_DEBUG_CORE   goto ok1
     print 'not '

Modified: branches/include_dynpmc_makefile/t/op/io.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/io.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/io.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2008, Parrot Foundation.
 # $Id$
 
@@ -16,19 +16,41 @@
 
 =cut
 
-.const int TESTS = 4
+.const int TESTS = 5
 
 .sub 'main' :main
     .include 'test_more.pir'
 
     plan(TESTS)
 
+    open_delegates_to_filehandle_pmc()
     open_null_filename()
     open_null_mode()
     open_pipe_for_reading()
     open_pipe_for_writing()
 .end
 
+.sub open_delegates_to_filehandle_pmc
+    load_bytecode 'P6object.pbc'
+
+    .local pmc p6meta, interp, classes, classid
+    p6meta = get_root_global ["parrot"], "P6metaclass"
+    p6meta.'new_class'('Testing')
+
+    interp = getinterp
+    classes = interp[0]
+    classid = classes['Testing']
+    $I0 = classes['FileHandle']
+    set classes['FileHandle'], classid
+
+    $P1 = open '/foo'
+    is($P1,42,'open opcode delegates to the open method on the FileHandle PMC')
+
+    # replace the original, so we don't break other tests
+    set classes['FileHandle'], $I0
+
+.end
+
 .sub 'open_null_filename'
     push_eh open_null_filename_failed
     null $S0
@@ -127,7 +149,8 @@
     .local pmc pipe
     pipe = open command, 'wp'
     unless pipe goto open_pipe_for_writing_failed
-    pipe.'puts'("ok - open pipe for writing\n")
+
+    pipe.'puts'("ok 5 - open pipe for writing\n")
     close pipe
     .return ()
 
@@ -140,6 +163,14 @@
 
 .end
 
+.namespace ["Testing"]
+
+.sub open :method
+    .param pmc args :slurpy
+    .return(42)
+.end
+
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/include_dynpmc_makefile/t/op/literal.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/literal.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/literal.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/number.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/number.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/number.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/sprintf.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/sprintf.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/sprintf.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -202,8 +202,8 @@
     # remove /'s
     $S0 = substr expected, 0, 1
     if $S0 != "/" goto eh_bad_line
-    substr expected, 0, 1, ''
-    substr expected, -1, 1, ''
+    expected = replace expected, 0, 1, ''
+    expected = replace expected, -1, 1, ''
 
     $I0 = index $S1, expected
     if $I0 == -1 goto is_nok
@@ -411,7 +411,7 @@
     # NOTE: there can be multiple tabs between entries, so skip until
     # we have something.
     # remove the trailing newline from record
-    chopn record, 1
+    record = chopn record, 1
     $P1 = split "\t", record
     $I0 = elements $P1 # length of array
     .local int tab_number

Modified: branches/include_dynpmc_makefile/t/op/sprintf2.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/sprintf2.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/sprintf2.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/string.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/string.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/string.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
@@ -19,7 +19,7 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(399)
+    plan(369)
 
     set_s_s_sc()
     test_clone()
@@ -36,19 +36,19 @@
     exception_substr_oob()
     len_greater_than_strlen()
     len_greater_than_strlen_neg_offset()
-    five_arg_substr_w_rep_eq_length()
-    five_arg_substr_w_replacement_gt_length()
-    five_arg_substr_w_replacement_lt_length()
-    five_arg_substr_vs_hash()
-    five_arg_substr__offset_at_end_of_string()
-    exception_five_arg_substr__offset_past_end_of_string()
-    five_arg_substr_neg_offset_repl_eq_length()
-    five_arg_substr_neg_offset_repl_gt_length()
-    five_arg_substr_neg_offset_repl_lt_length()
-    exception_five_arg_substr_neg_offset_out_of_string()
-    five_arg_substr_length_gt_strlen()
-    five_arg_substr_length_gt_strlen_neg_offset()
-    four_arg_replacement_only_substr()
+    replace_w_rep_eq_length()
+    replace_w_replacement_gt_length()
+    replace_w_replacement_lt_length()
+    replace_vs_hash()
+    replace__offset_at_end_of_string()
+    exception_replace__offset_past_end_of_string()
+    replace_neg_offset_repl_eq_length()
+    replace_neg_offset_repl_gt_length()
+    replace_neg_offset_repl_lt_length()
+    exception_replace_neg_offset_out_of_string()
+    replace_length_gt_strlen()
+    replace_length_gt_strlen_neg_offset()
+    replace_only_substr()
     three_arg_substr()
     exception_substr__pos_offset_zero_length_string()
     substr_offset_zero_zero_length_string()
@@ -57,7 +57,7 @@
     zero_length_substr_zero_length_string()
     zero_length_substr_zero_length_string()
     three_arg_substr_zero_length_string()
-    five_arg_substr_zero_length_string()
+    replace_zero_length_string()
     four_arg_substr_replace_zero_length_string()
     concat_s_s_sc_null_onto_null()
     concat_s_sc_repeated_two_arg_concats()
@@ -193,9 +193,6 @@
 
     clone $S1, "Bar1"
     is( $S1, "Bar1", '' )
-
-    chopn $S1, 1
-    is( $S1, "Bar", 'the contents of $S1 are no longer constant' )
 .end
 
 .sub clone_null
@@ -224,9 +221,9 @@
     set $S5, "japhXYZW"
     clone $S3, $S4
     set $I1, 4
-    chopn $S4, 3
-    chopn $S4, 1
-    chopn $S5, $I1
+    $S4 = chopn $S4, 3
+    $S4 = chopn $S4, 1
+    $S5 = chopn $S5, $I1
 
     is( $S4, "JAPH", '' )
     is( $S5, "japh", '' )
@@ -235,17 +232,17 @@
 
 .sub chopn_oob_values
     set $S1, "A string of length 21"
-    chopn   $S1, 0
+    $S1 = chopn $S1, 0
     is( $S1, "A string of length 21", '' )
 
-    chopn   $S1, 4
+    $S1 = chopn $S1, 4
     is( $S1, "A string of lengt", '' )
 
     # -length cuts now
-    chopn   $S1, -4
+    $S1 = chopn $S1, -4
     is( $S1, "A st", '' )
 
-    chopn   $S1, 1000
+    $S1 = chopn $S1, 1000
     is( $S1, "", '' )
 .end
 
@@ -369,43 +366,35 @@
     is( $S1, "length 21", '' )
 .end
 
-.sub five_arg_substr_w_rep_eq_length
+.sub replace_w_rep_eq_length
     set $S0, "abcdefghijk"
     set $S1, "xyz"
-    substr $S2, $S0, 4, 3, $S1
-    is( $S0, "abcdxyzhijk", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "efg", '' )
+    replace $S2, $S0, 4, 3, $S1
+    is( $S2, "abcdxyzhijk", '' )
 .end
 
-.sub five_arg_substr_w_replacement_gt_length
+.sub replace_w_replacement_gt_length
     set $S0, "abcdefghijk"
     set $S1, "xyz0123"
-    substr $S2, $S0, 4, 3, $S1
-    is( $S0, "abcdxyz0123hijk", '' )
-    is( $S1, "xyz0123", '' )
-    is( $S2, "efg", '' )
+    $S2 = replace $S0, 4, 3, $S1
+    is( $S2, "abcdxyz0123hijk", '' )
 .end
 
-.sub five_arg_substr_w_replacement_lt_length
+.sub replace_w_replacement_lt_length
     set $S0, "abcdefghijk"
     set $S1, "x"
-    substr $S2, $S0, 4, 3, $S1
-    is( $S0, "abcdxhijk", '' )
-    is( $S1, "x", '' )
-    is( $S2, "efg", '' )
+    $S2 = replace $S0, 4, 3, $S1
+    is( $S2, "abcdxhijk", '' )
 .end
 
-.sub five_arg_substr__offset_at_end_of_string
-  set $S0, "abcdefghijk"
-  set $S1, "xyz"
-  substr $S2, $S0, 11, 3, $S1
-    is( $S0, "abcdefghijkxyz", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "", '' )
+.sub replace__offset_at_end_of_string
+    set $S0, "abcdefghijk"
+    set $S1, "xyz"
+    $S2 = replace $S0, 11, 3, $S1
+    is( $S2, "abcdefghijkxyz", '' )
 .end
 
-.sub five_arg_substr_vs_hash
+.sub replace_vs_hash
     # Check that string hashval properly updated.
     .local pmc hash
     hash = new ['Hash']
@@ -414,80 +403,68 @@
     hash["foo"] = 42
     $S0 = replace $S0, 1, 1, ''
     $S1 = hash[$S0]
-    is( $S1, '42', 'substr behave it self')
+    is( $S1, '42', 'replace behave it self')
 .end
 
-.sub exception_five_arg_substr__offset_past_end_of_string
+.sub exception_replace__offset_past_end_of_string
     set $S0, "abcdefghijk"
     set $S1, "xyz"
     push_eh handler
-    substr $S2, $S0, 12, 3, $S1
+    $S2 = replace $S0, 12, 3, $S1
     ok(0,"no exception")
 handler:
-    .exception_is( "Cannot take substr outside string" )
+    .exception_is( "Can only replace inside string or index after end of string" )
 .end
 
-.sub five_arg_substr_neg_offset_repl_eq_length
+.sub replace_neg_offset_repl_eq_length
     set $S0, "abcdefghijk"
     set $S1, "xyz"
-    substr $S2, $S0, -3, 3, $S1
-    is( $S0, "abcdefghxyz", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "ijk", '' )
+    $S2 = replace $S0, -3, 3, $S1
+    is( $S2, "abcdefghxyz", '' )
 .end
 
-.sub five_arg_substr_neg_offset_repl_gt_length
+.sub replace_neg_offset_repl_gt_length
     set $S0, "abcdefghijk"
     set $S1, "xyz"
-    substr $S2, $S0, -6, 2, $S1
-    is( $S0, "abcdexyzhijk", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "fg", '' )
+    $S2 = replace $S0, -6, 2, $S1
+    is( $S2, "abcdexyzhijk", '' )
 .end
 
-.sub five_arg_substr_neg_offset_repl_lt_length
+.sub replace_neg_offset_repl_lt_length
     set $S0, "abcdefghijk"
     set $S1, "xyz"
-    substr $S2, $S0, -6, 4, $S1
-    is( $S0, "abcdexyzjk", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "fghi", '' )
+    $S2 = replace $S0, -6, 4, $S1
+    is( $S2, "abcdexyzjk", '' )
 .end
 
-.sub exception_five_arg_substr_neg_offset_out_of_string
+.sub exception_replace_neg_offset_out_of_string
     set $S0, "abcdefghijk"
     set $S1, "xyz"
     push_eh handler
-    substr $S2, $S0, -12, 4, $S1
+    $S2 = replace $S0, -12, 4, $S1
     ok(0,"no exception")
 handler:
-    .exception_is( "Cannot take substr outside string" )
+    .exception_is( "Can only replace inside string or index after end of string" )
 .end
 
-.sub five_arg_substr_length_gt_strlen
+.sub replace_length_gt_strlen
     set $S0, "abcdefghijk"
     set $S1, "xyz"
-    substr $S2, $S0, 3, 11, $S1
-    is( $S0, "abcxyz", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "defghijk", '' )
+    $S2 = replace $S0, 3, 11, $S1
+    is( $S2, "abcxyz", '' )
 .end
 
-.sub five_arg_substr_length_gt_strlen_neg_offset
+.sub replace_length_gt_strlen_neg_offset
     set $S0, "abcdefghijk"
     set $S1, "xyz"
-    substr $S2, $S0, -3, 11, $S1
-    is( $S0, "abcdefghxyz", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "ijk", '' )
+    $S2 = replace $S0, -3, 11, $S1
+    is( $S2, "abcdefghxyz", '' )
 .end
 
-.sub four_arg_replacement_only_substr
+.sub replace_only_substr
     set $S0, "abcdefghijk"
     set $S1, "xyz"
     $S2 = replace $S0, 3, 3, $S1
-    is( $S0, "abcdefghijk", '' )
-    is( $S1, "xyz", '' )
     is( $S2, "abcxyzghijk", '' )
 .end
 
@@ -547,34 +524,28 @@
     is( $S1, "", '' )
 .end
 
-.sub five_arg_substr_zero_length_string
+.sub replace_zero_length_string
     set $S0, ""
     set $S1, "xyz"
-    substr $S2, $S0, 0, 3, $S1
-    is( $S0, "xyz", '' )
-    is( $S1, "xyz", '' )
-    is( $S2, "", '' )
+    $S2 = replace $S0, 0, 3, $S1
+    is( $S2, "xyz", '' )
 
     set $S3, ""
     set $S4, "abcde"
-    substr $S5, $S3, 0, 0, $S4
-    is( $S3, "abcde", '' )
-    is( $S4, "abcde", '' )
-    is( $S5, "", '' )
+    $S5 = replace $S3, 0, 0, $S4
+    is( $S5, "abcde", '' )
 .end
 
 .sub four_arg_substr_replace_zero_length_string
     set $S0, ""
     set $S1, "xyz"
-    substr $S0, 0, 3, $S1
+    $S0 = replace $S0, 0, 3, $S1
     is( $S0, "xyz", '' )
-    is( $S1, "xyz", '' )
 
     set $S2, ""
     set $S3, "abcde"
-    substr $S2, 0, 0, $S3
+    $S2 = replace $S2, 0, 0, $S3
     is( $S2, "abcde", '' )
-    is( $S3, "abcde", '' )
 .end
 
 .sub concat_s_s_sc_null_onto_null
@@ -629,8 +600,8 @@
     set $S2, "JAPH"
     concat $S0, $S2, ""
     concat $S1, "", $S2
-    chopn $S0, 1
-    chopn $S1, 1
+    $S0 = chopn $S0, 1
+    $S1 = chopn $S1, 1
     is( $S2, "JAPH", '' )
 .end
 
@@ -1186,7 +1157,7 @@
 .sub cow_with_chopn_leaving_original_untouched
     set $S0, "ABCD"
     clone $S1, $S0
-    chopn $S0, 1
+    $S0 = chopn $S0, 1
     is( $S0, "ABC", 'COW with chopn leaving original untouched' )
     is( $S1, "ABCD", 'COW with chopn leaving original untouched' )
 .end
@@ -1486,29 +1457,29 @@
 .sub bands_null_string
     null $S1
     set $S2, "abc"
-    bands $S1, $S2
+    $S1 = bands $S1, $S2
     null $S3
     is( $S1, $S3, 'ok1' )
 
     set $S1, ""
-    bands $S1, $S2
+    $S1 = bands $S1, $S2
     nok( $S1, 'ok2' )
 
     null $S2
     set $S1, "abc"
-    bands $S1, $S2
+    $S1 = bands $S1, $S2
     null $S3
     is( $S1, $S3, 'ok3' )
 
     set $S2, ""
-    bands $S1, $S2
+    $S1 = bands $S1, $S2
     nok( $S1, 'ok4' )
 .end
 
 .sub bands_2
     set $S1, "abc"
     set $S2, "EE"
-    bands $S1, $S2
+    $S1 = bands $S1, $S2
     is( $S1, "A@", 'bands 2' )
     is( $S2, "EE", 'bands 2' )
 .end
@@ -1525,33 +1496,33 @@
 .sub bands_cow
     set $S1, "foo"
     substr $S2, $S1, 0, 3
-    bands $S1, "bar"
+    $S1 = bands $S1, "bar"
     is( $S2, "foo", 'bands COW' )
 .end
 
 .sub bors_null_string
     null $S1
     null $S2
-    bors $S1, $S2
+    $S1 = bors $S1, $S2
     null $S3
     is( $S1, $S3, 'bors NULL string' )
 
     null $S1
     set $S2, ""
-    bors $S1, $S2
+    $S1 = bors $S1, $S2
     null $S3
     is( $S1, $S3, 'bors NULL string' )
 
-    bors $S2, $S1
+    $S2 = bors $S2, $S1
     is( $S2, $S3, 'bors NULL string' )
 
     null $S1
     set $S2, "def"
-    bors $S1, $S2
+    $S1 = bors $S1, $S2
     is( $S1, "def", 'bors NULL string' )
 
     null $S2
-    bors $S1, $S2
+    $S1 = bors $S1, $S2
     is( $S1, "def", 'bors NULL string' )
 
     null $S1
@@ -1578,7 +1549,7 @@
 .sub bors_2
     set $S1, "abc"
     set $S2, "EE"
-    bors $S1, $S2
+    $S1 = bors $S1, $S2
     is( $S1, "egc", 'bors 2' )
     is( $S2, "EE", 'bors 2' )
 .end
@@ -1595,33 +1566,33 @@
 .sub bors_cow
     set $S1, "foo"
     substr $S2, $S1, 0, 3
-    bors $S1, "bar"
+    $S1 = bors $S1, "bar"
     is( $S2, "foo", 'bors COW' )
 .end
 
 .sub bxors_null_string
     null $S1
     null $S2
-    bxors $S1, $S2
+    $S1 = bxors $S1, $S2
     null $S3
     is( $S1, $S3, 'bxors NULL string' )
 
     null $S1
     set $S2, ""
-    bxors $S1, $S2
+    $S1 = bxors $S1, $S2
     null $S3
     is( $S1, $S3, 'bxors NULL string' )
 
-    bxors $S2, $S1
+    $S2 = bxors $S2, $S1
     is( $S2, $S3, 'bxors NULL string' )
 
     null $S1
     set $S2, "abc"
-    bxors $S1, $S2
+    $S1 = bxors $S1, $S2
     is( $S1, "abc", 'bxors NULL string' )
 
     null $S2
-    bxors $S1, $S2
+    $S1 = bxors $S1, $S2
     is( $S1, "abc", 'bxors NULL string' )
 
     null $S1
@@ -1648,13 +1619,13 @@
 .sub bxors_2
     set $S1, "a2c"
     set $S2, "Dw"
-    bxors $S1, $S2
+    $S1 = bxors $S1, $S2
     is( $S1, "%Ec", 'bxors 2' )
     is( $S2, "Dw", 'bxors 2' )
 
     set $S1, "abc"
     set $S2, "   X"
-    bxors $S1, $S2
+    $S1 = bxors $S1, $S2
     is( $S1, "ABCX", 'bxors 2' )
     is( $S2, "   X", 'bxors 2' )
 .end
@@ -1678,7 +1649,7 @@
 .sub bxors_cow
     set $S1, "foo"
     substr $S2, $S1, 0, 3
-    bxors $S1, "bar"
+    $S1 = bxors $S1, "bar"
     is( $S2, "foo", 'bxors COW' )
 .end
 
@@ -1830,9 +1801,6 @@
     upcase $S1, $S0
     is( $S1, "ABCD012YZ", 'upcase' )
 
-    upcase $S0
-    is( $S0, "ABCD012YZ", 'upcase inplace' )
-
     push_eh catch1
     null $S9
     null $S0
@@ -1849,7 +1817,7 @@
     push_eh catch2
     null $S9
     null $S0
-    upcase $S0
+    $S0 = upcase $S0
     pop_eh
     goto null2
 catch2:
@@ -1865,9 +1833,6 @@
     downcase $S1, $S0
     is( $S1, "abcd012yz", 'downcase' )
 
-    downcase $S0
-    is( $S0, "abcd012yz", 'downcase inplace' )
-
     push_eh catch1
     null $S9
     null $S0
@@ -1884,7 +1849,7 @@
     push_eh catch2
     null $S9
     null $S0
-    downcase $S0
+    $S0 = downcase $S0
     pop_eh
     goto null2
 catch2:
@@ -1900,9 +1865,6 @@
     titlecase $S1, $S0
     is( $S1, "Abcd012yz", 'titlecase' )
 
-    titlecase $S0
-    is( $S0, "Abcd012yz", 'titlecase inplace' )
-
     push_eh catch1
     null $S9
     null $S0
@@ -1919,7 +1881,7 @@
     push_eh catch2
     null $S9
     null $S0
-    titlecase $S0
+    $S0 = titlecase $S0
     pop_eh
     goto null2
 catch2:
@@ -2037,7 +1999,7 @@
     .param string s
     $I0 = index s, '::'
     is( s, "Foo::Bar", 'bug 60030' )
-    substr s, $I0, 2, "/"
+    s = replace s, $I0, 2, "/"
     is( s, "Foo/Bar", 'bug 60030' )
     collect
     is( s, "Foo/Bar", 'bug 60030' )

Modified: branches/include_dynpmc_makefile/t/op/string_cmp.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/string_cmp.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/string_cmp.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/string_cs.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/string_cs.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/string_cs.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -6,7 +6,7 @@
 use warnings;
 use lib qw( . lib ../lib ../../lib );
 use Test::More;
-use Parrot::Test tests => 52;
+use Parrot::Test tests => 47;
 use Parrot::Config;
 
 =head1 NAME
@@ -263,48 +263,16 @@
 iso-8859-1
 OUTPUT
 
-pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_i" );
-    set S1, "abc"
-    find_charset I0, "iso-8859-1"
-    trans_charset S1, I0
-    print S1
-    print "\n"
-    charset I0, S1
-    charsetname S2, I0
-    print S2
-    print "\n"
-    end
-CODE
-abc
-iso-8859-1
-OUTPUT
-
-pasm_error_output_like( <<'CODE', <<OUTPUT, "trans_charset_s_i - lossy" );
+pasm_error_output_like( <<'CODE', <<OUTPUT, "trans_charset_s_s_i - lossy" );
     set S1, iso-8859-1:"abcä"
     find_charset I0, "ascii"
-    trans_charset S1, I0
+    trans_charset S2, S1, I0
     print "never\n"
     end
 CODE
 /lossy conversion to ascii/
 OUTPUT
 
-pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_i - same" );
-    set S1, ascii:"abc"
-    find_charset I0, "ascii"
-    trans_charset S1, I0
-    print S1
-    print "\n"
-    charset I0, S1
-    charsetname S2, I0
-    print S2
-    print "\n"
-    end
-CODE
-abc
-ascii
-OUTPUT
-
 pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_s_i iso-8859-1 to binary" );
     set S0, iso-8859-1:"abc"
     find_charset I0, "binary"
@@ -321,22 +289,6 @@
 binary
 OUTPUT
 
-pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_i iso-8859-1 to binary" );
-    set S1, iso-8859-1:"abc"
-    find_charset I0, "binary"
-    trans_charset S1, I0
-    print S1
-    print "\n"
-    charset I0, S1
-    charsetname S2, I0
-    print S2
-    print "\n"
-    end
-CODE
-abc
-binary
-OUTPUT
-
 pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_s_i ascii to binary" );
     set S0, ascii:"abc"
     find_charset I0, "binary"
@@ -353,22 +305,6 @@
 binary
 OUTPUT
 
-pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_i ascii to binary" );
-    set S1, ascii:"abc"
-    find_charset I0, "binary"
-    trans_charset S1, I0
-    print S1
-    print "\n"
-    charset I0, S1
-    charsetname S2, I0
-    print S2
-    print "\n"
-    end
-CODE
-abc
-binary
-OUTPUT
-
 pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_s_i ascii to iso-8859-1" );
     set S0, ascii:"abc"
     find_charset I0, "iso-8859-1"
@@ -385,22 +321,6 @@
 iso-8859-1
 OUTPUT
 
-pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_i ascii to iso-8859-1" );
-    set S1, ascii:"abc"
-    find_charset I0, "iso-8859-1"
-    trans_charset S1, I0
-    print S1
-    print "\n"
-    charset I0, S1
-    charsetname S2, I0
-    print S2
-    print "\n"
-    end
-CODE
-abc
-iso-8859-1
-OUTPUT
-
 pasm_output_is( <<'CODE', <<OUTPUT, "trans_charset_s_s_i iso-8859-1 to unicode" );
     set S0, iso-8859-1:"abc_ä_"
     find_charset I0, "unicode"
@@ -495,7 +415,7 @@
     set $S0, iso-8859-1:"TÖTSCH"
     find_charset $I0, "unicode"
     trans_charset $S1, $S0, $I0
-    downcase $S1
+    $S1 = downcase $S1
     getstdout $P0           # need to convert back to utf8
     $P0.'encoding'("utf8")  # set utf8 output
     print $S1
@@ -506,13 +426,13 @@
 t\xc3\xb6tsch
 OUTPUT
 
-    pasm_output_is( <<'CODE', <<"OUTPUT", "unicode downcase, trans_charset_s_i" );
+    pasm_output_is( <<'CODE', <<"OUTPUT", "unicode downcase, trans_charset_s_s_i" );
     set S0, iso-8859-1:"TÖTSCH"
     find_charset I0, "unicode"
     trans_charset S1, S0, I0
-    downcase S1
+    downcase S1, S1
     find_charset I0, "iso-8859-1"
-    trans_charset S1, I0
+    trans_charset S1, S1, I0
     print S1
     print "\n"
     end
@@ -531,7 +451,7 @@
     set S0, iso-8859-1:"TÖTSCH"
     find_charset I0, "unicode"
     trans_charset S1, S0, I0
-    downcase S1
+    downcase S1, S1
     find_encoding I0, "utf8"
     trans_encoding S2, S1, I0
     print S2
@@ -568,7 +488,7 @@
     set S0, iso-8859-1:"TTÖÖ"
     find_charset I0, "unicode"
     trans_charset S1, S0, I0
-    chopn S1, 2
+    chopn S1, S1, 2
     print S1
     print ' '
     length I0, S1
@@ -653,7 +573,8 @@
     trans_charset S1, S0, I0
     find_encoding I0, "utf16"
     trans_encoding S1, S1, I0
-    substr S2, S1, 1, 1, "oe"
+    substr  S2, S1, 1, 1
+    replace S1, S1, 1, 1, "oe"
     find_encoding I0, "utf8"
     trans_encoding S2, S2, I0
     trans_encoding S1, S1, I0
@@ -671,7 +592,7 @@
     set S0, iso-8859-1:"TÖTSCH"
     find_charset I0, "unicode"
     trans_charset S1, S0, I0
-    downcase S1
+    downcase S1, S1
     set S2, iso-8859-1:"öt"
     index I0, S1, S2
     print I0
@@ -685,7 +606,7 @@
     set S0, iso-8859-1:"TÖTSCH"
     find_charset I0, "unicode"
     trans_charset S1, S0, I0
-    downcase S1
+    downcase S1, S1
     set S2, iso-8859-1:"öt"
     index I0, S1, S2
     print I0
@@ -705,7 +626,7 @@
     set $S0, iso-8859-1:"tötsch"
     find_charset $I0, "unicode"
     trans_charset $S1, $S0, $I0
-    upcase $S1
+    upcase $S1, $S1
     getstdout $P0         # need to convert back to utf8
     $P0.'encoding'("utf8") # set utf8 output
     print $S1
@@ -719,7 +640,7 @@
     pir_output_is( <<'CODE', <<"OUTPUT", "unicode upcase to combined char" );
 .sub main :main
     set $S1, unicode:"hacek j \u01f0"
-    upcase $S1
+    upcase $S1, $S1
     getstdout $P0          # need to convert back to utf8
     $P0.'encoding'("utf8") # set utf8 output
     print $S1
@@ -749,7 +670,7 @@
     pir_output_is( <<'CODE', <<"OUTPUT", "unicode upcase to combined char 3.2 bug?" );
 .sub main :main
     set $S1, unicode:"___\u01f0123"
-    upcase $S1
+    upcase $S1, $S1
     getstdout $P0          # need to convert back to utf8
     $P0.'encoding'("utf8") # set utf8 output
     print $S1
@@ -765,7 +686,7 @@
     set $S0, iso-8859-1:"tötsch leo"
     find_charset $I0, "unicode"
     trans_charset $S1, $S0, $I0
-    titlecase $S1
+    titlecase $S1, $S1
     getstdout $P0          # need to convert back to utf8
     $P0.'encoding'("utf8") # set utf8 output
     print $S1
@@ -780,9 +701,9 @@
 .sub main :main
     set $S1, unicode:"___\u01f0___"
     length $I0, $S1
-    upcase $S1         # decompose J+hacek
+    upcase $S1, $S1    # decompose J+hacek
     length $I1, $S1    # 1 longer
-    downcase $S1       # j+hacek
+    downcase $S1, $S1  # j+hacek
     length $I2, $S1
     compose $S1, $S1
     length $I3, $S1        # back at original string

Modified: branches/include_dynpmc_makefile/t/op/stringu.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/stringu.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/stringu.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -256,7 +256,7 @@
     set S0, "AAAAAAAAAA\\u666"
     set I0, 0x666
     chr S1, I0
-    substr S0, 10, 5, S1
+    replace S0, S0, 10, 5, S1
     print S0
     print "\n"
     end

Modified: branches/include_dynpmc_makefile/t/op/time.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/time.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/time.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/trans.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/trans.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/trans.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/op/vivify.t
==============================================================================
--- branches/include_dynpmc_makefile/t/op/vivify.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/op/vivify.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pharness/02-get_test_prog_args.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pharness/02-get_test_prog_args.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pharness/02-get_test_prog_args.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -13,7 +13,7 @@
 };
 plan( skip_all => 't/harness only runs once configuration has completed' )
     if $@;
-plan( tests => 16 );
+plan( tests => 12 );
 use Carp;
 use Parrot::Harness::Options qw( get_test_prog_args );
 
@@ -28,7 +28,6 @@
 ($gc_debug, $run_exec) = (0,0);
 $args = get_test_prog_args($optsref, $gc_debug, $run_exec);
 like($args, qr/-d/, "Got expected option");
-like($args, qr/--runcore=cgoto/, "Got expected option");
 like($args, qr/-D40/, "Got expected option");
 
 $optsref = {
@@ -40,7 +39,6 @@
 ($gc_debug, $run_exec) = (0,0);
 $args = get_test_prog_args($optsref, $gc_debug, $run_exec);
 like($args, qr/-d/, "Got expected option");
-like($args, qr/--runcore=cgoto/, "Got expected option");
 like($args, qr/-D40/, "Got expected option");
 like($args, qr/-O2/, "Got expected option");
 
@@ -52,7 +50,6 @@
 ($gc_debug, $run_exec) = (1,0);
 $args = get_test_prog_args($optsref, $gc_debug, $run_exec);
 like($args, qr/-d/, "Got expected option");
-like($args, qr/--runcore=cgoto/, "Got expected option");
 like($args, qr/-D40/, "Got expected option");
 like($args, qr/\s--gc-debug/, "Got expected option");
 
@@ -64,7 +61,6 @@
 ($gc_debug, $run_exec) = (0,1);
 $args = get_test_prog_args($optsref, $gc_debug, $run_exec);
 like($args, qr/-d/, "Got expected option");
-like($args, qr/--runcore=cgoto/, "Got expected option");
 like($args, qr/-D40/, "Got expected option");
 like($args, qr/\s--run-exec/, "Got expected option");
 

Modified: branches/include_dynpmc_makefile/t/pir/macro.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pir/macro.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pir/macro.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pir/registernames.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pir/registernames.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pir/registernames.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/addrregistry.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/addrregistry.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/addrregistry.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/arrayiterator.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/arrayiterator.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/arrayiterator.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/bigint.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/bigint.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/bigint.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
@@ -51,7 +51,7 @@
     $P2 = $P1['gmp']
     $I1 = isnull $P2
     if $I1, NoLibGMP
-    say 'This Parrot uses GMP'
+    say '# This Parrot uses GMP'
 
     # check version is >= 4.1.4
     $P0 = new ['BigInt']
@@ -70,20 +70,16 @@
     lt $I2, 4, OldLibGMP
 
 Config2:
-    print 'Suitable GMP version ['
-    print $S3
-    say '] available'
+    diag( 'Suitable GMP version [', $S3, '] available' )
     goto ret
 
 NoLibGMP:
-    say 'No BigInt Lib configured'
+    diag( 'No BigInt Lib configured' )
     skip(34)
     exit 0
 
 OldLibGMP:
-    print 'Buggy GMP version ['
-    print $S3
-    say '] with huge digit multiply - please upgrade'
+    diag( 'Buggy GMP version [', $S3, '] with huge digit multiply - please upgrade' )
     skip(34)
     exit 0
 
@@ -567,7 +563,7 @@
     goto esz
 
 esz:
-    print 'Using '
+    print '# Using '
     $I0 = mul $I0, 8
     print $I0
     print '-bit Integers ['

Modified: branches/include_dynpmc_makefile/t/pmc/boolean.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/boolean.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/boolean.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2007, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/callcontext.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/callcontext.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/callcontext.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/capture.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/capture.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/capture.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/class.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/class.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/class.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/codestring.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/codestring.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/codestring.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/complex.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/complex.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/complex.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/config.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/config.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/config.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -49,7 +49,7 @@
     cfg = _config()
     $S1 = cfg['osname']
     if $S1 != 'MSWin32' goto sayit
-    downcase $S0
+    $S0 = downcase $S0
   sayit:
     print $S0
 .end

Modified: branches/include_dynpmc_makefile/t/pmc/context.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/context.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/context.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/continuation.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/continuation.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/continuation.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/default.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/default.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/default.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/env.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/env.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/env.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/eventhandler.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/eventhandler.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/eventhandler.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/exception.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/exception.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/exception.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/exceptionhandler.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/exceptionhandler.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/exceptionhandler.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/fixedbooleanarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/fixedbooleanarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/fixedbooleanarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/fixedfloatarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/fixedfloatarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/fixedfloatarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/fixedintegerarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/fixedintegerarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/fixedintegerarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/fixedpmcarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/fixedpmcarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/fixedpmcarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/fixedstringarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/fixedstringarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/fixedstringarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/float.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/float.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/float.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/handle.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/handle.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/handle.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/hash.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/hash.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/hash.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/hashiterator.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/hashiterator.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/hashiterator.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/imageio.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/imageio.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/imageio.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/imageiosize.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/imageiosize.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/imageiosize.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/integer.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/integer.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/integer.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/io.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/io.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/io.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -407,7 +407,7 @@
   LINE:
     \$S1 = readline \$P1
     unless \$S1 goto SUCCESS
-    chopn \$S1, 1
+    \$S1 = chopn \$S1, 1
 
   NEXT_NR:
     \$I1 = length \$S1
@@ -415,7 +415,7 @@
     \$S2 = ""
   SPLIT:
     \$S3 = substr \$S1, 0, 1
-    \$S1 = substr 0, 1, ""
+    \$S1 = replace \$S1, 0, 1, ""
     if \$S3 == " " goto GOT_NR
     \$S2 = concat \$S2, \$S3
     goto SPLIT
@@ -615,7 +615,7 @@
 
     # Extract part of the read in file
     .local string head_from_file
-    substr head_from_file, from_file, 0, 5, ''
+    head_from_file = substr from_file, 0, 5
     say head_from_file
 
     end
@@ -646,23 +646,20 @@
     .local string sub_3
     sub_3 = ''
     substr sub_1, line, 0, 3
-    substr sub_2, line, 0, 3, ''
-    substr sub_3, line, 0, 3, ''
+    substr sub_2, line, 3, 3
+    line = replace line, 0, 6, ''
     print "line: "
     print line
     print "sub_1: "
     say sub_1
     print "sub_2: "
     say sub_2
-    print "sub_3: "
-    say sub_3
   end
 .end
 CODE
 line: 6789ABCDEFGHIJKLMNOPQRSTUVWXYZ
 sub_1: 012
-sub_2: 012
-sub_3: 345
+sub_2: 345
 OUTPUT
 
 pir_error_output_like( <<'CODE', <<'OUT', 'read on null PMC throws exception');

Modified: branches/include_dynpmc_makefile/t/pmc/key.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/key.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/key.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2009, Parrot Foundation.
 # $Id$
 
@@ -129,7 +129,7 @@
 loop:
   unless iterator goto end
   elem = shift iterator
-  $S0 = substr elem, 0, 1, ''
+  $S0 = replace elem, 0, 1, ''
   goto loop
 end:
   .return('')

Modified: branches/include_dynpmc_makefile/t/pmc/lexinfo.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/lexinfo.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/lexinfo.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/lexpad.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/lexpad.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/lexpad.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/managedstruct.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/managedstruct.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/managedstruct.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/namespace-subs.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/namespace-subs.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/namespace-subs.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/namespace.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/namespace.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/namespace.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 
@@ -282,7 +282,6 @@
     $I0 = isnull $P0
     is($I0, 0, "Find Sub in an ISO-8859-1 NameSpace looked up by a Unicode name")
     $S0 = $P0()
-    say $S0
     is($S0, iso-8859-1:"Fran\x{E7}ois", "ISO-8859 NameSpace with Unicode name")
     goto end_test8
   eh8:

Modified: branches/include_dynpmc_makefile/t/pmc/null.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/null.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/null.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/object.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/object.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/object.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/objects.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/objects.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/objects.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/opcode.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/opcode.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/opcode.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/oplib.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/oplib.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/oplib.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfile.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfile.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfile.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfileannotation.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfileannotation.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfileannotation.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfileannotations.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfileannotations.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfileannotations.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfileconstanttable.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfileconstanttable.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfileconstanttable.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfiledirectory.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfiledirectory.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfiledirectory.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfilefixupentry.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfilefixupentry.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfilefixupentry.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfilefixuptable.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfilefixuptable.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfilefixuptable.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfilerawsegment.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfilerawsegment.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfilerawsegment.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/packfilesegment.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/packfilesegment.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/packfilesegment.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/parrotclass.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/parrotclass.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/parrotclass.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/parrotinterpreter.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/parrotinterpreter.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/parrotinterpreter.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#!parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/parrotlibrary.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/parrotlibrary.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/parrotlibrary.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/parrotrunningthread.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/parrotrunningthread.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/parrotrunningthread.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/parrotthread.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/parrotthread.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/parrotthread.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/pmcproxy.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/pmcproxy.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/pmcproxy.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/pointer.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/pointer.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/pointer.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/prop.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/prop.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/prop.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/resizablebooleanarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/resizablebooleanarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/resizablebooleanarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2007, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/resizablefloatarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/resizablefloatarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/resizablefloatarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/resizableintegerarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/resizableintegerarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/resizableintegerarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/resizablepmcarray.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/resizablepmcarray.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/resizablepmcarray.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/ro.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/ro.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/ro.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/role.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/role.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/role.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/scalar.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/scalar.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/scalar.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/scheduler.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/scheduler.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/scheduler.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/schedulermessage.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/schedulermessage.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/schedulermessage.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/sockaddr.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/sockaddr.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/sockaddr.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/socket.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/socket.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/socket.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/string.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/string.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/string.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
@@ -20,14 +20,13 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(171)
+    plan(167)
 
     set_or_get_strings()
     setting_integers()
     setting_numbers()
     ensure_that_concat_ppp_copies_strings()
     ensure_that_concat_pps_copies_strings()
-    assigning_string_copies()
     test_repeat()
     test_repeat_without_creating_dest_pmc()
     test_repeat_int()
@@ -50,7 +49,6 @@
     bnots_null_string()
     test_eq_str()
     test_ne_str()
-    set_const_and_chop()
     check_whether_interface_is_done()
     test_clone()
     test_set_px_i()
@@ -202,16 +200,6 @@
     is( $P0, 'fnarghGrunties', 'concat success' )
 .end
 
-.sub assigning_string_copies
-    new $P0, ['String']
-    set $S0, "C2H5OH + 10H20"
-    assign $P0, $S0
-    chopn $S0, 8
-
-    is( $S0, 'C2H5OH', 'removed the last 8 from string' )
-    is( $P0, 'C2H5OH + 10H20', '...and the assigned PMC is a copy' )
-.end
-
 .sub test_repeat
     new $P0, ['String']
     set $P0, "x"
@@ -758,15 +746,6 @@
 OK4:    ok( $I0, 'ne_str "0(Integer), "ABC" -> true' )
 .end
 
-.sub set_const_and_chop
-   new $P0, ['String']
-   set $P0, "str"
-   set $S0, $P0
-   chopn $S0, 2
-   is( $P0, 'str', 'original not touched' )
-   is( $S0, 's', 'string chopn' )
-.end
-
 .sub check_whether_interface_is_done
     .local pmc pmc1
     pmc1 = new ['String']
@@ -900,7 +879,7 @@
   $P0 = "Foo44"
 
   $S0 = $P0
-  substr $S0, 0, 1, "B"
+  $S0 = replace $S0, 0, 1, "B"
   is( $S0, "Boo44", 'substr replace' )
   is( $P0, "Foo44", '... no change to original' )
 .end

Modified: branches/include_dynpmc_makefile/t/pmc/stringiterator.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/stringiterator.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/stringiterator.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/undef.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/undef.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/undef.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2001-2009, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/pmc/unmanagedstruct.t
==============================================================================
--- branches/include_dynpmc_makefile/t/pmc/unmanagedstruct.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/pmc/unmanagedstruct.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -1,4 +1,4 @@
-#! parrot
+#!./parrot
 # Copyright (C) 2006-2008, Parrot Foundation.
 # $Id$
 

Modified: branches/include_dynpmc_makefile/t/run/exit.t
==============================================================================
--- branches/include_dynpmc_makefile/t/run/exit.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/run/exit.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -74,7 +74,7 @@
 my $pirfile = IO::File->new(">$pirfn");
 $pirfile->print("Parse error.\n");
 $pirfile->close();
-my $rv = system("$PARROT -o $pbcfn $pirfn") >> 8;
+my $rv = system(qq|$PARROT -o $pbcfn $pirfn $redir > $redir 2> $redir|) >> 8;
 isnt($rv, 0, "parrot returns error on parse failure\n");
 ok(! -e $pbcfn, "parrot doesn't create outfile on parse failure\n");
 

Deleted: branches/include_dynpmc_makefile/t/steps/auto/cgoto-01.t
==============================================================================
--- branches/include_dynpmc_makefile/t/steps/auto/cgoto-01.t	Wed Apr 28 19:17:12 2010	(r46115)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,139 +0,0 @@
-#! perl
-# Copyright (C) 2007, Parrot Foundation.
-# $Id$
-# auto/cgoto-01.t
-
-use strict;
-use warnings;
-use Test::More tests =>  25;
-use Carp;
-use lib qw( lib t/configure/testlib );
-use_ok('config::auto::cgoto');
-use Parrot::Configure::Options qw( process_options );
-use Parrot::Configure::Step::Test;
-use Parrot::Configure::Test qw(
-    test_step_constructor_and_description
-);
-use IO::CaptureOutput qw( capture );
-
-
-########### regular ###########
-
-my ($args, $step_list_ref) = process_options( {
-    argv => [ ],
-    mode => q{configure},
-} );
-
-my $conf = Parrot::Configure::Step::Test->new;
-$conf->include_config_results( $args );
-
-my $serialized = $conf->pcfreeze();
-
-my $pkg = q{auto::cgoto};
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
-my $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
-ok(defined($step->result()), "A result was defined");
-ok(defined($conf->data->get('cg_flag')), "An attribute has been defined");
-
-$conf->replenish($serialized);
-
-########### _probe_for_cgoto() ###########
-
-($args, $step_list_ref) = process_options( {
-    argv => [ ],
-    mode => q{configure},
-} );
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-$conf->options->set(cgoto => 1);
-is(auto::cgoto::_probe_for_cgoto($conf), 1,
-    "Got expected return value");
-$conf->options->set(cgoto => 0);
-is(auto::cgoto::_probe_for_cgoto($conf), 0,
-    "Got expected return value");
-$conf->options->set(cgoto => undef);
-ok(defined(auto::cgoto::_probe_for_cgoto($conf)),
-    "Probe returned a defined value");
-
-########### _evaluate_cgoto() ###########
-
-$step->_evaluate_cgoto($conf, 1);
-ok($conf->data->get('cg_flag'), "An attribute was set to true value");
-is($step->result(), q{yes}, "Expected result was set");
-
-$step->_evaluate_cgoto($conf, 0);
-is($conf->data->get('cg_flag'), q{}, "An attribute was set to empty string");
-is($step->result(), q{no}, "Expected result was set");
-
-$conf->replenish($serialized);
-
-($args, $step_list_ref) = process_options( {
-    argv => [ ],
-    mode => q{configure},
-} );
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-{
-    my $stdout;
-    capture(
-        sub { $step->_evaluate_cgoto($conf, 1) },
-        \$stdout
-    );
-    ok($conf->data->get('cg_flag'), "An attribute was set to true value");
-    is($step->result(), q{yes}, "Expected result was set");
-}
-
-{
-    my $stdout;
-    capture(
-        sub { $step->_evaluate_cgoto($conf, 0) },
-        \$stdout
-    );
-    is($conf->data->get('cg_flag'), q{},
-        "An attribute was set to empty string");
-    is($step->result(), q{no}, "Expected result was set");
-}
-
-
-pass("Completed all tests in $0");
-
-################### DOCUMENTATION ###################
-
-=head1 NAME
-
-auto/cgoto-01.t - test auto::cgoto
-
-=head1 SYNOPSIS
-
-    % prove t/steps/auto/cgoto-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test auto::cgoto.
-
-=head1 AUTHOR
-
-James E Keenan
-
-=head1 SEE ALSO
-
-config::auto::cgoto, F<Configure.pl>.
-
-=cut
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Copied: branches/include_dynpmc_makefile/t/steps/auto/zlib-01.t (from r46115, trunk/t/steps/auto/zlib-01.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/include_dynpmc_makefile/t/steps/auto/zlib-01.t	Wed Apr 28 19:17:12 2010	(r46116, copy of r46115, trunk/t/steps/auto/zlib-01.t)
@@ -0,0 +1,176 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use Test::More tests =>  24;
+use Carp;
+use lib qw( lib t/configure/testlib );
+use_ok('config::auto::zlib');
+use Parrot::Configure::Options qw( process_options );
+use Parrot::Configure::Step::Test;
+use Parrot::Configure::Test qw(
+    test_step_constructor_and_description
+);
+use IO::CaptureOutput qw( capture );
+
+########## --without-zlib ##########
+
+my ($args, $step_list_ref) = process_options(
+    {
+        argv => [ q{--without-zlib} ],
+        mode => q{configure},
+    }
+);
+
+my $conf = Parrot::Configure::Step::Test->new;
+$conf->include_config_results( $args );
+
+my $pkg = q{auto::zlib};
+
+$conf->add_steps($pkg);
+
+my $serialized = $conf->pcfreeze();
+
+$conf->options->set( %{$args} );
+my $step = test_step_constructor_and_description($conf);
+my $ret = $step->runstep($conf);
+ok( $ret, "runstep() returned true value" );
+is($conf->data->get('has_zlib'), 0,
+    "Got expected value for 'has_zlib'");
+is($step->result(), q{no}, "Expected result was set");
+
+$conf->replenish($serialized);
+
+########## _select_lib() ##########
+
+($args, $step_list_ref) = process_options( {
+    argv => [ ],
+    mode => q{configure},
+} );
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+# Mock different OS/compiler combinations.
+my ($osname, $cc, $initial_libs);
+$initial_libs = $conf->data->get('libs');
+$osname = 'mswin32';
+$cc = 'gcc';
+is($step->_select_lib( {
+    conf            => $conf,
+    osname          => $osname,
+    cc              => $cc,
+    win32_nongcc    => 'zlib.lib',
+    default         => '-lz',
+} ),
+   '-lz',
+   "_select_lib() returned expected value");
+
+$osname = 'mswin32';
+$cc = 'cc';
+is($step->_select_lib( {
+    conf            => $conf,
+    osname          => $osname,
+    cc              => $cc,
+    win32_nongcc    => 'zlib.lib',
+    default         => '-lz',
+} ),
+   'zlib.lib',
+   "_select_lib() returned expected value");
+
+$osname = 'foobar';
+$cc = 'cc';
+is($step->_select_lib( {
+    conf            => $conf,
+    osname          => $osname,
+    cc              => $cc,
+    win32_nongcc    => 'zlib.lib',
+    default         => '-lz',
+} ),
+   '-lz',
+   "_select_lib() returned expected value");
+
+my $verbose = undef;
+
+$conf->replenish($serialized);
+
+########## --without-zlib; _evaluate_cc_run() ##########
+
+($args, $step_list_ref) = process_options( {
+    argv => [ q{--without-zlib} ],
+    mode => q{configure},
+} );
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+my ($test, $has_zlib);
+$test = qq{1.2.3\n};
+$has_zlib = 0;
+$verbose = undef;
+$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+is($has_zlib, 1, "'has_zlib' set as expected");
+is($step->result(), 'yes, 1.2.3', "Expected result was set");
+# Prepare for next test
+$step->set_result(undef);
+
+$test = qq{foobar};
+$has_zlib = 0;
+$verbose = undef;
+$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+is($has_zlib, 0, "'has_zlib' set as expected");
+ok(! defined $step->result(), "Result is undefined, as expected");
+
+{
+    my $stdout;
+    $test = qq{1.2.3\n};
+    $has_zlib = 0;
+    $verbose = 1;
+    capture(
+        sub { $has_zlib =
+            $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose); },
+        \$stdout,
+    );
+    is($has_zlib, 1, "'has_zlib' set as expected");
+    is($step->result(), 'yes, 1.2.3', "Expected result was set");
+    like($stdout, qr/\(yes\)/, "Got expected verbose output");
+    # Prepare for next test
+    $step->set_result(undef);
+}
+
+pass("Completed all tests in $0");
+
+################### DOCUMENTATION ###################
+
+=head1 NAME
+
+auto/zlib-01.t - test auto::zlib
+
+=head1 SYNOPSIS
+
+    % prove t/steps/auto/zlib-01.t
+
+=head1 DESCRIPTION
+
+The files in this directory test functionality used by F<Configure.pl>.
+
+The tests in this file test auto::zlib.
+
+=head1 HISTORY
+
+Mostly taken from F<t/steps/auto/gdbm-01.t>.
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=head1 SEE ALSO
+
+config::auto::zlib, F<Configure.pl>.
+
+=cut
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Modified: branches/include_dynpmc_makefile/t/tools/install/testlib/README
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/install/testlib/README	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/install/testlib/README	Wed Apr 28 19:17:12 2010	(r46116)
@@ -104,14 +104,6 @@
 
     perldoc -F docs/intro.pod
 
-NOTES
------
-
-On some older computers with little RAM, the computed-goto dispatch core
-(ops/core_ops_cg.c) may take a while to compile or may fail to compile at all.
-You can pass a flag to Configure.pl (--cgoto=0) to disable the computed-goto
-core, at a slight cost in runtime speed.
-
 CHANGES
 -------
 

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/01-new.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/01-new.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/01-new.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -19,7 +19,7 @@
     }
     unshift @INC, qq{$topdir/lib};
 }
-use Test::More tests => 19;
+use Test::More tests => 15;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -87,19 +87,15 @@
             "Constructor correctly returned undef due to bad class name command-line argument" );
         like(
             $stderr,
-            qr/Parrot::Ops2c::Utils::new\(\) requires C, CGoto, CGP, CSwitch and\/or  CPrederef/,
+            qr/Parrot::Ops2c::Utils::new\(\) requires C/,
             "Got correct error message"
         );
     }
 
     test_single_trans(q{C});
-    test_single_trans(q{CGoto});
-    test_single_trans(q{CGP});
-    test_single_trans(q{CSwitch});
-    test_single_trans(q{CPrederef});
 
     {
-        local @ARGV = qw( C CGoto CGP CSwitch CPrederef );
+        local @ARGV = qw( C );
         my $self = Parrot::Ops2c::Utils->new(
             { argv => [@ARGV], flag => { core => 1 } }
         );
@@ -107,7 +103,7 @@
     }
 
     {
-        local @ARGV = qw( C CGoto CGP CSwitch CPrederef );
+        local @ARGV = qw( C );
         my $self = Parrot::Ops2c::Utils->new(
             {
                 argv   => [@ARGV],
@@ -146,7 +142,7 @@
 
 sub test_single_trans {
     my $trans = shift;
-    my %available = map { $_, 1 } qw( C CGoto CGP CSwitch CPrederef );
+    my %available = map { $_, 1 } qw( C );
     croak "Bad argument $trans to test_single_trans()"
         unless $available{$trans};
 

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/03-print_c_header_file.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/03-print_c_header_file.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/03-print_c_header_file.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -19,7 +19,7 @@
     }
     unshift @INC, qq{$topdir/lib};
 }
-use Test::More tests => 24;
+use Test::More tests => 12;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -47,13 +47,9 @@
     require Parrot::Ops2c::Utils;
 
     test_single_trans_and_header(q{C});
-    test_single_trans_and_header(q{CGoto});
-    test_single_trans_and_header(q{CGP});
-    test_single_trans_and_header(q{CSwitch});
-    test_single_trans_and_header(q{CPrederef});
 
     {
-        local @ARGV = qw( C CGoto CGP CSwitch CPrederef );
+        local @ARGV = qw( C );
         my $self = Parrot::Ops2c::Utils->new(
             {
                 argv => [@ARGV],
@@ -73,7 +69,7 @@
 
 sub test_single_trans_and_header {
     my $trans = shift;
-    my %available = map { $_, 1 } qw( C CGoto CGP CSwitch CPrederef );
+    my %available = map { $_, 1 } qw( C );
     croak "Bad argument $trans to test_single_trans()"
         unless $available{$trans};
 

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/04-print_c_source_top.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/04-print_c_source_top.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/04-print_c_source_top.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -19,7 +19,7 @@
     }
     unshift @INC, qq{$topdir/lib};
 }
-use Test::More tests => 26;
+use Test::More tests => 10;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -47,10 +47,6 @@
     require Parrot::Ops2c::Utils;
 
     test_print_c_source_top( [qw( C )] );
-    test_print_c_source_top( [qw( CGoto )] );
-    test_print_c_source_top( [qw( CGP )] );
-    test_print_c_source_top( [qw( CSwitch )] );
-    test_print_c_source_top( [qw( C CGoto CGP CSwitch CPrederef )] );
 
     ok( chdir($cwd), "returned to starting directory" );
 }

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/05-print_c_source_bottom.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/05-print_c_source_bottom.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/05-print_c_source_bottom.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -19,7 +19,7 @@
     }
     unshift @INC, qq{$topdir/lib};
 }
-use Test::More tests => 26;
+use Test::More tests => 10;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -48,10 +48,6 @@
     require Parrot::Ops2c::Utils;
 
     test_print_c_source_bottom( [qw( C )] );
-    test_print_c_source_bottom( [qw( CGoto )] );
-    test_print_c_source_bottom( [qw( CGP )] );
-    test_print_c_source_bottom( [qw( CSwitch )] );
-    test_print_c_source_bottom( [qw( C CGoto CGP CSwitch CPrederef )] );
 
     ok( chdir($cwd), "returned to starting directory" );
 }

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/06-dynamic.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/06-dynamic.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/06-dynamic.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -19,7 +19,7 @@
     }
     unshift @INC, qq{$topdir/lib};
 }
-use Test::More tests => 27;
+use Test::More tests => 15;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -55,16 +55,13 @@
     }
     chdir "src/dynoplibs" or croak "Unable to change to src/dynoplibs: $!";
 
-    test_dynops( [qw( CGoto    obscure.ops )] );
-    test_dynops( [qw( CGP      obscure.ops )] );
-    test_dynops( [qw( C        obscure.ops )] );
-    test_dynops( [qw( CSwitch  obscure.ops )] );
+    test_dynops( [qw( C obscure.ops )] );
 
     {
         my ($self, $stdout, $stderr);
         capture(
             sub { $self = Parrot::Ops2c::Utils->new( {
-                        argv => [qw( CSwitch  obscure.ops obscure.ops )],
+                        argv => [qw( C obscure.ops obscure.ops )],
                         flag => { dynamic => 1 },
                 } ); },
             \$stdout,

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/07-make_incdir.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/07-make_incdir.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/07-make_incdir.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -81,7 +81,7 @@
     require Parrot::Ops2c::Utils;
 
     {
-        local @ARGV = qw( C CGoto CGP CSwitch CPrederef );
+        local @ARGV = qw( C );
         my $self = Parrot::Ops2c::Utils->new(
             {
                 argv => [@ARGV],
@@ -98,7 +98,7 @@
 
 sub test_single_trans {
     my $trans = shift;
-    my %available = map { $_, 1 } qw( C CGoto CGP CSwitch CPrederef );
+    my %available = map { $_, 1 } qw( C );
     croak "Bad argument $trans to test_single_trans()"
         unless $available{$trans};
 

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/08-nolines.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/08-nolines.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/08-nolines.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -47,7 +47,7 @@
     require Parrot::Ops2c::Utils;
 
     {
-        local @ARGV = qw( C CGoto CGP CSwitch CPrederef );
+        local @ARGV = qw( C );
         my $self = Parrot::Ops2c::Utils->new(
             {
                 argv => [@ARGV],

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/09-dynamic_nolines.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/09-dynamic_nolines.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/09-dynamic_nolines.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -19,7 +19,7 @@
     }
     unshift @INC, qq{$topdir/lib};
 }
-use Test::More tests => 22;
+use Test::More tests => 10;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -52,10 +52,7 @@
     }
     chdir "src/dynoplibs" or croak "Unable to change to src/dynoplibs: $!";
 
-    test_dynops_nolines( [qw( CGoto    obscure.ops )] );
-    test_dynops_nolines( [qw( CGP      obscure.ops )] );
     test_dynops_nolines( [qw( C        obscure.ops )] );
-    test_dynops_nolines( [qw( CSwitch  obscure.ops )] );
 
     ok( chdir($cwd), "returned to starting directory" );
 }

Modified: branches/include_dynpmc_makefile/t/tools/ops2cutils/10-print_c_source_file.t
==============================================================================
--- branches/include_dynpmc_makefile/t/tools/ops2cutils/10-print_c_source_file.t	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/t/tools/ops2cutils/10-print_c_source_file.t	Wed Apr 28 19:17:12 2010	(r46116)
@@ -19,7 +19,7 @@
     }
     unshift @INC, qq{$topdir/lib};
 }
-use Test::More tests => 21;
+use Test::More tests => 12;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -47,12 +47,9 @@
     require Parrot::Ops2c::Utils;
 
     test_single_trans_and_source(q{C});
-    test_single_trans_and_source(q{CGoto});
-    test_single_trans_and_source(q{CGP});
-    test_single_trans_and_source(q{CSwitch});
 
     {
-        local @ARGV = qw( C CGoto CGP CSwitch );
+        local @ARGV = qw( C );
         my $self = Parrot::Ops2c::Utils->new(
             {
                 argv => [@ARGV],
@@ -72,7 +69,7 @@
 
 sub test_single_trans_and_source {
     my $trans = shift;
-    my %available = map { $_, 1 } qw( C CGoto CGP CSwitch CPrederef );
+    my %available = map { $_, 1 } qw( C );
     croak "Bad argument $trans to test_single_trans()"
         unless $available{$trans};
 

Modified: branches/include_dynpmc_makefile/tools/build/ops2c.pl
==============================================================================
--- branches/include_dynpmc_makefile/tools/build/ops2c.pl	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/build/ops2c.pl	Wed Apr 28 19:17:12 2010	(r46116)
@@ -47,7 +47,7 @@
 
     % perl tools/build/ops2c.pl trans [--help] [--no-lines] [--dynamic]
                                       [--core | input.ops [input2.ops ...]]
-       trans := C | CGoto | CGP | CSwitch | CPrederef
+       trans := C
 
 For example:
 
@@ -75,22 +75,6 @@
 
 Create the function-based (slow or fast core) run loop.
 
-=item C<CGoto>
-
-Create the C<goto> run loop.
-
-=item C<CGP>
-
-Create the C<goto> and predereferenced run loop.
-
-=item C<CSwitch>
-
-Create the C<switch>ed and predereferenced run loop.
-
-=item C<CPrederef>
-
-Create the predereferenced run loop.
-
 =back
 
 =head2 Options
@@ -153,14 +137,6 @@
 
 =item C<Parrot::OpTrans::C>
 
-=item C<Parrot::OpTrans::CGoto>
-
-=item C<Parrot::OpTrans::CGP>
-
-=item C<Parrot::OpTrans::CSwitch>
-
-=item C<Parrot::OpTrans::CPrederef>
-
 =item C<Parrot::Ops2c::Utils>
 
 =item C<Parrot::Ops2c::Auxiliary>

Modified: branches/include_dynpmc_makefile/tools/dev/checkdepend.pl
==============================================================================
--- branches/include_dynpmc_makefile/tools/dev/checkdepend.pl	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/dev/checkdepend.pl	Wed Apr 28 19:17:12 2010	(r46116)
@@ -85,6 +85,11 @@
 
         diag "couldn't find $include, included from $file";
     }
+    # always require an explicit .o -> .c dep. This is lazy and not always
+    # needed. However, missing it when it is needed causes pain.
+    if ($file =~ /\.c$/) {
+        push @{$deps{$file}}, $file;
+    }
 }
 
 foreach my $file (sort grep /\.pir$/, @incfiles) {
@@ -267,7 +272,7 @@
         $rule_deps        = join "\n", sort split /\s+/, $rule_deps;
         my $expected_deps = join "\n", sort (get_deps($file));
 
-        eq_or_diff_text($rule_deps, $expected_deps, "$file has correct dependencies $extra_info.", {context => 0});
+        eq_or_diff_text($rule_deps, $expected_deps, "$file $extra_info.", {context => 0});
     }
 }
 

Modified: branches/include_dynpmc_makefile/tools/dev/gen_charset_tables.pl
==============================================================================
--- branches/include_dynpmc_makefile/tools/dev/gen_charset_tables.pl	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/dev/gen_charset_tables.pl	Wed Apr 28 19:17:12 2010	(r46116)
@@ -38,15 +38,13 @@
 # charset tables to create
 #
 my %table = (
-    "en_US.iso88591" => "Parrot_iso_8859_1_typetable",
-
-    #    "en_US.iso885915" => "Parrot_iso_8859_15_typetable",
-    "POSIX" => "Parrot_ascii_typetable",
+    'en_US.iso88591' => 'Parrot_iso_8859_1_typetable',
+    'POSIX'          => 'Parrot_ascii_typetable',
 );
 
 my $header = <<"HEADER";
 /* $fileid
- * Copyright (C) 2005-2007, Parrot Foundation.
+ * Copyright (C) 2005-2010, Parrot Foundation.
  *
  * DO NOT EDIT THIS FILE DIRECTLY!
  * please update the $0 script instead.
@@ -54,10 +52,6 @@
  * Created by $svnid
  *  Overview:
  *     This file contains various charset tables.
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
  */
 
 /* HEADERIZER HFILE: none */

Modified: branches/include_dynpmc_makefile/tools/dev/mk_manifest_and_skip.pl
==============================================================================
--- branches/include_dynpmc_makefile/tools/dev/mk_manifest_and_skip.pl	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/dev/mk_manifest_and_skip.pl	Wed Apr 28 19:17:12 2010	(r46116)
@@ -38,9 +38,12 @@
 
 =head1 DESCRIPTION
 
-Recreates MANIFEST and MANIFEST.SKIP from the subversion properties
-and the output of C<svn status>. .
-So far tested with svn 1.2.0 and svn 1.4.2.
+Recreates MANIFEST and MANIFEST.SKIP from the output of C<svn status> and the subversion properties. Run this script after SVN has been told about new or deleted files and before you commit to the repository. So far tested with svn 1.2.0, 1.4.2 and 1.6.6.
+
+    svn add PATH...
+    svn delete PATH...
+    perl tools/dev/mk_manifest_and_skip.pl
+    svn commit -m ... [PATH...]
 
 This won't work for git-svn.
 

Modified: branches/include_dynpmc_makefile/tools/dev/mk_native_pbc
==============================================================================
--- branches/include_dynpmc_makefile/tools/dev/mk_native_pbc	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/dev/mk_native_pbc	Wed Apr 28 19:17:12 2010	(r46116)
@@ -177,4 +177,4 @@
 
 echo ""
 echo "cd t/native_pbc"
-echo svn commit -m'native_pbc platform updates'
+echo "svn commit -m 'native_pbc platform updates'"

Modified: branches/include_dynpmc_makefile/tools/dev/nci_thunk_gen.pir
==============================================================================
--- branches/include_dynpmc_makefile/tools/dev/nci_thunk_gen.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/dev/nci_thunk_gen.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -776,7 +776,7 @@
         inner_whitespace_loop:
             $I0 = index line, $S0
             if $I0 < 0 goto end_inner_whitespace_loop
-            substr line, $I0, 1, ' '
+            line = replace line, $I0, 1, ' '
             goto inner_whitespace_loop
         end_inner_whitespace_loop:
 
@@ -787,14 +787,16 @@
     multispace_loop:
         $I0 = index line, '  '
         if $I0 < 0 goto end_multispace_loop
-        $S0 = substr line, $I0, 2, ' '
+        $S0  = substr line, $I0, 2
+        line = replace line, $I0, 2, ' '
         goto multispace_loop
     end_multispace_loop:
 
     # remove leading whitespace
     $S0 = substr line, 0, 1
     unless $S0 == ' ' goto end_leading
-        $S0 = substr line, 0, 1, ''
+        $S0  = substr line, 0, 1
+        line = replace line, 0, 1, ' '
     end_leading:
 
     # handle empty (or whitespace only) lines
@@ -804,7 +806,8 @@
     # remove trailing whitespace
     $S0 = substr line, -1, 1
     unless $S0 == ' ' goto end_trailing
-        $S0 = substr line, -1, 1, ''
+        $S0  = substr line, -1, 1
+        line = replace line, -1, 1, ''
     end_trailing:
 
     # read the signature
@@ -918,7 +921,7 @@
 
     # decode table
     .local pmc compiler
-    load_bytecode 'data_json.pbc'
+    load_language 'data_json'
     compiler = compreg 'data_json'
 
     .local pmc table
@@ -1111,7 +1114,7 @@
         $S1 = substr file, $I1, $I0
         unless $S1 == $S0 goto extn_loop
         extn = $S1
-        substr file, $I1, $I0, ''
+        file = replace file, $I1, $I0, ''
     end_extn_loop:
 
     .return (dir, file, extn)

Modified: branches/include_dynpmc_makefile/tools/dev/parrot-fuzzer
==============================================================================
--- branches/include_dynpmc_makefile/tools/dev/parrot-fuzzer	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/dev/parrot-fuzzer	Wed Apr 28 19:17:12 2010	(r46116)
@@ -62,7 +62,7 @@
 
 Specify which runcore to use when running Parrot.  The default is the C<slow>
 core.  This option corresponds directly to Parrot's C<--runcore> option.  Other
-runcores include C<fast>, C<jit>, C<cgoto>, C<cgp>, C<cgp-jit>, and C<switch>.
+runcores include C<fast>.
 See Parrot's help for more details.
 
 =item C<--ignore_blacklist>

Modified: branches/include_dynpmc_makefile/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/include_dynpmc_makefile/tools/dev/pbc_to_exe.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/dev/pbc_to_exe.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -378,11 +378,10 @@
     .param string new_extension
 
     $S0 = substr pbc_path, -4
-    downcase $S0
+    $S0 = downcase $S0
     if $S0 != '.pbc' goto err_pbc_path_not_pbc
     .local string base_path
-     base_path = substr pbc_path, 0
-     substr base_path, -4, 4, ''
+     base_path = replace pbc_path, -4, 4, ''
 
     .local string new_path
     new_path = substr base_path, 0

Modified: branches/include_dynpmc_makefile/tools/install/smoke.pl
==============================================================================
--- branches/include_dynpmc_makefile/tools/install/smoke.pl	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/install/smoke.pl	Wed Apr 28 19:17:12 2010	(r46116)
@@ -9,7 +9,7 @@
 use Getopt::Long;
 use File::Spec::Functions;
 
-use Test::More tests => 8;
+use Test::More tests => 7;
 
 =head1 NAME
 
@@ -146,16 +146,6 @@
 ok($out =~ /^\n\.sub '_ROOT_past'/, "check TGE");
 unlink($filename);
 
-# compilers/nqp is typically not installed
-$filename = 'test.nqp';
-open $FH, '>', $filename
-        or die "Can't open $filename ($!).\n";
-print $FH "say('hello world!');\n";
-close $FH;
-$out = `$parrot $compdir/nqp/nqp.pbc $filename`;
-ok($out eq "hello world!\n", "check nqp");
-unlink($filename);
-
 # Local Variables:
 #   mode: cperl
 #   cperl-indent-level: 4

Modified: branches/include_dynpmc_makefile/tools/util/parrot-config.pir
==============================================================================
--- branches/include_dynpmc_makefile/tools/util/parrot-config.pir	Wed Apr 28 18:41:57 2010	(r46115)
+++ branches/include_dynpmc_makefile/tools/util/parrot-config.pir	Wed Apr 28 19:17:12 2010	(r46116)
@@ -46,18 +46,32 @@
     if key == '--help' goto usage
     if key == '--dump' goto dump
     $I0 = defined conf_hash[key]
-    if $I0 goto ok2
-    print " no such key: '"
-    print key
-    print "'\n"
-    end
-ok2:
+    unless $I0 goto failkey
+    dec argc
+    if i < argc goto dumpsome
     $S0 = conf_hash[key]
     print $S0
     inc i
     if i < argc goto loop
     print "\n"
     end
+dumpsome:
+    key = argv[i]
+    $I0 = defined conf_hash[key]
+    unless $I0 goto failkey
+    print key
+    print " => '"
+    $S1 = conf_hash[key]
+    print $S1
+    say "'"
+    inc i
+    if i <= argc goto dumpsome
+    end
+failkey:
+    print " no such key: '"
+    print key
+    print "'\n"
+    end
 dump:
    .local pmc iterator
     iterator = iter conf_hash


More information about the parrot-commits mailing list