[svn:parrot] r44743 - in branches/ops_pct: . compilers/data_json compilers/imcc compilers/json compilers/ncigen/t compilers/ncigen/t/NCIGENAST compilers/nqp compilers/opsc compilers/pct compilers/pge compilers/pirc/src compilers/pirc/t compilers/tge config/auto config/auto/sizes config/auto/warnings config/gen config/gen/call_list config/gen/crypto config/gen/makefiles config/gen/platform config/gen/platform/generic config/gen/platform/openbsd config/init config/init/hints config/inter docs docs/book/draft docs/book/pct docs/dev docs/pdds docs/pdds/draft docs/project examples/c examples/embed examples/languages/abc examples/languages/abc/t examples/languages/squaak examples/nci examples/pge examples/pir examples/sdl examples/sdl/lcd examples/sdl/minesweeper examples/sdl/tetris ext/Parrot-Embed/lib/Parrot ext/Parrot-Embed/t ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot include/parrot/atomic include/parrot/oplib lib/Parrot lib/Parrot/Configure lib/Parrot/Configure/St ep lib/Parrot/Docs lib/Parrot/Docs/Section lib/Parrot/Harness lib/Parrot/OpTrans lib/Parrot/Ops2c lib/Parrot/Pmc2c ports/cpan ports/cygwin ports/debian ports/fedora ports/mandriva ports/suse runtime/parrot/include runtime/parrot/languages runtime/parrot/library runtime/parrot/library/Configure runtime/parrot/library/Data runtime/parrot/library/Data/Dumper runtime/parrot/library/HTTP runtime/parrot/library/Math runtime/parrot/library/Math/Random runtime/parrot/library/Parrot runtime/parrot/library/SDL runtime/parrot/library/Test runtime/parrot/library/Test/Builder runtime/parrot/library/YAML runtime/parrot/library/YAML/Dumper src src/atomic src/call src/dynpmc src/gc src/interp src/io src/nci src/ops src/packfile src/pmc src/runcore src/string src/string/charset src/string/encoding t t/codingstd t/compilers/imcc/imcpasm t/compilers/imcc/reg t/compilers/imcc/syn t/compilers/json t/compilers/pct t/compilers/pge t/compilers/tge t/configure t/distro t/dynoplibs t/dynpmc t/example s t/library t/manifest t/native_pbc t/oo t/op t/perl t/pir t/pmc t/run t/src t/steps/auto t/steps/gen t/steps/init/hints t/tools t/tools/dev t/tools/install t/tools/ops2pm t/tools/pmc2cutils tools/build tools/dev tools/util
cotto at svn.parrot.org
cotto at svn.parrot.org
Sun Mar 7 19:34:00 UTC 2010
Author: cotto
Date: Sun Mar 7 19:33:20 2010
New Revision: 44743
URL: https://trac.parrot.org/parrot/changeset/44743
Log:
[opsc] sync branch with trunk
Added:
branches/ops_pct/compilers/imcc/Rules.in
- copied unchanged from r44740, trunk/compilers/imcc/Rules.in
branches/ops_pct/src/nci/ (props changed)
- copied from r44740, trunk/src/nci/
branches/ops_pct/src/pmc/imageiosize.pmc
- copied unchanged from r44740, trunk/src/pmc/imageiosize.pmc
branches/ops_pct/src/pmc/opcode.pmc
- copied unchanged from r44740, trunk/src/pmc/opcode.pmc
branches/ops_pct/src/pmc/oplib.pmc
- copied unchanged from r44740, trunk/src/pmc/oplib.pmc
branches/ops_pct/t/compilers/imcc/reg/spill_old.t
- copied unchanged from r44740, trunk/t/compilers/imcc/reg/spill_old.t
branches/ops_pct/t/op/errorson.t
- copied unchanged from r44740, trunk/t/op/errorson.t
branches/ops_pct/t/op/gc-leaky.t
- copied unchanged from r44740, trunk/t/op/gc-leaky.t
branches/ops_pct/t/pmc/imageio.t
- copied unchanged from r44740, trunk/t/pmc/imageio.t
branches/ops_pct/t/pmc/imageiosize.t
- copied unchanged from r44740, trunk/t/pmc/imageiosize.t
branches/ops_pct/t/pmc/opcode.t
- copied unchanged from r44740, trunk/t/pmc/opcode.t
branches/ops_pct/t/pmc/oplib.t
- copied unchanged from r44740, trunk/t/pmc/oplib.t
branches/ops_pct/tools/dev/mk_nci_thunks.pl
- copied unchanged from r44740, trunk/tools/dev/mk_nci_thunks.pl
branches/ops_pct/tools/dev/nci_thunk_gen.pir
- copied unchanged from r44740, trunk/tools/dev/nci_thunk_gen.pir
Replaced:
branches/ops_pct/src/nci/api.c
- copied unchanged from r44740, trunk/src/nci/api.c
branches/ops_pct/src/nci/core_thunks.c
- copied unchanged from r44740, trunk/src/nci/core_thunks.c
branches/ops_pct/src/nci/core_thunks.nci
- copied unchanged from r44740, trunk/src/nci/core_thunks.nci
branches/ops_pct/src/nci/extra_thunks.c
- copied unchanged from r44740, trunk/src/nci/extra_thunks.c
branches/ops_pct/src/nci/extra_thunks.nci
- copied unchanged from r44740, trunk/src/nci/extra_thunks.nci
Deleted:
branches/ops_pct/compilers/imcc/Rules.mak
branches/ops_pct/config/gen/call_list/
branches/ops_pct/config/gen/call_list.pm
branches/ops_pct/config/gen/makefiles/CFLAGS.in
branches/ops_pct/include/parrot/events.h
branches/ops_pct/include/parrot/tsq.h
branches/ops_pct/runtime/parrot/library/Math/Random/
branches/ops_pct/src/events.c
branches/ops_pct/src/tsq.c
branches/ops_pct/t/library/mt19937ar.t
branches/ops_pct/t/library/mt19937ar.txt
branches/ops_pct/t/op/bitwise.t
branches/ops_pct/t/steps/gen/call_list-01.t
branches/ops_pct/tools/build/cc_flags.pl
branches/ops_pct/tools/build/nativecall.pir
branches/ops_pct/tools/build/nativecall.pl
Modified:
branches/ops_pct/ (props changed)
branches/ops_pct/CREDITS
branches/ops_pct/ChangeLog
branches/ops_pct/Configure.pl
branches/ops_pct/DEPRECATED.pod
branches/ops_pct/MANIFEST
branches/ops_pct/MANIFEST.SKIP
branches/ops_pct/MANIFEST.generated
branches/ops_pct/META.yml
branches/ops_pct/NEWS
branches/ops_pct/PBC_COMPAT
branches/ops_pct/PLATFORMS
branches/ops_pct/README
branches/ops_pct/VERSION
branches/ops_pct/compilers/data_json/Defines.mak
branches/ops_pct/compilers/data_json/Rules.mak (contents, props changed)
branches/ops_pct/compilers/imcc/ (props changed)
branches/ops_pct/compilers/imcc/cfg.c
branches/ops_pct/compilers/imcc/cfg.h
branches/ops_pct/compilers/imcc/imc.c
branches/ops_pct/compilers/imcc/imcc.l
branches/ops_pct/compilers/imcc/imcc.y
branches/ops_pct/compilers/imcc/imclexer.c
branches/ops_pct/compilers/imcc/imcparser.c
branches/ops_pct/compilers/imcc/imcparser.h
branches/ops_pct/compilers/imcc/instructions.c
branches/ops_pct/compilers/imcc/instructions.h
branches/ops_pct/compilers/imcc/main.c
branches/ops_pct/compilers/imcc/optimizer.c
branches/ops_pct/compilers/imcc/parser_util.c
branches/ops_pct/compilers/imcc/pbc.c
branches/ops_pct/compilers/imcc/pbc.h
branches/ops_pct/compilers/imcc/pcc.c
branches/ops_pct/compilers/imcc/reg_alloc.c
branches/ops_pct/compilers/imcc/sets.c
branches/ops_pct/compilers/imcc/sets.h
branches/ops_pct/compilers/imcc/symreg.c
branches/ops_pct/compilers/imcc/symreg.h
branches/ops_pct/compilers/json/Rules.mak (props changed)
branches/ops_pct/compilers/ncigen/t/NCIGENAST/struct_00.t
branches/ops_pct/compilers/ncigen/t/NCIGENAST/typedef_00.t
branches/ops_pct/compilers/ncigen/t/parse_00.t
branches/ops_pct/compilers/ncigen/t/parse_01.t
branches/ops_pct/compilers/ncigen/t/parse_02.t
branches/ops_pct/compilers/nqp/Rules.mak (props changed)
branches/ops_pct/compilers/opsc/Defines.mak (props changed)
branches/ops_pct/compilers/opsc/Rules.mak (props changed)
branches/ops_pct/compilers/pct/Rules.mak (props changed)
branches/ops_pct/compilers/pge/Rules.mak (props changed)
branches/ops_pct/compilers/pirc/src/bcgen.c
branches/ops_pct/compilers/pirc/src/main.c
branches/ops_pct/compilers/pirc/src/pir.y
branches/ops_pct/compilers/pirc/src/pircapi.c
branches/ops_pct/compilers/pirc/src/pircompiler.c
branches/ops_pct/compilers/pirc/src/pircompiler.h
branches/ops_pct/compilers/pirc/src/pircompunit.c
branches/ops_pct/compilers/pirc/src/pircompunit.h
branches/ops_pct/compilers/pirc/src/piremit.c
branches/ops_pct/compilers/pirc/src/piremit.h
branches/ops_pct/compilers/pirc/src/pirmacro.c
branches/ops_pct/compilers/pirc/src/pirmacro.h
branches/ops_pct/compilers/pirc/src/pirparser.c
branches/ops_pct/compilers/pirc/src/pirpcc.c
branches/ops_pct/compilers/pirc/src/pirpcc.h
branches/ops_pct/compilers/pirc/src/pirregalloc.c
branches/ops_pct/compilers/pirc/src/pirregalloc.h
branches/ops_pct/compilers/pirc/src/pirsymbol.c
branches/ops_pct/compilers/pirc/src/pirsymbol.h
branches/ops_pct/compilers/pirc/t/basic.t
branches/ops_pct/compilers/pirc/t/heredoc.t
branches/ops_pct/compilers/pirc/t/macro.t
branches/ops_pct/compilers/pirc/t/stmts.t
branches/ops_pct/compilers/pirc/t/subflags.t
branches/ops_pct/compilers/tge/Rules.mak (props changed)
branches/ops_pct/config/auto/cgoto.pm
branches/ops_pct/config/auto/gcc.pm
branches/ops_pct/config/auto/icu.pm
branches/ops_pct/config/auto/perldoc.pm
branches/ops_pct/config/auto/pmc.pm
branches/ops_pct/config/auto/sizes/intval_maxmin_c.in (props changed)
branches/ops_pct/config/auto/warnings.pm
branches/ops_pct/config/auto/warnings/test_c.in
branches/ops_pct/config/gen/crypto/digest_pmc.in
branches/ops_pct/config/gen/makefiles.pm
branches/ops_pct/config/gen/makefiles/docs.in
branches/ops_pct/config/gen/makefiles/dynoplibs.in
branches/ops_pct/config/gen/makefiles/dynpmc.in
branches/ops_pct/config/gen/makefiles/root.in
branches/ops_pct/config/gen/opengl.pm
branches/ops_pct/config/gen/platform/generic/env.c
branches/ops_pct/config/gen/platform/generic/exec.c
branches/ops_pct/config/gen/platform/generic/memexec.c
branches/ops_pct/config/gen/platform/openbsd/memexec.c
branches/ops_pct/config/gen/platform/platform_interface.h
branches/ops_pct/config/init/hints/darwin.pm
branches/ops_pct/config/init/hints/mswin32.pm
branches/ops_pct/config/init/hints/openbsd.pm
branches/ops_pct/config/init/optimize.pm
branches/ops_pct/config/inter/charset.pm
branches/ops_pct/config/inter/encoding.pm
branches/ops_pct/config/inter/libparrot.pm
branches/ops_pct/docs/book/draft/README (props changed)
branches/ops_pct/docs/book/draft/appa_glossary.pod (props changed)
branches/ops_pct/docs/book/draft/appb_patch_submission.pod (props changed)
branches/ops_pct/docs/book/draft/appc_command_line_options.pod (props changed)
branches/ops_pct/docs/book/draft/appd_build_options.pod (props changed)
branches/ops_pct/docs/book/draft/appe_source_code.pod (props changed)
branches/ops_pct/docs/book/draft/ch01_introduction.pod (props changed)
branches/ops_pct/docs/book/draft/ch02_getting_started.pod (props changed)
branches/ops_pct/docs/book/draft/ch07_dynpmcs.pod (props changed)
branches/ops_pct/docs/book/draft/ch08_dynops.pod (props changed)
branches/ops_pct/docs/book/draft/ch10_opcode_reference.pod (props changed)
branches/ops_pct/docs/book/draft/ch11_directive_reference.pod (props changed)
branches/ops_pct/docs/book/draft/ch12_operator_reference.pod (props changed)
branches/ops_pct/docs/book/draft/chXX_hlls.pod (props changed)
branches/ops_pct/docs/book/draft/chXX_library.pod (props changed)
branches/ops_pct/docs/book/draft/chXX_testing_and_debugging.pod (props changed)
branches/ops_pct/docs/book/pct/ch01_introduction.pod (props changed)
branches/ops_pct/docs/book/pct/ch02_getting_started.pod (props changed)
branches/ops_pct/docs/book/pct/ch03_compiler_tools.pod (props changed)
branches/ops_pct/docs/book/pct/ch04_pge.pod (props changed)
branches/ops_pct/docs/book/pct/ch05_nqp.pod (props changed)
branches/ops_pct/docs/dev/c_functions.pod (props changed)
branches/ops_pct/docs/embed.pod
branches/ops_pct/docs/parrothist.pod
branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod
branches/ops_pct/docs/pdds/draft/pdd11_extending.pod
branches/ops_pct/docs/pdds/pdd17_pmc.pod
branches/ops_pct/docs/pdds/pdd28_strings.pod
branches/ops_pct/docs/pdds/pdd30_install.pod (props changed)
branches/ops_pct/docs/project/release_manager_guide.pod
branches/ops_pct/docs/tests.pod
branches/ops_pct/examples/c/nanoparrot.c
branches/ops_pct/examples/c/pbc_info.c
branches/ops_pct/examples/embed/cotorra.c (contents, props changed)
branches/ops_pct/examples/languages/abc/ (props changed)
branches/ops_pct/examples/languages/abc/t/01-tests.t
branches/ops_pct/examples/languages/squaak/ (props changed)
branches/ops_pct/examples/nci/QtHelloWorld.pasm
branches/ops_pct/examples/nci/QtHelloWorld.pir
branches/ops_pct/examples/nci/sdl_blue_rectangle.pir
branches/ops_pct/examples/pge/demo.pir (props changed)
branches/ops_pct/examples/pir/make_hello_pbc.pir
branches/ops_pct/examples/sdl/anim_image.pir
branches/ops_pct/examples/sdl/anim_image_dblbuf.pir
branches/ops_pct/examples/sdl/blue_font.pir
branches/ops_pct/examples/sdl/blue_rect.pir
branches/ops_pct/examples/sdl/bounce_parrot_logo.pir
branches/ops_pct/examples/sdl/lcd/clock.pir
branches/ops_pct/examples/sdl/mandel.pir
branches/ops_pct/examples/sdl/minesweeper/eventhandler.pir
branches/ops_pct/examples/sdl/minesweeper/field.pir
branches/ops_pct/examples/sdl/minesweeper/mines.pir
branches/ops_pct/examples/sdl/move_parrot_logo.pir
branches/ops_pct/examples/sdl/raw_pixels.pir
branches/ops_pct/examples/sdl/tetris/app.pir
branches/ops_pct/examples/sdl/tetris/block.pir
branches/ops_pct/examples/sdl/tetris/board.pir
branches/ops_pct/examples/sdl/tetris/eventhandler.pir
branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs
branches/ops_pct/ext/Parrot-Embed/t/pipp.t
branches/ops_pct/ext/nqp-rx/Rules.mak (props changed)
branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir
branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir
branches/ops_pct/ext/nqp-rx/src/stage0/P6Regex-s0.pir
branches/ops_pct/include/parrot/atomic/gcc_pcc.h
branches/ops_pct/include/parrot/call.h (contents, props changed)
branches/ops_pct/include/parrot/charset.h
branches/ops_pct/include/parrot/context.h
branches/ops_pct/include/parrot/debugger.h
branches/ops_pct/include/parrot/encoding.h
branches/ops_pct/include/parrot/extend.h
branches/ops_pct/include/parrot/gc_api.h (contents, props changed)
branches/ops_pct/include/parrot/hash.h
branches/ops_pct/include/parrot/imcc.h
branches/ops_pct/include/parrot/interpreter.h
branches/ops_pct/include/parrot/io.h
branches/ops_pct/include/parrot/memory.h
branches/ops_pct/include/parrot/nci.h
branches/ops_pct/include/parrot/oo.h
branches/ops_pct/include/parrot/op.h
branches/ops_pct/include/parrot/oplib.h
branches/ops_pct/include/parrot/oplib/core_ops.h
branches/ops_pct/include/parrot/packfile.h
branches/ops_pct/include/parrot/parrot.h
branches/ops_pct/include/parrot/pmc.h
branches/ops_pct/include/parrot/pmc_freeze.h
branches/ops_pct/include/parrot/pobj.h
branches/ops_pct/include/parrot/runcore_api.h (contents, props changed)
branches/ops_pct/include/parrot/runcore_profiling.h (contents, props changed)
branches/ops_pct/include/parrot/runcore_trace.h (props changed)
branches/ops_pct/lib/Parrot/Configure/Compiler.pm
branches/ops_pct/lib/Parrot/Configure/Messages.pm
branches/ops_pct/lib/Parrot/Configure/Step/List.pm
branches/ops_pct/lib/Parrot/Configure/Step/Test.pm (props changed)
branches/ops_pct/lib/Parrot/Distribution.pm
branches/ops_pct/lib/Parrot/Docs/File.pm
branches/ops_pct/lib/Parrot/Docs/Section/C.pm
branches/ops_pct/lib/Parrot/Docs/Section/Tools.pm
branches/ops_pct/lib/Parrot/H2inc.pm (props changed)
branches/ops_pct/lib/Parrot/Harness/DefaultTests.pm
branches/ops_pct/lib/Parrot/Op.pm
branches/ops_pct/lib/Parrot/OpTrans.pm
branches/ops_pct/lib/Parrot/OpTrans/CGoto.pm
branches/ops_pct/lib/Parrot/Ops2c/Utils.pm
branches/ops_pct/lib/Parrot/OpsFile.pm
branches/ops_pct/lib/Parrot/Pmc2c/Attribute.pm
branches/ops_pct/lib/Parrot/Pmc2c/MethodEmitter.pm
branches/ops_pct/lib/Parrot/Pmc2c/PCCMETHOD.pm
branches/ops_pct/lib/Parrot/Pmc2c/PMC.pm
branches/ops_pct/lib/Parrot/Pmc2c/PMCEmitter.pm
branches/ops_pct/lib/Parrot/Pmc2c/UtilFunctions.pm
branches/ops_pct/ports/cpan/pause_guide.pod (props changed)
branches/ops_pct/ports/cygwin/parrot-1.0.0-1.cygport (props changed)
branches/ops_pct/ports/debian/libparrot-dev.install.in (props changed)
branches/ops_pct/ports/debian/libparrot.install.in (props changed)
branches/ops_pct/ports/debian/parrot-doc.install.in (props changed)
branches/ops_pct/ports/debian/parrot.install.in (props changed)
branches/ops_pct/ports/fedora/parrot.spec.fedora (props changed)
branches/ops_pct/ports/mandriva/parrot.spec.mandriva (props changed)
branches/ops_pct/ports/suse/parrot.spec.suse (props changed)
branches/ops_pct/runtime/parrot/include/test_more.pir
branches/ops_pct/runtime/parrot/languages/ (props changed)
branches/ops_pct/runtime/parrot/library/Configure/genfile.pir
branches/ops_pct/runtime/parrot/library/Data/Dumper.pir
branches/ops_pct/runtime/parrot/library/Data/Dumper/Base.pir
branches/ops_pct/runtime/parrot/library/Data/Dumper/Default.pir
branches/ops_pct/runtime/parrot/library/HTTP/Daemon.pir
branches/ops_pct/runtime/parrot/library/Math/Rand.pir (contents, props changed)
branches/ops_pct/runtime/parrot/library/OpenGL.pir
branches/ops_pct/runtime/parrot/library/P6object.pir
branches/ops_pct/runtime/parrot/library/Parrot/Coroutine.pir
branches/ops_pct/runtime/parrot/library/Rules.mak (props changed)
branches/ops_pct/runtime/parrot/library/SDL.pir
branches/ops_pct/runtime/parrot/library/SDL/App.pir
branches/ops_pct/runtime/parrot/library/SDL/Button.pir
branches/ops_pct/runtime/parrot/library/SDL/Color.pir
branches/ops_pct/runtime/parrot/library/SDL/Constants.pir
branches/ops_pct/runtime/parrot/library/SDL/Event.pir
branches/ops_pct/runtime/parrot/library/SDL/EventHandler.pir
branches/ops_pct/runtime/parrot/library/SDL/Font.pir
branches/ops_pct/runtime/parrot/library/SDL/Image.pir
branches/ops_pct/runtime/parrot/library/SDL/LCD.pir
branches/ops_pct/runtime/parrot/library/SDL/Rect.pir
branches/ops_pct/runtime/parrot/library/SDL/Sprite.pir
branches/ops_pct/runtime/parrot/library/SDL/StopWatch.pir
branches/ops_pct/runtime/parrot/library/SDL/Surface.pir
branches/ops_pct/runtime/parrot/library/Test/Builder/Test.pir
branches/ops_pct/runtime/parrot/library/Test/More.pir
branches/ops_pct/runtime/parrot/library/YAML/Dumper.pir
branches/ops_pct/runtime/parrot/library/YAML/Dumper/Base.pir
branches/ops_pct/runtime/parrot/library/YAML/Dumper/Default.pir
branches/ops_pct/runtime/parrot/library/distutils.pir
branches/ops_pct/runtime/parrot/library/dumper.pir
branches/ops_pct/runtime/parrot/library/libpcre.pir
branches/ops_pct/runtime/parrot/library/pcre.pir
branches/ops_pct/runtime/parrot/library/yaml_dumper.pir
branches/ops_pct/src/ (props changed)
branches/ops_pct/src/atomic/gcc_x86.c
branches/ops_pct/src/call/args.c
branches/ops_pct/src/call/context.c
branches/ops_pct/src/call/context_accessors.c
branches/ops_pct/src/call/ops.c (contents, props changed)
branches/ops_pct/src/call/pcc.c (props changed)
branches/ops_pct/src/debug.c
branches/ops_pct/src/dynext.c
branches/ops_pct/src/dynpmc/dynlexpad.pmc
branches/ops_pct/src/dynpmc/foo.pmc
branches/ops_pct/src/dynpmc/gdbmhash.pmc
branches/ops_pct/src/dynpmc/rational.pmc
branches/ops_pct/src/embed.c
branches/ops_pct/src/exceptions.c
branches/ops_pct/src/exit.c
branches/ops_pct/src/extend.c
branches/ops_pct/src/frame_builder.c
branches/ops_pct/src/gc/alloc_memory.c (contents, props changed)
branches/ops_pct/src/gc/alloc_resources.c (contents, props changed)
branches/ops_pct/src/gc/api.c (contents, props changed)
branches/ops_pct/src/gc/gc_inf.c
branches/ops_pct/src/gc/gc_ms.c
branches/ops_pct/src/gc/gc_private.h
branches/ops_pct/src/gc/malloc.c (props changed)
branches/ops_pct/src/gc/malloc_trace.c (props changed)
branches/ops_pct/src/gc/mark_sweep.c (contents, props changed)
branches/ops_pct/src/gc/system.c (contents, props changed)
branches/ops_pct/src/global.c
branches/ops_pct/src/global_setup.c
branches/ops_pct/src/hash.c
branches/ops_pct/src/hll.c
branches/ops_pct/src/interp/inter_cb.c (contents, props changed)
branches/ops_pct/src/interp/inter_create.c (contents, props changed)
branches/ops_pct/src/interp/inter_misc.c (contents, props changed)
branches/ops_pct/src/io/api.c
branches/ops_pct/src/io/buffer.c
branches/ops_pct/src/io/core.c
branches/ops_pct/src/io/filehandle.c
branches/ops_pct/src/io/socket_api.c
branches/ops_pct/src/io/socket_unix.c
branches/ops_pct/src/io/socket_win32.c
branches/ops_pct/src/io/unix.c
branches/ops_pct/src/key.c
branches/ops_pct/src/library.c
branches/ops_pct/src/main.c
branches/ops_pct/src/multidispatch.c
branches/ops_pct/src/nci_test.c
branches/ops_pct/src/oo.c
branches/ops_pct/src/ops/bit.ops
branches/ops_pct/src/ops/cmp.ops
branches/ops_pct/src/ops/core.ops
branches/ops_pct/src/ops/core_ops.c
branches/ops_pct/src/ops/experimental.ops
branches/ops_pct/src/ops/io.ops
branches/ops_pct/src/ops/math.ops
branches/ops_pct/src/ops/object.ops
branches/ops_pct/src/ops/ops.num
branches/ops_pct/src/ops/pmc.ops
branches/ops_pct/src/ops/set.ops
branches/ops_pct/src/ops/sys.ops
branches/ops_pct/src/packfile.c
branches/ops_pct/src/packfile/pf_items.c
branches/ops_pct/src/parrot_debugger.c
branches/ops_pct/src/pbc_dump.c
branches/ops_pct/src/pbc_merge.c
branches/ops_pct/src/pmc.c
branches/ops_pct/src/pmc/arrayiterator.pmc
branches/ops_pct/src/pmc/bigint.pmc
branches/ops_pct/src/pmc/bignum.pmc
branches/ops_pct/src/pmc/callcontext.pmc
branches/ops_pct/src/pmc/capture.pmc
branches/ops_pct/src/pmc/class.pmc
branches/ops_pct/src/pmc/codestring.pmc
branches/ops_pct/src/pmc/complex.pmc
branches/ops_pct/src/pmc/continuation.pmc
branches/ops_pct/src/pmc/coroutine.pmc
branches/ops_pct/src/pmc/cpointer.pmc
branches/ops_pct/src/pmc/default.pmc
branches/ops_pct/src/pmc/env.pmc
branches/ops_pct/src/pmc/exception.pmc
branches/ops_pct/src/pmc/exporter.pmc
branches/ops_pct/src/pmc/filehandle.pmc
branches/ops_pct/src/pmc/fixedbooleanarray.pmc
branches/ops_pct/src/pmc/fixedfloatarray.pmc
branches/ops_pct/src/pmc/fixedintegerarray.pmc
branches/ops_pct/src/pmc/fixedpmcarray.pmc
branches/ops_pct/src/pmc/fixedstringarray.pmc
branches/ops_pct/src/pmc/float.pmc
branches/ops_pct/src/pmc/handle.pmc
branches/ops_pct/src/pmc/hash.pmc
branches/ops_pct/src/pmc/hashiterator.pmc
branches/ops_pct/src/pmc/imageio.pmc
branches/ops_pct/src/pmc/integer.pmc
branches/ops_pct/src/pmc/key.pmc
branches/ops_pct/src/pmc/lexinfo.pmc
branches/ops_pct/src/pmc/managedstruct.pmc
branches/ops_pct/src/pmc/namespace.pmc
branches/ops_pct/src/pmc/nci.pmc
branches/ops_pct/src/pmc/null.pmc
branches/ops_pct/src/pmc/object.pmc
branches/ops_pct/src/pmc/orderedhash.pmc
branches/ops_pct/src/pmc/os.pmc
branches/ops_pct/src/pmc/packfile.pmc
branches/ops_pct/src/pmc/packfileannotations.pmc
branches/ops_pct/src/pmc/packfileconstanttable.pmc
branches/ops_pct/src/pmc/packfiledirectory.pmc
branches/ops_pct/src/pmc/packfilefixupentry.pmc
branches/ops_pct/src/pmc/packfilefixuptable.pmc
branches/ops_pct/src/pmc/packfilerawsegment.pmc
branches/ops_pct/src/pmc/parrotinterpreter.pmc
branches/ops_pct/src/pmc/parrotlibrary.pmc
branches/ops_pct/src/pmc/parrotthread.pmc
branches/ops_pct/src/pmc/pmc.num
branches/ops_pct/src/pmc/pmcproxy.pmc
branches/ops_pct/src/pmc/pointer.pmc
branches/ops_pct/src/pmc/resizablebooleanarray.pmc
branches/ops_pct/src/pmc/resizablefloatarray.pmc
branches/ops_pct/src/pmc/resizableintegerarray.pmc
branches/ops_pct/src/pmc/resizablepmcarray.pmc
branches/ops_pct/src/pmc/resizablestringarray.pmc
branches/ops_pct/src/pmc/role.pmc
branches/ops_pct/src/pmc/scalar.pmc
branches/ops_pct/src/pmc/scheduler.pmc
branches/ops_pct/src/pmc/sockaddr.pmc
branches/ops_pct/src/pmc/socket.pmc
branches/ops_pct/src/pmc/string.pmc
branches/ops_pct/src/pmc/stringhandle.pmc
branches/ops_pct/src/pmc/stringiterator.pmc
branches/ops_pct/src/pmc/sub.pmc
branches/ops_pct/src/pmc/task.pmc
branches/ops_pct/src/pmc/undef.pmc
branches/ops_pct/src/pmc/unmanagedstruct.pmc
branches/ops_pct/src/pmc_freeze.c
branches/ops_pct/src/runcore/cores.c (contents, props changed)
branches/ops_pct/src/runcore/main.c (contents, props changed)
branches/ops_pct/src/runcore/profiling.c (contents, props changed)
branches/ops_pct/src/runcore/trace.c (props changed)
branches/ops_pct/src/scheduler.c
branches/ops_pct/src/string/api.c
branches/ops_pct/src/string/charset.c
branches/ops_pct/src/string/charset/ascii.c
branches/ops_pct/src/string/encoding.c
branches/ops_pct/src/string/encoding/utf16.c
branches/ops_pct/src/string/encoding/utf8.c
branches/ops_pct/src/string/primitives.c
branches/ops_pct/src/sub.c
branches/ops_pct/src/thread.c
branches/ops_pct/src/utils.c
branches/ops_pct/src/vtable.tbl
branches/ops_pct/src/vtables.c
branches/ops_pct/t/codingstd/c_arg_assert.t
branches/ops_pct/t/codingstd/c_cppcomments.t
branches/ops_pct/t/codingstd/c_function_docs.t
branches/ops_pct/t/codingstd/c_indent.t
branches/ops_pct/t/codingstd/c_macro_args.t
branches/ops_pct/t/codingstd/c_parens.t
branches/ops_pct/t/codingstd/copyright.t
branches/ops_pct/t/codingstd/cuddled_else.t
branches/ops_pct/t/codingstd/linelength.t
branches/ops_pct/t/codingstd/opcode_doc.t
branches/ops_pct/t/codingstd/perlcritic.t
branches/ops_pct/t/codingstd/pod_description.t
branches/ops_pct/t/codingstd/pod_syntax.t
branches/ops_pct/t/codingstd/trailing_space.t
branches/ops_pct/t/compilers/imcc/imcpasm/optc.t
branches/ops_pct/t/compilers/imcc/reg/spill.t
branches/ops_pct/t/compilers/imcc/syn/hll.t
branches/ops_pct/t/compilers/imcc/syn/labels.t
branches/ops_pct/t/compilers/imcc/syn/objects.t
branches/ops_pct/t/compilers/imcc/syn/op.t
branches/ops_pct/t/compilers/imcc/syn/scope.t
branches/ops_pct/t/compilers/imcc/syn/subflags.t
branches/ops_pct/t/compilers/imcc/syn/veracity.t
branches/ops_pct/t/compilers/json/from_parrot.t
branches/ops_pct/t/compilers/pct/past.t
branches/ops_pct/t/compilers/pge/00-basic.t
branches/ops_pct/t/compilers/pge/02-match.t
branches/ops_pct/t/compilers/pge/03-optable.t
branches/ops_pct/t/compilers/pge/04-compile.t
branches/ops_pct/t/compilers/pge/06-grammar.t
branches/ops_pct/t/compilers/pge/pge-hs.t
branches/ops_pct/t/compilers/tge/NoneGrammar.tg (props changed)
branches/ops_pct/t/compilers/tge/basic.t
branches/ops_pct/t/compilers/tge/parser.t
branches/ops_pct/t/configure/008-file_based_configuration.t
branches/ops_pct/t/configure/025-options_test.t
branches/ops_pct/t/configure/026-options_test.t
branches/ops_pct/t/configure/034-step.t
branches/ops_pct/t/distro/meta_yml.t
branches/ops_pct/t/dynoplibs/math.t
branches/ops_pct/t/dynoplibs/obscure.t
branches/ops_pct/t/dynpmc/foo2.t
branches/ops_pct/t/dynpmc/gdbmhash.t
branches/ops_pct/t/dynpmc/rational.t
branches/ops_pct/t/dynpmc/subproxy.t
branches/ops_pct/t/examples/catchall.t
branches/ops_pct/t/examples/pod.t
branches/ops_pct/t/examples/tutorial.t
branches/ops_pct/t/harness
branches/ops_pct/t/library/cgi_query_hash.t
branches/ops_pct/t/library/configure.t
branches/ops_pct/t/library/coroutine.t
branches/ops_pct/t/library/getopt_obj.t
branches/ops_pct/t/library/md5.t
branches/ops_pct/t/library/mime_base64.t
branches/ops_pct/t/library/p6object.t
branches/ops_pct/t/library/parrotlib.t
branches/ops_pct/t/library/pg.t
branches/ops_pct/t/library/protoobject.t
branches/ops_pct/t/library/rand.t
branches/ops_pct/t/library/tcl_glob.t
branches/ops_pct/t/library/test_class.t
branches/ops_pct/t/library/test_more.t
branches/ops_pct/t/library/uuid.t
branches/ops_pct/t/manifest/01-basic.t
branches/ops_pct/t/manifest/02-regenerate_file.t
branches/ops_pct/t/manifest/03-regenerate_skip.t
branches/ops_pct/t/manifest/04-alt_file.t
branches/ops_pct/t/manifest/05-alt_skip.t
branches/ops_pct/t/native_pbc/annotations.pbc
branches/ops_pct/t/native_pbc/header.t
branches/ops_pct/t/native_pbc/integer.t
branches/ops_pct/t/native_pbc/integer_1.pbc
branches/ops_pct/t/native_pbc/number.t
branches/ops_pct/t/native_pbc/number_1.pbc
branches/ops_pct/t/native_pbc/string.t
branches/ops_pct/t/native_pbc/string_1.pbc
branches/ops_pct/t/oo/attributes.t
branches/ops_pct/t/oo/composition.t
branches/ops_pct/t/oo/inheritance.t
branches/ops_pct/t/oo/metamodel.t
branches/ops_pct/t/oo/methods.t
branches/ops_pct/t/oo/mro-c3.t
branches/ops_pct/t/oo/names.t
branches/ops_pct/t/oo/new-old.t
branches/ops_pct/t/oo/new.t
branches/ops_pct/t/oo/ops.t
branches/ops_pct/t/oo/root_new.t (contents, props changed)
branches/ops_pct/t/oo/subclass.t
branches/ops_pct/t/op/00ff-dos.t
branches/ops_pct/t/op/00ff-unix.t
branches/ops_pct/t/op/64bit.t
branches/ops_pct/t/op/annotate.t
branches/ops_pct/t/op/arithmetics.t
branches/ops_pct/t/op/arithmetics_pmc.t
branches/ops_pct/t/op/box.t
branches/ops_pct/t/op/calling.t
branches/ops_pct/t/op/cc_params.t
branches/ops_pct/t/op/comp.t
branches/ops_pct/t/op/exit.t
branches/ops_pct/t/op/fetch.t
branches/ops_pct/t/op/gc.t
branches/ops_pct/t/op/inf_nan.t
branches/ops_pct/t/op/integer.t
branches/ops_pct/t/op/literal.t
branches/ops_pct/t/op/number.t
branches/ops_pct/t/op/sprintf.t
branches/ops_pct/t/op/sprintf2.t
branches/ops_pct/t/op/string.t
branches/ops_pct/t/op/string_cmp.t
branches/ops_pct/t/op/string_mem.t
branches/ops_pct/t/op/stringu.t
branches/ops_pct/t/op/sysinfo.t
branches/ops_pct/t/op/time.t
branches/ops_pct/t/op/trans.t
branches/ops_pct/t/op/trans_old.t
branches/ops_pct/t/op/vivify.t
branches/ops_pct/t/perl/Parrot_IO.t
branches/ops_pct/t/perl/Parrot_Test.t
branches/ops_pct/t/pir/macro.t
branches/ops_pct/t/pmc/arrayiterator.t
branches/ops_pct/t/pmc/bigint.t
branches/ops_pct/t/pmc/capture.t
branches/ops_pct/t/pmc/class.t
branches/ops_pct/t/pmc/complex.t
branches/ops_pct/t/pmc/continuation.t
branches/ops_pct/t/pmc/default.t
branches/ops_pct/t/pmc/env.t
branches/ops_pct/t/pmc/eventhandler.t
branches/ops_pct/t/pmc/exception.t
branches/ops_pct/t/pmc/exporter.t
branches/ops_pct/t/pmc/filehandle.t
branches/ops_pct/t/pmc/fixedbooleanarray.t
branches/ops_pct/t/pmc/fixedintegerarray.t
branches/ops_pct/t/pmc/fixedpmcarray.t
branches/ops_pct/t/pmc/fixedstringarray.t
branches/ops_pct/t/pmc/handle.t
branches/ops_pct/t/pmc/hash.t
branches/ops_pct/t/pmc/hashiterator.t
branches/ops_pct/t/pmc/hashiteratorkey.t
branches/ops_pct/t/pmc/integer.t
branches/ops_pct/t/pmc/iterator.t
branches/ops_pct/t/pmc/lexinfo.t
branches/ops_pct/t/pmc/lexpad.t
branches/ops_pct/t/pmc/multidispatch.t
branches/ops_pct/t/pmc/namespace-old.t (props changed)
branches/ops_pct/t/pmc/namespace.t
branches/ops_pct/t/pmc/objects.t
branches/ops_pct/t/pmc/orderedhashiterator.t
branches/ops_pct/t/pmc/os.t
branches/ops_pct/t/pmc/packfile.t
branches/ops_pct/t/pmc/packfileannotation.t
branches/ops_pct/t/pmc/packfileannotations.t
branches/ops_pct/t/pmc/packfileconstanttable.t
branches/ops_pct/t/pmc/packfiledirectory.t
branches/ops_pct/t/pmc/packfilefixupentry.t
branches/ops_pct/t/pmc/packfilefixuptable.t
branches/ops_pct/t/pmc/packfilerawsegment.t
branches/ops_pct/t/pmc/packfilesegment.t
branches/ops_pct/t/pmc/parrotinterpreter.t
branches/ops_pct/t/pmc/pmc.t
branches/ops_pct/t/pmc/prop.t
branches/ops_pct/t/pmc/ro.t
branches/ops_pct/t/pmc/scalar.t
branches/ops_pct/t/pmc/scheduler.t
branches/ops_pct/t/pmc/signal.t
branches/ops_pct/t/pmc/string.t
branches/ops_pct/t/pmc/stringhandle.t
branches/ops_pct/t/pmc/stringiterator.t
branches/ops_pct/t/pmc/sub.t
branches/ops_pct/t/run/options.t
branches/ops_pct/t/src/embed.t (contents, props changed)
branches/ops_pct/t/src/extend.t
branches/ops_pct/t/steps/auto/cgoto-01.t
branches/ops_pct/t/steps/auto/snprintf-01.t
branches/ops_pct/t/steps/auto/warnings-01.t
branches/ops_pct/t/steps/gen/makefiles-01.t
branches/ops_pct/t/steps/init/hints/darwin-01.t
branches/ops_pct/t/steps/init/hints/linux-01.t (props changed)
branches/ops_pct/t/tools/dev/pmctree.t
branches/ops_pct/t/tools/install/02-install_files.t
branches/ops_pct/t/tools/install/03-lines_to_files.t
branches/ops_pct/t/tools/ops2pm/05-renum_op_map_file.t
branches/ops_pct/t/tools/ops2pm/08-sort_ops.t
branches/ops_pct/t/tools/pbc_disassemble.t
branches/ops_pct/t/tools/pmc2cutils/03-dump_vtable.t
branches/ops_pct/t/tools/pmc2cutils/04-dump_pmc.t
branches/ops_pct/t/tools/pmc2cutils/05-gen_c.t
branches/ops_pct/tools/build/h2inc.pl (props changed)
branches/ops_pct/tools/dev/checkdepend.pl
branches/ops_pct/tools/dev/fetch_languages.pl (props changed)
branches/ops_pct/tools/dev/mk_gitignore.pl (props changed)
branches/ops_pct/tools/dev/mk_language_shell.pl
branches/ops_pct/tools/dev/vtablize.pl
branches/ops_pct/tools/util/perlcritic-cage.conf (props changed)
branches/ops_pct/tools/util/release.json
Modified: branches/ops_pct/CREDITS
==============================================================================
--- branches/ops_pct/CREDITS Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/CREDITS Sun Mar 7 19:33:20 2010 (r44743)
@@ -136,10 +136,12 @@
N: Austin Hastings
U: Austin
+U: Austin_Hastings
A: austin_hastings at yahoo.com
A: austin_h... at yahoo.com
E: austin_hastings at yahoo.com
D: Close
+D: Kakapo
N: Benjamin Goldberg
D: Numerous improvements and proposals.
@@ -328,6 +330,14 @@
D: POD for the Undef PMC
E: david.romano+p6i at gmail.com
+N: David E. Wheeler
+E: david at justatheory.com
+W: http://justatheory.com/
+U: theory
+A: theory
+A: David Wheeler
+S: Portland, OR
+
N: Dennis Rieks
D: Win32 config and build
@@ -692,7 +702,10 @@
N: Michael H. Hind
U: mikehh
-D: codingstd patches
+D: testing parrot and some HLL's
+D: fixing codetest failures
+D: adding function documentation
+D: tracwiki additions
E: mike.hind at gmail.com
N: Michael G. Schwern
Modified: branches/ops_pct/ChangeLog
==============================================================================
--- branches/ops_pct/ChangeLog Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/ChangeLog Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,9 @@
#1 $Id$
+2010.02.16 darbelo
+ * Released 2.1.0
+ See NEWS for more.
+
2010.01.19 chromatic
* Released 2.0.0
See NEWS for more.
Modified: branches/ops_pct/Configure.pl
==============================================================================
--- branches/ops_pct/Configure.pl Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/Configure.pl Sun Mar 7 19:33:20 2010 (r44743)
@@ -646,7 +646,6 @@
gen::core_pmcs
gen::crypto
gen::opengl
- gen::call_list
gen::makefiles
gen::platform
gen::config_pm
Modified: branches/ops_pct/DEPRECATED.pod
==============================================================================
--- branches/ops_pct/DEPRECATED.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/DEPRECATED.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -52,23 +52,6 @@
L<https://trac.parrot.org/parrot/ticket/264>
-=item various VTABLE functions [eligible in 1.5]
-
-The get_bigint, set_bigint_*, pow, i_pow and nextkey_keyed VTABLE functions are
-deprecated and will be removed.
-
-L<https://trac.parrot.org/parrot/ticket/866>
-
-=item Use of undocumented variables in class_init [eligible in 2.1]
-
-The current implementation allows the class_init vtable function body to
-use local symbols from the generated part. For example, some PMC used
-to use the pass counter. In the future, the class_init body from the PMC
-file may not be inserted directly in the body of the generated one,
-so this usage will not be allowed.
-
-L<https://trac.parrot.org/parrot/ticket/918>
-
=item Overriding vtable invoke in PIR objects [experimental]
The VTABLE invoke in object.pmc puts SELF at the start of the
@@ -77,20 +60,28 @@
L<https://trac.parrot.org/parrot/ticket/103>
-=item All bitwise VTABLE functions [eligible in 2.1]
-
-All bitwise VTABLE functions (all VTABLE functions containing C<bitwise> in
-their names) will be removed. Equivalent functionality will by supplied by
-bitwise dynops.
-
-L<https://trac.parrot.org/parrot/ticket/1260>
-
=item CPointer PMC [eligible in 2.1]
And all uses in the Parrot calling conventions.
L<https://trac.parrot.org/parrot/ticket/1407>
+=item Digest dynpmcs [eligible in 2.4]
+
+The digest dynpmcs are, since the posting of this notice, available on
+http://gitorious.org/digest-dynpmcs and will no longer be distributed
+with parrot after 2.3.
+
+L<https://trac.parrot.org/parrot/ticket/1467>
+
+=item gdbmhash dynpmc [eligible in 2.4]
+
+The gdbmhash dynpmc is, since the posting of this notice, available on
+http://gitorious.org/dbm-dynpmcs and will no longer be distributed
+with parrot after 2.3.
+
+L<https://trac.parrot.org/parrot/ticket/1469>
+
=back
=head1 Opcodes
@@ -113,6 +104,13 @@
for Sub, Exception, and related PMC types will instead be handled by
get_label and set_label.
+=item sizeof [eligible in 2.4]
+
+This opcode uses the old integer ID for a PMC type; this opcode should be changed
+to use the current methods to lookup a PMC or removed entirely.
+
+L<https://trac.parrot.org/parrot/ticket/633>
+
=item All bitwise ops [eligible in 2.1]
All bitwise ops (all ops containing C<bitwise> in their names) will be provided
@@ -132,6 +130,11 @@
L<https://trac.parrot.org/parrot/ticket/1406>
+=item GC_SYS_NAME option to interpinfo_s_i [experimental]
+
+Ability to get the string name of the current GC core from the interpinfo_s_i.
+See r43900 and r43904 for details.
+
=back
=head1 Bytecode
@@ -164,27 +167,6 @@
L<https://trac.parrot.org/parrot/ticket/906>
-=item named class/pmc lookup in pir syntax such as new, isa, subclass,
- get_class, etc [eligible in 1.1]
-
-Class PMC name resolution will be the following.
-
-if the arg is a STRING
- Relative to the current Namespace
-
-if the arg is a Array (of any sort) or Key
- Relative to the current HLL Namespace
-
-if the arg is a Namespace or Class PMC
- The passed in class or the class attached to the passed in namespace.
-
-L<https://trac.parrot.org/parrot/ticket/159>
-
-=item load or include paths prefixed with 'library/' or 'include/'
-[eligible in 1.5]
-
-L<https://trac.parrot.org/parrot/ticket/511>
-
=item continuation-based ExceptionHandlers [eligible in 2.1]
L<https://trac.parrot.org/parrot/ticket/1091>
@@ -214,44 +196,18 @@
=item C API coding standards cleanup [eligible in 1.1]
All C API functions that aren't currently named according to the
-'Parrot_<system>_*' scheme will be renamed. If you depend on these
-functions in an extending/embedding interface or C-level custom PMCs,
-check in 1.4 or 2.0 for the new names.
+'Parrot_<system>_*' scheme will be renamed. A list of renamed
+functions will be kept in the ticket at:
L<https://trac.parrot.org/parrot/ticket/443>
-=item Sub/method invocation functions [eligible in 2.1]
-
-The old 'Parrot_call_*' functions for invoking a sub/method object from C are
-deprecated, replaced by 'Parrot_ext_call'.
-
-L<https://trac.parrot.org/parrot/ticket/1145>
-
=item PMC Attributes Allocation Functions [experimental]
Parrot_gc_allocate_pmc_attributes
Parrot_gc_free_pmc_attributes
These items and related helper functions are added as experimental support
-for TT #895
-
-=item PDB_compile and PDB_eval [eligible in 2.1]
-
-The function PDB_compile doesn't work since some time, and his implementation
-was a hack. His functionality may be reimplemented in another way. Until the
-end of deprecation cycle it just throws an exception.
-
-The PDB_eval function, that used in the debugger to support the eval
-command, was using PDB_compile. His functionality must be reimplemented
-in another way and with a name that follows current conventions, in the
-meantime and until the end of the deprecation cycle it just shows a
-diagnostic message.
-
-L<https://trac.parrot.org/parrot/ticket/872>
-
-=item Parrot_oo_get_namespace [eligible in 2.1]
-
-L<https://trac.parrot.org/parrot/ticket/1069>
+for L<https://trac.parrot.org/parrot/ticket/895>
=item STRING Out parameters in Parrot_str_* functions [eligible in 2.1]
@@ -262,17 +218,6 @@
=head1 Compiler tools
-=head2 PASM1 compiler
-
-=over 4
-
-=item C<PASM1 compiler> [eligible in 2.1]
-
-See PDB_compile. Note that the current version of the C<PASM1> compiler
-issues a warning and is not functional. (However, it used to segfault.)
-
-=back
-
=head2 Parrot Grammar Engine (PGE)
=over 4
@@ -321,35 +266,20 @@
=back
-=head2 Not Quite Perl (NQP)
+=head1 Compilers
=over 4
-=item C< $(...) > syntax [eligible in 1.5]
-
-The C< $(...) > syntax for obtaining a result object from a Match
-object will no longer work. The new syntax is to invoke the
-C<.ast> method on the Match object.
+=item json [eligible in 2.4]
-L<https://trac.parrot.org/parrot/ticket/459>
+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 Quoted items [eligible in 1.5]
+=item nqp [eligible in 2.4]
-Double-quoted strings will interpret unescaped $-names
-as interpolated variables in the string. Bare slashes
-will introduce regular expressions. The C<< <foo bar> >>
-syntax will produce an array of strings instead of a single
-string.
+Replaced by ext/nqp-rx and parrot-nqp.
-L<https://trac.parrot.org/parrot/ticket/837>
-
-=item C<< PIR q:to:<xyz> >> inline PIR [eligible in 1.5]
-
-The C<< PIR q:to:<xyz> >> form of inline PIR in NQP scripts is
-deprecated. Use C< Q:PIR { ... } > or C< Q:PIR {{ ... }} >
-instead.
-
-L<https://trac.parrot.org/parrot/ticket/842>
+L<http://trac.parrot.org/parrot/ticket/1462>
=back
@@ -357,11 +287,12 @@
=over 4
-=item MT19937 [eligible in 2.1]
+=item PARROT_LIBRARY and PARROT_INCLUDE environment variables [experimental]
-L<https://trac.parrot.org/parrot/ticket/1278> - latest version now hosted
-at L<http://github.com/fperrad/parrot-MT19937>. After 2.0, users will have
-to install via C<plumage>.
+L<https://trac.parrot.org/parrot/ticket/1429>
+
+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]
@@ -375,14 +306,6 @@
L<https://trac.parrot.org/parrot/ticket/852>
-=item Library name changes [eligible in 2.1]
-
-The use of C<::> a namespace separator is deprecated. Core libraries will
-change to use multi-level keys instead. For example, C<Data::Dumper> will
-change to C<Data; Dumper>. Affected libraries also include:
-C<Parrot::Coroutine>, C<SDL>, C<Test::Builder>, C<YAML::Dumper>, and
-C<PCRE::NCI>.
-
=back
=head1 Footnotes
Modified: branches/ops_pct/MANIFEST
==============================================================================
--- branches/ops_pct/MANIFEST Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/MANIFEST Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Sat Mar 6 12:29:40 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sun Mar 7 19:24:21 2010 UT
#
# See below for documentation on the format of this file.
#
@@ -34,7 +34,7 @@
compilers/data_json/data_json/grammar.pg [data_json]
compilers/data_json/data_json/pge2pir.tg [data_json]
compilers/imcc/Defines.mak [imcc]
-compilers/imcc/Rules.mak [imcc]
+compilers/imcc/Rules.in [imcc]
compilers/imcc/cfg.c [imcc]
compilers/imcc/cfg.h [imcc]
compilers/imcc/debug.c [imcc]
@@ -132,8 +132,10 @@
compilers/nqp/t/harness [test]
compilers/opsc/Defines.mak [opsc]
compilers/opsc/Rules.mak [opsc]
+compilers/opsc/TODO [opsc]
compilers/opsc/gen/Ops/Compiler/IGNOREME [opsc]
compilers/opsc/ops/oplib.pm [opsc]
+compilers/opsc/ops2c.nqp [opsc]
compilers/opsc/opsc.pir [opsc]
compilers/opsc/runcore/base.pm [opsc]
compilers/opsc/runcore/c.pm [opsc]
@@ -335,9 +337,6 @@
config/auto/va_ptr/test_c.in []
config/auto/warnings.pm []
config/auto/warnings/test_c.in []
-config/gen/call_list.pm []
-config/gen/call_list/core.in []
-config/gen/call_list/misc.in []
config/gen/config_h.pm []
config/gen/config_h/config_h.in []
config/gen/config_h/feature_h.in []
@@ -352,7 +351,6 @@
config/gen/crypto/digest_pmc.in []
config/gen/crypto/digest_t.in []
config/gen/makefiles.pm []
-config/gen/makefiles/CFLAGS.in []
config/gen/makefiles/docs.in []
config/gen/makefiles/dynoplibs.in []
config/gen/makefiles/dynpmc.in []
@@ -1055,7 +1053,6 @@
include/parrot/embed.h [main]include
include/parrot/encoding.h [main]include
include/parrot/enums.h [main]include
-include/parrot/events.h [main]include
include/parrot/exceptions.h [main]include
include/parrot/exit.h [main]include
include/parrot/extend.h [main]include
@@ -1081,6 +1078,7 @@
include/parrot/oo_private.h [main]include
include/parrot/op.h [main]include
include/parrot/oplib.h [main]include
+include/parrot/oplib/core_ops.h [main]include
include/parrot/packfile.h [main]include
include/parrot/parrot.h [main]include
include/parrot/pmc.h [main]include
@@ -1100,7 +1098,6 @@
include/parrot/thr_pthread.h [main]include
include/parrot/thr_windows.h [main]include
include/parrot/thread.h [main]include
-include/parrot/tsq.h [main]include
include/parrot/vtables.h [main]include
include/parrot/warnings.h [main]include
include/pmc/dummy [main]include
@@ -1265,7 +1262,6 @@
runtime/parrot/library/JSON.pir [library]
runtime/parrot/library/MIME/Base64.pir [library]
runtime/parrot/library/Math/Rand.pir [library]
-runtime/parrot/library/Math/Random/mt19937ar.pir [library]
runtime/parrot/library/NCI/Utils.pir [library]
runtime/parrot/library/OpenGL.pir [library]
runtime/parrot/library/OpenGL/Math.pir [library]
@@ -1362,7 +1358,6 @@
src/dynpmc/rotest.pmc [devel]src
src/dynpmc/subproxy.pmc [devel]src
src/embed.c []
-src/events.c []
src/exceptions.c []
src/exit.c []
src/extend.c []
@@ -1404,11 +1399,17 @@
src/main.c []
src/misc.c []
src/multidispatch.c []
+src/nci/api.c []
+src/nci/core_thunks.c []
+src/nci/core_thunks.nci []
+src/nci/extra_thunks.c []
+src/nci/extra_thunks.nci []
src/nci_test.c []
src/oo.c []
src/ops/bit.ops []
src/ops/cmp.ops []
src/ops/core.ops []
+src/ops/core_ops.c []
src/ops/debug.ops []
src/ops/experimental.ops []
src/ops/io.ops []
@@ -1463,6 +1464,7 @@
src/pmc/hashiterator.pmc [devel]src
src/pmc/hashiteratorkey.pmc [devel]src
src/pmc/imageio.pmc [devel]src
+src/pmc/imageiosize.pmc [devel]src
src/pmc/integer.pmc [devel]src
src/pmc/iterator.pmc [devel]src
src/pmc/key.pmc [devel]src
@@ -1474,6 +1476,8 @@
src/pmc/nci.pmc [devel]src
src/pmc/null.pmc [devel]src
src/pmc/object.pmc [devel]src
+src/pmc/opcode.pmc [devel]src
+src/pmc/oplib.pmc [devel]src
src/pmc/orderedhash.pmc [devel]src
src/pmc/orderedhashiterator.pmc [devel]src
src/pmc/os.pmc [devel]src
@@ -1546,7 +1550,6 @@
src/string/unicode.h []
src/sub.c []
src/thread.c []
-src/tsq.c []
src/utils.c []
src/vtable.tbl [devel]src
src/vtables.c []
@@ -1594,6 +1597,7 @@
t/compilers/imcc/imcpasm/pcc.t [test]
t/compilers/imcc/reg/alloc.t [test]
t/compilers/imcc/reg/spill.t [test]
+t/compilers/imcc/reg/spill_old.t [test]
t/compilers/imcc/syn/clash.t [test]
t/compilers/imcc/syn/const.t [test]
t/compilers/imcc/syn/errors.t [test]
@@ -1756,8 +1760,6 @@
t/library/iter.t [test]
t/library/md5.t [test]
t/library/mime_base64.t [test]
-t/library/mt19937ar.t [test]
-t/library/mt19937ar.txt [test]
t/library/p6object.t [test]
t/library/parrotlib.t [test]
t/library/pcre.t [test]
@@ -1834,7 +1836,6 @@
t/op/arithmetics.t [test]
t/op/arithmetics_pmc.t [test]
t/op/basic.t [test]
-t/op/bitwise.t [test]
t/op/box.t [test]
t/op/calling.t [test]
t/op/cc_params.t [test]
@@ -1844,9 +1845,11 @@
t/op/comp.t [test]
t/op/copy.t [test]
t/op/debuginfo.t [test]
+t/op/errorson.t [test]
t/op/exceptions.t [test]
t/op/exit.t [test]
t/op/fetch.t [test]
+t/op/gc-leaky.t [test]
t/op/gc.t [test]
t/op/globals.t [test]
t/op/ifunless.t [test]
@@ -1930,6 +1933,8 @@
t/pmc/hash.t [test]
t/pmc/hashiterator.t [test]
t/pmc/hashiteratorkey.t [test]
+t/pmc/imageio.t [test]
+t/pmc/imageiosize.t [test]
t/pmc/integer.t [test]
t/pmc/io.t [test]
t/pmc/io_iterator.t [test]
@@ -1949,6 +1954,8 @@
t/pmc/object-mro.t [test]
t/pmc/object.t [test]
t/pmc/objects.t [test]
+t/pmc/opcode.t [test]
+t/pmc/oplib.t [test]
t/pmc/orderedhash.t [test]
t/pmc/orderedhashiterator.t [test]
t/pmc/os.t [test]
@@ -2052,7 +2059,6 @@
t/steps/auto/thread-01.t [test]
t/steps/auto/va_ptr-01.t [test]
t/steps/auto/warnings-01.t [test]
-t/steps/gen/call_list-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]
@@ -2162,12 +2168,9 @@
t/tools/testdata [test]
tools/build/addopstags.pl []
tools/build/c2str.pl []
-tools/build/cc_flags.pl []
tools/build/fixup_gen_file.pl []
tools/build/h2inc.pl []
tools/build/headerizer.pl []
-tools/build/nativecall.pir []
-tools/build/nativecall.pl []
tools/build/ops2c.pl [devel]
tools/build/ops2pm.pl []
tools/build/parrot_config_c.pl []
@@ -2199,8 +2202,10 @@
tools/dev/mk_language_shell.pl [devel]
tools/dev/mk_manifest_and_skip.pl []
tools/dev/mk_native_pbc []
+tools/dev/mk_nci_thunks.pl []
tools/dev/mk_rpm_manifests.pl []
tools/dev/nci_test_gen.pl []
+tools/dev/nci_thunk_gen.pir []
tools/dev/nm.pl []
tools/dev/nopaste.pl []
tools/dev/ops_not_tested.pl []
Modified: branches/ops_pct/MANIFEST.SKIP
==============================================================================
--- branches/ops_pct/MANIFEST.SKIP Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/MANIFEST.SKIP Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Mon Feb 8 05:37:36 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Fri Mar 5 16:49:09 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -105,6 +105,12 @@
^parrot_config\.pbc/
^parrot_debugger$
^parrot_debugger/
+^parrot_nci_thunk_gen$
+^parrot_nci_thunk_gen/
+^parrot_nci_thunk_gen\.c$
+^parrot_nci_thunk_gen\.c/
+^parrot_nci_thunk_gen\.pbc$
+^parrot_nci_thunk_gen\.pbc/
^parrot_test_run\.tar\.gz$
^parrot_test_run\.tar\.gz/
^pbc_disassemble$
@@ -166,8 +172,8 @@
^compilers/imcc/.*\.obj/
^compilers/imcc/.*\.tmp$
^compilers/imcc/.*\.tmp/
-^compilers/imcc/CFLAGS$
-^compilers/imcc/CFLAGS/
+^compilers/imcc/Rules\.mak$
+^compilers/imcc/Rules\.mak/
^compilers/imcc/imcc$
^compilers/imcc/imcc/
^compilers/imcc/imclexer\.c$
@@ -258,9 +264,6 @@
# generated from svn:ignore of 'compilers/tge/TGE/'
^compilers/tge/TGE/Parser\.pir$
^compilers/tge/TGE/Parser\.pir/
-# generated from svn:ignore of 'config/gen/call_list/'
-^config/gen/call_list/opengl\.in$
-^config/gen/call_list/opengl\.in/
# generated from svn:ignore of 'docs/'
^docs/.*\.tmp$
^docs/.*\.tmp/
@@ -581,9 +584,6 @@
# 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/Math/Random/'
-^runtime/parrot/library/Math/Random/.*\.pbc$
-^runtime/parrot/library/Math/Random/.*\.pbc/
# generated from svn:ignore of 'runtime/parrot/library/NCI/'
^runtime/parrot/library/NCI/.*\.pbc$
^runtime/parrot/library/NCI/.*\.pbc/
@@ -632,8 +632,6 @@
^src/.*\.str/
^src/asmfun\..*$
^src/asmfun\..*/
-^src/call_list\.txt$
-^src/call_list\.txt/
^src/core_pmcs\.c$
^src/core_pmcs\.c/
^src/exec_cpu\.c$
@@ -644,10 +642,16 @@
^src/exec_dep\.h/
^src/extend_vtable\.c$
^src/extend_vtable\.c/
+^src/extra_nci_thunks\.c$
+^src/extra_nci_thunks\.c/
^src/fingerprint\.c$
^src/fingerprint\.c/
^src/glut_callbacks\.c$
^src/glut_callbacks\.c/
+^src/glut_nci_thunks\.c$
+^src/glut_nci_thunks\.c/
+^src/glut_nci_thunks\.nci$
+^src/glut_nci_thunks\.nci/
^src/install_config\.c$
^src/install_config\.c/
^src/jit_cpu\.c$
@@ -656,8 +660,6 @@
^src/jit_defs\.c/
^src/jit_emit\.h$
^src/jit_emit\.h/
-^src/nci\.c$
-^src/nci\.c/
^src/null_config\.c$
^src/null_config\.c/
^src/parrot_config\.c$
@@ -807,6 +809,13 @@
^src/io/.*\.obj/
^src/io/.*\.str$
^src/io/.*\.str/
+# generated from svn:ignore of 'src/nci/'
+^src/nci/.*\.o$
+^src/nci/.*\.o/
+^src/nci/.*\.obj$
+^src/nci/.*\.obj/
+^src/nci/.*\.str$
+^src/nci/.*\.str/
# generated from svn:ignore of 'src/ops/'
^src/ops/.*\.c$
^src/ops/.*\.c/
Modified: branches/ops_pct/MANIFEST.generated
==============================================================================
--- branches/ops_pct/MANIFEST.generated Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/MANIFEST.generated Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,10 +2,10 @@
# See tools/dev/install_files.pl for documentation on the
# format of this file.
# Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.2.0.0.dylib [main]lib
+blib/lib/libparrot.2.1.0.dylib [main]lib
blib/lib/libparrot.a [main]lib
blib/lib/libparrot.dylib [main]lib
-blib/lib/libparrot.so.2.0.0 [main]lib
+blib/lib/libparrot.so.2.1.0 [main]lib
blib/lib/libparrot.so [main]lib
compilers/data_json/data_json.pbc [data_json]
compilers/json/JSON.pbc [json]
@@ -56,6 +56,7 @@
installable_parrot_debugger [main]bin
installable_parrot.exe [main]bin
installable_parrot [main]bin
+installable_parrot_nci_thunk_gen [main]bin
installable_pbc_disassemble.exe [main]bin
installable_pbc_disassemble [main]bin
installable_pbc_dump.exe [main]bin
@@ -162,7 +163,6 @@
runtime/parrot/library/Iter.pbc [main]
runtime/parrot/library/JSON.pbc [main]
runtime/parrot/library/libpcre.pbc [main]
-runtime/parrot/library/Math/Random/mt19937ar.pbc [main]
runtime/parrot/library/Math/Rand.pbc [main]
runtime/parrot/library/MIME/Base64.pbc [main]
runtime/parrot/library/NCI/call_toolkit_init.pbc [main]
Modified: branches/ops_pct/META.yml
==============================================================================
--- branches/ops_pct/META.yml Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/META.yml Sun Mar 7 19:33:20 2010 (r44743)
@@ -4,7 +4,7 @@
# See http://module-build.sourceforge.net/META-spec-current.html for details.
---
name: parrot
-version: 2.0.0
+version: 2.1.0
author: parrot-dev at lists.parrot.org
abstract: a virtual machine designed for dynamic languages
license: artistic2
Modified: branches/ops_pct/NEWS
==============================================================================
--- branches/ops_pct/NEWS Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/NEWS Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,21 @@
# $Id$
+New in 2.1.0
+- Core changes
+ + GC performance and encapsulation were greatly improved.
+ + PMC freeze refactored.
+ + More Makefile and build improvements.
+- API Changes
+ + The Array PMC was removed.
+ + Several deprecated vtables were removed.
+ + The OrderedHash PMC was substantialy improved.
+- Platforms
+ + Packaging improvements on some operating systems.
+- Tools
+ + Some cases in pbc_merge are now handled.
+ + Improvements were made to the dependency checker.
+ + New tool nativecall.pir added.
+
New in 2.0.0
- Features
+ Context PMCs now support attribute-based introspection
Modified: branches/ops_pct/PBC_COMPAT
==============================================================================
--- branches/ops_pct/PBC_COMPAT Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/PBC_COMPAT Sun Mar 7 19:33:20 2010 (r44743)
@@ -27,6 +27,8 @@
# please insert tab separated entries at the top of the list
+6.4 2010.03.02 cotto remove prederef__ and reserved
+6.3 2010.02.16 whiteknight Add OpLib and Opcode PMCs
6.2 2010.01.31 cotto serialization-related changes to ParrotInterpreter
6.1 2010.01.30 whiteknight remove Array PMC
6.0 2010.01.19 chromatic released 2.0.0
Modified: branches/ops_pct/PLATFORMS
==============================================================================
--- branches/ops_pct/PLATFORMS Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/PLATFORMS Sun Mar 7 19:33:20 2010 (r44743)
@@ -33,6 +33,7 @@
CGoto EXEC Thr Sig
--------------------------------------------------------------------------------
cygwin1.7.0-x86-gcc4.3.2 4 Y - - - Y Y Y 20090315
+darwin9.8.0-x86-gcc4.0.1 Y ? Y ? Y Y Y 20100215
dragonfly2.2.0-i386-gcc-4.1.2 4 Y - Y Y Y Y ? 20090427
freebsd-x86-gcc-4.2.1 4 Y Y ? ? Y Y Y 20090415
freebsd-amd64-gcc-4.2.1 8 Y - ? ? Y Y Y 20090720
@@ -40,7 +41,7 @@
linux-amd64-clang-r75433 8 Y ? ? ? Y Y*2 ? 20090913
linux-amd64-gcc4.3.2 8 Y - Y Y Y Y/1 Y 20091020
linux-amd64-gcc4.3.3 8 Y ? Y Y Y Y ? 20090712
-linux-amd64-gcc4.4.1 8 Y ? Y Y Y Y Y 20091020
+linux-amd64-gcc4.4.1 8 Y ? Y ? Y Y Y 20100215
linux-amd64-g++4.4.1 8 Y ? Y Y Y Y Y 20091116
linux-ppc-gcc_4.4.2 Y Y Y Y Y Y Y 20100118
linux-ppc64-gcc_4.4.2 Y Y Y Y Y Y Y 20100118
Modified: branches/ops_pct/README
==============================================================================
--- branches/ops_pct/README Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/README Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.0.0
+This is Parrot, version 2.1.0
------------------------------
Parrot is Copyright (C) 2001-2010, Parrot Foundation.
Modified: branches/ops_pct/VERSION
==============================================================================
--- branches/ops_pct/VERSION Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/VERSION Sun Mar 7 19:33:20 2010 (r44743)
@@ -1 +1 @@
-2.0.0
+2.1.0
Modified: branches/ops_pct/compilers/data_json/Defines.mak
==============================================================================
--- branches/ops_pct/compilers/data_json/Defines.mak Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/data_json/Defines.mak Sun Mar 7 19:33:20 2010 (r44743)
@@ -1 +1,6 @@
-DATA_JSON_LIB_PBCS = compilers/data_json/data_json.pbc
+DATA_JSON_LIB_PBCS = $(LIBRARY_DIR)/data_json.pbc
+
+DATA_JSON_CLEANUPS = $(LIBRARY_DIR)/data_json.pbc \
+ compilers/data_json/data_json.pbc \
+ compilers/data_json/data_json/grammar.pir \
+ compilers/data_json/data_json/pge2pir.pir
Modified: branches/ops_pct/compilers/data_json/Rules.mak
==============================================================================
--- branches/ops_pct/compilers/data_json/Rules.mak Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/data_json/Rules.mak Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,10 +1,10 @@
$(LIBRARY_DIR)/data_json.pbc: compilers/data_json/data_json.pbc
$(CP) compilers/data_json/data_json.pbc $@
-
+
compilers/data_json/data_json.pbc : \
- runtime/parrot/library/PGE.pbc \
- runtime/parrot/library/PGE/Util.pbc \
- runtime/parrot/library/TGE.pbc \
+ $(LIBRARY_DIR)/PGE.pbc \
+ $(LIBRARY_DIR)/PGE/Util.pbc \
+ $(LIBRARY_DIR)/TGE.pbc \
compilers/data_json/data_json/grammar.pir \
compilers/data_json/data_json/pge2pir.pir
Copied: branches/ops_pct/compilers/imcc/Rules.in (from r44740, trunk/compilers/imcc/Rules.in)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/compilers/imcc/Rules.in Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/compilers/imcc/Rules.in)
@@ -0,0 +1,210 @@
+compilers/imcc/pcc$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/imcparser.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/parser.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+compilers/imcc/instructions$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/optimizer.h \
+ compilers/imcc/pbc.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+compilers/imcc/pbc$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/pbc.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS) \
+ include/pmc/pmc_sub.h
+
+compilers/imcc/parser_util$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/imcparser.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/optimizer.h \
+ compilers/imcc/parser.h \
+ compilers/imcc/pbc.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/dynext.h \
+ $(INC_DIR)/embed.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS) \
+ include/pmc/pmc_sub.h
+
+compilers/imcc/imc$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/optimizer.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+compilers/imcc/cfg$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/optimizer.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+compilers/imcc/debug$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+## SUFFIX OVERRIDE - Warnings (This is generated code)
+compilers/imcc/imclexer$(O) : \
+ compilers/imcc/imclexer.c \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/imcparser.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/parser.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+ $(CC) $(CFLAGS) @optimize::compilers/imcc/imclexer.c@ @ccwarn::compilers/imcc/imclexer.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c compilers/imcc/imclexer.c
+
+## SUFFIX OVERRIDE - Warnings (This is generated code)
+compilers/imcc/imcparser$(O) : \
+ compilers/imcc/imcparser.c \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/imcparser.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/optimizer.h \
+ compilers/imcc/parser.h \
+ compilers/imcc/pbc.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/dynext.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+ $(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/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/imcparser.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/parser.h \
+ compilers/imcc/pbc.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/embed.h \
+ $(INC_DIR)/imcc.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(INC_DIR)/runcore_api.h \
+ $(PARROT_H_HEADERS)
+
+## SUFFIX OVERRIDE - Warnings (This is generated code)
+compilers/imcc/optimizer$(O) : \
+ compilers/imcc/optimizer.c \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/optimizer.h \
+ compilers/imcc/pbc.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+ $(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/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/optimizer.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+compilers/imcc/sets$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+compilers/imcc/symreg$(O) : \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imc.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS)
+
+# imcc file dependencies
+#
+# The .flag files are needed because we keep some derived files in SVN,
+# which does not keep accurate timestamps on the files, relative to each other.
+# Note that YACC or LEX may be null commands, so we must `touch` all the
+# target files, instead of just the .flag files.
+
+compilers/imcc/imcc.y.flag compilers/imcc/imcparser.c compilers/imcc/imcparser.h : compilers/imcc/imcc.y
+ $(YACC) compilers/imcc/imcc.y -d -o compilers/imcc/imcparser.c
+ $(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer compilers/imcc/imcparser.c compilers/imcc/imcc.y
+ $(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer compilers/imcc/imcparser.h compilers/imcc/imcc.y
+ $(TOUCH) compilers/imcc/imcc.y.flag compilers/imcc/imcparser.c compilers/imcc/imcparser.h
+
+compilers/imcc/imcc.l.flag compilers/imcc/imclexer.c : compilers/imcc/imcc.l
+ $(LEX) -ocompilers/imcc/imclexer.c compilers/imcc/imcc.l
+ $(TOUCH) compilers/imcc/imcc.l.flag compilers/imcc/imclexer.c
Deleted: branches/ops_pct/compilers/imcc/Rules.mak
==============================================================================
--- branches/ops_pct/compilers/imcc/Rules.mak Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,201 +0,0 @@
-compilers/imcc/pcc$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/imcparser.h \
- compilers/imcc/instructions.h \
- compilers/imcc/parser.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/instructions$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/optimizer.h \
- compilers/imcc/pbc.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/pbc$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/pbc.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS) \
- include/pmc/pmc_sub.h
-
-compilers/imcc/parser_util$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/imcparser.h \
- compilers/imcc/instructions.h \
- compilers/imcc/optimizer.h \
- compilers/imcc/parser.h \
- compilers/imcc/pbc.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/dynext.h \
- $(INC_DIR)/embed.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS) \
- include/pmc/pmc_sub.h
-
-compilers/imcc/imc$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/optimizer.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/cfg$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/optimizer.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/debug$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/imclexer$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/imcparser.h \
- compilers/imcc/instructions.h \
- compilers/imcc/parser.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/imcparser$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/imcparser.h \
- compilers/imcc/instructions.h \
- compilers/imcc/optimizer.h \
- compilers/imcc/parser.h \
- compilers/imcc/pbc.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/dynext.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/main$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/imcparser.h \
- compilers/imcc/instructions.h \
- compilers/imcc/parser.h \
- compilers/imcc/pbc.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/embed.h \
- $(INC_DIR)/imcc.h \
- $(INC_DIR)/oplib/ops.h \
- $(INC_DIR)/runcore_api.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/optimizer$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/optimizer.h \
- compilers/imcc/pbc.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/reg_alloc$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/optimizer.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/sets$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-compilers/imcc/symreg$(O) : \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imc.h \
- compilers/imcc/instructions.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS)
-
-# imcc file dependencies
-#
-# The .flag files are needed because we keep some derived files in SVN,
-# which does not keep accurate timestamps on the files, relative to each other.
-# Note that YACC or LEX may be null commands, so we must `touch` all the
-# target files, instead of just the .flag files.
-
-compilers/imcc/imcc.y.flag compilers/imcc/imcparser.c compilers/imcc/imcparser.h : compilers/imcc/imcc.y
- $(YACC) compilers/imcc/imcc.y -d -o compilers/imcc/imcparser.c
- $(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer compilers/imcc/imcparser.c compilers/imcc/imcc.y
- $(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer compilers/imcc/imcparser.h compilers/imcc/imcc.y
- $(TOUCH) compilers/imcc/imcc.y.flag compilers/imcc/imcparser.c compilers/imcc/imcparser.h
-
-compilers/imcc/imcc.l.flag compilers/imcc/imclexer.c : compilers/imcc/imcc.l
- $(LEX) -ocompilers/imcc/imclexer.c compilers/imcc/imcc.l
- $(TOUCH) compilers/imcc/imcc.l.flag compilers/imcc/imclexer.c
Modified: branches/ops_pct/compilers/imcc/cfg.c
==============================================================================
--- branches/ops_pct/compilers/imcc/cfg.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/cfg.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -35,27 +35,30 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void analyse_life_block(
+static void analyse_life_block(PARROT_INTERP,
ARGIN(const Basic_block* bb),
ARGMOD(SymReg *r))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*r);
-static void analyse_life_symbol(
+static void analyse_life_symbol(PARROT_INTERP,
ARGIN(const IMC_Unit *unit),
ARGMOD(SymReg* r))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(* r);
-static void bb_add_edge(
+static void bb_add_edge(PARROT_INTERP,
ARGMOD(IMC_Unit *unit),
ARGIN(Basic_block *from),
ARGMOD(Basic_block *to))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*unit)
FUNC_MODIFIES(*to);
@@ -110,17 +113,19 @@
__attribute__nonnull__(1)
FUNC_MODIFIES(*unit);
-static void init_basic_blocks(ARGMOD(IMC_Unit *unit))
+static void init_basic_blocks(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*unit);
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-static Basic_block* make_basic_block(
+static Basic_block* make_basic_block(PARROT_INTERP,
ARGMOD(IMC_Unit *unit),
ARGMOD(Instruction *ins))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*unit)
FUNC_MODIFIES(*ins);
@@ -145,13 +150,16 @@
__attribute__nonnull__(2);
#define ASSERT_ARGS_analyse_life_block __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(bb) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(bb) \
, PARROT_ASSERT_ARG(r))
#define ASSERT_ARGS_analyse_life_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(r))
#define ASSERT_ARGS_bb_add_edge __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(from) \
, PARROT_ASSERT_ARG(to))
#define ASSERT_ARGS_bb_check_set_addr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -180,9 +188,11 @@
#define ASSERT_ARGS_free_loops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_init_basic_blocks __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_make_basic_block __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(ins))
#define ASSERT_ARGS_mark_loop __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -267,7 +277,7 @@
unsigned int i;
IMCC_info(interp, 2, "find_basic_blocks\n");
- init_basic_blocks(unit);
+ init_basic_blocks(interp, unit);
for (i = 0; i < hsh->size; i++) {
SymReg *r;
@@ -288,7 +298,7 @@
ins->index = i = 0;
- bb = make_basic_block(unit, ins);
+ bb = make_basic_block(interp, unit, ins);
if (ins->type & ITBRANCH) {
SymReg * const addr = get_branch_reg(bb->end);
@@ -326,7 +336,7 @@
nu = 0;
else if (ins->type & ITLABEL) {
bb->end = ins->prev;
- bb = make_basic_block(unit, ins);
+ bb = make_basic_block(interp, unit, ins);
}
/* a branch is the end of a basic block
@@ -342,7 +352,7 @@
continue;
if (ins->next)
- bb = make_basic_block(unit, ins->next);
+ bb = make_basic_block(interp, unit, ins->next);
nu = 1;
}
@@ -380,8 +390,8 @@
ins->symregs[1]->name);
/* connect this block with first and last block */
- bb_add_edge(unit, unit->bb_list[0], bb);
- bb_add_edge(unit, unit->bb_list[unit->n_basic_blocks - 1], bb);
+ bb_add_edge(interp, unit, unit->bb_list[0], bb);
+ bb_add_edge(interp, unit, unit->bb_list[unit->n_basic_blocks - 1], bb);
/* and mark the instruction as being kind of a branch */
bb->start->type |= ITADDR;
@@ -419,7 +429,7 @@
/* if the block can fall-through */
if (i > 0 && ! (last->end->type & IF_goto))
- bb_add_edge(unit, last, bb);
+ bb_add_edge(interp, unit, last, bb);
/* check first ins, if label try to find a set_addr op */
if (bb->start->type & ITLABEL)
@@ -433,7 +443,7 @@
else if (STREQ(bb->start->opname, "invoke")
|| STREQ(bb->start->opname, "invokecc")) {
if (check_invoke_type(interp, unit, bb->start) == INVOKE_SUB_LOOP)
- bb_add_edge(unit, bb, unit->bb_list[0]);
+ bb_add_edge(interp, unit, bb, unit->bb_list[0]);
}
last = bb;
@@ -486,14 +496,14 @@
const SymReg * const r = find_sym(interp, label->name);
if (r && (r->type & VTADDRESS) && r->first_ins)
- bb_add_edge(unit, from, unit->bb_list[r->first_ins->bbindex]);
+ bb_add_edge(interp, unit, from, unit->bb_list[r->first_ins->bbindex]);
else {
IMCC_debug(interp, DEBUG_CFG, "register branch %I ", from->end);
for (ins = from->end; ins; ins = ins->prev) {
if ((ins->type & ITBRANCH)
&& STREQ(ins->opname, "set_addr")
&& ins->symregs[1]->first_ins) {
- bb_add_edge(unit, from,
+ bb_add_edge(interp, unit, from,
unit-> bb_list[ins->symregs[1]->first_ins->bbindex]);
IMCC_debug(interp, DEBUG_CFG, "(%s) ", ins->symregs[1]->name);
break;
@@ -538,8 +548,8 @@
/*
-=item C<static void bb_add_edge(IMC_Unit *unit, Basic_block *from, Basic_block
-*to)>
+=item C<static void bb_add_edge(PARROT_INTERP, IMC_Unit *unit, Basic_block
+*from, Basic_block *to)>
Adds an edge between the two given blocks.
@@ -548,8 +558,10 @@
*/
static void
-bb_add_edge(ARGMOD(IMC_Unit *unit), ARGIN(Basic_block *from),
- ARGMOD(Basic_block *to))
+bb_add_edge(PARROT_INTERP,
+ ARGMOD(IMC_Unit *unit),
+ ARGIN(Basic_block *from),
+ ARGMOD(Basic_block *to))
{
ASSERT_ARGS(bb_add_edge)
Edge *e;
@@ -558,7 +570,7 @@
/* we assume that the data is correct, and thus if the edge is not
* on the predecessors of 'from', it won't be on the successors of 'to' */
- e = mem_allocate_typed(Edge);
+ e = mem_gc_allocate_typed(interp, Edge);
e->succ_next = from->succ_list;
e->from = from;
@@ -708,13 +720,14 @@
IMCC_info(interp, 2, "life_analysis\n");
for (i = 0; i < unit->n_symbols; i++)
- analyse_life_symbol(unit, reglist[i]);
+ analyse_life_symbol(interp, unit, reglist[i]);
}
/*
-=item C<static void analyse_life_symbol(const IMC_Unit *unit, SymReg* r)>
+=item C<static void analyse_life_symbol(PARROT_INTERP, const IMC_Unit *unit,
+SymReg* r)>
Analyzes the lifetime for a given symbol.
@@ -723,7 +736,8 @@
*/
static void
-analyse_life_symbol(ARGIN(const IMC_Unit *unit), ARGMOD(SymReg* r))
+analyse_life_symbol(PARROT_INTERP,
+ ARGIN(const IMC_Unit *unit), ARGMOD(SymReg* r))
{
ASSERT_ARGS(analyse_life_symbol)
unsigned int i;
@@ -735,13 +749,13 @@
if (r->life_info)
free_life_info(unit, r);
- r->life_info = mem_allocate_n_zeroed_typed(unit->n_basic_blocks,
+ r->life_info = mem_gc_allocate_n_zeroed_typed(interp, unit->n_basic_blocks,
Life_range *);
/* First we make a pass to each block to gather the information
* that can be obtained locally */
for (i = 0; i < unit->n_basic_blocks; i++) {
- analyse_life_block(unit->bb_list[i], r);
+ analyse_life_block(interp, unit->bb_list[i], r);
}
/* Now we need to consider the relations between blocks */
@@ -807,7 +821,8 @@
/*
-=item C<static void analyse_life_block(const Basic_block* bb, SymReg *r)>
+=item C<static void analyse_life_block(PARROT_INTERP, const Basic_block* bb,
+SymReg *r)>
Studies the state of the var r in the block bb.
@@ -819,10 +834,10 @@
*/
static void
-analyse_life_block(ARGIN(const Basic_block* bb), ARGMOD(SymReg *r))
+analyse_life_block(PARROT_INTERP, ARGIN(const Basic_block* bb), ARGMOD(SymReg *r))
{
ASSERT_ARGS(analyse_life_block)
- Life_range * const l = make_life_range(r, bb->index);
+ Life_range * const l = make_life_range(interp, r, bb->index);
Instruction *special = NULL;
Instruction *ins;
@@ -985,19 +1000,19 @@
const unsigned int n = unit->n_basic_blocks;
IMCC_info(interp, 2, "compute_dominators\n");
- unit->idoms = mem_allocate_n_zeroed_typed(n, int);
- dominators = mem_allocate_n_zeroed_typed(n, Set *);
+ unit->idoms = mem_gc_allocate_n_zeroed_typed(interp, n, int);
+ dominators = mem_gc_allocate_n_zeroed_typed(interp, n, Set *);
unit->dominators = dominators;
- dominators[0] = set_make(n);
+ dominators[0] = set_make(interp, n);
set_add(dominators[0], 0);
for (i = n - 1; i; --i) {
if (unit->bb_list[i]->pred_list) {
- dominators[i] = set_make_full(n);
+ dominators[i] = set_make_full(interp, n);
}
else {
- dominators[i] = set_make(n);
+ dominators[i] = set_make(interp, n);
set_add(dominators[i], i);
}
}
@@ -1034,7 +1049,7 @@
/* TODO: This 'for' should be a breadth-first search for speed */
for (i = 1; i < n; i++) {
- Set * const s = set_copy(dominators[i]);
+ Set * const s = set_copy(interp, dominators[i]);
Edge *edge;
for (edge = unit->bb_list[i]->pred_list;
@@ -1113,12 +1128,12 @@
const int n = unit->n_basic_blocks;
Set ** const dominance_frontiers = unit->dominance_frontiers =
- mem_allocate_n_typed(n, Set *);
+ mem_gc_allocate_n_typed(interp, n, Set *);
IMCC_info(interp, 2, "compute_dominance_frontiers\n");
for (i = 0; i < n; i++) {
- dominance_frontiers[i] = set_make(n);
+ dominance_frontiers[i] = set_make(interp, n);
}
/* for all nodes, b */
@@ -1416,7 +1431,7 @@
"\tcan't determine loop entry block (%d found)\n" , i);
}
- loop = set_make(unit->n_basic_blocks);
+ loop = set_make(interp, unit->n_basic_blocks);
set_add(loop, footer->index);
set_add(loop, header->index);
@@ -1427,7 +1442,7 @@
search_predecessors_not_in(footer, loop);
}
- exits = set_make(unit->n_basic_blocks);
+ exits = set_make(interp, unit->n_basic_blocks);
for (i = 1; i < unit->n_basic_blocks; i++) {
if (set_contains(loop, i)) {
@@ -1443,9 +1458,10 @@
/* now 'loop' contains the set of nodes inside the loop. */
n_loops = unit->n_loops;
- loop_info = mem_realloc_n_typed(unit->loop_info,
- n_loops + 1, Loop_info *);
- loop_info[n_loops] = mem_allocate_typed(Loop_info);
+ loop_info = mem_gc_realloc_n_typed(interp,
+ unit->loop_info,
+ n_loops + 1, Loop_info *);
+ loop_info[n_loops] = mem_gc_allocate_typed(interp, Loop_info);
loop_info[n_loops]->loop = loop;
loop_info[n_loops]->exits = exits;
loop_info[n_loops]->depth = footer->loop_depth;
@@ -1453,6 +1469,8 @@
loop_info[n_loops]->header = header->index;
loop_info[n_loops]->preheader = natural_preheader(unit, loop_info[n_loops]);
+ unit->loop_info = loop_info;
+
unit->n_loops++;
}
@@ -1518,7 +1536,7 @@
/*
-=item C<static void init_basic_blocks(IMC_Unit *unit)>
+=item C<static void init_basic_blocks(PARROT_INTERP, IMC_Unit *unit)>
Initializes the basic blocks memory for this unit.
@@ -1527,7 +1545,7 @@
*/
static void
-init_basic_blocks(ARGMOD(IMC_Unit *unit))
+init_basic_blocks(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
{
ASSERT_ARGS(init_basic_blocks)
@@ -1537,8 +1555,8 @@
unit->n_basic_blocks = 0;
unit->edge_list = NULL;
unit->bb_list_size = 256;
- unit->bb_list = mem_allocate_n_zeroed_typed(unit->bb_list_size,
- Basic_block *);
+ unit->bb_list = mem_gc_allocate_n_zeroed_typed(interp,
+ unit->bb_list_size, Basic_block *);
}
@@ -1576,7 +1594,8 @@
/*
-=item C<static Basic_block* make_basic_block(IMC_Unit *unit, Instruction *ins)>
+=item C<static Basic_block* make_basic_block(PARROT_INTERP, IMC_Unit *unit,
+Instruction *ins)>
Creates, initializes, and returns a new Basic_block.
@@ -1587,10 +1606,10 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
static Basic_block*
-make_basic_block(ARGMOD(IMC_Unit *unit), ARGMOD(Instruction *ins))
+make_basic_block(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGMOD(Instruction *ins))
{
ASSERT_ARGS(make_basic_block)
- Basic_block * const bb = mem_allocate_typed(Basic_block);
+ Basic_block * const bb = mem_gc_allocate_typed(interp, Basic_block);
int n = unit->n_basic_blocks;
bb->start = ins;
@@ -1605,7 +1624,8 @@
if (n == unit->bb_list_size) {
unit->bb_list_size *= 2;
- mem_realloc_n_typed(unit->bb_list, unit->bb_list_size, Basic_block *);
+ unit->bb_list = mem_gc_realloc_n_typed(interp, unit->bb_list,
+ unit->bb_list_size, Basic_block *);
}
unit->bb_list[n] = bb;
@@ -1617,7 +1637,7 @@
/*
-=item C<Life_range * make_life_range(SymReg *r, int idx)>
+=item C<Life_range * make_life_range(PARROT_INTERP, SymReg *r, int idx)>
Creates and returns a Life_range for the given register at the specified index.
@@ -1628,10 +1648,10 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
Life_range *
-make_life_range(ARGMOD(SymReg *r), int idx)
+make_life_range(PARROT_INTERP, ARGMOD(SymReg *r), int idx)
{
ASSERT_ARGS(make_life_range)
- Life_range * const l = mem_allocate_zeroed_typed(Life_range);
+ Life_range * const l = mem_gc_allocate_zeroed_typed(interp, Life_range);
r->life_info[idx] = l;
return l;
Modified: branches/ops_pct/compilers/imcc/cfg.h
==============================================================================
--- branches/ops_pct/compilers/imcc/cfg.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/cfg.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -100,8 +100,9 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-Life_range * make_life_range(ARGMOD(SymReg *r), int idx)
+Life_range * make_life_range(PARROT_INTERP, ARGMOD(SymReg *r), int idx)
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*r);
PARROT_WARN_UNUSED_RESULT
@@ -147,7 +148,8 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_make_life_range __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(r))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(r))
#define ASSERT_ARGS_natural_preheader __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(loop_info))
Modified: branches/ops_pct/compilers/imcc/imc.c
==============================================================================
--- branches/ops_pct/compilers/imcc/imc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/imc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -39,12 +39,14 @@
PARROT_CANNOT_RETURN_NULL
PARROT_MALLOC
-static IMC_Unit * imc_new_unit(IMC_Unit_Type t);
+static IMC_Unit * imc_new_unit(PARROT_INTERP, IMC_Unit_Type t)
+ __attribute__nonnull__(1);
#define ASSERT_ARGS_imc_free_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_imc_new_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_imc_new_unit __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 */
@@ -145,7 +147,7 @@
IMCC_INFO(interp)->ghash.data = NULL;
if (IMCC_INFO(interp)->state) {
- free(IMCC_INFO(interp)->state->file);
+ mem_sys_free(IMCC_INFO(interp)->state->file);
IMCC_INFO(interp)->state->file = NULL;
}
}
@@ -153,7 +155,7 @@
/*
-=item C<static IMC_Unit * imc_new_unit(IMC_Unit_Type t)>
+=item C<static IMC_Unit * imc_new_unit(PARROT_INTERP, IMC_Unit_Type t)>
Creates a new IMC_Unit of the given IMC_Unit_Type C<t>.
@@ -164,11 +166,11 @@
PARROT_CANNOT_RETURN_NULL
PARROT_MALLOC
static IMC_Unit *
-imc_new_unit(IMC_Unit_Type t)
+imc_new_unit(PARROT_INTERP, IMC_Unit_Type t)
{
ASSERT_ARGS(imc_new_unit)
- IMC_Unit * const unit = mem_allocate_zeroed_typed(IMC_Unit);
- create_symhash(&unit->hash);
+ IMC_Unit * const unit = mem_gc_allocate_zeroed_typed(interp, IMC_Unit);
+ create_symhash(interp, &unit->hash);
unit->type = t;
return unit;
}
@@ -191,14 +193,14 @@
imc_open_unit(PARROT_INTERP, IMC_Unit_Type t)
{
ASSERT_ARGS(imc_open_unit)
- IMC_Unit * const unit = imc_new_unit(t);
+ IMC_Unit * const unit = imc_new_unit(interp, t);
imc_info_t * const imc_info = IMCC_INFO(interp);
if (!imc_info->imc_units)
imc_info->imc_units = unit;
if (!imc_info->ghash.data)
- create_symhash(&imc_info->ghash);
+ create_symhash(interp, &imc_info->ghash);
unit->prev = imc_info->last_unit;
@@ -278,8 +280,8 @@
if (unit->instance_of)
mem_sys_free(unit->instance_of);
- free(unit->hash.data);
- free(unit);
+ mem_sys_free(unit->hash.data);
+ mem_sys_free(unit);
}
/*
Modified: branches/ops_pct/compilers/imcc/imcc.l
==============================================================================
--- branches/ops_pct/compilers/imcc/imcc.l Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/imcc.l Sun Mar 7 19:33:20 2010 (r44743)
@@ -726,7 +726,7 @@
"Invalid LABEL outside of macro");
}
else {
- char * const fmt = "local__%s__%s__$";
+ const char * const fmt = "local__%s__%s__$";
const size_t fmtlen = strlen(fmt) - (2 * strlen("%s"));
const size_t len = strlen(IMCC_INFO(interp)->cur_macro_name)
+ yyleng + fmtlen;
@@ -787,7 +787,7 @@
static macro_frame_t *
new_frame(PARROT_INTERP) {
static int label = 0;
- macro_frame_t * const tmp = mem_allocate_zeroed_typed(macro_frame_t);
+ macro_frame_t * const tmp = mem_gc_allocate_zeroed_typed(interp, macro_frame_t);
tmp->label = ++label;
tmp->s.line = IMCC_INFO(interp)->line;
@@ -895,7 +895,7 @@
macro_name);
len += strlen(val.s);
- current = (char *)realloc(current, len + 1);
+ current = (char *)mem_sys_realloc(current, len + 1);
strcat(current,val.s);
mem_sys_free(val.s);
@@ -963,7 +963,7 @@
else {
if (!need_id || c != ' ') {
len += strlen(val.s);
- current = (char *)realloc(current, len + 1);
+ current = (char *)mem_sys_realloc(current, len + 1);
strcat(current, val.s);
}
@@ -1019,7 +1019,6 @@
}
while (c != ENDM) {
- char *old_s = valp->s;
int elem_len;
if (c <= 0) {
@@ -1107,7 +1106,7 @@
m->expansion = NULL;
}
else {
- m = mem_allocate_zeroed_typed(macro_t);
+ m = mem_gc_allocate_zeroed_typed(interp, macro_t);
if (!IMCC_INFO(interp)->macros)
IMCC_INFO(interp)->macros = parrot_new_cstring_hash(interp);
Modified: branches/ops_pct/compilers/imcc/imcc.y
==============================================================================
--- branches/ops_pct/compilers/imcc/imcc.y Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/imcc.y Sun Mar 7 19:33:20 2010 (r44743)
@@ -5,7 +5,7 @@
* Intermediate Code Compiler for Parrot.
*
* Copyright (C) 2002 Melvin Smith <melvin.smith at mindspring.com>
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
*
* Grammar of the PIR language parser.
*
@@ -28,7 +28,7 @@
/* prevent declarations of malloc() and free() in the generated parser. */
#define YYMALLOC
-#define YYFREE
+#define YYFREE(Ptr) do { /* empty */; } while (YYID (0))
#ifndef YYENABLE_NLS
# define YYENABLE_NLS 0
@@ -43,57 +43,62 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void add_pcc_named_arg(
+static void add_pcc_named_arg(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_arg_var(
+static void add_pcc_named_arg_var(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_param(
+static void add_pcc_named_param(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_result(
+static void add_pcc_named_result(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_return(
+static void add_pcc_named_return(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
@@ -177,7 +182,7 @@
static const char * inv_op(ARGIN(const char *op))
__attribute__nonnull__(1);
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
static Instruction * iSUBROUTINE(PARROT_INTERP,
ARGMOD_NULLOK(IMC_Unit *unit),
@@ -251,23 +256,28 @@
FUNC_MODIFIES(*name);
#define ASSERT_ARGS_add_pcc_named_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_arg_var __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_result __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_return __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_adv_named_set __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -532,7 +542,7 @@
}
r[1] = rhs;
- rhs->pmc_type = pmc_type(interp,
+ rhs->pmc_type = Parrot_pmc_get_type_str(interp,
Parrot_str_new(interp, unquoted_name, name_length));
mem_sys_free(unquoted_name);
@@ -639,7 +649,7 @@
*/
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
static Instruction *
iSUBROUTINE(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r))
@@ -648,7 +658,7 @@
Instruction * const i = iLABEL(interp, unit, r);
r->type = (r->type & VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED : VT_PCC_SUB;
- r->pcc_sub = mem_allocate_zeroed_typed(pcc_sub_t);
+ r->pcc_sub = mem_gc_allocate_zeroed_typed(interp, pcc_sub_t);
IMCC_INFO(interp)->cur_call = r;
i->line = IMCC_INFO(interp)->line;
@@ -899,105 +909,111 @@
/*
-=item C<static void add_pcc_named_arg(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_arg(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_arg(ARGMOD(SymReg *cur_call),
+add_pcc_named_arg(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_arg)
name->type |= VT_NAMED;
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
+ add_pcc_arg(interp, cur_call, name);
+ add_pcc_arg(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_arg_var(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_arg_var(PARROT_INTERP, SymReg *cur_call,
+SymReg *name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_arg_var(ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name), ARGMOD(SymReg *value))
+add_pcc_named_arg_var(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_arg_var)
name->type |= VT_NAMED;
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
+ add_pcc_arg(interp, cur_call, name);
+ add_pcc_arg(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_result(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_result(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_result(ARGMOD(SymReg *cur_call),
+add_pcc_named_result(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_result)
name->type |= VT_NAMED;
- add_pcc_result(cur_call, name);
- add_pcc_result(cur_call, value);
+ add_pcc_result(interp, cur_call, name);
+ add_pcc_result(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_param(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_param(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_param(ARGMOD(SymReg *cur_call),
+add_pcc_named_param(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_param)
name->type |= VT_NAMED;
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
+ add_pcc_arg(interp, cur_call, name);
+ add_pcc_arg(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_return(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_return(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_return(ARGMOD(SymReg *cur_call),
+add_pcc_named_return(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_return)
name->type |= VT_NAMED;
- add_pcc_result(cur_call, name);
- add_pcc_result(cur_call, value);
+ add_pcc_result(interp, cur_call, name);
+ add_pcc_result(interp, cur_call, value);
}
/*
@@ -1387,12 +1403,12 @@
| sub_params sub_param '\n'
{
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_param(IMCC_INFO(interp)->cur_call,
+ add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
IMCC_INFO(interp)->adv_named_id, $2);
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_arg(IMCC_INFO(interp)->cur_call, $2);
+ add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, $2);
}
;
@@ -1406,7 +1422,7 @@
if ($3 & VT_UNIQUE_REG)
$$ = mk_ident_ur(interp, $2, $1);
else if ($3 & VT_OPT_FLAG && $1 != 'I') {
- char *type;
+ const char *type;
switch ($1) {
case 'N': type = "num"; break;
case 'S': type = "string"; break;
@@ -1516,17 +1532,17 @@
multi_types:
/* empty */
{
- add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
+ add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
}
| multi_types COMMA multi_type
{
$$ = 0;
- add_pcc_multi(IMCC_INFO(interp)->cur_call, $3);
+ add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, $3);
}
| multi_type
{
$$ = 0;
- add_pcc_multi(IMCC_INFO(interp)->cur_call, $1);
+ add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, $1);
}
;
@@ -1673,7 +1689,7 @@
pcc_args:
/* empty */ { $$ = 0; }
- | pcc_args pcc_arg '\n' { add_pcc_arg(IMCC_INFO(interp)->cur_call, $2); }
+ | pcc_args pcc_arg '\n' { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, $2); }
;
pcc_arg:
@@ -1686,7 +1702,7 @@
| pcc_results pcc_result '\n'
{
if ($2)
- add_pcc_result(IMCC_INFO(interp)->cur_call, $2);
+ add_pcc_result(interp, IMCC_INFO(interp)->cur_call, $2);
}
;
@@ -1745,12 +1761,12 @@
| pcc_returns '\n'
{
if ($1)
- add_pcc_result(IMCC_INFO(interp)->sr_return, $1);
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, $1);
}
| pcc_returns pcc_return '\n'
{
if ($2)
- add_pcc_result(IMCC_INFO(interp)->sr_return, $2);
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, $2);
}
;
@@ -1759,12 +1775,12 @@
| pcc_yields '\n'
{
if ($1)
- add_pcc_result(IMCC_INFO(interp)->sr_return, $1);
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, $1);
}
| pcc_yields pcc_set_yield '\n'
{
if ($2)
- add_pcc_result(IMCC_INFO(interp)->sr_return, $2);
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, $2);
}
;
@@ -1799,32 +1815,32 @@
| arg
{
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_return(IMCC_INFO(interp)->sr_return,
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
IMCC_INFO(interp)->adv_named_id, $1);
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->sr_return, $1);
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, $1);
}
| STRINGC ADV_ARROW var
{
SymReg * const name = mk_const(interp, $1, 'S');
- add_pcc_named_return(IMCC_INFO(interp)->sr_return, name, $3);
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, $3);
}
| var_returns COMMA arg
{
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_return(IMCC_INFO(interp)->sr_return,
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
IMCC_INFO(interp)->adv_named_id, $3);
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->sr_return, $3);
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, $3);
}
| var_returns COMMA STRINGC ADV_ARROW var
{
SymReg * const name = mk_const(interp, $3, 'S');
- add_pcc_named_return(IMCC_INFO(interp)->sr_return, name, $5);
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, $5);
}
;
@@ -1908,7 +1924,7 @@
id_list_id :
IDENTIFIER opt_unique_reg
{
- IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
+ IdList* const l = mem_gc_allocate_n_zeroed_typed(interp, 1, IdList);
l->id = $1;
l->unique_reg = $2;
$$ = l;
@@ -2026,7 +2042,7 @@
{
/* there'd normally be a mem_sys_strdup() here, but the lexer already
* copied the string, so it's safe to use directly */
- if ((IMCC_INFO(interp)->cur_pmc_type = pmc_type(interp,
+ if ((IMCC_INFO(interp)->cur_pmc_type = Parrot_pmc_get_type_str(interp,
Parrot_str_new(interp, $1, 0))) <= 0) {
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
"Unknown PMC type '%s'\n", $1);
@@ -2053,7 +2069,7 @@
/* Subroutine call the short way */
| target '=' sub_call
{
- add_pcc_result($3->symregs[0], $1);
+ add_pcc_result(interp, $3->symregs[0], $1);
IMCC_INFO(interp)->cur_call = NULL;
$$ = 0;
}
@@ -2209,38 +2225,38 @@
{
$$ = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $3);
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $3);
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_arg(IMCC_INFO(interp)->cur_call, $3);
+ add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, $3);
}
| arg
{
$$ = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $1);
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $1);
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_arg(IMCC_INFO(interp)->cur_call, $1);
+ add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, $1);
}
| arglist COMMA STRINGC ADV_ARROW var
{
$$ = 0;
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call,
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, $3, 'S'), $5);
mem_sys_free($3);
}
| var ADV_ARROW var
{
$$ = 0;
- add_pcc_named_arg_var(IMCC_INFO(interp)->cur_call, $1, $3);
+ add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, $1, $3);
}
| STRINGC ADV_ARROW var
{
$$ = 0;
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call,
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, $1, 'S'), $3);
mem_sys_free($1);
}
@@ -2274,31 +2290,31 @@
{
$$ = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_result(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $3);
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $3);
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->cur_call, $3);
+ add_pcc_result(interp, IMCC_INFO(interp)->cur_call, $3);
}
| targetlist COMMA STRINGC ADV_ARROW target
{
- add_pcc_named_result(IMCC_INFO(interp)->cur_call,
- mk_const(interp, $3, 'S'), $5);
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
+ mk_const(interp, $3, 'S'), $5);
mem_sys_free($3);
}
| result
{
$$ = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_result(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $1);
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, $1);
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->cur_call, $1);
+ add_pcc_result(interp, IMCC_INFO(interp)->cur_call, $1);
}
| STRINGC ADV_ARROW target
{
- add_pcc_named_result(IMCC_INFO(interp)->cur_call, mk_const(interp, $1, 'S'), $3);
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, $1, 'S'), $3);
mem_sys_free($1);
}
| /* empty */ { $$ = 0; }
Modified: branches/ops_pct/compilers/imcc/imclexer.c
==============================================================================
--- branches/ops_pct/compilers/imcc/imclexer.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/imclexer.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -3909,7 +3909,7 @@
"Invalid LABEL outside of macro");
}
else {
- char * const fmt = "local__%s__%s__$";
+ const char * const fmt = "local__%s__%s__$";
const size_t fmtlen = strlen(fmt) - (2 * strlen("%s"));
const size_t len = strlen(IMCC_INFO(interp)->cur_macro_name)
+ yyleng + fmtlen;
@@ -5209,7 +5209,7 @@
static macro_frame_t *
new_frame(PARROT_INTERP) {
static int label = 0;
- macro_frame_t * const tmp = mem_allocate_zeroed_typed(macro_frame_t);
+ macro_frame_t * const tmp = mem_gc_allocate_zeroed_typed(interp, macro_frame_t);
tmp->label = ++label;
tmp->s.line = IMCC_INFO(interp)->line;
@@ -5317,7 +5317,7 @@
macro_name);
len += strlen(val.s);
- current = (char *)realloc(current, len + 1);
+ current = (char *)mem_sys_realloc(current, len + 1);
strcat(current,val.s);
mem_sys_free(val.s);
@@ -5385,7 +5385,7 @@
else {
if (!need_id || c != ' ') {
len += strlen(val.s);
- current = (char *)realloc(current, len + 1);
+ current = (char *)mem_sys_realloc(current, len + 1);
strcat(current, val.s);
}
@@ -5441,7 +5441,6 @@
}
while (c != ENDM) {
- char *old_s = valp->s;
int elem_len;
if (c <= 0) {
@@ -5529,7 +5528,7 @@
m->expansion = NULL;
}
else {
- m = mem_allocate_zeroed_typed(macro_t);
+ m = mem_gc_allocate_zeroed_typed(interp, macro_t);
if (!IMCC_INFO(interp)->macros)
IMCC_INFO(interp)->macros = parrot_new_cstring_hash(interp);
Modified: branches/ops_pct/compilers/imcc/imcparser.c
==============================================================================
--- branches/ops_pct/compilers/imcc/imcparser.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/imcparser.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -87,7 +87,7 @@
* Intermediate Code Compiler for Parrot.
*
* Copyright (C) 2002 Melvin Smith <melvin.smith at mindspring.com>
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
*
* Grammar of the PIR language parser.
*
@@ -110,7 +110,7 @@
/* prevent declarations of malloc() and free() in the generated parser. */
#define YYMALLOC
-#define YYFREE
+#define YYFREE(Ptr) do { /* empty */; } while (YYID (0))
#ifndef YYENABLE_NLS
# define YYENABLE_NLS 0
@@ -125,57 +125,62 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void add_pcc_named_arg(
+static void add_pcc_named_arg(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_arg_var(
+static void add_pcc_named_arg_var(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_param(
+static void add_pcc_named_param(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_result(
+static void add_pcc_named_result(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
-static void add_pcc_named_return(
+static void add_pcc_named_return(PARROT_INTERP,
ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*cur_call)
FUNC_MODIFIES(*name)
FUNC_MODIFIES(*value);
@@ -259,7 +264,7 @@
static const char * inv_op(ARGIN(const char *op))
__attribute__nonnull__(1);
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
static Instruction * iSUBROUTINE(PARROT_INTERP,
ARGMOD_NULLOK(IMC_Unit *unit),
@@ -333,23 +338,28 @@
FUNC_MODIFIES(*name);
#define ASSERT_ARGS_add_pcc_named_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_arg_var __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_result __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_add_pcc_named_return __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(cur_call) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(cur_call) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_adv_named_set __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -614,7 +624,7 @@
}
r[1] = rhs;
- rhs->pmc_type = pmc_type(interp,
+ rhs->pmc_type = Parrot_pmc_get_type_str(interp,
Parrot_str_new(interp, unquoted_name, name_length));
mem_sys_free(unquoted_name);
@@ -721,7 +731,7 @@
*/
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
static Instruction *
iSUBROUTINE(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r))
@@ -730,7 +740,7 @@
Instruction * const i = iLABEL(interp, unit, r);
r->type = (r->type & VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED : VT_PCC_SUB;
- r->pcc_sub = mem_allocate_zeroed_typed(pcc_sub_t);
+ r->pcc_sub = mem_gc_allocate_zeroed_typed(interp, pcc_sub_t);
IMCC_INFO(interp)->cur_call = r;
i->line = IMCC_INFO(interp)->line;
@@ -981,105 +991,111 @@
/*
-=item C<static void add_pcc_named_arg(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_arg(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_arg(ARGMOD(SymReg *cur_call),
+add_pcc_named_arg(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_arg)
name->type |= VT_NAMED;
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
+ add_pcc_arg(interp, cur_call, name);
+ add_pcc_arg(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_arg_var(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_arg_var(PARROT_INTERP, SymReg *cur_call,
+SymReg *name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_arg_var(ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name), ARGMOD(SymReg *value))
+add_pcc_named_arg_var(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_arg_var)
name->type |= VT_NAMED;
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
+ add_pcc_arg(interp, cur_call, name);
+ add_pcc_arg(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_result(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_result(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_result(ARGMOD(SymReg *cur_call),
+add_pcc_named_result(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_result)
name->type |= VT_NAMED;
- add_pcc_result(cur_call, name);
- add_pcc_result(cur_call, value);
+ add_pcc_result(interp, cur_call, name);
+ add_pcc_result(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_param(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_param(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_param(ARGMOD(SymReg *cur_call),
+add_pcc_named_param(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_param)
name->type |= VT_NAMED;
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
+ add_pcc_arg(interp, cur_call, name);
+ add_pcc_arg(interp, cur_call, value);
}
/*
-=item C<static void add_pcc_named_return(SymReg *cur_call, SymReg *name, SymReg
-*value)>
+=item C<static void add_pcc_named_return(PARROT_INTERP, SymReg *cur_call, SymReg
+*name, SymReg *value)>
=cut
*/
static void
-add_pcc_named_return(ARGMOD(SymReg *cur_call),
+add_pcc_named_return(PARROT_INTERP,
+ ARGMOD(SymReg *cur_call),
ARGMOD(SymReg *name),
ARGMOD(SymReg *value))
{
ASSERT_ARGS(add_pcc_named_return)
name->type |= VT_NAMED;
- add_pcc_result(cur_call, name);
- add_pcc_result(cur_call, value);
+ add_pcc_result(interp, cur_call, name);
+ add_pcc_result(interp, cur_call, value);
}
/*
@@ -1139,7 +1155,7 @@
/* Line 189 of yacc.c */
-#line 1132 "compilers/imcc/imcparser.c"
+#line 1148 "compilers/imcc/imcparser.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -1416,7 +1432,7 @@
{
/* Line 214 of yacc.c */
-#line 1059 "compilers/imcc/imcc.y"
+#line 1075 "compilers/imcc/imcc.y"
IdList * idlist;
int t;
@@ -1427,7 +1443,7 @@
/* Line 214 of yacc.c */
-#line 1420 "compilers/imcc/imcparser.c"
+#line 1436 "compilers/imcc/imcparser.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1439,7 +1455,7 @@
/* Line 264 of yacc.c */
-#line 1432 "compilers/imcc/imcparser.c"
+#line 1448 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1860,40 +1876,40 @@
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1154, 1154, 1158, 1159, 1163, 1164, 1165, 1171, 1177,
- 1178, 1179, 1180, 1184, 1185, 1194, 1200, 1208, 1220, 1233,
- 1233, 1242, 1242, 1249, 1249, 1258, 1259, 1263, 1264, 1268,
- 1269, 1270, 1271, 1272, 1273, 1274, 1277, 1277, 1286, 1285,
- 1298, 1302, 1315, 1319, 1323, 1323, 1335, 1337, 1341, 1356,
- 1360, 1365, 1369, 1373, 1364, 1385, 1386, 1387, 1400, 1400,
- 1404, 1430, 1434, 1440, 1449, 1455, 1464, 1470, 1479, 1485,
- 1494, 1502, 1507, 1518, 1521, 1526, 1534, 1535, 1536, 1537,
- 1538, 1549, 1560, 1563, 1565, 1570, 1569, 1602, 1603, 1607,
- 1608, 1612, 1613, 1617, 1618, 1622, 1623, 1624, 1625, 1626,
- 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1639,
- 1644, 1648, 1653, 1657, 1661, 1666, 1675, 1676, 1680, 1685,
- 1686, 1694, 1695, 1695, 1710, 1711, 1715, 1716, 1717, 1718,
- 1719, 1720, 1721, 1722, 1727, 1727, 1730, 1738, 1738, 1744,
- 1745, 1750, 1758, 1759, 1764, 1772, 1776, 1781, 1780, 1793,
- 1794, 1798, 1799, 1809, 1814, 1824, 1833, 1834, 1846, 1850,
- 1852, 1853, 1854, 1855, 1856, 1860, 1861, 1865, 1866, 1870,
- 1881, 1882, 1893, 1900, 1909, 1919, 1920, 1925, 1926, 1927,
- 1927, 1943, 1960, 1973, 1973, 1980, 1981, 1981, 1987, 1993,
- 1997, 2009, 2010, 2011, 2012, 2013, 2014, 2018, 2019, 2020,
- 2021, 2025, 2038, 2040, 2042, 2044, 2046, 2051, 2054, 2061,
- 2060, 2069, 2070, 2071, 2072, 2080, 2081, 2082, 2086, 2087,
- 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
- 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
- 2108, 2114, 2113, 2125, 2130, 2131, 2132, 2133, 2134, 2135,
- 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2147, 2158, 2159,
- 2160, 2161, 2167, 2181, 2187, 2193, 2199, 2198, 2207, 2208,
- 2218, 2228, 2235, 2240, 2250, 2254, 2255, 2259, 2260, 2261,
- 2264, 2265, 2269, 2273, 2283, 2289, 2299, 2304, 2308, 2309,
- 2313, 2317, 2321, 2328, 2332, 2336, 2343, 2344, 2348, 2349,
- 2350, 2351, 2352, 2353, 2357, 2358, 2362, 2363, 2367, 2368,
- 2372, 2373, 2380, 2387, 2388, 2389, 2393, 2394, 2398, 2399,
- 2403, 2404, 2408, 2409, 2413, 2413, 2425, 2425, 2437, 2438,
- 2446, 2453, 2454, 2455, 2456, 2457, 2461, 2462, 2463, 2464
+ 0, 1170, 1170, 1174, 1175, 1179, 1180, 1181, 1187, 1193,
+ 1194, 1195, 1196, 1200, 1201, 1210, 1216, 1224, 1236, 1249,
+ 1249, 1258, 1258, 1265, 1265, 1274, 1275, 1279, 1280, 1284,
+ 1285, 1286, 1287, 1288, 1289, 1290, 1293, 1293, 1302, 1301,
+ 1314, 1318, 1331, 1335, 1339, 1339, 1351, 1353, 1357, 1372,
+ 1376, 1381, 1385, 1389, 1380, 1401, 1402, 1403, 1416, 1416,
+ 1420, 1446, 1450, 1456, 1465, 1471, 1480, 1486, 1495, 1501,
+ 1510, 1518, 1523, 1534, 1537, 1542, 1550, 1551, 1552, 1553,
+ 1554, 1565, 1576, 1579, 1581, 1586, 1585, 1618, 1619, 1623,
+ 1624, 1628, 1629, 1633, 1634, 1638, 1639, 1640, 1641, 1642,
+ 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1655,
+ 1660, 1664, 1669, 1673, 1677, 1682, 1691, 1692, 1696, 1701,
+ 1702, 1710, 1711, 1711, 1726, 1727, 1731, 1732, 1733, 1734,
+ 1735, 1736, 1737, 1738, 1743, 1743, 1746, 1754, 1754, 1760,
+ 1761, 1766, 1774, 1775, 1780, 1788, 1792, 1797, 1796, 1809,
+ 1810, 1814, 1815, 1825, 1830, 1840, 1849, 1850, 1862, 1866,
+ 1868, 1869, 1870, 1871, 1872, 1876, 1877, 1881, 1882, 1886,
+ 1897, 1898, 1909, 1916, 1925, 1935, 1936, 1941, 1942, 1943,
+ 1943, 1959, 1976, 1989, 1989, 1996, 1997, 1997, 2003, 2009,
+ 2013, 2025, 2026, 2027, 2028, 2029, 2030, 2034, 2035, 2036,
+ 2037, 2041, 2054, 2056, 2058, 2060, 2062, 2067, 2070, 2077,
+ 2076, 2085, 2086, 2087, 2088, 2096, 2097, 2098, 2102, 2103,
+ 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113,
+ 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123,
+ 2124, 2130, 2129, 2141, 2146, 2147, 2148, 2149, 2150, 2151,
+ 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2163, 2174, 2175,
+ 2176, 2177, 2183, 2197, 2203, 2209, 2215, 2214, 2223, 2224,
+ 2234, 2244, 2251, 2256, 2266, 2270, 2271, 2275, 2276, 2277,
+ 2280, 2281, 2285, 2289, 2299, 2305, 2315, 2320, 2324, 2325,
+ 2329, 2333, 2337, 2344, 2348, 2352, 2359, 2360, 2364, 2365,
+ 2366, 2367, 2368, 2369, 2373, 2374, 2378, 2379, 2383, 2384,
+ 2388, 2389, 2396, 2403, 2404, 2405, 2409, 2410, 2414, 2415,
+ 2419, 2420, 2424, 2425, 2429, 2429, 2441, 2441, 2453, 2454,
+ 2462, 2469, 2470, 2471, 2472, 2473, 2477, 2478, 2479, 2480
};
#endif
@@ -3240,28 +3256,28 @@
case 2:
/* Line 1455 of yacc.c */
-#line 1154 "compilers/imcc/imcc.y"
+#line 1170 "compilers/imcc/imcc.y"
{ if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
/* Line 1455 of yacc.c */
-#line 1163 "compilers/imcc/imcc.y"
+#line 1179 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
/* Line 1455 of yacc.c */
-#line 1164 "compilers/imcc/imcc.y"
+#line 1180 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
/* Line 1455 of yacc.c */
-#line 1166 "compilers/imcc/imcc.y"
+#line 1182 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3272,7 +3288,7 @@
case 8:
/* Line 1455 of yacc.c */
-#line 1172 "compilers/imcc/imcc.y"
+#line 1188 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3283,42 +3299,42 @@
case 9:
/* Line 1455 of yacc.c */
-#line 1177 "compilers/imcc/imcc.y"
+#line 1193 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 10:
/* Line 1455 of yacc.c */
-#line 1178 "compilers/imcc/imcc.y"
+#line 1194 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 11:
/* Line 1455 of yacc.c */
-#line 1179 "compilers/imcc/imcc.y"
+#line 1195 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 12:
/* Line 1455 of yacc.c */
-#line 1180 "compilers/imcc/imcc.y"
+#line 1196 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 13:
/* Line 1455 of yacc.c */
-#line 1184 "compilers/imcc/imcc.y"
+#line 1200 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 14:
/* Line 1455 of yacc.c */
-#line 1186 "compilers/imcc/imcc.y"
+#line 1202 "compilers/imcc/imcc.y"
{
(yyval.i) = 0;
do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -3329,7 +3345,7 @@
case 15:
/* Line 1455 of yacc.c */
-#line 1195 "compilers/imcc/imcc.y"
+#line 1211 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
/* set_filename() frees the STRINGC */
@@ -3340,7 +3356,7 @@
case 16:
/* Line 1455 of yacc.c */
-#line 1201 "compilers/imcc/imcc.y"
+#line 1217 "compilers/imcc/imcc.y"
{
/* set_filename() frees the STRINGC */
set_filename(interp, (yyvsp[(2) - (3)].s));
@@ -3350,7 +3366,7 @@
case 17:
/* Line 1455 of yacc.c */
-#line 1209 "compilers/imcc/imcc.y"
+#line 1225 "compilers/imcc/imcc.y"
{
/* We'll want to store an entry while emitting instructions, so just
* store annotation like it's an instruction. */
@@ -3363,7 +3379,7 @@
case 18:
/* Line 1455 of yacc.c */
-#line 1221 "compilers/imcc/imcc.y"
+#line 1237 "compilers/imcc/imcc.y"
{
STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp),
@@ -3378,14 +3394,14 @@
case 19:
/* Line 1455 of yacc.c */
-#line 1233 "compilers/imcc/imcc.y"
+#line 1249 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 20:
/* Line 1455 of yacc.c */
-#line 1234 "compilers/imcc/imcc.y"
+#line 1250 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
mem_sys_free((yyvsp[(4) - (6)].s));
@@ -3396,14 +3412,14 @@
case 21:
/* Line 1455 of yacc.c */
-#line 1242 "compilers/imcc/imcc.y"
+#line 1258 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 22:
/* Line 1455 of yacc.c */
-#line 1243 "compilers/imcc/imcc.y"
+#line 1259 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
mem_sys_free((yyvsp[(6) - (6)].s));
@@ -3414,14 +3430,14 @@
case 23:
/* Line 1455 of yacc.c */
-#line 1249 "compilers/imcc/imcc.y"
+#line 1265 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 24:
/* Line 1455 of yacc.c */
-#line 1250 "compilers/imcc/imcc.y"
+#line 1266 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
mem_sys_free((yyvsp[(3) - (6)].s));
@@ -3433,49 +3449,49 @@
case 29:
/* Line 1455 of yacc.c */
-#line 1268 "compilers/imcc/imcc.y"
+#line 1284 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 30:
/* Line 1455 of yacc.c */
-#line 1269 "compilers/imcc/imcc.y"
+#line 1285 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 31:
/* Line 1455 of yacc.c */
-#line 1270 "compilers/imcc/imcc.y"
+#line 1286 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 32:
/* Line 1455 of yacc.c */
-#line 1271 "compilers/imcc/imcc.y"
+#line 1287 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 33:
/* Line 1455 of yacc.c */
-#line 1272 "compilers/imcc/imcc.y"
+#line 1288 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
/* Line 1455 of yacc.c */
-#line 1277 "compilers/imcc/imcc.y"
+#line 1293 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 37:
/* Line 1455 of yacc.c */
-#line 1279 "compilers/imcc/imcc.y"
+#line 1295 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
(yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3487,7 +3503,7 @@
case 38:
/* Line 1455 of yacc.c */
-#line 1286 "compilers/imcc/imcc.y"
+#line 1302 "compilers/imcc/imcc.y"
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3497,7 +3513,7 @@
case 39:
/* Line 1455 of yacc.c */
-#line 1291 "compilers/imcc/imcc.y"
+#line 1307 "compilers/imcc/imcc.y"
{
(yyval.i) = iSUBROUTINE(interp,
IMCC_INFO(interp)->cur_unit,
@@ -3510,7 +3526,7 @@
case 40:
/* Line 1455 of yacc.c */
-#line 1299 "compilers/imcc/imcc.y"
+#line 1315 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
}
@@ -3519,7 +3535,7 @@
case 41:
/* Line 1455 of yacc.c */
-#line 1303 "compilers/imcc/imcc.y"
+#line 1319 "compilers/imcc/imcc.y"
{
char *name = mem_sys_strdup((yyvsp[(2) - (4)].s) + 1);
SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
@@ -3537,21 +3553,21 @@
case 42:
/* Line 1455 of yacc.c */
-#line 1315 "compilers/imcc/imcc.y"
+#line 1331 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 44:
/* Line 1455 of yacc.c */
-#line 1323 "compilers/imcc/imcc.y"
+#line 1339 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
/* Line 1455 of yacc.c */
-#line 1326 "compilers/imcc/imcc.y"
+#line 1342 "compilers/imcc/imcc.y"
{
/* if (optimizer_level & OPT_PASM)
imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3564,7 +3580,7 @@
case 48:
/* Line 1455 of yacc.c */
-#line 1342 "compilers/imcc/imcc.y"
+#line 1358 "compilers/imcc/imcc.y"
{
int re_open = 0;
(yyval.i) = 0;
@@ -3581,7 +3597,7 @@
case 49:
/* Line 1455 of yacc.c */
-#line 1357 "compilers/imcc/imcc.y"
+#line 1373 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(2) - (3)].sr);
}
@@ -3590,14 +3606,14 @@
case 50:
/* Line 1455 of yacc.c */
-#line 1360 "compilers/imcc/imcc.y"
+#line 1376 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 51:
/* Line 1455 of yacc.c */
-#line 1365 "compilers/imcc/imcc.y"
+#line 1381 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
}
@@ -3606,7 +3622,7 @@
case 52:
/* Line 1455 of yacc.c */
-#line 1369 "compilers/imcc/imcc.y"
+#line 1385 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
}
@@ -3615,7 +3631,7 @@
case 53:
/* Line 1455 of yacc.c */
-#line 1373 "compilers/imcc/imcc.y"
+#line 1389 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid) {
@@ -3628,62 +3644,62 @@
case 54:
/* Line 1455 of yacc.c */
-#line 1381 "compilers/imcc/imcc.y"
+#line 1397 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 55:
/* Line 1455 of yacc.c */
-#line 1385 "compilers/imcc/imcc.y"
+#line 1401 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 56:
/* Line 1455 of yacc.c */
-#line 1386 "compilers/imcc/imcc.y"
+#line 1402 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 57:
/* Line 1455 of yacc.c */
-#line 1388 "compilers/imcc/imcc.y"
+#line 1404 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_param(IMCC_INFO(interp)->cur_call,
+ add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
IMCC_INFO(interp)->adv_named_id, (yyvsp[(2) - (3)].sr));
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
+ add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 58:
/* Line 1455 of yacc.c */
-#line 1400 "compilers/imcc/imcc.y"
+#line 1416 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 59:
/* Line 1455 of yacc.c */
-#line 1400 "compilers/imcc/imcc.y"
+#line 1416 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
break;
case 60:
/* Line 1455 of yacc.c */
-#line 1405 "compilers/imcc/imcc.y"
+#line 1421 "compilers/imcc/imcc.y"
{
if ((yyvsp[(3) - (3)].t) & VT_UNIQUE_REG)
(yyval.sr) = mk_ident_ur(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
else if ((yyvsp[(3) - (3)].t) & VT_OPT_FLAG && (yyvsp[(1) - (3)].t) != 'I') {
- char *type;
+ const char *type;
switch ((yyvsp[(1) - (3)].t)) {
case 'N': type = "num"; break;
case 'S': type = "string"; break;
@@ -3704,14 +3720,14 @@
case 61:
/* Line 1455 of yacc.c */
-#line 1430 "compilers/imcc/imcc.y"
+#line 1446 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 62:
/* Line 1455 of yacc.c */
-#line 1435 "compilers/imcc/imcc.y"
+#line 1451 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3722,7 +3738,7 @@
case 63:
/* Line 1455 of yacc.c */
-#line 1441 "compilers/imcc/imcc.y"
+#line 1457 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3733,7 +3749,7 @@
case 64:
/* Line 1455 of yacc.c */
-#line 1450 "compilers/imcc/imcc.y"
+#line 1466 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
@@ -3744,7 +3760,7 @@
case 65:
/* Line 1455 of yacc.c */
-#line 1456 "compilers/imcc/imcc.y"
+#line 1472 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
@@ -3755,7 +3771,7 @@
case 66:
/* Line 1455 of yacc.c */
-#line 1465 "compilers/imcc/imcc.y"
+#line 1481 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = NULL;
@@ -3766,7 +3782,7 @@
case 67:
/* Line 1455 of yacc.c */
-#line 1471 "compilers/imcc/imcc.y"
+#line 1487 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
@@ -3777,7 +3793,7 @@
case 68:
/* Line 1455 of yacc.c */
-#line 1480 "compilers/imcc/imcc.y"
+#line 1496 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
@@ -3788,7 +3804,7 @@
case 69:
/* Line 1455 of yacc.c */
-#line 1486 "compilers/imcc/imcc.y"
+#line 1502 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3799,7 +3815,7 @@
case 70:
/* Line 1455 of yacc.c */
-#line 1495 "compilers/imcc/imcc.y"
+#line 1511 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3809,7 +3825,7 @@
case 71:
/* Line 1455 of yacc.c */
-#line 1503 "compilers/imcc/imcc.y"
+#line 1519 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3819,7 +3835,7 @@
case 72:
/* Line 1455 of yacc.c */
-#line 1508 "compilers/imcc/imcc.y"
+#line 1524 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3831,64 +3847,64 @@
case 73:
/* Line 1455 of yacc.c */
-#line 1518 "compilers/imcc/imcc.y"
+#line 1534 "compilers/imcc/imcc.y"
{
- add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
+ add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
}
break;
case 74:
/* Line 1455 of yacc.c */
-#line 1522 "compilers/imcc/imcc.y"
+#line 1538 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
- add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
+ add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
}
break;
case 75:
/* Line 1455 of yacc.c */
-#line 1527 "compilers/imcc/imcc.y"
+#line 1543 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
- add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
+ add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
}
break;
case 76:
/* Line 1455 of yacc.c */
-#line 1534 "compilers/imcc/imcc.y"
+#line 1550 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 77:
/* Line 1455 of yacc.c */
-#line 1535 "compilers/imcc/imcc.y"
+#line 1551 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 78:
/* Line 1455 of yacc.c */
-#line 1536 "compilers/imcc/imcc.y"
+#line 1552 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 79:
/* Line 1455 of yacc.c */
-#line 1537 "compilers/imcc/imcc.y"
+#line 1553 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 80:
/* Line 1455 of yacc.c */
-#line 1539 "compilers/imcc/imcc.y"
+#line 1555 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3904,7 +3920,7 @@
case 81:
/* Line 1455 of yacc.c */
-#line 1550 "compilers/imcc/imcc.y"
+#line 1566 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3920,14 +3936,14 @@
case 82:
/* Line 1455 of yacc.c */
-#line 1560 "compilers/imcc/imcc.y"
+#line 1576 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 85:
/* Line 1455 of yacc.c */
-#line 1570 "compilers/imcc/imcc.y"
+#line 1586 "compilers/imcc/imcc.y"
{
char name[128];
SymReg *r, *r1;
@@ -3956,112 +3972,112 @@
case 86:
/* Line 1455 of yacc.c */
-#line 1598 "compilers/imcc/imcc.y"
+#line 1614 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 87:
/* Line 1455 of yacc.c */
-#line 1602 "compilers/imcc/imcc.y"
+#line 1618 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 88:
/* Line 1455 of yacc.c */
-#line 1603 "compilers/imcc/imcc.y"
+#line 1619 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 89:
/* Line 1455 of yacc.c */
-#line 1607 "compilers/imcc/imcc.y"
+#line 1623 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 90:
/* Line 1455 of yacc.c */
-#line 1608 "compilers/imcc/imcc.y"
+#line 1624 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 91:
/* Line 1455 of yacc.c */
-#line 1612 "compilers/imcc/imcc.y"
+#line 1628 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 93:
/* Line 1455 of yacc.c */
-#line 1617 "compilers/imcc/imcc.y"
+#line 1633 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 94:
/* Line 1455 of yacc.c */
-#line 1618 "compilers/imcc/imcc.y"
+#line 1634 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 95:
/* Line 1455 of yacc.c */
-#line 1622 "compilers/imcc/imcc.y"
+#line 1638 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 96:
/* Line 1455 of yacc.c */
-#line 1623 "compilers/imcc/imcc.y"
+#line 1639 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 97:
/* Line 1455 of yacc.c */
-#line 1624 "compilers/imcc/imcc.y"
+#line 1640 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 98:
/* Line 1455 of yacc.c */
-#line 1625 "compilers/imcc/imcc.y"
+#line 1641 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 99:
/* Line 1455 of yacc.c */
-#line 1626 "compilers/imcc/imcc.y"
+#line 1642 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 100:
/* Line 1455 of yacc.c */
-#line 1627 "compilers/imcc/imcc.y"
+#line 1643 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 101:
/* Line 1455 of yacc.c */
-#line 1628 "compilers/imcc/imcc.y"
+#line 1644 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 109:
/* Line 1455 of yacc.c */
-#line 1640 "compilers/imcc/imcc.y"
+#line 1656 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4071,7 +4087,7 @@
case 110:
/* Line 1455 of yacc.c */
-#line 1645 "compilers/imcc/imcc.y"
+#line 1661 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
@@ -4080,7 +4096,7 @@
case 111:
/* Line 1455 of yacc.c */
-#line 1649 "compilers/imcc/imcc.y"
+#line 1665 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
@@ -4090,7 +4106,7 @@
case 112:
/* Line 1455 of yacc.c */
-#line 1654 "compilers/imcc/imcc.y"
+#line 1670 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
@@ -4099,7 +4115,7 @@
case 113:
/* Line 1455 of yacc.c */
-#line 1658 "compilers/imcc/imcc.y"
+#line 1674 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
}
@@ -4108,7 +4124,7 @@
case 114:
/* Line 1455 of yacc.c */
-#line 1662 "compilers/imcc/imcc.y"
+#line 1678 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4118,7 +4134,7 @@
case 115:
/* Line 1455 of yacc.c */
-#line 1667 "compilers/imcc/imcc.y"
+#line 1683 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4128,59 +4144,59 @@
case 116:
/* Line 1455 of yacc.c */
-#line 1675 "compilers/imcc/imcc.y"
+#line 1691 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 117:
/* Line 1455 of yacc.c */
-#line 1676 "compilers/imcc/imcc.y"
- { add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
+#line 1692 "compilers/imcc/imcc.y"
+ { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
break;
case 118:
/* Line 1455 of yacc.c */
-#line 1680 "compilers/imcc/imcc.y"
+#line 1696 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 119:
/* Line 1455 of yacc.c */
-#line 1685 "compilers/imcc/imcc.y"
+#line 1701 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 120:
/* Line 1455 of yacc.c */
-#line 1687 "compilers/imcc/imcc.y"
+#line 1703 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
- add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 121:
/* Line 1455 of yacc.c */
-#line 1694 "compilers/imcc/imcc.y"
+#line 1710 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 122:
/* Line 1455 of yacc.c */
-#line 1695 "compilers/imcc/imcc.y"
+#line 1711 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 123:
/* Line 1455 of yacc.c */
-#line 1696 "compilers/imcc/imcc.y"
+#line 1712 "compilers/imcc/imcc.y"
{
IdList * const l = (yyvsp[(4) - (4)].idlist);
SymReg *ignored;
@@ -4197,91 +4213,91 @@
case 124:
/* Line 1455 of yacc.c */
-#line 1710 "compilers/imcc/imcc.y"
+#line 1726 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 125:
/* Line 1455 of yacc.c */
-#line 1711 "compilers/imcc/imcc.y"
+#line 1727 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 126:
/* Line 1455 of yacc.c */
-#line 1715 "compilers/imcc/imcc.y"
+#line 1731 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 127:
/* Line 1455 of yacc.c */
-#line 1716 "compilers/imcc/imcc.y"
+#line 1732 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 128:
/* Line 1455 of yacc.c */
-#line 1717 "compilers/imcc/imcc.y"
+#line 1733 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 129:
/* Line 1455 of yacc.c */
-#line 1718 "compilers/imcc/imcc.y"
+#line 1734 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 130:
/* Line 1455 of yacc.c */
-#line 1719 "compilers/imcc/imcc.y"
+#line 1735 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 131:
/* Line 1455 of yacc.c */
-#line 1720 "compilers/imcc/imcc.y"
+#line 1736 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 132:
/* Line 1455 of yacc.c */
-#line 1721 "compilers/imcc/imcc.y"
+#line 1737 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_UNIQUE_REG; }
break;
case 133:
/* Line 1455 of yacc.c */
-#line 1722 "compilers/imcc/imcc.y"
+#line 1738 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 134:
/* Line 1455 of yacc.c */
-#line 1727 "compilers/imcc/imcc.y"
+#line 1743 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 135:
/* Line 1455 of yacc.c */
-#line 1729 "compilers/imcc/imcc.y"
+#line 1745 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 136:
/* Line 1455 of yacc.c */
-#line 1731 "compilers/imcc/imcc.y"
+#line 1747 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.i) = 0;
@@ -4291,89 +4307,89 @@
case 137:
/* Line 1455 of yacc.c */
-#line 1738 "compilers/imcc/imcc.y"
+#line 1754 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 138:
/* Line 1455 of yacc.c */
-#line 1740 "compilers/imcc/imcc.y"
+#line 1756 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 139:
/* Line 1455 of yacc.c */
-#line 1744 "compilers/imcc/imcc.y"
+#line 1760 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 140:
/* Line 1455 of yacc.c */
-#line 1746 "compilers/imcc/imcc.y"
+#line 1762 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
- add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
}
break;
case 141:
/* Line 1455 of yacc.c */
-#line 1751 "compilers/imcc/imcc.y"
+#line 1767 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
- add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
}
break;
case 142:
/* Line 1455 of yacc.c */
-#line 1758 "compilers/imcc/imcc.y"
+#line 1774 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 143:
/* Line 1455 of yacc.c */
-#line 1760 "compilers/imcc/imcc.y"
+#line 1776 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
- add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
}
break;
case 144:
/* Line 1455 of yacc.c */
-#line 1765 "compilers/imcc/imcc.y"
+#line 1781 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
- add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
}
break;
case 145:
/* Line 1455 of yacc.c */
-#line 1772 "compilers/imcc/imcc.y"
+#line 1788 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 146:
/* Line 1455 of yacc.c */
-#line 1776 "compilers/imcc/imcc.y"
+#line 1792 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 147:
/* Line 1455 of yacc.c */
-#line 1781 "compilers/imcc/imcc.y"
+#line 1797 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -4383,7 +4399,7 @@
case 148:
/* Line 1455 of yacc.c */
-#line 1786 "compilers/imcc/imcc.y"
+#line 1802 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.t) = 0;
@@ -4393,134 +4409,134 @@
case 149:
/* Line 1455 of yacc.c */
-#line 1793 "compilers/imcc/imcc.y"
+#line 1809 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 150:
/* Line 1455 of yacc.c */
-#line 1794 "compilers/imcc/imcc.y"
+#line 1810 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 151:
/* Line 1455 of yacc.c */
-#line 1798 "compilers/imcc/imcc.y"
+#line 1814 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 152:
/* Line 1455 of yacc.c */
-#line 1800 "compilers/imcc/imcc.y"
+#line 1816 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_return(IMCC_INFO(interp)->sr_return,
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
IMCC_INFO(interp)->adv_named_id, (yyvsp[(1) - (1)].sr));
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (1)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (1)].sr));
}
break;
case 153:
/* Line 1455 of yacc.c */
-#line 1810 "compilers/imcc/imcc.y"
+#line 1826 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
- add_pcc_named_return(IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
}
break;
case 154:
/* Line 1455 of yacc.c */
-#line 1815 "compilers/imcc/imcc.y"
+#line 1831 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_return(IMCC_INFO(interp)->sr_return,
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
IMCC_INFO(interp)->adv_named_id, (yyvsp[(3) - (3)].sr));
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (3)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (3)].sr));
}
break;
case 155:
/* Line 1455 of yacc.c */
-#line 1825 "compilers/imcc/imcc.y"
+#line 1841 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
- add_pcc_named_return(IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
+ add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
}
break;
case 158:
/* Line 1455 of yacc.c */
-#line 1846 "compilers/imcc/imcc.y"
+#line 1862 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 159:
/* Line 1455 of yacc.c */
-#line 1851 "compilers/imcc/imcc.y"
+#line 1867 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 160:
/* Line 1455 of yacc.c */
-#line 1852 "compilers/imcc/imcc.y"
+#line 1868 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 161:
/* Line 1455 of yacc.c */
-#line 1853 "compilers/imcc/imcc.y"
+#line 1869 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 162:
/* Line 1455 of yacc.c */
-#line 1854 "compilers/imcc/imcc.y"
+#line 1870 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 163:
/* Line 1455 of yacc.c */
-#line 1855 "compilers/imcc/imcc.y"
+#line 1871 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 164:
/* Line 1455 of yacc.c */
-#line 1856 "compilers/imcc/imcc.y"
+#line 1872 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 165:
/* Line 1455 of yacc.c */
-#line 1860 "compilers/imcc/imcc.y"
+#line 1876 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 169:
/* Line 1455 of yacc.c */
-#line 1871 "compilers/imcc/imcc.y"
+#line 1887 "compilers/imcc/imcc.y"
{
Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
mem_sys_free((yyvsp[(1) - (1)].s));
@@ -4531,14 +4547,14 @@
case 170:
/* Line 1455 of yacc.c */
-#line 1881 "compilers/imcc/imcc.y"
+#line 1897 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 171:
/* Line 1455 of yacc.c */
-#line 1883 "compilers/imcc/imcc.y"
+#line 1899 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -4551,7 +4567,7 @@
case 172:
/* Line 1455 of yacc.c */
-#line 1894 "compilers/imcc/imcc.y"
+#line 1910 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(1) - (1)].idlist);
l->next = NULL;
@@ -4562,7 +4578,7 @@
case 173:
/* Line 1455 of yacc.c */
-#line 1901 "compilers/imcc/imcc.y"
+#line 1917 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(3) - (3)].idlist);
l->next = (yyvsp[(1) - (3)].idlist);
@@ -4573,9 +4589,9 @@
case 174:
/* Line 1455 of yacc.c */
-#line 1910 "compilers/imcc/imcc.y"
+#line 1926 "compilers/imcc/imcc.y"
{
- IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
+ IdList* const l = mem_gc_allocate_n_zeroed_typed(interp, 1, IdList);
l->id = (yyvsp[(1) - (2)].s);
l->unique_reg = (yyvsp[(2) - (2)].t);
(yyval.idlist) = l;
@@ -4585,28 +4601,28 @@
case 175:
/* Line 1455 of yacc.c */
-#line 1919 "compilers/imcc/imcc.y"
+#line 1935 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 176:
/* Line 1455 of yacc.c */
-#line 1920 "compilers/imcc/imcc.y"
+#line 1936 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 179:
/* Line 1455 of yacc.c */
-#line 1927 "compilers/imcc/imcc.y"
+#line 1943 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 180:
/* Line 1455 of yacc.c */
-#line 1928 "compilers/imcc/imcc.y"
+#line 1944 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
while (l) {
@@ -4627,7 +4643,7 @@
case 181:
/* Line 1455 of yacc.c */
-#line 1944 "compilers/imcc/imcc.y"
+#line 1960 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
mem_sys_free((yyvsp[(2) - (4)].s));
@@ -4649,7 +4665,7 @@
case 182:
/* Line 1455 of yacc.c */
-#line 1961 "compilers/imcc/imcc.y"
+#line 1977 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
mem_sys_free((yyvsp[(2) - (4)].s));
@@ -4667,14 +4683,14 @@
case 183:
/* Line 1455 of yacc.c */
-#line 1973 "compilers/imcc/imcc.y"
+#line 1989 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 184:
/* Line 1455 of yacc.c */
-#line 1974 "compilers/imcc/imcc.y"
+#line 1990 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
IMCC_INFO(interp)->is_def = 0;
@@ -4685,14 +4701,14 @@
case 186:
/* Line 1455 of yacc.c */
-#line 1981 "compilers/imcc/imcc.y"
+#line 1997 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 187:
/* Line 1455 of yacc.c */
-#line 1982 "compilers/imcc/imcc.y"
+#line 1998 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
IMCC_INFO(interp)->is_def = 0;
@@ -4703,7 +4719,7 @@
case 188:
/* Line 1455 of yacc.c */
-#line 1988 "compilers/imcc/imcc.y"
+#line 2004 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
@@ -4714,7 +4730,7 @@
case 189:
/* Line 1455 of yacc.c */
-#line 1994 "compilers/imcc/imcc.y"
+#line 2010 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
}
@@ -4723,7 +4739,7 @@
case 190:
/* Line 1455 of yacc.c */
-#line 1998 "compilers/imcc/imcc.y"
+#line 2014 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
IMCC_INFO(interp)->cur_unit,
@@ -4740,67 +4756,67 @@
case 191:
/* Line 1455 of yacc.c */
-#line 2009 "compilers/imcc/imcc.y"
+#line 2025 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 192:
/* Line 1455 of yacc.c */
-#line 2010 "compilers/imcc/imcc.y"
+#line 2026 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 193:
/* Line 1455 of yacc.c */
-#line 2011 "compilers/imcc/imcc.y"
+#line 2027 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 196:
/* Line 1455 of yacc.c */
-#line 2014 "compilers/imcc/imcc.y"
+#line 2030 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 197:
/* Line 1455 of yacc.c */
-#line 2018 "compilers/imcc/imcc.y"
+#line 2034 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 198:
/* Line 1455 of yacc.c */
-#line 2019 "compilers/imcc/imcc.y"
+#line 2035 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 199:
/* Line 1455 of yacc.c */
-#line 2020 "compilers/imcc/imcc.y"
+#line 2036 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 200:
/* Line 1455 of yacc.c */
-#line 2021 "compilers/imcc/imcc.y"
+#line 2037 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 201:
/* Line 1455 of yacc.c */
-#line 2026 "compilers/imcc/imcc.y"
+#line 2042 "compilers/imcc/imcc.y"
{
/* there'd normally be a mem_sys_strdup() here, but the lexer already
* copied the string, so it's safe to use directly */
- if ((IMCC_INFO(interp)->cur_pmc_type = pmc_type(interp,
+ if ((IMCC_INFO(interp)->cur_pmc_type = Parrot_pmc_get_type_str(interp,
Parrot_str_new(interp, (yyvsp[(1) - (1)].s), 0))) <= 0) {
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
"Unknown PMC type '%s'\n", (yyvsp[(1) - (1)].s));
@@ -4811,51 +4827,51 @@
case 202:
/* Line 1455 of yacc.c */
-#line 2039 "compilers/imcc/imcc.y"
+#line 2055 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 203:
/* Line 1455 of yacc.c */
-#line 2041 "compilers/imcc/imcc.y"
+#line 2057 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 204:
/* Line 1455 of yacc.c */
-#line 2043 "compilers/imcc/imcc.y"
+#line 2059 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
break;
case 205:
/* Line 1455 of yacc.c */
-#line 2045 "compilers/imcc/imcc.y"
+#line 2061 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
break;
case 206:
/* Line 1455 of yacc.c */
-#line 2047 "compilers/imcc/imcc.y"
+#line 2063 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 207:
/* Line 1455 of yacc.c */
-#line 2052 "compilers/imcc/imcc.y"
+#line 2068 "compilers/imcc/imcc.y"
{ (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
break;
case 208:
/* Line 1455 of yacc.c */
-#line 2055 "compilers/imcc/imcc.y"
+#line 2071 "compilers/imcc/imcc.y"
{
- add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
+ add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
IMCC_INFO(interp)->cur_call = NULL;
(yyval.i) = 0;
}
@@ -4864,7 +4880,7 @@
case 209:
/* Line 1455 of yacc.c */
-#line 2061 "compilers/imcc/imcc.y"
+#line 2077 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
}
@@ -4873,7 +4889,7 @@
case 210:
/* Line 1455 of yacc.c */
-#line 2065 "compilers/imcc/imcc.y"
+#line 2081 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4883,7 +4899,7 @@
case 214:
/* Line 1455 of yacc.c */
-#line 2073 "compilers/imcc/imcc.y"
+#line 2089 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
}
@@ -4892,189 +4908,189 @@
case 215:
/* Line 1455 of yacc.c */
-#line 2080 "compilers/imcc/imcc.y"
+#line 2096 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 216:
/* Line 1455 of yacc.c */
-#line 2081 "compilers/imcc/imcc.y"
+#line 2097 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 217:
/* Line 1455 of yacc.c */
-#line 2082 "compilers/imcc/imcc.y"
+#line 2098 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 218:
/* Line 1455 of yacc.c */
-#line 2086 "compilers/imcc/imcc.y"
+#line 2102 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 219:
/* Line 1455 of yacc.c */
-#line 2087 "compilers/imcc/imcc.y"
+#line 2103 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 220:
/* Line 1455 of yacc.c */
-#line 2088 "compilers/imcc/imcc.y"
+#line 2104 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 221:
/* Line 1455 of yacc.c */
-#line 2089 "compilers/imcc/imcc.y"
+#line 2105 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 222:
/* Line 1455 of yacc.c */
-#line 2090 "compilers/imcc/imcc.y"
+#line 2106 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 223:
/* Line 1455 of yacc.c */
-#line 2091 "compilers/imcc/imcc.y"
+#line 2107 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 224:
/* Line 1455 of yacc.c */
-#line 2092 "compilers/imcc/imcc.y"
+#line 2108 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 225:
/* Line 1455 of yacc.c */
-#line 2093 "compilers/imcc/imcc.y"
+#line 2109 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 226:
/* Line 1455 of yacc.c */
-#line 2094 "compilers/imcc/imcc.y"
+#line 2110 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 227:
/* Line 1455 of yacc.c */
-#line 2095 "compilers/imcc/imcc.y"
+#line 2111 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 228:
/* Line 1455 of yacc.c */
-#line 2096 "compilers/imcc/imcc.y"
+#line 2112 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 229:
/* Line 1455 of yacc.c */
-#line 2097 "compilers/imcc/imcc.y"
+#line 2113 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 230:
/* Line 1455 of yacc.c */
-#line 2098 "compilers/imcc/imcc.y"
+#line 2114 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 231:
/* Line 1455 of yacc.c */
-#line 2099 "compilers/imcc/imcc.y"
+#line 2115 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 232:
/* Line 1455 of yacc.c */
-#line 2100 "compilers/imcc/imcc.y"
+#line 2116 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 233:
/* Line 1455 of yacc.c */
-#line 2101 "compilers/imcc/imcc.y"
+#line 2117 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 234:
/* Line 1455 of yacc.c */
-#line 2102 "compilers/imcc/imcc.y"
+#line 2118 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 235:
/* Line 1455 of yacc.c */
-#line 2103 "compilers/imcc/imcc.y"
+#line 2119 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 236:
/* Line 1455 of yacc.c */
-#line 2104 "compilers/imcc/imcc.y"
+#line 2120 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 237:
/* Line 1455 of yacc.c */
-#line 2105 "compilers/imcc/imcc.y"
+#line 2121 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 238:
/* Line 1455 of yacc.c */
-#line 2106 "compilers/imcc/imcc.y"
+#line 2122 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 239:
/* Line 1455 of yacc.c */
-#line 2107 "compilers/imcc/imcc.y"
+#line 2123 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 240:
/* Line 1455 of yacc.c */
-#line 2108 "compilers/imcc/imcc.y"
+#line 2124 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 241:
/* Line 1455 of yacc.c */
-#line 2114 "compilers/imcc/imcc.y"
+#line 2130 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
(yyval.i)->type &= ~ITCALL;
@@ -5085,112 +5101,112 @@
case 242:
/* Line 1455 of yacc.c */
-#line 2119 "compilers/imcc/imcc.y"
+#line 2135 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 243:
/* Line 1455 of yacc.c */
-#line 2126 "compilers/imcc/imcc.y"
+#line 2142 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 244:
/* Line 1455 of yacc.c */
-#line 2130 "compilers/imcc/imcc.y"
+#line 2146 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 245:
/* Line 1455 of yacc.c */
-#line 2131 "compilers/imcc/imcc.y"
+#line 2147 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 246:
/* Line 1455 of yacc.c */
-#line 2132 "compilers/imcc/imcc.y"
+#line 2148 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 247:
/* Line 1455 of yacc.c */
-#line 2133 "compilers/imcc/imcc.y"
+#line 2149 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 248:
/* Line 1455 of yacc.c */
-#line 2134 "compilers/imcc/imcc.y"
+#line 2150 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 249:
/* Line 1455 of yacc.c */
-#line 2135 "compilers/imcc/imcc.y"
+#line 2151 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 250:
/* Line 1455 of yacc.c */
-#line 2136 "compilers/imcc/imcc.y"
+#line 2152 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 251:
/* Line 1455 of yacc.c */
-#line 2137 "compilers/imcc/imcc.y"
+#line 2153 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 252:
/* Line 1455 of yacc.c */
-#line 2138 "compilers/imcc/imcc.y"
+#line 2154 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 253:
/* Line 1455 of yacc.c */
-#line 2139 "compilers/imcc/imcc.y"
+#line 2155 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 254:
/* Line 1455 of yacc.c */
-#line 2140 "compilers/imcc/imcc.y"
+#line 2156 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 255:
/* Line 1455 of yacc.c */
-#line 2141 "compilers/imcc/imcc.y"
+#line 2157 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 256:
/* Line 1455 of yacc.c */
-#line 2142 "compilers/imcc/imcc.y"
+#line 2158 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 257:
/* Line 1455 of yacc.c */
-#line 2148 "compilers/imcc/imcc.y"
+#line 2164 "compilers/imcc/imcc.y"
{
(yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
IMCC_INFO(interp) -> regs,
@@ -5203,28 +5219,28 @@
case 258:
/* Line 1455 of yacc.c */
-#line 2158 "compilers/imcc/imcc.y"
+#line 2174 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 259:
/* Line 1455 of yacc.c */
-#line 2159 "compilers/imcc/imcc.y"
+#line 2175 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 260:
/* Line 1455 of yacc.c */
-#line 2160 "compilers/imcc/imcc.y"
+#line 2176 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 261:
/* Line 1455 of yacc.c */
-#line 2162 "compilers/imcc/imcc.y"
+#line 2178 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -5235,7 +5251,7 @@
case 262:
/* Line 1455 of yacc.c */
-#line 2168 "compilers/imcc/imcc.y"
+#line 2184 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
const char * const name = (yyvsp[(3) - (3)].sr)->name;
@@ -5254,7 +5270,7 @@
case 263:
/* Line 1455 of yacc.c */
-#line 2182 "compilers/imcc/imcc.y"
+#line 2198 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
@@ -5265,7 +5281,7 @@
case 264:
/* Line 1455 of yacc.c */
-#line 2188 "compilers/imcc/imcc.y"
+#line 2204 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -5276,14 +5292,14 @@
case 265:
/* Line 1455 of yacc.c */
-#line 2193 "compilers/imcc/imcc.y"
+#line 2209 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 266:
/* Line 1455 of yacc.c */
-#line 2199 "compilers/imcc/imcc.y"
+#line 2215 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -5293,54 +5309,54 @@
case 267:
/* Line 1455 of yacc.c */
-#line 2203 "compilers/imcc/imcc.y"
+#line 2219 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 268:
/* Line 1455 of yacc.c */
-#line 2207 "compilers/imcc/imcc.y"
+#line 2223 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 269:
/* Line 1455 of yacc.c */
-#line 2209 "compilers/imcc/imcc.y"
+#line 2225 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(3) - (3)].sr));
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(3) - (3)].sr));
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
+ add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
}
break;
case 270:
/* Line 1455 of yacc.c */
-#line 2219 "compilers/imcc/imcc.y"
+#line 2235 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(1) - (1)].sr));
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(1) - (1)].sr));
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
+ add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
}
break;
case 271:
/* Line 1455 of yacc.c */
-#line 2229 "compilers/imcc/imcc.y"
+#line 2245 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call,
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
mem_sys_free((yyvsp[(3) - (5)].s));
}
@@ -5349,20 +5365,20 @@
case 272:
/* Line 1455 of yacc.c */
-#line 2236 "compilers/imcc/imcc.y"
+#line 2252 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
- add_pcc_named_arg_var(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
+ add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
}
break;
case 273:
/* Line 1455 of yacc.c */
-#line 2241 "compilers/imcc/imcc.y"
+#line 2257 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
- add_pcc_named_arg(IMCC_INFO(interp)->cur_call,
+ add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
mem_sys_free((yyvsp[(1) - (3)].s));
}
@@ -5371,88 +5387,88 @@
case 274:
/* Line 1455 of yacc.c */
-#line 2250 "compilers/imcc/imcc.y"
+#line 2266 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 275:
/* Line 1455 of yacc.c */
-#line 2254 "compilers/imcc/imcc.y"
+#line 2270 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 276:
/* Line 1455 of yacc.c */
-#line 2255 "compilers/imcc/imcc.y"
+#line 2271 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 277:
/* Line 1455 of yacc.c */
-#line 2259 "compilers/imcc/imcc.y"
+#line 2275 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 278:
/* Line 1455 of yacc.c */
-#line 2260 "compilers/imcc/imcc.y"
+#line 2276 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 279:
/* Line 1455 of yacc.c */
-#line 2261 "compilers/imcc/imcc.y"
+#line 2277 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 280:
/* Line 1455 of yacc.c */
-#line 2264 "compilers/imcc/imcc.y"
+#line 2280 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 281:
/* Line 1455 of yacc.c */
-#line 2265 "compilers/imcc/imcc.y"
+#line 2281 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 282:
/* Line 1455 of yacc.c */
-#line 2269 "compilers/imcc/imcc.y"
+#line 2285 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 283:
/* Line 1455 of yacc.c */
-#line 2274 "compilers/imcc/imcc.y"
+#line 2290 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_result(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(3) - (3)].sr));
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(3) - (3)].sr));
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
}
break;
case 284:
/* Line 1455 of yacc.c */
-#line 2284 "compilers/imcc/imcc.y"
+#line 2300 "compilers/imcc/imcc.y"
{
- add_pcc_named_result(IMCC_INFO(interp)->cur_call,
- mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
+ mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
mem_sys_free((yyvsp[(3) - (5)].s));
}
break;
@@ -5460,24 +5476,24 @@
case 285:
/* Line 1455 of yacc.c */
-#line 2290 "compilers/imcc/imcc.y"
+#line 2306 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
- add_pcc_named_result(IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(1) - (1)].sr));
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, IMCC_INFO(interp)->adv_named_id, (yyvsp[(1) - (1)].sr));
IMCC_INFO(interp)->adv_named_id = NULL;
}
else
- add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
+ add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
}
break;
case 286:
/* Line 1455 of yacc.c */
-#line 2300 "compilers/imcc/imcc.y"
+#line 2316 "compilers/imcc/imcc.y"
{
- add_pcc_named_result(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
+ add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
mem_sys_free((yyvsp[(1) - (3)].s));
}
break;
@@ -5485,28 +5501,28 @@
case 287:
/* Line 1455 of yacc.c */
-#line 2304 "compilers/imcc/imcc.y"
+#line 2320 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 288:
/* Line 1455 of yacc.c */
-#line 2308 "compilers/imcc/imcc.y"
+#line 2324 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 289:
/* Line 1455 of yacc.c */
-#line 2309 "compilers/imcc/imcc.y"
+#line 2325 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 290:
/* Line 1455 of yacc.c */
-#line 2314 "compilers/imcc/imcc.y"
+#line 2330 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
}
@@ -5515,7 +5531,7 @@
case 291:
/* Line 1455 of yacc.c */
-#line 2318 "compilers/imcc/imcc.y"
+#line 2334 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
}
@@ -5524,7 +5540,7 @@
case 292:
/* Line 1455 of yacc.c */
-#line 2322 "compilers/imcc/imcc.y"
+#line 2338 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
}
@@ -5533,7 +5549,7 @@
case 293:
/* Line 1455 of yacc.c */
-#line 2329 "compilers/imcc/imcc.y"
+#line 2345 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
}
@@ -5542,7 +5558,7 @@
case 294:
/* Line 1455 of yacc.c */
-#line 2333 "compilers/imcc/imcc.y"
+#line 2349 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
}
@@ -5551,7 +5567,7 @@
case 295:
/* Line 1455 of yacc.c */
-#line 2337 "compilers/imcc/imcc.y"
+#line 2353 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
}
@@ -5560,91 +5576,91 @@
case 296:
/* Line 1455 of yacc.c */
-#line 2343 "compilers/imcc/imcc.y"
+#line 2359 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 297:
/* Line 1455 of yacc.c */
-#line 2344 "compilers/imcc/imcc.y"
+#line 2360 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 298:
/* Line 1455 of yacc.c */
-#line 2348 "compilers/imcc/imcc.y"
+#line 2364 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
case 299:
/* Line 1455 of yacc.c */
-#line 2349 "compilers/imcc/imcc.y"
+#line 2365 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
case 300:
/* Line 1455 of yacc.c */
-#line 2350 "compilers/imcc/imcc.y"
+#line 2366 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
case 301:
/* Line 1455 of yacc.c */
-#line 2351 "compilers/imcc/imcc.y"
+#line 2367 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
case 302:
/* Line 1455 of yacc.c */
-#line 2352 "compilers/imcc/imcc.y"
+#line 2368 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
case 303:
/* Line 1455 of yacc.c */
-#line 2353 "compilers/imcc/imcc.y"
+#line 2369 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
case 306:
/* Line 1455 of yacc.c */
-#line 2362 "compilers/imcc/imcc.y"
+#line 2378 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 307:
/* Line 1455 of yacc.c */
-#line 2363 "compilers/imcc/imcc.y"
+#line 2379 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 308:
/* Line 1455 of yacc.c */
-#line 2367 "compilers/imcc/imcc.y"
+#line 2383 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 310:
/* Line 1455 of yacc.c */
-#line 2372 "compilers/imcc/imcc.y"
+#line 2388 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 311:
/* Line 1455 of yacc.c */
-#line 2374 "compilers/imcc/imcc.y"
+#line 2390 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
@@ -5656,7 +5672,7 @@
case 312:
/* Line 1455 of yacc.c */
-#line 2381 "compilers/imcc/imcc.y"
+#line 2397 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
(yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -5666,49 +5682,49 @@
case 314:
/* Line 1455 of yacc.c */
-#line 2388 "compilers/imcc/imcc.y"
+#line 2404 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 315:
/* Line 1455 of yacc.c */
-#line 2389 "compilers/imcc/imcc.y"
+#line 2405 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 316:
/* Line 1455 of yacc.c */
-#line 2393 "compilers/imcc/imcc.y"
+#line 2409 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 317:
/* Line 1455 of yacc.c */
-#line 2394 "compilers/imcc/imcc.y"
+#line 2410 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 318:
/* Line 1455 of yacc.c */
-#line 2398 "compilers/imcc/imcc.y"
+#line 2414 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 319:
/* Line 1455 of yacc.c */
-#line 2399 "compilers/imcc/imcc.y"
+#line 2415 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 324:
/* Line 1455 of yacc.c */
-#line 2413 "compilers/imcc/imcc.y"
+#line 2429 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
}
@@ -5717,7 +5733,7 @@
case 325:
/* Line 1455 of yacc.c */
-#line 2417 "compilers/imcc/imcc.y"
+#line 2433 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5728,7 +5744,7 @@
case 326:
/* Line 1455 of yacc.c */
-#line 2425 "compilers/imcc/imcc.y"
+#line 2441 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
}
@@ -5737,7 +5753,7 @@
case 327:
/* Line 1455 of yacc.c */
-#line 2429 "compilers/imcc/imcc.y"
+#line 2445 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5748,14 +5764,14 @@
case 328:
/* Line 1455 of yacc.c */
-#line 2437 "compilers/imcc/imcc.y"
+#line 2453 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 329:
/* Line 1455 of yacc.c */
-#line 2439 "compilers/imcc/imcc.y"
+#line 2455 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -5765,7 +5781,7 @@
case 330:
/* Line 1455 of yacc.c */
-#line 2447 "compilers/imcc/imcc.y"
+#line 2463 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
}
@@ -5774,70 +5790,70 @@
case 331:
/* Line 1455 of yacc.c */
-#line 2453 "compilers/imcc/imcc.y"
+#line 2469 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 332:
/* Line 1455 of yacc.c */
-#line 2454 "compilers/imcc/imcc.y"
+#line 2470 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 333:
/* Line 1455 of yacc.c */
-#line 2455 "compilers/imcc/imcc.y"
+#line 2471 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 334:
/* Line 1455 of yacc.c */
-#line 2456 "compilers/imcc/imcc.y"
+#line 2472 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 335:
/* Line 1455 of yacc.c */
-#line 2457 "compilers/imcc/imcc.y"
+#line 2473 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 336:
/* Line 1455 of yacc.c */
-#line 2461 "compilers/imcc/imcc.y"
+#line 2477 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 337:
/* Line 1455 of yacc.c */
-#line 2462 "compilers/imcc/imcc.y"
+#line 2478 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 338:
/* Line 1455 of yacc.c */
-#line 2463 "compilers/imcc/imcc.y"
+#line 2479 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 339:
/* Line 1455 of yacc.c */
-#line 2464 "compilers/imcc/imcc.y"
+#line 2480 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
/* Line 1455 of yacc.c */
-#line 5830 "compilers/imcc/imcparser.c"
+#line 5846 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -6049,7 +6065,7 @@
/* Line 1675 of yacc.c */
-#line 2470 "compilers/imcc/imcc.y"
+#line 2486 "compilers/imcc/imcc.y"
/* I need this prototype somewhere... */
Modified: branches/ops_pct/compilers/imcc/imcparser.h
==============================================================================
--- branches/ops_pct/compilers/imcc/imcparser.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/imcparser.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -300,7 +300,7 @@
{
/* Line 1676 of yacc.c */
-#line 1059 "compilers/imcc/imcc.y"
+#line 1075 "compilers/imcc/imcc.y"
IdList * idlist;
int t;
Modified: branches/ops_pct/compilers/imcc/instructions.c
==============================================================================
--- branches/ops_pct/compilers/imcc/instructions.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/instructions.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
*/
#include <stdlib.h>
@@ -50,7 +50,7 @@
__attribute__nonnull__(1)
__attribute__nonnull__(4);
-static int e_file_open(PARROT_INTERP, ARGIN(void *param))
+static int e_file_open(PARROT_INTERP, ARGIN(const char *param))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -149,7 +149,7 @@
if (!w_special[0]) {
size_t i;
for (i = 0; i < N_ELEMENTS(writes); i++) {
- const int n = interp->op_lib->op_code(writes[i], 1);
+ const int n = interp->op_lib->op_code(interp, writes[i], 1);
PARROT_ASSERT(n);
w_special[i] = n;
}
@@ -650,9 +650,9 @@
free_ins(ARGMOD(Instruction *ins))
{
ASSERT_ARGS(free_ins)
- free(ins->format);
- free(ins->opname);
- free(ins);
+ mem_sys_free(ins->format);
+ mem_sys_free(ins->opname);
+ mem_sys_free(ins);
}
/*
@@ -785,7 +785,7 @@
/*
-=item C<static int e_file_open(PARROT_INTERP, void *param)>
+=item C<static int e_file_open(PARROT_INTERP, const char *param)>
Prints a message to STDOUT.
@@ -794,19 +794,19 @@
*/
static int
-e_file_open(PARROT_INTERP, ARGIN(void *param))
+e_file_open(PARROT_INTERP, ARGIN(const char *param))
{
ASSERT_ARGS(e_file_open)
- char * const file = (char *) param;
+ DECL_CONST_CAST;
- if (!STREQ(file, "-")) {
- FILE *newfile = freopen(file, "w", stdout);
+ if (!STREQ(param, "-")) {
+ FILE *newfile = freopen(param, "w", stdout);
if (!newfile)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_EXTERNAL_ERROR,
"Cannot reopen stdout: %s'\n", strerror(errno));
}
- output = file;
+ output = PARROT_const_cast(char *, param);
Parrot_io_printf(interp, "# IMCC does produce b0rken PASM files\n");
Parrot_io_printf(interp, "# see http://guest@rt.perl.org/rt3/Ticket/Display.html?id=32392\n");
return 1;
@@ -862,7 +862,7 @@
/*
-=item C<int emit_open(PARROT_INTERP, int type, void *param)>
+=item C<int emit_open(PARROT_INTERP, int type, const char *param)>
Opens the emitter function C<open> of the given C<type>. Passes
the C<param> to the open function.
@@ -873,7 +873,7 @@
PARROT_EXPORT
int
-emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(void *param))
+emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
{
ASSERT_ARGS(emit_open)
IMCC_INFO(interp)->emitter = type;
Modified: branches/ops_pct/compilers/imcc/instructions.h
==============================================================================
--- branches/ops_pct/compilers/imcc/instructions.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/instructions.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
*/
#ifndef PARROT_IMCC_INSTRUCTIONS_H_GUARD
@@ -79,7 +79,7 @@
/* Globals */
typedef struct _emittert {
- int (*open)(PARROT_INTERP, void *param);
+ int (*open)(PARROT_INTERP, const char *param);
int (*emit)(PARROT_INTERP, void *param, const IMC_Unit *, const Instruction *ins);
int (*new_sub)(PARROT_INTERP, void *param, IMC_Unit *);
int (*end_sub)(PARROT_INTERP, void *param, IMC_Unit *);
@@ -103,7 +103,7 @@
__attribute__nonnull__(3);
PARROT_EXPORT
-int emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(void *param))
+int emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
__attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
Modified: branches/ops_pct/compilers/imcc/main.c
==============================================================================
--- branches/ops_pct/compilers/imcc/main.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/main.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -67,8 +67,6 @@
static void do_pre_process(PARROT_INTERP)
__attribute__nonnull__(1);
-static void help(void);
-static void help_debug(void);
static void imcc_get_optimization_description(
const PARROT_INTERP,
int opt_level,
@@ -93,13 +91,6 @@
static int is_all_hex_digits(ARGIN(const char *s))
__attribute__nonnull__(1);
-static void Parrot_version(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-static void usage(ARGMOD(FILE *fp))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*fp);
-
#define ASSERT_ARGS_compile_to_bytecode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(sourcefile))
@@ -112,8 +103,6 @@
, PARROT_ASSERT_ARG(output_file))
#define ASSERT_ARGS_do_pre_process __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_help __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_help_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_imcc_get_optimization_description \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(opt_desc))
@@ -125,198 +114,16 @@
, PARROT_ASSERT_ARG(output_file))
#define ASSERT_ARGS_is_all_hex_digits __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_Parrot_version __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_usage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(fp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
-/*
-
-=item C<static void usage(FILE *fp)>
-
-Outputs usage error message.
-
-=cut
-
-*/
-
-static void
-usage(ARGMOD(FILE *fp))
-{
- ASSERT_ARGS(usage)
- fprintf(fp,
- "parrot -[acEGhprtvVwy.] [-d [FLAGS]] [-D [FLAGS]]"
- "[-O [level]] [-R runcore] [-o FILE] <file>\n");
-}
-
-/*
-
-=item C<static void help_debug(void)>
-
-Print out list of debugging flag values.
-
-=cut
-
-*/
-
-static void
-help_debug(void)
-{
- ASSERT_ARGS(help_debug)
- /* split printf for C89 compliance on string length */
- printf(
- "--imcc-debug -d [Flags] ...\n"
- " 0002 lexer\n"
- " 0004 parser\n"
- " 0008 imc\n"
- " 0010 CFG\n"
- " 0020 optimization 1\n"
- " 0040 optimization 2\n"
- " 0100 AST\n"
- " 1000 PBC\n"
- " 2000 PBC constants\n"
- " 4000 PBC fixups\n"
- "\n");
- printf(
- "--parrot-debug -D [Flags] ...\n"
- " 0001 memory statistics\n"
- " 0002 print backtrace on exception\n"
- " 0004 JIT debugging\n"
- " 0008 interpreter startup\n"
- " 0010 thread debugging\n"
- " 0020 eval/compile\n"
- " 0040 fill I, N registers with garbage\n"
- " 0080 show when a context is destroyed\n"
- "\n"
- "--trace -t [Flags] ...\n"
- " 0001 opcodes\n"
- " 0002 find_method\n"
- " 0004 function calls\n");
-}
-
-/*
-
-=item C<static void help(void)>
-
-Print out "help" list of options.
-
-=cut
-
-*/
-
-static void
-help(void)
-{
- ASSERT_ARGS(help)
- /* split printf for C89 compliance on string length */
- printf(
- "parrot [Options] <file>\n"
- " Options:\n"
- " -h --help\n"
- " -V --version\n"
- " -I --include add path to include search\n"
- " -L --library add path to library search\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"
- " -t --trace [flags]\n"
- " <VM options>\n"
- " -D --parrot-debug[=HEXFLAGS]\n"
- " --help-debug\n");
- printf(
- " -w --warnings\n"
- " -G --no-gc\n"
- " --gc-debug\n"
- " --leak-test|--destroy-at-end\n"
- " -. --wait Read a keystroke before starting\n"
- " --runtime-prefix\n"
- " <Compiler options>\n"
- " -d --imcc-debug[=HEXFLAGS]\n"
- " -v --verbose\n"
- " -E --pre-process-only\n"
- " -o --output=FILE\n"
- " --output-pbc\n"
- " -O --optimize[=LEVEL]\n"
- " -a --pasm\n"
- " -c --pbc\n"
- " -r --run-pbc\n"
- " -y --yydebug\n"
- " <Language options>\n"
- "see docs/running.pod for more\n");
-}
-
-
-/*
-
-=item C<static void Parrot_version(PARROT_INTERP)>
-
-Print out parrot version number.
-
-=cut
-
-*/
-
-static void
-Parrot_version(PARROT_INTERP)
-{
- ASSERT_ARGS(Parrot_version)
- printf("This is Parrot version " PARROT_VERSION);
- printf(" built for " PARROT_ARCHNAME ".\n");
- printf("Copyright (C) 2001-2010, Parrot Foundation.\n\
-\n\
-This code is distributed under the terms of the Artistic License 2.0.\
-\n\
-For more details, see the full text of the license in the LICENSE file\
-\n\
-included in the Parrot source tree.\n\n");
-
- Parrot_exit(interp, 0);
-}
-
-#define SET_FLAG(flag) Parrot_set_flag(interp, (flag))
-#define SET_DEBUG(flag) Parrot_set_debug(interp, (flag))
-#define SET_TRACE(flag) Parrot_set_trace(interp, (flag))
-
#define OPT_GC_DEBUG 128
#define OPT_DESTROY_FLAG 129
#define OPT_HELP_DEBUG 130
#define OPT_PBC_OUTPUT 131
#define OPT_RUNTIME_PREFIX 132
-static struct longopt_opt_decl options[] = {
- { '.', '.', (OPTION_flags)0, { "--wait" } },
- { 'D', 'D', OPTION_optional_FLAG, { "--parrot-debug" } },
- { 'E', 'E', (OPTION_flags)0, { "--pre-process-only" } },
- { 'G', 'G', (OPTION_flags)0, { "--no-gc" } },
- { 'I', 'I', OPTION_required_FLAG, { "--include" } },
- { 'L', 'L', OPTION_required_FLAG, { "--library" } },
- { 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
- { 'R', 'R', OPTION_required_FLAG, { "--runcore" } },
- { 'V', 'V', (OPTION_flags)0, { "--version" } },
- { 'X', 'X', OPTION_required_FLAG, { "--dynext" } },
- { '\0', OPT_DESTROY_FLAG, (OPTION_flags)0,
- { "--leak-test", "--destroy-at-end" } },
- { '\0', OPT_GC_DEBUG, (OPTION_flags)0, { "--gc-debug" } },
- { 'a', 'a', (OPTION_flags)0, { "--pasm" } },
- { 'c', 'c', (OPTION_flags)0, { "--pbc" } },
- { 'd', 'd', OPTION_optional_FLAG, { "--imcc-debug" } },
- { '\0', OPT_HELP_DEBUG, (OPTION_flags)0, { "--help-debug" } },
- { 'h', 'h', (OPTION_flags)0, { "--help" } },
- { 'o', 'o', OPTION_required_FLAG, { "--output" } },
- { '\0', OPT_PBC_OUTPUT, (OPTION_flags)0, { "--output-pbc" } },
- { 'r', 'r', (OPTION_flags)0, { "--run-pbc" } },
- { '\0', OPT_RUNTIME_PREFIX, (OPTION_flags)0, { "--runtime-prefix" } },
- { 't', 't', OPTION_optional_FLAG, { "--trace" } },
- { 'v', 'v', (OPTION_flags)0, { "--verbose" } },
- { 'w', 'w', (OPTION_flags)0, { "--warnings" } },
- { 'y', 'y', (OPTION_flags)0, { "--yydebug" } },
- { 0, 0, (OPTION_flags)0, { NULL } }
-};
-
/*
=item C<static int is_all_hex_digits(const char *s)>
@@ -342,223 +149,122 @@
/*
-=item C<const char * parseflags(PARROT_INTERP, int *argc, char **argv[])>
+=item C<void imcc_start_handling_flags(PARROT_INTERP)>
-Parse Parrot's command line for options and set appropriate flags.
+Initialize handling of IMCC related command line flags.
=cut
*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-const char *
-parseflags(PARROT_INTERP, int *argc, char **argv[])
+void
+imcc_start_handling_flags(PARROT_INTERP)
{
- struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
- INTVAL core = 0;
- int status;
-
- if (*argc == 1) {
- usage(stderr);
- exit(EXIT_SUCCESS);
- }
-
SET_STATE_RUN_PBC(interp);
+}
- while ((status = longopt_get(interp, *argc, (const char **)*argv, options,
- &opt)) > 0) {
- switch (opt.opt_id) {
- case 'R':
- if (STREQ(opt.opt_arg, "slow") || STREQ(opt.opt_arg, "bounds"))
- 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"))
- core = PARROT_SLOW_CORE;
- else if (STREQ(opt.opt_arg, "profiling"))
- core = PARROT_PROFILING_CORE;
- else if (STREQ(opt.opt_arg, "gcdebug"))
- core = PARROT_GC_DEBUG_CORE;
- else
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "main: Unrecognized runcore '%s' specified."
- "\n\nhelp: parrot -h\n", opt.opt_arg);
- break;
- case 't':
- if (opt.opt_arg && is_all_hex_digits(opt.opt_arg))
- SET_TRACE(strtoul(opt.opt_arg, NULL, 16));
- else
- SET_TRACE(PARROT_TRACE_OPS_FLAG);
- break;
- case 'd':
- if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
- IMCC_INFO(interp)->debug = strtoul(opt.opt_arg, NULL, 16);
- }
- else {
- IMCC_INFO(interp)->debug++;
- }
- break;
- case 'D':
- if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
- SET_DEBUG(strtoul(opt.opt_arg, NULL, 16));
- }
- else
- SET_DEBUG(PARROT_MEM_STAT_DEBUG_FLAG);
- break;
- case 'w':
- Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
- IMCC_INFO(interp)->imcc_warn = 1;
- break;
- case 'G':
- IMCC_INFO(interp)->gc_off = 1;
- break;
- case '.': /* Give Windows Parrot hackers an opportunity to
- * attach a debuggger. */
- fgetc(stdin);
- break;
- case 'a':
- SET_STATE_PASM_FILE(interp);
- break;
- case 'h':
- help();
- exit(EX_USAGE);
- break;
- case OPT_HELP_DEBUG:
- help_debug();
- exit(EX_USAGE);
- break;
- case OPT_RUNTIME_PREFIX:
- Parrot_io_printf(interp, "%Ss\n",
- Parrot_get_runtime_path(interp));
- exit(EXIT_SUCCESS);
- case 'V':
- Parrot_version(interp);
- break;
- case 'r':
- if (STATE_RUN_PBC(interp))
- SET_STATE_RUN_FROM_FILE(interp);
- SET_STATE_RUN_PBC(interp);
- break;
- case 'c':
- SET_STATE_LOAD_PBC(interp);
- break;
- case 'v':
- IMCC_INFO(interp)->verbose++;
- break;
- case 'y':
- yydebug = 1;
- break;
- case 'E':
- SET_STATE_PRE_PROCESS(interp);
- break;
- case 'o':
- UNSET_STATE_RUN_PBC(interp);
- interp->output_file = opt.opt_arg;
- break;
+/*
- case OPT_PBC_OUTPUT:
- UNSET_STATE_RUN_PBC(interp);
- SET_STATE_WRITE_PBC(interp);
- if (!interp->output_file)
- interp->output_file = "-";
- break;
+=item C<int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt,
+Parrot_Run_core_t *core)>
- case 'O':
- if (!opt.opt_arg) {
- IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
- break;
- }
- if (strchr(opt.opt_arg, 'p'))
- IMCC_INFO(interp)->optimizer_level |= OPT_PASM;
- if (strchr(opt.opt_arg, 'c'))
- IMCC_INFO(interp)->optimizer_level |= OPT_SUB;
-
- IMCC_INFO(interp)->allocator = IMCC_GRAPH_ALLOCATOR;
- /* currently not ok due to different register allocation */
- if (strchr(opt.opt_arg, '1')) {
- IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
- }
- 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;
+Handle Parrot's command line for IMCC related option and set appropriate flags.
- case OPT_GC_DEBUG:
-#if DISABLE_GC_DEBUG
- Parrot_warn(interp, PARROT_WARNINGS_ALL_FLAG,
- "PARROT_GC_DEBUG is set but the binary was "
- "compiled with DISABLE_GC_DEBUG.");
-#endif
- SET_FLAG(PARROT_GC_DEBUG_FLAG);
- break;
- case OPT_DESTROY_FLAG:
- SET_FLAG(PARROT_DESTROY_FLAG);
- break;
- case 'I':
- Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
- PARROT_LIB_PATH_INCLUDE);
- break;
- case 'L':
- Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
- PARROT_LIB_PATH_LIBRARY);
- break;
- case 'X':
- Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
- PARROT_LIB_PATH_DYNEXT);
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "main: Invalid flag '%s' used.\n\nhelp: parrot -h\n",
- (*argv)[0]);
- }
- }
+Return 1 if flag handled, 0 if not.
- if (status == -1) {
- fprintf(stderr, "%s\n", opt.opt_error);
- usage(stderr);
- exit(EX_USAGE);
- }
+=cut
- /* reached the end of the option list and consumed all of argv */
- if (*argc == opt.opt_index) {
- if (interp->output_file) {
- fprintf(stderr, "Missing program name or argument for -o\n");
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+int
+imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt,
+ Parrot_Run_core_t *core)
+{
+ PARROT_ASSERT(opt);
+ PARROT_ASSERT(core);
+
+ switch (opt->opt_id) {
+ case 'd':
+ if (opt->opt_arg && is_all_hex_digits(opt->opt_arg)) {
+ IMCC_INFO(interp)->debug = strtoul(opt->opt_arg, NULL, 16);
}
else {
- /* We are not looking at an option, so it must be a program name */
- fprintf(stderr, "Missing program name\n");
+ IMCC_INFO(interp)->debug++;
}
- usage(stderr);
- exit(EX_USAGE);
- }
+ break;
+ case 'w':
+ /* FIXME It's not best way to set warnings... */
+ Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
+ IMCC_INFO(interp)->imcc_warn = 1;
+ break;
+ case 'G':
+ IMCC_INFO(interp)->gc_off = 1;
+ break;
+ case 'a':
+ SET_STATE_PASM_FILE(interp);
+ break;
+ case 'r':
+ if (STATE_RUN_PBC(interp))
+ SET_STATE_RUN_FROM_FILE(interp);
+ SET_STATE_RUN_PBC(interp);
+ break;
+ case 'c':
+ SET_STATE_LOAD_PBC(interp);
+ break;
+ case 'v':
+ IMCC_INFO(interp)->verbose++;
+ break;
+ case 'y':
+ yydebug = 1;
+ break;
+ case 'E':
+ SET_STATE_PRE_PROCESS(interp);
+ break;
+ case 'o':
+ UNSET_STATE_RUN_PBC(interp);
+ interp->output_file = opt->opt_arg;
+ break;
+
+ case OPT_PBC_OUTPUT:
+ UNSET_STATE_RUN_PBC(interp);
+ SET_STATE_WRITE_PBC(interp);
+ if (!interp->output_file)
+ interp->output_file = "-";
+ break;
+
+ case 'O':
+ if (!opt->opt_arg) {
+ IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+ break;
+ }
+ if (strchr(opt->opt_arg, 'p'))
+ IMCC_INFO(interp)->optimizer_level |= OPT_PASM;
+ if (strchr(opt->opt_arg, 'c'))
+ IMCC_INFO(interp)->optimizer_level |= OPT_SUB;
+
+ IMCC_INFO(interp)->allocator = IMCC_GRAPH_ALLOCATOR;
+ /* currently not ok due to different register allocation */
+ if (strchr(opt->opt_arg, '1')) {
+ IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+ }
+ 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;
- *argc -= opt.opt_index;
- *argv += opt.opt_index;
+ default:
+ return 0;
+ }
- Parrot_set_run_core(interp, (Parrot_Run_core_t) core);
- return (*argv)[0];
+ return 1;
}
/*
@@ -828,7 +534,7 @@
"Couldn't write %s\n", output_file);
fclose(fp);
IMCC_info(interp, 1, "%s written.\n", output_file);
- free(packed);
+ mem_sys_free(packed);
}
/*
@@ -940,7 +646,7 @@
IMCC_push_parser_state(interp);
IMCC_INFO(interp)->state->file = mem_sys_strdup(sourcefile);
- emit_open(interp, per_pbc, per_pbc ? NULL : (void*)output_file);
+ emit_open(interp, per_pbc, per_pbc ? NULL : output_file);
IMCC_info(interp, 1, "Starting parse...\n");
Modified: branches/ops_pct/compilers/imcc/optimizer.c
==============================================================================
--- branches/ops_pct/compilers/imcc/optimizer.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/optimizer.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -366,7 +366,7 @@
last->symregs, args, 0, 0);
last->opnum = tmp->opnum;
last->opsize = tmp->opsize;
- free(last->opname);
+ mem_sys_free(last->opname);
last->opname = mem_sys_strdup(tmp->opname);
free_ins(tmp);
@@ -802,7 +802,7 @@
int i;
op_info_t *op_info;
- opnum = interp->op_lib->op_code(op, 1);
+ opnum = interp->op_lib->op_code(interp, op, 1);
if (opnum < 0)
IMCC_fatal(interp, 1, "eval_ins: op '%s' not found\n", op);
op_info = interp->op_info_table + opnum;
@@ -1293,7 +1293,7 @@
changed = 1;
}
- free(label);
+ mem_sys_free(label);
}
return changed;
Modified: branches/ops_pct/compilers/imcc/parser_util.c
==============================================================================
--- branches/ops_pct/compilers/imcc/parser_util.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/parser_util.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -154,7 +154,7 @@
SymReg *regs[3];
SymReg *pmc;
int nargs;
- const int pmc_num = pmc_type(interp,
+ const int pmc_num = Parrot_pmc_get_type_str(interp,
Parrot_str_new(interp, *type == '.' ? type + 1 : type, 0));
snprintf(fmt, sizeof (fmt), "%d", pmc_num);
@@ -285,7 +285,7 @@
ASSERT_ARGS(check_op)
op_fullname(fullname, name, r, narg, keyvec);
- return interp->op_lib->op_code(fullname, 1);
+ return interp->op_lib->op_code(interp, fullname, 1);
}
/*
@@ -303,8 +303,8 @@
is_op(PARROT_INTERP, ARGIN(const char *name))
{
ASSERT_ARGS(is_op)
- return interp->op_lib->op_code(name, 0) >= 0
- || interp->op_lib->op_code(name, 1) >= 0;
+ return interp->op_lib->op_code(interp, name, 0) >= 0
+ || interp->op_lib->op_code(interp, name, 1) >= 0;
}
/*
@@ -341,7 +341,7 @@
r[0]->pmc_type = enum_class_FixedIntegerArray;
op_fullname(fullname, name, r, 1, 0);
- op = interp->op_lib->op_code(fullname, 1);
+ op = interp->op_lib->op_code(interp, fullname, 1);
PARROT_ASSERT(op >= 0);
@@ -404,11 +404,11 @@
return var_arg_ins(interp, unit, name, r, n, emit);
op_fullname(fullname, name, r, n, keyvec);
- op = interp->op_lib->op_code(fullname, 1);
+ op = interp->op_lib->op_code(interp, fullname, 1);
/* maybe we have a fullname */
if (op < 0)
- op = interp->op_lib->op_code(name, 1);
+ op = interp->op_lib->op_code(interp, name, 1);
/* still wrong, try reverse compare */
if (op < 0) {
@@ -416,7 +416,7 @@
if (n_name) {
name = n_name;
op_fullname(fullname, name, r, n, keyvec);
- op = interp->op_lib->op_code(fullname, 1);
+ op = interp->op_lib->op_code(interp, fullname, 1);
}
}
@@ -548,7 +548,7 @@
}
}
- if (op_info->jump && op_info->jump != PARROT_JUMP_ENEXT) {
+ if (op_info->jump) {
ins->type |= ITBRANCH;
/* TODO use opnum constants */
if (STREQ(name, "branch")
@@ -638,7 +638,7 @@
if (IMCC_INFO(interp)->last_unit) {
/* a reentrant compile */
- imc_info = mem_allocate_zeroed_typed(imc_info_t);
+ imc_info = mem_gc_allocate_zeroed_typed(interp, imc_info_t);
imc_info->ghash = IMCC_INFO(interp)->ghash;
imc_info->prev = IMCC_INFO(interp);
IMCC_INFO(interp) = imc_info;
@@ -703,7 +703,7 @@
*
* TODO if a sub was denoted :main return that instead
*/
- sub = pmc_new(interp, enum_class_Eval);
+ sub = Parrot_pmc_new(interp, enum_class_Eval);
PMC_get_sub(interp, sub, sub_data);
sub_data->seg = new_cs;
sub_data->start_offs = 0;
@@ -868,16 +868,7 @@
STRING *error_message;
PMC *sub;
- /* We need to clear the current_results from the current context. This is
- * in order to prevent any RetContinuations that get promoted to full
- * Continuations (this happens when something is the target of a :outer)
- * trying to return values using them when invoked. (See TT #500 for the
- * report of the bug this fixes). */
- opcode_t *save_results = Parrot_pcc_get_results(interp, CURRENT_CONTEXT(interp));
- Parrot_pcc_set_results(interp, CURRENT_CONTEXT(interp), NULL);
sub = imcc_compile(interp, s, 0, &error_message);
- Parrot_pcc_set_results(interp, CURRENT_CONTEXT(interp), save_results);
-
if (sub)
return sub;
@@ -916,7 +907,7 @@
if (IMCC_INFO(interp)->last_unit) {
/* a reentrant compile */
- imc_info = mem_allocate_zeroed_typed(imc_info_t);
+ imc_info = mem_gc_allocate_zeroed_typed(interp, imc_info_t);
imc_info->prev = IMCC_INFO(interp);
imc_info->ghash = IMCC_INFO(interp)->ghash;
IMCC_INFO(interp) = imc_info;
@@ -1202,7 +1193,7 @@
if (changed) {
op_fullname(fullname, name, r, n, keyvec);
- return interp->op_lib->op_code(fullname, 1);
+ return interp->op_lib->op_code(interp, fullname, 1);
}
return -1;
@@ -1290,9 +1281,8 @@
imcc_init(PARROT_INTERP)
{
ASSERT_ARGS(imcc_init)
- PARROT_ASSERT(IMCC_INFO(interp) == NULL);
+ PARROT_ASSERT(IMCC_INFO(interp) != NULL);
- IMCC_INFO(interp) = mem_allocate_zeroed_typed(imc_info_t);
/* register PASM and PIR compilers to parrot core */
register_compilers(interp);
}
Modified: branches/ops_pct/compilers/imcc/pbc.c
==============================================================================
--- branches/ops_pct/compilers/imcc/pbc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/pbc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
* $Id$
*/
@@ -357,11 +357,11 @@
/* Update the constant count and reallocate */
if (interp->code->const_table->constants)
interp->code->const_table->constants =
- mem_realloc_n_typed(interp->code->const_table->constants,
- newcount, PackFile_Constant *);
+ mem_gc_realloc_n_typed_zeroed(interp, interp->code->const_table->constants,
+ newcount, oldcount, PackFile_Constant *);
else
interp->code->const_table->constants =
- mem_allocate_n_typed(newcount, PackFile_Constant *);
+ mem_gc_allocate_n_zeroed_typed(interp, newcount, PackFile_Constant *);
interp->code->const_table->constants[oldcount] = new_constant;
interp->code->const_table->const_count = newcount;
@@ -420,7 +420,7 @@
/*
-=item C<int e_pbc_open(PARROT_INTERP, void *param)>
+=item C<int e_pbc_open(PARROT_INTERP, const char *param)>
Opens a compilation unit to emit PBC.
@@ -429,13 +429,13 @@
*/
int
-e_pbc_open(PARROT_INTERP, SHIM(void *param))
+e_pbc_open(PARROT_INTERP, SHIM(const char *param))
{
ASSERT_ARGS(e_pbc_open)
- code_segment_t * const cs = mem_allocate_zeroed_typed(code_segment_t);
+ code_segment_t * const cs = mem_gc_allocate_zeroed_typed(interp, code_segment_t);
if (!IMCC_INFO(interp)->globals)
- IMCC_INFO(interp)->globals = mem_allocate_zeroed_typed(imcc_globals);
+ IMCC_INFO(interp)->globals = mem_gc_allocate_zeroed_typed(interp, imcc_globals);
if (IMCC_INFO(interp)->globals->cs)
clear_sym_hash(&IMCC_INFO(interp)->globals->cs->key_consts);
@@ -445,7 +445,7 @@
}
/* free previous cached key constants if any */
- create_symhash(&cs->key_consts);
+ create_symhash(interp, &cs->key_consts);
cs->next = NULL;
cs->prev = IMCC_INFO(interp)->globals->cs;
@@ -496,7 +496,7 @@
make_new_sub(PARROT_INTERP, ARGIN(IMC_Unit *unit))
{
ASSERT_ARGS(make_new_sub)
- subs_t * const s = mem_allocate_zeroed_typed(subs_t);
+ subs_t * const s = mem_gc_allocate_zeroed_typed(interp, subs_t);
s->prev = IMCC_INFO(interp)->globals->cs->subs;
s->unit = unit;
@@ -510,7 +510,7 @@
IMCC_INFO(interp)->globals->cs->subs = s;
- create_symhash(&s->fixup);
+ create_symhash(interp, &s->fixup);
}
@@ -615,7 +615,7 @@
{
ASSERT_ARGS(store_key_const)
SymReg * const c =
- _mk_const(&IMCC_INFO(interp)->globals->cs->key_consts, str, 0);
+ _mk_const(interp, &IMCC_INFO(interp)->globals->cs->key_consts, str, 0);
c->color = idx;
}
@@ -826,7 +826,7 @@
SymReg * const nam = mk_const(interp, fixup->name,
fixup->type & VT_ENCODED ? 'U' : 'S');
- const int op = interp->op_lib->op_code("find_sub_not_null_p_sc", 1);
+ const int op = interp->op_lib->op_code(interp, "find_sub_not_null_p_sc", 1);
PARROT_ASSERT(op);
interp->code->base.data[addr] = op;
@@ -981,14 +981,32 @@
add_const_str(PARROT_INTERP, ARGIN(const SymReg *r))
{
ASSERT_ARGS(add_const_str)
- const int k = add_const_table(interp);
- STRING * const s = IMCC_string_from_reg(interp, r);
- PackFile_Constant * const constant = interp->code->const_table->constants[k];
-
- constant->type = PFC_STRING;
- constant->u.string = s;
-
+ PackFile_ConstTable *table = interp->code->const_table;
+ STRING * const s = IMCC_string_from_reg(interp, r);
+ int k = -1;
+ 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 (k < 0) {
+ PackFile_Constant * constant;
+ k = add_const_table(interp);
+ constant = table->constants[k];
+ constant->type = PFC_STRING;
+ constant->u.string = s;
+ }
return k;
}
@@ -1044,9 +1062,9 @@
/* a :multi sub with no arguments */
if (!pcc_sub->multi[0])
- return pmc_new(interp, enum_class_FixedIntegerArray);
+ return Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
- multi_sig = pmc_new(interp, enum_class_FixedPMCArray);
+ multi_sig = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
VTABLE_set_integer_native(interp, multi_sig, n);
ct = interp->code->const_table;
@@ -1058,14 +1076,14 @@
if (r->set == 'S') {
STRING * const type_name = ct->constants[r->color]->u.string;
- const INTVAL type_num = pmc_type(interp, type_name);
+ const INTVAL type_num = Parrot_pmc_get_type_str(interp, type_name);
if (type_num == enum_type_undef) {
- sig_pmc = pmc_new(interp, enum_class_String);
+ sig_pmc = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, sig_pmc, type_name);
}
else {
- sig_pmc = pmc_new(interp, enum_class_Integer);
+ sig_pmc = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, sig_pmc, type_num);
}
}
@@ -1116,7 +1134,7 @@
if (r->set == 'P' && r->usage & U_LEXICAL) {
SymReg *n;
if (!lex_info) {
- lex_info = pmc_new_noinit(interp, lex_info_id);
+ lex_info = Parrot_pmc_new_noinit(interp, lex_info_id);
VTABLE_init_pmc(interp, lex_info, sub_pmc);
}
@@ -1149,7 +1167,7 @@
}
if (!lex_info && (unit->outer || need_lex)) {
- lex_info = pmc_new_noinit(interp, lex_info_id);
+ lex_info = Parrot_pmc_new_noinit(interp, lex_info_id);
VTABLE_init_pmc(interp, lex_info, sub_pmc);
}
@@ -1276,7 +1294,7 @@
if (real_name) {
char * const p = mem_sys_strdup(real_name + 1);
- free(r->name);
+ mem_sys_free(r->name);
r->name = p;
}
}
@@ -1292,12 +1310,12 @@
if (!PMC_IS_NULL(classobj))
sub_pmc = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type(interp, classname);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, classname);
if (type <= 0)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_NO_CLASS,
"Class '%Ss' specified in :instanceof(...) not found",
classname);
- sub_pmc = pmc_new(interp, type);
+ sub_pmc = Parrot_pmc_new(interp, type);
}
}
else {
@@ -1305,7 +1323,7 @@
type = Parrot_get_ctx_HLL_type(interp, type);
/* TODO create constant - see also src/packfile.c */
- sub_pmc = pmc_new(interp, type);
+ sub_pmc = Parrot_pmc_new(interp, type);
}
/* Set flags and get the sub info. */
@@ -1348,7 +1366,7 @@
ns_pmc = ct->constants[ns_const]->u.key;
break;
case PFC_STRING:
- ns_pmc = constant_pmc_new(interp, enum_class_String);
+ ns_pmc = Parrot_pmc_new_constant(interp, enum_class_String);
VTABLE_set_string_native(interp, ns_pmc, ct->constants[ns_const]->u.string);
break;
default:
@@ -1478,7 +1496,7 @@
if (r)
return r->color;
- pfc = mem_allocate_typed(PackFile_Constant);
+ pfc = mem_gc_allocate_typed(interp, PackFile_Constant);
rc = PackFile_Constant_unpack_key(interp,
interp->code->const_table, pfc, key);
@@ -1805,7 +1823,7 @@
else
s = Parrot_str_unescape(interp, r->name, 0, NULL);
- p = constant_pmc_new(interp, r->pmc_type);
+ p = Parrot_pmc_new_constant(interp, r->pmc_type);
switch (r->pmc_type) {
case enum_class_Integer:
@@ -2188,7 +2206,7 @@
/* need a dummy to hold register usage */
SymReg * const r = mk_sub_label(interp, "(null)");
r->type = VT_PCC_SUB;
- r->pcc_sub = mem_allocate_zeroed_typed(pcc_sub_t);
+ r->pcc_sub = mem_gc_allocate_zeroed_typed(interp, pcc_sub_t);
add_const_pmc_sub(interp, r, oldsize, oldsize + code_size);
}
Modified: branches/ops_pct/compilers/imcc/pbc.h
==============================================================================
--- branches/ops_pct/compilers/imcc/pbc.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/pbc.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -28,7 +28,7 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-int e_pbc_open(PARROT_INTERP, SHIM(void *param))
+int e_pbc_open(PARROT_INTERP, SHIM(const char *param))
__attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
Modified: branches/ops_pct/compilers/imcc/pcc.c
==============================================================================
--- branches/ops_pct/compilers/imcc/pcc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/pcc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -108,9 +108,12 @@
__attribute__nonnull__(3)
__attribute__nonnull__(4);
-static void unshift_self(ARGIN(SymReg *sub), ARGIN(SymReg *obj))
+static void unshift_self(PARROT_INTERP,
+ ARGIN(SymReg *sub),
+ ARGIN(SymReg *obj))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
#define ASSERT_ARGS_insert_tail_call __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -143,7 +146,8 @@
, PARROT_ASSERT_ARG(ins) \
, PARROT_ASSERT_ARG(sub))
#define ASSERT_ARGS_unshift_self __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(sub) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(sub) \
, PARROT_ASSERT_ARG(obj))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -267,15 +271,15 @@
SymReg *regcache[PCC_GET_ARGS_LIMIT + 1];
char bufcache[sizeof (pref) + sizeof (item) * PCC_GET_ARGS_LIMIT + sizeof (subf)];
- SymReg ** const regs = n < PCC_GET_ARGS_LIMIT ?
- regcache :
- mem_allocate_n_zeroed_typed(n + 1, SymReg *);
+ SymReg ** const regs = n < PCC_GET_ARGS_LIMIT
+ ? regcache
+ : mem_gc_allocate_n_zeroed_typed(interp, n + 1, SymReg *);
unsigned int bufpos = 0;
unsigned int bufsize = lenpref + lenitem * n + lensubf;
- char *buf = n < PCC_GET_ARGS_LIMIT ?
- bufcache :
- mem_allocate_n_typed(bufsize, char);
+ char *buf = n < PCC_GET_ARGS_LIMIT
+ ? bufcache
+ : mem_gc_allocate_n_typed(interp, bufsize, char);
memcpy(buf, pref, lenpref);
bufpos += lenpref;
@@ -362,7 +366,7 @@
/*
-=item C<static void unshift_self(SymReg *sub, SymReg *obj)>
+=item C<static void unshift_self(PARROT_INTERP, SymReg *sub, SymReg *obj)>
prepend the object to args or self to params
@@ -371,15 +375,15 @@
*/
static void
-unshift_self(ARGIN(SymReg *sub), ARGIN(SymReg *obj))
+unshift_self(PARROT_INTERP, ARGIN(SymReg *sub), ARGIN(SymReg *obj))
{
ASSERT_ARGS(unshift_self)
struct pcc_sub_t * const pcc_sub = sub->pcc_sub;
const int n = pcc_sub->nargs;
int i;
- mem_realloc_n_typed(pcc_sub->args, n + 1, SymReg *);
- mem_realloc_n_typed(pcc_sub->arg_flags, n + 1, int);
+ pcc_sub->args = mem_gc_realloc_n_typed(interp, pcc_sub->args, n + 1, SymReg *);
+ pcc_sub->arg_flags = mem_gc_realloc_n_typed(interp, pcc_sub->arg_flags, n + 1, int);
for (i = n; i; --i) {
pcc_sub->args[i] = pcc_sub->args[i - 1];
@@ -419,7 +423,7 @@
self->type = VTIDENTIFIER;
}
- unshift_self(sub, self);
+ unshift_self(interp, sub, self);
}
/* Don't generate any parameter checking code if there
@@ -821,7 +825,7 @@
}
if (sub->pcc_sub->object)
- unshift_self(sub, sub->pcc_sub->object);
+ unshift_self(interp, sub, sub->pcc_sub->object);
/* insert arguments */
n = sub->pcc_sub->nargs;
Modified: branches/ops_pct/compilers/imcc/reg_alloc.c
==============================================================================
--- branches/ops_pct/compilers/imcc/reg_alloc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/reg_alloc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -59,7 +59,8 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*unit);
-static void build_reglist(NULLOK_INTERP, ARGMOD(IMC_Unit *unit))
+static void build_reglist(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*unit);
@@ -73,11 +74,12 @@
FUNC_MODIFIES(*r);
PARROT_WARN_UNUSED_RESULT
-static unsigned int first_avail(
+static unsigned int first_avail(PARROT_INTERP,
ARGIN(const IMC_Unit *unit),
int reg_set,
ARGOUT_NULLOK(Set **avail))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*avail);
PARROT_WARN_UNUSED_RESULT
@@ -162,7 +164,8 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void vanilla_reg_alloc(SHIM_INTERP, ARGMOD(IMC_Unit *unit))
+static void vanilla_reg_alloc(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*unit);
@@ -179,14 +182,16 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_build_reglist __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_compute_du_chain __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_compute_one_du_chain __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(r) \
, PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_first_avail __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_ig_allocate __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_ig_find_color __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(unit) \
@@ -223,7 +228,8 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_vanilla_reg_alloc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -429,7 +435,7 @@
fprintf(stderr, "reg_alloc.c: free_reglist\n");
#endif
if (unit->interference_graph) {
- free(unit->interference_graph);
+ mem_sys_free(unit->interference_graph);
unit->interference_graph = NULL;
}
@@ -439,7 +445,7 @@
for (i = 0; i < unit->n_symbols; i++)
free_life_info(unit, unit->reglist[i]);
- free(unit->reglist);
+ mem_sys_free(unit->reglist);
unit->reglist = NULL;
unit->n_symbols = 0;
}
@@ -607,8 +613,8 @@
reg_sort_f(ARGIN(const void *a), ARGIN(const void *b))
{
ASSERT_ARGS(reg_sort_f)
- const SymReg * const ra = *(SymReg**)a;
- const SymReg * const rb = *(SymReg**)b;
+ const SymReg * const ra = *(const SymReg * const *)a;
+ const SymReg * const rb = *(const SymReg * const *)b;
if (ra->first_ins->index < rb->first_ins->index)
return -1;
@@ -636,7 +642,7 @@
/*
-=item C<static void build_reglist(NULLOK_INTERP, IMC_Unit *unit)>
+=item C<static void build_reglist(PARROT_INTERP, IMC_Unit *unit)>
make a linear list of IDENTs and VARs, set n_symbols
TODO
@@ -654,7 +660,7 @@
*/
static void
-build_reglist(NULLOK_INTERP, ARGMOD(IMC_Unit *unit))
+build_reglist(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
{
ASSERT_ARGS(build_reglist)
SymHash const *hsh = &unit->hash;
@@ -670,7 +676,7 @@
if (count == 0)
return;
- unit->reglist = mem_allocate_n_typed(count, SymReg *);
+ unit->reglist = mem_gc_allocate_n_typed(interp, count, SymReg *);
for (i = count = 0; i < hsh->size; i++) {
SymReg *r;
@@ -1043,7 +1049,7 @@
if (!n)
return;
- avail = mem_allocate_n_typed(n, char);
+ avail = mem_gc_allocate_n_typed(interp, n, char);
for (i = 0; i < unit->n_symbols; ++i) {
int already_allocated, color;
@@ -1122,8 +1128,8 @@
/*
-=item C<static unsigned int first_avail(const IMC_Unit *unit, int reg_set, Set
-**avail)>
+=item C<static unsigned int first_avail(PARROT_INTERP, const IMC_Unit *unit, int
+reg_set, Set **avail)>
find first available register of the given reg_set
@@ -1133,13 +1139,15 @@
PARROT_WARN_UNUSED_RESULT
static unsigned int
-first_avail(ARGIN(const IMC_Unit *unit), int reg_set, ARGOUT_NULLOK(Set **avail))
+first_avail(PARROT_INTERP,
+ ARGIN(const IMC_Unit *unit), int reg_set,
+ ARGOUT_NULLOK(Set **avail))
{
ASSERT_ARGS(first_avail)
int n = (int)unit->n_symbols > unit->max_color
? (int)unit->n_symbols
: unit->max_color;
- Set *allocated = set_make((unsigned int)n + 1);
+ Set *allocated = set_make(interp, (unsigned int)n + 1);
const SymHash * const hsh = &unit->hash;
@@ -1205,7 +1213,7 @@
Set *avail = sets[j];
unsigned int first_reg = avail
? set_first_zero(avail)
- : first_avail(unit, (int)r->set, &avail);
+ : first_avail(interp, unit, (int)r->set, &avail);
set_add(avail, first_reg);
r->color = first_reg++;
@@ -1244,7 +1252,7 @@
*/
static void
-vanilla_reg_alloc(SHIM_INTERP, ARGMOD(IMC_Unit *unit))
+vanilla_reg_alloc(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
{
ASSERT_ARGS(vanilla_reg_alloc)
const char type[] = "INSP";
@@ -1266,7 +1274,7 @@
/* Assign new colors. */
for (j = 0; j < 4; j++) {
reg_set = type[j];
- first_reg = first_avail(unit, reg_set, &avail);
+ first_reg = first_avail(interp, unit, reg_set, &avail);
/* XXX Use a different loop variable that doesn't shadow outer i */
for (i = 0; i < hsh->size; i++) {
@@ -1276,7 +1284,7 @@
continue;
if (REG_NEEDS_ALLOC(r) && (r->color == -1) && r->use_count) {
if (set_contains(avail, first_reg))
- first_reg = first_avail(unit, reg_set, NULL);
+ first_reg = first_avail(interp, unit, reg_set, NULL);
set_add(avail, first_reg);
r->color = first_reg++;
Modified: branches/ops_pct/compilers/imcc/sets.c
==============================================================================
--- branches/ops_pct/compilers/imcc/sets.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/sets.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -38,7 +38,7 @@
/*
-=item C<Set* set_make(unsigned int length)>
+=item C<Set* set_make(PARROT_INTERP, unsigned int length)>
Creates a new Set object.
@@ -49,13 +49,13 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
Set*
-set_make(unsigned int length)
+set_make(PARROT_INTERP, unsigned int length)
{
ASSERT_ARGS(set_make)
- Set * const s = mem_allocate_zeroed_typed(Set);
+ Set * const s = mem_gc_allocate_zeroed_typed(interp, Set);
s->length = length;
- s->bmp = mem_allocate_n_zeroed_typed(NUM_BYTES(length),
- unsigned char);
+ s->bmp = mem_gc_allocate_n_zeroed_typed(interp,
+ NUM_BYTES(length), unsigned char);
return s;
}
@@ -63,7 +63,7 @@
/*
-=item C<Set* set_make_full(unsigned int length)>
+=item C<Set* set_make_full(PARROT_INTERP, unsigned int length)>
Creates a new Set object of C<length> items, setting them all to full.
@@ -74,10 +74,10 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
Set*
-set_make_full(unsigned int length)
+set_make_full(PARROT_INTERP, unsigned int length)
{
ASSERT_ARGS(set_make_full)
- Set * const s = set_make(length);
+ Set * const s = set_make(interp, length);
const size_t bytes = NUM_BYTES(length);
if (bytes)
@@ -128,7 +128,7 @@
/*
-=item C<Set* set_copy(const Set *s)>
+=item C<Set* set_copy(PARROT_INTERP, const Set *s)>
Copies the set C<s>, returning a new set pointer.
@@ -139,10 +139,10 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
Set*
-set_copy(ARGIN(const Set *s))
+set_copy(PARROT_INTERP, ARGIN(const Set *s))
{
ASSERT_ARGS(set_copy)
- Set * const d = set_make(s->length);
+ Set * const d = set_make(interp, s->length);
memcpy(d->bmp, s->bmp, NUM_BYTES(d->length));
return d;
@@ -286,7 +286,7 @@
/*
-=item C<Set * set_union(const Set *s1, const Set *s2)>
+=item C<Set * set_union(PARROT_INTERP, const Set *s1, const Set *s2)>
Computes the union of the two Set arguments, returning it as a new Set.
@@ -299,11 +299,11 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
Set *
-set_union(ARGIN(const Set *s1), ARGIN(const Set *s2))
+set_union(PARROT_INTERP, ARGIN(const Set *s1), ARGIN(const Set *s2))
{
ASSERT_ARGS(set_union)
unsigned int i;
- Set * const s = set_make(s1->length);
+ Set * const s = set_make(interp, s1->length);
if (s1->length != s2->length)
fatal(1, "set_union", "Sets don't have the same length\n");
@@ -318,7 +318,7 @@
/*
-=item C<Set * set_intersec(const Set *s1, const Set *s2)>
+=item C<Set * set_intersec(PARROT_INTERP, const Set *s1, const Set *s2)>
Creates a new Set object that is the intersection of the Set arguments (defined
through the binary C<and> operator.)
@@ -332,11 +332,11 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
Set *
-set_intersec(ARGIN(const Set *s1), ARGIN(const Set *s2))
+set_intersec(PARROT_INTERP, ARGIN(const Set *s1), ARGIN(const Set *s2))
{
ASSERT_ARGS(set_intersec)
unsigned int i;
- Set * const s = set_make(s1->length);
+ Set * const s = set_make(interp, s1->length);
if (s1->length != s2->length)
fatal(1, "set_intersec", "Sets don't have the same length\n");
Modified: branches/ops_pct/compilers/imcc/sets.h
==============================================================================
--- branches/ops_pct/compilers/imcc/sets.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/sets.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -29,8 +29,9 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-Set* set_copy(ARGIN(const Set *s))
- __attribute__nonnull__(1);
+Set* set_copy(PARROT_INTERP, ARGIN(const Set *s))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
int set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2))
__attribute__nonnull__(1)
@@ -47,9 +48,12 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-Set * set_intersec(ARGIN(const Set *s1), ARGIN(const Set *s2))
+Set * set_intersec(PARROT_INTERP,
+ ARGIN(const Set *s1),
+ ARGIN(const Set *s2))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
void set_intersec_inplace(ARGMOD(Set *s1), ARGIN(const Set *s2))
__attribute__nonnull__(1)
@@ -58,17 +62,20 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-Set* set_make(unsigned int length);
+Set* set_make(PARROT_INTERP, unsigned int length)
+ __attribute__nonnull__(1);
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-Set* set_make_full(unsigned int length);
+Set* set_make_full(PARROT_INTERP, unsigned int length)
+ __attribute__nonnull__(1);
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-Set * set_union(ARGIN(const Set *s1), ARGIN(const Set *s2))
+Set * set_union(PARROT_INTERP, ARGIN(const Set *s1), ARGIN(const Set *s2))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
#define ASSERT_ARGS_set_add __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s))
@@ -77,7 +84,8 @@
#define ASSERT_ARGS_set_contains __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_set_copy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(s))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_set_equal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s1) \
, PARROT_ASSERT_ARG(s2))
@@ -86,15 +94,19 @@
#define ASSERT_ARGS_set_free __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_set_intersec __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(s1) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s1) \
, PARROT_ASSERT_ARG(s2))
#define ASSERT_ARGS_set_intersec_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s1) \
, PARROT_ASSERT_ARG(s2))
-#define ASSERT_ARGS_set_make __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_set_make_full __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_set_make __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_set_make_full __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_set_union __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(s1) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s1) \
, PARROT_ASSERT_ARG(s2))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: compilers/imcc/sets.c */
Modified: branches/ops_pct/compilers/imcc/symreg.c
==============================================================================
--- branches/ops_pct/compilers/imcc/symreg.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/symreg.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
* $Id$
*/
@@ -48,19 +48,21 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PARROT_MALLOC
-static char * _mk_fullname(
+static char * _mk_fullname(PARROT_INTERP,
ARGIN_NULLOK(const Namespace *ns),
ARGIN(const char *name))
- __attribute__nonnull__(2);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static SymReg * _mk_symreg(
+static SymReg * _mk_symreg(PARROT_INTERP,
ARGMOD(SymHash *hsh),
ARGIN(const char *name),
int t)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*hsh);
PARROT_WARN_UNUSED_RESULT
@@ -95,17 +97,20 @@
FUNC_MODIFIES(*unit)
FUNC_MODIFIES(*rhs);
-static void resize_symhash(ARGMOD(SymHash *hsh))
+static void resize_symhash(PARROT_INTERP, ARGMOD(SymHash *hsh))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*hsh);
#define ASSERT_ARGS__get_sym_typed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(hsh) \
, PARROT_ASSERT_ARG(name))
#define ASSERT_ARGS__mk_fullname __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(name))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(name))
#define ASSERT_ARGS__mk_symreg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(hsh) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hsh) \
, PARROT_ASSERT_ARG(name))
#define ASSERT_ARGS_add_ns __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -121,7 +126,8 @@
, PARROT_ASSERT_ARG(left) \
, PARROT_ASSERT_ARG(rhs))
#define ASSERT_ARGS_resize_symhash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(hsh))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hsh))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -139,7 +145,7 @@
push_namespace(PARROT_INTERP, ARGIN(const char *name))
{
ASSERT_ARGS(push_namespace)
- Namespace * const ns = mem_allocate_zeroed_typed(Namespace);
+ Namespace * const ns = mem_gc_allocate_zeroed_typed(interp, Namespace);
ns->parent = IMCC_INFO(interp)->namespace_stack;
ns->name = mem_sys_strdup(name);
@@ -244,7 +250,8 @@
/*
-=item C<static SymReg * _mk_symreg(SymHash *hsh, const char *name, int t)>
+=item C<static SymReg * _mk_symreg(PARROT_INTERP, SymHash *hsh, const char
+*name, int t)>
Makes a new SymReg in the given SymHash from a varname and type.
@@ -255,20 +262,20 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static SymReg *
-_mk_symreg(ARGMOD(SymHash *hsh), ARGIN(const char *name), int t)
+_mk_symreg(PARROT_INTERP, ARGMOD(SymHash *hsh), ARGIN(const char *name), int t)
{
ASSERT_ARGS(_mk_symreg)
SymReg * r = _get_sym_typed(hsh, name, t);
if (!r) {
- r = mem_allocate_zeroed_typed(SymReg);
+ r = mem_gc_allocate_zeroed_typed(interp, SymReg);
r->set = t;
r->type = VTREG;
r->name = mem_sys_strdup(name);
r->color = -1;
r->want_regno = -1;
- _store_symreg(hsh, r);
+ _store_symreg(interp, hsh, r);
}
return r;
@@ -296,7 +303,7 @@
/* Check for the condition that fires up a segfault in TT #162 */
PARROT_ASSERT(unit != NULL);
- return _mk_symreg(&unit->hash, name, t);
+ return _mk_symreg(interp, &unit->hash, name, t);
}
@@ -386,10 +393,10 @@
{
ASSERT_ARGS(mk_pcc_sub)
IMC_Unit * const unit = IMCC_INFO(interp)->last_unit;
- SymReg * const r = _mk_symreg(&unit->hash, name, proto);
+ SymReg * const r = _mk_symreg(interp, &unit->hash, name, proto);
r->type = VT_PCC_SUB;
- r->pcc_sub = mem_allocate_zeroed_typed(pcc_sub_t);
+ r->pcc_sub = mem_gc_allocate_zeroed_typed(interp, pcc_sub_t);
return r;
}
@@ -420,7 +427,7 @@
if (unit->prev && unit->prev->_namespace == ns)
unit->_namespace = ns;
else {
- SymReg * const g = dup_sym(ns);
+ SymReg * const g = dup_sym(interp, ns);
SymReg * const r = _get_sym(&IMCC_INFO(interp)->ghash, g->name);
unit->_namespace = g;
@@ -430,7 +437,7 @@
/* this unit should free its namespace only if it's the only thing
* holding onto it */
if (!r || r->type != VT_CONSTP) {
- _store_symreg(&IMCC_INFO(interp)->ghash, g);
+ _store_symreg(interp, &IMCC_INFO(interp)->ghash, g);
unit->owns_namespace = 0;
}
else
@@ -441,7 +448,7 @@
/*
-=item C<void add_pcc_arg(SymReg *r, SymReg *arg)>
+=item C<void add_pcc_arg(PARROT_INTERP, SymReg *r, SymReg *arg)>
Adds a register or constant to the function arg list.
@@ -450,14 +457,14 @@
*/
void
-add_pcc_arg(ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
+add_pcc_arg(PARROT_INTERP, ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
{
ASSERT_ARGS(add_pcc_arg)
pcc_sub_t * const sub = r->pcc_sub;
const int n = sub->nargs;
- mem_realloc_n_typed(sub->args, n + 1, SymReg *);
- mem_realloc_n_typed(sub->arg_flags, n + 1, int);
+ sub->args = mem_gc_realloc_n_typed(interp, sub->args, n + 1, SymReg *);
+ sub->arg_flags = mem_gc_realloc_n_typed(interp, sub->arg_flags, n + 1, int);
sub->args[n] = arg;
sub->arg_flags[n] = arg->type;
@@ -470,7 +477,7 @@
/*
-=item C<void add_pcc_result(SymReg *r, SymReg *arg)>
+=item C<void add_pcc_result(PARROT_INTERP, SymReg *r, SymReg *arg)>
Adds a register or constant to the function's return list.
@@ -479,14 +486,14 @@
*/
void
-add_pcc_result(ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
+add_pcc_result(PARROT_INTERP, ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
{
ASSERT_ARGS(add_pcc_result)
pcc_sub_t * const sub = r->pcc_sub;
const int n = sub->nret;
- mem_realloc_n_typed(sub->ret, n + 1, SymReg *);
- mem_realloc_n_typed(sub->ret_flags, n + 1, int);
+ sub->ret = mem_gc_realloc_n_typed(interp, sub->ret, n + 1, SymReg *);
+ sub->ret_flags = mem_gc_realloc_n_typed(interp, sub->ret_flags, n + 1, int);
/* we can't keep the flags in the SymReg as the SymReg
* maybe used with different flags for different calls */
@@ -501,7 +508,7 @@
/*
-=item C<void add_pcc_multi(SymReg *r, SymReg *arg)>
+=item C<void add_pcc_multi(PARROT_INTERP, SymReg *r, SymReg *arg)>
Adds a :multi signature to the sub.
@@ -510,13 +517,13 @@
*/
void
-add_pcc_multi(ARGMOD(SymReg *r), ARGIN_NULLOK(SymReg *arg))
+add_pcc_multi(PARROT_INTERP, ARGMOD(SymReg *r), ARGIN_NULLOK(SymReg *arg))
{
ASSERT_ARGS(add_pcc_multi)
pcc_sub_t * const sub = r->pcc_sub;
const int n = sub->nmulti;
- mem_realloc_n_typed(sub->multi, n + 1, SymReg *);
+ sub->multi = mem_gc_realloc_n_typed(interp, sub->multi, n + 1, SymReg *);
sub->multi[n] = arg;
sub->nmulti++;
}
@@ -592,7 +599,8 @@
/*
-=item C<static char * _mk_fullname(const Namespace *ns, const char *name)>
+=item C<static char * _mk_fullname(PARROT_INTERP, const Namespace *ns, const
+char *name)>
Combines the namespace and name together, separated by a C<::>. If there's no
namespace, the name is returned on its own.
@@ -607,12 +615,12 @@
PARROT_CANNOT_RETURN_NULL
PARROT_MALLOC
static char *
-_mk_fullname(ARGIN_NULLOK(const Namespace *ns), ARGIN(const char *name))
+_mk_fullname(PARROT_INTERP, ARGIN_NULLOK(const Namespace *ns), ARGIN(const char *name))
{
ASSERT_ARGS(_mk_fullname)
if (ns) {
const size_t len = strlen(name) + strlen(ns->name) + 3;
- char *result = (char *) mem_sys_allocate(len);
+ char *result = mem_gc_allocate_n_typed(interp, len, char);
snprintf(result, len, "%s::%s", ns->name, name);
return result;
}
@@ -637,7 +645,7 @@
mk_ident(PARROT_INTERP, ARGIN(const char *name), int t)
{
ASSERT_ARGS(mk_ident)
- char * const fullname = _mk_fullname(IMCC_INFO(interp)->namespace_stack, name);
+ char * const fullname = _mk_fullname(interp, IMCC_INFO(interp)->namespace_stack, name);
SymReg *r = get_sym_by_name(&(IMCC_INFO(interp)->last_unit->hash), name);
if (r && r->set != t)
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -648,7 +656,7 @@
if (IMCC_INFO(interp)->namespace_stack) {
- Identifier * const ident = mem_allocate_zeroed_typed(Identifier);
+ Identifier * const ident = mem_gc_allocate_zeroed_typed(interp, Identifier);
ident->name = fullname;
ident->next = IMCC_INFO(interp)->namespace_stack->idents;
@@ -784,7 +792,7 @@
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
"global PMC constant not allowed");
- r = _mk_symreg(&IMCC_INFO(interp)->ghash, name, t);
+ r = _mk_symreg(interp, &IMCC_INFO(interp)->ghash, name, t);
}
else {
r = mk_ident(interp, name, t);
@@ -802,7 +810,8 @@
/*
-=item C<SymReg * _mk_const(SymHash *hsh, const char *name, int t)>
+=item C<SymReg * _mk_const(PARROT_INTERP, SymHash *hsh, const char *name, int
+t)>
Makes a new constant (internal use only).
@@ -813,10 +822,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
SymReg *
-_mk_const(ARGMOD(SymHash *hsh), ARGIN(const char *name), int t)
+_mk_const(PARROT_INTERP, ARGMOD(SymHash *hsh), ARGIN(const char *name), int t)
{
ASSERT_ARGS(_mk_const)
- SymReg * const r = _mk_symreg(hsh, name, t);
+ SymReg * const r = _mk_symreg(interp, hsh, name, t);
r->type = VTCONST;
if (t == 'U') {
@@ -902,9 +911,9 @@
SymHash * const h = &IMCC_INFO(interp)->ghash;
if (!h->data)
- create_symhash(h);
+ create_symhash(interp, h);
- return _mk_const(h, name, t);
+ return _mk_const(interp, h, name, t);
}
@@ -981,10 +990,10 @@
if (r && r->usage & U_LEXICAL)
is_lexical = 1;
- r = mem_allocate_zeroed_typed(SymReg);
+ r = mem_gc_allocate_zeroed_typed(interp, SymReg);
r->type = VTADDRESS;
r->name = mem_sys_strdup(name);
- _store_symreg(hsh, r);
+ _store_symreg(interp, hsh, r);
if (is_lexical)
r->usage |= U_LEXICAL;
@@ -995,7 +1004,7 @@
const char * const sub_name = (uniq == U_add_uniq_sub)
/* remember to free this name; add_ns malloc()s it */
? (aux_name = add_ns(interp, name))
- : (char *)name;
+ : name;
r = _get_sym(hsh, sub_name);
@@ -1011,7 +1020,7 @@
}
}
- r = _mk_symreg(hsh, sub_name, 0);
+ r = _mk_symreg(interp, hsh, sub_name, 0);
r->type = VTADDRESS;
if (uniq) {
@@ -1119,7 +1128,7 @@
/*
-=item C<SymReg * dup_sym(const SymReg *r)>
+=item C<SymReg * dup_sym(PARROT_INTERP, const SymReg *r)>
Links keys to a keys structure = SymReg
@@ -1164,15 +1173,15 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
SymReg *
-dup_sym(ARGIN(const SymReg *r))
+dup_sym(PARROT_INTERP, ARGIN(const SymReg *r))
{
ASSERT_ARGS(dup_sym)
- SymReg * const new_sym = mem_allocate_zeroed_typed(SymReg);
+ SymReg * const new_sym = mem_gc_allocate_zeroed_typed(interp, SymReg);
STRUCT_COPY(new_sym, r);
new_sym->name = mem_sys_strdup(r->name);
if (r->nextkey)
- new_sym->nextkey = dup_sym(r->nextkey);
+ new_sym->nextkey = dup_sym(interp, r->nextkey);
return new_sym;
}
@@ -1236,7 +1245,7 @@
}
/* no, need a new one */
- keychain = mem_allocate_zeroed_typed(SymReg);
+ keychain = mem_gc_allocate_zeroed_typed(interp, SymReg);
keychain->type = VTCONST;
++keychain->use_count;
@@ -1249,7 +1258,7 @@
if (REG_NEEDS_ALLOC(keys[i]))
keychain->type |= VTREGKEY;
- key->nextkey = dup_sym(keys[i]);
+ key->nextkey = dup_sym(interp, keys[i]);
key = key->nextkey;
/* for registers, point ->reg to the original, needed by
@@ -1262,7 +1271,7 @@
keychain->set = 'K';
keychain->color = -1;
- _store_symreg(h, keychain);
+ _store_symreg(interp, h, keychain);
return keychain;
}
@@ -1316,7 +1325,7 @@
/*
-=item C<void create_symhash(SymHash *hash)>
+=item C<void create_symhash(PARROT_INTERP, SymHash *hash)>
Creates a symbol hash table with space for 16 entries.
@@ -1325,10 +1334,10 @@
*/
void
-create_symhash(ARGOUT(SymHash *hash))
+create_symhash(PARROT_INTERP, ARGOUT(SymHash *hash))
{
ASSERT_ARGS(create_symhash)
- hash->data = mem_allocate_n_zeroed_typed(16, SymReg *);
+ hash->data = mem_gc_allocate_n_zeroed_typed(interp, 16, SymReg *);
hash->size = 16;
hash->entries = 0;
}
@@ -1336,7 +1345,7 @@
/*
-=item C<static void resize_symhash(SymHash *hsh)>
+=item C<static void resize_symhash(PARROT_INTERP, SymHash *hsh)>
Resizes a symbol hash table.
@@ -1345,16 +1354,16 @@
*/
static void
-resize_symhash(ARGMOD(SymHash *hsh))
+resize_symhash(PARROT_INTERP, ARGMOD(SymHash *hsh))
{
ASSERT_ARGS(resize_symhash)
const int new_size = hsh->size << 1; /* new size is twice as large */
int n_next = 16;
- SymReg **next_r = mem_allocate_n_zeroed_typed(n_next, SymReg *);
+ SymReg **next_r = mem_gc_allocate_n_zeroed_typed(interp, n_next, SymReg *);
SymHash nh; /* new symbol table */
unsigned int i;
- nh.data = mem_allocate_n_zeroed_typed(new_size, SymReg *);
+ nh.data = mem_gc_allocate_n_zeroed_typed(interp, new_size, SymReg *);
for (i = 0; i < hsh->size; i++) {
SymReg *r, *next;
@@ -1367,7 +1376,7 @@
/* remember all the chained next pointers and clear r->next */
if (j >= n_next) {
n_next <<= 1;
- mem_realloc_n_typed(next_r, n_next, SymReg *);
+ next_r = mem_gc_realloc_n_typed(interp, next_r, n_next, SymReg *);
}
r->next = NULL;
@@ -1396,7 +1405,7 @@
/*
-=item C<void _store_symreg(SymHash *hsh, SymReg *r)>
+=item C<void _store_symreg(PARROT_INTERP, SymHash *hsh, SymReg *r)>
Stores a symbol in the hash (internal use only).
@@ -1405,7 +1414,7 @@
*/
void
-_store_symreg(ARGMOD(SymHash *hsh), ARGMOD(SymReg *r))
+_store_symreg(PARROT_INTERP, ARGMOD(SymHash *hsh), ARGMOD(SymReg *r))
{
ASSERT_ARGS(_store_symreg)
const int i = hash_str(r->name) % hsh->size;
@@ -1418,7 +1427,7 @@
hsh->entries++;
if (hsh->entries >= hsh->size)
- resize_symhash(hsh);
+ resize_symhash(interp, hsh);
}
@@ -1436,7 +1445,7 @@
store_symreg(PARROT_INTERP, ARGMOD(SymReg *r))
{
ASSERT_ARGS(store_symreg)
- _store_symreg(&IMCC_INFO(interp)->cur_unit->hash, r);
+ _store_symreg(interp, &IMCC_INFO(interp)->cur_unit->hash, r);
}
@@ -1512,7 +1521,7 @@
SymReg *p;
for (ns = nspace; ns; ns = ns->parent) {
- char * const fullname = _mk_fullname(ns, name);
+ char * const fullname = _mk_fullname(interp, ns, name);
p = _get_sym(hsh, fullname);
mem_sys_free(fullname);
Modified: branches/ops_pct/compilers/imcc/symreg.h
==============================================================================
--- branches/ops_pct/compilers/imcc/symreg.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/imcc/symreg.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -138,14 +138,19 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-SymReg * _mk_const(ARGMOD(SymHash *hsh), ARGIN(const char *name), int t)
+SymReg * _mk_const(PARROT_INTERP,
+ ARGMOD(SymHash *hsh),
+ ARGIN(const char *name),
+ int t)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*hsh);
-void _store_symreg(ARGMOD(SymHash *hsh), ARGMOD(SymReg *r))
+void _store_symreg(PARROT_INTERP, ARGMOD(SymHash *hsh), ARGMOD(SymReg *r))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*hsh)
FUNC_MODIFIES(*r);
@@ -154,9 +159,10 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*unit);
-void add_pcc_arg(ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
+void add_pcc_arg(PARROT_INTERP, ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*r)
FUNC_MODIFIES(*arg);
@@ -165,13 +171,17 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*r);
-void add_pcc_multi(ARGMOD(SymReg *r), ARGIN_NULLOK(SymReg *arg))
+void add_pcc_multi(PARROT_INTERP,
+ ARGMOD(SymReg *r),
+ ARGIN_NULLOK(SymReg *arg))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*r);
-void add_pcc_result(ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
+void add_pcc_result(PARROT_INTERP, ARGMOD(SymReg *r), ARGMOD(SymReg *arg))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*r)
FUNC_MODIFIES(*arg);
@@ -188,8 +198,9 @@
__attribute__nonnull__(1)
FUNC_MODIFIES(*hsh);
-void create_symhash(ARGOUT(SymHash *hash))
+void create_symhash(PARROT_INTERP, ARGOUT(SymHash *hash))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*hash);
void debug_dump_sym_hash(ARGIN(const SymHash *hsh))
@@ -197,8 +208,9 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-SymReg * dup_sym(ARGIN(const SymReg *r))
- __attribute__nonnull__(1);
+SymReg * dup_sym(PARROT_INTERP, ARGIN(const SymReg *r))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
@@ -338,24 +350,29 @@
, PARROT_ASSERT_ARG(hsh) \
, PARROT_ASSERT_ARG(name))
#define ASSERT_ARGS__mk_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(hsh) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hsh) \
, PARROT_ASSERT_ARG(name))
#define ASSERT_ARGS__store_symreg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(hsh) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hsh) \
, PARROT_ASSERT_ARG(r))
#define ASSERT_ARGS_add_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_add_pcc_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(r) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(r) \
, PARROT_ASSERT_ARG(arg))
#define ASSERT_ARGS_add_pcc_cc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(r) \
, PARROT_ASSERT_ARG(arg))
#define ASSERT_ARGS_add_pcc_multi __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(r))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(r))
#define ASSERT_ARGS_add_pcc_result __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(r) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(r) \
, PARROT_ASSERT_ARG(arg))
#define ASSERT_ARGS_add_pcc_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(r) \
@@ -366,11 +383,13 @@
#define ASSERT_ARGS_clear_sym_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(hsh))
#define ASSERT_ARGS_create_symhash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(hash))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hash))
#define ASSERT_ARGS_debug_dump_sym_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(hsh))
#define ASSERT_ARGS_dup_sym __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(r))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(r))
#define ASSERT_ARGS_find_sym __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
Modified: branches/ops_pct/compilers/ncigen/t/NCIGENAST/struct_00.t
==============================================================================
--- branches/ops_pct/compilers/ncigen/t/NCIGENAST/struct_00.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/ncigen/t/NCIGENAST/struct_00.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,9 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
use lib ('./lib', '../../lib');
use Parrot::Test::NCIGENAST;
@@ -16,3 +21,10 @@
CODE
contains("<complex> => PMC 'NCIGENAST;Struct'");
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/compilers/ncigen/t/NCIGENAST/typedef_00.t
==============================================================================
--- branches/ops_pct/compilers/ncigen/t/NCIGENAST/typedef_00.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/ncigen/t/NCIGENAST/typedef_00.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,9 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
use lib ('./lib', '../../lib');
use Parrot::Test::NCIGENAST;
@@ -24,3 +29,10 @@
parse('int a(), b(), c()');
parse_failure;
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/compilers/ncigen/t/parse_00.t
==============================================================================
--- branches/ops_pct/compilers/ncigen/t/parse_00.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/ncigen/t/parse_00.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,9 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
use lib ('./lib', '../../lib');
use Parrot::Test::NCIGENAST;
@@ -120,7 +125,7 @@
int a = 10 * sizeof(int) * 13;
CODE
-parse_success(<<'CODE', 'times_04.c').c;
+parse_success(<<'CODE', 'times_04.c');
int a = 8 * 3;
CODE
@@ -173,3 +178,10 @@
parse_success(<<'CODE', 'void_star.c');
__extension__ typedef void * __timer_t;
CODE
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/compilers/ncigen/t/parse_01.t
==============================================================================
--- branches/ops_pct/compilers/ncigen/t/parse_01.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/ncigen/t/parse_01.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,9 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
use lib ('./lib', '../../lib');
use Parrot::Test::NCIGENAST;
@@ -26,3 +31,10 @@
int sqlite3_open( const char *filename, sqlite3 **ppDb);
CODE
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/compilers/ncigen/t/parse_02.t
==============================================================================
--- branches/ops_pct/compilers/ncigen/t/parse_02.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/ncigen/t/parse_02.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,9 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
use lib ('./lib', '../../lib');
use Parrot::Test::NCIGENAST;
@@ -70,3 +75,10 @@
parse_success(<<'CODE', 'Xlib.h 2');
extern int (*XSetAfterFunction( Display* , int (*) ( Display*)))( Display*);
CODE
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/compilers/pirc/src/bcgen.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/bcgen.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/bcgen.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -798,10 +798,10 @@
/* A type_count of 1 means there was a :multi flag, but no :multi types.
* therefore, create a special signature and return that. */
if (type_count == 1)
- return pmc_new(bc->interp, enum_class_FixedIntegerArray);
+ return Parrot_pmc_new(bc->interp, enum_class_FixedIntegerArray);
/* create a FixedPMCArray to store all multi types */
- multi_signature = pmc_new(bc->interp, enum_class_FixedPMCArray);
+ multi_signature = Parrot_pmc_new(bc->interp, enum_class_FixedPMCArray);
/* set its size as specified in type_count */
VTABLE_set_integer_native(bc->interp, multi_signature, type_count);
@@ -818,7 +818,7 @@
/* add the string to the constant table, retrieve a pointer to the STRING */
STRING * typestring = add_string_const_from_cstring(bc, types[i].entry.ident);
/* create a new String PMC. */
- sig_pmc = pmc_new(bc->interp, enum_class_String);
+ sig_pmc = Parrot_pmc_new(bc->interp, enum_class_String);
/* set the STRING in the String PMC */
VTABLE_set_string_native(bc->interp, sig_pmc, typestring);
break;
@@ -977,7 +977,7 @@
STRING * const method = string_from_literal(bc->interp, "declare_lex_preg");
/* create a lexinfo PMC */
- PMC * lex_info = pmc_new_noinit(bc->interp, lex_info_id);
+ PMC * lex_info = Parrot_pmc_new_noinit(bc->interp, lex_info_id);
VTABLE_init_pmc(bc->interp, lex_info, sub);
/* walk through the list of lexicals and register them */
@@ -1001,7 +1001,7 @@
* :lex flag, then create the lex_info anyway.
*/
if (lex_info == NULL && needlex) {
- lex_info = pmc_new_noinit(bc->interp, lex_info_id);
+ lex_info = Parrot_pmc_new_noinit(bc->interp, lex_info_id);
VTABLE_init_pmc(bc->interp, lex_info, sub);
}
@@ -1108,7 +1108,7 @@
switch (ns->entry_type) {
case MULTI_TYPE_IDENT: {
- PMC *namespace_pmc = constant_pmc_new(bc->interp, enum_class_String);
+ PMC *namespace_pmc = Parrot_pmc_new_constant(bc->interp, enum_class_String);
PARROT_NAMESPACE(namespace_pmc)->name =
add_string_const_from_cstring(bc, ns->entry.ident);
break;
@@ -1161,7 +1161,7 @@
Parrot_ex_throw_from_c_args(bc->interp, NULL, EXCEPTION_NO_CLASS,
"Requested sub class '%Ss' in :instanceof() not found", classname);
- return pmc_new(bc->interp, type);
+ return Parrot_pmc_new(bc->interp, type);
}
}
@@ -1175,7 +1175,7 @@
* TODO create constant - see also src/packfile.c
* XXX is this (still) necessary?
*/
- return pmc_new(bc->interp, type);
+ return Parrot_pmc_new(bc->interp, type);
}
/*
Modified: branches/ops_pct/compilers/pirc/src/main.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/main.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/main.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -27,7 +27,7 @@
#endif
-
+/* HEADERIZER HFILE: none */
/* XXX use pthreads library to test thread safety.
does not work currently on windows.
@@ -47,6 +47,26 @@
void * process_file(void *a);
+/* HEADERIZER HFILE: none */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void print_help(ARGIN(char const * const program_name))
+ __attribute__nonnull__(1);
+
+static void runcode(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+#define ASSERT_ARGS_print_help __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(program_name))
+#define ASSERT_ARGS_runcode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(argv))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/*
=head1 FUNCTIONS
@@ -54,8 +74,7 @@
=over 4
-=item C<static void
-print_help(char const * const program_name)>
+=item C<static void print_help(char const * const program_name)>
Routine to print usage of this program.
@@ -63,7 +82,7 @@
*/
static void
-print_help(char const * const program_name)
+print_help(ARGIN(char const * const program_name))
{
fprintf(stderr, "Usage: %s [options] <file>\n", program_name);
fprintf(stderr, "Options:\n\n"
@@ -116,8 +135,10 @@
Unpack the arguments and invoke parse_file().
*/
+PARROT_CAN_RETURN_NULL
void *
-process_file(void *a) {
+process_file(ARGIN(void *a))
+{
/* unpack the arguments from the structure parser_args */
@@ -137,8 +158,7 @@
/*
-=item C<static void
-runcode(PARROT_INTERP, int argc, char *argv[])>
+=item C<static void runcode(PARROT_INTERP, int argc, char *argv[])>
This function runs the code in the interpreter's (in C<PARROT_INTERP>)
code segment.
@@ -147,7 +167,8 @@
*/
static void
-runcode(PARROT_INTERP, int argc, char *argv[]) {
+runcode(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+{
/* runs :init functions */
PackFile_fixup_subs(interp, PBC_MAIN, NULL);
@@ -159,8 +180,7 @@
/*
-=item C<int
-main(int argc, char *argv[])>
+=item C<int main(int argc, char *argv[])>
Main compiler driver.
Modified: branches/ops_pct/compilers/pirc/src/pir.y
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pir.y Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pir.y Sun Mar 7 19:33:20 2010 (r44743)
@@ -88,6 +88,14 @@
#endif
+/* HEADERIZER HFILE: none */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
char *expand_macro(yyscan_t yyscanner, macro_def * const macro, macro_param * args);
/* Enumeration of mathematical operator types; these are used to index the opnames array. */
Modified: branches/ops_pct/compilers/pirc/src/pircapi.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircapi.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pircapi.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -180,6 +180,7 @@
parse_string(PARROT_INTERP, ARGIN(char *pirstring), int flags, int pasminput,
unsigned macro_size)
{
+ ASSERT_ARGS(parse_string)
yyscan_t yyscanner;
lexer_state *lexer = NULL;
char name[64];
Modified: branches/ops_pct/compilers/pirc/src/pircompiler.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompiler.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pircompiler.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -15,6 +15,47 @@
#include "pirregalloc.h"
#include "pirerr.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pircompiler.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static char const * find_string(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const str))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static allocated_mem_ptrs * new_mem_ptrs_block(void);
+
+static void register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void store_string(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const str))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_find_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(str))
+#define ASSERT_ARGS_new_mem_ptrs_block __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_register_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(ptr))
+#define ASSERT_ARGS_store_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(str))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/* XXX count memory, so we can check out mem. savings of string reuse
* Only temporarily used, so no need to "fix" this.
*/
@@ -26,8 +67,7 @@
=over 4
-=item C<static allocated_mem_ptrs *
-new_mem_ptrs_block(void)>
+=item C<static allocated_mem_ptrs * new_mem_ptrs_block(void)>
Create a new C<allocated_mem_ptrs> block; all pointers to allocated memory
within pirc are stored in such blocks. One block has space for a number of
@@ -41,14 +81,15 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
static allocated_mem_ptrs *
-new_mem_ptrs_block(void) {
+new_mem_ptrs_block(void)
+{
+ ASSERT_ARGS(new_mem_ptrs_block)
return mem_allocate_zeroed_typed(allocated_mem_ptrs);
}
/*
-=item C<static void
-register_ptr(lexer_state *lexer, void *ptr)>
+=item C<static void register_ptr(lexer_state *lexer, void *ptr)>
Store the pointer C<ptr> in a datastructure; whenever C<release_resources()>
is invoked, C<ptr> will be freed through C<mem_sys_free()>.
@@ -57,7 +98,9 @@
*/
static void
-register_ptr(NOTNULL(lexer_state *lexer), ARGIN(void *ptr)) {
+register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+{
+ ASSERT_ARGS(register_ptr)
allocated_mem_ptrs *ptrs = lexer->mem_allocations;
PARROT_ASSERT(ptrs);
@@ -75,8 +118,8 @@
/*
-=item C<void *
-pir_mem_allocate_zeroed(lexer_state * const lexer, size_t numbytes)>
+=item C<void * pir_mem_allocate_zeroed(lexer_state * const lexer, size_t
+numbytes)>
Memory allocation function for all PIR internal functions. Memory is allocated
through Parrot's allocation functions, but the pointer to the allocated memory
@@ -92,7 +135,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
void *
-pir_mem_allocate_zeroed(NOTNULL(lexer_state * const lexer), size_t numbytes) {
+pir_mem_allocate_zeroed(ARGIN(lexer_state * const lexer), size_t numbytes)
+{
void *ptr = mem_sys_allocate_zeroed(numbytes);
totalmem += numbytes;
@@ -103,8 +147,7 @@
/*
-=item C<void *
-pir_mem_allocate(NOTNULL(lexer_state * const lexer), size_t numbytes)>
+=item C<void * pir_mem_allocate(lexer_state * const lexer, size_t numbytes)>
See C<pir_mem_allocate_zeroed()>. Memory is C<not> guaranteed to be zeroed.
(It might, it might not, depending on what your system finds appropriate.
@@ -117,7 +160,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
void *
-pir_mem_allocate(NOTNULL(lexer_state * const lexer), size_t numbytes) {
+pir_mem_allocate(ARGIN(lexer_state * const lexer), size_t numbytes)
+{
void *ptr = mem_sys_allocate(numbytes);
totalmem += numbytes;
@@ -129,8 +173,8 @@
/*
-=item C<void
-init_hashtable(lexer_state * const lexer, hashtable * const table, unsigned size)>
+=item C<void init_hashtable(lexer_state * const lexer, hashtable * const table,
+unsigned size)>
Initialize the hashtable C<table> with space for C<size> buckets.
@@ -138,7 +182,7 @@
*/
void
-init_hashtable(NOTNULL(lexer_state * const lexer), NOTNULL(hashtable * const table),
+init_hashtable(ARGIN(lexer_state * const lexer), ARGIN(hashtable * const table),
unsigned size)
{
table->contents = (bucket **)pir_mem_allocate_zeroed(lexer, size * sizeof (bucket *));
@@ -148,8 +192,8 @@
/*
-=item C<lexer_state *
-new_lexer(char * const filename, int flags)>
+=item C<lexer_state * new_lexer(PARROT_INTERP, char * const filename, int
+flags)>
Constructor for a lexer structure. Initializes all fields, creates
a Parrot interpreter structure.
@@ -161,7 +205,8 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
lexer_state *
-new_lexer(PARROT_INTERP, NULLOK(char * const filename), int flags) {
+new_lexer(PARROT_INTERP, ARGIN_NULLOK(char * const filename), int flags)
+{
lexer_state *lexer = mem_allocate_zeroed_typed(lexer_state);
lexer->filename = filename;
lexer->interp = interp;
@@ -207,8 +252,7 @@
/*
-=item C<bucket *
-new_bucket(lexer_state * const lexer)>
+=item C<bucket * new_bucket(lexer_state * const lexer)>
Constructor for a bucket object.
@@ -218,14 +262,15 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
bucket *
-new_bucket(NOTNULL(lexer_state * const lexer)) {
+new_bucket(ARGIN(lexer_state * const lexer))
+{
return pir_mem_allocate_zeroed_typed(lexer, bucket);
}
/*
-=item C<static void
-store_string(lexer_state * const lexer, char const * const str)>
+=item C<static void store_string(lexer_state * const lexer, char const * const
+str)>
Store the string C<str> in a hashtable; whenever this string is needed, a pointer
to the same physical string is returned, preventing allocating different buffers
@@ -236,7 +281,9 @@
*/
static void
-store_string(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const str)) {
+store_string(ARGIN(lexer_state * const lexer), ARGIN(char const * const str))
+{
+ ASSERT_ARGS(store_string)
hashtable *table = &lexer->strings;
unsigned long hash = get_hashcode(str, table->size);
bucket *b = new_bucket(lexer);
@@ -246,8 +293,8 @@
/*
-=item C<static char const *
-find_string(lexer_state * const lexer, char const * const str)>
+=item C<static char const * find_string(lexer_state * const lexer, char const *
+const str)>
Find the string C<str> in the lexer's string hashtable. If the string was found,
then a pointer to that buffer is returned. So, whenever for instance the string
@@ -260,7 +307,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static char const *
-find_string(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const str)) {
+find_string(ARGIN(lexer_state * const lexer), ARGIN(char const * const str))
+{
+ ASSERT_ARGS(find_string)
hashtable *table = &lexer->strings;
unsigned long hash = get_hashcode(str, table->size);
bucket *b = get_bucket(table, hash);
@@ -278,8 +327,8 @@
/*
-=item C<char *
-dupstrn(lexer_state * const lexer, char const * const source, size_t slen)>
+=item C<char const * dupstrn(lexer_state * const lexer, char * const source,
+size_t slen)>
See dupstr, except that this version takes the number of characters to be
copied. Easy for copying a string except the quotes, for instance.
@@ -293,7 +342,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
char const *
-dupstrn(NOTNULL(lexer_state * const lexer), NOTNULL(char * const source), size_t slen) {
+dupstrn(ARGIN(lexer_state * const lexer), ARGIN(char * const source), size_t slen)
+{
char const * result = find_string(lexer, source);
/* make sure the string is terminated in time */
source[slen] = '\0';
@@ -313,8 +363,7 @@
/*
-=item C<char *
-dupstr(lexer_state * const lexer, char const * const source)>
+=item C<char const * dupstr(lexer_state * const lexer, char * const source)>
The C89 standard does not define a strdup() in the C library,
so define our own strdup. Function names beginning with "str"
@@ -327,14 +376,14 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
char const *
-dupstr(NOTNULL(lexer_state * const lexer), NOTNULL(char * const source)) {
+dupstr(ARGIN(lexer_state * const lexer), ARGIN(char * const source))
+{
return dupstrn(lexer, source, strlen(source));
}
/*
-=item C<void
-release_resources(lexer_state *lexer)>
+=item C<void release_resources(lexer_state *lexer)>
Release all resources pointed to by C<lexer>.
Free all memory that was allocated through C<pir_mem_allocate_zeroed()>.
@@ -344,7 +393,8 @@
*/
void
-release_resources(NOTNULL(lexer_state *lexer)) {
+release_resources(ARGIN(lexer_state *lexer))
+{
allocated_mem_ptrs *iter;
if (TEST_FLAG(lexer->flags, LEXER_FLAG_VERBOSE))
@@ -375,8 +425,8 @@
/*
-=item C<void
-pirwarning(lexer_state * const lexer, int lineno, char const * const message, ...)>
+=item C<void pirwarning(lexer_state * const lexer, int lineno, char const *
+const message, ...)>
Emit a warning message to C<stderr>. The line number (passed in C<lineno>) is reported,
together with the message. The message can be formatted, meaning it can contain
@@ -387,7 +437,11 @@
*/
void
-pirwarning(lexer_state * const lexer, int lineno, char const * const message, ...) {
+pirwarning(ARGIN(lexer_state * const lexer),
+ int lineno,
+ ARGIN(char const * const message),
+ ...)
+{
va_list arg_ptr;
fprintf(stderr, "warning (line %d): ", lineno);
va_start(arg_ptr, message);
Modified: branches/ops_pct/compilers/pirc/src/pircompiler.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompiler.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pircompiler.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -158,20 +158,6 @@
/* accessor for current macro; always first on the list. */
#define CURRENT_MACRO(X) (X)->macros->definitions
-
-/* constructor for a lexer_state object */
-lexer_state *new_lexer(PARROT_INTERP, char * const filename, int flags);
-
-void release_resources(lexer_state *lexer);
-
-char const *dupstr(lexer_state * const lexer, char * const str);
-
-char const *dupstrn(lexer_state * const lexer, char * const str, size_t numchars);
-
-bucket *new_bucket(lexer_state * const lexer);
-
-void init_hashtable(lexer_state * const lexer, hashtable * const table, unsigned size);
-
/* same trick as in parrot's memory system, for "automagic" casting */
#define pir_mem_allocate_zeroed_typed(lxr, type) (type *)pir_mem_allocate_zeroed(lxr, sizeof (type))
@@ -179,11 +165,97 @@
* allocated will be freed after the compilation. If you only need some memory temporarily
* and freeing can be done soon after (manually), then use parrot's mem_sys_allocate().
*/
-void *pir_mem_allocate_zeroed(lexer_state * const lexer, size_t numbytes);
-void *pir_mem_allocate(lexer_state * const lexer, size_t numbytes);
+/* HEADERIZER BEGIN: compilers/pirc/src/pircompiler.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+char const * dupstr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char * const source))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+char const * dupstrn(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char * const source),
+ size_t slen)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void init_hashtable(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(hashtable * const table),
+ unsigned size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+bucket * new_bucket(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+lexer_state * new_lexer(PARROT_INTERP,
+ ARGIN_NULLOK(char * const filename),
+ int flags)
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+void * pir_mem_allocate(ARGIN(lexer_state * const lexer), size_t numbytes)
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+void * pir_mem_allocate_zeroed(
+ ARGIN(lexer_state * const lexer),
+ size_t numbytes)
+ __attribute__nonnull__(1);
+
+void pirwarning(
+ ARGIN(lexer_state * const lexer),
+ int lineno,
+ ARGIN(char const * const message),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+void release_resources(ARGIN(lexer_state *lexer))
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_dupstr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(source))
+#define ASSERT_ARGS_dupstrn __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(source))
+#define ASSERT_ARGS_init_hashtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(table))
+#define ASSERT_ARGS_new_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_lexer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pir_mem_allocate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_pir_mem_allocate_zeroed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_pirwarning __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(message))
+#define ASSERT_ARGS_release_resources __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pircompiler.c */
-void pirwarning(lexer_state * const lexer, int lineno, char const * const message, ...);
#endif /* PARROT_PIR_PIRCOMPILER_H_GUARD */
Modified: branches/ops_pct/compilers/pirc/src/pircompunit.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompunit.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pircompunit.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -44,6 +44,93 @@
#include "parrot/dynext.h"
#include "pmc/pmc_callcontext.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pircompunit.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void add_self_parameter(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static constant * create_const(
+ ARGIN(lexer_state * const lexer),
+ value_type type,
+ va_list arg_ptr)
+ __attribute__nonnull__(1);
+
+static void fixup_local_labels(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static expression * new_expr(
+ ARGIN(lexer_state * const lexer),
+ expr_type type)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static instruction * new_instruction(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static invocation * new_invocation(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static key_entry * new_key_entry(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static label * new_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelid),
+ int offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void new_statement(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_add_self_parameter __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_create_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_fixup_local_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_expr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_instruction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_new_invocation __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_key_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_new_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelid))
+#define ASSERT_ARGS_new_statement __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
static unsigned const prime_numbers[] = {113 /* XXX think of more primes */ };
@@ -53,8 +140,7 @@
=over 4
-=item C<void
-reset_register_allocator(lexer_state * const lexer)>
+=item C<void reset_register_allocator(lexer_state * const lexer)>
Reset the register numbers for all types. After this
function has been invoked, the next request for a new
@@ -65,7 +151,8 @@
*/
void
-reset_register_allocator(lexer_state * const lexer) {
+reset_register_allocator(ARGIN(lexer_state * const lexer))
+{
/* set register allocator to 0 for all register types. */
int i;
for (i = 0; i < NUM_PARROT_TYPES; ++i)
@@ -75,8 +162,7 @@
/*
-=item C<void
-set_namespace(lexer_state * const lexer, key * const ns)>
+=item C<void set_namespace(lexer_state * const lexer, key * const ns)>
Set the current namespace in the lexer state, so that it is
available when needed, i.e. when a new subroutine node is
@@ -86,14 +172,15 @@
*/
void
-set_namespace(lexer_state * const lexer, key * const ns) {
+set_namespace(ARGIN(lexer_state * const lexer), ARGIN(key * const ns))
+{
lexer->current_ns = ns;
}
/*
-=item C<void
-set_sub_outer(lexer_state * const lexer, char const * const outersub)>
+=item C<void set_sub_outer(lexer_state * const lexer, char const * const
+outersub)>
Set the lexically enclosing sub for the current sub.
Thus, set the :outer() argument to the current subroutine.
@@ -102,7 +189,9 @@
*/
void
-set_sub_outer(lexer_state * const lexer, char const * const outersub) {
+set_sub_outer(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outersub))
+{
CURRENT_SUB(lexer)->info.outersub = outersub;
SET_FLAG(lexer->subs->flags, PIRC_SUB_FLAG_HAS_OUTER);
}
@@ -112,7 +201,7 @@
/*
=item C<void
-set_sub_multi_type(lexer_state * const lexer, expression * const multitype)>
+set_sub_multi_type(ARGIN(lexer_state * const lexer), expression * const multitype)>
Add the multi-method signature type in C<multitype> to the current subroutine.
@@ -120,7 +209,9 @@
*/
void
-set_sub_multi_types(lexer_state * const lexer, expression * const multitype) {
+set_sub_multi_types(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const multitype))
+{
/* info.num_types is 1 higher than the actual number of types;
* n=1 means :multi() without any types; therefore, subtract 1 for actual number.
*/
@@ -159,8 +250,7 @@
/*
-=item C<static void
-add_self_parameter(lexer_state * const lexer)>
+=item C<static void add_self_parameter(lexer_state * const lexer)>
Add a parameter named C<"self"> to the current subroutine, but only
if both :vtable and :method flags have I<not> been set yet. If either
@@ -170,7 +260,8 @@
*/
static void
-add_self_parameter(lexer_state * const lexer) {
+add_self_parameter(ARGIN(lexer_state * const lexer))
+{
/* only add "self" parameter if :vtable and :method flags have not been set yet */
if (!TEST_FLAG(CURRENT_SUB(lexer)->flags, (PIRC_SUB_FLAG_VTABLE | PIRC_SUB_FLAG_METHOD))) {
@@ -180,8 +271,7 @@
/*
-=item C<void
-set_sub_vtable(lexer_state * const lexer, char const * vtablename)>
+=item C<void set_sub_vtable(lexer_state * const lexer, char const * vtablename)>
Set the :vtable() flag argument to the current subroutine. If C<vtablename>
is NULL, the name of the current sub is taken to be the vtable method name.
@@ -192,7 +282,9 @@
*/
void
-set_sub_vtable(lexer_state * const lexer, char const * vtablename) {
+set_sub_vtable(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * vtablename))
+{
int vtable_index;
if (vtablename == NULL) /* the sub's name I<is> the vtablename */
@@ -226,8 +318,7 @@
/*
-=item C<void
-set_sub_subid(lexer_state * const lexer, char const * const subid)>
+=item C<void set_sub_subid(lexer_state * const lexer, char const * const subid)>
Set the name specified in the :subid flag on the sub.
@@ -235,15 +326,17 @@
*/
void
-set_sub_subid(lexer_state * const lexer, char const * const subid) {
+set_sub_subid(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subid))
+{
CURRENT_SUB(lexer)->info.subid = subid;
SET_FLAG(lexer->subs->flags, PIRC_SUB_FLAG_SUBID);
}
/*
-=item C<void
-set_sub_methodname(lexer_state * const lexer, char const * const methodname)>
+=item C<void set_sub_methodname(lexer_state * const lexer, char const * const
+methodname)>
Set the :method flag on a sub; if C<methodname> is not NULL, then it contains
the name by which the sub is stored as a method.
@@ -252,7 +345,9 @@
*/
void
-set_sub_methodname(lexer_state * const lexer, char const * const methodname) {
+set_sub_methodname(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const methodname))
+{
if (methodname) /* :method("foo") */
CURRENT_SUB(lexer)->methodname = methodname;
else /* :method without a value defaults to the subname. */
@@ -268,8 +363,8 @@
/*
-=item C<void
-set_sub_instanceof(lexer_state * const lexer, char const * const classname)>
+=item C<void set_sub_instanceof(lexer_state * const lexer, char const * const
+classname)>
Set the value of the C<:instanceof> flag on a sub. Note that this flag
is experimental, and not actually used at this point.
@@ -278,14 +373,16 @@
*/
void
-set_sub_instanceof(lexer_state * const lexer, char const * const classname) {
+set_sub_instanceof(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const classname))
+{
CURRENT_SUB(lexer)->info.instanceof = classname;
}
/*
-=item C<void
-set_sub_nsentry(lexer_state * const lexer, char const * const nsentry)>
+=item C<void set_sub_nsentry(lexer_state * const lexer, char const * const
+nsentry)>
Set the value of the C<:nsentry> flag on a sub. The value of C<nsentry> is the name
by which the sub is stored in the namespace.
@@ -294,14 +391,15 @@
*/
void
-set_sub_nsentry(lexer_state * const lexer, char const * const nsentry) {
+set_sub_nsentry(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const nsentry))
+{
CURRENT_SUB(lexer)->info.nsentry = nsentry;
}
/*
-=item C<void
-set_sub_flag(lexer_state * const lexer, sub_flag flag)>
+=item C<void set_sub_flag(lexer_state * const lexer, sub_flag flag)>
Set a subroutine flag on the current sub. The C<flag> parameter may encode
multiple flags.
@@ -310,7 +408,8 @@
*/
void
-set_sub_flag(lexer_state * const lexer, sub_flag flag) {
+set_sub_flag(ARGIN(lexer_state * const lexer), sub_flag flag)
+{
/* set the specified flag in the current subroutine */
SET_FLAG(CURRENT_SUB(lexer)->flags, flag);
@@ -318,8 +417,7 @@
/*
-=item C<void
-new_subr(lexer_state * const lexer, char const * const subname)>
+=item C<void new_subr(lexer_state * const lexer, STRING *subname)>
Create a new subroutine node, and set it as the "current"
subroutine, on which all other sub-related operations do
@@ -329,7 +427,8 @@
*/
void
-new_subr(lexer_state * const lexer, STRING *subname) {
+new_subr(ARGIN(lexer_state * const lexer), ARGIN(STRING *subname))
+{
subroutine *newsub = pir_mem_allocate_zeroed_typed(lexer, subroutine);
int index;
@@ -380,8 +479,8 @@
/*
-=item C<void
-set_sub_name(lexer_state * const lexer, char const * const subname)>
+=item C<void set_sub_name(lexer_state * const lexer, char const * const
+subname)>
Set the current subroutine's name to C<subname>.
@@ -389,23 +488,29 @@
*/
void
-set_sub_name(lexer_state * const lexer, char const * const subname) {
+set_sub_name(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subname))
+{
CURRENT_SUB(lexer)->info.subname = subname;
}
/*
-=item C<static instruction *
-new_instruction(lexer_state * const lexer, char const * const opname)>
+=item C<static instruction * new_instruction(lexer_state * const lexer, char
+const * const opname)>
Create a new instruction node and set C<opname> as the instruction.
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static instruction *
-new_instruction(lexer_state * const lexer, char const * const opname) {
+new_instruction(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+{
instruction *ins = pir_mem_allocate_zeroed_typed(lexer, instruction);
ins->opname = opname;
ins->opcode = -1; /* make sure this field is properly initialized;
@@ -416,8 +521,8 @@
/*
-=item C<static void
-new_statement(lexer_state * const lexer, char const * const opname)>
+=item C<static void new_statement(lexer_state * const lexer, char const * const
+opname)>
Constructor for a statement. The newly allocated statement will be inserted
into the current subroutine's statements list.
@@ -426,7 +531,9 @@
*/
static void
-new_statement(lexer_state * const lexer, char const * const opname) {
+new_statement(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+{
instruction *instr = new_instruction(lexer, opname);
/* Each instruction has a sequence number to be able to
@@ -458,8 +565,7 @@
/*
-=item C<void
-set_curtarget(lexer_state * const lexer, target * const t)>
+=item C<target * set_curtarget(lexer_state * const lexer, target * const t)>
Sets the target C<t> as the current target in C<lexer> to
make it accessible to other parse actions. C<t> is returned.
@@ -470,15 +576,15 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-set_curtarget(lexer_state * const lexer, target * const t) {
+set_curtarget(ARGIN(lexer_state * const lexer), ARGIN(target * const t))
+{
lexer->curtarget = t;
return t;
}
/*
-=item C<argument *
-set_curarg(lexer_state * const lexer, argument * const arg)>
+=item C<argument * set_curarg(lexer_state * const lexer, argument * const arg)>
Sets the argument C<arg> as the current argument in C<lexer>
to make it accessible to other parse actions. C<arg> is returned.
@@ -489,15 +595,17 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-set_curarg(lexer_state * const lexer, argument * const arg) {
+set_curarg(ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const arg))
+{
lexer->curarg = arg;
return arg;
}
/*
-=item C<int
-targets_equal(target const * const left, target const * const right)>
+=item C<int targets_equal(target const * const left, target const * const
+right)>
Returns true if C<left> equals C<right>, false otherwise. C<left> is
considered to be equal to C<right> if any of the following conditions
@@ -519,7 +627,9 @@
PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
int
-targets_equal(target const * const left, target const * const right) {
+targets_equal(ARGIN(target const * const left),
+ ARGIN(target const * const right))
+{
if (TEST_FLAG(left->flags, TARGET_FLAG_IS_REG)) { /* if left is a reg */
@@ -550,8 +660,7 @@
/*
-=item C<target *
-new_target(lexer_state * const lexer)>
+=item C<target * new_target(lexer_state * const lexer)>
Create a new target node. The node's next pointer is initialized to itself.
@@ -561,7 +670,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-new_target(lexer_state * const lexer) {
+new_target(ARGIN(lexer_state * const lexer))
+{
target *t = pir_mem_allocate_zeroed_typed(lexer, target);
t->key = NULL;
t->next = t; /* circly linked list */
@@ -569,8 +679,7 @@
}
/*
-=item C<void
-set_target_key(target * const t, key * const k)>
+=item C<void set_target_key(target * const t, key * const k)>
Set the key C<k> on target C<t>. For instance:
@@ -582,14 +691,15 @@
*/
void
-set_target_key(target * const t, key * const k) {
+set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+{
t->key = k;
}
/*
-=item C<target *
-target_from_symbol(lexer_state * const lexer, symbol * const sym)>
+=item C<target * target_from_symbol(lexer_state * const lexer, symbol * const
+sym)>
Convert symbol C<sym> into a target node. The resulting target has
a pointer to C<sym>.
@@ -600,7 +710,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-target_from_symbol(lexer_state * const lexer, symbol * const sym) {
+target_from_symbol(ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+{
target *t = new_target(lexer);
t->flags = sym->flags; /* copy the flags */
@@ -611,8 +723,8 @@
/*
-=item C<target *
-add_target(lexer_state * const lexer, target *last, target * const t)>
+=item C<target * add_target(lexer_state * const lexer, target *last, target *
+const t)>
Add a new target to the list pointed to by C<list>. C<list> points to
the last element, C<<last->next>> points to the first. The list is
@@ -626,7 +738,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-add_target(lexer_state * const lexer, target *last, target * const t) {
+add_target(ARGIN(lexer_state * const lexer),
+ ARGMOD(target *last), ARGIN(target * const t))
+{
PARROT_ASSERT(last);
PARROT_ASSERT(t);
@@ -640,8 +754,8 @@
/*
-=item C<target *
-add_param(lexer_state * const lexer, pir_type type, char const * const name)>
+=item C<target * add_param(lexer_state * const lexer, pir_type type, char const
+* const name)>
Add a parameter of type C<type> and named C<name> to the current
subroutine. The parameter will be declared as a local symbol in the
@@ -653,7 +767,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-add_param(lexer_state * const lexer, pir_type type, char const * const name) {
+add_param(ARGIN(lexer_state * const lexer), pir_type type,
+ ARGIN(char const * const name))
+{
target *targ = new_target(lexer);
symbol *sym = new_symbol(lexer, name, type);
@@ -688,8 +804,8 @@
/*
-=item C<void
-set_param_alias(lexer_state * const lexer, char const * const alias)>
+=item C<target * set_param_alias(lexer_state * const lexer, char const * const
+alias)>
Set the argument of the :named flag for the current target
(parameter). Returns the current target (parameter). This function assumes
@@ -702,7 +818,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-set_param_alias(lexer_state * const lexer, char const * const alias) {
+set_param_alias(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+{
PARROT_ASSERT(lexer->curtarget != NULL);
/* if no alias was specified, default to the target's name, if it's not a register. */
@@ -722,8 +840,8 @@
/*
-=item C<void
-set_param_flag(lexer_state * const lexer, target * const param, target_flag flag)>
+=item C<target * set_param_flag(lexer_state * const lexer, target * const param,
+target_flag flag)>
Set the flag C<flag> on parameter C<param>. The actual value
of C<flag> may encode several flags at a time. Returns C<param>.
@@ -734,7 +852,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-set_param_flag(lexer_state * const lexer, target * const param, target_flag flag) {
+set_param_flag(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const param), target_flag flag)
+{
SET_FLAG(param->flags, flag);
/* note that param is always an identifier; registers are not allowed as parameters.
@@ -757,8 +877,8 @@
/*
-=item C<argument *
-new_argument(lexer_state * const lexer, expression * const expr)>
+=item C<argument * new_argument(lexer_state * const lexer, expression * const
+expr)>
Create a new argument node which wraps C<expr>. The new argument node
is circular linked, meaning its C<next> pointer points to itself.
@@ -769,7 +889,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-new_argument(lexer_state * const lexer, expression * const expr) {
+new_argument(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+{
argument *arg = pir_mem_allocate_zeroed_typed(lexer, argument);
arg->value = expr;
arg->next = arg;
@@ -780,8 +902,7 @@
/*
-=item C<argument *
-add_arg(argument *last, argument * const newarg)>
+=item C<argument * add_arg(argument *last, argument * const newarg)>
Add argument C<newarg> at the end of the list pointed to by C<last>.
The list is circular linked, and C<last> points to the last item.
@@ -796,7 +917,8 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-add_arg(argument *last, argument * const newarg) {
+add_arg(ARGMOD(argument *last), ARGIN(argument * const newarg))
+{
PARROT_ASSERT(last);
PARROT_ASSERT(newarg);
@@ -809,8 +931,7 @@
/*
-=item C<void
-unshift_arg(invocation * const inv, argument * const newarg)>
+=item C<argument * unshift_arg(invocation * const inv, argument * const newarg)>
Unshift argument C<newarg> on an invocation object. The number
of arguments in the list of C<inv> is incremented to reflect
@@ -839,7 +960,8 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-unshift_arg(invocation * const inv, argument * const newarg) {
+unshift_arg(ARGIN(invocation * const inv), ARGIN(argument * const newarg))
+{
++inv->num_arguments;
if (inv->arguments) {
@@ -854,8 +976,7 @@
/*
-=item C<void
-set_arg_flag(argument * const arg, arg_flag flag)>
+=item C<argument * set_arg_flag(argument * const arg, arg_flag flag)>
Set the flag C<flag> on argument C<arg>. Note the C<flag> may
encode multiple flags. C<arg> is returned.
@@ -866,15 +987,16 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-set_arg_flag(argument * const arg, arg_flag flag) {
+set_arg_flag(ARGIN(argument * const arg), arg_flag flag)
+{
SET_FLAG(arg->flags, flag);
return arg;
}
/*
-=item C<void
-set_arg_alias(lexer_state * const lexer, char const * const alias)>
+=item C<argument * set_arg_alias(lexer_state * const lexer, char const * const
+alias)>
Set the alias specified in C<alias> on the current argument, accessible
through C<lexer>. The alias is the name under which the argument is passed
@@ -887,7 +1009,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-set_arg_alias(lexer_state * const lexer, char const * const alias) {
+set_arg_alias(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+{
PARROT_ASSERT(lexer->curarg != NULL);
lexer->curarg->alias = alias;
SET_FLAG(lexer->curarg->flags, ARG_FLAG_NAMED);
@@ -896,8 +1020,8 @@
/*
-=item C<void
-load_library(lexer_state * const lexer, char const * const library)>
+=item C<void load_library(lexer_state * const lexer, char const * const
+library)>
Load the library indicated by C<library>.
@@ -905,7 +1029,9 @@
*/
void
-load_library(lexer_state * const lexer, char const * const library) {
+load_library(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const library))
+{
/* see imcc.y:600 */
STRING *libname = Parrot_str_new(lexer->interp, library, strlen(library));
PMC *ignored_value = Parrot_load_lib(lexer->interp, libname, NULL);
@@ -916,8 +1042,7 @@
/*
-=item C<void
-set_label(lexer_state * const lexer, char const * const label)>
+=item C<void set_label(lexer_state * const lexer, char const * const labelname)>
Set the label C<label> on the current instruction.
@@ -925,7 +1050,9 @@
*/
void
-set_label(lexer_state * const lexer, char const * const labelname) {
+set_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+{
instruction *instr = CURRENT_INSTRUCTION(lexer);
PARROT_ASSERT(instr);
@@ -954,8 +1081,7 @@
/*
-=item C<void
-set_instr(lexer_state * const lexer, char const * const opname)>
+=item C<void set_instr(lexer_state * const lexer, char const * const opname)>
Sets C<opname> to the current instruction, without operands. This is a
wrapper function for C<set_instrf> to prevent calls with an empty format
@@ -965,14 +1091,15 @@
*/
void
-set_instr(lexer_state * const lexer, char const * const opname) {
+set_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+{
set_instrf(lexer, opname, "");
}
/*
-=item C<void
-update_instr(lexer_state * const lexer, char * const newop)>
+=item C<void update_instr(lexer_state * const lexer, char const * const newop)>
Update the current instruction; the new opname is given by C<newop>.
@@ -980,7 +1107,9 @@
*/
void
-update_instr(lexer_state * const lexer, char const * const newop) {
+update_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const newop))
+{
PARROT_ASSERT(CURRENT_INSTRUCTION(lexer));
CURRENT_INSTRUCTION(lexer)->opname = newop;
}
@@ -1023,8 +1152,8 @@
/*
-=item C<void
-set_instrf(lexer_state *lexer, char *opname, char const * const format, ...)>
+=item C<void set_instrf(lexer_state * const lexer, char const * const opname,
+char const * const format, ...)>
Set the specified instruction, using the operands from the vararg list. The
number and types of operands is specified by C<format>. The type of the
@@ -1061,7 +1190,11 @@
*/
void
-set_instrf(lexer_state * const lexer, char const * const opname, char const * const format, ...) {
+set_instrf(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname),
+ ARGIN(char const * const format),
+ ...)
+{
va_list arg_ptr; /* for the var. args */
unsigned i; /* loop iterator */
size_t format_length; /* length of the format string. */
@@ -1092,8 +1225,8 @@
/*
-=item C<void
-add_operands(lexer_state * const lexer, char const * const format, ...)>
+=item C<void add_operands(lexer_state * const lexer, char const * const format,
+...)>
Add operands to the current instruction. This is a variable argument function;
C<format> contains placeholders, see the macro C<get_instr_var_arg> above
@@ -1104,7 +1237,10 @@
*/
void
-add_operands(lexer_state * const lexer, char const * const format, ...) {
+add_operands(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const format),
+ ...)
+{
va_list arg_ptr; /* for the var. args */
unsigned i; /* loop iterator */
size_t format_length; /* length of the format string. */
@@ -1132,8 +1268,7 @@
/*
-=item C<void
-set_op_labelflag(lexer_state * const lexer, int flag)>
+=item C<void set_op_labelflag(lexer_state * const lexer, int flag)>
Set a flag on the current instruction that it contains labels as operands.
The bit indicates which operand, count starting from bit 1.
@@ -1142,15 +1277,15 @@
*/
void
-set_op_labelflag(lexer_state * const lexer, int flag) {
+set_op_labelflag(ARGIN(lexer_state * const lexer), int flag)
+{
PARROT_ASSERT(CURRENT_INSTRUCTION(lexer));
SET_FLAG(CURRENT_INSTRUCTION(lexer)->oplabelbits, flag);
}
/*
-=item C<char *
-get_inverse(char *instr)>
+=item C<char const * get_inverse(char const * const instr)>
Returns the instruction with inversed semantics; for instance
C<if> becomes C<unless>, C<greater-than> becomes C<less-or-equals>.
@@ -1159,8 +1294,10 @@
*/
PARROT_CONST_FUNCTION
+PARROT_CANNOT_RETURN_NULL
char const *
-get_inverse(char const * const instr) {
+get_inverse(ARGIN(char const * const instr))
+{
if (STREQ(instr, "if")) return "unless";
else if (STREQ(instr, "gt")) return "le";
else if (STREQ(instr, "ge")) return "lt";
@@ -1175,8 +1312,7 @@
/*
-=item C<void
-invert_instr(lexer_state *lexer)>
+=item C<void invert_instr(lexer_state * const lexer)>
Invert the current instruction. This function assumes there is an instruction
already in place.
@@ -1185,7 +1321,8 @@
*/
void
-invert_instr(lexer_state * const lexer) {
+invert_instr(ARGIN(lexer_state * const lexer))
+{
instruction * const ins = CURRENT_INSTRUCTION(lexer);
char const *instr;
PARROT_ASSERT(ins);
@@ -1199,8 +1336,7 @@
/*
-=item C<expression *
-get_operand(lexer_state * const lexer, short n)>
+=item C<expression * get_operand(lexer_state * const lexer, short n)>
Get the C<n>th operand from the current instruction. If there are no
operands, NULL is returned. Because the operands are stored in a
@@ -1216,7 +1352,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-get_operand(lexer_state * const lexer, short n) {
+get_operand(ARGIN(lexer_state * const lexer), short n)
+{
expression *operand = CURRENT_INSTRUCTION(lexer)->operands;
if (operand == NULL)
@@ -1241,8 +1378,7 @@
/*
-=item C<void
-get_operands(lexer_state * const lexer, int bitmask, ...)>
+=item C<void get_operands(lexer_state * const lexer, int bitmask, ...)>
Get operands from the current instruction. C<bitmask> indicates which operands
are requested; if the C<i>th bit is set, the C<i>th operand is returned in a
@@ -1255,7 +1391,8 @@
*/
void
-get_operands(lexer_state * const lexer, int bitmask, ...) {
+get_operands(ARGIN(lexer_state * const lexer), int bitmask, ...)
+{
instruction *instr = CURRENT_INSTRUCTION(lexer);
expression *iter = instr->operands;
int numargs;
@@ -1292,8 +1429,7 @@
/*
-=item C<int
-get_operand_count(lexer_state * const lexer)>
+=item C<unsigned get_operand_count(lexer_state * const lexer)>
Returns the number of operands of the I<current> instruction.
This function assumes there is an instruction in place
@@ -1304,7 +1440,8 @@
*/
PARROT_WARN_UNUSED_RESULT
unsigned
-get_operand_count(lexer_state * const lexer) {
+get_operand_count(ARGIN(lexer_state * const lexer))
+{
unsigned count = 0;
expression *first, *operand;
@@ -1329,8 +1466,8 @@
/*
-=item C<static constant *
-create_const(lexer_state * const lexer, value_type type, char * const name, va_list arg_ptr)>
+=item C<static constant * create_const(lexer_state * const lexer, value_type
+type, va_list arg_ptr)>
Constant constructor; based on C<type>, retrieve a value of the
appropriate type from C<arg_ptr>.
@@ -1341,7 +1478,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static constant *
-create_const(lexer_state * const lexer, value_type type, va_list arg_ptr) {
+create_const(ARGIN(lexer_state * const lexer), value_type type, va_list arg_ptr)
+{
constant *c = pir_mem_allocate_zeroed_typed(lexer, constant);
c->type = type;
c->next = NULL;
@@ -1371,8 +1509,7 @@
/*
-=item C<constant *
-new_const(lexer_state * const lexer, value_type type, ...)>
+=item C<constant * new_const(lexer_state * const lexer, value_type type, ...)>
Creates a new constant node of the given type.
Wrapper function for C<create_const>
@@ -1383,7 +1520,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
constant *
-new_const(lexer_state * const lexer, value_type type, ...) {
+new_const(ARGIN(lexer_state * const lexer), value_type type, ...)
+{
constant *c;
va_list arg_ptr;
va_start(arg_ptr, type);
@@ -1394,8 +1532,8 @@
/*
-=item C<constdecl *
-new_named_const(lexer_state * const lexer, value_type type, char * const name, ...)>
+=item C<constdecl * new_named_const(lexer_state * const lexer, value_type type,
+char const * const name, ...)>
Creates a new constdecl node of the given type, by the given name.
@@ -1405,7 +1543,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
constdecl *
-new_named_const(lexer_state * const lexer, value_type type, char const * const name, ...) {
+new_named_const(ARGIN(lexer_state * const lexer), value_type type,
+ ARGIN(char const * const name),
+ ...)
+{
constdecl *c = (constdecl *)pir_mem_allocate(lexer, sizeof (constdecl));
va_list arg_ptr;
va_start(arg_ptr, name);
@@ -1440,8 +1581,8 @@
/*
-=item C<constdecl *
-new_pmc_const(char const * const type, char const * const name, constant * const value)>
+=item C<constdecl * new_pmc_const(lexer_state * const lexer, char const * const
+type, char const * const name, constant * const value)>
Create a new PMC constant declaration of type C<type>, name C<name> and having a value C<value>.
The type must be a string indicating a valid type name (e.g. "Sub"). C<name> is the name
@@ -1450,9 +1591,13 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
constdecl *
-new_pmc_const(lexer_state * const lexer, char const * const type,
- char const * const name, constant * const value)
+new_pmc_const(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const type),
+ ARGIN(char const * const name),
+ ARGIN(constant * const value))
{
/* get a STRING representation of the c-string type */
STRING *classname = Parrot_str_new(lexer->interp, type, strlen(type));
@@ -1508,7 +1653,7 @@
symbol *constsym = new_symbol(lexer, name, PMC_TYPE);
target *consttarg = target_from_symbol(lexer, constsym);
- PMC *intconst = pmc_new(lexer->interp,
+ PMC *intconst = Parrot_pmc_new(lexer->interp,
Parrot_get_ctx_HLL_type(lexer->interp, enum_class_Integer));
int index = add_pmc_const(lexer->bc, intconst);
VTABLE_set_integer_native(lexer->interp, intconst, value->val.ival);
@@ -1543,7 +1688,7 @@
symbol *constsym = new_symbol(lexer, name, PMC_TYPE);
target *consttarg = target_from_symbol(lexer, constsym);
- PMC *numconst = pmc_new(lexer->interp,
+ PMC *numconst = Parrot_pmc_new(lexer->interp,
Parrot_get_ctx_HLL_type(lexer->interp, enum_class_Float));
int index = add_pmc_const(lexer->bc, numconst);
VTABLE_set_number_native(lexer->interp, numconst, value->val.nval);
@@ -1573,7 +1718,7 @@
symbol *constsym = new_symbol(lexer, name, PMC_TYPE);
target *consttarg = target_from_symbol(lexer, constsym);
- PMC *strconst = pmc_new(lexer->interp,
+ PMC *strconst = Parrot_pmc_new(lexer->interp,
Parrot_get_ctx_HLL_type(lexer->interp, enum_class_String));
int index = add_pmc_const(lexer->bc, strconst);
@@ -1607,8 +1752,7 @@
/*
-=item C<static invocation *
-new_invocation(lexer_state * const lexer)>
+=item C<static invocation * new_invocation(lexer_state * const lexer)>
Returns a pointer to a new invocation object. In the current implementation,
there can only be one invocation object at any time. For that reason, the
@@ -1624,7 +1768,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static invocation *
-new_invocation(lexer_state * const lexer) {
+new_invocation(ARGIN(lexer_state * const lexer))
+{
/* optimization: return the address of the cached object */
invocation *inv = &lexer->obj_cache.inv_cache;
/* clear all fields */
@@ -1637,8 +1782,7 @@
/*
-=item C<static expression *
-new_expr(expr_type type)>
+=item C<static expression * new_expr(lexer_state * const lexer, expr_type type)>
Create a new C<expression> node of the specified C<type>. The new
expression node is returned.
@@ -1649,7 +1793,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static expression *
-new_expr(lexer_state * const lexer, expr_type type) {
+new_expr(ARGIN(lexer_state * const lexer), expr_type type)
+{
expression *expr = pir_mem_allocate_zeroed_typed(lexer, expression);
expr->type = type;
expr->next = expr;
@@ -1658,8 +1803,7 @@
/*
-=item C<target *
-new_reg(lexer_state * const lexer, int type, int regno)>
+=item C<target * new_reg(lexer_state * const lexer, pir_type type, int regno)>
Create a C<target> node from a register. A new C<pir_reg> object is
created of type C<type> and PIR register number C<regno>. The target
@@ -1671,7 +1815,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-new_reg(lexer_state * const lexer, pir_type type, int regno) {
+new_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
target *t = new_target(lexer);
pir_reg *reg;
@@ -1687,8 +1832,8 @@
/*
-=item C<expression *
-expr_from_target(target *t)>
+=item C<expression * expr_from_target(lexer_state * const lexer, target * const
+t)>
Wrap a target in an expression node; the expression node is
returned.
@@ -1699,7 +1844,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_target(lexer_state * const lexer, target * const t) {
+expr_from_target(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+{
expression *e = new_expr(lexer, EXPR_TARGET);
e->expr.t = t;
return e;
@@ -1707,8 +1854,8 @@
/*
-=item C<expression *
-expr_from_const(constant * const c)>
+=item C<expression * expr_from_const(lexer_state * const lexer, constant * const
+c)>
Convert the constant C<c> to an expression node and returns the newly
created expression node.
@@ -1719,7 +1866,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_const(lexer_state * const lexer, constant * const c) {
+expr_from_const(ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+{
expression *e = new_expr(lexer, EXPR_CONSTANT);
e->expr.c = c;
return e;
@@ -1727,8 +1876,7 @@
/*
-=item C<expression *
-expr_from_int(lexer_state * const lexer, int ival)>
+=item C<expression * expr_from_int(lexer_state * const lexer, int ival)>
Create an expression node from an integer constant. This is a wrapper
function, which uses C<expr_from_const()> and C<new_const()>.
@@ -1741,14 +1889,14 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_int(lexer_state * const lexer, int ival) {
+expr_from_int(ARGIN(lexer_state * const lexer), int ival)
+{
return expr_from_const(lexer, new_const(lexer, INT_VAL, ival));
}
/*
-=item C<expression *
-expr_from_num(lexer_state * const lexer, double nval)>
+=item C<expression * expr_from_num(lexer_state * const lexer, double nval)>
Same as C<expr_from_int()>, except it takes a C<double> parameter,
not an C<int>.
@@ -1759,14 +1907,15 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_num(lexer_state * const lexer, double nval) {
+expr_from_num(ARGIN(lexer_state * const lexer), double nval)
+{
return expr_from_const(lexer, new_const(lexer, NUM_VAL, nval));
}
/*
-=item C<expression *
-expr_from_string(lexer_state * const lexer, char const * const sval)>
+=item C<expression * expr_from_string(lexer_state * const lexer, char const *
+const sval)>
Same as C<expr_from_int()>, except it takes a C<string> parameter.
@@ -1776,15 +1925,17 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_string(lexer_state * const lexer, char const * const sval) {
+expr_from_string(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const sval))
+{
return expr_from_const(lexer, new_const(lexer, STRING_VAL, sval));
}
/*
-=item C<expression *
-expr_from_ident(char * const id)>
+=item C<expression * expr_from_ident(lexer_state * const lexer, char const *
+const id)>
Convert a ident to an expression node and returns it.
@@ -1794,7 +1945,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_ident(lexer_state * const lexer, char const * const id) {
+expr_from_ident(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const id))
+{
expression *e = new_expr(lexer, EXPR_IDENT);
e->expr.id = id;
return e;
@@ -1802,8 +1955,8 @@
/*
-=item C<void
-set_invocation_args(lexer_state * const lexer, invocation * const inv, argument * const args)>
+=item C<invocation * set_invocation_args(lexer_state * const lexer, invocation *
+const inv, argument * const args)>
Set the args of an invocation onto the current invocation object.
The number of arguments in the list is counted, and stored in the
@@ -1812,8 +1965,13 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
invocation *
-set_invocation_args(lexer_state * const lexer, invocation * const inv, argument * const args) {
+set_invocation_args(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(argument * const args))
+{
argument *arg_iter;
unsigned arg_count = 0;
@@ -1852,8 +2010,8 @@
/*
-=item C<void
-set_invocation_results(lexer_state * const lexer, invocation * const inv, target * const results)>
+=item C<invocation * set_invocation_results(lexer_state * const lexer,
+invocation * const inv, target * const results)>
Set the invocation results on the invocation object C<inv>.
The number of results is stored in the invocation object.
@@ -1862,8 +2020,13 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
invocation *
-set_invocation_results(lexer_state * const lexer, invocation * const inv, target * const results) {
+set_invocation_results(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(target * const results))
+{
target *result_iter;
unsigned result_count = 0;
@@ -1897,24 +2060,26 @@
/*
-=item C<void
-set_invocation_type(invocation * const inv, invoke_type type)>
+=item C<invocation * set_invocation_type(invocation * const inv, invoke_type
+type)>
Set the invocation type on the invocation object C<inv>.
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
invocation *
-set_invocation_type(invocation * const inv, invoke_type type) {
+set_invocation_type(ARGIN(invocation * const inv), invoke_type type)
+{
inv->type = type;
return inv;
}
/*
-=item C<invocation *
-invoke(lexer_state * const lexer, invoke_type type, ...)>
+=item C<invocation * invoke(lexer_state * const lexer, invoke_type type, ...)>
Create a new C<invocation> object of type C<type>. This can be one
of the C<invoke_types> enumeration. Based on the type, this function
@@ -1929,7 +2094,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
invocation *
-invoke(lexer_state * const lexer, invoke_type type, ...) {
+invoke(ARGIN(lexer_state * const lexer), invoke_type type, ...)
+{
va_list arg_ptr;
invocation *inv = new_invocation(lexer);
@@ -1969,8 +2135,8 @@
/*
-=item C<void
-set_lex_flag(lexer_state * const lexer, target * const t, char const * const name)>
+=item C<void set_lex_flag(lexer_state * const lexer, target * const t, char
+const * const name)>
Store target C<t> as a lexical in the sub_info struct. The lexical node
stores a pointer to the target's syminfo structure, so it can access
@@ -1980,7 +2146,10 @@
*/
void
-set_lex_flag(lexer_state * const lexer, target * const t, char const * const name) {
+set_lex_flag(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t),
+ ARGIN(char const * const name))
+{
lexical *lex = CURRENT_SUB(lexer)->info.lexicals;
/* check whether there is already a target marked as .lex with the specified name */
@@ -2008,8 +2177,7 @@
/*
-=item C<void
-set_hll(lexer_state * const lexer, char * const hll)>
+=item C<void set_hll(lexer_state * const lexer, char const * const hll)>
Set the current HLL as specified in C<hll>.
@@ -2019,7 +2187,9 @@
*/
void
-set_hll(lexer_state * const lexer, char const * const hll) {
+set_hll(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const hll))
+{
STRING * const hll_name = Parrot_str_new(lexer->interp, hll, strlen(hll));
CONTEXT(lexer->interp)->current_HLL = Parrot_register_HLL(lexer->interp, hll_name);
}
@@ -2028,8 +2198,8 @@
/*
-=item C<void
-unshift_operand(lexer_state *lexer, expression *operand)>
+=item C<void unshift_operand(lexer_state * const lexer, expression * const
+operand)>
Add the specified expression as the first operand of the current
instruction.
@@ -2038,7 +2208,9 @@
*/
void
-unshift_operand(lexer_state * const lexer, expression * const operand) {
+unshift_operand(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+{
expression *last = CURRENT_INSTRUCTION(lexer)->operands;
if (last) {
/* get the head of the list */
@@ -2054,8 +2226,8 @@
/*
-=item C<void
-push_operand(lexer_state * const lexer, expression * const operand)>
+=item C<void push_operand(lexer_state * const lexer, expression * const
+operand)>
Add an operand at the end of the list of operands of the current instruction.
@@ -2063,7 +2235,9 @@
*/
void
-push_operand(lexer_state * const lexer, NOTNULL(expression * const operand)) {
+push_operand(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+{
PARROT_ASSERT(CURRENT_INSTRUCTION(lexer));
if (CURRENT_INSTRUCTION(lexer)->operands) {
@@ -2075,8 +2249,7 @@
/*
-=item C<void
-remove_all_operands(lexer_state * const lexer)>
+=item C<void remove_all_operands(lexer_state * const lexer)>
Remove all operands of the current instruction. This is done
by simply setting the pointer to the operands to NULL; all
@@ -2087,15 +2260,15 @@
*/
void
-remove_all_operands(NOTNULL(lexer_state * const lexer)) {
+remove_all_operands(ARGIN(lexer_state * const lexer))
+{
CURRENT_INSTRUCTION(lexer)->operands = NULL;
}
/*
-=item C<expression *
-expr_from_key(lexer_state * const lexer, key * const k)>
+=item C<expression * expr_from_key(lexer_state * const lexer, key * const k)>
Wraps the key C<k> in an C<expression> node and returns that.
The returned expression node has type EXPR_KEY.
@@ -2103,8 +2276,11 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
expression *
-expr_from_key(NOTNULL(lexer_state * const lexer), NOTNULL(key * const k)) {
+expr_from_key(ARGIN(lexer_state * const lexer), ARGIN(key * const k))
+{
expression *e = new_expr(lexer, EXPR_KEY);
e->expr.k = k;
return e;
@@ -2113,7 +2289,8 @@
/*
-=item C<static key_entry * new_key_entry>
+=item C<static key_entry * new_key_entry(lexer_state * const lexer, expression *
+const expr)>
Constructor for a key_entry node. Memory is allocated for the node,
and the C<expr> field is initialized to the passed in C<expr> value.
@@ -2122,8 +2299,11 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static key_entry *
-new_key_entry(lexer_state * const lexer, expression * const expr) {
+new_key_entry(ARGIN(lexer_state * const lexer), ARGIN(expression * const expr))
+{
key_entry *entry = pir_mem_allocate_zeroed_typed(lexer, key_entry);
entry->expr = expr;
entry->next = NULL;
@@ -2131,8 +2311,7 @@
}
/*
-=item C<key *
-new_key(lexer_state * const lexer, expression * const expr)>
+=item C<key * new_key(lexer_state * const lexer, expression * const expr)>
Wraps the expression C<expr> in a key node and returns that.
@@ -2142,7 +2321,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
key *
-new_key(NOTNULL(lexer_state * const lexer), NOTNULL(expression * const expr)) {
+new_key(ARGIN(lexer_state * const lexer), ARGIN(expression * const expr))
+{
key *k = pir_mem_allocate_zeroed_typed(lexer, key);
k->head = new_key_entry(lexer, expr);
k->keylength = 1;
@@ -2152,8 +2332,8 @@
/*
-=item C<key *
-add_key(lexer_state * const lexer, key * const keylist, expression * const exprkey)>
+=item C<key * add_key(lexer_state * const lexer, key * const keylist, expression
+* const exprkey)>
Adds a new, nested key (in C<exprkey>) to the current key,
pointed to by C<keylist>. C<keylist> is returned.
@@ -2164,8 +2344,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
key *
-add_key(NOTNULL(lexer_state * const lexer), NOTNULL(key * const keylist),
- NOTNULL(expression * const exprkey))
+add_key(ARGIN(lexer_state * const lexer), ARGIN(key * const keylist),
+ ARGIN(expression * const exprkey))
{
key_entry *newkey = new_key_entry(lexer, exprkey);
key_entry *iter = keylist->head;
@@ -2186,8 +2366,7 @@
/*
-=item C<symbol *
-add_local(symbol * const list, symbol * const local)>
+=item C<symbol * add_local(symbol * const list, symbol * const local)>
Add local C<local> to the list pointed to by C<list>. The new object
is inserted at the front of the list. C<list> is returned
@@ -2198,7 +2377,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
symbol *
-add_local(symbol * const list, symbol * const local) {
+add_local(ARGIN(symbol * const list), ARGIN(symbol * const local))
+{
local->next = list->next;
list->next = local;
return list;
@@ -2207,8 +2387,8 @@
/*
-=item C<symbol *
-new_local(char * const name, int has_unique_reg)>
+=item C<symbol * new_local(lexer_state * const lexer, char const * const name,
+int has_unique_reg)>
Create a new symbol node to represent the local C<name>.
If C<has_unique_reg> is true, the C<:unique_reg> flag is set.
@@ -2220,7 +2400,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
symbol *
-new_local(lexer_state * const lexer, char const * const name, int has_unique_reg){
+new_local(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name), int has_unique_reg)
+{
symbol *s = new_symbol(lexer, name, UNKNOWN_TYPE);
if (has_unique_reg)
@@ -2232,8 +2414,7 @@
/*
-=item C<int
-is_parrot_op(lexer_state * const lexer, char * const name)>
+=item C<int is_parrot_op(lexer_state * const lexer, char const * const name)>
Check whether C<name> is a parrot opcode. C<name> can be either the short
or fullname of the opcode; for instance, C<print> is the short name, which
@@ -2244,7 +2425,9 @@
*/
int
-is_parrot_op(lexer_state * const lexer, char const * const name) {
+is_parrot_op(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
int opcode = lexer->interp->op_lib->op_code(name, 0); /* check short name, e.g. "set" */
/* do *NOT* check for the "long" name variant, such as "set_i_ic";
@@ -2258,9 +2441,8 @@
/*
-=item C<void
-new_sub_instr(lexer_state * const lexer, int opcode, char const * const opname,
- unsigned num_var_args)>
+=item C<void new_sub_instr(lexer_state * const lexer, int opcode, char const *
+const opname, unsigned num_var_args)>
Create a new instruction node, and initialize the opcode and opinfo on that
node. This function can be used to create an instruction of which the signature
@@ -2275,9 +2457,8 @@
*/
void
-new_sub_instr(lexer_state * const lexer, int opcode, char const * const opname,
- unsigned num_var_args)
-
+new_sub_instr(ARGIN(lexer_state * const lexer), int opcode,
+ ARGIN(char const * const opname), unsigned num_var_args)
{
new_statement(lexer, opname);
CURRENT_INSTRUCTION(lexer)->opinfo = &lexer->interp->op_info_table[opcode];
@@ -2298,8 +2479,8 @@
/*
-=item C<void
-update_op(lexer_state * const lexer, instruction * const instr, int newop)>
+=item C<void update_op(lexer_state * const lexer, instruction * const instr, int
+newop)>
Update the instruction C<instr>; it is replaced by the op with opcode C<newop>.
The C<opinfo>, C<opname> and C<opcode> fields of C<instr> are updated.
@@ -2308,7 +2489,9 @@
*/
void
-update_op(NOTNULL(lexer_state * const lexer), NOTNULL(instruction * const instr), int newop) {
+update_op(ARGIN(lexer_state * const lexer), ARGIN(instruction * const instr),
+ int newop)
+{
/* Deduct number of ints needed for the old instruction, if there is one.
* This is necessary during strength reduction and other optimizations, once
* the opinfo is retrieved, we also update the codesize field in the lexer.
@@ -2333,8 +2516,8 @@
/*
-=item C<static label *
-new_label(lexer_state * const lexer, char const * const labelid, int offset)>
+=item C<static label * new_label(lexer_state * const lexer, char const * const
+labelid, int offset)>
Constructor for a label struct node. A new C<label> object is created,
initialized with the label id specified in C<labelid>, and the bytecode
@@ -2344,8 +2527,12 @@
*/
PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static label *
-new_label(lexer_state * const lexer, char const * const labelid, int offset) {
+new_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelid), int offset)
+{
label *l = pir_mem_allocate_zeroed_typed(lexer, label);
l->name = labelid;
l->offset = offset;
@@ -2354,8 +2541,7 @@
/*
-=item C<static void
-fixup_local_labels(subroutine * const sub)>
+=item C<static void fixup_local_labels(lexer_state * const lexer)>
Fix up all local labels in the subroutine C<sub>. Labels are stored as
identifiers in an expression node (the C<id> field in the C<expr> union);
@@ -2367,7 +2553,8 @@
*/
static void
-fixup_local_labels(lexer_state * const lexer) {
+fixup_local_labels(ARGIN(lexer_state * const lexer))
+{
instruction *iter = CURRENT_SUB(lexer)->statements;
/* if there's no instruction in the current sub, then do nothing. */
@@ -2425,8 +2612,7 @@
/*
-=item C<void
-fixup_global_labels(lexer_state * const lexer)>
+=item C<void fixup_global_labels(lexer_state * const lexer)>
Fix references to global labels. The lexer keeps a list of instructions that
can be patched. These instructions currently look up the global label during
@@ -2439,7 +2625,8 @@
*/
void
-fixup_global_labels(lexer_state * const lexer) {
+fixup_global_labels(ARGIN(lexer_state * const lexer))
+{
global_fixup *iter = lexer->global_refs;
while (iter) {
@@ -2479,8 +2666,7 @@
/*
-=item C<void
-close_sub(lexer_state * const lexer)>
+=item C<void close_sub(lexer_state * const lexer)>
Finalize the subroutine. Generate the final instructions in the current
subroutine, if needed. Then, all local labels are fixed up; i.e., all
@@ -2492,7 +2678,8 @@
*/
void
-close_sub(lexer_state * const lexer) {
+close_sub(ARGIN(lexer_state * const lexer))
+{
int need_epilogue = 1;
int sub_const_table_index;
global_label *glob;
@@ -2551,8 +2738,8 @@
/*
-=item C<void
-update_sub_register_usage(lexer_state * const lexer, unsigned reg_usage[NUM_PARROT_TYPES])>
+=item C<void update_sub_register_usage(lexer_state * const lexer, unsigned
+reg_usage[NUM_PARROT_TYPES])>
Update register usage for the current subroutine with the register usage
information in C<reg_usage>.
@@ -2561,7 +2748,9 @@
*/
void
-update_sub_register_usage(lexer_state * const lexer, unsigned reg_usage[NUM_PARROT_TYPES]) {
+update_sub_register_usage(ARGIN(lexer_state * const lexer),
+ unsigned reg_usage[NUM_PARROT_TYPES])
+{
int i;
for (i = 0; i < NUM_PARROT_TYPES; ++i)
CURRENT_SUB(lexer)->info.regs_used[i] = reg_usage[i];
@@ -2570,8 +2759,8 @@
/*
-=item C<void
-annotate(lexer_state * const lexer, char const * const key, constant * const value)>
+=item C<void annotate(lexer_state * const lexer, char const * const key,
+constant * const value)>
Add a new annotation with key C<key> and value C<value>.
@@ -2579,7 +2768,10 @@
*/
void
-annotate(lexer_state * const lexer, char const * const key, constant * const value) {
+annotate(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const key),
+ ARGIN(constant * const value))
+{
annotation *ann = (annotation *)pir_mem_allocate(lexer, sizeof (annotation));
ann->key = key;
ann->value = value;
Modified: branches/ops_pct/compilers/pirc/src/pircompunit.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompunit.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pircompunit.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -394,135 +394,665 @@
/* forward declaration */
struct lexer_state;
-/* set the namespace that was just parsed */
-void set_namespace(struct lexer_state * const lexer, key * const ns);
+/* HEADERIZER BEGIN: compilers/pirc/src/pircompunit.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* various set functions to set the value of a subroutine flag */
-void set_sub_outer(struct lexer_state * const lexer, char const * const outersub);
-void set_sub_vtable(struct lexer_state * const lexer, char const * vtablename);
-void set_sub_subid(struct lexer_state * const lexer, char const * const subid);
-void set_sub_instanceof(struct lexer_state * const lexer, char const * const classname);
-void set_sub_nsentry(struct lexer_state * const lexer, char const * const nsentry);
-void set_sub_methodname(struct lexer_state * const lexer, char const * const methodname);
-
-void set_sub_multi_types(struct lexer_state * const lexer, expression * const multitype);
-
-/* install a new subroutine node */
-void new_subr(struct lexer_state * const lexer, STRING *subname);
-
-void set_sub_name(struct lexer_state * const lexer, char const * const subname);
-
-/* functions for setting argument flags or argument alias */
-argument *set_arg_flag(argument * const arg, arg_flag flag);
-argument *set_arg_alias(struct lexer_state * const lexer, char const * const alias);
-
-/* constructors for constant nodes */
-constdecl *new_named_const(struct lexer_state * const lexer, value_type type,
- char const * const name, ...);
-
-constant *new_const(struct lexer_state * const lexer, value_type type, ...);
-
-constdecl *new_pmc_const(struct lexer_state * const lexer, char const * const type,
- char const * const name, constant * const value);
-
-/* conversion functions, each wrapping its argument in an expression node */
-expression *expr_from_const(struct lexer_state * const lexer, constant * const c);
-expression *expr_from_target(struct lexer_state * const lexer, target * const t);
-expression *expr_from_ident(struct lexer_state * const lexer, char const * const name);
-expression *expr_from_key(struct lexer_state * const lexer, key * const k);
-expression *expr_from_string(struct lexer_state * const lexer, char const * const sval);
-expression *expr_from_int(struct lexer_state * const lexer, int ival);
-expression *expr_from_num(struct lexer_state * const lexer, double nval);
-
-/* functions for argument node creation and storing */
-argument *new_argument(struct lexer_state * const lexer, expression * const expr);
-argument *add_arg(argument *arg1, argument * const arg2);
-argument *unshift_arg(invocation * const inv, argument * const newarg);
-
-target *add_param(struct lexer_state * const lexer, pir_type type, char const * const name);
-target *set_param_alias(struct lexer_state * const lexer, char const * const alias);
-target *set_param_flag(struct lexer_state * const lexer, target * const t, target_flag flag);
-
-target *set_curtarget(struct lexer_state * const lexer, target * const t);
-argument *set_curarg(struct lexer_state * const lexer, argument * const arg);
-
-/* target constructors */
-target *add_target(struct lexer_state * const lexer, target *t1, target * const t);
-target *new_reg(struct lexer_state * const lexer, pir_type type, int regno);
-target *new_target(struct lexer_state * const lexer);
-
-/* set a key on a target node */
-void set_target_key(target * const t, key * const k);
-
-/* functions for creating an invocation node and setting various fields */
-invocation *invoke(struct lexer_state * const lexer, invoke_type, ...);
-invocation *set_invocation_type(invocation * const inv, invoke_type type);
-invocation *set_invocation_args(struct lexer_state * const lexer, invocation * const inv,
- argument * const args);
-
-invocation *set_invocation_results(struct lexer_state * const lexer, invocation * const inv,
- target * const results);
-
-/* conversion functions that wrap their arguments into a target node */
-target *target_from_symbol(struct lexer_state * const lexer, struct symbol * const sym);
-
-/* management functions for key nodes */
-key *new_key(struct lexer_state * const lexer, expression * const expr);
-key *add_key(struct lexer_state * const lexer, key * const keylist, expression * const newkey);
-
-void load_library(struct lexer_state * const lexer, char const * const library);
-void set_hll(struct lexer_state * const lexer, char const * const hll);
-
-void set_sub_flag(struct lexer_state * const lexer, sub_flag flag);
-
-/* constructor and functions for setting instruction fields */
-void set_label(struct lexer_state * const lexer, char const * const label);
-void set_instr(struct lexer_state * const lexer, char const * const opname);
-void set_instrf(struct lexer_state * const lxr, char const * const op, char const * const fmt, ...);
-void unshift_operand(struct lexer_state * const lexer, expression * const operand);
-void push_operand(struct lexer_state * const lexer, expression * const operand);
-void add_operands(struct lexer_state * const lexer, char const * const format, ...);
-
-void get_operands(struct lexer_state * const lexer, int bitmask, ...);
-expression *get_operand(struct lexer_state * const lexer, short n);
-unsigned get_operand_count(struct lexer_state * const lexer);
-
-void update_instr(struct lexer_state * const lexer, char const * const newop);
-void update_op(struct lexer_state * const lexer, instruction * const instr, int newop);
-
-void remove_operand(struct lexer_state * const lexer, unsigned index);
-void remove_all_operands(struct lexer_state * const lexer);
-
-
-void set_lex_flag(struct lexer_state * const lexer, target * const t, char const * const lexname);
-char const *get_inverse(char const * const instr);
-void invert_instr(struct lexer_state * const lexer);
-
-/* local declaration functions */
-struct symbol *add_local(struct symbol * const list, struct symbol * const local);
-struct symbol *new_local(struct lexer_state * const lexer, char const * const name, int unique);
-
-/* compare two target nodes */
-int targets_equal(target const * const t1, target const * const t2);
-
-/* funtion to reset the register allocator */
-void reset_register_allocator(struct lexer_state * const lexer);
-
-/* to check whether given name is a parrot opcode */
-int is_parrot_op(struct lexer_state * const lexer, char const * const name);
-
-void close_sub(struct lexer_state * const lexer);
-void fixup_global_labels(struct lexer_state * const lexer);
-void set_op_labelflag(struct lexer_state * const lexer, int flag);
-void convert_inv_to_instr(struct lexer_state * const lexer, invocation * const inv);
-
-void update_sub_register_usage(struct lexer_state * const lexer,
- unsigned reg_usage[NUM_PARROT_TYPES]);
-
-void new_sub_instr(struct lexer_state * const lexer, int opcode, char const * const opname,
- unsigned num_var_args);
-
-void annotate(struct lexer_state * const lexer, char const * const key, constant * const value);
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * add_arg(ARGMOD(argument *last), ARGIN(argument * const newarg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*last);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+key * add_key(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(key * const keylist),
+ ARGIN(expression * const exprkey))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+symbol * add_local(ARGIN(symbol * const list), ARGIN(symbol * const local))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void add_operands(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const format),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * add_param(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * add_target(
+ ARGIN(lexer_state * const lexer),
+ ARGMOD(target *last),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*last);
+
+void annotate(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const key),
+ ARGIN(constant * const value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+void close_sub(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_const(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_ident(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const id))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_int(ARGIN(lexer_state * const lexer), int ival)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+expression * expr_from_key(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(key * const k))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_num(ARGIN(lexer_state * const lexer), double nval)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_string(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const sval))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_target(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void fixup_global_labels(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_CONST_FUNCTION
+PARROT_CANNOT_RETURN_NULL
+char const * get_inverse(ARGIN(char const * const instr))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * get_operand(ARGIN(lexer_state * const lexer), short n)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+unsigned get_operand_count(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void get_operands(ARGIN(lexer_state * const lexer), int bitmask, ...)
+ __attribute__nonnull__(1);
+
+void invert_instr(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+invocation * invoke(ARGIN(lexer_state * const lexer), invoke_type type, ...)
+ __attribute__nonnull__(1);
+
+int is_parrot_op(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void load_library(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const library))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * new_argument(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+constant * new_const(ARGIN(lexer_state * const lexer), value_type type, ...)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+key * new_key(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+symbol * new_local(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ int has_unique_reg)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+constdecl * new_named_const(
+ ARGIN(lexer_state * const lexer),
+ value_type type,
+ ARGIN(char const * const name),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+constdecl * new_pmc_const(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const type),
+ ARGIN(char const * const name),
+ ARGIN(constant * const value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * new_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+ __attribute__nonnull__(1);
+
+void new_sub_instr(
+ ARGIN(lexer_state * const lexer),
+ int opcode,
+ ARGIN(char const * const opname),
+ unsigned num_var_args)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+void new_subr(ARGIN(lexer_state * const lexer), ARGIN(STRING *subname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * new_target(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void push_operand(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void remove_all_operands(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void reset_register_allocator(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * set_arg_alias(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * set_arg_flag(ARGIN(argument * const arg), arg_flag flag)
+ __attribute__nonnull__(1);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * set_curarg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const arg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * set_curtarget(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_hll(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const hll))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_instrf(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname),
+ ARGIN(char const * const format),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+invocation * set_invocation_args(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(argument * const args))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+invocation * set_invocation_results(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(target * const results))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+invocation * set_invocation_type(
+ ARGIN(invocation * const inv),
+ invoke_type type)
+ __attribute__nonnull__(1);
+
+void set_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_lex_flag(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+void set_namespace(ARGIN(lexer_state * const lexer), ARGIN(key * const ns))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_op_labelflag(ARGIN(lexer_state * const lexer), int flag)
+ __attribute__nonnull__(1);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * set_param_alias(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * set_param_flag(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const param),
+ target_flag flag)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_flag(ARGIN(lexer_state * const lexer), sub_flag flag)
+ __attribute__nonnull__(1);
+
+void set_sub_instanceof(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const classname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_methodname(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const methodname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_multi_types(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const multitype))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_name(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_nsentry(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const nsentry))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_outer(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outersub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_subid(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subid))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_vtable(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * vtablename))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * target_from_symbol(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_PURE_FUNCTION
+PARROT_WARN_UNUSED_RESULT
+int targets_equal(
+ ARGIN(target const * const left),
+ ARGIN(target const * const right))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * unshift_arg(
+ ARGIN(invocation * const inv),
+ ARGIN(argument * const newarg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void unshift_operand(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void update_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const newop))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void update_op(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr),
+ int newop)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void update_sub_register_usage(
+ ARGIN(lexer_state * const lexer),
+ unsigned reg_usage[NUM_PARROT_TYPES])
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_add_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(last) \
+ , PARROT_ASSERT_ARG(newarg))
+#define ASSERT_ARGS_add_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(keylist) \
+ , PARROT_ASSERT_ARG(exprkey))
+#define ASSERT_ARGS_add_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(list) \
+ , PARROT_ASSERT_ARG(local))
+#define ASSERT_ARGS_add_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(format))
+#define ASSERT_ARGS_add_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_add_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(last) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_annotate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(key) \
+ , PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_close_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_expr_from_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_expr_from_ident __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(id))
+#define ASSERT_ARGS_expr_from_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_expr_from_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(k))
+#define ASSERT_ARGS_expr_from_num __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_expr_from_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sval))
+#define ASSERT_ARGS_expr_from_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_fixup_global_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_inverse __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_get_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_operand_count __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_invert_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_invoke __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_is_parrot_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_load_library __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(library))
+#define ASSERT_ARGS_new_argument __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_new_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_new_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_named_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_pmc_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(type) \
+ , PARROT_ASSERT_ARG(name) \
+ , PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_new_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_sub_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_new_subr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subname))
+#define ASSERT_ARGS_new_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_push_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(operand))
+#define ASSERT_ARGS_remove_all_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_reset_register_allocator __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_set_arg_alias __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(alias))
+#define ASSERT_ARGS_set_arg_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_set_curarg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_set_curtarget __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_set_hll __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(hll))
+#define ASSERT_ARGS_set_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_set_instrf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname) \
+ , PARROT_ASSERT_ARG(format))
+#define ASSERT_ARGS_set_invocation_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv) \
+ , PARROT_ASSERT_ARG(args))
+#define ASSERT_ARGS_set_invocation_results __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv) \
+ , PARROT_ASSERT_ARG(results))
+#define ASSERT_ARGS_set_invocation_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_set_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelname))
+#define ASSERT_ARGS_set_lex_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_set_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(ns))
+#define ASSERT_ARGS_set_op_labelflag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_set_param_alias __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(alias))
+#define ASSERT_ARGS_set_param_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(param))
+#define ASSERT_ARGS_set_sub_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_set_sub_instanceof __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(classname))
+#define ASSERT_ARGS_set_sub_methodname __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(methodname))
+#define ASSERT_ARGS_set_sub_multi_types __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(multitype))
+#define ASSERT_ARGS_set_sub_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subname))
+#define ASSERT_ARGS_set_sub_nsentry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(nsentry))
+#define ASSERT_ARGS_set_sub_outer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(outersub))
+#define ASSERT_ARGS_set_sub_subid __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subid))
+#define ASSERT_ARGS_set_sub_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(vtablename))
+#define ASSERT_ARGS_set_target_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(t) \
+ , PARROT_ASSERT_ARG(k))
+#define ASSERT_ARGS_target_from_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sym))
+#define ASSERT_ARGS_targets_equal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(left) \
+ , PARROT_ASSERT_ARG(right))
+#define ASSERT_ARGS_unshift_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(inv) \
+ , PARROT_ASSERT_ARG(newarg))
+#define ASSERT_ARGS_unshift_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(operand))
+#define ASSERT_ARGS_update_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(newop))
+#define ASSERT_ARGS_update_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_update_sub_register_usage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pircompunit.c */
#endif /* PARROT_PIR_PIRCOMPUNIT_H_GUARD */
Modified: branches/ops_pct/compilers/pirc/src/piremit.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/piremit.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/piremit.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -14,6 +14,109 @@
#include "parrot/oplib/ops.h"
+/* HEADERIZER HFILE: compilers/pirc/src/piremit.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void emit_pbc_annotations(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+static void emit_pbc_const_arg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_expr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_label_arg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(label * const l))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_sub(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_target_arg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pir_instruction(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pir_statement(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void optimize_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void print_sub_flags(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const subiter))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_emit_pbc_annotations __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_emit_pbc_const_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_emit_pbc_expr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(operand))
+#define ASSERT_ARGS_emit_pbc_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_emit_pbc_label_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(l))
+#define ASSERT_ARGS_emit_pbc_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_emit_pbc_target_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_emit_pir_instruction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_emit_pir_statement __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_optimize_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_print_sub_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subiter))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/*
=head1 DESCRIPTION
@@ -44,25 +147,24 @@
*/
char const pir_register_types[5] = {'I', 'S', 'P', 'N', '?'};
-static void emit_pir_statement(lexer_state * const lexer, subroutine * const sub);
-static void emit_pir_instruction(lexer_state * const lexer, instruction * const instr);
-static void emit_pbc_expr(lexer_state * const lexer, expression * const operand);
+static void emit_pir_statement(ARGIN(lexer_state * const lexer), subroutine * const sub);
+static void emit_pir_instruction(ARGIN(lexer_state * const lexer), instruction * const instr);
+static void emit_pbc_expr(ARGIN(lexer_state * const lexer), expression * const operand);
-static void print_sub_flags(lexer_state * const lexer, subroutine * const subiter);
+static void print_sub_flags(ARGIN(lexer_state * const lexer), subroutine * const subiter);
/* prototype declaration */
-void print_expr(lexer_state * const lexer, expression * const expr);
-void print_key(lexer_state * const lexer, key * const k);
-void print_target(lexer_state * const lexer, target * const t);
-void print_constant(lexer_state * const lexer, constant * const c);
-void print_expressions(lexer_state * const lexer, expression * const expr);
-void print_instruction(lexer_state * const lexer, instruction * const ins);
-void print_statement(lexer_state * const lexer, subroutine * const sub);
+void print_expr(ARGIN(lexer_state * const lexer), expression * const expr);
+void print_key(ARGIN(lexer_state * const lexer), key * const k);
+void print_target(ARGIN(lexer_state * const lexer), target * const t);
+void print_constant(ARGIN(lexer_state * const lexer), constant * const c);
+void print_expressions(ARGIN(lexer_state * const lexer), expression * const expr);
+void print_instruction(ARGIN(lexer_state * const lexer), instruction * const ins);
+void print_statement(ARGIN(lexer_state * const lexer), subroutine * const sub);
/*
-=item C<void
-print_key(lexer_state * const lexer, key * const k)>
+=item C<void print_key(lexer_state * const lexer, key * const k)>
Print the key C<k>. The total key is enclosed in square brackets,
and different key elements are separated by semicolons. Example:
@@ -75,7 +177,9 @@
*/
void
-print_key(lexer_state * const lexer, key * const k) {
+print_key(ARGIN(lexer_state * const lexer), ARGIN(key * const k))
+{
+ ASSERT_ARGS(print_key)
key_entry *iter;
fprintf(out, "[");
@@ -95,8 +199,7 @@
/*
-=item C<void
-print_target(lexer_state * const lexer, target * const t)>
+=item C<void print_target(lexer_state * const lexer, target * const t)>
Print the target C<t>; if C<t> has a key, that key is
printed as well. Examples:
@@ -107,7 +210,9 @@
*/
void
-print_target(lexer_state * const lexer, target * const t) {
+print_target(ARGIN(lexer_state * const lexer), ARGIN(target * const t))
+{
+ ASSERT_ARGS(print_target)
PARROT_ASSERT(t->info);
fprintf(out, "%c%d", pir_register_types[t->info->type], t->info->color);
@@ -118,8 +223,7 @@
/*
-=item C<void
-print_constant(lexer_state * const lexer, constant * const c)>
+=item C<void print_constant(lexer_state * const lexer, constant * const c)>
Print the value of constant C<c>. Based on C<c>'s type, the appropriate
value is printed.
@@ -128,7 +232,10 @@
*/
void
-print_constant(lexer_state * const lexer, constant * const c) {
+print_constant(ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+{
+ ASSERT_ARGS(print_constant)
switch (c->type) {
case INT_VAL:
fprintf(out, "%d", c->val.ival);
@@ -153,8 +260,7 @@
/*
-=item C<void
-print_expr(lexer_state * const lexer, expression * const expr)>
+=item C<void print_expr(lexer_state * const lexer, expression * const expr)>
Print the expression C<expr>. This is a dispatch function, calling
a specialized function based on C<expr>'s type.
@@ -163,7 +269,10 @@
*/
void
-print_expr(lexer_state * const lexer, expression * const expr) {
+print_expr(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+{
+ ASSERT_ARGS(print_expr)
switch (expr->type) {
case EXPR_TARGET:
print_target(lexer, expr->expr.t);
@@ -187,8 +296,8 @@
/*
-=item C<void
-print_expressions(expression * const expr)>
+=item C<void print_expressions(lexer_state * const lexer, expression * const
+expr)>
Print the list of expressions pointed to by C<expr>,
if C<expr> is not NULL. If C<expr> is NULL, the
@@ -199,7 +308,10 @@
*/
void
-print_expressions(lexer_state * const lexer, expression * const expr) {
+print_expressions(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+{
+ ASSERT_ARGS(print_expressions)
expression *iter;
if (expr == NULL)
@@ -218,8 +330,8 @@
/*
-=item C<void
-print_instruction(lexer_state * const lexer, instruction * const ins)>
+=item C<void print_instruction(lexer_state * const lexer, instruction * const
+ins)>
Print the instruction C<ins>.
@@ -227,8 +339,10 @@
*/
void
-print_instruction(lexer_state * const lexer, instruction * const ins) {
- PARROT_ASSERT(ins != NULL);
+print_instruction(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const ins))
+{
+ ASSERT_ARGS(print_instruction)
if (ins->label) {
if (TEST_FLAG(lexer->flags, LEXER_FLAG_EMIT_PASM))
@@ -254,8 +368,7 @@
/*
-=item C<void
-print_statement(lexer_state * const lexer, subroutine * const sub)>
+=item C<void print_statement(lexer_state * const lexer, subroutine * const sub)>
XXX
@@ -263,7 +376,10 @@
*/
void
-print_statement(lexer_state * const lexer, subroutine * const sub) {
+print_statement(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+{
+ ASSERT_ARGS(print_statement)
instruction *statiter;
if (sub->statements == NULL)
@@ -280,8 +396,8 @@
/*
-=item C<static void
-print_sub_flags(lexer_state * const lexer, subroutine * const subiter)>
+=item C<static void print_sub_flags(lexer_state * const lexer, subroutine *
+const subiter)>
Print the appropriate subflags.
@@ -289,7 +405,11 @@
*/
static void
-print_sub_flags(lexer_state * const lexer, subroutine * const subiter) {
+print_sub_flags(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const subiter))
+{
+ ASSERT_ARGS(print_sub_flags)
+
if (TEST_FLAG(subiter->flags, PIRC_SUB_FLAG_INIT))
fprintf(out, ":init ");
if (TEST_FLAG(subiter->flags, PIRC_SUB_FLAG_LOAD))
@@ -320,8 +440,7 @@
/*
-=item C<void
-print_subs(struct lexer_state * const lexer)>
+=item C<void print_subs(struct lexer_state * const lexer)>
Top-level function to print all generated code. This function
iterates over all subs and prints their instructions.
@@ -330,7 +449,9 @@
*/
void
-print_subs(struct lexer_state * const lexer) {
+print_subs(struct ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(print_subs)
subroutine *subiter;
if (lexer->subs == NULL)
@@ -371,8 +492,8 @@
/*
-=item C<static void
-emit_pir_instruction(lexer_state * const lexer, instruction * const instr)>
+=item C<static void emit_pir_instruction(lexer_state * const lexer, instruction
+* const instr)>
Print the PIR representation of C<instr>. If C<instr> has a label, that
is printed first.
@@ -381,7 +502,10 @@
*/
static void
-emit_pir_instruction(lexer_state * const lexer, instruction * const instr) {
+emit_pir_instruction(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+{
+ ASSERT_ARGS(emit_pir_instruction)
if (instr->label)
fprintf(out, " %s:\n", instr->label);
@@ -395,8 +519,8 @@
/*
-=item C<static void
-emit_pir_statement(lexer_state * const lexer, subroutine * const sub)>
+=item C<static void emit_pir_statement(lexer_state * const lexer, subroutine *
+const sub)>
Emit all statements of the subroutine C<sub>. The statements
are emitted in PIR format. If there are no statements in C<sub>,
@@ -406,7 +530,11 @@
*/
static void
-emit_pir_statement(lexer_state * const lexer, subroutine * const sub) {
+emit_pir_statement(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+{
+ ASSERT_ARGS(emit_pir_statement)
+
instruction *statiter;
if (sub->statements == NULL)
@@ -424,8 +552,8 @@
/*
-=item C<void
-emit_pir_subs(lexer_state * const lexer)>
+=item C<void emit_pir_subs(lexer_state * const lexer, char const * const
+outfile)>
Print the PIR representation of all subroutines stored
in the C<lexer>. If there are no subroutines, thre function
@@ -435,7 +563,10 @@
*/
void
-emit_pir_subs(lexer_state * const lexer, char const * const outfile) {
+emit_pir_subs(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outfile))
+{
+ ASSERT_ARGS(emit_pir_subs)
subroutine *subiter;
if (lexer->subs == NULL)
@@ -474,8 +605,8 @@
/*
-=item C<static void
-emit_pbc_const_arg(lexer_state * const lexer, constant * const c)>
+=item C<static void emit_pbc_const_arg(lexer_state * const lexer, constant *
+const c)>
Emit a constant argument into the bytecode. An integer is emitted
inline in the bytecode; other types are stored in the constant table,
@@ -485,7 +616,10 @@
*/
static void
-emit_pbc_const_arg(lexer_state * const lexer, constant * const c) {
+emit_pbc_const_arg(ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+{
+ ASSERT_ARGS(emit_pbc_const_arg)
switch (c->type) {
case INT_VAL:
@@ -538,8 +672,8 @@
/*
-=item C<static void
-emit_pbc_label_arg(lexer_state * const lexer, label * const l)>
+=item C<static void emit_pbc_label_arg(lexer_state * const lexer, label * const
+l)>
Emit the value of the label offset of label C<l>.
@@ -547,7 +681,11 @@
*/
static void
-emit_pbc_label_arg(lexer_state * const lexer, label * const l) {
+emit_pbc_label_arg(ARGIN(lexer_state * const lexer),
+ ARGIN(label * const l))
+{
+ ASSERT_ARGS(emit_pbc_label_arg)
+
emit_int_arg(lexer->bc, l->offset);
}
@@ -558,8 +696,8 @@
/*
-=item C<static void
-emit_pbc_target_arg(lexer_state * const lexer, target * const t)>
+=item C<static void emit_pbc_target_arg(lexer_state * const lexer, target *
+const t)>
Emit the assigned register of target C<t>. The assigned register is
stored in the C<color> field, of either the C<pir_reg> or C<symbol>
@@ -570,7 +708,11 @@
*/
static void
-emit_pbc_target_arg(lexer_state * const lexer, target * const t) {
+emit_pbc_target_arg(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+{
+ ASSERT_ARGS(emit_pbc_target_arg)
+
emit_int_arg(lexer->bc, t->info->color);
/* if t has a key, emit that as well */
@@ -581,8 +723,8 @@
/*
-=item C<static void
-emit_pbc_expr(lexer_state * const lexer, expression * const operand)>
+=item C<static void emit_pbc_expr(lexer_state * const lexer, expression * const
+operand)>
Emit bytecode for the expression C<operand>. This is a dispatch
function, invoking the appropriate function depending on C<operand>'s
@@ -592,7 +734,11 @@
*/
static void
-emit_pbc_expr(lexer_state * const lexer, expression * const operand) {
+emit_pbc_expr(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+{
+ ASSERT_ARGS(emit_pbc_expr)
+
switch (operand->type) {
case EXPR_CONSTANT:
emit_pbc_const_arg(lexer, operand->expr.c);
@@ -620,8 +766,8 @@
/*
-=item C<static void
-optimize_instr(lexer_state * const lexer, instruction * const instr)>
+=item C<static void optimize_instr(lexer_state * const lexer, instruction *
+const instr)>
Optimize the instruction C<instr>. Currently, these instructions are optimized:
@@ -633,7 +779,10 @@
*/
static void
-optimize_instr(lexer_state * const lexer, instruction * const instr) {
+optimize_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+{
+ ASSERT_ARGS(optimize_instr)
switch (instr->opcode) {
case PARROT_OP_box_p_ic: {
@@ -641,7 +790,7 @@
/* the last operand, which is the second in this case */
expression *second_operand = instr->operands;
- PMC *intconst = pmc_new(lexer->interp,
+ PMC *intconst = Parrot_pmc_new(lexer->interp,
Parrot_get_ctx_HLL_type(lexer->interp, enum_class_Integer));
int index = add_pmc_const(lexer->bc, intconst);
VTABLE_set_integer_native(lexer->interp, intconst, second_operand->expr.c->val.ival);
@@ -658,7 +807,7 @@
/* the last operand, which is the second in this case */
expression *second_operand = instr->operands;
- PMC *numconst = pmc_new(lexer->interp,
+ PMC *numconst = Parrot_pmc_new(lexer->interp,
Parrot_get_ctx_HLL_type(lexer->interp, enum_class_Float));
int index = add_pmc_const(lexer->bc, numconst);
VTABLE_set_number_native(lexer->interp, numconst, second_operand->expr.c->val.nval);
@@ -676,7 +825,7 @@
/* the last operand, which is the second in this case */
expression *second_operand = instr->operands;
- PMC *strconst = pmc_new(lexer->interp,
+ PMC *strconst = Parrot_pmc_new(lexer->interp,
Parrot_get_ctx_HLL_type(lexer->interp, enum_class_String));
int index = add_pmc_const(lexer->bc, strconst);
@@ -700,8 +849,8 @@
/*
-=item C<static void
-emit_pbc_instr(lexer_state * const lexer, instruction * const instr)>
+=item C<static void emit_pbc_instr(lexer_state * const lexer, instruction *
+const instr)>
Emit PBC for one instruction. If the C<opinfo> attribute of C<instr>
is NULL, the function does nothing and returns.
@@ -710,7 +859,11 @@
*/
static void
-emit_pbc_instr(lexer_state * const lexer, instruction * const instr) {
+emit_pbc_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+{
+ ASSERT_ARGS(emit_pbc_instr)
+
int i;
expression *operand;
opcode_t offset;
@@ -766,8 +919,8 @@
/*
-=item C<static void
-emit_pbc_sub(lexer_state * const lexer, subroutine * const sub)>
+=item C<static void emit_pbc_sub(lexer_state * const lexer, subroutine * const
+sub)>
Emit bytecode for the subroutine C<sub>.
@@ -775,7 +928,11 @@
*/
static void
-emit_pbc_sub(lexer_state * const lexer, subroutine * const sub) {
+emit_pbc_sub(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+{
+ ASSERT_ARGS(emit_pbc_sub)
+
instruction *iter;
if (sub->statements == NULL)
@@ -803,8 +960,7 @@
/*
-=item C<static void
-emit_pbc_annotations(lexer_state * const lexer)>
+=item C<static void emit_pbc_annotations(lexer_state * const lexer)>
Emit all annotations into the PackFile. First a new annotations
segment is created. Then, for each annotation, its value is stored
@@ -814,7 +970,10 @@
*/
static void
-emit_pbc_annotations(lexer_state * const lexer) {
+emit_pbc_annotations(ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(emit_pbc_annotations)
+
annotation *iter;
if (lexer->annotations == NULL)
@@ -866,8 +1025,7 @@
/*
-=item C<void
-emit_pbc(lexer_state * const lexer, const char *outfile)>
+=item C<void emit_pbc(lexer_state * const lexer, const char *outfile)>
Generate Parrot Byte Code from the abstract syntax tree.
This is the top-level function. After all instructions
@@ -878,7 +1036,10 @@
*/
void
-emit_pbc(lexer_state * const lexer, const char *outfile) {
+emit_pbc(ARGIN(lexer_state * const lexer),
+ ARGIN(const char *outfile))
+{
+ ASSERT_ARGS(emit_pbc)
subroutine *subiter;
if (!outfile)
Modified: branches/ops_pct/compilers/pirc/src/piremit.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/piremit.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/piremit.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -10,12 +10,91 @@
struct lexer_state;
struct constant;
-void print_subs(struct lexer_state * const lexer);
-void emit_pir_subs(struct lexer_state * const lexer, char const * const outfile);
-void emit_pbc(struct lexer_state * const lexer, const char *outfile);
+/* HEADERIZER BEGIN: compilers/pirc/src/piremit.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+void emit_pbc(ARGIN(lexer_state * const lexer), ARGIN(const char *outfile))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-int emit_pbc_const(struct lexer_state * const lexer, struct constant * const pirconst);
+void emit_pir_subs(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outfile))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_constant(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_expr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_expressions(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_instruction(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const ins))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_key(ARGIN(lexer_state * const lexer), ARGIN(key * const k))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_statement(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_subs(struct ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void print_target(ARGIN(lexer_state * const lexer), ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_emit_pbc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(outfile))
+#define ASSERT_ARGS_emit_pir_subs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(outfile))
+#define ASSERT_ARGS_print_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_print_expr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_print_expressions __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_print_instruction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(ins))
+#define ASSERT_ARGS_print_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(k))
+#define ASSERT_ARGS_print_statement __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_print_subs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_print_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/piremit.c */
#endif /* PARROT_PIR_PIREMIT_H_GUARD */
Modified: branches/ops_pct/compilers/pirc/src/pirmacro.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirmacro.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirmacro.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -9,7 +9,18 @@
#include "pircompiler.h"
#include "parrot/parrot.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pirmacro.h */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void check_size(ARGIN(macro_def * const macro), unsigned length)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_check_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
/*
@@ -24,15 +35,11 @@
*/
-static void check_size(macro_def * const macro, unsigned length);
-
-
-
/*
-=item C<macro_def *
-new_macro(macro_table * const table, char * const name, int lineno)>
+=item C<macro_def * new_macro(macro_table * const table, char const * const
+name, int lineno, int takes_args, unsigned initsize)>
Create a new macro definition node and store it in the macro_table C<table>
@@ -41,10 +48,13 @@
*/
PARROT_MALLOC
PARROT_IGNORABLE_RESULT
+PARROT_CAN_RETURN_NULL
macro_def *
-new_macro(macro_table * const table, char const * const name, int lineno, int takes_args,
- unsigned initsize)
+new_macro(ARGIN(macro_table * const table),
+ ARGIN(char const * const name), int lineno, int takes_args,
+ unsigned initsize)
{
+ ASSERT_ARGS(new_macro)
macro_def *macro = (macro_def *)mem_sys_allocate(sizeof (macro_def));
macro->name = name;
@@ -65,8 +75,7 @@
/*
-=item C<macro_param *
-new_macro_param(char const * const value)>
+=item C<macro_param * new_macro_param(char const * const value)>
Constructor for a C<macro_param> struct object. Initializes
the C<name> attribute of the C<macro_param> object to C<value>.
@@ -79,7 +88,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
macro_param *
-new_macro_param(char const * const value) {
+new_macro_param(ARGIN(char const * const value))
+{
+ ASSERT_ARGS(new_macro_param)
macro_param *param = (macro_param *)mem_sys_allocate(sizeof (macro_param));
param->name = value;
param->next = NULL;
@@ -88,8 +99,8 @@
/*
-=item C<void
-add_macro_param(macro_def * const macro, char * const name)>
+=item C<void add_macro_param(ARGIN*macro_def * const macro), char const * const
+name)>
Add a macro parameter by name of C<name> to the macro definition C<macro>.
@@ -97,7 +108,10 @@
*/
void
-add_macro_param(macro_def * const macro, char const * const name) {
+add_macro_param(ARGIN*macro_def * const macro),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(add_macro_param)
macro_param *param = new_macro_param(name);
param->next = macro->parameters;
macro->parameters = param;
@@ -106,8 +120,8 @@
/*
-=item C<void
-new_macro_const(macro_table * const table, char const * const name, char const * const value)>
+=item C<void new_macro_const(macro_table * const table, char const * const name,
+char const * const value, int lineno)>
Define a new C<.macro_const>, by name of C<name> as an alias for C<value> The new macro
const is entered in the macro_table C<table>
@@ -116,9 +130,11 @@
*/
void
-new_macro_const(macro_table * const table, char const * const name, char const * const value,
- int lineno)
+new_macro_const(ARGIN(macro_table * const table),
+ ARGIN(char const * const name),
+ ARGIN(char const * const value), int lineno)
{
+ ASSERT_ARGS(new_macro_const)
/* macro constants are just macros, but they have no body; the value is already
* parsed and allocated in memory.
*/
@@ -130,8 +146,7 @@
/*
-=item C<void
-check_size(macro_def * const macro, unsigned length)>
+=item C<static void check_size(macro_def * const macro, unsigned length)>
Check C<macro>'s buffer size whether C<length> bytes can be added;
if not, then the buffer is doubled in size.
@@ -140,7 +155,9 @@
*/
static void
-check_size(macro_def * const macro, unsigned length) {
+check_size(ARGIN(macro_def * const macro), unsigned length)
+{
+ ASSERT_ARGS(check_size)
unsigned used = macro->cursor - macro->body;
if (used + length >= macro->buffersize) {
unsigned newsize = macro->buffersize << 1;
@@ -159,8 +176,7 @@
/*
-=item C<void
-store_macro_char(macro_def * const macro, char c)>
+=item C<void store_macro_char(macro_def * const macro, char c)>
Store the character C<c> in C<macro>'s body buffer.
@@ -168,7 +184,9 @@
*/
void
-store_macro_char(macro_def * const macro, char c) {
+store_macro_char(ARGIN(macro_def * const macro), char c)
+{
+ ASSERT_ARGS(store_macro_char)
/* if buffer is full, resize it. */
check_size(macro, 1);
*(macro->cursor)++ = c;
@@ -179,8 +197,8 @@
/*
-=item C<void
-store_macro_string(macro_def * const macro, char * const str, ...)>
+=item C<void store_macro_string(macro_def * const macro, char const * const str,
+...)>
Store the string C<str> in C<macro>'s body buffer. The total number
of characters to be written should not exceed MAX_NUM_CHARS. It's not known
@@ -190,7 +208,11 @@
*/
void
-store_macro_string(macro_def * const macro, char const * const str, ...) {
+store_macro_string(ARGIN(macro_def * const macro),
+ ARGIN(char const * const str),
+ ...)
+{
+ ASSERT_ARGS(store_macro_string)
va_list arg_ptr;
#define MAX_NUM_CHARS_IN_STRING 256
@@ -206,8 +228,8 @@
/*
-=item C<macro_def *
-find_macro(constant_table * const table, char * const name)>
+=item C<macro_def * find_macro(macro_table * const table, char const * const
+name)>
Find the specified macro. If the specified macro does not exist,
NULL is returned.
@@ -218,7 +240,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
macro_def *
-find_macro(macro_table * const table, char const * const name) {
+find_macro(ARGIN(macro_table * const table),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_macro)
macro_def *iter = table->definitions;
PARROT_ASSERT(name != NULL);
@@ -243,8 +268,7 @@
/*
-=item C<macro_table *
-new_macro_table(macro_table * const current)>
+=item C<macro_table * new_macro_table(macro_table * const current)>
Create a new macro_table structure; set C<current> as its previous.
The newly created table is returned.
@@ -256,7 +280,9 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
macro_table *
-new_macro_table(macro_table * const current) {
+new_macro_table(ARGIN(macro_table * const current))
+{
+ ASSERT_ARGS(new_macro_table)
macro_table *table = (macro_table *)mem_sys_allocate_zeroed(sizeof (macro_table));
table->definitions = NULL;
table->prev = NULL;
@@ -270,8 +296,7 @@
/*
-=item C<void
-delete_macro_table(macro_table * table)>
+=item C<void delete_macro_table(macro_table * table)>
Free resources allocated for the macro_table C<table>.
@@ -279,14 +304,16 @@
*/
void
-delete_macro_table(macro_table * table) {
+delete_macro_table(ARGMOD(macro_table * table))
+{
+ ASSERT_ARGS(delete_macro_table)
mem_sys_free(table);
}
/*
-=item C<void
-declare_macro_local(macro_def * const macro, char * const name)>
+=item C<void declare_macro_local(macro_def * const macro, char const * const
+name)>
Declare C<name> as a C<.macro_local> for the macro definition C<macro>.
@@ -294,7 +321,10 @@
*/
void
-declare_macro_local(macro_def * const macro, char const * const name) {
+declare_macro_local(ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(declare_macro_local)
macro_param * param = new_macro_param(name);
param->next = macro->macrolocals;
macro->macrolocals = param;
@@ -303,8 +333,7 @@
/*
-=item C<int
-is_macro_local(macro_def * const macro, char * const name)>
+=item C<int is_macro_local(macro_def * const macro, char const * const name)>
Check whether C<name> was declared as a C<.macro_local> in the macro
definition C<macro>.
@@ -314,7 +343,10 @@
*/
PARROT_WARN_UNUSED_RESULT
int
-is_macro_local(macro_def * const macro, char const * const name) {
+is_macro_local(ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(is_macro_local)
macro_param *iter = macro->macrolocals;
while (iter) {
Modified: branches/ops_pct/compilers/pirc/src/pirmacro.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirmacro.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirmacro.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -80,33 +80,113 @@
} macro_table;
+/* HEADERIZER BEGIN: compilers/pirc/src/pirmacro.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-
-macro_def *new_macro(macro_table * const table, char const * const name, int lineno,
- int takes_args, unsigned initsize);
-
-void add_macro_param(macro_def * const macro, char const * const name);
-
-void new_macro_const(macro_table * const table, char const * const name,
- char const * const value, int lineno);
-
-
-macro_def *find_macro(macro_table * const table, char const * const name);
-
-macro_table * new_macro_table(macro_table * const current);
-
-void store_macro_char(macro_def * const macro, char c) ;
-
-void store_macro_string(macro_def * const macro, char const * const str, ...);
-
-macro_param * new_macro_param(char const * const value);
-
-void declare_macro_local(macro_def * const macro, char const * const name);
-
-int is_macro_local(macro_def * const macro, char const * const name);
-
-void delete_macro_table(macro_table * table);
+void add_macro_param(
+ ARGIN*macro_def * const macro),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(2);
+
+void declare_macro_local(
+ ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void delete_macro_table(ARGMOD(macro_table * table))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(* table);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+macro_def * find_macro(
+ ARGIN(macro_table * const table),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+int is_macro_local(
+ ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_MALLOC
+PARROT_IGNORABLE_RESULT
+PARROT_CAN_RETURN_NULL
+macro_def * new_macro(
+ ARGIN(macro_table * const table),
+ ARGIN(char const * const name),
+ int lineno,
+ int takes_args,
+ unsigned initsize)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void new_macro_const(
+ ARGIN(macro_table * const table),
+ ARGIN(char const * const name),
+ ARGIN(char const * const value),
+ int lineno)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+macro_param * new_macro_param(ARGIN(char const * const value))
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+macro_table * new_macro_table(ARGIN(macro_table * const current))
+ __attribute__nonnull__(1);
+
+void store_macro_char(ARGIN(macro_def * const macro), char c)
+ __attribute__nonnull__(1);
+
+void store_macro_string(
+ ARGIN(macro_def * const macro),
+ ARGIN(char const * const str),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_add_macro_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_declare_macro_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_delete_macro_table __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table))
+#define ASSERT_ARGS_find_macro __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_is_macro_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_macro __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_macro_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(name) \
+ , PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_new_macro_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_new_macro_table __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(current))
+#define ASSERT_ARGS_store_macro_char __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro))
+#define ASSERT_ARGS_store_macro_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro) \
+ , PARROT_ASSERT_ARG(str))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirmacro.c */
#endif /* PARROT_PIR_PIRMACRO_H_GUARD */
Modified: branches/ops_pct/compilers/pirc/src/pirparser.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirparser.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirparser.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -405,6 +405,111 @@
#endif
+/* HEADERIZER HFILE: none */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void check_first_arg_direction(
+ lexer_state * const lexer,
+ NOTNULL(char const * const opname))
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static char * concat_strings(
+ NOTNULL(lexer_state * const lexer),
+ NOTNULL(char const * a),
+ NOTNULL(char const * b))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static void create_if_instr(
+ NOTNULL(lexer_state * const lexer),
+ int invert,
+ int hasnull,
+ NOTNULL(char const * const name),
+ NOTNULL(char const * const label))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
+
+static void do_strength_reduction(lexer_state * const lexer);
+PARROT_WARN_UNUSED_RESULT
+static int evaluate_i_i(int a, pir_rel_operator op, int b);
+
+PARROT_WARN_UNUSED_RESULT
+static int evaluate_i_n(int a, pir_rel_operator op, double b);
+
+PARROT_WARN_UNUSED_RESULT
+static int evaluate_n_i(double a, pir_rel_operator op, int b);
+
+static void undeclared_symbol(
+ lexer_state * const lexer,
+ char const * const symbol);
+
+static void yy_reduce_print (
+ YYSTYPE *yyvsp,
+ int yyrule,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static void yy_stack_print (yytype_int16 *bottom, yytype_int16 *top);
+static void yy_symbol_print (
+ FILE *yyoutput,
+ int yytype,
+ YYSTYPE const * const yyvaluep,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static void yy_symbol_value_print (
+ FILE *yyoutput,
+ int yytype,
+ YYSTYPE const * const yyvaluep,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static void yydestruct (
+ const char *yymsg,
+ int yytype,
+ YYSTYPE *yyvaluep,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static int YYID (int i);
+static char * yystpcpy (char *yydest, const char *yysrc);
+static YYSIZE_T yystrlen (const char *yystr);
+static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar);
+static YYSIZE_T yytnamerr (char *yyres, const char *yystr);
+#define ASSERT_ARGS_check_first_arg_direction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_concat_strings __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(a) \
+ , PARROT_ASSERT_ARG(b))
+#define ASSERT_ARGS_create_if_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name) \
+ , PARROT_ASSERT_ARG(label))
+#define ASSERT_ARGS_do_strength_reduction __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_evaluate_i_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_evaluate_i_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_evaluate_n_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_undeclared_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_reduce_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_stack_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_symbol_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_symbol_value_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yydestruct __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_YYID __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yystpcpy __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yystrlen __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yysyntax_error __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yytnamerr __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
char *expand_macro(yyscan_t yyscanner, macro_def * const macro, macro_param * args);
/* Enumeration of mathematical operator types; these are used to index the opnames array. */
@@ -5450,8 +5555,7 @@
/*
-=item C<static int
-evaluate_i_i(int a, pir_rel_operator op, double b)>
+=item C<static int evaluate_i_i(int a, pir_rel_operator op, int b)>
Compare C<a> with C<b> according to the relational operator C<op>.
Wrapper for C<evaluate_n_n>, which takes arguments of type double.
@@ -5467,8 +5571,7 @@
/*
-=item C<static int
-evaluate_n_i(int a, pir_rel_operator op, double b)>
+=item C<static int evaluate_n_i(double a, pir_rel_operator op, int b)>
Compare C<a> with C<b> according to the relational operator C<op>.
Wrapper for C<evaluate_n_n>, which takes arguments of type double.
@@ -5484,8 +5587,7 @@
/*
-=item C<static int
-evaluate_i_n(int a, pir_rel_operator op, double b)>
+=item C<static int evaluate_i_n(int a, pir_rel_operator op, double b)>
Compare C<a> with C<b> according to the relational operator C<op>.
Wrapper for C<evaluate_n_n>, which takes arguments of type double.
@@ -5633,8 +5735,8 @@
/*
-=item C<static char *
-concat_strings(lexer_state * const lexer, char const *a, char const *b)>
+=item C<static char * concat_strings(lexer_state * const lexer, char const * a,
+char const * b)>
Concatenates two strings into a new buffer. The new string is returned.
@@ -5659,9 +5761,8 @@
/*
-=item C<static void
-create_if_instr(lexer_state *lexer, int invert, int hasnull,
- char * const name, char * const label)>
+=item C<static void create_if_instr(lexer_state * const lexer, int invert, int
+hasnull, char const * const name, char const * const label)>
Create an C<if> or C<unless> instruction; if C<invert> is non-zero (true), the
C<if> instruction is inverted, effectively becoming C<unless>.
@@ -5908,8 +6009,7 @@
/*
-=item C<static void
-do_strength_reduction(lexer_state * const lexer)>
+=item C<static void do_strength_reduction(lexer_state * const lexer)>
Implement strength reduction for the math operators C<add>, C<sub>, C<mul>, C<div> and C<fdiv>.
If the current instruction is any of these, then the first two operands are checked; if both
@@ -6043,8 +6143,8 @@
/*
-=item C<static void
-check_first_arg_direction(lexer_state * const lexer, char * const opname)>
+=item C<static void check_first_arg_direction(lexer_state * const lexer, char
+const * const opname)>
This function checks the first argument's direction of the op C<opname>.
If the direction is not C<OUT>, a syntax error is emitted. This function assumes
@@ -6217,8 +6317,8 @@
/*
-=item C<static void
-undeclared_symbol(lexer_state * const lexer, char * const symbol)>
+=item C<static void undeclared_symbol(lexer_state * const lexer, char const *
+const symbol)>
Report an error message saying that C<symbol> was not declared. Then test
whether the symbol is perhaps a PASM register identifier. The user may have
Modified: branches/ops_pct/compilers/pirc/src/pirpcc.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirpcc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirpcc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -25,14 +25,163 @@
#include "parrot/oplib/ops.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pirpcc.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void add_alias_operand(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(PMC *array),
+ int index,
+ ARGIN(char const * const alias))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4);
+
+static void arguments_to_operands(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const args),
+ unsigned num_arguments)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static int calculate_pcc_argument_flags(ARGIN(argument * const arg))
+ __attribute__nonnull__(1);
+
+static int calculate_pcc_target_flags(ARGIN(target * const result))
+ __attribute__nonnull__(1);
+
+static void convert_nci_call(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_call(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_methodcall(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_methodtailcall(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_return(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_tailcall(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_yield(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static int generate_signature_pmc(
+ ARGIN(lexer_state * const lexer),
+ unsigned size)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+static target * generate_unique_pir_reg(
+ ARGIN(lexer_state * const lexer),
+ pir_type type)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+static target * get_invoked_sub(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void save_global_reference(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr),
+ ARGIN(char const * const label))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static void targets_to_operands(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targets),
+ unsigned num_targets)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_add_alias_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(array) \
+ , PARROT_ASSERT_ARG(alias))
+#define ASSERT_ARGS_arguments_to_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(args))
+#define ASSERT_ARGS_calculate_pcc_argument_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_calculate_pcc_target_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(result))
+#define ASSERT_ARGS_convert_nci_call __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_call __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_methodcall __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_methodtailcall __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_return __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_tailcall __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_yield __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_generate_signature_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_generate_unique_pir_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_invoked_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_save_global_reference __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr) \
+ , PARROT_ASSERT_ARG(label))
+#define ASSERT_ARGS_targets_to_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(targets))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
/*
=over 4
-=item C<static int
-calculate_pcc_target_flags(target * const result)>
+=item C<static int calculate_pcc_target_flags(target * const result)>
Calculate Parrot Calling Conventions flags for the target node
C<result>.
@@ -41,7 +190,9 @@
*/
static int
-calculate_pcc_target_flags(target * const result) {
+calculate_pcc_target_flags(ARGIN(target * const result))
+{
+ ASSERT_ARGS(calculate_pcc_target_flags)
int flag = 0;
@@ -66,8 +217,7 @@
/*
-=item C<static int
-calculate_pcc_argument_flags(argument * const arg)>
+=item C<static int calculate_pcc_argument_flags(argument * const arg)>
Calculate the Parrot Calling Conventions flags for the
argument C<arg>. An int encoding the flags is returned.
@@ -76,7 +226,9 @@
*/
static int
-calculate_pcc_argument_flags(argument * const arg) {
+calculate_pcc_argument_flags(ARGIN(argument * const arg))
+{
+ ASSERT_ARGS(calculate_pcc_argument_flags)
int flag = 0;
switch (arg->value->type) {
@@ -110,8 +262,8 @@
/*
-=item C<static target *
-generate_unique_pir_reg(lexer_state * const lexer, pir_type type)>
+=item C<static target * generate_unique_pir_reg(lexer_state * const lexer,
+pir_type type)>
Generate a unique, temporary PIR register of type C<type>. It uses the C<reg>
constructor to create a target node, and using C<pir_reg_generator>
@@ -123,16 +275,20 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
static target *
-generate_unique_pir_reg(lexer_state * const lexer, pir_type type) {
+generate_unique_pir_reg(ARGIN(lexer_state * const lexer), pir_type type)
+{
+ ASSERT_ARGS(generate_unique_pir_reg)
+
return new_reg(lexer, type, --lexer->pir_reg_generator);
}
/*
-=item C<static int
-generate_signature_pmc(lexer_state * const lexer, unsigned size)>
+=item C<static int generate_signature_pmc(lexer_state * const lexer, unsigned
+size)>
Create a FixedIntegerArray PMC object that encodes the types and flags
of parameters and add it to the PBC constant table. The index in that
@@ -142,12 +298,15 @@
*/
static int
-generate_signature_pmc(lexer_state * const lexer, unsigned size) {
+generate_signature_pmc(ARGIN(lexer_state * const lexer), unsigned size)
+{
+ ASSERT_ARGS(generate_signature_pmc)
+
PMC *fixed_int_array;
int array_index;
/* flags and types are encoded in a FixedIntegerArray PMC */
- fixed_int_array = pmc_new(lexer->interp, enum_class_FixedIntegerArray);
+ fixed_int_array = Parrot_pmc_new(lexer->interp, enum_class_FixedIntegerArray);
if (size > 0) /* can't resize a fixed integer array to 0 elements, default size is 0. */
VTABLE_set_integer_native(lexer->interp, fixed_int_array, size);
@@ -161,8 +320,7 @@
/*
-=item C<void
-emit_sub_epilogue(lexer_state * const lexer)>
+=item C<void emit_sub_epilogue(lexer_state * const lexer)>
Emit final instructions for the current subroutine. In case
this is a C<:main> sub, the "end" instruction is emitted,
@@ -172,7 +330,9 @@
*/
void
-emit_sub_epilogue(lexer_state * const lexer) {
+emit_sub_epilogue(ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(emit_sub_epilogue)
if (TEST_FLAG(lexer->subs->flags, PIRC_SUB_FLAG_MAIN))
new_sub_instr(lexer, PARROT_OP_end, "end", 0);
@@ -188,8 +348,8 @@
/*
-=item C<static void
-add_alias_operand(lexer_state * const lexer, PMC *array, int index, char const * const alias)>
+=item C<static void add_alias_operand(lexer_state * const lexer, PMC *array, int
+index, char const * const alias)>
Add an alias operand to current instruction; C<array> is the signature
array, which must hold the right flags for this new operand (at position C<index>).
@@ -199,8 +359,11 @@
*/
static void
-add_alias_operand(lexer_state * const lexer, PMC *array, int index, char const * const alias) {
- PARROT_ASSERT(alias);
+add_alias_operand(ARGIN(lexer_state * const lexer),
+ ARGIN(PMC *array), int index,
+ ARGIN(char const * const alias))
+{
+ ASSERT_ARGS(add_alias_operand)
/* set flags for being a string constant, and being a :named operand. */
VTABLE_set_integer_keyed_int(lexer->interp, array, index, PARROT_ARG_NAME | PARROT_ARG_SC);
push_operand(lexer, expr_from_string(lexer, alias));
@@ -209,8 +372,8 @@
/*
-=item C<static void
-targets_to_operands(lexer_state * const lexer, target * const targets)>
+=item C<static void targets_to_operands(lexer_state * const lexer, target *
+const targets, unsigned num_targets)>
Convert a list of C<target> nodes into operands. Before the operands
are added to the I<current> instruction, a FixedIntegerArray is created,
@@ -231,7 +394,11 @@
*/
static void
-targets_to_operands(lexer_state * const lexer, target * const targets, unsigned num_targets) {
+targets_to_operands(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targets), unsigned num_targets)
+{
+ ASSERT_ARGS(targets_to_operands)
+
target *iter;
int array_index;
PMC *signature_array;
@@ -291,8 +458,8 @@
/*
-=item C<static void
-arguments_to_operands(lexer_state * const lexer, argument * const args)>
+=item C<static void arguments_to_operands(lexer_state * const lexer, argument *
+const args, unsigned num_arguments)>
Convert a list of C<argument> nodes into operands. Before the operands are
added to the I<current> instruction, a FixedIntegerArray PMC is created
@@ -303,7 +470,11 @@
*/
static void
-arguments_to_operands(lexer_state * const lexer, argument * const args, unsigned num_arguments) {
+arguments_to_operands(ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const args), unsigned num_arguments)
+{
+ ASSERT_ARGS(arguments_to_operands)
+
argument *argiter;
int array_index;
unsigned i;
@@ -347,8 +518,8 @@
/*
-=item C<void
-generate_parameters_instr(lexer_state * const lexer, unsigned num_parameters)>
+=item C<void generate_parameters_instr(lexer_state * const lexer, unsigned
+num_parameters)>
Generate the "get_params" instruction, taking <num_parameters> variable arguments;
this is the number of parameters of this function.
@@ -357,7 +528,9 @@
*/
void
-generate_parameters_instr(lexer_state * const lexer, unsigned num_parameters) {
+generate_parameters_instr(ARGIN(lexer_state * const lexer), unsigned num_parameters)
+{
+ ASSERT_ARGS(generate_parameters_instr)
if (TEST_FLAG(CURRENT_SUB(lexer)->flags , (PIRC_SUB_FLAG_METHOD | PIRC_SUB_FLAG_VTABLE))) {
++num_parameters; /* didn't count implicit "self" parameter yet. */
}
@@ -372,8 +545,8 @@
/*
-=item C<void
-generate_getresults_instr(lexer_state * const lexer, target * const targetlist)>
+=item C<void generate_getresults_instr(lexer_state * const lexer, target * const
+targetlist)>
Generate instruction for the C<.get_results> statement.
@@ -381,7 +554,10 @@
*/
void
-generate_getresults_instr(lexer_state * const lexer, target * const targetlist) {
+generate_getresults_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targetlist))
+{
+ ASSERT_ARGS(generate_getresults_instr)
/* add this point we know that there's only 1 target, as that's the convention for
* exception handlers:
*
@@ -397,9 +573,8 @@
/*
-=item C<static void
-save_global_reference(lexer_state * const lexer, instruction * const instr,
- char const * const label)>
+=item C<static void save_global_reference(lexer_state * const lexer, instruction
+* const instr, char const * const label)>
Store the instruction C<instr>, which references the global label C<label> in a list.
After the parse phase, this instruction can be patched, if C<label> can be resolved
@@ -409,10 +584,12 @@
*/
static void
-save_global_reference(lexer_state * const lexer, instruction * const instr,
- char const * const label)
-
+save_global_reference(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr),
+ ARGIN(char const * const label))
{
+ ASSERT_ARGS(save_global_reference)
+
global_fixup *ref = pir_mem_allocate_zeroed_typed(lexer, global_fixup);
ref->instr = instr;
@@ -425,8 +602,8 @@
/*
-=item C<static target *
-get_invoked_sub(lexer_state * const lexer, target * const sub)>
+=item C<static target * get_invoked_sub(lexer_state * const lexer, target *
+const sub)>
Return a C<target> node that represents the sub to invoke.
If C<sub> is a register, that is returned. If it's a declared C<.local>,
@@ -439,8 +616,12 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
static target *
-get_invoked_sub(lexer_state * const lexer, target * const sub) {
+get_invoked_sub(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const sub))
+{
+ ASSERT_ARGS(get_invoked_sub)
target *subreg = NULL;
symbol *sym = NULL;
global_label *glob = NULL;
@@ -494,8 +675,8 @@
/*
-=item C<static void
-convert_pcc_call(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_call(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a normal invocation using the Parrot Calling
Conventions (PCC). This is the sequence of the following instructions:
@@ -517,7 +698,11 @@
*/
static void
-convert_pcc_call(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_call(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_call)
+
target *sub;
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -541,8 +726,8 @@
/*
-=item C<static void
-convert_pcc_tailcall(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_tailcall(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a tailcall using the Parrot Calling Conventions (PCC).
The sequence of instructions is:
@@ -554,7 +739,11 @@
*/
static void
-convert_pcc_tailcall(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_tailcall(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_tailcall)
+
target *sub;
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -568,8 +757,8 @@
/*
-=item C<static void
-convert_pcc_return(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_return(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a normal return statement using the Parrot Calling
Conventions (PCC). The sequence of instructions is:
@@ -581,7 +770,11 @@
*/
static void
-convert_pcc_return(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_return(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_return)
+
new_sub_instr(lexer, PARROT_OP_set_returns_pc, "set_returns_pc", inv->num_arguments);
arguments_to_operands(lexer, inv->arguments, inv->num_arguments);
new_sub_instr(lexer, PARROT_OP_returncc, "returncc", 0);
@@ -589,8 +782,8 @@
/*
-=item C<static void
-convert_nci_call(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_nci_call(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a function invocation using the Native Call
Interface (NCI). The sequence of instructions is:
@@ -603,7 +796,11 @@
*/
static void
-convert_nci_call(lexer_state * const lexer, invocation * const inv) {
+convert_nci_call(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_nci_call)
+
target *sub;
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -620,8 +817,8 @@
/*
-=item C<static void
-convert_pcc_yield(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_yield(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a yield statement using the Parrot Calling Conventions.
The sequence of instructions is:
@@ -633,7 +830,11 @@
*/
static void
-convert_pcc_yield(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_yield(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_yield)
+
new_sub_instr(lexer, PARROT_OP_set_returns_pc, "set_returns_pc", inv->num_arguments);
arguments_to_operands(lexer, inv->arguments, inv->num_arguments);
new_sub_instr(lexer, PARROT_OP_yield, "yield", 0);
@@ -642,8 +843,8 @@
/*
-=item C<static void
-convert_pcc_methodcall(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_methodcall(lexer_state * const lexer, invocation
+* const inv)>
Generate instructions for a method call using the Parrot Calling Conventions (PCC).
The sequence of instructions is:
@@ -656,7 +857,11 @@
*/
static void
-convert_pcc_methodcall(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_methodcall(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_methodcall)
+
/* in a methodcall, the invocant object is passed as the first argument */
unshift_arg(inv, new_argument(lexer, expr_from_target(lexer, inv->sub)));
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -673,8 +878,8 @@
/*
-=item C<static void
-convert_pcc_methodtailcall(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_methodtailcall(lexer_state * const lexer,
+invocation * const inv)>
Generate instructions for a method tailcall, using the Parrot Calling Conventions (PCC).
The sequence of instructions is:
@@ -686,7 +891,11 @@
*/
static void
-convert_pcc_methodtailcall(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_methodtailcall(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_methodtailcall)
+
unshift_arg(inv, new_argument(lexer, expr_from_target(lexer, inv->sub)));
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -712,8 +921,8 @@
/*
-=item C<void
-convert_inv_to_instr(lexer_state * const lexer, invocation * const inv)>
+=item C<void convert_inv_to_instr(lexer_state * const lexer, invocation * const
+inv)>
Convert an C<invocation> structure into a series of instructions. This is the
dispatch function, which calls the appropriate conversion function, based
@@ -723,7 +932,10 @@
*/
void
-convert_inv_to_instr(lexer_state * const lexer, invocation * const inv) {
+convert_inv_to_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_inv_to_instr)
switch (inv->type) {
case CALL_PCC:
convert_pcc_call(lexer, inv);
Modified: branches/ops_pct/compilers/pirc/src/pirpcc.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirpcc.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirpcc.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -9,10 +9,41 @@
#include "pircompunit.h"
#include "pircompiler.h"
-void convert_inv_to_instr(struct lexer_state * const lexer, invocation * const inv);
-void generate_parameters_instr(struct lexer_state * const lexer, unsigned num_parameters);
-void generate_getresults_instr(struct lexer_state * const lexer, target * const targetlist);
-void emit_sub_epilogue(struct lexer_state * const lexer);
+/* HEADERIZER BEGIN: compilers/pirc/src/pirpcc.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+void convert_inv_to_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void emit_sub_epilogue(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void generate_getresults_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targetlist))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void generate_parameters_instr(
+ ARGIN(lexer_state * const lexer),
+ unsigned num_parameters)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_convert_inv_to_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_emit_sub_epilogue __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_generate_getresults_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(targetlist))
+#define ASSERT_ARGS_generate_parameters_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirpcc.c */
#endif /* PARROT_PIR_PIRPCC_H_GUARD */
Modified: branches/ops_pct/compilers/pirc/src/pirregalloc.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirregalloc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirregalloc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -47,8 +47,7 @@
/*
-=item C<static void
-reset_register_count(lsr_allocator * const lsr)>
+=item C<static void reset_register_count(lsr_allocator * const lsr)>
Reset the register counters; there's one counter for each register
type (string, num, int, pmc).
@@ -57,7 +56,9 @@
*/
static void
-reset_register_count(lsr_allocator * const lsr) {
+reset_register_count(ARGIN(lsr_allocator * const lsr))
+{
+ ASSERT_ARGS(reset_register_count)
int i;
/* the "r" field keeps track of the number of registers that must be allocated by
* parrot. In the original implementation, "r" is constant, and indicates the number
@@ -70,10 +71,85 @@
lsr->r[i] = 1;
}
+/* HEADERIZER HFILE: compilers/pirc/src/pirregalloc.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void add_free_reg(
+ ARGIN(lsr_allocator * const lsr),
+ unsigned regno,
+ pir_type type)
+ __attribute__nonnull__(1);
+
+static void add_interval_to_active(
+ ARGIN(lsr_allocator *lsr),
+ ARGIN(live_interval * const i),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void add_live_interval(
+ ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void cache_interval_object(
+ ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * interval))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void expire_old_intervals(
+ ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static unsigned get_free_reg(
+ ARGIN(lsr_allocator * const lsr),
+ pir_type type)
+ __attribute__nonnull__(1);
+
+static unsigned lengthi(ARGIN_NULLOK(live_interval *list));
+static void remove_from_active(ARGMOD(live_interval *i))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(*i);
+
+static void reset_register_count(ARGIN(lsr_allocator * const lsr))
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_add_free_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_add_interval_to_active __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_add_live_interval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_cache_interval_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(interval))
+#define ASSERT_ARGS_expire_old_intervals __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_get_free_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_lengthi __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_remove_from_active __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_reset_register_count __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/*
-=item C<lsr_allocator *
-new_linear_scan_register_allocator(struct lexer_state * lexer)>
+=item C<lsr_allocator * new_linear_scan_register_allocator(struct lexer_state
+*lexer)>
Constructor for a linear scan register allocator.
Initializes the allocator, and returns it.
@@ -81,8 +157,11 @@
=cut
*/
+PARROT_CAN_RETURN_NULL
lsr_allocator *
-new_linear_scan_register_allocator(struct lexer_state *lexer) {
+new_linear_scan_register_allocator(ARGIN_NULLOK(struct lexer_state *lexer))
+{
+ ASSERT_ARGS(new_linear_scan_register_allocator)
lsr_allocator *lsr = (lsr_allocator *)mem_sys_allocate_zeroed(sizeof (lsr_allocator));
lsr->lexer = lexer;
@@ -97,7 +176,8 @@
*/
void print_list(char *msg, live_interval *i);
void
-print_list(char *msg, live_interval *i) {
+print_list(ARGIN(char *msg), ARGIN(live_interval *i))
+{
fprintf(stderr, "%s: ", msg);
while (i) {
fprintf(stderr, "[%d] ", i->endpoint);
@@ -108,8 +188,7 @@
/*
-=item C<void
-destroy_linear_scan_register_allocator(lsr_allocator *lsr)>
+=item C<void destroy_linear_scan_register_allocator(lsr_allocator *lsr)>
Destructor for linear scan register allocator. All live_interval
objects are destroyed as well.
@@ -118,7 +197,9 @@
*/
void
-destroy_linear_scan_register_allocator(lsr_allocator *lsr) {
+destroy_linear_scan_register_allocator(ARGMOD(lsr_allocator *lsr))
+{
+ ASSERT_ARGS(destroy_linear_scan_register_allocator)
pir_type type;
live_interval *i;
@@ -143,12 +224,18 @@
/*
+=item C<static unsigned lengthi(live_interval *list)>
+
XXX debug function only.
Return length of list C<list>
+=cut
+
*/
static unsigned
-lengthi(live_interval *list) {
+lengthi(ARGIN_NULLOK(live_interval *list))
+{
+ ASSERT_ARGS(lengthi)
unsigned len = 0;
while (list) {
@@ -160,8 +247,8 @@
/*
-=item C<static void
-add_live_interval(lsr_allocator * const lsr, live_interval * const i, pir_type type)>
+=item C<static void add_live_interval(lsr_allocator * const lsr, live_interval *
+const i, pir_type type)>
Add live_interval C<i> to the list; this list is sorted on increasing
start point.
@@ -170,7 +257,10 @@
*/
static void
-add_live_interval(lsr_allocator * const lsr, live_interval * const i, pir_type type) {
+add_live_interval(ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i), pir_type type)
+{
+ ASSERT_ARGS(add_live_interval)
live_interval *iter = lsr->intervals[type];
/* if there's no interval for the specified type, insert i as the first one and return */
@@ -234,8 +324,8 @@
/*
-=item C<live_interval *
-new_live_interval(lsr_allocator * const lsr, unsigned firstuse_location, pir_type type)>
+=item C<live_interval * new_live_interval(lsr_allocator * const lsr, unsigned
+firstuse_location, pir_type type)>
Constructor for a live_interval struct object. After creating the new interval object,
its startpoint and endpoint are initialized to the value in C<firstuse_location>. Note
@@ -247,10 +337,14 @@
=cut
*/
+PARROT_CAN_RETURN_NULL
PARROT_MALLOC
PARROT_WARN_UNUSED_RESULT
live_interval *
-new_live_interval(lsr_allocator * const lsr, unsigned firstuse_location, pir_type type) {
+new_live_interval(ARGIN(lsr_allocator * const lsr),
+ unsigned firstuse_location, pir_type type)
+{
+ ASSERT_ARGS(new_live_interval)
live_interval *i;
/* check whether there's an interval object that we can re-use, to prevent
* memory malloc() and free()s.
@@ -283,8 +377,8 @@
/*
-=item C<static void
-add_interval_to_active(lsr_allocator *lsr, live_interval * i, pir_type type)>
+=item C<static void add_interval_to_active(lsr_allocator *lsr, live_interval *
+const i, pir_type type)>
Add interval C<i> to the list of active intervals; the list is sorted
on increasing endpoint.
@@ -293,7 +387,10 @@
*/
static void
-add_interval_to_active(lsr_allocator *lsr, live_interval * const i, pir_type type) {
+add_interval_to_active(ARGIN(lsr_allocator *lsr),
+ ARGIN(live_interval * const i), pir_type type)
+{
+ ASSERT_ARGS(add_interval_to_active)
live_interval *iter = lsr->active[type];
/* if there's no active intervals, set i as first */
@@ -351,8 +448,7 @@
/*
-=item C<static unsigned
-get_free_reg(lsr_allocator * const lsr, pir_type type)>
+=item C<static unsigned get_free_reg(lsr_allocator * const lsr, pir_type type)>
Allocate a new register; if there's any old registers to be reused, return
such a second-hand register; otherwise, allocate a brand new one.
@@ -361,7 +457,9 @@
*/
static unsigned
-get_free_reg(lsr_allocator * const lsr, pir_type type) {
+get_free_reg(ARGIN(lsr_allocator * const lsr), pir_type type)
+{
+ ASSERT_ARGS(get_free_reg)
/* if there's any second hand register for the requested type, return that. */
if (lsr->free_regs[type]) {
free_reg *available = lsr->free_regs[type];
@@ -388,8 +486,8 @@
/*
-=item C<static void
-add_free_reg(lsr_allocator * const lsr, unsigned regno, pir_type type)>
+=item C<static void add_free_reg(lsr_allocator * const lsr, unsigned regno,
+pir_type type)>
Add register C<regno> to the list of free regs that can be reuse.
@@ -397,7 +495,10 @@
*/
static void
-add_free_reg(lsr_allocator * const lsr, unsigned regno, pir_type type) {
+add_free_reg(ARGIN(lsr_allocator * const lsr), unsigned regno, pir_type type)
+{
+ ASSERT_ARGS(add_free_reg)
+
free_reg *reg;
/* fprintf(stderr, "add_free_reg(): %u\n", regno); */
@@ -422,8 +523,7 @@
/*
-=item C<static void
-remove_from_active(live_interval *i)>
+=item C<static void remove_from_active(live_interval *i)>
Remove interval C<i> from the list of active intervals.
@@ -431,7 +531,9 @@
*/
static void
-remove_from_active(live_interval *i) {
+remove_from_active(ARGMOD(live_interval *i))
+{
+ ASSERT_ARGS(remove_from_active)
/* if it has a previous node, that previous node's next is set
* to i's next.
*/
@@ -448,8 +550,8 @@
/*
-=item C<static void
-expire_old_intervals(lsr_allocator * const lsr, live_interval * i, pir_type type)>
+=item C<static void expire_old_intervals(lsr_allocator * const lsr,
+live_interval * const i, pir_type type)>
Go over all active intervals; if the endpoint of one of them is >= than
C<i>'s start point, the action is aborted. This is why the C<active> list must be
@@ -460,7 +562,11 @@
*/
static void
-expire_old_intervals(lsr_allocator * const lsr, live_interval * const i, pir_type type) {
+expire_old_intervals(ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i), pir_type type)
+{
+ ASSERT_ARGS(expire_old_intervals)
+
live_interval *j;
for (j = lsr->active[type]; j != NULL; j = j->nexta) {
@@ -479,8 +585,8 @@
/*
-=item C<static void
-cache_interval_objects(lsr_allocator * const lsr, live_interval * interval)>
+=item C<static void cache_interval_object(lsr_allocator * const lsr,
+live_interval * interval)>
Store the interval C<interval> on a caching list; whenever a new C<live_interval>
object is requested, these interval objects can be re-used, instead of malloc()ing
@@ -490,15 +596,17 @@
*/
static void
-cache_interval_object(lsr_allocator * const lsr, live_interval * interval) {
+cache_interval_object(ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * interval))
+{
+ ASSERT_ARGS(cache_interval_object)
interval->nextc = lsr->cached_intervals;
lsr->cached_intervals = interval;
}
/*
-=item C<void
-linear_scan_register_allocation(lsr_allocator * const lsr)>
+=item C<void linear_scan_register_allocation(lsr_allocator * const lsr)>
Go over all live intervals; before handling any interval, expire all old ones;
they might have expired (see expire_old_intervals()). Then, allocate a new
@@ -508,7 +616,9 @@
*/
void
-linear_scan_register_allocation(lsr_allocator * const lsr) {
+linear_scan_register_allocation(ARGIN(lsr_allocator * const lsr))
+{
+ ASSERT_ARGS(linear_scan_register_allocation)
live_interval * i;
pir_type type = 0; /* types run from 0 to 4; see pircompunit.h */
Modified: branches/ops_pct/compilers/pirc/src/pirregalloc.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirregalloc.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirregalloc.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -84,13 +84,41 @@
} lsr_allocator;
-lsr_allocator *new_linear_scan_register_allocator(struct lexer_state *lexer);
+/* HEADERIZER BEGIN: compilers/pirc/src/pirregalloc.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-void destroy_linear_scan_register_allocator(lsr_allocator *lsr);
-
-live_interval * new_live_interval(lsr_allocator * const lsr, unsigned firstuse, pir_type type);
-
-void linear_scan_register_allocation(lsr_allocator * const lsr);
+void destroy_linear_scan_register_allocator(ARGMOD(lsr_allocator *lsr))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(*lsr);
+
+void linear_scan_register_allocation(ARGIN(lsr_allocator * const lsr))
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+lsr_allocator * new_linear_scan_register_allocator(
+ ARGIN_NULLOK(struct lexer_state *lexer));
+
+PARROT_CAN_RETURN_NULL
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+live_interval * new_live_interval(
+ ARGIN(lsr_allocator * const lsr),
+ unsigned firstuse_location,
+ pir_type type)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_destroy_linear_scan_register_allocator \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_linear_scan_register_allocation \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_new_linear_scan_register_allocator \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_new_live_interval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirregalloc.c */
#endif /* PARROT_PIR_PIRREGALLOC_H_GUARD */
Modified: branches/ops_pct/compilers/pirc/src/pirsymbol.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirsymbol.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirsymbol.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -11,7 +11,6 @@
#include <string.h>
#include <stdio.h>
-
/*
=head1 NAME
@@ -49,6 +48,61 @@
*/
+/* HEADERIZER HFILE: compilers/pirc/src/pirsymbol.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static global_label * new_global_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static local_label * new_local_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ unsigned offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static pir_reg * new_pir_reg(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ int regno)
+ __attribute__nonnull__(1);
+
+static int next_register(ARGIN(lexer_state * const lexer), pir_type type)
+ __attribute__nonnull__(1);
+
+static int use_register(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ int regno,
+ int pasmregno)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_new_global_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_local_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_pir_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_next_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_use_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/* Conversion Look-Up Table (CLUT) for pir_type and value_type enums.
@@ -83,8 +137,7 @@
/*
-=item C<static int
-next_register(lexer_state * const lexer, pir_type type)>
+=item C<static int next_register(lexer_state * const lexer, pir_type type)>
Returns a new register of the specified type.
This is the vanilla register allocator.
@@ -93,7 +146,10 @@
*/
static int
-next_register(NOTNULL(lexer_state * const lexer), pir_type type) {
+next_register(ARGIN(lexer_state * const lexer), pir_type type)
+{
+ ASSERT_ARGS(next_register)
+
CURRENT_SUB(lexer)->info.regs_used[type]++; /* count number of registers used */
/* fprintf(stderr, "vanilla reg: %d of type %d\n", lexer->curregister[type], type); */
return lexer->curregister[type]++;
@@ -102,8 +158,8 @@
/*
-=item C<void
-assign_vanilla_register(lexer_state * const lexer, symbol * const sym)>
+=item C<void assign_vanilla_register(lexer_state * const lexer, symbol * const
+sym)>
Assign a new register to symbol C<sym>, and create a new live interval for C<sym>.
@@ -111,7 +167,10 @@
*/
void
-assign_vanilla_register(NOTNULL(lexer_state * const lexer), symbol * const sym) {
+assign_vanilla_register(ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+{
+ ASSERT_ARGS(assign_vanilla_register)
sym->info.color = next_register(lexer, sym->info.type);
/* fprintf(stderr, "assigning vanilla reg %d to symbol %s\n", sym->info.color,
sym->info.id.name);
@@ -135,8 +194,7 @@
/*
-=item C<static unsigned
-get_hashcode(char const * const str, unsigned num_buckets)>
+=item C<unsigned get_hashcode(char const * const str, unsigned num_buckets)>
Calculate the hash code for the string C<str>.
This code is taken from IMCC.
@@ -147,7 +205,9 @@
PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
unsigned
-get_hashcode(NOTNULL(char const * const str), unsigned num_buckets) {
+get_hashcode(ARGIN(char const * const str), unsigned num_buckets)
+{
+ ASSERT_ARGS(get_hashcode)
unsigned long key = 0;
char const *s;
@@ -159,8 +219,8 @@
/*
-=item C<void
-store_bucket(hashtable * const table, bucket * const buck, unsigned long hash)>
+=item C<void store_bucket(hashtable * const table, bucket * const buck, unsigned
+long hash)>
Store the bucket C<buck> in the hashtable C<table> at index C<hash>.
@@ -168,15 +228,17 @@
*/
void
-store_bucket(NOTNULL(hashtable * const table), NOTNULL(bucket * const buck), unsigned long hash) {
+store_bucket(ARGIN(hashtable * const table),
+ ARGIN(bucket * const buck), unsigned long hash)
+{
+ ASSERT_ARGS(store_bucket)
buck->next = table->contents[hash];
table->contents[hash] = buck;
}
/*
-=item C<bucket *
-get_bucket(hashtable * const table, unsigned long hash)>
+=item C<bucket * get_bucket(hashtable * const table, unsigned long hash)>
Return the bucket at hash index C<hash> from the hashtable C<table>.
@@ -186,14 +248,16 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
bucket *
-get_bucket(NOTNULL(hashtable * const table), unsigned long hash) {
+get_bucket(ARGIN(hashtable * const table), unsigned long hash)
+{
+ ASSERT_ARGS(get_bucket)
return table->contents[hash];
}
/*
-=item C<symbol *
-new_symbol(lexer_state * const lexer, char const * const name, pir_type type)>
+=item C<symbol * new_symbol(lexer_state * const lexer, char const * const name,
+pir_type type)>
Create a new symbol node, returns it after initialization.
@@ -203,7 +267,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
symbol *
-new_symbol(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name), pir_type type) {
+new_symbol(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name), pir_type type)
+{
+ ASSERT_ARGS(new_symbol)
symbol *sym = pir_mem_allocate_zeroed_typed(lexer, symbol);
sym->info.id.name = name;
@@ -216,8 +283,8 @@
/*
-=item C<void
-declare_local(lexer_state * const lexer, pir_type type, symbol * const list)>
+=item C<void declare_local(lexer_state * const lexer, pir_type type, symbol *
+const list)>
Declare the local variables in the list pointed to by C<list>, all of which
are of the type C<type>. The variables are entered into the symbol table for
@@ -228,9 +295,10 @@
*/
void
-declare_local(NOTNULL(lexer_state * const lexer), pir_type type,
- NOTNULL(symbol * const list))
+declare_local(ARGIN(lexer_state * const lexer), pir_type type,
+ ARGIN(symbol * const list))
{
+ ASSERT_ARGS(declare_local)
symbol *iter = list;
hashtable *table = &CURRENT_SUB(lexer)->symbols;
@@ -272,8 +340,7 @@
/*
-=item C<void
-check_unused_symbols(lexer_state * const lexer)>
+=item C<void check_unused_symbols(lexer_state * const lexer)>
Check all subroutines for unused symbols. If a symbol is declared but
never used, a warning message is printed to C<stderr>. If there's
@@ -283,7 +350,9 @@
*/
void
-check_unused_symbols(NOTNULL(lexer_state * const lexer)) {
+check_unused_symbols(ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(check_unused_symbols)
subroutine *subiter;
/* if there's no subs, just return. */
@@ -317,8 +386,8 @@
/*
-=item C<symbol *
-find_symbol(lexer_state * const lexer, char const * const name)>
+=item C<symbol * find_symbol(lexer_state * const lexer, char const * const
+name)>
Return the node for the symbol or NULL if the symbol
is not defined. If an attempt is made to find a symbol,
@@ -331,7 +400,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
symbol *
-find_symbol(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+find_symbol(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_symbol)
hashtable *table = &CURRENT_SUB(lexer)->symbols;
unsigned long hashcode = get_hashcode(name, table->size);
bucket *buck = get_bucket(table, hashcode);
@@ -369,8 +441,8 @@
/*
-=item C<static pir_reg *
-new_pir_reg(lexer_state * const lexer, pir_type type, int regno)>
+=item C<static pir_reg * new_pir_reg(lexer_state * const lexer, pir_type type,
+int regno)>
Create a new PIR register node representing PIR/symbolic register
identified by C<regno> and of type C<type>.
@@ -381,7 +453,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static pir_reg *
-new_pir_reg(NOTNULL(lexer_state * const lexer), pir_type type, int regno) {
+new_pir_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
+ ASSERT_ARGS(new_pir_reg)
pir_reg *r = pir_mem_allocate_zeroed_typed(lexer, pir_reg);
r->info.type = type;
@@ -395,8 +469,8 @@
/*
-=item C<pir_reg *
-find_register(lexer_state * const lexer, pir_type type, int regno)>
+=item C<pir_reg * find_register(lexer_state * const lexer, pir_type type, int
+regno)>
Find (symbolic) register no. C<regno> of type C<type>. If it's found,
a pointer to it is returned, if not, NULL is returned.
@@ -407,7 +481,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
pir_reg *
-find_register(NOTNULL(lexer_state * const lexer), pir_type type, int regno) {
+find_register(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
+ ASSERT_ARGS(find_register)
/* should do a binary search. fix later.
*/
pir_reg *iter = CURRENT_SUB(lexer)->registers[type];
@@ -439,8 +515,8 @@
/*
-=item C<static int
-use_register(lexer_state * const lexer, pir_type type, int regno, int pasmregno)>
+=item C<static int use_register(lexer_state * const lexer, pir_type type, int
+regno, int pasmregno)>
This function registers (no pun intended) register C<regno> of type
C<type>; it uses register C<pasmregno>; each subsequent
@@ -454,7 +530,11 @@
*/
static int
-use_register(NOTNULL(lexer_state * const lexer), pir_type type, int regno, int pasmregno) {
+use_register(ARGIN(lexer_state * const lexer), pir_type type,
+ int regno, int pasmregno)
+{
+ ASSERT_ARGS(use_register)
+
pir_reg *reg;
/* create a new node representing this PIR register */
@@ -505,8 +585,7 @@
/*
-=item C<int
-color_reg(struct lexer_state * const lexer, pir_type type, int regno)>
+=item C<int color_reg(lexer_state * const lexer, pir_type type, int regno)>
Find register C<regno> of type C<type>; if it was used before in the
current subroutine, a (pasm) register was already assigned to it, which
@@ -519,7 +598,9 @@
*/
int
-color_reg(NOTNULL(lexer_state * const lexer), pir_type type, int regno) {
+color_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
+ ASSERT_ARGS(color_reg)
pir_reg *reg = find_register(lexer, type, regno);
/* was the register already used, then it was already colored by
@@ -555,8 +636,8 @@
/*
-=item C<static global_label *
-new_global_label(char * const name)>
+=item C<static global_label * new_global_label(lexer_state * const lexer, char
+const * const name)>
Constructor to create a new global_label object.
@@ -566,7 +647,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static global_label *
-new_global_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+new_global_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(new_global_label)
global_label *glob = pir_mem_allocate_zeroed_typed(lexer, global_label);
glob->name = name;
glob->const_table_index = 0;
@@ -575,8 +659,8 @@
/*
-=item C<void
-store_global_label(struct lexer_state * const lexer, char * const name)>
+=item C<void store_global_label(lexer_state * const lexer, char const * const
+name)>
Store the global identifier C<name> in C<lexer>'s global label table.
@@ -584,7 +668,10 @@
*/
void
-store_global_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+store_global_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(store_global_label)
hashtable *table = &lexer->globals;
unsigned long hash = get_hashcode(name, table->size);
bucket *b = new_bucket(lexer);
@@ -595,8 +682,8 @@
/*
-=item C<global_label *
-find_global_label(struct lexer_state * const lexer, char const * const name)>
+=item C<global_label * find_global_label(lexer_state * const lexer, char const *
+const name)>
Find the global identifier C<name>. If no such identifier was found,
then NULL is returned.
@@ -607,7 +694,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
global_label *
-find_global_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+find_global_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_global_label)
hashtable *table = &lexer->globals;
unsigned long hashcode = get_hashcode(name, table->size);
bucket *b = get_bucket(table, hashcode);
@@ -623,8 +713,8 @@
/*
-=item C<void
-store_global_constant(lexer_state *lexer, constant * const c)>
+=item C<void store_global_constant(lexer_state * const lexer, constdecl * const
+c)>
Store the globally defined constant C<c> in the constant table.
@@ -632,7 +722,10 @@
*/
void
-store_global_constant(NOTNULL(lexer_state * const lexer), NOTNULL(constdecl * const c)) {
+store_global_constant(ARGIN(lexer_state * const lexer),
+ ARGIN(constdecl * const c))
+{
+ ASSERT_ARGS(store_global_constant)
hashtable *table = &lexer->constants;
unsigned long hash = get_hashcode(c->name, table->size);
bucket *b = new_bucket(lexer);
@@ -642,8 +735,8 @@
/*
-=item C<constant *
-find_global_constant(lexer_state *lexer, char * const name)>
+=item C<constdecl * find_global_constant(lexer_state * const lexer, char const *
+const name)>
Find a constant defined as C<name>. If no constant was defined by
that name, then NULL is returned.
@@ -654,7 +747,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
constdecl *
-find_global_constant(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+find_global_constant(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_global_constant)
hashtable *table = &lexer->constants;
unsigned long hashcode = get_hashcode(name, table->size);
bucket *b = get_bucket(table, hashcode);
@@ -675,9 +771,8 @@
/*
-=item C<static local_label *
-new_local_label(lexer_state * const lexer, char const * const name,
-unsigned offset)>
+=item C<static local_label * new_local_label(lexer_state * const lexer, char
+const * const name, unsigned offset)>
Constructor for a label. Create a new label structure, fill out the details
and return it. C<name> is the name of the label; C<offset> is its current
@@ -689,9 +784,12 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static local_label *
-new_local_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name),
- unsigned offset)
+new_local_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ unsigned offset)
{
+ ASSERT_ARGS(new_local_label)
+
local_label *l = pir_mem_allocate_zeroed_typed(lexer, local_label);
l->name = name;
l->offset = offset;
@@ -700,8 +798,8 @@
/*
-=item C<void
-store_local_label(lexer_state * const lexer, char const * const labelname, unsigned offset)>
+=item C<void store_local_label(lexer_state * const lexer, char const * const
+labelname, unsigned offset)>
Store the (sub-)local label C<labelname>, having I<address> C<offset> in the current
subroutine structure.
@@ -710,9 +808,11 @@
*/
void
-store_local_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const labelname),
- unsigned offset)
+store_local_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname),
+ unsigned offset)
{
+ ASSERT_ARGS(store_local_label)
local_label *l = new_local_label(lexer, labelname, offset);
hashtable *table = &CURRENT_SUB(lexer)->labels;
unsigned long hash = get_hashcode(labelname, table->size);
@@ -723,8 +823,8 @@
/*
-=item C<unsigned
-find_local_label(lexer_state * const lexer, char const * const labelname)>
+=item C<unsigned find_local_label(lexer_state * const lexer, char const * const
+labelname)>
Find the offset for label C<labelname>. If C<labelname> was not defined as
a label, an error is emitted, otherwise, the offset of that label is returned.
@@ -734,7 +834,10 @@
*/
PARROT_WARN_UNUSED_RESULT
unsigned
-find_local_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const labelname)) {
+find_local_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+{
+ ASSERT_ARGS(find_local_label)
hashtable *table = &CURRENT_SUB(lexer)->labels;
unsigned long hashcode = get_hashcode(labelname, table->size);
bucket *b = get_bucket(table, hashcode);
Modified: branches/ops_pct/compilers/pirc/src/pirsymbol.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirsymbol.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/src/pirsymbol.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -75,49 +75,157 @@
/* lookup table to convert value_type and pir_type values into one another. */
extern const int valuetype_pirtype_clut[10];
+/* HEADERIZER BEGIN: compilers/pirc/src/pirsymbol.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* symbol constructor */
-symbol *new_symbol(struct lexer_state * const lexer, char const * const name, pir_type type);
-
-/* to enter a symbol in the symbol table */
-void declare_local(struct lexer_state * const lexer, pir_type type, symbol * const list);
-
-/* to find a symbol in the symbol table */
-symbol *find_symbol(struct lexer_state * const lexer, char const * const name);
-
-
-pir_reg *find_register(struct lexer_state * const lexer, pir_type type, int regno);
-
-
-/* to find declared symbols that are never referenced */
-void check_unused_symbols(struct lexer_state * const lexer);
-
-/* find specified register; if it was not used yet, assign a PASM register to it */
-int color_reg(struct lexer_state * const lexer, pir_type type, int regno);
-
-/* store a global identifier (label) */
-void store_global_label(struct lexer_state * const lexer, char const * const name);
-
-/* find a global identifier */
-global_label *find_global_label(struct lexer_state * const lexer, char const * const name);
-
-/* store a global .const symbol */
-void store_global_constant(struct lexer_state * const lexer, constdecl * const c);
-
-/* find a global .const symbol */
-constdecl *find_global_constant(struct lexer_state * const lexer, char const * const name);
-
-void assign_vanilla_register(struct lexer_state * const lexer, symbol * const sym);
-
-void store_local_label(struct lexer_state * const lexer, char const * const label, unsigned offset);
-
-unsigned find_local_label(struct lexer_state * const lexer, char const * const label);
-
-unsigned get_hashcode(char const * const str, unsigned num_buckets);
-
-bucket *get_bucket(hashtable * const table, unsigned long hash);
-
-void store_bucket(hashtable * const table, bucket * const buck, unsigned long hash);
+void assign_vanilla_register(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void check_unused_symbols(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+int color_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+ __attribute__nonnull__(1);
+
+void declare_local(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ ARGIN(symbol * const list))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+constdecl * find_global_constant(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+global_label * find_global_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+unsigned find_local_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+pir_reg * find_register(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ int regno)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+symbol * find_symbol(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+bucket * get_bucket(ARGIN(hashtable * const table), unsigned long hash)
+ __attribute__nonnull__(1);
+
+PARROT_PURE_FUNCTION
+PARROT_WARN_UNUSED_RESULT
+unsigned get_hashcode(ARGIN(char const * const str), unsigned num_buckets)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+symbol * new_symbol(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_bucket(
+ ARGIN(hashtable * const table),
+ ARGIN(bucket * const buck),
+ unsigned long hash)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_global_constant(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constdecl * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_global_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_local_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname),
+ unsigned offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_assign_vanilla_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sym))
+#define ASSERT_ARGS_check_unused_symbols __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_color_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_declare_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(list))
+#define ASSERT_ARGS_find_global_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_find_global_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_find_local_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelname))
+#define ASSERT_ARGS_find_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_find_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_get_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table))
+#define ASSERT_ARGS_get_hashcode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(str))
+#define ASSERT_ARGS_new_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_store_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(buck))
+#define ASSERT_ARGS_store_global_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_store_global_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_store_local_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelname))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirsymbol.c */
#endif /* PARROT_PIR_PIRSYMBOL_H_GUARD */
Modified: branches/ops_pct/compilers/pirc/t/basic.t
==============================================================================
--- branches/ops_pct/compilers/pirc/t/basic.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/t/basic.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,6 +2,9 @@
# Copyright (C) 2008-2009, Parrot Foundation.
# $Id$
+use strict;
+use warnings;
+
use lib qw(lib);
use Parrot::Test tests => 6;
Modified: branches/ops_pct/compilers/pirc/t/heredoc.t
==============================================================================
--- branches/ops_pct/compilers/pirc/t/heredoc.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/t/heredoc.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,6 +2,9 @@
# Copyright (C) 2008-2009, Parrot Foundation.
# $Id$
+use strict;
+use warnings;
+
use lib qw(lib);
use Parrot::Test tests => 1;
Modified: branches/ops_pct/compilers/pirc/t/macro.t
==============================================================================
--- branches/ops_pct/compilers/pirc/t/macro.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/t/macro.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,6 +2,9 @@
# Copyright (C) 2008-2009, Parrot Foundation.
# $Id$
+use strict;
+use warnings;
+
use lib qw(lib);
use Parrot::Test tests => 1;
Modified: branches/ops_pct/compilers/pirc/t/stmts.t
==============================================================================
--- branches/ops_pct/compilers/pirc/t/stmts.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/t/stmts.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,6 +2,9 @@
# Copyright (C) 2008-2009, Parrot Foundation.
# $Id$
+use strict;
+use warnings;
+
use lib qw(lib);
use Parrot::Test tests => 5;
Modified: branches/ops_pct/compilers/pirc/t/subflags.t
==============================================================================
--- branches/ops_pct/compilers/pirc/t/subflags.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/compilers/pirc/t/subflags.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,6 +2,9 @@
# Copyright (C) 2008-2009, Parrot Foundation.
# $Id$
+use strict;
+use warnings;
+
use lib qw(lib);
use Parrot::Test tests => 1;
Modified: branches/ops_pct/config/auto/cgoto.pm
==============================================================================
--- branches/ops_pct/config/auto/cgoto.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/auto/cgoto.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -22,10 +22,10 @@
sub _init {
my $self = shift;
- my %data;
- $data{description} = q{Does your compiler support computed goto};
- $data{result} = q{};
- return \%data;
+ return {
+ 'description' => 'Does your compiler support computed goto',
+ 'result' => '',
+ };
}
sub runstep {
@@ -58,29 +58,6 @@
my $verbose = $conf->options->get('verbose');
if ($test) {
$conf->data->set(
- TEMP_cg_h => '$(INC_DIR)/oplib/core_ops_cg.h $(INC_DIR)/oplib/core_ops_cgp.h',
- TEMP_cg_c => <<'EOF',
-# generated by config/auto/cgoto.pm
-
-src/ops/core_ops_cg$(O): $(GENERAL_H_FILES) src/ops/core_ops_cg.c \
- include/pmc/pmc_parrotlibrary.h
-src/ops/core_ops_cgp$(O): $(GENERAL_H_FILES) src/ops/core_ops_cgp.c \
- include/pmc/pmc_parrotlibrary.h
-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
-EOF
- TEMP_cg_o => 'src/ops/core_ops_cg$(O) src/ops/core_ops_cgp$(O)',
- TEMP_cg_r => '$(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',
cg_flag => '-DHAVE_COMPUTED_GOTO'
);
print " (yes) " if $verbose;
@@ -88,10 +65,6 @@
}
else {
$conf->data->set(
- TEMP_cg_h => '',
- TEMP_cg_c => '',
- TEMP_cg_o => '',
- TEMP_cg_r => '',
cg_flag => ''
);
print " (no) " if $verbose;
Modified: branches/ops_pct/config/auto/gcc.pm
==============================================================================
--- branches/ops_pct/config/auto/gcc.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/auto/gcc.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -85,14 +85,15 @@
$gccversion .= ".$minor" if defined $minor;
$self->set_result("yes, $gccversion");
- my $ccwarn = $conf->data->get('ccwarn');
-
$conf->data->set( sym_export => '__attribute__ ((visibility("default")))' )
if $gccversion >= 4.0 && !$conf->data->get('sym_export');
+ # sneaky check for g++
+ my $gpp = (index($conf->data->get('cc'), '++') > 0) ? 1 : 0;
+
$conf->data->set(
- ccwarn => "$ccwarn",
- gccversion => $gccversion,
+ gccversion => $gccversion,
+ 'g++' => $gpp,
);
return 1;
}
Modified: branches/ops_pct/config/auto/icu.pm
==============================================================================
--- branches/ops_pct/config/auto/icu.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/auto/icu.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -339,8 +339,7 @@
if (! -d $icuheaders) {
$without = 1;
}
- my $slash = $conf->data->get('slash');
- $icuheaders .= "${slash}include";
+ $icuheaders .= "/include";
if (! -d $icuheaders) {
$without = 1;
}
Modified: branches/ops_pct/config/auto/perldoc.pm
==============================================================================
--- branches/ops_pct/config/auto/perldoc.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/auto/perldoc.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -36,7 +36,8 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $cmd = $conf->data->get('scriptdirexp_provisional') . q{/perldoc};
+ my $slash = $conf->data->get('slash');
+ my $cmd = $conf->data->get('scriptdirexp_provisional') . $slash . q{perldoc};
my ( $fh, $filename ) = tempfile( UNLINK => 1 );
my $content = capture_output("$cmd -ud $filename perldoc") || undef;
@@ -59,7 +60,6 @@
my $TEMP_pod = join q{ } =>
map { my $t = $_; $t =~ s/\.ops$/.pod/; "ops/$t" } @ops;
- my $slash = $conf->data->get('slash');
my $new_perldoc = $conf->data->get('new_perldoc');
foreach my $ops (@ops) {
@@ -67,17 +67,17 @@
$pod =~ s/\.ops$/.pod/;
if ( $new_perldoc ) {
$TEMP_pod_build .= <<"END"
-ops$slash$pod: ..${slash}src${slash}ops${slash}$ops
-\t\$(PERLDOC) -ud ops${slash}$pod ..${slash}src${slash}ops${slash}$ops
-\t\$(CHMOD) 0644 ops${slash}$pod
+ops/$pod: ../src/ops/$ops
+\t\$(PERLDOC_BIN) -ud ops/$pod ../src/ops/$ops
+\t\$(CHMOD) 0644 ops/$pod
END
}
else {
$TEMP_pod_build .= <<"END"
-ops$slash$pod: ..${slash}src${slash}ops${slash}$ops
-\t\$(PERLDOC) -u ..${slash}ops${slash}$ops > ops${slash}$pod
-\t\$(CHMOD) 0644 ..${slash}ops${slash}$pod
+ops/$pod: ../src/ops/$ops
+\t\$(PERLDOC_BIN) -u ../ops/$ops > ops/$pod
+\t\$(CHMOD) 0644 ../ops/$pod
END
}
Modified: branches/ops_pct/config/auto/pmc.pm
==============================================================================
--- branches/ops_pct/config/auto/pmc.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/auto/pmc.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -90,6 +90,10 @@
}
}
my $include_headers = get_includes($pmc_fname);
+ my $cc_shared = $conf->data->get('cc_shared');
+ my $cc_o_out = $conf->data->get('cc_o_out');
+ my $warnings = $conf->data->get('ccwarn');
+ my $optimize = $conf->data->get('optimize');
$TEMP_pmc_build .= <<END
src/pmc/$pmc.c : src/pmc/$pmc.dump
@@ -100,20 +104,21 @@
include/pmc/pmc_$pmc.h: src/pmc/$pmc.c
-src/pmc/$pmc\$(O): include/pmc/pmc_${pmc}.h src/pmc/$pmc.str \$(NONGEN_HEADERS) \\
+## SUFFIX OVERRIDE -Warnings
+src/pmc/$pmc\$(O): include/pmc/pmc_$pmc.h src/pmc/$pmc.str \$(NONGEN_HEADERS) \\
$parent_headers $include_headers include/pmc/pmc_continuation.h \\
- include/pmc/pmc_callcontext.h include/pmc/pmc_fixedintegerarray.h
+ include/pmc/pmc_callcontext.h include/pmc/pmc_fixedintegerarray.h \\
+ src/pmc/$pmc.c
+\t\$(CC) \$(CFLAGS) $optimize $cc_shared $warnings -I\$(\@D) $cc_o_out\$@ -c src/pmc/$pmc.c
END
}
- # src/pmc/$pmc\$(O): \$(NONGEN_HEADERS) $parent_headers include/pmc/pmc_$pmc.h
# build list of libraries for link line in Makefile
- my $slash = $conf->data->get('slash');
- ( my $TEMP_pmc_classes_o = $TEMP_pmc_o ) =~ s/^| / src${slash}pmc${slash}/g;
- ( my $TEMP_pmc_classes_str = $TEMP_pmc_str ) =~ s/^| / src${slash}pmc${slash}/g;
- ( my $TEMP_pmc_classes_pmc = $pmc_list ) =~ s/^| / src${slash}pmc${slash}/g;
+ ( my $TEMP_pmc_classes_o = $TEMP_pmc_o ) =~ s{^| }{ src/pmc/}g;
+ ( my $TEMP_pmc_classes_str = $TEMP_pmc_str ) =~ s{^| }{ src/pmc/}g;
+ ( my $TEMP_pmc_classes_pmc = $pmc_list ) =~ s{^| }{ src/pmc/}g;
# Gather the actual names (with MixedCase) of all of the non-abstract
# built-in PMCs in rough hierarchical order.
Modified: branches/ops_pct/config/auto/warnings.pm
==============================================================================
--- branches/ops_pct/config/auto/warnings.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/auto/warnings.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,17 +1,14 @@
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
-config/auto/warnings.pm - Warning flags detection
+config/auto/warnings.pm - Warning flags probing.
=head1 DESCRIPTION
-Automagically detect what warning flags, like -Wall, -Wextra,
--Wchar-subscripts, etc., that the compiler can support. Directly hacked
-from F<config/auto/attributes.pm>.
-
-=head1 SUBROUTINES
+Given a list of potential warnings available for a certain type of
+compiler, probe to see which of those are valid for this particular version.
=over 4
@@ -22,21 +19,86 @@
use strict;
use warnings;
-
use base qw(Parrot::Configure::Step);
use Parrot::Configure::Utils ();
use Parrot::BuildUtil;
+=item C<_init>
+
+Declare potential warnings for various compilers. Note that the compiler
+key used here doesn't really exist in a unified way in Configure - would
+be nice if it did so we could simplify our checks in runstep().
+
+We create a data structure here that breaks out the warnings by compiler,
+using this structure:
+
+warnings:
+ gcc:
+ basic:
+ - -Warning1
+ - -Warning2
+ cage:
+ - -Warning3
+ - -Warning4
+ only:
+ - -Warning5:
+ - foo.c
+ - bar.c
+ never:
+ - -Warning6:
+ - baz.c
+ - frob.c
+ todo:
+ - -Warning7:
+ - cow.c
+ - pig.c
+ g++:
+ ...
+
+'basic' warnings are always used.
+
+'cage' warnings are added only if --cage is specified during
+Configure. This can be used to hold warnings that aren't ready to be
+added to the default run yet.
+
+'only' should be used as we add new warnings to the build, it will let
+us insure that files we know are clean for a new warning stay clean.
+
+'never' should be used when a particular file contains generated code
+(e.g. imcc) and we cannot update it to conform to the standards.
+
+'todo' functions just like never does, but it indicates that these
+files are expected to eventually be free of this warning.
+
+Note that there is no actual requirement that the 'file' be a full path
+to a .c file; the file could be "PMCS" or "OPS" or some other identifier;
+whatever the value, it will generate a Config entry prefixed with
+C<ccwarn::>, which will probably be used via @@ expansion in a makefile.
+
+It is tempting to put this into a config file, but having it in
+perl gives us the ability to dynamically setup certain warnings based
+on any criteria already discovered via Config.
+
+Order is important - some warnings are invalid unless they are specified
+after other warnings.
+
+=cut
+
sub _init {
my $self = shift;
- my %data;
- $data{description} = q{Detect supported compiler warnings};
- $data{result} = q{};
-
- # Please keep these sorted by flag name, such that "-Wno-foo" is
- # sorted as "-Wfoo", so we can turn off/on as needed.
- my @potential_warnings = qw(
+
+ my $data = {
+ description => 'Detect supported compiler warnings',
+ result => '',
+ validated => [],
+ };
+
+ # begin gcc/g++
+ my $gcc = {};
+ my $gpp = {};
+
+ my @gcc_or_gpp = qw(
-falign-functions=16
-fvisibility=hidden
-funit-at-a-time
@@ -49,6 +111,7 @@
-Wchar-subscripts
-Wcomment
-Wdisabled-optimization
+ -Wdiv-by-zero
-Wendif-labels
-Wextra
-Wformat
@@ -66,9 +129,11 @@
-Wmissing-field-initializers
-Wno-missing-format-attribute
-Wmissing-include-dirs
+ -Wmultichar
-Wpacked
-Wparentheses
-Wpointer-arith
+ -Wpointer-sign
-Wreturn-type
-Wsequence-point
-Wno-shadow
@@ -79,13 +144,17 @@
-Wswitch-default
-Wtrigraphs
-Wundef
- -Wunknown-pragmas
-Wno-unused
+ -Wunknown-pragmas
-Wvariadic-macros
-Wwrite-strings
- -Wnot-a-real-warning
);
- my @potential_warnings_no_cpp = qw(
+
+ $gcc->{'basic'} = [ @gcc_or_gpp ];
+ $gpp->{'basic'} = [ @gcc_or_gpp ];
+
+ # Add some gcc only warnings that would break g++
+ push @{$gcc->{'basic'}}, qw(
-Wbad-function-cast
-Wc++-compat
-Wdeclaration-after-statement
@@ -101,7 +170,7 @@
-Wstrict-prototypes
);
- my @cage_warnings = qw(
+ my $gcc_or_gpp_cage = [ qw(
-std=c89
-Werror-implicit-function-declaration
-Wformat=2
@@ -109,41 +178,51 @@
-Wlong-long
-Wmissing-format-attribute
-Wdeprecated-declarations
- -Wdiv-by-zero
-Wno-format-extra-args
-Wno-import
- -Wno-multichar
- -Wno-pointer-sign
- -Wold-style-definition
-Wunreachable-code
+ -Wunused
-Wunused-function
-Wunused-label
-Wunused-value
-Wunused-variable
- );
+ ) ];
- my @may_not_even_be_interesting = qw(
- -Wpadded
- -Wredundant-decls
- -Wswitch-enum
- -Wsystem-headers
- );
+ $gcc->{'cage'} = $gcc_or_gpp_cage;
+ $gpp->{'cage'} = $gcc_or_gpp_cage;
- my @nice_to_have_but_too_noisy_for_now = qw(
- -pedantic
- -Wconversion
- -Wint-to-pointer-cast
- -Wmissing-noreturn
- -Wshadow
- -Wunused-macros
- -Wunused-parameter
- );
+ $gcc->{'todo'} = $gpp->{'todo'} = {
+ '-Wformat-nonliteral' => [
+ 'src/spf_render.c',
+ 'compilers/imcc/optimizer.c',
+ ],
+ '-Wstrict-prototypes' => [
+ 'src/nci/extra_thunks.c',
+ 'src/extra_nci_thunks.c',
+ ],
+ };
+
+ $gcc->{'never'} = $gpp->{'never'} = {
+ '-Wformat-nonliteral' => [
+ 'compilers/imcc/imclexer.c',
+ ],
+ '-Wswitch-default' => [
+ 'compilers/imcc/imclexer.c',
+ ],
+ '-Wcast-qual' => [
+ 'compilers/imcc/imcparser.c',
+ ],
+ '-Wlogical-op' => [
+ 'compilers/imcc/imcparser.c',
+ ],
+ };
+
+ $data->{'warnings'}{'gcc'} = $gcc;
+ $data->{'warnings'}{'g++'} = $gpp;
- $data{potential_warnings} = \@potential_warnings;
- $data{potential_warnings_no_cpp} = \@potential_warnings_no_cpp;
- $data{cage_warnings} = \@cage_warnings;
+ ## end gcc/g++
- return \%data;
+ return $data;
}
sub runstep {
@@ -151,53 +230,64 @@
my $verbose = $conf->options->get('verbose');
print "\n" if $verbose;
+
+ my $compiler = '';
if ( defined $conf->data->get('gccversion') ) {
+ $compiler = $conf->data->get('g++') ? 'g++' : 'gcc';
+ }
- # Dirty way of checking if compiling with c++
- my $nocpp = index($conf->data->get('cc'), '++') < 0;
+ if ($compiler eq '') {
+ print "We do not (yet) probe for warnings for your compiler\n"
+ if $verbose;
+ $self->set_result('skipped');
+ return 1;
+ }
- # add on some extra warnings if requested
- $self->_add_cage_warnings($conf);
- $self->_add_maintainer_warnings($conf);
-
- # now try out our warnings
- for my $maybe_warning (@{ $self->{potential_warnings} }) {
- $self->try_warning( $conf, $maybe_warning, $verbose );
- }
- if ($nocpp) {
- for my $maybe_warning (@{ $self->{potential_warnings_no_cpp} }) {
- $self->try_warning( $conf, $maybe_warning, $verbose );
+ # standard warnings.
+ my @warnings = grep {$self->valid_warning($conf, $_)}
+ @{$self->{'warnings'}{$compiler}{'basic'}};
+
+ # --cage?
+ if ($conf->options->get('cage')) {
+ push @warnings, grep {$self->valid_warning($conf, $_)}
+ @{$self->{'warnings'}{$compiler}{'cage'}}
+ }
+
+ # -- only?
+ my %per_file;
+ if (exists $self->{'warnings'}{$compiler}{'only'}) {
+ my %only = %{$self->{'warnings'}{$compiler}{'only'}};
+ foreach my $warning (keys %only) {
+ next unless $self->valid_warning($conf, $warning);
+ foreach my $file (@{$only{$warning}}) {
+ $per_file{$file} = [ @warnings ] unless exists $per_file{$file};
+ push @{$per_file{$file}}, $warning;
}
}
+ }
- if ($nocpp) {
- $self->set_result("set for gcc");
- }
- else {
- $self->set_result("set for g++");
+ foreach my $key (qw/todo never/) {
+ if (exists $self->{'warnings'}{$compiler}{$key}) {
+ my %dont = %{$self->{'warnings'}{$compiler}{$key}};
+ foreach my $warning (keys %dont) {
+ foreach my $file (@{$dont{$warning}}) {
+ $per_file{$file} = [ @warnings ] unless exists $per_file{$file};
+ @{$per_file{$file}} = grep {$warning ne $_} @{$per_file{$file}};
+ }
+ }
}
}
- else {
- print "Currently we only set warnings if using gcc as C compiler\n"
- if $verbose;
- $self->set_result("skipped");
- }
- return 1;
-}
-sub _add_cage_warnings {
- my ($self, $conf) = @_;
- push @{ $self->{potential_warnings} }, @{ $self->{cage_warnings} }
- if $conf->options->get('cage');
-}
+ $conf->data->set('ccwarn', join(' ', @warnings));
+ foreach my $file (keys %per_file) {
+ $conf->data->set("ccwarn::$file", join(' ', @{$per_file{$file}}));
+ }
-sub _add_maintainer_warnings {
- my ($self, $conf) = @_;
- push @{ $self->{potential_warnings} }, '-Wlarger-than-4096'
- if $conf->options->get('maintainer');
+ $self->set_result('done');
+ return 1;
}
-=item C<try_warning>
+=item C<valid_warning>
Try a given warning to see if it is supported by the compiler. The compiler
is determined by the C<cc> value of the C<Parrot::Configure> object passed
@@ -207,11 +297,17 @@
Returns true if the warning flag is recognized by the compiler and undef
otherwise.
+Use the running set of known valid options, since some options may depend
+on previous options.
+
=cut
-sub try_warning {
- my ( $self, $conf, $warning, $verbose ) = @_;
+sub valid_warning {
+ my ( $self, $conf, $warning ) = @_;
+
+ my $verbose = $conf->options->get('verbose');
+ # This should be using a temp file name.
my $output_file = 'test.cco';
$verbose and print "trying attribute '$warning'\n";
@@ -220,17 +316,18 @@
$conf->cc_gen('config/auto/warnings/test_c.in');
my $ccflags = $conf->data->get('ccflags');
- my $tryflags = "$ccflags $warning";
+ my $warnings = join(' ', @{$self->{'validated'}});
+ my $tryflags = "$ccflags $warnings $warning";
my $command_line = Parrot::Configure::Utils::_build_compile_command( $cc, $tryflags );
- $verbose and print " ", $command_line, "\n";
+ $verbose and print ' ', $command_line, "\n";
# Don't use cc_build, because failure is expected.
my $exit_code = Parrot::Configure::Utils::_run_command(
$command_line, $output_file, $output_file
);
- _set_warning($conf, $warning, $exit_code, $verbose);
+ # Cleanup any remnants of the test compilation
$conf->cc_clean();
if ($exit_code) {
@@ -240,35 +337,22 @@
my $output = Parrot::BuildUtil::slurp_file($output_file);
unlink $output_file or die "Unable to unlink $output_file: $!";
- return _set_ccflags($conf, $output, $tryflags, $verbose);
-}
-
-sub _set_warning {
- my ($conf, $warning, $exit_code, $verbose) = @_;
- $verbose and print " exit code: $exit_code\n";
- $conf->data->set( $warning => !$exit_code || 0 );
-}
-sub _set_ccflags {
- my ($conf, $output, $tryflags, $verbose) = @_;
$verbose and print " output: $output\n";
if ( $output !~ /error|warning|not supported/i ) {
- $conf->data->set( ccflags => $tryflags );
- $verbose and print " ccflags: ", $conf->data->get("ccflags"), "\n";
+ push @{$self->{'validated'}}, $warning;
+ $verbose and print " valid warning: '$warning'\n";
return 1;
}
else {
+ $verbose and print " invalid warning: '$warning'\n";
return 0;
}
}
=back
-=head1 AUTHOR
-
-Paul Cochrane <paultcochrane at gmail dot com>
-
=cut
1;
Modified: branches/ops_pct/config/auto/warnings/test_c.in
==============================================================================
--- branches/ops_pct/config/auto/warnings/test_c.in Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/auto/warnings/test_c.in Sun Mar 7 19:33:20 2010 (r44743)
@@ -6,11 +6,10 @@
#include <stdio.h>
#include <stdlib.h>
-#include "parrot/compiler.h"
/* as long as the file compiles, everything is okay */
int
-main()
+main(void)
{
return EXIT_SUCCESS;
}
Deleted: branches/ops_pct/config/gen/call_list.pm
==============================================================================
--- branches/ops_pct/config/gen/call_list.pm Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,81 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/gen/call_list.pm - Concatenate call_list.txt (NCI signatures) fragments
-
-=head1 DESCRIPTION
-
-Some portions of F<src/call_list.txt> (the NCI signature list) are generated,
-and others should only appear when certain features/libraries are enabled by
-Configure in previous steps. This step simply combines all fragments that
-appear in F<config/gen/call_list/> into the single C<src/call_list.txt> used
-by the main build.
-
-If a config step wishes to make its fragment optional, that step should only
-generate or copy its fragment to F<config/gen/call_list/> when the library is
-enabled.
-
-=cut
-
-package gen::call_list;
-
-use strict;
-use warnings;
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils '_slurp';
-
-
-sub _init {
- my $self = shift;
- my %data;
- $data{description} = q{Generate NCI signature list};
- $data{result} = q{};
- $data{fragment_files} = [ sort glob 'config/gen/call_list/*.in' ];
- return \%data;
-}
-
-my $text_file_coda = <<'CODA';
-# Local variables:
-# mode: text
-# buffer-read-only: t
-# End:
-CODA
-
-sub runstep {
- my ( $self, $conf ) = @_;
-
- my $combined_file = 'src/call_list.txt';
-
- open my $combined, '>', $combined_file
- or die "Could not open '$combined_file' for write: $!";
-
- # add read-only metadata for the generated file
- print {$combined} "# ex: set ro:\n";
-
- foreach my $fragment_file ( @{ $self->{fragment_files} } ) {
- my $fragment = _slurp($fragment_file);
- $fragment =~ s/^\s*\n//;
- $fragment =~ s/\s*$/\n\n/;
-
- print {$combined} $fragment;
- }
- print {$combined} $text_file_coda;
-
- $conf->append_configure_log($combined_file);
-
- return 1;
-}
-
-1;
-
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/config/gen/crypto/digest_pmc.in
==============================================================================
--- branches/ops_pct/config/gen/crypto/digest_pmc.in Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/crypto/digest_pmc.in Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2008, Parrot Foundation.
+Copyright (C) 2008-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -34,7 +34,7 @@
*/
VTABLE void init() {
@TEMP_md_guard@
- @TEMP_md_ctx@ *c = mem_allocate_zeroed_typed(@TEMP_md_ctx@);
+ @TEMP_md_ctx@ *c = mem_gc_allocate_zeroed_typed(INTERP, @TEMP_md_ctx@);
PMC_data(SELF) = c;
PObj_custom_destroy_SET(SELF);
#else
@@ -54,7 +54,7 @@
@TEMP_md_guard@
@TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
if (c) {
- mem_sys_free(c);
+ mem_gc_free(INTERP, c);
PMC_data(SELF) = NULL;
}
#endif
@@ -69,7 +69,7 @@
*/
VTABLE PMC* clone() {
@TEMP_md_guard@
- PMC *retval = pmc_new_noinit(INTERP, SELF->vtable->base_type);
+ PMC *retval = Parrot_pmc_new_noinit(INTERP, SELF->vtable->base_type);
@TEMP_md_ctx@ *c = mem_allocate_zeroed_typed(@TEMP_md_ctx@);
memcpy(c, PMC_data(SELF), sizeof (@TEMP_md_ctx@));
Modified: branches/ops_pct/config/gen/makefiles.pm
==============================================================================
--- branches/ops_pct/config/gen/makefiles.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/makefiles.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -27,12 +27,18 @@
$data{description} = q{Generate makefiles and other build files};
$data{result} = q{};
$data{makefiles} = {
- 'Makefile' => { SOURCE => 'config/gen/makefiles/root.in' },
- 'ext/Makefile' => { SOURCE => 'config/gen/makefiles/ext.in', },
+ 'Makefile' => {
+ SOURCE => 'config/gen/makefiles/root.in',
+ },
+ 'ext/Makefile' => {
+ SOURCE => 'config/gen/makefiles/ext.in',
+ },
+ 'compilers/imcc/Rules.mak' => {
+ SOURCE => 'compilers/imcc/Rules.in',
+ },
'ext/Parrot-Embed/Makefile.PL' => {
SOURCE => 'config/gen/makefiles/parrot_embed_pl.in',
- replace_slashes => 0,
conditioned_lines => 1,
},
@@ -48,7 +54,6 @@
'parrot.pc' => { SOURCE => 'config/gen/makefiles/parrot_pc.in' },
'docs/Makefile' => { SOURCE => 'config/gen/makefiles/docs.in' },
};
- $data{CFLAGS_source} = 'config/gen/makefiles/CFLAGS.in';
return \%data;
}
@@ -56,36 +61,10 @@
my ( $self, $conf ) = @_;
$self->makefiles($conf);
- $self->cflags($conf);
return 1;
}
-sub cflags {
- my ( $self, $conf ) = @_;
-
- $conf->genfile( $self->{CFLAGS_source} => 'CFLAGS',
- comment_type => '#'
- );
-
- open( my $CFLAGS, ">>", "CFLAGS" ) or die "open >> CFLAGS: $!";
-
- # Why is this here? I'd think this information belongs
- # in the CFLAGS.in file. -- A.D. March 12, 2004
- if ( $conf->data->get('cpuarch') =~ /sun4|sparc64/ ) {
-
- # CFLAGS entries must be left-aligned.
- print {$CFLAGS} <<"EOF";
-src/jit_cpu.c -{-Wcast-align} # lots of noise!
-src/nci.c -{-Wstrict-prototypes} # lots of noise!
-EOF
- }
-
- close $CFLAGS;
-
- return;
-}
-
sub makefiles {
my ( $self, $conf ) = @_;
@@ -96,7 +75,6 @@
: keys %{ $self->{makefiles} };
foreach my $target (@targets) {
- $target =~ s/\\/\//g if $^O eq 'MSWin32';
my $args = $self->{makefiles}->{$target};
my $source = delete $args->{SOURCE};
Deleted: branches/ops_pct/config/gen/makefiles/CFLAGS.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/CFLAGS.in Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,37 +0,0 @@
-# [ filename | {regex} ] -{removed options} +{added options} s/// ...
-#
-# Avoid using non-configure controlled +{} directly in this file, as
-# it'll most likely break on other platforms.
-#
-# Note, empty regex/options are just ignored.
-#
-src/platform.c -{-Wcast-qual} # noisy
-src/spf_render.c -{-Wformat-nonliteral} # noisy
-src/tsq.c -{@optimize@} # never optimize tsq.c!
-
-# 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.
-#UNLESS(gccversion):src/ops/core_ops_cg.c -{@optimize@}
-#UNLESS(gccversion):src/ops/core_ops_cgp.c -{@optimize@}
-#UNLESS(gccversion):src/ops/core_ops_switch.c -{@optimize@}
-
-#IF(cpuarch==amd64):src/gc/system.c -{@optimize@} # TT #405 amd64 --optimize problem
-
-# io should be -Wunused clean
-{^src/io/} s/-Wno-unused/-Wunused/
-
-# files which make their way into dynamically loaded files should be compiled
-# with shared library options
-src/extend.c +{@cc_shared@}
-src/nci_test.c +{@cc_shared@}
-
-# imcc file settings
-{^compilers/imcc/} -{-Wwrite-strings -Wcast-qual}
-{^compilers/imcc/(?!imclexer)} s/-Wno-unused/-Wunused/
-compilers/imcc/instructions.c -{-Wformat-nonliteral} # noisy
-compilers/imcc/debug.c -{-Wformat-nonliteral} # noisy
-compilers/imcc/optimizer.c -{-Wformat-nonliteral} # noisy
-compilers/imcc/parser_util.c -{-Wformat-nonliteral} # noisy
-compilers/imcc/imclexer.c -{-Wunused} # noisy
-compilers/imcc/imclexer.c -{-Wswitch-default} # occurs in generated code
Modified: branches/ops_pct/config/gen/makefiles/docs.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/docs.in Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/makefiles/docs.in Sun Mar 7 19:33:20 2010 (r44743)
@@ -8,7 +8,7 @@
TOUCH = @touch@
RM_F = @rm_f@
RM_RF = @rm_rf@
-PERLDOC = @perldoc@
+PERLDOC_BIN = @perldoc@
VERSION = @VERSION@@DEVEL@
# long list of .pod files
@@ -41,8 +41,8 @@
$(TOUCH) doc-prep
packfile-c.pod: ../src/packfile.c
-#IF(new_perldoc): $(PERLDOC) -ud packfile-c.pod ../src/packfile.c
-#ELSE: $(PERLDOC) -u ../src/packfile.c > packfile-c.pod
+#IF(new_perldoc): $(PERLDOC_BIN) -ud packfile-c.pod ../src/packfile.c
+#ELSE: $(PERLDOC_BIN) -u ../src/packfile.c > packfile-c.pod
clean:
$(RM_F) packfile-c.pod $(POD) doc-prep
Modified: branches/ops_pct/config/gen/makefiles/dynoplibs.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/dynoplibs.in Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/makefiles/dynoplibs.in Sun Mar 7 19:33:20 2010 (r44743)
@@ -14,12 +14,12 @@
LD = @ld@
LDFLAGS = @ldflags@ @ld_debug@ @rpath_blib@ @linkflags@
LD_LOAD_FLAGS = @ld_load_flags@
-CFLAGS = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@
+CFLAGS = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ @optimize@
LIBPARROT = @libparrot_ldflags@
-BUILD_TOOLS_DIR = $(BUILD_DIR)@slash at tools@slash at build
-OPS2C = $(PERL) -I$(BUILD_DIR)@slash at lib $(BUILD_TOOLS_DIR)@slash at ops2c.pl
-INCLUDES = -I$(BUILD_DIR)@slash at include -I at build_dir@@slash at src@slash at pmc
+BUILD_TOOLS_DIR = $(BUILD_DIR)/tools/build
+OPS2C = $(PERL) -I$(BUILD_DIR)/lib $(BUILD_TOOLS_DIR)/ops2c.pl
+INCLUDES = -I$(BUILD_DIR)/include -I at build_dir@/src/pmc
LINKARGS = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@
OPS_TARGETS = \
Modified: branches/ops_pct/config/gen/makefiles/dynpmc.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/dynpmc.in Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/makefiles/dynpmc.in Sun Mar 7 19:33:20 2010 (r44743)
@@ -8,19 +8,19 @@
LOAD_EXT = @load_ext@
BUILD_DIR = @build_dir@
RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
-INSTALL_DIR = $(BUILD_DIR)@slash at runtime@slash at parrot@slash at dynext
+INSTALL_DIR = $(BUILD_DIR)/runtime/parrot/dynext
O = @o@
CC = @cc@
LD = @ld@
LDFLAGS = @ldflags@ @ld_debug@ @rpath_blib@
LD_LOAD_FLAGS = @ld_load_flags@
-CFLAGS = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@
+CFLAGS = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ @optimize@
LIBPARROT = @libparrot_ldflags@
-BUILD_TOOLS_DIR = $(BUILD_DIR)@slash at tools@slash at build
-BUILD_LIB_DIR = $(BUILD_DIR)@slash at blib@slash at lib
-PMC2C = $(PERL) $(BUILD_TOOLS_DIR)@slash at pmc2c.pl
-INCLUDES = -I$(BUILD_DIR)@slash at include -I at build_dir@@slash at include@slash at pmc
+BUILD_TOOLS_DIR = $(BUILD_DIR)/tools/build
+BUILD_LIB_DIR = $(BUILD_DIR)/blib/lib
+PMC2C = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl
+INCLUDES = -I$(BUILD_DIR)/include -I at build_dir@/include/pmc
LINKARGS = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@
PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --dump
Modified: branches/ops_pct/config/gen/makefiles/root.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/root.in Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/makefiles/root.in Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
###############################################################################
@@ -82,7 +82,9 @@
CC_INC = @cc_inc@
C_LIBS = @libs@
CC_SHARED = @cc_shared@
-CFLAGS = $(CC_INC) @ccflags@ @cc_build_call_frames@ @cc_debug@ @ccwarn@ @cg_flag@ @gc_flag@ @clock_best@ $(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)
LINK_DYNAMIC = @link_dynamic@
LINK = @link@
LINKFLAGS = @linkflags@ @link_debug@ @ld_debug@
@@ -141,7 +143,8 @@
editor/Makefile \
ext/Makefile \
src/dynoplibs/Makefile \
- src/dynpmc/Makefile
+ src/dynpmc/Makefile \
+ compilers/imcc/Rules.mak
GEN_CONFIGS = \
$(INC_DIR)/config.h \
@@ -159,7 +162,7 @@
$(LIBRARY_DIR)/config.pir \
src/platform.c \
#IF(platform_asm): src/platform_asm.s \
-#IF(has_opengl): config/gen/call_list/opengl.in \
+#IF(has_opengl): src/glut_nci_thunks.nci \
#IF(has_glut): src/glut_callbacks.c \
src/core_pmcs.c \
#IF(has_crypto): src/dynpmc/md2.pmc \
@@ -178,8 +181,6 @@
#IF(has_crypto): t/dynpmc/sha1.t \
#IF(has_crypto): t/dynpmc/sha256.t \
#IF(has_crypto): t/dynpmc/sha512.t \
- CFLAGS \
- compilers/imcc/CFLAGS \
config_lib.pasm \
parrot.pc \
compilers/imcc/imcc.y.flag \
@@ -192,7 +193,6 @@
runtime/parrot/include/datatypes.pasm \
runtime/parrot/include/iterator.pasm \
runtime/parrot/include/call_bits.pasm \
- runtime/parrot/include/io_thr_msg.pasm \
runtime/parrot/include/timer.pasm \
runtime/parrot/include/except_types.pasm \
runtime/parrot/include/except_severity.pasm \
@@ -227,10 +227,11 @@
$(GEN_MAKEFILES) \
ext/Parrot-Embed/Makefile.PL \
myconfig \
- src/call_list.txt \
MANIFEST.configure.generated \
.configure_trace.sto \
.parrot_current_rev \
+#IF(has_opengl): runtime/parrot/include/opengl_defines.pasm \
+#IF(has_opengl): runtime/parrot/library/OpenGL_funcs.pir \
runtime/parrot/include/signal.pasm
@@ -257,6 +258,7 @@
GEN_SOURCES = \
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 \
@@ -282,8 +284,6 @@
$(LIBRARY_DIR)/Getopt/Obj.pbc \
$(LIBRARY_DIR)/Iter.pbc \
$(LIBRARY_DIR)/JSON.pbc \
- $(LIBRARY_DIR)/data_json.pbc \
- $(LIBRARY_DIR)/Math/Random/mt19937ar.pbc \
$(LIBRARY_DIR)/Math/Rand.pbc \
$(LIBRARY_DIR)/MIME/Base64.pbc \
$(LIBRARY_DIR)/NCI/Utils.pbc \
@@ -376,7 +376,6 @@
$(INC_DIR)/io.h \
$(INC_DIR)/op.h \
$(INC_DIR)/pmc.h \
- $(INC_DIR)/events.h \
$(INC_DIR)/gc_api.h \
$(INC_DIR)/string_funcs.h \
$(INC_DIR)/misc.h \
@@ -387,7 +386,6 @@
$(INC_DIR)/nci.h \
$(INC_DIR)/thread.h \
$(INC_DIR)/scheduler.h \
- $(INC_DIR)/tsq.h \
$(INC_DIR)/longopt.h \
$(INC_DIR)/oo.h \
$(INC_DIR)/vtables.h \
@@ -407,10 +405,13 @@
$(INC_DIR)/core_pmcs.h \
$(INC_DIR)/compiler.h \
$(INC_DIR)/cclass.h \
- include/pmc/pmc_callcontext.h
+ include/pmc/pmc_callcontext.h \
+ include/pmc/pmc_parrotinterpreter.h
# generated list of header files
-GENERAL_H_FILES = $(NONGEN_HEADERS) $(GEN_HEADERS) @TEMP_cg_h@
+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@
CLASS_PMC_FILES = @TEMP_pmc_classes_pmc@
@@ -446,7 +447,6 @@
src/dynext$(O) \
src/embed$(O) \
src/string/encoding$(O) \
- src/events$(O) \
src/exceptions$(O) \
src/exit$(O) \
src/extend$(O) \
@@ -475,7 +475,9 @@
src/misc$(O) \
src/multidispatch$(O) \
src/frame_builder$(O) \
- src/nci$(O) \
+ src/nci/api$(O) \
+ src/nci/core_thunks$(O) \
+ src/nci/extra_thunks$(O) \
src/oo$(O) \
src/packfile$(O) \
src/packout$(O) \
@@ -492,17 +494,15 @@
src/sub$(O) \
src/thread$(O) \
src/runcore/trace$(O) \
- src/tsq$(O) \
src/utils$(O) \
src/vtables$(O) \
src/warnings$(O) \
- \
src/packfile/pf_items$(O) \
- \
- @TEMP_cg_o@ \
@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)
@@ -513,26 +513,28 @@
###############################################################################
# Executables
-PARROT = ./@test_prog@$(EXE)
-MINIPARROT = ./miniparrot$(EXE)
-DIS = ./pbc_disassemble$(EXE)
-PDUMP = ./pbc_dump$(EXE)
-PBC_MERGE = ./pbc_merge$(EXE)
-PDB = ./parrot_debugger$(EXE)
-PBC_TO_EXE = ./pbc_to_exe$(EXE)
-PARROT_CONFIG = ./parrot_config$(EXE)
-PIRC = ./pirc$(EXE)
-NQP_RX = ./parrot-nqp$(EXE)
+PARROT = . at slash@@test_prog@$(EXE)
+MINIPARROT = . at slash@miniparrot$(EXE)
+DIS = . at slash@pbc_disassemble$(EXE)
+PDUMP = . at slash@pbc_dump$(EXE)
+PBC_MERGE = . at slash@pbc_merge$(EXE)
+PDB = . at slash@parrot_debugger$(EXE)
+PBC_TO_EXE = . at slash@pbc_to_exe$(EXE)
+PARROT_CONFIG = . at slash@parrot_config$(EXE)
+PIRC = . at slash@pirc$(EXE)
+NQP_RX = . at slash@parrot-nqp$(EXE)
+NCI_THUNK_GEN = . at slash@parrot_nci_thunk_gen$(EXE)
# Installable executables
-INSTALLABLEPARROT = ./installable_parrot$(EXE)
-INSTALLABLEDIS = ./installable_pbc_disassemble$(EXE)
-INSTALLABLEPDUMP = ./installable_pbc_dump$(EXE)
-INSTALLABLEPBC_MERGE = ./installable_pbc_merge$(EXE)
-INSTALLABLEPBCTOEXE = ./installable_pbc_to_exe$(EXE)
-INSTALLABLEPDB = ./installable_parrot_debugger$(EXE)
-INSTALLABLECONFIG = ./installable_parrot_config$(EXE)
-INSTALLABLENQP = ./installable_parrot-nqp$(EXE)
+INSTALLABLEPARROT = . at slash@installable_parrot$(EXE)
+INSTALLABLEDIS = . at slash@installable_pbc_disassemble$(EXE)
+INSTALLABLEPDUMP = . at slash@installable_pbc_dump$(EXE)
+INSTALLABLEPBC_MERGE = . at slash@installable_pbc_merge$(EXE)
+INSTALLABLEPBCTOEXE = . at slash@installable_pbc_to_exe$(EXE)
+INSTALLABLEPDB = . at slash@installable_parrot_debugger$(EXE)
+INSTALLABLECONFIG = . at slash@installable_parrot_config$(EXE)
+INSTALLABLENQP = . at slash@installable_parrot-nqp$(EXE)
+INSTALLABLENCITHUNKGEN = . at slash@installable_parrot_nci_thunk_gen$(EXE)
# Libraries
LIBPARROT_STATIC = @blib_dir@/@libparrot_static@
@@ -552,6 +554,7 @@
DYNEXT_DIR = runtime/parrot/dynext
LIBNCI_TEST_SO = $(DYNEXT_DIR)/libnci_test$(LOAD_EXT)
LIBGLUTCB_SO = $(DYNEXT_DIR)/libglutcb$(LOAD_EXT)
+EXTRANCITHUNKS_SO = $(DYNEXT_DIR)/extra_nci_thunks$(LOAD_EXT)
###############################################################################
#
@@ -569,24 +572,27 @@
.SUFFIXES : .c .S .s .pmc .dump $(O) .str .pir .pbc
-# Passing an empty argument in @ARGV to cc_flags.pl to indicate where extra -Is
-# (etc) should go. Otherwise it will insert them after the first space, which
-# makes life go horribly wrong if $(CC) contains spaces but can't have -I
-# arguments (etc) injected in the middle.
-# There is probably a better way to do this, but I can't work it out right now.
.c$(O) : # suffix rule (limited support)
- @$(PERL) tools/build/cc_flags.pl ./CFLAGS $(CC) "" $(CFLAGS) -I$(@D) @cc_o_out@$@ -c $<
-
-# XXX probably should detect assembler, but right now this is only used on Sparc
+ $(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
.s$(O) : # suffix rule (limited support)
- @$(PERL) tools/build/cc_flags.pl ./CFLAGS $(CC) "" $(CFLAGS) -I$(@D) @cc_o_out@$@ -c $<
+ $(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
#UNLESS(win32).S$(O) : # suffix rule (limited support)
-#UNLESS(win32) @$(PERL) tools/build/cc_flags.pl ./CFLAGS $(CC) "" $(CFLAGS) -I$(@D) @cc_o_out@$@ -c $<
+#UNLESS(win32) $(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
.pir.pbc : # suffix rule (limited support)
$(PARROT) -o $@ $<
+# Note: Several rules in this makefile are tagged with a "SUFFIX OVERRIDE"
+# comment; this indicates that we have an explicit compilation rule for
+# that particular C file; this is done so that we override various
+# options for that file - to change optimization levels, or twiddle
+# warnings. Each of those overrides should use the most specific settings
+# possible for that file. When file-specific overrides are added during
+# Configure, the override must be allowed for in this file.
+# These will eventually be automatically generated.
+
+
###############################################################################
#
# USER TARGETS:
@@ -599,6 +605,7 @@
corevm \
docs \
#IF(has_glut): $(LIBGLUTCB_SO) \
+ $(EXTRANCITHUNKS_SO) \
$(DIS) \
$(PARROT_CONFIG) \
$(PBC_TO_EXE) \
@@ -610,10 +617,10 @@
$(PGE_LIB_PBCS) \
$(PCT_LIB_PBCS) \
$(JSON_LIB_PBCS) \
+ $(DATA_JSON_LIB_PBCS) \
$(NQP_LIB_PBCS)
corevm : \
- flags_dummy \
$(GEN_PM_INCLUDES) \
PARROT_LIBS \
$(PARROT) \
@@ -633,7 +640,6 @@
STR_FILES = \
src/debug.str \
src/dynext.str \
- src/events.str \
src/exceptions.str \
src/global.str \
src/global_setup.str \
@@ -648,7 +654,9 @@
src/library.str \
src/multidispatch.str \
src/frame_builder.str \
- src/nci.str \
+ src/nci/api.str \
+ src/nci/core_thunks.str \
+ src/nci/extra_thunks.str \
src/packfile.str \
src/pmc.str \
src/pmc_freeze.str \
@@ -799,12 +807,8 @@
parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O)
-installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP)
-
+installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN)
-flags_dummy :
- @echo "Compiling with:"
- @$(PERL) tools/build/cc_flags.pl ./CFLAGS echo $(CC) $(CFLAGS) -I$(@D) @cc_o_out@ xx$(O) -c xx.c
runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PARROT) $(GEN_PASM_INCLUDES)
$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
@@ -812,7 +816,7 @@
runtime/parrot/include/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
$(MINIPARROT) config_lib.pasm > $@
-$(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) CFLAGS \
+$(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
lib/Parrot/OpLib/core.pm src/parrot_config$(O) \
$(MINIPARROT)
$(LINK) @ld_out@$@ \
@@ -824,6 +828,12 @@
$(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir
$(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc
+parrot_nci_thunk_gen.pbc : tools/dev/nci_thunk_gen.pir $(DATA_JSON_LIB_PBCS) $(PARROT)
+ $(PARROT) -o parrot_nci_thunk_gen.pbc tools/dev/nci_thunk_gen.pir
+
+$(NCI_THUNK_GEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE)
+ $(PBC_TO_EXE) parrot_nci_thunk_gen.pbc
+
$(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
$(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
$(PARROT) pbc_to_exe.pbc parrot_config.pbc
@@ -936,6 +946,9 @@
$(INSTALLABLEPBCTOEXE) : $(PBC_TO_EXE) src/install_config$(O)
$(PBC_TO_EXE) pbc_to_exe.pbc --install
+$(INSTALLABLENCITHUNKGEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE) src/install_config$(O)
+ $(PBC_TO_EXE) parrot_nci_thunk_gen.pbc --install
+
#
# Parrot Debugger
#
@@ -1064,9 +1077,6 @@
runtime/parrot/include/socket.pasm : $(INC_DIR)/io.h $(H2INC)
$(PERL) $(H2INC) $(INC_DIR)/io.h $@
-runtime/parrot/include/io_thr_msg.pasm : $(INC_DIR)/events.h $(H2INC)
- $(PERL) $(H2INC) $(INC_DIR)/events.h $@
-
runtime/parrot/include/hash_key_type.pasm : $(INC_DIR)/hash.h $(H2INC)
$(PERL) $(H2INC) $(INC_DIR)/hash.h $@
@@ -1139,16 +1149,21 @@
# hello
hello: test_prep examples/pasm/hello$(EXE)
- ./examples/pasm/hello$(EXE) "from your friendly makefile"
+ . at slash@examples at slash@pasm at slash@hello$(EXE) "from your friendly makefile"
examples/pasm/hello.pbc: examples/pasm/hello.pasm
$(PARROT) -o examples/pasm/hello.pbc examples/pasm/hello.pasm
-examples/pasm/hello$(O): examples/pasm/hello.pbc
- $(PARROT) -o examples/pasm/hello$(O) examples/pasm/hello.pbc
-
-examples/pasm/hello$(EXE): examples/pasm/hello$(O)
- $(MAKE) . EXEC=examples/pasm/hello exec
+# The -o option of parrot did not work with the object file extension ".o"
+# so as work around pbc_to_exe is used and the original commands are only
+# commented out so it can easily switched back.
+#examples/pasm/hello$(O): examples/pasm/hello.pbc
+# $(PARROT) -o examples/pasm/hello$(O) examples/pasm/hello.pbc
+#
+#examples/pasm/hello$(EXE): examples/pasm/hello$(O)
+# $(MAKE) . EXEC=examples/pasm/hello exec
+examples/pasm/hello$(EXE): examples/pasm/hello.pbc $(PBC_TO_EXE)
+ $(PBC_TO_EXE) examples/pasm/hello.pbc
@@ -1235,14 +1250,14 @@
src/exceptions.str \
include/pmc/pmc_continuation.h
-src/events$(O) : $(PARROT_H_HEADERS) src/events.str
-
src/thread$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic.h \
include/pmc/pmc_sub.h \
include/pmc/pmc_parrotinterpreter.h
+## SUFFIX OVERRIDE - dynloaded files need cc_shared
src/extend$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/extend.h \
- include/pmc/pmc_sub.h $(INC_DIR)/extend_vtable.h
+ include/pmc/pmc_sub.h $(INC_DIR)/extend_vtable.h src/extend.c
+ $(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.str \
@@ -1357,8 +1372,6 @@
$(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
$(PARROT_H_HEADERS)
-src/tsq$(O) : $(PARROT_H_HEADERS)
-
src/embed$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/embed.h \
$(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_api.h \
compilers/imcc/imc.h \
@@ -1374,12 +1387,23 @@
src/exit$(O) : $(PARROT_H_HEADERS)
-src/nci$(O) : src/nci.str \
- $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS) \
- src/frame_builder.h \
- include/pmc/pmc_managedstruct.h \
- include/pmc/pmc_nci.h \
- include/pmc/pmc_pointer.h
+src/nci/api$(O) : src/nci/api.str \
+ $(PARROT_H_HEADERS) \
+ include/pmc/pmc_unmanagedstruct.h \
+ include/pmc/pmc_nci.h
+
+src/nci/core_thunks$(O) : src/nci/core_thunks.str \
+ $(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 \
+ $(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 \
include/pmc/pmc_fixedintegerarray.h \
@@ -1389,12 +1413,11 @@
src/vtables$(O) : $(PARROT_H_HEADERS)
+## SUFFIX OVERRIDE
src/gc/system$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
-src/gc/gc_private.h : $(INC_DIR)/settings.h
+ $(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/nci.c : src/call_list.txt $(BUILD_TOOLS_DIR)/nativecall.pl \
- include/pmc/pmc_nci.h
- $(PERL) $(BUILD_TOOLS_DIR)/nativecall.pl src/call_list.txt
+src/gc/gc_private.h : $(INC_DIR)/settings.h
src/warnings$(O) : $(PARROT_H_HEADERS)
@@ -1402,7 +1425,9 @@
src/utils$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_nci.h
+## SUFFIX OVERRIDE
src/spf_render$(O) : $(PARROT_H_HEADERS) src/spf_render.str
+ $(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
@@ -1435,15 +1460,14 @@
src/atomic/gcc_x86$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic/gcc_x86.h
-src/ops/core_ops$(O) : src/ops/core_ops.c \
- include/pmc/pmc_callcontext.h \
- include/pmc/pmc_continuation.h \
- include/pmc/pmc_parrotlibrary.h \
- src/io/io_private.h $(INC_DIR)/dynext.h $(INC_DIR)/embed.h \
- $(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h
-
# core_ops depends upon config.h so that it gets updated along with
# updates to config.h's version numbers
+src/ops/core_ops$(O) : src/ops/core_ops.c \
+ include/pmc/pmc_callcontext.h \
+ include/pmc/pmc_continuation.h \
+ include/pmc/pmc_parrotlibrary.h \
+ src/io/io_private.h $(INC_DIR)/dynext.h $(INC_DIR)/embed.h \
+ $(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h
# .h files are built along with .c
$(INC_DIR)/oplib/core_ops.h: src/ops/core_ops.c
@@ -1454,8 +1478,10 @@
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
@@ -1465,7 +1491,27 @@
lib/Parrot/OpTrans/CPrederef.pm
$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CSwitch --core @no_lines_flag@
- at TEMP_cg_c@
+## 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@
@@ -1796,13 +1842,14 @@
ext-clean \
#UNLESS(win32): cover-clean \
editor-clean
- @TEMP_cg_r@
+ $(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) 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) $(PIRC_CLEANUPS) $(PCT_CLEANUPS)
+ $(RM_F) $(PIRC_CLEANUPS) $(PCT_CLEANUPS) $(DATA_JSON_CLEANUPS)
$(RM_F) $(GEN_PASM_INCLUDES) $(GEN_PM_INCLUDES)
prog-clean :
@@ -1819,7 +1866,9 @@
$(INSTALLABLEPDB) \
$(INSTALLABLECONFIG) \
$(INSTALLABLENQP) \
+ $(INSTALLABLENCITHUNKGEN) \
pbc_to_exe.pbc pbc_to_exe.c pbc_to_exe$(O) pbc_to_exe$(EXE) \
+ $(NCI_THUNK_GEN) parrot_nci_thunk_gen.c parrot_nci_thunk_gen$(O) parrot_nci_thunk_gen.pbc \
parrot_config$(EXE) parrot_config.c parrot_config$(O) parrot_config.pbc \
compilers/imcc/main$(O) \
$(PDUMP) src/pbc_dump$(O) src/packdump$(O) \
@@ -1834,7 +1883,10 @@
src/nci_test$(O) \
$(LIBNCI_TEST_SO) \
src/glut_callbacks$(O) \
+ src/glut_nci_thunks$(O) \
$(LIBGLUTCB_SO) \
+ src/extra_nci_thunks$(O) \
+ $(EXTRANCITHUNKS_SO) \
install_config.fpmc
$(PERL) $(BUILD_TOOLS_DIR)/c2str.pl --init
$(RM_F) \
@@ -1872,6 +1924,8 @@
$(LIBNCI_TEST_SO) \
src/glut_callbacks$(O) \
$(LIBGLUTCB_SO) \
+ src/extra_nci_thunks$(O) \
+ $(EXTRANCITHUNKS_SO) \
$(LIBPARROT_STATIC) \
$(LIBPARROT_SHARED)
@@ -2390,7 +2444,9 @@
###### OS depend targets ##########
# for use by t/pmc/nci.t
-src/nci_test$(O): $(PARROT_H_HEADERS)
+## SUFFIX OVERRIDE - dynloaded files need cc_shared
+src/nci_test$(O): $(PARROT_H_HEADERS) src/nci_test.c
+ $(CC) $(CFLAGS) @optimize::src/nci_test.c@ @ccwarn::src/nci_test.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci_test.c
$(LIBNCI_TEST_SO): src/nci_test$(O) $(LIBPARROT)
$(LD) $(LD_LOAD_FLAGS) @ncilib_link_extra@ $(LDFLAGS) \
@@ -2399,11 +2455,33 @@
# for use by runtime/parrot/library/OpenGL.pir
src/glut_callbacks$(O): $(GENERAL_H_FILES)
-$(LIBGLUTCB_SO): $(LIBPARROT) src/glut_callbacks$(O)
+src/glut_nci_thunks.c: $(NCI_THUNK_GEN)
+ $(NCI_THUNK_GEN) \
+ --loader-name=Parrot_glut_nci_loader \
+ --loader-storage-class=PARROT_DYNEXT_EXPORT \
+ --output=src/glut_nci_thunks.c \
+ <src/glut_nci_thunks.nci
+
+src/glut_nci_thunks$(O): $(GENERAL_H_FILES)
+
+$(LIBGLUTCB_SO): $(LIBPARROT) src/glut_callbacks$(O) src/glut_nci_thunks$(O)
$(LD) $(LD_LOAD_FLAGS) $(LDFLAGS) \
- @ld_out@$@ src/glut_callbacks$(O) \
+ @ld_out@$@ src/glut_callbacks$(O) src/glut_nci_thunks$(O) \
$(ALL_PARROT_LIBS) @opengl_lib@
+src/extra_nci_thunks.c : src/nci/extra_thunks.nci $(NCI_THUNK_GEN)
+ $(NCI_THUNK_GEN) --dynext --no-warn-dups \
+ --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
+ $(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)
+ $(LD) $(LD_LOAD_FLAGS) $(LDFLAGS) \
+ @ld_out@$@ src/extra_nci_thunks$(O) \
+ $(ALL_PARROT_LIBS)
+
# emacs etags
# this needs exuberant-ctags
Modified: branches/ops_pct/config/gen/opengl.pm
==============================================================================
--- branches/ops_pct/config/gen/opengl.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/opengl.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -15,7 +15,7 @@
=item F<runtime/parrot/library/OpenGL_funcs.pir>
-=item F<config/gen/call_list/opengl.in>
+=item F<src/glut_nci_thunks.nci>
=item F<src/glut_callbacks.c>
@@ -436,7 +436,7 @@
my $MACRO_FILE = 'runtime/parrot/include/opengl_defines.pasm';
my $FUNCS_FILE = 'runtime/parrot/library/OpenGL_funcs.pir';
-my $SIGS_FILE = 'config/gen/call_list/opengl.in';
+my $SIGS_FILE = 'src/glut_nci_thunks.nci';
my $C_FILE = 'src/glut_callbacks.c';
@@ -812,6 +812,8 @@
.sub _glutcb_func_list
.local pmc glutcb_funcs
glutcb_funcs = new 'ResizableStringArray'
+ push glutcb_funcs, 'Parrot_glut_nci_loader'
+ push glutcb_funcs, 'vJ'
push glutcb_funcs, 'glutcbCloseFunc'
push glutcb_funcs, 'vJP'
push glutcb_funcs, 'glutcbDisplayFunc'
Modified: branches/ops_pct/config/gen/platform/generic/env.c
==============================================================================
--- branches/ops_pct/config/gen/platform/generic/env.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/platform/generic/env.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -26,7 +26,9 @@
/*
-=item C<void Parrot_setenv(const char *name, const char *value)>
+=item C<void Parrot_setenv(PARROT_INTERP, STRING *str_name, STRING *str_value)>
+
+Set up Environment vars
=cut
@@ -61,7 +63,9 @@
/*
-=item C<void Parrot_unsetenv(const char *name)>
+=item C<void Parrot_unsetenv(PARROT_INTERP, STRING *str_name)>
+
+UnSet Environment vars
=cut
@@ -81,7 +85,9 @@
/*
-=item C<char * Parrot_getenv(const char *name, int *free_it)>
+=item C<char * Parrot_getenv(PARROT_INTERP, STRING *str_name)>
+
+Get Environment vars
=cut
Modified: branches/ops_pct/config/gen/platform/generic/exec.c
==============================================================================
--- branches/ops_pct/config/gen/platform/generic/exec.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/platform/generic/exec.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -106,7 +106,7 @@
int status, i;
STRING *s;
char *cmd;
- char **argv = mem_allocate_n_typed((len+1), char*);
+ char **argv = mem_gc_allocate_n_typed(interp, (len+1), char*);
for (i = 0; i < len; ++i) {
s = VTABLE_get_string_keyed_int(interp, cmdargs, i);
Modified: branches/ops_pct/config/gen/platform/generic/memexec.c
==============================================================================
--- branches/ops_pct/config/gen/platform/generic/memexec.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/platform/generic/memexec.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -59,7 +59,7 @@
/*
-=item C<void mem_free_executable(void *p, size_t)>
+=item C<void mem_free_executable(void *p, size_t size)>
Free a buffer allocated with mem_alloc_executable().
@@ -81,7 +81,8 @@
/*
-=item C<void * mem_realloc_executable(void* oldp, size_t oldsize, size_t newsize)>
+=item C<void * mem_realloc_executable(void* oldp, size_t oldsize, size_t
+newsize)>
Reallocate executable memory.
Rounds up to page size because the whole page will be marked as executable.
Modified: branches/ops_pct/config/gen/platform/openbsd/memexec.c
==============================================================================
--- branches/ops_pct/config/gen/platform/openbsd/memexec.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/platform/openbsd/memexec.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -65,7 +65,8 @@
/*
-=item C<void * mem_realloc_executable(void* oldp, size_t oldsize, size_t newsize)>
+=item C<void * mem_realloc_executable(void* oldp, size_t oldsize, size_t
+newsize)>
Reallocate executable memory
Round up to page size because the whole page will be marked as executable
Modified: branches/ops_pct/config/gen/platform/platform_interface.h
==============================================================================
--- branches/ops_pct/config/gen/platform/platform_interface.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/gen/platform/platform_interface.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -44,9 +44,9 @@
void mem_free_executable(void *, size_t);
void *mem_realloc_executable(void *, size_t, size_t);
#else
-# define mem_alloc_executable mem_sys_allocate
-# define mem_free_executable(a, b) mem_sys_free(a)
-# define mem_realloc_executable(a, b, c) mem_sys_realloc((a), (c))
+# define mem_alloc_executable mem_internal_allocate
+# define mem_free_executable(a, b) mem_internal_free(a)
+# define mem_realloc_executable(a, b, c) mem_internal_realloc((a), (c))
#endif
/*
Modified: branches/ops_pct/config/init/hints/darwin.pm
==============================================================================
--- branches/ops_pct/config/init/hints/darwin.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/init/hints/darwin.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -90,8 +90,7 @@
rpath => "-L",
libparrot_soname => "-install_name "
. $lib_dir
- . $conf->data->get('slash')
- . "libparrot"
+ . '/libparrot'
. $conf->data->get('share_ext')
);
}
Modified: branches/ops_pct/config/init/hints/mswin32.pm
==============================================================================
--- branches/ops_pct/config/init/hints/mswin32.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/init/hints/mswin32.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -101,7 +101,6 @@
ar_flags => '',
ar_out => '-out:',
slash => '\\',
- blib_dir => 'blib\\lib',
ccflags => $ccflags,
ccwarn => $ccwarn,
has_dynamic_linking => 1,
@@ -153,7 +152,6 @@
ar_flags => '',
ar_out => '-out:',
slash => '\\',
- blib_dir => 'blib\\lib',
ccflags => $ccflags,
ccwarn => '',
has_dynamic_linking => 1
@@ -200,7 +198,6 @@
ar_out => '',
ar_extra => '',
slash => '\\',
- blib_dir => 'blib\\lib',
make_and => "\n\t",
);
}
@@ -261,7 +258,6 @@
sym_export => '__declspec(dllexport)',
sym_import => '__declspec(dllimport)',
slash => '\\',
- blib_dir => 'blib\\lib',
);
}
}
Modified: branches/ops_pct/config/init/hints/openbsd.pm
==============================================================================
--- branches/ops_pct/config/init/hints/openbsd.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/init/hints/openbsd.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -21,10 +21,17 @@
if ( $libs !~ /-lpthread\b/ ) {
$libs .= ' -lpthread';
}
+
+ my $ldflags = $conf->data->get('ldflags');
+ if ( $ldflags !~ m|-L/usr/local/lib\b| ) {
+ $ldflags .= ' -L/usr/local/lib';
+ }
+
$conf->data->set(
- libs => $libs,
- link => 'g++',
- rpath => '-Wl,-R',
+ ldflags => $ldflags,
+ libs => $libs,
+ link => 'g++',
+ rpath => '-Wl,-R',
has_dynamic_linking => 1,
parrot_is_shared => 1,
Modified: branches/ops_pct/config/init/optimize.pm
==============================================================================
--- branches/ops_pct/config/init/optimize.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/init/optimize.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2005, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -21,10 +21,10 @@
sub _init {
my $self = shift;
- my %data;
- $data{description} = q{Enable optimization};
- $data{result} = q{};
- return \%data;
+ return {
+ 'description', 'Enable optimization',
+ 'result', '',
+ };
}
our $verbose;
@@ -41,41 +41,53 @@
# A plain --optimize means use perl5's $Config{optimize}. If an argument
# is given, however, use that instead.
my $optimize = $conf->options->get('optimize');
- if ( defined $optimize ) {
- $self->set_result('yes');
- # disable debug flags
- $conf->data->set( cc_debug => '' );
- $conf->data->add( ' ', ccflags => "-DDISABLE_GC_DEBUG=1 -DNDEBUG" );
- if ( $optimize eq "1" ) {
-
- # use perl5's value
- # gcc 4.1 doesn't like -mcpu=xx, i.e. it's deprecated
- my $opts = $conf->data->get('optimize_provisional');
- my $gccversion = $conf->data->get( 'gccversion' );
- my $arch_opt = 'cpu';
- if ( defined $gccversion and $gccversion > 3.3 ) {
- $arch_opt = 'arch';
- }
- $opts =~ s/-mcpu=/-m$arch_opt=/;
- $conf->data->add( ' ', ccflags => $opts );
- print "opts: ", $opts, "\n" if $verbose;
-
- # record what optimization was enabled
- $conf->data->set( optimize => $opts );
- }
- else {
+ if (! defined $optimize) {
+ $self->set_result('no');
+ print "(none requested) " if $conf->options->get('verbose');
+ return 1;
+ }
- # use what was passed to --optimize on the CLI
- $conf->data->add( ' ', ccflags => $optimize );
+ $self->set_result('yes');
+ my $gccversion = $conf->data->get( 'gccversion' );
- # record what optimization was enabled
- $conf->data->set( optimize => $optimize );
+ my $options;
+ if ( $optimize eq "1" ) {
+ # start with perl5's flags ...
+ $options = $conf->data->get('optimize_provisional');
+
+ # ... but gcc 4.1 doesn't like -mcpu=xx, i.e. it's deprecated
+ if ( defined $gccversion and $gccversion > 3.3 ) {
+ $options =~ s/-mcpu=/-march=/;
}
}
else {
- $self->set_result('no');
- print "(none requested) " if $conf->options->get('verbose');
+ # use the command line verbatim
+ $options = $optimize;
+ }
+
+ # save the options, however we got them.
+ $conf->data->set( optimize => $options );
+ print "optimize options: ", $options, "\n" if $verbose;
+
+ # disable debug flags.
+ $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','');
}
return 1;
Modified: branches/ops_pct/config/inter/charset.pm
==============================================================================
--- branches/ops_pct/config/inter/charset.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/inter/charset.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -75,8 +75,7 @@
}
# build list of libraries for link line in Makefile
- my $slash = $conf->data->get('slash');
- $TEMP_charset_o =~ s/^| / src${slash}string${slash}charset${slash}/g;
+ $TEMP_charset_o =~ s{^| }{ src/string/charset/}g;
$conf->data->set(
charset => $charset_list,
Modified: branches/ops_pct/config/inter/encoding.pm
==============================================================================
--- branches/ops_pct/config/inter/encoding.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/inter/encoding.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -75,8 +75,7 @@
}
# build list of libraries for link line in Makefile
- my $slash = $conf->data->get('slash');
- $TEMP_encoding_o =~ s/^| / src${slash}string${slash}encoding${slash}/g;
+ $TEMP_encoding_o =~ s{^| }{ src/string/encoding/}g;
$conf->data->set(
encoding => $encoding_list,
Modified: branches/ops_pct/config/inter/libparrot.pm
==============================================================================
--- branches/ops_pct/config/inter/libparrot.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/config/inter/libparrot.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -105,7 +105,7 @@
&& $conf->data->get('rpath') )
? $conf->data->get('rpath')
. $conf->data->get('build_dir')
- . $conf->data->get('slash')
+ . '/'
. $conf->data->get('blib_dir')
: ''
);
@@ -144,7 +144,7 @@
$conf->data->set(libparrot_linkflags =>
'-L'
. $conf->data->get('build_dir')
- . $conf->data->get('slash')
+ . '/'
. $conf->data->get('blib_dir')
. ' -lparrot'
);
Modified: branches/ops_pct/docs/embed.pod
==============================================================================
--- branches/ops_pct/docs/embed.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/embed.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -84,21 +84,7 @@
=head2 Type signatures
-These are used with the Parrot_call_sub family of functions.
-
-=over 4
-
-=item v - void (return only)
-
-=item I - integer (return or argument)
-
-=item N - float (return or argument)
-
-=item S - string (return or argument)
-
-=item P - PMC (return or argument)
-
-=back
+ TODO: Write about signature strings
=head2 Interpreter initialization and destruction
@@ -354,14 +340,6 @@
with return values are passed as references in the varargs list, after all
arguments.
-=item [DEPRECATED] C<void *Parrot_call_sub(PARROT_INTERP, Parrot_PMC sub, const_char *signature)>
-
-Call a Parrot subroutine that returns a pointer using the supplied signature.
-
-=item [DEPRECATED] C<Parrot_Int Parrot_call_sub_ret_int(PARROT_INTERP, Parrot_PMC sub, const_char *signature)>
-
-Call a Parrot subroutine that returns an integer using the supplied signature.
-
=back
=head2 Objects
@@ -504,7 +482,7 @@
sub = Parrot_find_global_cur(interp, pstr);
/* run foo(), which returns nothing */
- Parrot_call_sub(interp, sub, "v");
+ Parrot_ext_call(interp, sub, "->");
Parrot_destroy(interp);
@@ -601,10 +579,6 @@
=item C<Parrot_ext_call>
-=item [DEPRECATED] C<Parrot_call_sub>
-
-=item [DEPRECATED] C<Parrot_call_sub_ret_int>
-
=item C<Parrot_char_digit_value>
=item C<Parrot_charset_c_name>
@@ -1053,46 +1027,6 @@
=item C<Parrot_PMC_assign_string_native>
-=item C<Parrot_PMC_bitwise_and>
-
-=item C<Parrot_PMC_bitwise_and_int>
-
-=item C<Parrot_PMC_bitwise_ands>
-
-=item C<Parrot_PMC_bitwise_ands_str>
-
-=item C<Parrot_PMC_bitwise_lsr>
-
-=item C<Parrot_PMC_bitwise_lsr_int>
-
-=item C<Parrot_PMC_bitwise_not>
-
-=item C<Parrot_PMC_bitwise_nots>
-
-=item C<Parrot_PMC_bitwise_or>
-
-=item C<Parrot_PMC_bitwise_or_int>
-
-=item C<Parrot_PMC_bitwise_ors>
-
-=item C<Parrot_PMC_bitwise_ors_str>
-
-=item C<Parrot_PMC_bitwise_shl>
-
-=item C<Parrot_PMC_bitwise_shl_int>
-
-=item C<Parrot_PMC_bitwise_shr>
-
-=item C<Parrot_PMC_bitwise_shr_int>
-
-=item C<Parrot_PMC_bitwise_xor>
-
-=item C<Parrot_PMC_bitwise_xor_int>
-
-=item C<Parrot_PMC_bitwise_xors>
-
-=item C<Parrot_PMC_bitwise_xors_str>
-
=item C<Parrot_PMC_can>
=item C<Parrot_PMC_clone>
@@ -1163,8 +1097,6 @@
=item C<Parrot_PMC_get_attr_str>
-=item C<Parrot_PMC_get_bignum>
-
=item C<Parrot_PMC_get_bool>
=item C<Parrot_PMC_get_class>
@@ -1253,46 +1185,6 @@
=item C<Parrot_PMC_i_add_int>
-=item C<Parrot_PMC_i_bitwise_and>
-
-=item C<Parrot_PMC_i_bitwise_and_int>
-
-=item C<Parrot_PMC_i_bitwise_ands>
-
-=item C<Parrot_PMC_i_bitwise_ands_str>
-
-=item C<Parrot_PMC_i_bitwise_lsr>
-
-=item C<Parrot_PMC_i_bitwise_lsr_int>
-
-=item C<Parrot_PMC_i_bitwise_not>
-
-=item C<Parrot_PMC_i_bitwise_nots>
-
-=item C<Parrot_PMC_i_bitwise_or>
-
-=item C<Parrot_PMC_i_bitwise_or_int>
-
-=item C<Parrot_PMC_i_bitwise_ors>
-
-=item C<Parrot_PMC_i_bitwise_ors_str>
-
-=item C<Parrot_PMC_i_bitwise_shl>
-
-=item C<Parrot_PMC_i_bitwise_shl_int>
-
-=item C<Parrot_PMC_i_bitwise_shr>
-
-=item C<Parrot_PMC_i_bitwise_shr_int>
-
-=item C<Parrot_PMC_i_bitwise_xor>
-
-=item C<Parrot_PMC_i_bitwise_xor_int>
-
-=item C<Parrot_PMC_i_bitwise_xors>
-
-=item C<Parrot_PMC_i_bitwise_xors_str>
-
=item C<Parrot_PMC_i_concatenate>
=item C<Parrot_PMC_i_concatenate_str>
@@ -1661,14 +1553,6 @@
=item C<Parrot_str_append>
-=item C<Parrot_str_bitwise_and>
-
-=item C<Parrot_str_bitwise_not>
-
-=item C<Parrot_str_bitwise_or>
-
-=item C<Parrot_str_bitwise_xor>
-
=item C<Parrot_str_boolean>
=item C<Parrot_str_byte_length>
@@ -1807,7 +1691,7 @@
=item C<Parrot_warn>
-=item C<PMC_is_null>
+=item C<Parrot_pmc_is_null>
=item C<pmc_new>
Modified: branches/ops_pct/docs/parrothist.pod
==============================================================================
--- branches/ops_pct/docs/parrothist.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/parrothist.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -103,5 +103,5 @@
Gerd 1.9.0 2009-Dec-15 "Blue-fronted Amazon"
chromatic 2.0.0 * 2010-Jan-19 "Inevitable"
-
+ darbelo 2.1.0 2010-Feb-16 "As Scheduled"
=cut
Modified: branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -989,8 +989,7 @@
"Perl5", "Perl6", "Perl5RE", "Perl6RE", "Python", "Ruby"... you get the
picture.
-Parrot knows of a "PASM1" compiler, i.e. a one statement PASM compiler
-implemented as PDB_eval. Imcc registers "PASM" and "PIR" compilers.
+Imcc registers "PASM" and "PIR" compilers automatically.
This is a high-level op, with the assumption that the resulting sub will be
called. It's the equivalent of perl 5's string eval, except for the actual
Modified: branches/ops_pct/docs/pdds/draft/pdd11_extending.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd11_extending.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/pdds/draft/pdd11_extending.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -275,11 +275,7 @@
=over 4
-=item C<Parrot_call_sub(interp, Parrot_PMC sub, Parrot_Int argcount, ...)>
-
-Calls a Parrot subroutine, with C<argcount> PMC parameters. This function sets
-up Parrot's registers in line with the Parrot calling conventions; see
-L<pdd03_calling_conventions.pod> for more details.
+ TODO: Add new call functions here
=back
Modified: branches/ops_pct/docs/pdds/pdd17_pmc.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd17_pmc.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/pdds/pdd17_pmc.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -628,12 +628,6 @@
Return the native floating-point value of the PMC.
-=item get_bignum
-
- PMC* get_bignum(INTERP, PMC *self)
-
-Return the extended precision numeric value of the PMC as a new bignum PMC.
-
=item get_string
STRING* get_string(INTERP, PMC *self)
Modified: branches/ops_pct/docs/pdds/pdd28_strings.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd28_strings.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/pdds/pdd28_strings.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -666,10 +666,6 @@
Return the floating-point representation of the string.
-=item get_bignum
-
-Return the big number representation of the string.
-
=item get_string
Return the string value of the String PMC.
Modified: branches/ops_pct/docs/project/release_manager_guide.pod
==============================================================================
--- branches/ops_pct/docs/project/release_manager_guide.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/project/release_manager_guide.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -393,9 +393,11 @@
visible at
L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
- - Feb 16, 2010 - 2.1 - darbelo
- - Mar 16, 2010 - 2.2 - cotto
- - Apr 20, 2010 - 2.3* - gerd
+ - Mar 16, 2010 - 2.2 - cotto
+ - Apr 20, 2010 - 2.3* - gerd
+ - May 18, 2010 - 2.4 - whiteknight
+ - Jun 15, 2010 - 2.5 - gerd
+ - Jul 20, 2010 - 2.6* - coke
=cut
Modified: branches/ops_pct/docs/tests.pod
==============================================================================
--- branches/ops_pct/docs/tests.pod Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/docs/tests.pod Sun Mar 7 19:33:20 2010 (r44743)
@@ -7,16 +7,16 @@
=head1 A basic guide to writing and running tests for Parrot
-This is quick and dirty pointer to how the Parrot test suite is executed and
-to how new tests for Parrot should be written.
-The testing system is liable to change in the future, but tests written
-following the guidelines below should be easy to port into a new test suite.
+This is quick and dirty primer on to how the Parrot test suite is executed and
+to how new tests for Parrot should be written. The testing system is liable to
+change in the future, but tests written following the guidelines below should be
+easy to port into a new test suite.
=head1 How to test parrot
-The easy way to test parrot is running C<make test>. If you have
-updated your code recently and tests began failing, go for a C<make
-realclean> and recompile parrot before complaining.
+The easy way to test parrot is running C<make test>. If you have updated your
+code recently and tests began failing, go for a C<make realclean> and recompile
+parrot before complaining.
C<make languages-test> runs the test suite for most language implementations
in the languages directory.
@@ -26,41 +26,47 @@
Parrot has a status page with smoke test results at
L<http://smolder.plusthree.com/app/public_projects/details/8>.
-You can supply new tests results by just running C<make smoke>.
-It will run the same tests as C<make test> would, but will upload
-the test results to the website.
+You can supply new tests results by just running C<make smoke>. It will run the
+same tests as C<make test> would, but will upload the test results to the
+website.
=head1 Location of the test files
The parrot test files, the F<*.t> files, can be found in the F<t> directory.
-A quick overview over the subdirs in F<t> can be found in F<t/README>.
+A quick overview over the subdirs in F<t> can be found in F<t/README>.
The language implementations usually have their test files in F<languages/*/t>.
-New tests should be added to an existing F<*.t> file.
-If a previously untested feature is tested,
-it might also make sense to create a new F<*.t> file.
+New tests should be added to an existing F<*.t> file. If a previously untested
+feature is tested, it might also make sense to create a new F<*.t> file. You
+may also see tests named like foo-old.t, which are Perl tests that are in the
+process of being translated to PIR.
=head1 How to write a test
Test scripts must emit text that conforms to the C<Test Anything Protocol>.
-Test scripts are currently usually written in Perl 5 or PIR.
-The Perl 5 module C<Parrot::Test>
-and the PIR module C<Test;More> help with writing tests.
+Test scripts are currently usually written in PIR or Perl 5. The Perl 5 module
+C<Parrot::Test> and the PIR module C<Test;More> help with writing tests.
+Writing tests in PIR is preferred, but there are some cases where the
+proper framework is not available. If you can, write your tests in PIR.
The testing framework needs to know how many tests it should expect. So the
number of planned tests needs to be incremented when adding a new test. This
is done near the top of a test file, in a line that looks like:
+ plan(42)
+
+in PIR tests and
+
use Parrot::Test tests => 8;
-for Perl 5 based test scripts.
+for Perl 5 test scripts.
=head2 Testing Parrot Assembler
PASM tests are mostly used for testing ops. Appropriate test files for basic
-ops are F<t/op/*.t>. Polymorphic Containers are tested in F<t/pmc/*.t>. Add the
-new test like this:
+ops are F<t/op/*.t>. Polymorphic Containers are tested in F<t/pmc/*.t>. Add
+the new test like this:
pasm_output_is(<<'CODE', <<'OUTPUT', "name for test");
*** a big chunk of assembler, eg:
Modified: branches/ops_pct/examples/c/nanoparrot.c
==============================================================================
--- branches/ops_pct/examples/c/nanoparrot.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/c/nanoparrot.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -94,7 +94,7 @@
* or for the curious: look at the preprocessor output
*/
-#define OP(x) OP_ ## (x)
+#define OP(x) OP_##x
typedef enum { OPCODES } opcodes;
#undef OP
@@ -148,6 +148,8 @@
=item C<static void run(Interp *interp, opcode_t *pc)>
+Execute a single opcode.
+
=cut
*/
@@ -167,7 +169,7 @@
switch (*pc) {
# endif
-# define CASE(x) case OP_ ## (x):
+# define CASE(x) case OP_##x:
# define NEXT continue;
# define DONE return;
# define ENDDISPATCH default : printf("illegal instruction"); \
@@ -228,11 +230,11 @@
#ifdef FUNC_CORE
# define DEF_OP(op) \
- interp->op_func[OP_ ## op] = (op); \
- interp->op_info[OP_ ## op] = #op
+ interp->op_func[OP_##op] = (op); \
+ interp->op_info[OP_##op] = #op
#else
# define DEF_OP(op) \
- interp->op_info[OP_ ## op] = #op
+ interp->op_info[OP_##op] = #op
#endif
/*
@@ -287,6 +289,8 @@
=item C<int main(int argc, char *argv[])>
+Initialize a minimal Parrotesque interpreter and run some hard-coded bytecode.
+
=cut
*/
Modified: branches/ops_pct/examples/c/pbc_info.c
==============================================================================
--- branches/ops_pct/examples/c/pbc_info.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/c/pbc_info.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2003, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -27,6 +27,8 @@
#include "parrot/embed.h"
/*
+=item C<static INTVAL iter(PARROT_INTERP, PackFile_Segment *seg, void
+*user_data)>
=item C<static INTVAL iter(PARROT_INTERP, PackFile_Segment *seg, void *user_data)>
Modified: branches/ops_pct/examples/embed/cotorra.c
==============================================================================
--- branches/ops_pct/examples/embed/cotorra.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/embed/cotorra.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -203,7 +203,7 @@
Parrot_String compiler = create_string(interp, "PIR");
Parrot_String errstr;
Parrot_PMC code = Parrot_compile_string(interp, compiler, exec, &errstr);
- void *discard = Parrot_call_sub(interp, code, "v");
+ Parrot_ext_call(interp, code, "->");
return 0;
}
@@ -224,8 +224,7 @@
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);
- void *discard;
- discard = Parrot_call_sub(interp, start, "v");
+ Parrot_ext_call(interp, start, "->");
}
else {
Parrot_runcode(interp, argc - i, argv + i);
Modified: branches/ops_pct/examples/languages/abc/t/01-tests.t
==============================================================================
--- branches/ops_pct/examples/languages/abc/t/01-tests.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/languages/abc/t/01-tests.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -79,7 +79,7 @@
# calculate total number of tests
my $numtests = 0;
foreach my $f (@test_files) {
- open my( $TEST_FILE ), $f;
+ open my $TEST_FILE, '<', $f;
# for each line in the given files if it's not a comment line
# or an empty line, the it's a test
@@ -91,7 +91,7 @@
# main loop
foreach my $file (@test_files) {
- open my $TEST_FILE, "<$file" or die "can't open file";
+ open my $TEST_FILE, '<', $file or die "can't open file";
while (<$TEST_FILE>) {
chomp;
s/\r//g;
Modified: branches/ops_pct/examples/nci/QtHelloWorld.pasm
==============================================================================
--- branches/ops_pct/examples/nci/QtHelloWorld.pasm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/nci/QtHelloWorld.pasm Sun Mar 7 19:33:20 2010 (r44743)
@@ -21,7 +21,8 @@
Note that this will either need JIT for building the NCI-functions on
the fly. If this is not available try adding missing signatures to
-F<src/call_list.txt> and rebuilding Parrot.
+F<src/nci/extra_thunks.nci>, running F<tools/dev/mk_nci_thunks.pl>, and
+rebuilding Parrot.
=cut
Modified: branches/ops_pct/examples/nci/QtHelloWorld.pir
==============================================================================
--- branches/ops_pct/examples/nci/QtHelloWorld.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/nci/QtHelloWorld.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -21,7 +21,8 @@
Note that this will either need JIT for building the NCI-functions on
the fly. If this is not available try adding missing signatures to
-F<src/call_list.txt> and rebuilding Parrot.
+F<src/nci/extra_thunks.nci>, running F<tools/dev/mk_nci_thunks.pl>, and
+rebuilding Parrot.
=cut
.sub main
Modified: branches/ops_pct/examples/nci/sdl_blue_rectangle.pir
==============================================================================
--- branches/ops_pct/examples/nci/sdl_blue_rectangle.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/nci/sdl_blue_rectangle.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -26,11 +26,11 @@
.local pmc new_SDL_Rect
.local object screen
- SDL_Init = global "SDL::SDL_Init"
- SetVideoMode = global "SDL::SDL_SetVideoMode"
- SDL_Quit = global "SDL::SDL_Quit"
- SDL_UpdateRect = global "SDL::SDL_UpdateRect"
- SDL_FillRect = global "SDL::SDL_FillRect"
+ SDL_Init = global ['SDL'; 'SDL_Init']
+ SetVideoMode = global ['SDL'; 'SDL_SetVideoMode']
+ SDL_Quit = global ['SDL'; 'SDL_Quit']
+ SDL_UpdateRect = global ['SDL'; 'SDL_UpdateRect']
+ SDL_FillRect = global ['SDL'; 'SDL_FillRect']
new_SDL_Rect = global "new_SDL_Rect"
.begin_call
Modified: branches/ops_pct/examples/pir/make_hello_pbc.pir
==============================================================================
--- branches/ops_pct/examples/pir/make_hello_pbc.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/pir/make_hello_pbc.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,7 +2,7 @@
#$Id$
# Sample creating of "Hello World" program using Packfile PMCs.
.sub 'main'
- .local pmc pf, pfdir, pffixup, pfbc, pfconst
+ .local pmc pf, pfdir, pffixup, pfbc, pfconst, oplib
# Hello World is something like
# .sub 'hello'
@@ -40,15 +40,19 @@
# Generate bytecode
pfbc = new 'PackfileRawSegment'
+ oplib = new 'OpLib'
- # There is our function
- pfbc[0] = 0x1d1 # say_sc
+ # Here is our function
+ $I0 = oplib['say_sc']
+ pfbc[0] = $I0
pfbc[1] = 0x002 # constant id.
- pfbc[2] = 0x026 # set_return_pc
+ $I0 = oplib['set_returns_pc']
+ pfbc[2] = $I0
pfbc[3] = 0x001 # id of FIA
- pfbc[4] = 0x020 # returncc
+ $I0 = oplib['returncc']
+ pfbc[4] = $I0
# Store bytecode
pfdir['BYTECODE_hello.pir'] = pfbc
Modified: branches/ops_pct/examples/sdl/anim_image.pir
==============================================================================
--- branches/ops_pct/examples/sdl/anim_image.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/anim_image.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -23,34 +23,34 @@
.local pmc app
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1 )
.local pmc main_screen
main_screen = app.'surface'()
.local pmc dest_rect
- dest_rect = new 'SDL::Rect'
+ dest_rect = new ['SDL'; 'Rect']
dest_rect.'init'( 'height' => 100, 'width' => 100, 'x' => 0, 'y' => 190 )
.local pmc prev_rect
- prev_rect = new 'SDL::Rect'
+ prev_rect = new ['SDL'; 'Rect']
prev_rect.'init'( 'height' => 100, 'width' => 101, 'x' => 0, 'y' => 190 )
.local pmc source_rect
- source_rect = new 'SDL::Rect'
+ source_rect = new ['SDL'; 'Rect']
source_rect.'init'( 'height' => 56, 'width' => 100, 'x' => 0, 'y' => 0 )
.local pmc black
- black = new 'SDL::Color'
+ black = new ['SDL'; 'Color']
black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
.local pmc image
- image = new 'SDL::Image'
+ image = new ['SDL'; 'Image']
image.'init'( 'examples/sdl/parrot_small.png' )
.local pmc sprite
- sprite = new 'SDL::Sprite'
+ sprite = new ['SDL'; 'Sprite']
sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 0, 'dest_y' => 190, 'bgcolor' => black )
.local num start_time
@@ -96,7 +96,7 @@
.local pmc rect
.local pmc rect_array
- rect_array = new 'Array'
+ rect_array = new 'ResizablePMCArray'
set rect_array, 2
_loop:
Modified: branches/ops_pct/examples/sdl/anim_image_dblbuf.pir
==============================================================================
--- branches/ops_pct/examples/sdl/anim_image_dblbuf.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/anim_image_dblbuf.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -22,34 +22,34 @@
load_bytecode "SDL/Sprite.pir"
.local pmc app
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1073741825 )
.local pmc main_screen
main_screen = app.'surface'()
.local pmc dest_rect
- dest_rect = new 'SDL::Rect'
+ dest_rect = new ['SDL'; 'Rect']
dest_rect.'init'( 'height' => 100, 'width' => 100, 'x' => 0, 'y' => 190 )
.local pmc prev_rect
- prev_rect = new 'SDL::Rect'
+ prev_rect = new ['SDL'; 'Rect']
prev_rect.'init'( 'height' => 100, 'width' => 101, 'x' => 0, 'y' => 190 )
.local pmc source_rect
- source_rect = new 'SDL::Rect'
+ source_rect = new ['SDL'; 'Rect']
source_rect.'init'( 'height' => 56, 'width' => 100, 'x' => 0, 'y' => 0 )
.local pmc black
- black = new 'SDL::Color'
+ black = new ['SDL'; 'Color']
black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
.local pmc image
- image = new 'SDL::Image'
+ image = new ['SDL'; 'Image']
image.'init'( 'examples/sdl/parrot_small.png' )
.local pmc sprite
- sprite = new 'SDL::Sprite'
+ sprite = new ['SDL'; 'Sprite']
sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 0, 'dest_y' => 190, 'bgcolor' => black )
.local num start_time
Modified: branches/ops_pct/examples/sdl/blue_font.pir
==============================================================================
--- branches/ops_pct/examples/sdl/blue_font.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/blue_font.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -29,7 +29,7 @@
# create an SDL::App object
.local pmc app
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1 )
# fetch the SDL::Surface representing the main window
@@ -38,16 +38,16 @@
# create an SDL::Rect object
.local pmc rect
- new rect, 'SDL::Rect'
+ new rect, ['SDL'; 'Rect']
rect.'init'( 'height' => 100, 'width' => 100, 'x' => 194, 'y' => 208 )
# create SDL::Color objects
.local pmc blue
- new blue, 'SDL::Color'
+ new blue, ['SDL'; 'Color']
blue.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
.local pmc white
- new white, 'SDL::Color'
+ new white, ['SDL'; 'Color']
white.'init'( 'r' => 255, 'g' => 255, 'b' => 255 )
.local pmc file_pmc
@@ -62,11 +62,11 @@
have_font:
.local pmc font
- new font, 'SDL::Font'
+ new font, ['SDL'; 'Font']
font.'init'( 'font_file' => 'times.ttf', 'point_size' => 48 )
.local pmc full_rect
- full_rect = new 'SDL::Rect'
+ full_rect = new ['SDL'; 'Rect']
full_rect.'init'( 'width' => 640, 'height' => 480, 'x' => 0, 'y' => 0 )
main_screen.'fill_rect'( full_rect, white )
Modified: branches/ops_pct/examples/sdl/blue_rect.pir
==============================================================================
--- branches/ops_pct/examples/sdl/blue_rect.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/blue_rect.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -21,7 +21,7 @@
# create an SDL::App object
.local pmc app
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 32, 'flags' => 1 )
# fetch the SDL::Surface representing the main window
@@ -30,12 +30,12 @@
# create an SDL::Rect object
.local pmc rect
- new rect, 'SDL::Rect'
+ new rect, ['SDL'; 'Rect']
rect.'init'( 'height' => 100, 'width' => 100, 'x' => 270, 'y' => 190 )
# create an SDL::Color object
.local pmc color
- new color, 'SDL::Color'
+ new color, ['SDL'; 'Color']
color.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
# draw the rectangle to the surface and update it
Modified: branches/ops_pct/examples/sdl/bounce_parrot_logo.pir
==============================================================================
--- branches/ops_pct/examples/sdl/bounce_parrot_logo.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/bounce_parrot_logo.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -27,22 +27,22 @@
load_bytecode "SDL/Event.pir"
.local pmc app
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'width' => 640, 'height' => 480, 'bpp' => 0, 'flags' => 0 )
.local pmc main_screen
main_screen = app.'surface'()
.local pmc black
- black = new 'SDL::Color'
+ black = new ['SDL'; 'Color']
black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
.local pmc image
- image = new 'SDL::Image'
+ image = new ['SDL'; 'Image']
image.'init'( 'examples/sdl/parrot_small.png' )
.local pmc sprite
- sprite = new 'SDL::Sprite'
+ sprite = new ['SDL'; 'Sprite']
sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 270, 'dest_y' => 212, 'bgcolor' => black )
_main_loop( main_screen, sprite )
@@ -55,14 +55,14 @@
.local pmc parent_class
.local pmc class_type
- get_class parent_class, 'SDL::EventHandler'
+ get_class parent_class, ['SDL'; 'EventHandler']
subclass class_type, parent_class, 'MoveLogo::EventHandler'
.local pmc event_handler
event_handler = new 'MoveLogo::EventHandler'
.local pmc event
- event = new 'SDL::Event'
+ event = new ['SDL'; 'Event']
event.'init'()
.local pmc handler_args
@@ -176,7 +176,7 @@
.local pmc prev_rect
.local pmc rect
.local pmc rect_array
- rect_array = new 'Array'
+ rect_array = new 'ResizablePMCArray'
set rect_array, 2
(prev_rect, rect) = sprite.'draw_undraw'( screen )
Modified: branches/ops_pct/examples/sdl/lcd/clock.pir
==============================================================================
--- branches/ops_pct/examples/sdl/lcd/clock.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/lcd/clock.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -35,7 +35,7 @@
# create the SDL application object
.local pmc app
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'height' => 21, 'width' => 94, 'bpp' => 16, 'flags' => 5 )
.local pmc screen
@@ -44,7 +44,7 @@
# create the LCD
.local pmc lcd
- lcd = new 'SDL::LCD'
+ lcd = new ['SDL'; 'LCD']
set_global 'LCD', lcd
# draw the watch
@@ -67,8 +67,8 @@
.local pmc eh
.local pmc loop
- eh = new 'SDL::EventHandler'
- loop = new 'SDL::Event'
+ eh = new ['SDL'; 'EventHandler']
+ loop = new ['SDL'; 'Event']
loop.'init'()
loop.'process_events'( 0.1, eh )
.end
Modified: branches/ops_pct/examples/sdl/mandel.pir
==============================================================================
--- branches/ops_pct/examples/sdl/mandel.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/mandel.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -72,7 +72,7 @@
.param pmc opts
# create an SDL::App subclass
.local pmc app, cl
- cl = subclass 'SDL::App', 'Mandel'
+ cl = subclass ['SDL'; 'App'], 'Mandel'
addattribute cl, 'xstart'
addattribute cl, 'ystart'
addattribute cl, 'xend'
@@ -128,7 +128,7 @@
# create an SDL::Rect representing the entire main screen
.local pmc rect
- rect = new 'SDL::Rect'
+ rect = new ['SDL'; 'Rect']
rect.'init'( 'height' => h, 'width' => w, 'x' => 0, 'y' => 0 )
setattribute self, 'rect', rect
@@ -397,11 +397,11 @@
# init event system
.sub 'init_events' :method
.local pmc event, args, event_handler
- event = new 'SDL::Event'
+ event = new ['SDL'; 'Event']
event.'init'()
setattribute self, 'event', event
- $P0 = subclass 'SDL::EventHandler', ['Mandel'; 'EventHandler']
+ $P0 = subclass ['SDL'; 'EventHandler'], ['Mandel'; 'EventHandler']
event_handler = new ['Mandel'; 'EventHandler']
event_handler.'init'(self) # XXX unused
setattribute self, 'event_handler', event_handler
@@ -444,7 +444,7 @@
loop_g:
b = 0
loop_b:
- col = new 'SDL::Color'
+ col = new ['SDL'; 'Color']
col.'init'( 'r' => r, 'g' => g, 'b' => b )
push palette, col
b += 36
Modified: branches/ops_pct/examples/sdl/minesweeper/eventhandler.pir
==============================================================================
--- branches/ops_pct/examples/sdl/minesweeper/eventhandler.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/minesweeper/eventhandler.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -6,7 +6,7 @@
=head1 SYNOPSIS
- $P0 = new "SDL::Event"
+ $P0 = new ['SDL'; 'Event']
$P1 = new "Mines::EventHandler"
Modified: branches/ops_pct/examples/sdl/minesweeper/field.pir
==============================================================================
--- branches/ops_pct/examples/sdl/minesweeper/field.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/minesweeper/field.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -132,11 +132,11 @@
field = new 'ResizablePMCArray'
cache = new 'ResizablePMCArray'
- watch = new 'SDL::StopWatch', screen
+ watch = new ['SDL'; 'StopWatch'], screen
watch.'xpos'( 515 )
watch.'ypos'( 5 )
- lcd = new 'SDL::LCD'
+ lcd = new ['SDL'; 'LCD']
# This seems to call __init() with too many parameters
# lcd = 0
lcd.'_digits'( 4 )
@@ -172,7 +172,7 @@
# button
$P0 = new 'String'
$P0 = "examples/sdl/minesweeper/smiley.png"
- $P0 = new "SDL::Button", $P0
+ $P0 = new ['SDL'; 'Button'], $P0
$P0.'states'( 5 )
$P0.'pos'( 305, 2 )
$P0.'size'( 30, 30 )
@@ -324,10 +324,10 @@
$P0['y'] = 0
$P0['width'] = 0
$P0['height'] = 0
- dest_rect = new "SDL::Rect", $P0
+ dest_rect = new ['SDL'; 'Rect'], $P0
$P0['width'] = FIELD_WIDTH
$P0['height'] = FIELD_HEIGHT
- src_rect = new "SDL::Rect", $P0
+ src_rect = new ['SDL'; 'Rect'], $P0
set size, width
mul size, height
@@ -975,12 +975,12 @@
$P0 = new 'String'
$P0 = "examples/sdl/minesweeper/mines.png"
- image = new "SDL::Image", $P0
+ image = new ['SDL'; 'Image'], $P0
set_hll_global [ "Mines::Field" ], "field", image
$P0 = new 'String'
$P0 = "examples/sdl/minesweeper/mines_debug.png"
- image = new "SDL::Image", $P0
+ image = new ['SDL'; 'Image'], $P0
set_hll_global [ "Mines::Field" ], "field_debug", image
newclass $P0, "Mines::Field"
Modified: branches/ops_pct/examples/sdl/minesweeper/mines.pir
==============================================================================
--- branches/ops_pct/examples/sdl/minesweeper/mines.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/minesweeper/mines.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -48,7 +48,7 @@
$P0["flags"] = 5
# create the SDL object
- $P0 = new "SDL::App", $P0
+ $P0 = new ['SDL'; 'App'], $P0
screen = $P0."surface"()
# choose a "random" field
@@ -71,7 +71,7 @@
field.'draw'()
# runloop
- $P0 = new "SDL::Event"
+ $P0 = new ['SDL'; 'Event']
$P1 = new "Mines::EventHandler"
$P0."process_events"( 0.1, $P1, field )
Modified: branches/ops_pct/examples/sdl/move_parrot_logo.pir
==============================================================================
--- branches/ops_pct/examples/sdl/move_parrot_logo.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/move_parrot_logo.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -25,7 +25,7 @@
.local pmc app
.local int app_type
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'width' => 640, 'height' => 480, 'bpp' => 0, 'flags' => 0 )
@@ -35,7 +35,7 @@
.local pmc black
.local int color_type
- black = new 'SDL::Color'
+ black = new ['SDL'; 'Color']
black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
.local pmc image
@@ -43,7 +43,7 @@
.local string filename
- image = new 'SDL::Image'
+ image = new ['SDL'; 'Image']
filename = 'examples/sdl/parrot_small.png'
image.'init'( 'file' => filename )
@@ -53,12 +53,12 @@
.local pmc sprite
.local int sprite_type
- sprite = new 'SDL::Sprite'
+ sprite = new ['SDL'; 'Sprite']
sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 270, 'dest_y' => 212, 'bgcolor' => black )
.local pmc parent_class
.local pmc class_type
- get_class parent_class, 'SDL::EventHandler'
+ get_class parent_class, ['SDL'; 'EventHandler']
subclass class_type, parent_class, 'MoveLogo::EventHandler'
.local pmc event_handler
@@ -69,7 +69,7 @@
.local pmc event
.local int event_type
- event = new 'SDL::Event'
+ event = new ['SDL'; 'Event']
event.'init'()
.local pmc handler_args
@@ -91,7 +91,7 @@
.local pmc prev_rect
.local pmc rect
.local pmc rect_array
- rect_array = new 'Array'
+ rect_array = new 'ResizablePMCArray'
set rect_array, 2
(prev_rect, rect) = sprite.'draw_undraw'( screen )
Modified: branches/ops_pct/examples/sdl/raw_pixels.pir
==============================================================================
--- branches/ops_pct/examples/sdl/raw_pixels.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/raw_pixels.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -26,7 +26,7 @@
.local pmc app
.local int app_type
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1 )
# fetch the SDL::Surface representing the main window
@@ -37,17 +37,17 @@
# create an SDL::Rect representing the entire main screen
.local pmc rect
.local int rect_type
- rect = new 'SDL::Rect'
+ rect = new ['SDL'; 'Rect']
rect.'init'( 'height' => 480, 'width' => 640, 'x' => 0, 'y' => 0 )
# create a white color to paint the background; make new pixels show up
.local pmc white
- white = new 'SDL::Color'
+ white = new ['SDL'; 'Color']
white.'init'( 'r' => 255, 'g' => 255, 'b' => 255 )
# create a blue color to paint the new pixels
.local pmc blue
- blue = new 'SDL::Color'
+ blue = new ['SDL'; 'Color']
blue.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
# draw the background
Modified: branches/ops_pct/examples/sdl/tetris/app.pir
==============================================================================
--- branches/ops_pct/examples/sdl/tetris/app.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/tetris/app.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -92,7 +92,7 @@
$P0["flags"] = 1
# create the SDL object
- $P0 = new "SDL::App", $P0
+ $P0 = new ['SDL'; 'App'], $P0
# store the SDL object
setattribute self, 'SDL', $P0
@@ -177,7 +177,7 @@
getattribute eh, self, 'EventHandler'
- loop = new "SDL::Event"
+ loop = new ['SDL'; 'Event']
self."enableTimer"()
loop."process_events"( 0.1, eh, self )
@@ -329,7 +329,7 @@
hash["r"] = r
hash["g"] = g
hash["b"] = b
- color = new "SDL::Color", hash
+ color = new ['SDL'; 'Color'], hash
push palette, color
inc i
@@ -837,7 +837,7 @@
rect["height"] = 480
rect["x"] = 0
rect["y"] = 0
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
color = self."color"( 3 )
screen."fill_rect"( temp, color )
@@ -856,7 +856,7 @@
rect["height"] = 480
rect["x"] = 0
rect["y"] = 0
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
screen."update_rect"( temp )
self."enableTimer"()
Modified: branches/ops_pct/examples/sdl/tetris/block.pir
==============================================================================
--- branches/ops_pct/examples/sdl/tetris/block.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/tetris/block.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -439,7 +439,7 @@
rect["y"] = yp
rect["width"] = i
rect["height"] = i
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
surface."fill_rect"( temp, color )
sub i, 2
@@ -450,7 +450,7 @@
rect["y"] = yp
rect["width"] = i
rect["height"] = i
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
# lookup the color value
$P0 = app."color"( 0 )
@@ -478,7 +478,7 @@
rect["y"] = yp
rect["width"] = extent
rect["height"] = extent
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
inc extent
surface."fill_rect"( temp, color )
SKIP:
Modified: branches/ops_pct/examples/sdl/tetris/board.pir
==============================================================================
--- branches/ops_pct/examples/sdl/tetris/board.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/tetris/board.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -648,7 +648,7 @@
rect["y"] = ypos
rect["width"] = xp
rect["height"] = yp
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
color = palette[15]
surface."fill_rect"( temp, color )
NO_FIELDBACKGROUND:
@@ -682,7 +682,7 @@
rect["y"] = yp
rect["width"] = $I0
rect["height"] = $I0
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
$I0 = self[i]
$I1 = cache[i]
@@ -734,7 +734,7 @@
rect["y"] = yp
rect["width"] = w
rect["height"] = h
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
color = palette[15]
surface."fill_rect"( temp, color )
inc xp
@@ -745,7 +745,7 @@
rect["y"] = yp
rect["width"] = w
rect["height"] = h
- temp = new "SDL::Rect", rect
+ temp = new ['SDL'; 'Rect'], rect
color = palette[0]
surface."fill_rect"( temp, color )
getprop temp, "nextblock", self
Modified: branches/ops_pct/examples/sdl/tetris/eventhandler.pir
==============================================================================
--- branches/ops_pct/examples/sdl/tetris/eventhandler.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/examples/sdl/tetris/eventhandler.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -13,7 +13,7 @@
unless null $P0 goto END
load_bytecode "library/SDL/EventHandler.pir"
- get_class $P0, "SDL::EventHandler"
+ get_class $P0, ['SDL'; 'EventHandler']
subclass $P0, $P0, "Tetris::EventHandler"
$P1 = new 'String'
$P1 = "BUILD"
@@ -41,7 +41,7 @@
app = self."app"()
app."setTimer"( 0 )
- $P0 = get_hll_global [ "SDL::Event" ], "disptach_event"
+ $P0 = get_hll_global ['SDL'; 'Event'], "disptach_event"
ret = $P0()
app."setTimer"( 1 )
.return (ret)
Modified: branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs
==============================================================================
--- branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs Sun Mar 7 19:33:20 2010 (r44743)
@@ -223,7 +223,7 @@
pmc_actual = pmc->pmc;
interp = get_interp( pmc->interp );
arg_string = Parrot_str_new_constant( interp, argument );
- out_pmc = Parrot_call_sub( interp, pmc_actual, signature, arg_string );
+ Parrot_ext_call( interp, pmc_actual, signature, arg_string, &out_pmc );
RETVAL = make_pmc( aTHX_ pmc->interp, out_pmc );
OUTPUT:
RETVAL
Modified: branches/ops_pct/ext/Parrot-Embed/t/pipp.t
==============================================================================
--- branches/ops_pct/ext/Parrot-Embed/t/pipp.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/ext/Parrot-Embed/t/pipp.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
use strict;
@@ -33,8 +33,8 @@
isa_ok( $pipp_x, 'Parrot::PMC' );
}
-# TODO: get hll id of Pipp
-# TODO: set hll namespace root to 'pipp'
+# todo: get hll id of Pipp
+# todo: set hll namespace root to 'pipp'
# find sub 'eval' and hll namespace 'pipp'
my $pipp_eval = $interp->find_global( 'pipp', 'eval' );
# isa_ok( $pipp_eval, 'Parrot::PMC', todo => '$pipp_eval is not found' );
@@ -73,3 +73,11 @@
ok( $pmc, 'invoke() should return a PMC, given that signature' );
is( $pmc->get_string(), 42, 'value returned in the PMC' );
}
+
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -854,7 +854,7 @@
### .include 'gen/hllgrammar-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064003.48945")
+.sub "_block11" :anon :subid("10_1267204683.33533")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
@@ -868,9 +868,9 @@
.namespace []
-.sub "" :load :init :subid("post94") :outer("10_1261064003.48945")
+.sub "" :load :init :subid("post94") :outer("10_1267204683.33533")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064003.48945"
+ .const 'Sub' $P12 = "10_1267204683.33533"
.local pmc block
set block, $P12
$P297 = get_root_global ["parrot"], "P6metaclass"
@@ -879,78 +879,78 @@
.namespace ["HLL";"Grammar"]
-.sub "_block13" :subid("11_1261064003.48945") :outer("10_1261064003.48945")
+.sub "_block13" :subid("11_1267204683.33533") :outer("10_1267204683.33533")
.annotate "line", 5
- .const 'Sub' $P286 = "92_1261064003.48945"
+ .const 'Sub' $P286 = "92_1267204683.33533"
capture_lex $P286
- .const 'Sub' $P279 = "90_1261064003.48945"
+ .const 'Sub' $P279 = "90_1267204683.33533"
capture_lex $P279
- .const 'Sub' $P266 = "87_1261064003.48945"
+ .const 'Sub' $P266 = "87_1267204683.33533"
capture_lex $P266
- .const 'Sub' $P261 = "85_1261064003.48945"
+ .const 'Sub' $P261 = "85_1267204683.33533"
capture_lex $P261
- .const 'Sub' $P255 = "83_1261064003.48945"
+ .const 'Sub' $P255 = "83_1267204683.33533"
capture_lex $P255
- .const 'Sub' $P249 = "81_1261064003.48945"
+ .const 'Sub' $P249 = "81_1267204683.33533"
capture_lex $P249
- .const 'Sub' $P244 = "79_1261064003.48945"
+ .const 'Sub' $P244 = "79_1267204683.33533"
capture_lex $P244
- .const 'Sub' $P239 = "77_1261064003.48945"
+ .const 'Sub' $P239 = "77_1267204683.33533"
capture_lex $P239
- .const 'Sub' $P234 = "75_1261064003.48945"
+ .const 'Sub' $P234 = "75_1267204683.33533"
capture_lex $P234
- .const 'Sub' $P229 = "73_1261064003.48945"
+ .const 'Sub' $P229 = "73_1267204683.33533"
capture_lex $P229
- .const 'Sub' $P224 = "71_1261064003.48945"
+ .const 'Sub' $P224 = "71_1267204683.33533"
capture_lex $P224
- .const 'Sub' $P219 = "69_1261064003.48945"
+ .const 'Sub' $P219 = "69_1267204683.33533"
capture_lex $P219
- .const 'Sub' $P208 = "65_1261064003.48945"
+ .const 'Sub' $P208 = "65_1267204683.33533"
capture_lex $P208
- .const 'Sub' $P195 = "63_1261064003.48945"
+ .const 'Sub' $P195 = "63_1267204683.33533"
capture_lex $P195
- .const 'Sub' $P183 = "61_1261064003.48945"
+ .const 'Sub' $P183 = "61_1267204683.33533"
capture_lex $P183
- .const 'Sub' $P176 = "59_1261064003.48945"
+ .const 'Sub' $P176 = "59_1267204683.33533"
capture_lex $P176
- .const 'Sub' $P167 = "57_1261064003.48945"
+ .const 'Sub' $P167 = "57_1267204683.33533"
capture_lex $P167
- .const 'Sub' $P160 = "55_1261064003.48945"
+ .const 'Sub' $P160 = "55_1267204683.33533"
capture_lex $P160
- .const 'Sub' $P151 = "53_1261064003.48945"
+ .const 'Sub' $P151 = "53_1267204683.33533"
capture_lex $P151
- .const 'Sub' $P144 = "51_1261064003.48945"
+ .const 'Sub' $P144 = "51_1267204683.33533"
capture_lex $P144
- .const 'Sub' $P135 = "49_1261064003.48945"
+ .const 'Sub' $P135 = "49_1267204683.33533"
capture_lex $P135
- .const 'Sub' $P128 = "47_1261064003.48945"
+ .const 'Sub' $P128 = "47_1267204683.33533"
capture_lex $P128
- .const 'Sub' $P121 = "45_1261064003.48945"
+ .const 'Sub' $P121 = "45_1267204683.33533"
capture_lex $P121
- .const 'Sub' $P111 = "43_1261064003.48945"
+ .const 'Sub' $P111 = "43_1267204683.33533"
capture_lex $P111
- .const 'Sub' $P103 = "41_1261064003.48945"
+ .const 'Sub' $P103 = "41_1267204683.33533"
capture_lex $P103
- .const 'Sub' $P93 = "40_1261064003.48945"
+ .const 'Sub' $P93 = "40_1267204683.33533"
capture_lex $P93
- .const 'Sub' $P87 = "38_1261064003.48945"
+ .const 'Sub' $P87 = "38_1267204683.33533"
capture_lex $P87
- .const 'Sub' $P82 = "36_1261064003.48945"
+ .const 'Sub' $P82 = "36_1267204683.33533"
capture_lex $P82
- .const 'Sub' $P74 = "34_1261064003.48945"
+ .const 'Sub' $P74 = "34_1267204683.33533"
capture_lex $P74
- .const 'Sub' $P68 = "32_1261064003.48945"
+ .const 'Sub' $P68 = "32_1267204683.33533"
capture_lex $P68
- .const 'Sub' $P62 = "30_1261064003.48945"
+ .const 'Sub' $P62 = "30_1267204683.33533"
capture_lex $P62
- .const 'Sub' $P56 = "28_1261064003.48945"
+ .const 'Sub' $P56 = "28_1267204683.33533"
capture_lex $P56
- .const 'Sub' $P23 = "14_1261064003.48945"
+ .const 'Sub' $P23 = "14_1267204683.33533"
capture_lex $P23
- .const 'Sub' $P15 = "12_1261064003.48945"
+ .const 'Sub' $P15 = "12_1267204683.33533"
capture_lex $P15
.annotate "line", 33
- .const 'Sub' $P286 = "92_1261064003.48945"
+ .const 'Sub' $P286 = "92_1267204683.33533"
capture_lex $P286
.annotate "line", 5
.return ($P286)
@@ -958,7 +958,7 @@
.namespace ["HLL";"Grammar"]
-.sub "ws" :subid("12_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "ws" :subid("12_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx16_tgt
.local int rx16_pos
@@ -1042,7 +1042,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws" :subid("13_1261064003.48945") :method
+.sub "!PREFIX__ws" :subid("13_1267204683.33533") :method
.annotate "line", 5
new $P18, "ResizablePMCArray"
push $P18, ""
@@ -1051,7 +1051,7 @@
.namespace ["HLL";"Grammar"]
-.sub "termish" :subid("14_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "termish" :subid("14_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx24_tgt
.local int rx24_pos
@@ -1143,7 +1143,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish" :subid("15_1261064003.48945") :method
+.sub "!PREFIX__termish" :subid("15_1267204683.33533") :method
.annotate "line", 5
new $P26, "ResizablePMCArray"
push $P26, ""
@@ -1152,7 +1152,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term" :subid("16_1261064003.48945") :method
+.sub "term" :subid("16_1267204683.33533") :method
.annotate "line", 13
$P33 = self."!protoregex"("term")
.return ($P33)
@@ -1160,7 +1160,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term" :subid("17_1261064003.48945") :method
+.sub "!PREFIX__term" :subid("17_1267204683.33533") :method
.annotate "line", 13
$P35 = self."!PREFIX__!protoregex"("term")
.return ($P35)
@@ -1168,7 +1168,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infix" :subid("18_1261064003.48945") :method
+.sub "infix" :subid("18_1267204683.33533") :method
.annotate "line", 14
$P37 = self."!protoregex"("infix")
.return ($P37)
@@ -1176,7 +1176,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix" :subid("19_1261064003.48945") :method
+.sub "!PREFIX__infix" :subid("19_1267204683.33533") :method
.annotate "line", 14
$P39 = self."!PREFIX__!protoregex"("infix")
.return ($P39)
@@ -1184,7 +1184,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefix" :subid("20_1261064003.48945") :method
+.sub "prefix" :subid("20_1267204683.33533") :method
.annotate "line", 15
$P41 = self."!protoregex"("prefix")
.return ($P41)
@@ -1192,7 +1192,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix" :subid("21_1261064003.48945") :method
+.sub "!PREFIX__prefix" :subid("21_1267204683.33533") :method
.annotate "line", 15
$P43 = self."!PREFIX__!protoregex"("prefix")
.return ($P43)
@@ -1200,7 +1200,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfix" :subid("22_1261064003.48945") :method
+.sub "postfix" :subid("22_1267204683.33533") :method
.annotate "line", 16
$P45 = self."!protoregex"("postfix")
.return ($P45)
@@ -1208,7 +1208,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix" :subid("23_1261064003.48945") :method
+.sub "!PREFIX__postfix" :subid("23_1267204683.33533") :method
.annotate "line", 16
$P47 = self."!PREFIX__!protoregex"("postfix")
.return ($P47)
@@ -1216,7 +1216,7 @@
.namespace ["HLL";"Grammar"]
-.sub "circumfix" :subid("24_1261064003.48945") :method
+.sub "circumfix" :subid("24_1267204683.33533") :method
.annotate "line", 17
$P49 = self."!protoregex"("circumfix")
.return ($P49)
@@ -1224,7 +1224,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix" :subid("25_1261064003.48945") :method
+.sub "!PREFIX__circumfix" :subid("25_1267204683.33533") :method
.annotate "line", 17
$P51 = self."!PREFIX__!protoregex"("circumfix")
.return ($P51)
@@ -1232,7 +1232,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postcircumfix" :subid("26_1261064003.48945") :method
+.sub "postcircumfix" :subid("26_1267204683.33533") :method
.annotate "line", 18
$P53 = self."!protoregex"("postcircumfix")
.return ($P53)
@@ -1240,7 +1240,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix" :subid("27_1261064003.48945") :method
+.sub "!PREFIX__postcircumfix" :subid("27_1267204683.33533") :method
.annotate "line", 18
$P55 = self."!PREFIX__!protoregex"("postcircumfix")
.return ($P55)
@@ -1248,7 +1248,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>" :subid("28_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "term:sym<circumfix>" :subid("28_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx57_tgt
.local int rx57_pos
@@ -1306,7 +1306,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>" :subid("29_1261064003.48945") :method
+.sub "!PREFIX__term:sym<circumfix>" :subid("29_1267204683.33533") :method
.annotate "line", 5
$P59 = self."!PREFIX__!subrule"("circumfix", "")
new $P60, "ResizablePMCArray"
@@ -1316,7 +1316,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infixish" :subid("30_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "infixish" :subid("30_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx63_tgt
.local int rx63_pos
@@ -1374,7 +1374,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish" :subid("31_1261064003.48945") :method
+.sub "!PREFIX__infixish" :subid("31_1267204683.33533") :method
.annotate "line", 5
$P65 = self."!PREFIX__!subrule"("OPER=infix", "")
new $P66, "ResizablePMCArray"
@@ -1384,7 +1384,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefixish" :subid("32_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "prefixish" :subid("32_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx69_tgt
.local int rx69_pos
@@ -1447,7 +1447,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish" :subid("33_1261064003.48945") :method
+.sub "!PREFIX__prefixish" :subid("33_1267204683.33533") :method
.annotate "line", 5
$P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
new $P72, "ResizablePMCArray"
@@ -1457,7 +1457,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfixish" :subid("34_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "postfixish" :subid("34_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx75_tgt
.local int rx75_pos
@@ -1531,7 +1531,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish" :subid("35_1261064003.48945") :method
+.sub "!PREFIX__postfixish" :subid("35_1267204683.33533") :method
.annotate "line", 5
$P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
$P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
@@ -1543,7 +1543,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm" :subid("36_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "nullterm" :subid("36_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx83_tgt
.local int rx83_pos
@@ -1594,7 +1594,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm" :subid("37_1261064003.48945") :method
+.sub "!PREFIX__nullterm" :subid("37_1267204683.33533") :method
.annotate "line", 5
new $P85, "ResizablePMCArray"
push $P85, ""
@@ -1603,7 +1603,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm_alt" :subid("38_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "nullterm_alt" :subid("38_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 5
.local string rx88_tgt
.local int rx88_pos
@@ -1661,7 +1661,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt" :subid("39_1261064003.48945") :method
+.sub "!PREFIX__nullterm_alt" :subid("39_1267204683.33533") :method
.annotate "line", 5
$P90 = self."!PREFIX__!subrule"("term", "")
new $P91, "ResizablePMCArray"
@@ -1671,7 +1671,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nulltermish" :subid("40_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "nulltermish" :subid("40_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
new $P95, 'ExceptionHandler'
set_addr $P95, control_94
@@ -1698,7 +1698,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_delimited" :subid("41_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_delimited" :subid("41_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx104_tgt
.local int rx104_pos
@@ -1780,7 +1780,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited" :subid("42_1261064003.48945") :method
+.sub "!PREFIX__quote_delimited" :subid("42_1267204683.33533") :method
.annotate "line", 33
$P106 = self."!PREFIX__!subrule"("starter", "")
new $P107, "ResizablePMCArray"
@@ -1790,7 +1790,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_atom" :subid("43_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_atom" :subid("43_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx112_tgt
.local int rx112_pos
@@ -1881,7 +1881,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom" :subid("44_1261064003.48945") :method
+.sub "!PREFIX__quote_atom" :subid("44_1267204683.33533") :method
.annotate "line", 33
new $P114, "ResizablePMCArray"
push $P114, ""
@@ -1890,7 +1890,7 @@
.namespace ["HLL";"Grammar"]
-.sub "decint" :subid("45_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "decint" :subid("45_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx122_tgt
.local int rx122_pos
@@ -1962,7 +1962,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint" :subid("46_1261064003.48945") :method
+.sub "!PREFIX__decint" :subid("46_1267204683.33533") :method
.annotate "line", 33
new $P124, "ResizablePMCArray"
push $P124, ""
@@ -1971,7 +1971,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("47_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "hexints" :subid("47_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx129_tgt
.local int rx129_pos
@@ -2055,7 +2055,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("48_1261064003.48945") :method
+.sub "!PREFIX__hexints" :subid("48_1267204683.33533") :method
.annotate "line", 33
new $P131, "ResizablePMCArray"
push $P131, ""
@@ -2064,7 +2064,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexint" :subid("49_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "hexint" :subid("49_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx136_tgt
.local int rx136_pos
@@ -2145,7 +2145,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint" :subid("50_1261064003.48945") :method
+.sub "!PREFIX__hexint" :subid("50_1267204683.33533") :method
.annotate "line", 33
new $P138, "ResizablePMCArray"
push $P138, ""
@@ -2154,7 +2154,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("51_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "hexints" :subid("51_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx145_tgt
.local int rx145_pos
@@ -2238,7 +2238,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("52_1261064003.48945") :method
+.sub "!PREFIX__hexints" :subid("52_1267204683.33533") :method
.annotate "line", 33
new $P147, "ResizablePMCArray"
push $P147, ""
@@ -2247,7 +2247,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octint" :subid("53_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "octint" :subid("53_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx152_tgt
.local int rx152_pos
@@ -2328,7 +2328,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint" :subid("54_1261064003.48945") :method
+.sub "!PREFIX__octint" :subid("54_1267204683.33533") :method
.annotate "line", 33
new $P154, "ResizablePMCArray"
push $P154, ""
@@ -2337,7 +2337,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octints" :subid("55_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "octints" :subid("55_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx161_tgt
.local int rx161_pos
@@ -2421,7 +2421,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints" :subid("56_1261064003.48945") :method
+.sub "!PREFIX__octints" :subid("56_1267204683.33533") :method
.annotate "line", 33
new $P163, "ResizablePMCArray"
push $P163, ""
@@ -2430,7 +2430,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binint" :subid("57_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "binint" :subid("57_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx168_tgt
.local int rx168_pos
@@ -2511,7 +2511,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint" :subid("58_1261064003.48945") :method
+.sub "!PREFIX__binint" :subid("58_1267204683.33533") :method
.annotate "line", 33
new $P170, "ResizablePMCArray"
push $P170, ""
@@ -2520,7 +2520,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binints" :subid("59_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "binints" :subid("59_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx177_tgt
.local int rx177_pos
@@ -2604,7 +2604,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints" :subid("60_1261064003.48945") :method
+.sub "!PREFIX__binints" :subid("60_1267204683.33533") :method
.annotate "line", 33
new $P179, "ResizablePMCArray"
push $P179, ""
@@ -2613,7 +2613,7 @@
.namespace ["HLL";"Grammar"]
-.sub "integer" :subid("61_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "integer" :subid("61_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx184_tgt
.local int rx184_pos
@@ -2761,7 +2761,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer" :subid("62_1261064003.48945") :method
+.sub "!PREFIX__integer" :subid("62_1267204683.33533") :method
.annotate "line", 33
$P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
$P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
@@ -2779,7 +2779,7 @@
.namespace ["HLL";"Grammar"]
-.sub "dec_number" :subid("63_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "dec_number" :subid("63_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx196_tgt
.local int rx196_pos
@@ -2958,7 +2958,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number" :subid("64_1261064003.48945") :method
+.sub "!PREFIX__dec_number" :subid("64_1267204683.33533") :method
.annotate "line", 33
new $P198, "ResizablePMCArray"
push $P198, ""
@@ -2969,7 +2969,7 @@
.namespace ["HLL";"Grammar"]
-.sub "escale" :subid("65_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "escale" :subid("65_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx209_tgt
.local int rx209_pos
@@ -3046,7 +3046,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale" :subid("66_1261064003.48945") :method
+.sub "!PREFIX__escale" :subid("66_1267204683.33533") :method
.annotate "line", 33
new $P211, "ResizablePMCArray"
push $P211, "e"
@@ -3056,7 +3056,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape" :subid("67_1261064003.48945") :method
+.sub "quote_escape" :subid("67_1267204683.33533") :method
.annotate "line", 79
$P216 = self."!protoregex"("quote_escape")
.return ($P216)
@@ -3064,7 +3064,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape" :subid("68_1261064003.48945") :method
+.sub "!PREFIX__quote_escape" :subid("68_1267204683.33533") :method
.annotate "line", 79
$P218 = self."!PREFIX__!protoregex"("quote_escape")
.return ($P218)
@@ -3072,7 +3072,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>" :subid("69_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<backslash>" :subid("69_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx220_tgt
.local int rx220_pos
@@ -3134,7 +3134,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1267204683.33533") :method
.annotate "line", 33
new $P222, "ResizablePMCArray"
push $P222, "\\\\"
@@ -3143,7 +3143,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>" :subid("71_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<stopper>" :subid("71_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx225_tgt
.local int rx225_pos
@@ -3212,7 +3212,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1267204683.33533") :method
.annotate "line", 33
new $P227, "ResizablePMCArray"
push $P227, "\\"
@@ -3221,7 +3221,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>" :subid("73_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<bs>" :subid("73_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx230_tgt
.local int rx230_pos
@@ -3283,7 +3283,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1267204683.33533") :method
.annotate "line", 33
new $P232, "ResizablePMCArray"
push $P232, "\\b"
@@ -3292,7 +3292,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>" :subid("75_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<nl>" :subid("75_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx235_tgt
.local int rx235_pos
@@ -3354,7 +3354,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1267204683.33533") :method
.annotate "line", 33
new $P237, "ResizablePMCArray"
push $P237, "\\n"
@@ -3363,7 +3363,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>" :subid("77_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<cr>" :subid("77_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx240_tgt
.local int rx240_pos
@@ -3425,7 +3425,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1267204683.33533") :method
.annotate "line", 33
new $P242, "ResizablePMCArray"
push $P242, "\\r"
@@ -3434,7 +3434,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>" :subid("79_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<tab>" :subid("79_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx245_tgt
.local int rx245_pos
@@ -3496,7 +3496,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1267204683.33533") :method
.annotate "line", 33
new $P247, "ResizablePMCArray"
push $P247, "\\t"
@@ -3505,7 +3505,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>" :subid("81_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<hex>" :subid("81_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx250_tgt
.local int rx250_pos
@@ -3603,7 +3603,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>" :subid("82_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<hex>" :subid("82_1267204683.33533") :method
.annotate "line", 33
new $P252, "ResizablePMCArray"
push $P252, unicode:"\\x"
@@ -3612,7 +3612,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>" :subid("83_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<oct>" :subid("83_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx256_tgt
.local int rx256_pos
@@ -3710,7 +3710,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>" :subid("84_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<oct>" :subid("84_1267204683.33533") :method
.annotate "line", 33
new $P258, "ResizablePMCArray"
push $P258, "\\o"
@@ -3719,7 +3719,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>" :subid("85_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<chr>" :subid("85_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx262_tgt
.local int rx262_pos
@@ -3788,7 +3788,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>" :subid("86_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<chr>" :subid("86_1267204683.33533") :method
.annotate "line", 33
new $P264, "ResizablePMCArray"
push $P264, "\\c"
@@ -3797,9 +3797,9 @@
.namespace ["HLL";"Grammar"]
-.sub "charname" :subid("87_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "charname" :subid("87_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
- .const 'Sub' $P276 = "89_1261064003.48945"
+ .const 'Sub' $P276 = "89_1267204683.33533"
capture_lex $P276
.local string rx267_tgt
.local int rx267_pos
@@ -3877,7 +3877,7 @@
.annotate "line", 100
# rx subrule "before" subtype=zerowidth negate=
rx267_cur."!cursor_pos"(rx267_pos)
- .const 'Sub' $P276 = "89_1261064003.48945"
+ .const 'Sub' $P276 = "89_1267204683.33533"
capture_lex $P276
$P10 = rx267_cur."before"($P276)
unless $P10, rx267_fail
@@ -3902,7 +3902,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname" :subid("88_1261064003.48945") :method
+.sub "!PREFIX__charname" :subid("88_1267204683.33533") :method
.annotate "line", 33
$P269 = self."!PREFIX__!subrule"("integer", "")
new $P270, "ResizablePMCArray"
@@ -3964,7 +3964,7 @@
.namespace ["HLL";"Grammar"]
-.sub "_block275" :anon :subid("89_1261064003.48945") :method :outer("87_1261064003.48945")
+.sub "_block275" :anon :subid("89_1267204683.33533") :method :outer("87_1267204683.33533")
.annotate "line", 100
.local string rx277_tgt
.local int rx277_pos
@@ -4024,7 +4024,7 @@
.namespace ["HLL";"Grammar"]
-.sub "charnames" :subid("90_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "charnames" :subid("90_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx280_tgt
.local int rx280_pos
@@ -4108,7 +4108,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames" :subid("91_1261064003.48945") :method
+.sub "!PREFIX__charnames" :subid("91_1267204683.33533") :method
.annotate "line", 33
new $P282, "ResizablePMCArray"
push $P282, ""
@@ -4117,7 +4117,7 @@
.namespace ["HLL";"Grammar"]
-.sub "charspec" :subid("92_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "charspec" :subid("92_1267204683.33533") :method :outer("11_1267204683.33533")
.annotate "line", 33
.local string rx287_tgt
.local int rx287_pos
@@ -4247,7 +4247,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec" :subid("93_1261064003.48945") :method
+.sub "!PREFIX__charspec" :subid("93_1267204683.33533") :method
.annotate "line", 33
$P289 = self."!PREFIX__!subrule"("", "")
$P290 = self."!PREFIX__!subrule"("charnames", "[")
@@ -4289,91 +4289,99 @@
### .include 'gen/hllgrammar-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064005.70696")
+.sub "_block11" :anon :subid("10_1267204685.44293")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
.annotate "line", 3
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
- $P451 = $P14()
+ $P538 = $P14()
.annotate "line", 1
- .return ($P451)
+ .return ($P538)
.end
.namespace []
-.sub "" :load :init :subid("post41") :outer("10_1261064005.70696")
+.sub "" :load :init :subid("post46") :outer("10_1267204685.44293")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064005.70696"
+ .const 'Sub' $P12 = "10_1267204685.44293"
.local pmc block
set block, $P12
- $P452 = get_root_global ["parrot"], "P6metaclass"
- $P452."new_class"("HLL::Actions")
+ $P539 = get_root_global ["parrot"], "P6metaclass"
+ $P539."new_class"("HLL::Actions")
.end
.namespace ["HLL";"Actions"]
-.sub "_block13" :subid("11_1261064005.70696") :outer("10_1261064005.70696")
+.sub "_block13" :subid("11_1267204685.44293") :outer("10_1267204685.44293")
.annotate "line", 3
- .const 'Sub' $P434 = "40_1261064005.70696"
- capture_lex $P434
- .const 'Sub' $P417 = "39_1261064005.70696"
- capture_lex $P417
- .const 'Sub' $P410 = "38_1261064005.70696"
- capture_lex $P410
- .const 'Sub' $P403 = "37_1261064005.70696"
- capture_lex $P403
- .const 'Sub' $P396 = "36_1261064005.70696"
- capture_lex $P396
- .const 'Sub' $P389 = "35_1261064005.70696"
- capture_lex $P389
- .const 'Sub' $P379 = "34_1261064005.70696"
- capture_lex $P379
- .const 'Sub' $P372 = "33_1261064005.70696"
- capture_lex $P372
- .const 'Sub' $P356 = "32_1261064005.70696"
- capture_lex $P356
- .const 'Sub' $P281 = "30_1261064005.70696"
- capture_lex $P281
- .const 'Sub' $P222 = "27_1261064005.70696"
+ .const 'Sub' $P521 = "45_1267204685.44293"
+ capture_lex $P521
+ .const 'Sub' $P496 = "43_1267204685.44293"
+ capture_lex $P496
+ .const 'Sub' $P465 = "42_1267204685.44293"
+ capture_lex $P465
+ .const 'Sub' $P455 = "41_1267204685.44293"
+ capture_lex $P455
+ .const 'Sub' $P438 = "40_1267204685.44293"
+ capture_lex $P438
+ .const 'Sub' $P421 = "39_1267204685.44293"
+ capture_lex $P421
+ .const 'Sub' $P414 = "38_1267204685.44293"
+ capture_lex $P414
+ .const 'Sub' $P407 = "37_1267204685.44293"
+ capture_lex $P407
+ .const 'Sub' $P400 = "36_1267204685.44293"
+ capture_lex $P400
+ .const 'Sub' $P393 = "35_1267204685.44293"
+ capture_lex $P393
+ .const 'Sub' $P383 = "34_1267204685.44293"
+ capture_lex $P383
+ .const 'Sub' $P376 = "33_1267204685.44293"
+ capture_lex $P376
+ .const 'Sub' $P360 = "32_1267204685.44293"
+ capture_lex $P360
+ .const 'Sub' $P285 = "30_1267204685.44293"
+ capture_lex $P285
+ .const 'Sub' $P222 = "27_1267204685.44293"
capture_lex $P222
- .const 'Sub' $P213 = "26_1261064005.70696"
+ .const 'Sub' $P213 = "26_1267204685.44293"
capture_lex $P213
- .const 'Sub' $P204 = "25_1261064005.70696"
+ .const 'Sub' $P204 = "25_1267204685.44293"
capture_lex $P204
- .const 'Sub' $P195 = "24_1261064005.70696"
+ .const 'Sub' $P195 = "24_1267204685.44293"
capture_lex $P195
- .const 'Sub' $P186 = "23_1261064005.70696"
+ .const 'Sub' $P186 = "23_1267204685.44293"
capture_lex $P186
- .const 'Sub' $P177 = "22_1261064005.70696"
+ .const 'Sub' $P177 = "22_1267204685.44293"
capture_lex $P177
- .const 'Sub' $P167 = "21_1261064005.70696"
+ .const 'Sub' $P167 = "21_1267204685.44293"
capture_lex $P167
- .const 'Sub' $P157 = "20_1261064005.70696"
+ .const 'Sub' $P157 = "20_1267204685.44293"
capture_lex $P157
- .const 'Sub' $P149 = "19_1261064005.70696"
+ .const 'Sub' $P149 = "19_1267204685.44293"
capture_lex $P149
- .const 'Sub' $P139 = "18_1261064005.70696"
+ .const 'Sub' $P139 = "18_1267204685.44293"
capture_lex $P139
- .const 'Sub' $P129 = "17_1261064005.70696"
+ .const 'Sub' $P129 = "17_1267204685.44293"
capture_lex $P129
- .const 'Sub' $P28 = "14_1261064005.70696"
+ .const 'Sub' $P28 = "14_1267204685.44293"
capture_lex $P28
- .const 'Sub' $P22 = "13_1261064005.70696"
+ .const 'Sub' $P22 = "13_1267204685.44293"
capture_lex $P22
- .const 'Sub' $P15 = "12_1261064005.70696"
+ .const 'Sub' $P15 = "12_1267204685.44293"
capture_lex $P15
-.annotate "line", 163
- .const 'Sub' $P434 = "40_1261064005.70696"
- capture_lex $P434
+.annotate "line", 188
+ .const 'Sub' $P521 = "45_1267204685.44293"
+ capture_lex $P521
.annotate "line", 3
- .return ($P434)
+ .return ($P521)
.end
.namespace ["HLL";"Actions"]
-.sub "string_to_int" :subid("12_1261064005.70696") :outer("11_1261064005.70696")
+.sub "string_to_int" :subid("12_1267204685.44293") :outer("11_1267204685.44293")
.param pmc param_18
.param pmc param_19
.annotate "line", 3
@@ -4426,7 +4434,7 @@
.namespace ["HLL";"Actions"]
-.sub "ints_to_string" :subid("13_1261064005.70696") :outer("11_1261064005.70696")
+.sub "ints_to_string" :subid("13_1267204685.44293") :outer("11_1267204685.44293")
.param pmc param_25
.annotate "line", 37
new $P24, 'ExceptionHandler'
@@ -4467,14 +4475,14 @@
.namespace ["HLL";"Actions"]
-.sub "EXPR" :subid("14_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "EXPR" :subid("14_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_31
.param pmc param_32 :optional
.param int has_param_32 :opt_flag
.annotate "line", 62
- .const 'Sub' $P111 = "16_1261064005.70696"
+ .const 'Sub' $P111 = "16_1267204685.44293"
capture_lex $P111
- .const 'Sub' $P78 = "15_1261064005.70696"
+ .const 'Sub' $P78 = "15_1267204685.44293"
capture_lex $P78
new $P30, 'ExceptionHandler'
set_addr $P30, control_29
@@ -4482,10 +4490,10 @@
push_eh $P30
.lex "self", self
.lex "$/", param_31
- if has_param_32, optparam_42
+ if has_param_32, optparam_47
new $P33, "Undef"
set param_32, $P33
- optparam_42:
+ optparam_47:
.lex "$key", param_32
.annotate "line", 64
new $P34, "Undef"
@@ -4507,13 +4515,13 @@
defined $I43, $P39
if $I43, default_42
find_lex $P44, "$/"
- unless_null $P44, vivify_43
- new $P44, "Hash"
- vivify_43:
+ unless_null $P44, vivify_48
+ $P44 = root_new ['parrot';'Hash']
+ vivify_48:
set $P45, $P44["OPER"]
- unless_null $P45, vivify_44
+ unless_null $P45, vivify_49
new $P45, "Undef"
- vivify_44:
+ vivify_49:
$P46 = $P45."ast"()
set $P39, $P46
default_42:
@@ -4528,57 +4536,57 @@
store_lex "$past", $P51
.annotate "line", 67
find_lex $P53, "$/"
- unless_null $P53, vivify_45
- new $P53, "Hash"
- vivify_45:
+ unless_null $P53, vivify_50
+ $P53 = root_new ['parrot';'Hash']
+ vivify_50:
set $P54, $P53["OPER"]
- unless_null $P54, vivify_46
- new $P54, "Hash"
- vivify_46:
+ unless_null $P54, vivify_51
+ $P54 = root_new ['parrot';'Hash']
+ vivify_51:
set $P55, $P54["O"]
- unless_null $P55, vivify_47
- new $P55, "Hash"
- vivify_47:
+ unless_null $P55, vivify_52
+ $P55 = root_new ['parrot';'Hash']
+ vivify_52:
set $P56, $P55["pasttype"]
- unless_null $P56, vivify_48
+ unless_null $P56, vivify_53
new $P56, "Undef"
- vivify_48:
+ vivify_53:
if $P56, if_52
.annotate "line", 68
find_lex $P64, "$/"
- unless_null $P64, vivify_49
- new $P64, "Hash"
- vivify_49:
+ unless_null $P64, vivify_54
+ $P64 = root_new ['parrot';'Hash']
+ vivify_54:
set $P65, $P64["OPER"]
- unless_null $P65, vivify_50
- new $P65, "Hash"
- vivify_50:
+ unless_null $P65, vivify_55
+ $P65 = root_new ['parrot';'Hash']
+ vivify_55:
set $P66, $P65["O"]
- unless_null $P66, vivify_51
- new $P66, "Hash"
- vivify_51:
+ unless_null $P66, vivify_56
+ $P66 = root_new ['parrot';'Hash']
+ vivify_56:
set $P67, $P66["pirop"]
- unless_null $P67, vivify_52
+ unless_null $P67, vivify_57
new $P67, "Undef"
- vivify_52:
+ vivify_57:
unless $P67, if_63_end
find_lex $P68, "$past"
find_lex $P69, "$/"
- unless_null $P69, vivify_53
- new $P69, "Hash"
- vivify_53:
+ unless_null $P69, vivify_58
+ $P69 = root_new ['parrot';'Hash']
+ vivify_58:
set $P70, $P69["OPER"]
- unless_null $P70, vivify_54
- new $P70, "Hash"
- vivify_54:
+ unless_null $P70, vivify_59
+ $P70 = root_new ['parrot';'Hash']
+ vivify_59:
set $P71, $P70["O"]
- unless_null $P71, vivify_55
- new $P71, "Hash"
- vivify_55:
+ unless_null $P71, vivify_60
+ $P71 = root_new ['parrot';'Hash']
+ vivify_60:
set $P72, $P71["pirop"]
- unless_null $P72, vivify_56
+ unless_null $P72, vivify_61
new $P72, "Undef"
- vivify_56:
+ vivify_61:
set $S73, $P72
$P68."pirop"($S73)
if_63_end:
@@ -4587,21 +4595,21 @@
.annotate "line", 67
find_lex $P57, "$past"
find_lex $P58, "$/"
- unless_null $P58, vivify_57
- new $P58, "Hash"
- vivify_57:
+ unless_null $P58, vivify_62
+ $P58 = root_new ['parrot';'Hash']
+ vivify_62:
set $P59, $P58["OPER"]
- unless_null $P59, vivify_58
- new $P59, "Hash"
- vivify_58:
+ unless_null $P59, vivify_63
+ $P59 = root_new ['parrot';'Hash']
+ vivify_63:
set $P60, $P59["O"]
- unless_null $P60, vivify_59
- new $P60, "Hash"
- vivify_59:
+ unless_null $P60, vivify_64
+ $P60 = root_new ['parrot';'Hash']
+ vivify_64:
set $P61, $P60["pasttype"]
- unless_null $P61, vivify_60
+ unless_null $P61, vivify_65
new $P61, "Undef"
- vivify_60:
+ vivify_65:
set $S62, $P61
$P57."pasttype"($S62)
if_52_end:
@@ -4609,7 +4617,7 @@
find_lex $P75, "$past"
$P76 = $P75."name"()
if $P76, unless_74_end
- .const 'Sub' $P78 = "15_1261064005.70696"
+ .const 'Sub' $P78 = "15_1267204685.44293"
capture_lex $P78
$P78()
unless_74_end:
@@ -4623,7 +4631,7 @@
find_lex $P106, "$/"
$P107 = $P106."list"()
defined $I108, $P107
- unless $I108, for_undef_64
+ unless $I108, for_undef_69
iter $P105, $P107
new $P123, 'ExceptionHandler'
set_addr $P123, loop122_handler
@@ -4633,7 +4641,7 @@
unless $P105, loop122_done
shift $P109, $P105
loop122_redo:
- .const 'Sub' $P111 = "16_1261064005.70696"
+ .const 'Sub' $P111 = "16_1267204685.44293"
capture_lex $P111
$P111($P109)
loop122_next:
@@ -4646,20 +4654,20 @@
eq $P124, 67, loop122_redo
loop122_done:
pop_eh
- for_undef_64:
+ for_undef_69:
.annotate "line", 81
goto if_97_end
if_97:
.annotate "line", 80
find_lex $P101, "$past"
find_lex $P102, "$/"
- unless_null $P102, vivify_65
- new $P102, "ResizablePMCArray"
- vivify_65:
+ unless_null $P102, vivify_70
+ $P102 = root_new ['parrot';'ResizablePMCArray']
+ vivify_70:
set $P103, $P102[0]
- unless_null $P103, vivify_66
+ unless_null $P103, vivify_71
new $P103, "Undef"
- vivify_66:
+ vivify_71:
$P104 = $P103."ast"()
$P101."unshift"($P104)
if_97_end:
@@ -4678,7 +4686,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block77" :anon :subid("15_1261064005.70696") :outer("14_1261064005.70696")
+.sub "_block77" :anon :subid("15_1267204685.44293") :outer("14_1267204685.44293")
.annotate "line", 71
new $P79, "Undef"
.lex "$name", $P79
@@ -4701,17 +4709,17 @@
concat $P86, $P85, ":<"
.annotate "line", 76
find_lex $P87, "$/"
- unless_null $P87, vivify_61
- new $P87, "Hash"
- vivify_61:
+ unless_null $P87, vivify_66
+ $P87 = root_new ['parrot';'Hash']
+ vivify_66:
set $P88, $P87["OPER"]
- unless_null $P88, vivify_62
- new $P88, "Hash"
- vivify_62:
+ unless_null $P88, vivify_67
+ $P88 = root_new ['parrot';'Hash']
+ vivify_67:
set $P89, $P88["sym"]
- unless_null $P89, vivify_63
+ unless_null $P89, vivify_68
new $P89, "Undef"
- vivify_63:
+ vivify_68:
concat $P90, $P86, $P89
concat $P91, $P90, ">"
store_lex "$name", $P91
@@ -4728,7 +4736,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block110" :anon :subid("16_1261064005.70696") :outer("14_1261064005.70696")
+.sub "_block110" :anon :subid("16_1267204685.44293") :outer("14_1267204685.44293")
.param pmc param_112
.annotate "line", 82
.lex "$_", param_112
@@ -4751,7 +4759,7 @@
.namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>" :subid("17_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "term:sym<circumfix>" :subid("17_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_132
.annotate "line", 87
new $P131, 'ExceptionHandler'
@@ -4762,13 +4770,13 @@
.lex "$/", param_132
find_lex $P133, "$/"
find_lex $P134, "$/"
- unless_null $P134, vivify_67
- new $P134, "Hash"
- vivify_67:
+ unless_null $P134, vivify_72
+ $P134 = root_new ['parrot';'Hash']
+ vivify_72:
set $P135, $P134["circumfix"]
- unless_null $P135, vivify_68
+ unless_null $P135, vivify_73
new $P135, "Undef"
- vivify_68:
+ vivify_73:
$P136 = $P135."ast"()
$P137 = $P133."!make"($P136)
.return ($P137)
@@ -4781,7 +4789,7 @@
.namespace ["HLL";"Actions"]
-.sub "termish" :subid("18_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "termish" :subid("18_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_142
.annotate "line", 89
new $P141, 'ExceptionHandler'
@@ -4792,13 +4800,13 @@
.lex "$/", param_142
find_lex $P143, "$/"
find_lex $P144, "$/"
- unless_null $P144, vivify_69
- new $P144, "Hash"
- vivify_69:
+ unless_null $P144, vivify_74
+ $P144 = root_new ['parrot';'Hash']
+ vivify_74:
set $P145, $P144["term"]
- unless_null $P145, vivify_70
+ unless_null $P145, vivify_75
new $P145, "Undef"
- vivify_70:
+ vivify_75:
$P146 = $P145."ast"()
$P147 = $P143."!make"($P146)
.return ($P147)
@@ -4811,7 +4819,7 @@
.namespace ["HLL";"Actions"]
-.sub "nullterm" :subid("19_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "nullterm" :subid("19_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_152
.annotate "line", 90
new $P151, 'ExceptionHandler'
@@ -4833,7 +4841,7 @@
.namespace ["HLL";"Actions"]
-.sub "nullterm_alt" :subid("20_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "nullterm_alt" :subid("20_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_160
.annotate "line", 91
new $P159, 'ExceptionHandler'
@@ -4844,13 +4852,13 @@
.lex "$/", param_160
find_lex $P161, "$/"
find_lex $P162, "$/"
- unless_null $P162, vivify_71
- new $P162, "Hash"
- vivify_71:
+ unless_null $P162, vivify_76
+ $P162 = root_new ['parrot';'Hash']
+ vivify_76:
set $P163, $P162["term"]
- unless_null $P163, vivify_72
+ unless_null $P163, vivify_77
new $P163, "Undef"
- vivify_72:
+ vivify_77:
$P164 = $P163."ast"()
$P165 = $P161."!make"($P164)
.return ($P165)
@@ -4863,7 +4871,7 @@
.namespace ["HLL";"Actions"]
-.sub "integer" :subid("21_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "integer" :subid("21_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_170
.annotate "line", 93
new $P169, 'ExceptionHandler'
@@ -4874,13 +4882,13 @@
.lex "$/", param_170
find_lex $P171, "$/"
find_lex $P172, "$/"
- unless_null $P172, vivify_73
- new $P172, "Hash"
- vivify_73:
+ unless_null $P172, vivify_78
+ $P172 = root_new ['parrot';'Hash']
+ vivify_78:
set $P173, $P172["VALUE"]
- unless_null $P173, vivify_74
+ unless_null $P173, vivify_79
new $P173, "Undef"
- vivify_74:
+ vivify_79:
$P174 = $P173."ast"()
$P175 = $P171."!make"($P174)
.return ($P175)
@@ -4893,7 +4901,7 @@
.namespace ["HLL";"Actions"]
-.sub "dec_number" :subid("22_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "dec_number" :subid("22_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_180
.annotate "line", 95
new $P179, 'ExceptionHandler'
@@ -4916,7 +4924,7 @@
.namespace ["HLL";"Actions"]
-.sub "decint" :subid("23_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "decint" :subid("23_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_189
.annotate "line", 97
new $P188, 'ExceptionHandler'
@@ -4939,7 +4947,7 @@
.namespace ["HLL";"Actions"]
-.sub "hexint" :subid("24_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "hexint" :subid("24_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_198
.annotate "line", 98
new $P197, 'ExceptionHandler'
@@ -4962,7 +4970,7 @@
.namespace ["HLL";"Actions"]
-.sub "octint" :subid("25_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "octint" :subid("25_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_207
.annotate "line", 99
new $P206, 'ExceptionHandler'
@@ -4985,7 +4993,7 @@
.namespace ["HLL";"Actions"]
-.sub "binint" :subid("26_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "binint" :subid("26_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_216
.annotate "line", 100
new $P215, 'ExceptionHandler'
@@ -5008,10 +5016,10 @@
.namespace ["HLL";"Actions"]
-.sub "quote_EXPR" :subid("27_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_EXPR" :subid("27_1267204685.44293") :method :outer("11_1267204685.44293")
.param pmc param_225
.annotate "line", 102
- .const 'Sub' $P241 = "28_1261064005.70696"
+ .const 'Sub' $P241 = "28_1267204685.44293"
capture_lex $P241
new $P224, 'ExceptionHandler'
set_addr $P224, control_223
@@ -5023,13 +5031,13 @@
new $P226, "Undef"
.lex "$past", $P226
find_lex $P227, "$/"
- unless_null $P227, vivify_75
- new $P227, "Hash"
- vivify_75:
+ unless_null $P227, vivify_80
+ $P227 = root_new ['parrot';'Hash']
+ vivify_80:
set $P228, $P227["quote_delimited"]
- unless_null $P228, vivify_76
+ unless_null $P228, vivify_81
new $P228, "Undef"
- vivify_76:
+ vivify_81:
$P229 = $P228."ast"()
store_lex "$past", $P229
.annotate "line", 104
@@ -5043,7 +5051,7 @@
$P237 = $P235."ACCEPTS"($P236)
if $P237, if_234
.annotate "line", 108
- .const 'Sub' $P241 = "28_1261064005.70696"
+ .const 'Sub' $P241 = "28_1267204685.44293"
capture_lex $P241
$P241()
goto if_234_end
@@ -5054,40 +5062,40 @@
$P239."panic"("Can't form :w list from non-constant strings (yet)")
if_234_end:
if_230_end:
-.annotate "line", 116
- get_hll_global $P269, ["PAST"], "Node"
- find_lex $P270, "$past"
- $P271 = $P269."ACCEPTS"($P270)
- isfalse $I272, $P271
- unless $I272, if_268_end
-.annotate "line", 117
- get_hll_global $P273, ["PAST"], "Val"
- find_lex $P274, "$past"
- set $S275, $P274
- $P276 = $P273."new"($S275 :named("value"))
- store_lex "$past", $P276
- if_268_end:
.annotate "line", 119
- find_lex $P277, "$/"
+ get_hll_global $P273, ["PAST"], "Node"
+ find_lex $P274, "$past"
+ $P275 = $P273."ACCEPTS"($P274)
+ isfalse $I276, $P275
+ unless $I276, if_272_end
+.annotate "line", 120
+ get_hll_global $P277, ["PAST"], "Val"
find_lex $P278, "$past"
- $P279 = $P277."!make"($P278)
+ set $S279, $P278
+ $P280 = $P277."new"($S279 :named("value"))
+ store_lex "$past", $P280
+ if_272_end:
+.annotate "line", 122
+ find_lex $P281, "$/"
+ find_lex $P282, "$past"
+ $P283 = $P281."!make"($P282)
.annotate "line", 102
- .return ($P279)
+ .return ($P283)
control_223:
.local pmc exception
.get_results (exception)
- getattribute $P280, exception, "payload"
- .return ($P280)
+ getattribute $P284, exception, "payload"
+ .return ($P284)
.end
.namespace ["HLL";"Actions"]
-.sub "_block240" :anon :subid("28_1261064005.70696") :outer("27_1261064005.70696")
+.sub "_block240" :anon :subid("28_1267204685.44293") :outer("27_1267204685.44293")
.annotate "line", 108
- .const 'Sub' $P260 = "29_1261064005.70696"
+ .const 'Sub' $P260 = "29_1267204685.44293"
capture_lex $P260
.annotate "line", 109
- new $P242, "ResizablePMCArray"
+ $P242 = root_new ['parrot';'ResizablePMCArray']
.lex "@words", $P242
get_hll_global $P243, ["HLL";"Grammar"], "split_words"
find_lex $P244, "$/"
@@ -5099,8 +5107,22 @@
set $N250, $P249
isgt $I251, $N250, 1.0
if $I251, if_248
- new $P247, 'Integer'
- set $P247, $I251
+.annotate "line", 115
+ find_lex $P268, "@words"
+ unless_null $P268, vivify_82
+ $P268 = root_new ['parrot';'ResizablePMCArray']
+ vivify_82:
+ set $P269, $P268[0]
+ unless_null $P269, vivify_83
+ new $P269, "Undef"
+ vivify_83:
+ set $S270, $P269
+ new $P271, 'String'
+ set $P271, $S270
+ store_lex "$past", $P271
+.annotate "line", 114
+ set $P247, $P271
+.annotate "line", 110
goto if_248_end
if_248:
.annotate "line", 111
@@ -5111,7 +5133,7 @@
.annotate "line", 112
find_lex $P256, "@words"
defined $I257, $P256
- unless $I257, for_undef_77
+ unless $I257, for_undef_84
iter $P255, $P256
new $P266, 'ExceptionHandler'
set_addr $P266, loop265_handler
@@ -5121,7 +5143,7 @@
unless $P255, loop265_done
shift $P258, $P255
loop265_redo:
- .const 'Sub' $P260 = "29_1261064005.70696"
+ .const 'Sub' $P260 = "29_1267204685.44293"
capture_lex $P260
$P260($P258)
loop265_next:
@@ -5134,7 +5156,7 @@
eq $P267, 67, loop265_redo
loop265_done:
pop_eh
- for_undef_77:
+ for_undef_84:
.annotate "line", 110
set $P247, $P255
if_248_end:
@@ -5144,7 +5166,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block259" :anon :subid("29_1261064005.70696") :outer("28_1261064005.70696")
+.sub "_block259" :anon :subid("29_1267204685.44293") :outer("28_1267204685.44293")
.param pmc param_261
.annotate "line", 112
.lex "$_", param_261
@@ -5156,501 +5178,736 @@
.namespace ["HLL";"Actions"]
-.sub "quote_delimited" :subid("30_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_284
-.annotate "line", 122
- .const 'Sub' $P296 = "31_1261064005.70696"
- capture_lex $P296
- new $P283, 'ExceptionHandler'
- set_addr $P283, control_282
- $P283."handle_types"(58)
- push_eh $P283
+.sub "quote_delimited" :subid("30_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_288
+.annotate "line", 125
+ .const 'Sub' $P300 = "31_1267204685.44293"
+ capture_lex $P300
+ new $P287, 'ExceptionHandler'
+ set_addr $P287, control_286
+ $P287."handle_types"(58)
+ push_eh $P287
.lex "self", self
- .lex "$/", param_284
-.annotate "line", 123
- new $P285, "ResizablePMCArray"
- .lex "@parts", $P285
-.annotate "line", 124
- new $P286, "Undef"
- .lex "$lastlit", $P286
-.annotate "line", 140
- new $P287, "Undef"
- .lex "$past", $P287
-.annotate "line", 122
- find_lex $P288, "@parts"
-.annotate "line", 124
- new $P289, "String"
- assign $P289, ""
- store_lex "$lastlit", $P289
+ .lex "$/", param_288
+.annotate "line", 126
+ $P289 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@parts", $P289
+.annotate "line", 127
+ new $P290, "Undef"
+ .lex "$lastlit", $P290
+.annotate "line", 143
+ new $P291, "Undef"
+ .lex "$past", $P291
.annotate "line", 125
- find_lex $P291, "$/"
- unless_null $P291, vivify_78
- new $P291, "Hash"
- vivify_78:
- set $P292, $P291["quote_atom"]
- unless_null $P292, vivify_79
- new $P292, "Undef"
- vivify_79:
- defined $I293, $P292
- unless $I293, for_undef_80
- iter $P290, $P292
- new $P329, 'ExceptionHandler'
- set_addr $P329, loop328_handler
- $P329."handle_types"(65, 67, 66)
- push_eh $P329
- loop328_test:
- unless $P290, loop328_done
- shift $P294, $P290
- loop328_redo:
- .const 'Sub' $P296 = "31_1261064005.70696"
- capture_lex $P296
- $P296($P294)
- loop328_next:
- goto loop328_test
- loop328_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P330, exception, 'type'
- eq $P330, 65, loop328_next
- eq $P330, 67, loop328_redo
- loop328_done:
+ find_lex $P292, "@parts"
+.annotate "line", 127
+ new $P293, "String"
+ assign $P293, ""
+ store_lex "$lastlit", $P293
+.annotate "line", 128
+ find_lex $P295, "$/"
+ unless_null $P295, vivify_85
+ $P295 = root_new ['parrot';'Hash']
+ vivify_85:
+ set $P296, $P295["quote_atom"]
+ unless_null $P296, vivify_86
+ new $P296, "Undef"
+ vivify_86:
+ defined $I297, $P296
+ unless $I297, for_undef_87
+ iter $P294, $P296
+ new $P333, 'ExceptionHandler'
+ set_addr $P333, loop332_handler
+ $P333."handle_types"(65, 67, 66)
+ push_eh $P333
+ loop332_test:
+ unless $P294, loop332_done
+ shift $P298, $P294
+ loop332_redo:
+ .const 'Sub' $P300 = "31_1267204685.44293"
+ capture_lex $P300
+ $P300($P298)
+ loop332_next:
+ goto loop332_test
+ loop332_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P334, exception, 'type'
+ eq $P334, 65, loop332_next
+ eq $P334, 67, loop332_redo
+ loop332_done:
pop_eh
- for_undef_80:
-.annotate "line", 139
- find_lex $P332, "$lastlit"
- set $S333, $P332
- isgt $I334, $S333, ""
- unless $I334, if_331_end
- find_lex $P335, "@parts"
+ for_undef_87:
+.annotate "line", 142
find_lex $P336, "$lastlit"
- $P335."push"($P336)
- if_331_end:
-.annotate "line", 140
+ set $S337, $P336
+ isgt $I338, $S337, ""
+ unless $I338, if_335_end
find_lex $P339, "@parts"
- if $P339, if_338
- new $P342, "String"
- assign $P342, ""
- set $P337, $P342
- goto if_338_end
- if_338:
- find_lex $P340, "@parts"
- $P341 = $P340."shift"()
- set $P337, $P341
- if_338_end:
- store_lex "$past", $P337
-.annotate "line", 141
- new $P350, 'ExceptionHandler'
- set_addr $P350, loop349_handler
- $P350."handle_types"(65, 67, 66)
- push_eh $P350
- loop349_test:
+ find_lex $P340, "$lastlit"
+ $P339."push"($P340)
+ if_335_end:
+.annotate "line", 143
find_lex $P343, "@parts"
- unless $P343, loop349_done
- loop349_redo:
-.annotate "line", 142
- get_hll_global $P344, ["PAST"], "Op"
- find_lex $P345, "$past"
- find_lex $P346, "@parts"
- $P347 = $P346."shift"()
- $P348 = $P344."new"($P345, $P347, "concat" :named("pirop"))
- store_lex "$past", $P348
- loop349_next:
-.annotate "line", 141
- goto loop349_test
- loop349_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P351, exception, 'type'
- eq $P351, 65, loop349_next
- eq $P351, 67, loop349_redo
- loop349_done:
- pop_eh
+ if $P343, if_342
+ new $P346, "String"
+ assign $P346, ""
+ set $P341, $P346
+ goto if_342_end
+ if_342:
+ find_lex $P344, "@parts"
+ $P345 = $P344."shift"()
+ set $P341, $P345
+ if_342_end:
+ store_lex "$past", $P341
.annotate "line", 144
- find_lex $P352, "$/"
- find_lex $P353, "$past"
- $P354 = $P352."!make"($P353)
-.annotate "line", 122
- .return ($P354)
- control_282:
+ new $P354, 'ExceptionHandler'
+ set_addr $P354, loop353_handler
+ $P354."handle_types"(65, 67, 66)
+ push_eh $P354
+ loop353_test:
+ find_lex $P347, "@parts"
+ unless $P347, loop353_done
+ loop353_redo:
+.annotate "line", 145
+ get_hll_global $P348, ["PAST"], "Op"
+ find_lex $P349, "$past"
+ find_lex $P350, "@parts"
+ $P351 = $P350."shift"()
+ $P352 = $P348."new"($P349, $P351, "concat" :named("pirop"))
+ store_lex "$past", $P352
+ loop353_next:
+.annotate "line", 144
+ goto loop353_test
+ loop353_handler:
.local pmc exception
.get_results (exception)
- getattribute $P355, exception, "payload"
- .return ($P355)
+ getattribute $P355, exception, 'type'
+ eq $P355, 65, loop353_next
+ eq $P355, 67, loop353_redo
+ loop353_done:
+ pop_eh
+.annotate "line", 147
+ find_lex $P356, "$/"
+ find_lex $P357, "$past"
+ $P358 = $P356."!make"($P357)
+.annotate "line", 125
+ .return ($P358)
+ control_286:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P359, exception, "payload"
+ .return ($P359)
.end
.namespace ["HLL";"Actions"]
-.sub "_block295" :anon :subid("31_1261064005.70696") :outer("30_1261064005.70696")
- .param pmc param_298
-.annotate "line", 126
- new $P297, "Undef"
- .lex "$ast", $P297
- .lex "$_", param_298
- find_lex $P299, "$_"
- $P300 = $P299."ast"()
- store_lex "$ast", $P300
-.annotate "line", 127
- get_hll_global $P303, ["PAST"], "Node"
- find_lex $P304, "$ast"
- $P305 = $P303."ACCEPTS"($P304)
- isfalse $I306, $P305
- if $I306, if_302
+.sub "_block299" :anon :subid("31_1267204685.44293") :outer("30_1267204685.44293")
+ .param pmc param_302
+.annotate "line", 129
+ new $P301, "Undef"
+ .lex "$ast", $P301
+ .lex "$_", param_302
+ find_lex $P303, "$_"
+ $P304 = $P303."ast"()
+ store_lex "$ast", $P304
.annotate "line", 130
- find_lex $P312, "$ast"
- get_hll_global $P313, ["PAST"], "Val"
- $P314 = $P312."isa"($P313)
- if $P314, if_311
-.annotate "line", 134
- find_lex $P320, "$lastlit"
- set $S321, $P320
- isgt $I322, $S321, ""
- unless $I322, if_319_end
- find_lex $P323, "@parts"
+ get_hll_global $P307, ["PAST"], "Node"
+ find_lex $P308, "$ast"
+ $P309 = $P307."ACCEPTS"($P308)
+ isfalse $I310, $P309
+ if $I310, if_306
+.annotate "line", 133
+ find_lex $P316, "$ast"
+ get_hll_global $P317, ["PAST"], "Val"
+ $P318 = $P316."isa"($P317)
+ if $P318, if_315
+.annotate "line", 137
find_lex $P324, "$lastlit"
- $P323."push"($P324)
- if_319_end:
-.annotate "line", 135
- find_lex $P325, "@parts"
- find_lex $P326, "$ast"
- $P325."push"($P326)
+ set $S325, $P324
+ isgt $I326, $S325, ""
+ unless $I326, if_323_end
+ find_lex $P327, "@parts"
+ find_lex $P328, "$lastlit"
+ $P327."push"($P328)
+ if_323_end:
+.annotate "line", 138
+ find_lex $P329, "@parts"
+ find_lex $P330, "$ast"
+ $P329."push"($P330)
+.annotate "line", 139
+ new $P331, "String"
+ assign $P331, ""
+ store_lex "$lastlit", $P331
.annotate "line", 136
- new $P327, "String"
- assign $P327, ""
- store_lex "$lastlit", $P327
+ set $P314, $P331
+.annotate "line", 133
+ goto if_315_end
+ if_315:
+.annotate "line", 134
+ find_lex $P319, "$lastlit"
+ find_lex $P320, "$ast"
+ $S321 = $P320."value"()
+ concat $P322, $P319, $S321
+ store_lex "$lastlit", $P322
.annotate "line", 133
- set $P310, $P327
+ set $P314, $P322
+ if_315_end:
+ set $P305, $P314
.annotate "line", 130
- goto if_311_end
- if_311:
+ goto if_306_end
+ if_306:
.annotate "line", 131
- find_lex $P315, "$lastlit"
- find_lex $P316, "$ast"
- $S317 = $P316."value"()
- concat $P318, $P315, $S317
- store_lex "$lastlit", $P318
+ find_lex $P311, "$lastlit"
+ find_lex $P312, "$ast"
+ concat $P313, $P311, $P312
+ store_lex "$lastlit", $P313
.annotate "line", 130
- set $P310, $P318
- if_311_end:
- set $P301, $P310
-.annotate "line", 127
- goto if_302_end
- if_302:
+ set $P305, $P313
+ if_306_end:
.annotate "line", 128
- find_lex $P307, "$lastlit"
- find_lex $P308, "$ast"
- concat $P309, $P307, $P308
- store_lex "$lastlit", $P309
-.annotate "line", 127
- set $P301, $P309
- if_302_end:
-.annotate "line", 125
- .return ($P301)
+ .return ($P305)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_atom" :subid("32_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_359
-.annotate "line", 147
- new $P358, 'ExceptionHandler'
- set_addr $P358, control_357
- $P358."handle_types"(58)
- push_eh $P358
+.sub "quote_atom" :subid("32_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_363
+.annotate "line", 150
+ new $P362, 'ExceptionHandler'
+ set_addr $P362, control_361
+ $P362."handle_types"(58)
+ push_eh $P362
.lex "self", self
- .lex "$/", param_359
-.annotate "line", 148
- find_lex $P360, "$/"
- find_lex $P363, "$/"
- unless_null $P363, vivify_81
- new $P363, "Hash"
- vivify_81:
- set $P364, $P363["quote_escape"]
- unless_null $P364, vivify_82
- new $P364, "Undef"
- vivify_82:
- if $P364, if_362
- find_lex $P368, "$/"
- set $S369, $P368
- new $P361, 'String'
- set $P361, $S369
- goto if_362_end
- if_362:
- find_lex $P365, "$/"
- unless_null $P365, vivify_83
- new $P365, "Hash"
- vivify_83:
- set $P366, $P365["quote_escape"]
- unless_null $P366, vivify_84
- new $P366, "Undef"
- vivify_84:
- $P367 = $P366."ast"()
- set $P361, $P367
- if_362_end:
- $P370 = $P360."!make"($P361)
-.annotate "line", 147
- .return ($P370)
- control_357:
+ .lex "$/", param_363
+.annotate "line", 151
+ find_lex $P364, "$/"
+ find_lex $P367, "$/"
+ unless_null $P367, vivify_88
+ $P367 = root_new ['parrot';'Hash']
+ vivify_88:
+ set $P368, $P367["quote_escape"]
+ unless_null $P368, vivify_89
+ new $P368, "Undef"
+ vivify_89:
+ if $P368, if_366
+ find_lex $P372, "$/"
+ set $S373, $P372
+ new $P365, 'String'
+ set $P365, $S373
+ goto if_366_end
+ if_366:
+ find_lex $P369, "$/"
+ unless_null $P369, vivify_90
+ $P369 = root_new ['parrot';'Hash']
+ vivify_90:
+ set $P370, $P369["quote_escape"]
+ unless_null $P370, vivify_91
+ new $P370, "Undef"
+ vivify_91:
+ $P371 = $P370."ast"()
+ set $P365, $P371
+ if_366_end:
+ $P374 = $P364."!make"($P365)
+.annotate "line", 150
+ .return ($P374)
+ control_361:
.local pmc exception
.get_results (exception)
- getattribute $P371, exception, "payload"
- .return ($P371)
+ getattribute $P375, exception, "payload"
+ .return ($P375)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>" :subid("33_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_375
-.annotate "line", 151
- new $P374, 'ExceptionHandler'
- set_addr $P374, control_373
- $P374."handle_types"(58)
- push_eh $P374
+.sub "quote_escape:sym<backslash>" :subid("33_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_379
+.annotate "line", 154
+ new $P378, 'ExceptionHandler'
+ set_addr $P378, control_377
+ $P378."handle_types"(58)
+ push_eh $P378
.lex "self", self
- .lex "$/", param_375
- find_lex $P376, "$/"
- $P377 = $P376."!make"("\\")
- .return ($P377)
- control_373:
+ .lex "$/", param_379
+ find_lex $P380, "$/"
+ $P381 = $P380."!make"("\\")
+ .return ($P381)
+ control_377:
.local pmc exception
.get_results (exception)
- getattribute $P378, exception, "payload"
- .return ($P378)
+ getattribute $P382, exception, "payload"
+ .return ($P382)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>" :subid("34_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_382
-.annotate "line", 152
- new $P381, 'ExceptionHandler'
- set_addr $P381, control_380
- $P381."handle_types"(58)
- push_eh $P381
+.sub "quote_escape:sym<stopper>" :subid("34_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_386
+.annotate "line", 155
+ new $P385, 'ExceptionHandler'
+ set_addr $P385, control_384
+ $P385."handle_types"(58)
+ push_eh $P385
.lex "self", self
- .lex "$/", param_382
- find_lex $P383, "$/"
- find_lex $P384, "$/"
- unless_null $P384, vivify_85
- new $P384, "Hash"
- vivify_85:
- set $P385, $P384["stopper"]
- unless_null $P385, vivify_86
- new $P385, "Undef"
- vivify_86:
- set $S386, $P385
- $P387 = $P383."!make"($S386)
- .return ($P387)
- control_380:
+ .lex "$/", param_386
+ find_lex $P387, "$/"
+ find_lex $P388, "$/"
+ unless_null $P388, vivify_92
+ $P388 = root_new ['parrot';'Hash']
+ vivify_92:
+ set $P389, $P388["stopper"]
+ unless_null $P389, vivify_93
+ new $P389, "Undef"
+ vivify_93:
+ set $S390, $P389
+ $P391 = $P387."!make"($S390)
+ .return ($P391)
+ control_384:
.local pmc exception
.get_results (exception)
- getattribute $P388, exception, "payload"
- .return ($P388)
+ getattribute $P392, exception, "payload"
+ .return ($P392)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>" :subid("35_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_392
-.annotate "line", 154
- new $P391, 'ExceptionHandler'
- set_addr $P391, control_390
- $P391."handle_types"(58)
- push_eh $P391
+.sub "quote_escape:sym<bs>" :subid("35_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_396
+.annotate "line", 157
+ new $P395, 'ExceptionHandler'
+ set_addr $P395, control_394
+ $P395."handle_types"(58)
+ push_eh $P395
.lex "self", self
- .lex "$/", param_392
- find_lex $P393, "$/"
- $P394 = $P393."!make"("\b")
- .return ($P394)
- control_390:
+ .lex "$/", param_396
+ find_lex $P397, "$/"
+ $P398 = $P397."!make"("\b")
+ .return ($P398)
+ control_394:
.local pmc exception
.get_results (exception)
- getattribute $P395, exception, "payload"
- .return ($P395)
+ getattribute $P399, exception, "payload"
+ .return ($P399)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>" :subid("36_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_399
-.annotate "line", 155
- new $P398, 'ExceptionHandler'
- set_addr $P398, control_397
- $P398."handle_types"(58)
- push_eh $P398
+.sub "quote_escape:sym<nl>" :subid("36_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_403
+.annotate "line", 158
+ new $P402, 'ExceptionHandler'
+ set_addr $P402, control_401
+ $P402."handle_types"(58)
+ push_eh $P402
.lex "self", self
- .lex "$/", param_399
- find_lex $P400, "$/"
- $P401 = $P400."!make"("\n")
- .return ($P401)
- control_397:
+ .lex "$/", param_403
+ find_lex $P404, "$/"
+ $P405 = $P404."!make"("\n")
+ .return ($P405)
+ control_401:
.local pmc exception
.get_results (exception)
- getattribute $P402, exception, "payload"
- .return ($P402)
+ getattribute $P406, exception, "payload"
+ .return ($P406)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>" :subid("37_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_406
-.annotate "line", 156
- new $P405, 'ExceptionHandler'
- set_addr $P405, control_404
- $P405."handle_types"(58)
- push_eh $P405
+.sub "quote_escape:sym<cr>" :subid("37_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_410
+.annotate "line", 159
+ new $P409, 'ExceptionHandler'
+ set_addr $P409, control_408
+ $P409."handle_types"(58)
+ push_eh $P409
.lex "self", self
- .lex "$/", param_406
- find_lex $P407, "$/"
- $P408 = $P407."!make"("\r")
- .return ($P408)
- control_404:
+ .lex "$/", param_410
+ find_lex $P411, "$/"
+ $P412 = $P411."!make"("\r")
+ .return ($P412)
+ control_408:
.local pmc exception
.get_results (exception)
- getattribute $P409, exception, "payload"
- .return ($P409)
+ getattribute $P413, exception, "payload"
+ .return ($P413)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>" :subid("38_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_413
-.annotate "line", 157
- new $P412, 'ExceptionHandler'
- set_addr $P412, control_411
- $P412."handle_types"(58)
- push_eh $P412
+.sub "quote_escape:sym<tab>" :subid("38_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_417
+.annotate "line", 160
+ new $P416, 'ExceptionHandler'
+ set_addr $P416, control_415
+ $P416."handle_types"(58)
+ push_eh $P416
.lex "self", self
- .lex "$/", param_413
- find_lex $P414, "$/"
- $P415 = $P414."!make"("\t")
- .return ($P415)
- control_411:
+ .lex "$/", param_417
+ find_lex $P418, "$/"
+ $P419 = $P418."!make"("\t")
+ .return ($P419)
+ control_415:
.local pmc exception
.get_results (exception)
- getattribute $P416, exception, "payload"
- .return ($P416)
+ getattribute $P420, exception, "payload"
+ .return ($P420)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>" :subid("39_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_420
-.annotate "line", 159
- new $P419, 'ExceptionHandler'
- set_addr $P419, control_418
- $P419."handle_types"(58)
- push_eh $P419
+.sub "quote_escape:sym<hex>" :subid("39_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_424
+.annotate "line", 162
+ new $P423, 'ExceptionHandler'
+ set_addr $P423, control_422
+ $P423."handle_types"(58)
+ push_eh $P423
.lex "self", self
- .lex "$/", param_420
-.annotate "line", 160
- find_lex $P421, "$/"
- find_lex $P424, "$/"
- unless_null $P424, vivify_87
- new $P424, "Hash"
- vivify_87:
- set $P425, $P424["hexint"]
- unless_null $P425, vivify_88
- new $P425, "Undef"
- vivify_88:
- if $P425, if_423
+ .lex "$/", param_424
+.annotate "line", 163
+ find_lex $P425, "$/"
find_lex $P428, "$/"
- unless_null $P428, vivify_89
- new $P428, "Hash"
- vivify_89:
- set $P429, $P428["hexints"]
- unless_null $P429, vivify_90
- new $P429, "Hash"
- vivify_90:
- set $P430, $P429["hexint"]
- unless_null $P430, vivify_91
- new $P430, "Undef"
- vivify_91:
- set $P422, $P430
- goto if_423_end
- if_423:
- find_lex $P426, "$/"
- unless_null $P426, vivify_92
- new $P426, "Hash"
- vivify_92:
- set $P427, $P426["hexint"]
- unless_null $P427, vivify_93
- new $P427, "Undef"
- vivify_93:
- set $P422, $P427
- if_423_end:
- $P431 = "ints_to_string"($P422)
- $P432 = $P421."!make"($P431)
-.annotate "line", 159
- .return ($P432)
- control_418:
+ unless_null $P428, vivify_94
+ $P428 = root_new ['parrot';'Hash']
+ vivify_94:
+ set $P429, $P428["hexint"]
+ unless_null $P429, vivify_95
+ new $P429, "Undef"
+ vivify_95:
+ if $P429, if_427
+ find_lex $P432, "$/"
+ unless_null $P432, vivify_96
+ $P432 = root_new ['parrot';'Hash']
+ vivify_96:
+ set $P433, $P432["hexints"]
+ unless_null $P433, vivify_97
+ $P433 = root_new ['parrot';'Hash']
+ vivify_97:
+ set $P434, $P433["hexint"]
+ unless_null $P434, vivify_98
+ new $P434, "Undef"
+ vivify_98:
+ set $P426, $P434
+ goto if_427_end
+ if_427:
+ find_lex $P430, "$/"
+ unless_null $P430, vivify_99
+ $P430 = root_new ['parrot';'Hash']
+ vivify_99:
+ set $P431, $P430["hexint"]
+ unless_null $P431, vivify_100
+ new $P431, "Undef"
+ vivify_100:
+ set $P426, $P431
+ if_427_end:
+ $P435 = "ints_to_string"($P426)
+ $P436 = $P425."!make"($P435)
+.annotate "line", 162
+ .return ($P436)
+ control_422:
.local pmc exception
.get_results (exception)
- getattribute $P433, exception, "payload"
- .return ($P433)
+ getattribute $P437, exception, "payload"
+ .return ($P437)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>" :subid("40_1261064005.70696") :method :outer("11_1261064005.70696")
- .param pmc param_437
-.annotate "line", 163
- new $P436, 'ExceptionHandler'
- set_addr $P436, control_435
- $P436."handle_types"(58)
- push_eh $P436
+.sub "quote_escape:sym<oct>" :subid("40_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_441
+.annotate "line", 166
+ new $P440, 'ExceptionHandler'
+ set_addr $P440, control_439
+ $P440."handle_types"(58)
+ push_eh $P440
.lex "self", self
- .lex "$/", param_437
-.annotate "line", 164
- find_lex $P438, "$/"
- find_lex $P441, "$/"
- unless_null $P441, vivify_94
- new $P441, "Hash"
- vivify_94:
- set $P442, $P441["octint"]
- unless_null $P442, vivify_95
- new $P442, "Undef"
- vivify_95:
- if $P442, if_440
+ .lex "$/", param_441
+.annotate "line", 167
+ find_lex $P442, "$/"
find_lex $P445, "$/"
- unless_null $P445, vivify_96
- new $P445, "Hash"
- vivify_96:
- set $P446, $P445["octints"]
- unless_null $P446, vivify_97
- new $P446, "Hash"
- vivify_97:
- set $P447, $P446["octint"]
- unless_null $P447, vivify_98
- new $P447, "Undef"
- vivify_98:
- set $P439, $P447
- goto if_440_end
- if_440:
- find_lex $P443, "$/"
- unless_null $P443, vivify_99
- new $P443, "Hash"
- vivify_99:
- set $P444, $P443["octint"]
- unless_null $P444, vivify_100
- new $P444, "Undef"
- vivify_100:
- set $P439, $P444
- if_440_end:
- $P448 = "ints_to_string"($P439)
- $P449 = $P438."!make"($P448)
-.annotate "line", 163
- .return ($P449)
- control_435:
+ unless_null $P445, vivify_101
+ $P445 = root_new ['parrot';'Hash']
+ vivify_101:
+ set $P446, $P445["octint"]
+ unless_null $P446, vivify_102
+ new $P446, "Undef"
+ vivify_102:
+ if $P446, if_444
+ find_lex $P449, "$/"
+ unless_null $P449, vivify_103
+ $P449 = root_new ['parrot';'Hash']
+ vivify_103:
+ set $P450, $P449["octints"]
+ unless_null $P450, vivify_104
+ $P450 = root_new ['parrot';'Hash']
+ vivify_104:
+ set $P451, $P450["octint"]
+ unless_null $P451, vivify_105
+ new $P451, "Undef"
+ vivify_105:
+ set $P443, $P451
+ goto if_444_end
+ if_444:
+ find_lex $P447, "$/"
+ unless_null $P447, vivify_106
+ $P447 = root_new ['parrot';'Hash']
+ vivify_106:
+ set $P448, $P447["octint"]
+ unless_null $P448, vivify_107
+ new $P448, "Undef"
+ vivify_107:
+ set $P443, $P448
+ if_444_end:
+ $P452 = "ints_to_string"($P443)
+ $P453 = $P442."!make"($P452)
+.annotate "line", 166
+ .return ($P453)
+ control_439:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P454, exception, "payload"
+ .return ($P454)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "quote_escape:sym<chr>" :subid("41_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_458
+.annotate "line", 170
+ new $P457, 'ExceptionHandler'
+ set_addr $P457, control_456
+ $P457."handle_types"(58)
+ push_eh $P457
+ .lex "self", self
+ .lex "$/", param_458
+.annotate "line", 171
+ find_lex $P459, "$/"
+ find_lex $P460, "$/"
+ unless_null $P460, vivify_108
+ $P460 = root_new ['parrot';'Hash']
+ vivify_108:
+ set $P461, $P460["charspec"]
+ unless_null $P461, vivify_109
+ new $P461, "Undef"
+ vivify_109:
+ $P462 = $P461."ast"()
+ $P463 = $P459."!make"($P462)
+.annotate "line", 170
+ .return ($P463)
+ control_456:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P464, exception, "payload"
+ .return ($P464)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charname" :subid("42_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_468
+.annotate "line", 174
+ new $P467, 'ExceptionHandler'
+ set_addr $P467, control_466
+ $P467."handle_types"(58)
+ push_eh $P467
+ .lex "self", self
+ .lex "$/", param_468
+.annotate "line", 175
+ new $P469, "Undef"
+ .lex "$codepoint", $P469
+.annotate "line", 176
+ find_lex $P472, "$/"
+ unless_null $P472, vivify_110
+ $P472 = root_new ['parrot';'Hash']
+ vivify_110:
+ set $P473, $P472["integer"]
+ unless_null $P473, vivify_111
+ new $P473, "Undef"
+ vivify_111:
+ if $P473, if_471
+.annotate "line", 177
+ $P477 = new ['CodeString']
+ find_lex $P478, "$/"
+ set $S479, $P478
+ $P480 = $P477."charname_to_ord"($S479)
+ set $P470, $P480
+.annotate "line", 176
+ goto if_471_end
+ if_471:
+ find_lex $P474, "$/"
+ unless_null $P474, vivify_112
+ $P474 = root_new ['parrot';'Hash']
+ vivify_112:
+ set $P475, $P474["integer"]
+ unless_null $P475, vivify_113
+ new $P475, "Undef"
+ vivify_113:
+ $P476 = $P475."ast"()
+ set $P470, $P476
+ if_471_end:
+ store_lex "$codepoint", $P470
+.annotate "line", 178
+ find_lex $P482, "$codepoint"
+ set $N483, $P482
+ islt $I484, $N483, 0.0
+ unless $I484, if_481_end
+ find_lex $P485, "$/"
+ $P486 = $P485."CURSOR"()
+ new $P487, 'String'
+ set $P487, "Unrecognized character name "
+ find_lex $P488, "$/"
+ concat $P489, $P487, $P488
+ $P486."panic"($P489)
+ if_481_end:
+.annotate "line", 179
+ find_lex $P490, "$/"
+ find_lex $P491, "$codepoint"
+ set $I492, $P491
+ chr $S493, $I492
+ $P494 = $P490."!make"($S493)
+.annotate "line", 174
+ .return ($P494)
+ control_466:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P495, exception, "payload"
+ .return ($P495)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charnames" :subid("43_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_499
+.annotate "line", 182
+ .const 'Sub' $P508 = "44_1267204685.44293"
+ capture_lex $P508
+ new $P498, 'ExceptionHandler'
+ set_addr $P498, control_497
+ $P498."handle_types"(58)
+ push_eh $P498
+ .lex "self", self
+ .lex "$/", param_499
+.annotate "line", 183
+ new $P500, "Undef"
+ .lex "$str", $P500
+ new $P501, "String"
+ assign $P501, ""
+ store_lex "$str", $P501
+.annotate "line", 184
+ find_lex $P503, "$/"
+ unless_null $P503, vivify_114
+ $P503 = root_new ['parrot';'Hash']
+ vivify_114:
+ set $P504, $P503["charname"]
+ unless_null $P504, vivify_115
+ new $P504, "Undef"
+ vivify_115:
+ defined $I505, $P504
+ unless $I505, for_undef_116
+ iter $P502, $P504
+ new $P515, 'ExceptionHandler'
+ set_addr $P515, loop514_handler
+ $P515."handle_types"(65, 67, 66)
+ push_eh $P515
+ loop514_test:
+ unless $P502, loop514_done
+ shift $P506, $P502
+ loop514_redo:
+ .const 'Sub' $P508 = "44_1267204685.44293"
+ capture_lex $P508
+ $P508($P506)
+ loop514_next:
+ goto loop514_test
+ loop514_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P516, exception, 'type'
+ eq $P516, 65, loop514_next
+ eq $P516, 67, loop514_redo
+ loop514_done:
+ pop_eh
+ for_undef_116:
+.annotate "line", 185
+ find_lex $P517, "$/"
+ find_lex $P518, "$str"
+ $P519 = $P517."!make"($P518)
+.annotate "line", 182
+ .return ($P519)
+ control_497:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P520, exception, "payload"
+ .return ($P520)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "_block507" :anon :subid("44_1267204685.44293") :outer("43_1267204685.44293")
+ .param pmc param_509
+.annotate "line", 184
+ .lex "$_", param_509
+ find_lex $P510, "$str"
+ find_lex $P511, "$_"
+ $S512 = $P511."ast"()
+ concat $P513, $P510, $S512
+ store_lex "$str", $P513
+ .return ($P513)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charspec" :subid("45_1267204685.44293") :method :outer("11_1267204685.44293")
+ .param pmc param_524
+.annotate "line", 188
+ new $P523, 'ExceptionHandler'
+ set_addr $P523, control_522
+ $P523."handle_types"(58)
+ push_eh $P523
+ .lex "self", self
+ .lex "$/", param_524
+.annotate "line", 189
+ find_lex $P525, "$/"
+ find_lex $P528, "$/"
+ unless_null $P528, vivify_117
+ $P528 = root_new ['parrot';'Hash']
+ vivify_117:
+ set $P529, $P528["charnames"]
+ unless_null $P529, vivify_118
+ new $P529, "Undef"
+ vivify_118:
+ if $P529, if_527
+ find_lex $P533, "$/"
+ $I534 = "string_to_int"($P533, 10)
+ chr $S535, $I534
+ new $P526, 'String'
+ set $P526, $S535
+ goto if_527_end
+ if_527:
+ find_lex $P530, "$/"
+ unless_null $P530, vivify_119
+ $P530 = root_new ['parrot';'Hash']
+ vivify_119:
+ set $P531, $P530["charnames"]
+ unless_null $P531, vivify_120
+ new $P531, "Undef"
+ vivify_120:
+ $P532 = $P531."ast"()
+ set $P526, $P532
+ if_527_end:
+ $P536 = $P525."!make"($P526)
+.annotate "line", 188
+ .return ($P536)
+ control_522:
.local pmc exception
.get_results (exception)
- getattribute $P450, exception, "payload"
- .return ($P450)
+ getattribute $P537, exception, "payload"
+ .return ($P537)
.end
### .include 'gen/hllcompiler.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064006.8204")
+.sub "_block11" :anon :subid("10_1267204686.55407")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
@@ -5664,9 +5921,9 @@
.namespace []
-.sub "" :load :init :subid("post25") :outer("10_1261064006.8204")
+.sub "" :load :init :subid("post25") :outer("10_1267204686.55407")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064006.8204"
+ .const 'Sub' $P12 = "10_1267204686.55407"
.local pmc block
set block, $P12
.annotate "line", 2
@@ -5680,28 +5937,28 @@
.namespace ["HLL";"Compiler"]
-.sub "_block13" :subid("11_1261064006.8204") :outer("10_1261064006.8204")
+.sub "_block13" :subid("11_1267204686.55407") :outer("10_1267204686.55407")
.annotate "line", 6
- .const 'Sub' $P187 = "20_1261064006.8204"
+ .const 'Sub' $P187 = "20_1267204686.55407"
capture_lex $P187
- .const 'Sub' $P152 = "18_1261064006.8204"
+ .const 'Sub' $P152 = "18_1267204686.55407"
capture_lex $P152
- .const 'Sub' $P137 = "17_1261064006.8204"
+ .const 'Sub' $P137 = "17_1267204686.55407"
capture_lex $P137
- .const 'Sub' $P121 = "16_1261064006.8204"
+ .const 'Sub' $P121 = "16_1267204686.55407"
capture_lex $P121
- .const 'Sub' $P32 = "13_1261064006.8204"
+ .const 'Sub' $P32 = "13_1267204686.55407"
capture_lex $P32
- .const 'Sub' $P15 = "12_1261064006.8204"
+ .const 'Sub' $P15 = "12_1267204686.55407"
capture_lex $P15
.annotate "line", 14
- .const 'Sub' $P15 = "12_1261064006.8204"
+ .const 'Sub' $P15 = "12_1267204686.55407"
capture_lex $P15
.lex "value_type", $P15
.annotate "line", 10
find_lex $P31, "value_type"
.annotate "line", 69
- .const 'Sub' $P187 = "20_1261064006.8204"
+ .const 'Sub' $P187 = "20_1267204686.55407"
capture_lex $P187
.annotate "line", 6
.return ($P187)
@@ -5709,7 +5966,7 @@
.namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post26") :outer("11_1261064006.8204")
+.sub "" :load :init :subid("post26") :outer("11_1267204686.55407")
.annotate "line", 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
.local pmc block
@@ -5721,7 +5978,7 @@
.namespace ["HLL";"Compiler"]
-.sub "value_type" :subid("12_1261064006.8204") :outer("11_1261064006.8204")
+.sub "value_type" :subid("12_1267204686.55407") :outer("11_1267204686.55407")
.param pmc param_18
.annotate "line", 14
new $P17, 'ExceptionHandler'
@@ -5765,15 +6022,15 @@
.namespace ["HLL";"Compiler"]
-.sub "get_exports" :subid("13_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "get_exports" :subid("13_1267204686.55407") :method :outer("11_1267204686.55407")
.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_1261064006.8204"
+ .const 'Sub' $P104 = "15_1267204686.55407"
capture_lex $P104
- .const 'Sub' $P83 = "14_1261064006.8204"
+ .const 'Sub' $P83 = "14_1267204686.55407"
capture_lex $P83
new $P34, 'ExceptionHandler'
set_addr $P34, control_33
@@ -5788,10 +6045,10 @@
.lex "$tagset", param_36
.lex "@symbols", param_38
.annotate "line", 27
- new $P39, "Hash"
+ $P39 = root_new ['parrot';'Hash']
.lex "%exports", $P39
.annotate "line", 28
- new $P40, "Hash"
+ $P40 = root_new ['parrot';'Hash']
.lex "%source", $P40
.annotate "line", 22
find_lex $P42, "$module"
@@ -5831,11 +6088,11 @@
set $S60, $P59
find_lex $P61, "$module"
unless_null $P61, vivify_28
- new $P61, "Hash"
+ $P61 = root_new ['parrot';'Hash']
vivify_28:
set $P62, $P61["EXPORT"]
unless_null $P62, vivify_29
- new $P62, "Hash"
+ $P62 = root_new ['parrot';'Hash']
vivify_29:
set $P63, $P62[$S60]
unless_null $P63, vivify_30
@@ -5854,7 +6111,7 @@
set $S72, $P71
iseq $I73, $S72, "ALL"
if $I73, if_70
- $P75 = new ["Hash"]
+ $P75 = root_new ['parrot';'Hash']
set $P69, $P75
goto if_70_end
if_70:
@@ -5879,7 +6136,7 @@
unless $P99, loop116_done
shift $P102, $P99
loop116_redo:
- .const 'Sub' $P104 = "15_1261064006.8204"
+ .const 'Sub' $P104 = "15_1267204686.55407"
capture_lex $P104
$P104($P102)
loop116_next:
@@ -5909,7 +6166,7 @@
unless $P78, loop96_done
shift $P81, $P78
loop96_redo:
- .const 'Sub' $P83 = "14_1261064006.8204"
+ .const 'Sub' $P83 = "14_1267204686.55407"
capture_lex $P83
$P83($P81)
loop96_next:
@@ -5937,7 +6194,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block103" :anon :subid("15_1261064006.8204") :outer("13_1261064006.8204")
+.sub "_block103" :anon :subid("15_1267204686.55407") :outer("13_1267204686.55407")
.param pmc param_106
.annotate "line", 40
new $P105, "Undef"
@@ -5954,12 +6211,12 @@
$P113 = "value_type"($P112)
find_lex $P114, "%exports"
unless_null $P114, vivify_32
- new $P114, "Hash"
+ $P114 = root_new ['parrot';'Hash']
store_lex "%exports", $P114
vivify_32:
set $P115, $P114[$P113]
unless_null $P115, vivify_33
- new $P115, "Hash"
+ $P115 = root_new ['parrot';'Hash']
set $P114[$P113], $P115
vivify_33:
set $P115[$P111], $P109
@@ -5969,7 +6226,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block82" :anon :subid("14_1261064006.8204") :outer("13_1261064006.8204")
+.sub "_block82" :anon :subid("14_1267204686.55407") :outer("13_1267204686.55407")
.param pmc param_85
.annotate "line", 34
new $P84, "Undef"
@@ -5979,7 +6236,7 @@
set $S87, $P86
find_lex $P88, "%source"
unless_null $P88, vivify_35
- new $P88, "Hash"
+ $P88 = root_new ['parrot';'Hash']
vivify_35:
set $P89, $P88[$S87]
unless_null $P89, vivify_36
@@ -5993,12 +6250,12 @@
$P93 = "value_type"($P92)
find_lex $P94, "%exports"
unless_null $P94, vivify_37
- new $P94, "Hash"
+ $P94 = root_new ['parrot';'Hash']
store_lex "%exports", $P94
vivify_37:
set $P95, $P94[$P93]
unless_null $P95, vivify_38
- new $P95, "Hash"
+ $P95 = root_new ['parrot';'Hash']
set $P94[$P93], $P95
vivify_38:
set $P95[$P91], $P90
@@ -6008,7 +6265,7 @@
.namespace ["HLL";"Compiler"]
-.sub "get_module" :subid("16_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "get_module" :subid("16_1267204686.55407") :method :outer("11_1267204686.55407")
.param pmc param_124
.annotate "line", 47
new $P123, 'ExceptionHandler'
@@ -6018,7 +6275,7 @@
.lex "self", self
.lex "$name", param_124
.annotate "line", 48
- new $P125, "ResizablePMCArray"
+ $P125 = root_new ['parrot';'ResizablePMCArray']
.lex "@name", $P125
find_lex $P126, "self"
find_lex $P127, "$name"
@@ -6048,7 +6305,7 @@
.namespace ["HLL";"Compiler"]
-.sub "language" :subid("17_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "language" :subid("17_1267204686.55407") :method :outer("11_1267204686.55407")
.param pmc param_140 :optional
.param int has_param_140 :opt_flag
.annotate "line", 53
@@ -6092,10 +6349,10 @@
.namespace ["HLL";"Compiler"]
-.sub "load_module" :subid("18_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "load_module" :subid("18_1267204686.55407") :method :outer("11_1267204686.55407")
.param pmc param_155
.annotate "line", 61
- .const 'Sub' $P165 = "19_1261064006.8204"
+ .const 'Sub' $P165 = "19_1267204686.55407"
capture_lex $P165
new $P154, 'ExceptionHandler'
set_addr $P154, control_153
@@ -6122,7 +6379,7 @@
assign $P163, 0
store_lex "$loaded", $P163
.annotate "line", 64
- .const 'Sub' $P165 = "19_1261064006.8204"
+ .const 'Sub' $P165 = "19_1267204686.55407"
capture_lex $P165
$P165()
.annotate "line", 65
@@ -6151,7 +6408,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block164" :anon :subid("19_1261064006.8204") :outer("18_1261064006.8204")
+.sub "_block164" :anon :subid("19_1267204686.55407") :outer("18_1267204686.55407")
.annotate "line", 64
new $P172, 'ExceptionHandler'
set_addr $P172, control_171
@@ -6184,11 +6441,11 @@
.namespace ["HLL";"Compiler"]
-.sub "import" :subid("20_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "import" :subid("20_1267204686.55407") :method :outer("11_1267204686.55407")
.param pmc param_190
.param pmc param_191
.annotate "line", 69
- .const 'Sub' $P197 = "21_1261064006.8204"
+ .const 'Sub' $P197 = "21_1267204686.55407"
capture_lex $P197
new $P189, 'ExceptionHandler'
set_addr $P189, control_188
@@ -6210,7 +6467,7 @@
unless $P192, loop278_done
shift $P195, $P192
loop278_redo:
- .const 'Sub' $P197 = "21_1261064006.8204"
+ .const 'Sub' $P197 = "21_1267204686.55407"
capture_lex $P197
$P197($P195)
loop278_next:
@@ -6235,20 +6492,20 @@
.namespace ["HLL";"Compiler"]
-.sub "_block196" :anon :subid("21_1261064006.8204") :outer("20_1261064006.8204")
+.sub "_block196" :anon :subid("21_1267204686.55407") :outer("20_1267204686.55407")
.param pmc param_200
.annotate "line", 70
- .const 'Sub' $P267 = "24_1261064006.8204"
+ .const 'Sub' $P267 = "24_1267204686.55407"
capture_lex $P267
- .const 'Sub' $P247 = "23_1261064006.8204"
+ .const 'Sub' $P247 = "23_1267204686.55407"
capture_lex $P247
- .const 'Sub' $P218 = "22_1261064006.8204"
+ .const 'Sub' $P218 = "22_1267204686.55407"
capture_lex $P218
.annotate "line", 71
new $P198, "Undef"
.lex "$type", $P198
.annotate "line", 72
- new $P199, "Hash"
+ $P199 = root_new ['parrot';'Hash']
.lex "%items", $P199
.lex "$_", param_200
.annotate "line", 71
@@ -6290,7 +6547,7 @@
unless $P262, loop275_done
shift $P265, $P262
loop275_redo:
- .const 'Sub' $P267 = "24_1261064006.8204"
+ .const 'Sub' $P267 = "24_1267204686.55407"
capture_lex $P267
$P267($P265)
loop275_next:
@@ -6322,7 +6579,7 @@
unless $P242, loop259_done
shift $P245, $P242
loop259_redo:
- .const 'Sub' $P247 = "23_1261064006.8204"
+ .const 'Sub' $P247 = "23_1267204686.55407"
capture_lex $P247
$P247($P245)
loop259_next:
@@ -6356,7 +6613,7 @@
unless $P213, loop231_done
shift $P216, $P213
loop231_redo:
- .const 'Sub' $P218 = "22_1261064006.8204"
+ .const 'Sub' $P218 = "22_1267204686.55407"
capture_lex $P218
$P218($P216)
loop231_next:
@@ -6379,7 +6636,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block266" :anon :subid("24_1261064006.8204") :outer("21_1261064006.8204")
+.sub "_block266" :anon :subid("24_1267204686.55407") :outer("21_1267204686.55407")
.param pmc param_268
.annotate "line", 80
.lex "$_", param_268
@@ -6390,7 +6647,7 @@
set $S273, $P272
find_lex $P274, "$target"
unless_null $P274, vivify_44
- new $P274, "Hash"
+ $P274 = root_new ['parrot';'Hash']
store_lex "$target", $P274
vivify_44:
set $P274[$S273], $P270
@@ -6399,7 +6656,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block246" :anon :subid("23_1261064006.8204") :outer("21_1261064006.8204")
+.sub "_block246" :anon :subid("23_1267204686.55407") :outer("21_1267204686.55407")
.param pmc param_248
.annotate "line", 77
.lex "$_", param_248
@@ -6419,7 +6676,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block217" :anon :subid("22_1261064006.8204") :outer("21_1261064006.8204")
+.sub "_block217" :anon :subid("22_1267204686.55407") :outer("21_1267204686.55407")
.param pmc param_219
.annotate "line", 74
.lex "$_", param_219
Modified: branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -15,387 +15,387 @@
### .include 'gen/nqp-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064023.05912")
+.sub "_block11" :anon :subid("10_1267204702.05125")
.annotate "line", 0
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
.annotate "line", 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
- $P1291 = $P14()
+ $P1296 = $P14()
.annotate "line", 1
- .return ($P1291)
+ .return ($P1296)
.end
.namespace []
-.sub "" :load :init :subid("post331") :outer("10_1261064023.05912")
+.sub "" :load :init :subid("post331") :outer("10_1267204702.05125")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064023.05912"
+ .const 'Sub' $P12 = "10_1267204702.05125"
.local pmc block
set block, $P12
- $P1292 = get_root_global ["parrot"], "P6metaclass"
- $P1292."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+ $P1297 = get_root_global ["parrot"], "P6metaclass"
+ $P1297."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
-.sub "_block13" :subid("11_1261064023.05912") :outer("10_1261064023.05912")
+.sub "_block13" :subid("11_1267204702.05125") :outer("10_1267204702.05125")
.annotate "line", 4
- get_hll_global $P1235, ["NQP";"Regex"], "_block1234"
- capture_lex $P1235
- .const 'Sub' $P1221 = "317_1261064023.05912"
- capture_lex $P1221
- .const 'Sub' $P1215 = "315_1261064023.05912"
- capture_lex $P1215
- .const 'Sub' $P1209 = "313_1261064023.05912"
- capture_lex $P1209
- .const 'Sub' $P1202 = "311_1261064023.05912"
- capture_lex $P1202
- .const 'Sub' $P1195 = "309_1261064023.05912"
- capture_lex $P1195
- .const 'Sub' $P1188 = "307_1261064023.05912"
- capture_lex $P1188
- .const 'Sub' $P1181 = "305_1261064023.05912"
- capture_lex $P1181
- .const 'Sub' $P1175 = "303_1261064023.05912"
- capture_lex $P1175
- .const 'Sub' $P1168 = "301_1261064023.05912"
- capture_lex $P1168
- .const 'Sub' $P1161 = "299_1261064023.05912"
- capture_lex $P1161
- .const 'Sub' $P1154 = "297_1261064023.05912"
- capture_lex $P1154
- .const 'Sub' $P1147 = "295_1261064023.05912"
- capture_lex $P1147
- .const 'Sub' $P1140 = "293_1261064023.05912"
- capture_lex $P1140
- .const 'Sub' $P1133 = "291_1261064023.05912"
- capture_lex $P1133
- .const 'Sub' $P1126 = "289_1261064023.05912"
- capture_lex $P1126
- .const 'Sub' $P1119 = "287_1261064023.05912"
- capture_lex $P1119
- .const 'Sub' $P1112 = "285_1261064023.05912"
- capture_lex $P1112
- .const 'Sub' $P1105 = "283_1261064023.05912"
- capture_lex $P1105
- .const 'Sub' $P1098 = "281_1261064023.05912"
- capture_lex $P1098
- .const 'Sub' $P1091 = "279_1261064023.05912"
- capture_lex $P1091
- .const 'Sub' $P1084 = "277_1261064023.05912"
- capture_lex $P1084
- .const 'Sub' $P1077 = "275_1261064023.05912"
- capture_lex $P1077
- .const 'Sub' $P1070 = "273_1261064023.05912"
- capture_lex $P1070
- .const 'Sub' $P1063 = "271_1261064023.05912"
- capture_lex $P1063
- .const 'Sub' $P1056 = "269_1261064023.05912"
- capture_lex $P1056
- .const 'Sub' $P1049 = "267_1261064023.05912"
- capture_lex $P1049
- .const 'Sub' $P1042 = "265_1261064023.05912"
- capture_lex $P1042
- .const 'Sub' $P1035 = "263_1261064023.05912"
- capture_lex $P1035
- .const 'Sub' $P1028 = "261_1261064023.05912"
- capture_lex $P1028
- .const 'Sub' $P1021 = "259_1261064023.05912"
- capture_lex $P1021
- .const 'Sub' $P1014 = "257_1261064023.05912"
- capture_lex $P1014
- .const 'Sub' $P1007 = "255_1261064023.05912"
- capture_lex $P1007
- .const 'Sub' $P1000 = "253_1261064023.05912"
- capture_lex $P1000
- .const 'Sub' $P993 = "251_1261064023.05912"
- capture_lex $P993
- .const 'Sub' $P987 = "249_1261064023.05912"
- capture_lex $P987
- .const 'Sub' $P980 = "247_1261064023.05912"
- capture_lex $P980
- .const 'Sub' $P973 = "245_1261064023.05912"
- capture_lex $P973
- .const 'Sub' $P966 = "243_1261064023.05912"
- capture_lex $P966
- .const 'Sub' $P959 = "241_1261064023.05912"
- capture_lex $P959
- .const 'Sub' $P952 = "239_1261064023.05912"
- capture_lex $P952
- .const 'Sub' $P945 = "237_1261064023.05912"
- capture_lex $P945
- .const 'Sub' $P938 = "235_1261064023.05912"
- capture_lex $P938
- .const 'Sub' $P932 = "233_1261064023.05912"
- capture_lex $P932
- .const 'Sub' $P926 = "231_1261064023.05912"
+ get_hll_global $P1240, ["NQP";"Regex"], "_block1239"
+ capture_lex $P1240
+ .const 'Sub' $P1226 = "317_1267204702.05125"
+ capture_lex $P1226
+ .const 'Sub' $P1220 = "315_1267204702.05125"
+ capture_lex $P1220
+ .const 'Sub' $P1214 = "313_1267204702.05125"
+ capture_lex $P1214
+ .const 'Sub' $P1207 = "311_1267204702.05125"
+ capture_lex $P1207
+ .const 'Sub' $P1200 = "309_1267204702.05125"
+ capture_lex $P1200
+ .const 'Sub' $P1193 = "307_1267204702.05125"
+ capture_lex $P1193
+ .const 'Sub' $P1186 = "305_1267204702.05125"
+ capture_lex $P1186
+ .const 'Sub' $P1180 = "303_1267204702.05125"
+ capture_lex $P1180
+ .const 'Sub' $P1173 = "301_1267204702.05125"
+ capture_lex $P1173
+ .const 'Sub' $P1166 = "299_1267204702.05125"
+ capture_lex $P1166
+ .const 'Sub' $P1159 = "297_1267204702.05125"
+ capture_lex $P1159
+ .const 'Sub' $P1152 = "295_1267204702.05125"
+ capture_lex $P1152
+ .const 'Sub' $P1145 = "293_1267204702.05125"
+ capture_lex $P1145
+ .const 'Sub' $P1138 = "291_1267204702.05125"
+ capture_lex $P1138
+ .const 'Sub' $P1131 = "289_1267204702.05125"
+ capture_lex $P1131
+ .const 'Sub' $P1124 = "287_1267204702.05125"
+ capture_lex $P1124
+ .const 'Sub' $P1117 = "285_1267204702.05125"
+ capture_lex $P1117
+ .const 'Sub' $P1110 = "283_1267204702.05125"
+ capture_lex $P1110
+ .const 'Sub' $P1103 = "281_1267204702.05125"
+ capture_lex $P1103
+ .const 'Sub' $P1096 = "279_1267204702.05125"
+ capture_lex $P1096
+ .const 'Sub' $P1089 = "277_1267204702.05125"
+ capture_lex $P1089
+ .const 'Sub' $P1082 = "275_1267204702.05125"
+ capture_lex $P1082
+ .const 'Sub' $P1075 = "273_1267204702.05125"
+ capture_lex $P1075
+ .const 'Sub' $P1068 = "271_1267204702.05125"
+ capture_lex $P1068
+ .const 'Sub' $P1061 = "269_1267204702.05125"
+ capture_lex $P1061
+ .const 'Sub' $P1054 = "267_1267204702.05125"
+ capture_lex $P1054
+ .const 'Sub' $P1047 = "265_1267204702.05125"
+ capture_lex $P1047
+ .const 'Sub' $P1040 = "263_1267204702.05125"
+ capture_lex $P1040
+ .const 'Sub' $P1033 = "261_1267204702.05125"
+ capture_lex $P1033
+ .const 'Sub' $P1026 = "259_1267204702.05125"
+ capture_lex $P1026
+ .const 'Sub' $P1019 = "257_1267204702.05125"
+ capture_lex $P1019
+ .const 'Sub' $P1012 = "255_1267204702.05125"
+ capture_lex $P1012
+ .const 'Sub' $P1005 = "253_1267204702.05125"
+ capture_lex $P1005
+ .const 'Sub' $P998 = "251_1267204702.05125"
+ capture_lex $P998
+ .const 'Sub' $P992 = "249_1267204702.05125"
+ capture_lex $P992
+ .const 'Sub' $P985 = "247_1267204702.05125"
+ capture_lex $P985
+ .const 'Sub' $P978 = "245_1267204702.05125"
+ capture_lex $P978
+ .const 'Sub' $P971 = "243_1267204702.05125"
+ capture_lex $P971
+ .const 'Sub' $P964 = "241_1267204702.05125"
+ capture_lex $P964
+ .const 'Sub' $P957 = "239_1267204702.05125"
+ capture_lex $P957
+ .const 'Sub' $P950 = "237_1267204702.05125"
+ capture_lex $P950
+ .const 'Sub' $P943 = "235_1267204702.05125"
+ capture_lex $P943
+ .const 'Sub' $P937 = "233_1267204702.05125"
+ capture_lex $P937
+ .const 'Sub' $P931 = "231_1267204702.05125"
+ capture_lex $P931
+ .const 'Sub' $P926 = "229_1267204702.05125"
capture_lex $P926
- .const 'Sub' $P921 = "229_1261064023.05912"
- capture_lex $P921
- .const 'Sub' $P915 = "227_1261064023.05912"
- capture_lex $P915
- .const 'Sub' $P909 = "225_1261064023.05912"
+ .const 'Sub' $P920 = "227_1267204702.05125"
+ capture_lex $P920
+ .const 'Sub' $P914 = "225_1267204702.05125"
+ capture_lex $P914
+ .const 'Sub' $P909 = "223_1267204702.05125"
capture_lex $P909
- .const 'Sub' $P904 = "223_1261064023.05912"
+ .const 'Sub' $P904 = "221_1267204702.05125"
capture_lex $P904
- .const 'Sub' $P899 = "221_1261064023.05912"
- capture_lex $P899
- .const 'Sub' $P892 = "219_1261064023.05912"
- capture_lex $P892
- .const 'Sub' $P884 = "217_1261064023.05912"
+ .const 'Sub' $P897 = "219_1267204702.05125"
+ capture_lex $P897
+ .const 'Sub' $P889 = "217_1267204702.05125"
+ capture_lex $P889
+ .const 'Sub' $P884 = "215_1267204702.05125"
capture_lex $P884
- .const 'Sub' $P879 = "215_1261064023.05912"
+ .const 'Sub' $P879 = "213_1267204702.05125"
capture_lex $P879
- .const 'Sub' $P874 = "213_1261064023.05912"
+ .const 'Sub' $P874 = "211_1267204702.05125"
capture_lex $P874
- .const 'Sub' $P869 = "211_1261064023.05912"
- capture_lex $P869
- .const 'Sub' $P861 = "209_1261064023.05912"
- capture_lex $P861
- .const 'Sub' $P853 = "207_1261064023.05912"
+ .const 'Sub' $P866 = "209_1267204702.05125"
+ capture_lex $P866
+ .const 'Sub' $P858 = "207_1267204702.05125"
+ capture_lex $P858
+ .const 'Sub' $P853 = "205_1267204702.05125"
capture_lex $P853
- .const 'Sub' $P848 = "205_1261064023.05912"
+ .const 'Sub' $P848 = "203_1267204702.05125"
capture_lex $P848
- .const 'Sub' $P843 = "203_1261064023.05912"
- capture_lex $P843
- .const 'Sub' $P837 = "201_1261064023.05912"
- capture_lex $P837
- .const 'Sub' $P831 = "199_1261064023.05912"
- capture_lex $P831
- .const 'Sub' $P825 = "197_1261064023.05912"
- capture_lex $P825
- .const 'Sub' $P819 = "195_1261064023.05912"
- capture_lex $P819
- .const 'Sub' $P813 = "193_1261064023.05912"
+ .const 'Sub' $P842 = "201_1267204702.05125"
+ capture_lex $P842
+ .const 'Sub' $P836 = "199_1267204702.05125"
+ capture_lex $P836
+ .const 'Sub' $P830 = "197_1267204702.05125"
+ capture_lex $P830
+ .const 'Sub' $P824 = "195_1267204702.05125"
+ capture_lex $P824
+ .const 'Sub' $P818 = "193_1267204702.05125"
+ capture_lex $P818
+ .const 'Sub' $P813 = "191_1267204702.05125"
capture_lex $P813
- .const 'Sub' $P808 = "191_1261064023.05912"
+ .const 'Sub' $P808 = "189_1267204702.05125"
capture_lex $P808
- .const 'Sub' $P803 = "189_1261064023.05912"
- capture_lex $P803
- .const 'Sub' $P790 = "185_1261064023.05912"
- capture_lex $P790
- .const 'Sub' $P782 = "183_1261064023.05912"
- capture_lex $P782
- .const 'Sub' $P776 = "181_1261064023.05912"
- capture_lex $P776
- .const 'Sub' $P769 = "179_1261064023.05912"
- capture_lex $P769
- .const 'Sub' $P763 = "177_1261064023.05912"
- capture_lex $P763
- .const 'Sub' $P755 = "175_1261064023.05912"
- capture_lex $P755
- .const 'Sub' $P747 = "173_1261064023.05912"
- capture_lex $P747
- .const 'Sub' $P741 = "171_1261064023.05912"
- capture_lex $P741
- .const 'Sub' $P735 = "169_1261064023.05912"
- capture_lex $P735
- .const 'Sub' $P720 = "165_1261064023.05912"
- capture_lex $P720
- .const 'Sub' $P688 = "163_1261064023.05912"
+ .const 'Sub' $P795 = "185_1267204702.05125"
+ capture_lex $P795
+ .const 'Sub' $P787 = "183_1267204702.05125"
+ capture_lex $P787
+ .const 'Sub' $P781 = "181_1267204702.05125"
+ capture_lex $P781
+ .const 'Sub' $P774 = "179_1267204702.05125"
+ capture_lex $P774
+ .const 'Sub' $P768 = "177_1267204702.05125"
+ capture_lex $P768
+ .const 'Sub' $P760 = "175_1267204702.05125"
+ capture_lex $P760
+ .const 'Sub' $P752 = "173_1267204702.05125"
+ capture_lex $P752
+ .const 'Sub' $P746 = "171_1267204702.05125"
+ capture_lex $P746
+ .const 'Sub' $P740 = "169_1267204702.05125"
+ capture_lex $P740
+ .const 'Sub' $P725 = "165_1267204702.05125"
+ capture_lex $P725
+ .const 'Sub' $P688 = "163_1267204702.05125"
capture_lex $P688
- .const 'Sub' $P680 = "161_1261064023.05912"
+ .const 'Sub' $P680 = "161_1267204702.05125"
capture_lex $P680
- .const 'Sub' $P674 = "159_1261064023.05912"
+ .const 'Sub' $P674 = "159_1267204702.05125"
capture_lex $P674
- .const 'Sub' $P664 = "157_1261064023.05912"
+ .const 'Sub' $P664 = "157_1267204702.05125"
capture_lex $P664
- .const 'Sub' $P649 = "155_1261064023.05912"
+ .const 'Sub' $P649 = "155_1267204702.05125"
capture_lex $P649
- .const 'Sub' $P640 = "153_1261064023.05912"
+ .const 'Sub' $P640 = "153_1267204702.05125"
capture_lex $P640
- .const 'Sub' $P621 = "151_1261064023.05912"
+ .const 'Sub' $P621 = "151_1267204702.05125"
capture_lex $P621
- .const 'Sub' $P597 = "149_1261064023.05912"
+ .const 'Sub' $P597 = "149_1267204702.05125"
capture_lex $P597
- .const 'Sub' $P590 = "147_1261064023.05912"
+ .const 'Sub' $P590 = "147_1267204702.05125"
capture_lex $P590
- .const 'Sub' $P583 = "145_1261064023.05912"
+ .const 'Sub' $P583 = "145_1267204702.05125"
capture_lex $P583
- .const 'Sub' $P573 = "141_1261064023.05912"
+ .const 'Sub' $P573 = "141_1267204702.05125"
capture_lex $P573
- .const 'Sub' $P562 = "139_1261064023.05912"
+ .const 'Sub' $P562 = "139_1267204702.05125"
capture_lex $P562
- .const 'Sub' $P555 = "137_1261064023.05912"
+ .const 'Sub' $P555 = "137_1267204702.05125"
capture_lex $P555
- .const 'Sub' $P548 = "135_1261064023.05912"
+ .const 'Sub' $P548 = "135_1267204702.05125"
capture_lex $P548
- .const 'Sub' $P541 = "133_1261064023.05912"
+ .const 'Sub' $P541 = "133_1267204702.05125"
capture_lex $P541
- .const 'Sub' $P514 = "129_1261064023.05912"
+ .const 'Sub' $P514 = "129_1267204702.05125"
capture_lex $P514
- .const 'Sub' $P505 = "127_1261064023.05912"
+ .const 'Sub' $P505 = "127_1267204702.05125"
capture_lex $P505
- .const 'Sub' $P498 = "125_1261064023.05912"
+ .const 'Sub' $P498 = "125_1267204702.05125"
capture_lex $P498
- .const 'Sub' $P489 = "121_1261064023.05912"
+ .const 'Sub' $P489 = "121_1267204702.05125"
capture_lex $P489
- .const 'Sub' $P484 = "119_1261064023.05912"
+ .const 'Sub' $P484 = "119_1267204702.05125"
capture_lex $P484
- .const 'Sub' $P472 = "117_1261064023.05912"
+ .const 'Sub' $P472 = "117_1267204702.05125"
capture_lex $P472
- .const 'Sub' $P460 = "115_1261064023.05912"
+ .const 'Sub' $P460 = "115_1267204702.05125"
capture_lex $P460
- .const 'Sub' $P452 = "113_1261064023.05912"
+ .const 'Sub' $P452 = "113_1267204702.05125"
capture_lex $P452
- .const 'Sub' $P447 = "111_1261064023.05912"
+ .const 'Sub' $P447 = "111_1267204702.05125"
capture_lex $P447
- .const 'Sub' $P441 = "109_1261064023.05912"
+ .const 'Sub' $P441 = "109_1267204702.05125"
capture_lex $P441
- .const 'Sub' $P435 = "107_1261064023.05912"
+ .const 'Sub' $P435 = "107_1267204702.05125"
capture_lex $P435
- .const 'Sub' $P429 = "105_1261064023.05912"
+ .const 'Sub' $P429 = "105_1267204702.05125"
capture_lex $P429
- .const 'Sub' $P423 = "103_1261064023.05912"
+ .const 'Sub' $P423 = "103_1267204702.05125"
capture_lex $P423
- .const 'Sub' $P417 = "101_1261064023.05912"
+ .const 'Sub' $P417 = "101_1267204702.05125"
capture_lex $P417
- .const 'Sub' $P411 = "99_1261064023.05912"
+ .const 'Sub' $P411 = "99_1267204702.05125"
capture_lex $P411
- .const 'Sub' $P405 = "97_1261064023.05912"
+ .const 'Sub' $P405 = "97_1267204702.05125"
capture_lex $P405
- .const 'Sub' $P399 = "95_1261064023.05912"
+ .const 'Sub' $P399 = "95_1267204702.05125"
capture_lex $P399
- .const 'Sub' $P391 = "93_1261064023.05912"
+ .const 'Sub' $P391 = "93_1267204702.05125"
capture_lex $P391
- .const 'Sub' $P383 = "91_1261064023.05912"
+ .const 'Sub' $P383 = "91_1267204702.05125"
capture_lex $P383
- .const 'Sub' $P371 = "87_1261064023.05912"
+ .const 'Sub' $P371 = "87_1267204702.05125"
capture_lex $P371
- .const 'Sub' $P363 = "85_1261064023.05912"
+ .const 'Sub' $P363 = "85_1267204702.05125"
capture_lex $P363
- .const 'Sub' $P353 = "81_1261064023.05912"
+ .const 'Sub' $P353 = "81_1267204702.05125"
capture_lex $P353
- .const 'Sub' $P346 = "79_1261064023.05912"
+ .const 'Sub' $P346 = "79_1267204702.05125"
capture_lex $P346
- .const 'Sub' $P339 = "77_1261064023.05912"
+ .const 'Sub' $P339 = "77_1267204702.05125"
capture_lex $P339
- .const 'Sub' $P327 = "73_1261064023.05912"
+ .const 'Sub' $P327 = "73_1267204702.05125"
capture_lex $P327
- .const 'Sub' $P319 = "71_1261064023.05912"
+ .const 'Sub' $P319 = "71_1267204702.05125"
capture_lex $P319
- .const 'Sub' $P311 = "69_1261064023.05912"
+ .const 'Sub' $P311 = "69_1267204702.05125"
capture_lex $P311
- .const 'Sub' $P291 = "67_1261064023.05912"
+ .const 'Sub' $P291 = "67_1267204702.05125"
capture_lex $P291
- .const 'Sub' $P282 = "65_1261064023.05912"
+ .const 'Sub' $P282 = "65_1267204702.05125"
capture_lex $P282
- .const 'Sub' $P264 = "62_1261064023.05912"
+ .const 'Sub' $P264 = "62_1267204702.05125"
capture_lex $P264
- .const 'Sub' $P244 = "60_1261064023.05912"
+ .const 'Sub' $P244 = "60_1267204702.05125"
capture_lex $P244
- .const 'Sub' $P235 = "56_1261064023.05912"
+ .const 'Sub' $P235 = "56_1267204702.05125"
capture_lex $P235
- .const 'Sub' $P230 = "54_1261064023.05912"
+ .const 'Sub' $P230 = "54_1267204702.05125"
capture_lex $P230
- .const 'Sub' $P221 = "50_1261064023.05912"
+ .const 'Sub' $P221 = "50_1267204702.05125"
capture_lex $P221
- .const 'Sub' $P216 = "48_1261064023.05912"
+ .const 'Sub' $P216 = "48_1267204702.05125"
capture_lex $P216
- .const 'Sub' $P208 = "46_1261064023.05912"
+ .const 'Sub' $P208 = "46_1267204702.05125"
capture_lex $P208
- .const 'Sub' $P201 = "44_1261064023.05912"
+ .const 'Sub' $P201 = "44_1267204702.05125"
capture_lex $P201
- .const 'Sub' $P195 = "42_1261064023.05912"
+ .const 'Sub' $P195 = "42_1267204702.05125"
capture_lex $P195
- .const 'Sub' $P187 = "40_1261064023.05912"
+ .const 'Sub' $P187 = "40_1267204702.05125"
capture_lex $P187
- .const 'Sub' $P181 = "38_1261064023.05912"
+ .const 'Sub' $P181 = "38_1267204702.05125"
capture_lex $P181
- .const 'Sub' $P175 = "36_1261064023.05912"
+ .const 'Sub' $P175 = "36_1267204702.05125"
capture_lex $P175
- .const 'Sub' $P159 = "33_1261064023.05912"
+ .const 'Sub' $P159 = "33_1267204702.05125"
capture_lex $P159
- .const 'Sub' $P146 = "31_1261064023.05912"
+ .const 'Sub' $P146 = "31_1267204702.05125"
capture_lex $P146
- .const 'Sub' $P139 = "29_1261064023.05912"
+ .const 'Sub' $P139 = "29_1267204702.05125"
capture_lex $P139
- .const 'Sub' $P96 = "26_1261064023.05912"
+ .const 'Sub' $P96 = "26_1267204702.05125"
capture_lex $P96
- .const 'Sub' $P78 = "23_1261064023.05912"
+ .const 'Sub' $P78 = "23_1267204702.05125"
capture_lex $P78
- .const 'Sub' $P68 = "21_1261064023.05912"
+ .const 'Sub' $P68 = "21_1267204702.05125"
capture_lex $P68
- .const 'Sub' $P54 = "19_1261064023.05912"
+ .const 'Sub' $P54 = "19_1267204702.05125"
capture_lex $P54
- .const 'Sub' $P46 = "17_1261064023.05912"
+ .const 'Sub' $P46 = "17_1267204702.05125"
capture_lex $P46
- .const 'Sub' $P39 = "15_1261064023.05912"
+ .const 'Sub' $P39 = "15_1267204702.05125"
capture_lex $P39
- .const 'Sub' $P33 = "13_1261064023.05912"
+ .const 'Sub' $P33 = "13_1267204702.05125"
capture_lex $P33
- .const 'Sub' $P15 = "12_1261064023.05912"
+ .const 'Sub' $P15 = "12_1267204702.05125"
capture_lex $P15
-.annotate "line", 527
- get_hll_global $P1235, ["NQP";"Regex"], "_block1234"
- capture_lex $P1235
- $P1274 = $P1235()
+.annotate "line", 531
+ get_hll_global $P1240, ["NQP";"Regex"], "_block1239"
+ capture_lex $P1240
+ $P1279 = $P1240()
.annotate "line", 4
- .return ($P1274)
+ .return ($P1279)
.end
.namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post332") :outer("11_1261064023.05912")
+.sub "" :load :init :subid("post332") :outer("11_1267204702.05125")
.annotate "line", 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
.local pmc block
set block, $P14
-.annotate "line", 414
- get_hll_global $P1275, ["NQP"], "Grammar"
- $P1275."O"(":prec<y=>, :assoc<unary>", "%methodop")
-.annotate "line", 415
- get_hll_global $P1276, ["NQP"], "Grammar"
- $P1276."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
-.annotate "line", 416
- get_hll_global $P1277, ["NQP"], "Grammar"
- $P1277."O"(":prec<w=>, :assoc<left>", "%exponentiation")
-.annotate "line", 417
- get_hll_global $P1278, ["NQP"], "Grammar"
- $P1278."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
.annotate "line", 418
- get_hll_global $P1279, ["NQP"], "Grammar"
- $P1279."O"(":prec<u=>, :assoc<left>", "%multiplicative")
-.annotate "line", 419
get_hll_global $P1280, ["NQP"], "Grammar"
- $P1280."O"(":prec<t=>, :assoc<left>", "%additive")
-.annotate "line", 420
+ $P1280."O"(":prec<y=>, :assoc<unary>", "%methodop")
+.annotate "line", 419
get_hll_global $P1281, ["NQP"], "Grammar"
- $P1281."O"(":prec<r=>, :assoc<left>", "%concatenation")
-.annotate "line", 421
+ $P1281."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+.annotate "line", 420
get_hll_global $P1282, ["NQP"], "Grammar"
- $P1282."O"(":prec<m=>, :assoc<left>", "%relational")
-.annotate "line", 422
+ $P1282."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+.annotate "line", 421
get_hll_global $P1283, ["NQP"], "Grammar"
- $P1283."O"(":prec<l=>, :assoc<left>", "%tight_and")
-.annotate "line", 423
+ $P1283."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+.annotate "line", 422
get_hll_global $P1284, ["NQP"], "Grammar"
- $P1284."O"(":prec<k=>, :assoc<left>", "%tight_or")
-.annotate "line", 424
+ $P1284."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+.annotate "line", 423
get_hll_global $P1285, ["NQP"], "Grammar"
- $P1285."O"(":prec<j=>, :assoc<right>", "%conditional")
-.annotate "line", 425
+ $P1285."O"(":prec<t=>, :assoc<left>", "%additive")
+.annotate "line", 424
get_hll_global $P1286, ["NQP"], "Grammar"
- $P1286."O"(":prec<i=>, :assoc<right>", "%assignment")
-.annotate "line", 426
+ $P1286."O"(":prec<r=>, :assoc<left>", "%concatenation")
+.annotate "line", 425
get_hll_global $P1287, ["NQP"], "Grammar"
- $P1287."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
-.annotate "line", 427
+ $P1287."O"(":prec<m=>, :assoc<left>", "%relational")
+.annotate "line", 426
get_hll_global $P1288, ["NQP"], "Grammar"
- $P1288."O"(":prec<f=>, :assoc<list>", "%list_infix")
-.annotate "line", 428
+ $P1288."O"(":prec<l=>, :assoc<left>", "%tight_and")
+.annotate "line", 427
get_hll_global $P1289, ["NQP"], "Grammar"
- $P1289."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-.annotate "line", 413
- $P1290 = get_root_global ["parrot"], "P6metaclass"
- $P1290."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+ $P1289."O"(":prec<k=>, :assoc<left>", "%tight_or")
+.annotate "line", 428
+ get_hll_global $P1290, ["NQP"], "Grammar"
+ $P1290."O"(":prec<j=>, :assoc<right>", "%conditional")
+.annotate "line", 429
+ get_hll_global $P1291, ["NQP"], "Grammar"
+ $P1291."O"(":prec<i=>, :assoc<right>", "%assignment")
+.annotate "line", 430
+ get_hll_global $P1292, ["NQP"], "Grammar"
+ $P1292."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+.annotate "line", 431
+ get_hll_global $P1293, ["NQP"], "Grammar"
+ $P1293."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate "line", 432
+ get_hll_global $P1294, ["NQP"], "Grammar"
+ $P1294."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+.annotate "line", 417
+ $P1295 = get_root_global ["parrot"], "P6metaclass"
+ $P1295."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
-.sub "TOP" :subid("12_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "TOP" :subid("12_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
@@ -403,7 +403,7 @@
push_eh $P17
.lex "self", self
.annotate "line", 5
- new $P18, "Hash"
+ $P18 = root_new ['parrot';'Hash']
.lex "%*LANG", $P18
.annotate "line", 10
new $P19, "Undef"
@@ -478,7 +478,7 @@
.namespace ["NQP";"Grammar"]
-.sub "identifier" :subid("13_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "identifier" :subid("13_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx34_tgt
.local int rx34_pos
@@ -536,7 +536,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier" :subid("14_1261064023.05912") :method
+.sub "!PREFIX__identifier" :subid("14_1267204702.05125") :method
.annotate "line", 4
$P36 = self."!PREFIX__!subrule"("ident", "")
new $P37, "ResizablePMCArray"
@@ -546,7 +546,7 @@
.namespace ["NQP";"Grammar"]
-.sub "name" :subid("15_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "name" :subid("15_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx40_tgt
.local int rx40_pos
@@ -620,7 +620,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name" :subid("16_1261064023.05912") :method
+.sub "!PREFIX__name" :subid("16_1267204702.05125") :method
.annotate "line", 4
new $P42, "ResizablePMCArray"
push $P42, ""
@@ -629,7 +629,7 @@
.namespace ["NQP";"Grammar"]
-.sub "deflongname" :subid("17_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "deflongname" :subid("17_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx47_tgt
.local int rx47_pos
@@ -702,7 +702,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname" :subid("18_1261064023.05912") :method
+.sub "!PREFIX__deflongname" :subid("18_1267204702.05125") :method
.annotate "line", 4
$P49 = self."!PREFIX__!subrule"("identifier", "")
new $P50, "ResizablePMCArray"
@@ -712,7 +712,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ENDSTMT" :subid("19_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "ENDSTMT" :subid("19_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx55_tgt
.local int rx55_pos
@@ -844,7 +844,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT" :subid("20_1261064023.05912") :method
+.sub "!PREFIX__ENDSTMT" :subid("20_1267204702.05125") :method
.annotate "line", 4
new $P57, "ResizablePMCArray"
push $P57, ""
@@ -853,7 +853,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ws" :subid("21_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "ws" :subid("21_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx69_tgt
.local int rx69_pos
@@ -979,7 +979,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws" :subid("22_1261064023.05912") :method
+.sub "!PREFIX__ws" :subid("22_1267204702.05125") :method
.annotate "line", 4
new $P71, "ResizablePMCArray"
push $P71, ""
@@ -989,9 +989,9 @@
.namespace ["NQP";"Grammar"]
-.sub "unv" :subid("23_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "unv" :subid("23_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .const 'Sub' $P86 = "25_1261064023.05912"
+ .const 'Sub' $P86 = "25_1267204702.05125"
capture_lex $P86
.local string rx79_tgt
.local int rx79_pos
@@ -1037,7 +1037,7 @@
rxanchor84_done:
# rx subrule "before" subtype=zerowidth negate=
rx79_cur."!cursor_pos"(rx79_pos)
- .const 'Sub' $P86 = "25_1261064023.05912"
+ .const 'Sub' $P86 = "25_1267204702.05125"
capture_lex $P86
$P10 = rx79_cur."before"($P86)
unless $P10, rx79_fail
@@ -1116,7 +1116,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv" :subid("24_1261064023.05912") :method
+.sub "!PREFIX__unv" :subid("24_1267204702.05125") :method
.annotate "line", 4
new $P81, "ResizablePMCArray"
push $P81, ""
@@ -1127,7 +1127,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block85" :anon :subid("25_1261064023.05912") :method :outer("23_1261064023.05912")
+.sub "_block85" :anon :subid("25_1267204702.05125") :method :outer("23_1267204702.05125")
.annotate "line", 44
.local string rx87_tgt
.local int rx87_pos
@@ -1217,9 +1217,9 @@
.namespace ["NQP";"Grammar"]
-.sub "pod_comment" :subid("26_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "pod_comment" :subid("26_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .const 'Sub' $P131 = "28_1261064023.05912"
+ .const 'Sub' $P131 = "28_1267204702.05125"
capture_lex $P131
.local string rx97_tgt
.local int rx97_pos
@@ -1651,7 +1651,7 @@
.annotate "line", 67
# rx subrule "before" subtype=zerowidth negate=
rx97_cur."!cursor_pos"(rx97_pos)
- .const 'Sub' $P131 = "28_1261064023.05912"
+ .const 'Sub' $P131 = "28_1267204702.05125"
capture_lex $P131
$P10 = rx97_cur."before"($P131)
unless $P10, rx97_fail
@@ -1718,7 +1718,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment" :subid("27_1261064023.05912") :method
+.sub "!PREFIX__pod_comment" :subid("27_1267204702.05125") :method
.annotate "line", 4
new $P99, "ResizablePMCArray"
push $P99, ""
@@ -1727,7 +1727,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block130" :anon :subid("28_1261064023.05912") :method :outer("26_1261064023.05912")
+.sub "_block130" :anon :subid("28_1267204702.05125") :method :outer("26_1267204702.05125")
.annotate "line", 67
.local string rx132_tgt
.local int rx132_pos
@@ -1810,7 +1810,7 @@
.namespace ["NQP";"Grammar"]
-.sub "comp_unit" :subid("29_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "comp_unit" :subid("29_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx140_tgt
.local int rx140_pos
@@ -1889,7 +1889,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit" :subid("30_1261064023.05912") :method
+.sub "!PREFIX__comp_unit" :subid("30_1267204702.05125") :method
.annotate "line", 4
$P142 = self."!PREFIX__!subrule"("", "")
new $P143, "ResizablePMCArray"
@@ -1899,7 +1899,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statementlist" :subid("31_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statementlist" :subid("31_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx147_tgt
.local int rx147_pos
@@ -2007,7 +2007,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist" :subid("32_1261064023.05912") :method
+.sub "!PREFIX__statementlist" :subid("32_1267204702.05125") :method
.annotate "line", 4
new $P149, "ResizablePMCArray"
push $P149, ""
@@ -2017,9 +2017,9 @@
.namespace ["NQP";"Grammar"]
-.sub "statement" :subid("33_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement" :subid("33_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .const 'Sub' $P165 = "35_1261064023.05912"
+ .const 'Sub' $P165 = "35_1267204702.05125"
capture_lex $P165
.local string rx160_tgt
.local int rx160_pos
@@ -2029,7 +2029,7 @@
.local pmc rx160_cur
(rx160_cur, rx160_pos, rx160_tgt) = self."!cursor_start"()
rx160_cur."!cursor_debug"("START ", "statement")
- rx160_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+ rx160_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
.lex unicode:"$\x{a2}", rx160_cur
.local pmc match
.lex "$/", match
@@ -2054,7 +2054,7 @@
.annotate "line", 89
# rx subrule "before" subtype=zerowidth negate=1
rx160_cur."!cursor_pos"(rx160_pos)
- .const 'Sub' $P165 = "35_1261064023.05912"
+ .const 'Sub' $P165 = "35_1267204702.05125"
capture_lex $P165
$P10 = rx160_cur."before"($P165)
if $P10, rx160_fail
@@ -2085,7 +2085,7 @@
$P10 = rx160_cur."ws"()
unless $P10, rx160_fail
rx160_pos = $P10."pos"()
-.annotate "line", 96
+.annotate "line", 97
# rx rxquantr170 ** 0..1
set_addr $I174, rxquantr170_done
rx160_cur."!mark_push"(0, rx160_pos, $I174)
@@ -2095,6 +2095,15 @@
set_addr $I10, alt171_1
rx160_cur."!mark_push"(0, rx160_pos, $I10)
.annotate "line", 94
+ # rx subrule "MARKED" subtype=zerowidth negate=
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."MARKED"("endstmt")
+ unless $P10, rx160_fail
+ goto alt171_end
+ alt171_1:
+ set_addr $I10, alt171_2
+ rx160_cur."!mark_push"(0, rx160_pos, $I10)
+.annotate "line", 95
# rx subrule "statement_mod_cond" subtype=capture negate=
rx160_cur."!cursor_pos"(rx160_pos)
$P10 = rx160_cur."statement_mod_cond"()
@@ -2116,8 +2125,8 @@
(rx160_rep) = rx160_cur."!mark_commit"($I173)
rxquantr172_done:
goto alt171_end
- alt171_1:
-.annotate "line", 95
+ alt171_2:
+.annotate "line", 96
# rx subrule "statement_mod_loop" subtype=capture negate=
rx160_cur."!cursor_pos"(rx160_pos)
$P10 = rx160_cur."statement_mod_loop"()
@@ -2126,7 +2135,7 @@
$P10."!cursor_names"("statement_mod_loop")
rx160_pos = $P10."pos"()
alt171_end:
-.annotate "line", 96
+.annotate "line", 97
(rx160_rep) = rx160_cur."!mark_commit"($I174)
rxquantr170_done:
alt169_end:
@@ -2150,7 +2159,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement" :subid("34_1261064023.05912") :method
+.sub "!PREFIX__statement" :subid("34_1267204702.05125") :method
.annotate "line", 4
new $P162, "ResizablePMCArray"
push $P162, ""
@@ -2159,7 +2168,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block164" :anon :subid("35_1261064023.05912") :method :outer("33_1261064023.05912")
+.sub "_block164" :anon :subid("35_1267204702.05125") :method :outer("33_1267204702.05125")
.annotate "line", 89
.local string rx166_tgt
.local int rx166_pos
@@ -2223,7 +2232,7 @@
.namespace ["NQP";"Grammar"]
-.sub "eat_terminator" :subid("36_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "eat_terminator" :subid("36_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx176_tgt
.local int rx176_pos
@@ -2255,10 +2264,10 @@
rx176_cur."!mark_push"(0, rx176_pos, $I10)
rxscan179_done:
alt180_0:
-.annotate "line", 100
+.annotate "line", 101
set_addr $I10, alt180_1
rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 101
+.annotate "line", 102
# rx literal ";"
add $I11, rx176_pos, 1
gt $I11, rx176_eos, rx176_fail
@@ -2270,7 +2279,7 @@
alt180_1:
set_addr $I10, alt180_2
rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 102
+.annotate "line", 103
# rx subrule "MARKED" subtype=zerowidth negate=
rx176_cur."!cursor_pos"(rx176_pos)
$P10 = rx176_cur."MARKED"("endstmt")
@@ -2279,18 +2288,18 @@
alt180_2:
set_addr $I10, alt180_3
rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 103
+.annotate "line", 104
# rx subrule "terminator" subtype=zerowidth negate=
rx176_cur."!cursor_pos"(rx176_pos)
$P10 = rx176_cur."terminator"()
unless $P10, rx176_fail
goto alt180_end
alt180_3:
-.annotate "line", 104
+.annotate "line", 105
# rxanchor eos
ne rx176_pos, rx176_eos, rx176_fail
alt180_end:
-.annotate "line", 100
+.annotate "line", 101
# rx pass
rx176_cur."!cursor_pass"(rx176_pos, "eat_terminator")
rx176_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx176_pos)
@@ -2310,7 +2319,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator" :subid("37_1261064023.05912") :method
+.sub "!PREFIX__eat_terminator" :subid("37_1267204702.05125") :method
.annotate "line", 4
new $P178, "ResizablePMCArray"
push $P178, ""
@@ -2322,7 +2331,7 @@
.namespace ["NQP";"Grammar"]
-.sub "xblock" :subid("38_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "xblock" :subid("38_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx182_tgt
.local int rx182_pos
@@ -2353,7 +2362,7 @@
set_addr $I10, rxscan186_loop
rx182_cur."!mark_push"(0, rx182_pos, $I10)
rxscan186_done:
-.annotate "line", 108
+.annotate "line", 109
# rx subrule "EXPR" subtype=capture negate=
rx182_cur."!cursor_pos"(rx182_pos)
$P10 = rx182_cur."EXPR"()
@@ -2373,7 +2382,7 @@
rx182_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
rx182_pos = $P10."pos"()
-.annotate "line", 107
+.annotate "line", 108
# rx pass
rx182_cur."!cursor_pass"(rx182_pos, "xblock")
rx182_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx182_pos)
@@ -2393,7 +2402,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock" :subid("39_1261064023.05912") :method
+.sub "!PREFIX__xblock" :subid("39_1267204702.05125") :method
.annotate "line", 4
$P184 = self."!PREFIX__!subrule"("EXPR", "")
new $P185, "ResizablePMCArray"
@@ -2403,7 +2412,7 @@
.namespace ["NQP";"Grammar"]
-.sub "pblock" :subid("40_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "pblock" :subid("40_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx188_tgt
.local int rx188_pos
@@ -2435,22 +2444,22 @@
rx188_cur."!mark_push"(0, rx188_pos, $I10)
rxscan193_done:
alt194_0:
-.annotate "line", 111
+.annotate "line", 112
set_addr $I10, alt194_1
rx188_cur."!mark_push"(0, rx188_pos, $I10)
-.annotate "line", 112
+.annotate "line", 113
# rx subrule "lambda" subtype=method negate=
rx188_cur."!cursor_pos"(rx188_pos)
$P10 = rx188_cur."lambda"()
unless $P10, rx188_fail
rx188_pos = $P10."pos"()
-.annotate "line", 113
+.annotate "line", 114
# rx subrule "newpad" subtype=method negate=
rx188_cur."!cursor_pos"(rx188_pos)
$P10 = rx188_cur."newpad"()
unless $P10, rx188_fail
rx188_pos = $P10."pos"()
-.annotate "line", 114
+.annotate "line", 115
# rx subrule "signature" subtype=capture negate=
rx188_cur."!cursor_pos"(rx188_pos)
$P10 = rx188_cur."signature"()
@@ -2458,7 +2467,7 @@
rx188_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
rx188_pos = $P10."pos"()
-.annotate "line", 115
+.annotate "line", 116
# rx subrule "blockoid" subtype=capture negate=
rx188_cur."!cursor_pos"(rx188_pos)
$P10 = rx188_cur."blockoid"()
@@ -2466,25 +2475,25 @@
rx188_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
rx188_pos = $P10."pos"()
-.annotate "line", 112
+.annotate "line", 113
goto alt194_end
alt194_1:
set_addr $I10, alt194_2
rx188_cur."!mark_push"(0, rx188_pos, $I10)
-.annotate "line", 116
+.annotate "line", 117
# rx enumcharlist negate=0 zerowidth
ge rx188_pos, rx188_eos, rx188_fail
sub $I10, rx188_pos, rx188_off
substr $S10, rx188_tgt, $I10, 1
index $I11, "{", $S10
lt $I11, 0, rx188_fail
-.annotate "line", 117
+.annotate "line", 118
# rx subrule "newpad" subtype=method negate=
rx188_cur."!cursor_pos"(rx188_pos)
$P10 = rx188_cur."newpad"()
unless $P10, rx188_fail
rx188_pos = $P10."pos"()
-.annotate "line", 118
+.annotate "line", 119
# rx subrule "blockoid" subtype=capture negate=
rx188_cur."!cursor_pos"(rx188_pos)
$P10 = rx188_cur."blockoid"()
@@ -2492,17 +2501,17 @@
rx188_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
rx188_pos = $P10."pos"()
-.annotate "line", 116
+.annotate "line", 117
goto alt194_end
alt194_2:
-.annotate "line", 119
+.annotate "line", 120
# rx subrule "panic" subtype=method negate=
rx188_cur."!cursor_pos"(rx188_pos)
$P10 = rx188_cur."panic"("Missing block")
unless $P10, rx188_fail
rx188_pos = $P10."pos"()
alt194_end:
-.annotate "line", 111
+.annotate "line", 112
# rx pass
rx188_cur."!cursor_pass"(rx188_pos, "pblock")
rx188_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx188_pos)
@@ -2522,7 +2531,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock" :subid("41_1261064023.05912") :method
+.sub "!PREFIX__pblock" :subid("41_1267204702.05125") :method
.annotate "line", 4
$P190 = self."!PREFIX__!subrule"("", "")
$P191 = self."!PREFIX__!subrule"("", "")
@@ -2535,7 +2544,7 @@
.namespace ["NQP";"Grammar"]
-.sub "lambda" :subid("42_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "lambda" :subid("42_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx196_tgt
.local int rx196_pos
@@ -2567,7 +2576,7 @@
rx196_cur."!mark_push"(0, rx196_pos, $I10)
rxscan199_done:
alt200_0:
-.annotate "line", 122
+.annotate "line", 123
set_addr $I10, alt200_1
rx196_cur."!mark_push"(0, rx196_pos, $I10)
# rx literal "->"
@@ -2606,7 +2615,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda" :subid("43_1261064023.05912") :method
+.sub "!PREFIX__lambda" :subid("43_1267204702.05125") :method
.annotate "line", 4
new $P198, "ResizablePMCArray"
push $P198, "<->"
@@ -2616,7 +2625,7 @@
.namespace ["NQP";"Grammar"]
-.sub "block" :subid("44_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "block" :subid("44_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx202_tgt
.local int rx202_pos
@@ -2648,7 +2657,7 @@
rx202_cur."!mark_push"(0, rx202_pos, $I10)
rxscan206_done:
alt207_0:
-.annotate "line", 125
+.annotate "line", 126
set_addr $I10, alt207_1
rx202_cur."!mark_push"(0, rx202_pos, $I10)
# rx enumcharlist negate=0 zerowidth
@@ -2665,13 +2674,13 @@
unless $P10, rx202_fail
rx202_pos = $P10."pos"()
alt207_end:
-.annotate "line", 126
+.annotate "line", 127
# rx subrule "newpad" subtype=method negate=
rx202_cur."!cursor_pos"(rx202_pos)
$P10 = rx202_cur."newpad"()
unless $P10, rx202_fail
rx202_pos = $P10."pos"()
-.annotate "line", 127
+.annotate "line", 128
# rx subrule "blockoid" subtype=capture negate=
rx202_cur."!cursor_pos"(rx202_pos)
$P10 = rx202_cur."blockoid"()
@@ -2679,7 +2688,7 @@
rx202_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
rx202_pos = $P10."pos"()
-.annotate "line", 124
+.annotate "line", 125
# rx pass
rx202_cur."!cursor_pass"(rx202_pos, "block")
rx202_cur."!cursor_debug"("PASS ", "block", " at pos=", rx202_pos)
@@ -2699,7 +2708,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block" :subid("45_1261064023.05912") :method
+.sub "!PREFIX__block" :subid("45_1267204702.05125") :method
.annotate "line", 4
$P204 = self."!PREFIX__!subrule"("", "")
new $P205, "ResizablePMCArray"
@@ -2710,7 +2719,7 @@
.namespace ["NQP";"Grammar"]
-.sub "blockoid" :subid("46_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "blockoid" :subid("46_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx209_tgt
.local int rx209_pos
@@ -2741,13 +2750,13 @@
set_addr $I10, rxscan213_loop
rx209_cur."!mark_push"(0, rx209_pos, $I10)
rxscan213_done:
-.annotate "line", 131
+.annotate "line", 132
# rx subrule "finishpad" subtype=method negate=
rx209_cur."!cursor_pos"(rx209_pos)
$P10 = rx209_cur."finishpad"()
unless $P10, rx209_fail
rx209_pos = $P10."pos"()
-.annotate "line", 132
+.annotate "line", 133
# rx literal "{"
add $I11, rx209_pos, 1
gt $I11, rx209_eos, rx209_fail
@@ -2780,12 +2789,12 @@
unless $P10, rx209_fail
rx209_pos = $P10."pos"()
alt214_end:
-.annotate "line", 133
+.annotate "line", 134
# rx subrule "ENDSTMT" subtype=zerowidth negate=
rx209_cur."!cursor_pos"(rx209_pos)
$P10 = rx209_cur."ENDSTMT"()
unless $P10, rx209_fail
-.annotate "line", 130
+.annotate "line", 131
# rx pass
rx209_cur."!cursor_pass"(rx209_pos, "blockoid")
rx209_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx209_pos)
@@ -2805,7 +2814,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid" :subid("47_1261064023.05912") :method
+.sub "!PREFIX__blockoid" :subid("47_1267204702.05125") :method
.annotate "line", 4
$P211 = self."!PREFIX__!subrule"("", "")
new $P212, "ResizablePMCArray"
@@ -2815,7 +2824,7 @@
.namespace ["NQP";"Grammar"]
-.sub "newpad" :subid("48_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "newpad" :subid("48_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx217_tgt
.local int rx217_pos
@@ -2846,7 +2855,7 @@
set_addr $I10, rxscan220_loop
rx217_cur."!mark_push"(0, rx217_pos, $I10)
rxscan220_done:
-.annotate "line", 136
+.annotate "line", 137
# rx pass
rx217_cur."!cursor_pass"(rx217_pos, "newpad")
rx217_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx217_pos)
@@ -2866,7 +2875,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad" :subid("49_1261064023.05912") :method
+.sub "!PREFIX__newpad" :subid("49_1267204702.05125") :method
.annotate "line", 4
new $P219, "ResizablePMCArray"
push $P219, ""
@@ -2875,7 +2884,7 @@
.namespace ["NQP";"Grammar"]
-.sub "finishpad" :subid("50_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "finishpad" :subid("50_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx222_tgt
.local int rx222_pos
@@ -2906,7 +2915,7 @@
set_addr $I10, rxscan225_loop
rx222_cur."!mark_push"(0, rx222_pos, $I10)
rxscan225_done:
-.annotate "line", 137
+.annotate "line", 138
# rx pass
rx222_cur."!cursor_pass"(rx222_pos, "finishpad")
rx222_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx222_pos)
@@ -2926,7 +2935,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad" :subid("51_1261064023.05912") :method
+.sub "!PREFIX__finishpad" :subid("51_1267204702.05125") :method
.annotate "line", 4
new $P224, "ResizablePMCArray"
push $P224, ""
@@ -2935,23 +2944,23 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator" :subid("52_1261064023.05912") :method
-.annotate "line", 139
+.sub "terminator" :subid("52_1267204702.05125") :method
+.annotate "line", 140
$P227 = self."!protoregex"("terminator")
.return ($P227)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator" :subid("53_1261064023.05912") :method
-.annotate "line", 139
+.sub "!PREFIX__terminator" :subid("53_1267204702.05125") :method
+.annotate "line", 140
$P229 = self."!PREFIX__!protoregex"("terminator")
.return ($P229)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>" :subid("54_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "terminator:sym<;>" :subid("54_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx231_tgt
.local int rx231_pos
@@ -2982,7 +2991,7 @@
set_addr $I10, rxscan234_loop
rx231_cur."!mark_push"(0, rx231_pos, $I10)
rxscan234_done:
-.annotate "line", 141
+.annotate "line", 142
# rx enumcharlist negate=0 zerowidth
ge rx231_pos, rx231_eos, rx231_fail
sub $I10, rx231_pos, rx231_off
@@ -3008,7 +3017,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>" :subid("55_1261064023.05912") :method
+.sub "!PREFIX__terminator:sym<;>" :subid("55_1267204702.05125") :method
.annotate "line", 4
new $P233, "ResizablePMCArray"
push $P233, ";"
@@ -3017,7 +3026,7 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>" :subid("56_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "terminator:sym<}>" :subid("56_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx236_tgt
.local int rx236_pos
@@ -3048,7 +3057,7 @@
set_addr $I10, rxscan239_loop
rx236_cur."!mark_push"(0, rx236_pos, $I10)
rxscan239_done:
-.annotate "line", 142
+.annotate "line", 143
# rx enumcharlist negate=0 zerowidth
ge rx236_pos, rx236_eos, rx236_fail
sub $I10, rx236_pos, rx236_off
@@ -3074,7 +3083,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>" :subid("57_1261064023.05912") :method
+.sub "!PREFIX__terminator:sym<}>" :subid("57_1267204702.05125") :method
.annotate "line", 4
new $P238, "ResizablePMCArray"
push $P238, "}"
@@ -3083,23 +3092,23 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control" :subid("58_1261064023.05912") :method
-.annotate "line", 146
+.sub "statement_control" :subid("58_1267204702.05125") :method
+.annotate "line", 147
$P241 = self."!protoregex"("statement_control")
.return ($P241)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control" :subid("59_1261064023.05912") :method
-.annotate "line", 146
+.sub "!PREFIX__statement_control" :subid("59_1267204702.05125") :method
+.annotate "line", 147
$P243 = self."!PREFIX__!protoregex"("statement_control")
.return ($P243)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>" :subid("60_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<if>" :subid("60_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx245_tgt
.local int rx245_pos
@@ -3109,7 +3118,7 @@
.local pmc rx245_cur
(rx245_cur, rx245_pos, rx245_tgt) = self."!cursor_start"()
rx245_cur."!cursor_debug"("START ", "statement_control:sym<if>")
- rx245_cur."!cursor_caparray"("xblock", "else")
+ rx245_cur."!cursor_caparray"("else", "xblock")
.lex unicode:"$\x{a2}", rx245_cur
.local pmc match
.lex "$/", match
@@ -3131,7 +3140,7 @@
set_addr $I10, rxscan248_loop
rx245_cur."!mark_push"(0, rx245_pos, $I10)
rxscan248_done:
-.annotate "line", 149
+.annotate "line", 150
# rx subcapture "sym"
set_addr $I10, rxcap_249_fail
rx245_cur."!mark_push"(0, rx245_pos, $I10)
@@ -3164,7 +3173,7 @@
$P10 = rx245_cur."ws"()
unless $P10, rx245_fail
rx245_pos = $P10."pos"()
-.annotate "line", 150
+.annotate "line", 151
# rx subrule "xblock" subtype=capture negate=
rx245_cur."!cursor_pos"(rx245_pos)
$P10 = rx245_cur."xblock"()
@@ -3177,7 +3186,7 @@
$P10 = rx245_cur."ws"()
unless $P10, rx245_fail
rx245_pos = $P10."pos"()
-.annotate "line", 151
+.annotate "line", 152
# rx rxquantr252 ** 0..*
set_addr $I256, rxquantr252_done
rx245_cur."!mark_push"(0, rx245_pos, $I256)
@@ -3226,7 +3235,7 @@
$P10 = rx245_cur."ws"()
unless $P10, rx245_fail
rx245_pos = $P10."pos"()
-.annotate "line", 152
+.annotate "line", 153
# rx rxquantr258 ** 0..1
set_addr $I262, rxquantr258_done
rx245_cur."!mark_push"(0, rx245_pos, $I262)
@@ -3273,7 +3282,7 @@
$P10 = rx245_cur."ws"()
unless $P10, rx245_fail
rx245_pos = $P10."pos"()
-.annotate "line", 148
+.annotate "line", 149
# rx pass
rx245_cur."!cursor_pass"(rx245_pos, "statement_control:sym<if>")
rx245_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx245_pos)
@@ -3293,7 +3302,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>" :subid("61_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<if>" :subid("61_1267204702.05125") :method
.annotate "line", 4
new $P247, "ResizablePMCArray"
push $P247, "if"
@@ -3302,9 +3311,9 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>" :subid("62_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<unless>" :subid("62_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .const 'Sub' $P275 = "64_1261064023.05912"
+ .const 'Sub' $P275 = "64_1267204702.05125"
capture_lex $P275
.local string rx265_tgt
.local int rx265_pos
@@ -3335,7 +3344,7 @@
set_addr $I10, rxscan268_loop
rx265_cur."!mark_push"(0, rx265_pos, $I10)
rxscan268_done:
-.annotate "line", 156
+.annotate "line", 157
# rx subcapture "sym"
set_addr $I10, rxcap_269_fail
rx265_cur."!mark_push"(0, rx265_pos, $I10)
@@ -3368,7 +3377,7 @@
$P10 = rx265_cur."ws"()
unless $P10, rx265_fail
rx265_pos = $P10."pos"()
-.annotate "line", 157
+.annotate "line", 158
# rx subrule "xblock" subtype=capture negate=
rx265_cur."!cursor_pos"(rx265_pos)
$P10 = rx265_cur."xblock"()
@@ -3382,7 +3391,7 @@
unless $P10, rx265_fail
rx265_pos = $P10."pos"()
alt272_0:
-.annotate "line", 158
+.annotate "line", 159
set_addr $I10, alt272_1
rx265_cur."!mark_push"(0, rx265_pos, $I10)
# rx subrule "ws" subtype=method negate=
@@ -3392,7 +3401,7 @@
rx265_pos = $P10."pos"()
# rx subrule "before" subtype=zerowidth negate=1
rx265_cur."!cursor_pos"(rx265_pos)
- .const 'Sub' $P275 = "64_1261064023.05912"
+ .const 'Sub' $P275 = "64_1267204702.05125"
capture_lex $P275
$P10 = rx265_cur."before"($P275)
if $P10, rx265_fail
@@ -3424,7 +3433,7 @@
$P10 = rx265_cur."ws"()
unless $P10, rx265_fail
rx265_pos = $P10."pos"()
-.annotate "line", 155
+.annotate "line", 156
# rx pass
rx265_cur."!cursor_pass"(rx265_pos, "statement_control:sym<unless>")
rx265_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx265_pos)
@@ -3444,7 +3453,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>" :subid("63_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<unless>" :subid("63_1267204702.05125") :method
.annotate "line", 4
new $P267, "ResizablePMCArray"
push $P267, "unless"
@@ -3453,8 +3462,8 @@
.namespace ["NQP";"Grammar"]
-.sub "_block274" :anon :subid("64_1261064023.05912") :method :outer("62_1261064023.05912")
-.annotate "line", 158
+.sub "_block274" :anon :subid("64_1267204702.05125") :method :outer("62_1267204702.05125")
+.annotate "line", 159
.local string rx276_tgt
.local int rx276_pos
.local int rx276_off
@@ -3509,7 +3518,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>" :subid("65_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<while>" :subid("65_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx283_tgt
.local int rx283_pos
@@ -3540,7 +3549,7 @@
set_addr $I10, rxscan286_loop
rx283_cur."!mark_push"(0, rx283_pos, $I10)
rxscan286_done:
-.annotate "line", 162
+.annotate "line", 163
# rx subcapture "sym"
set_addr $I10, rxcap_288_fail
rx283_cur."!mark_push"(0, rx283_pos, $I10)
@@ -3586,7 +3595,7 @@
$P10 = rx283_cur."ws"()
unless $P10, rx283_fail
rx283_pos = $P10."pos"()
-.annotate "line", 163
+.annotate "line", 164
# rx subrule "xblock" subtype=capture negate=
rx283_cur."!cursor_pos"(rx283_pos)
$P10 = rx283_cur."xblock"()
@@ -3599,7 +3608,7 @@
$P10 = rx283_cur."ws"()
unless $P10, rx283_fail
rx283_pos = $P10."pos"()
-.annotate "line", 161
+.annotate "line", 162
# rx pass
rx283_cur."!cursor_pass"(rx283_pos, "statement_control:sym<while>")
rx283_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx283_pos)
@@ -3619,7 +3628,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>" :subid("66_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<while>" :subid("66_1267204702.05125") :method
.annotate "line", 4
new $P285, "ResizablePMCArray"
push $P285, "until"
@@ -3629,7 +3638,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>" :subid("67_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<repeat>" :subid("67_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx292_tgt
.local int rx292_pos
@@ -3660,7 +3669,7 @@
set_addr $I10, rxscan295_loop
rx292_cur."!mark_push"(0, rx292_pos, $I10)
rxscan295_done:
-.annotate "line", 167
+.annotate "line", 168
# rx subcapture "sym"
set_addr $I10, rxcap_296_fail
rx292_cur."!mark_push"(0, rx292_pos, $I10)
@@ -3694,10 +3703,10 @@
unless $P10, rx292_fail
rx292_pos = $P10."pos"()
alt298_0:
-.annotate "line", 168
+.annotate "line", 169
set_addr $I10, alt298_1
rx292_cur."!mark_push"(0, rx292_pos, $I10)
-.annotate "line", 169
+.annotate "line", 170
# rx subrule "ws" subtype=method negate=
rx292_cur."!cursor_pos"(rx292_pos)
$P10 = rx292_cur."ws"()
@@ -3762,7 +3771,7 @@
rx292_pos = $P10."pos"()
goto alt298_end
alt298_1:
-.annotate "line", 170
+.annotate "line", 171
# rx subrule "ws" subtype=method negate=
rx292_cur."!cursor_pos"(rx292_pos)
$P10 = rx292_cur."ws"()
@@ -3838,13 +3847,13 @@
unless $P10, rx292_fail
rx292_pos = $P10."pos"()
alt298_end:
-.annotate "line", 171
+.annotate "line", 172
# rx subrule "ws" subtype=method negate=
rx292_cur."!cursor_pos"(rx292_pos)
$P10 = rx292_cur."ws"()
unless $P10, rx292_fail
rx292_pos = $P10."pos"()
-.annotate "line", 166
+.annotate "line", 167
# rx pass
rx292_cur."!cursor_pass"(rx292_pos, "statement_control:sym<repeat>")
rx292_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx292_pos)
@@ -3864,7 +3873,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>" :subid("68_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<repeat>" :subid("68_1267204702.05125") :method
.annotate "line", 4
new $P294, "ResizablePMCArray"
push $P294, "repeat"
@@ -3873,7 +3882,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>" :subid("69_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<for>" :subid("69_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx312_tgt
.local int rx312_pos
@@ -3904,7 +3913,7 @@
set_addr $I10, rxscan315_loop
rx312_cur."!mark_push"(0, rx312_pos, $I10)
rxscan315_done:
-.annotate "line", 175
+.annotate "line", 176
# rx subcapture "sym"
set_addr $I10, rxcap_316_fail
rx312_cur."!mark_push"(0, rx312_pos, $I10)
@@ -3937,7 +3946,7 @@
$P10 = rx312_cur."ws"()
unless $P10, rx312_fail
rx312_pos = $P10."pos"()
-.annotate "line", 176
+.annotate "line", 177
# rx subrule "xblock" subtype=capture negate=
rx312_cur."!cursor_pos"(rx312_pos)
$P10 = rx312_cur."xblock"()
@@ -3950,7 +3959,7 @@
$P10 = rx312_cur."ws"()
unless $P10, rx312_fail
rx312_pos = $P10."pos"()
-.annotate "line", 174
+.annotate "line", 175
# rx pass
rx312_cur."!cursor_pass"(rx312_pos, "statement_control:sym<for>")
rx312_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx312_pos)
@@ -3970,7 +3979,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>" :subid("70_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<for>" :subid("70_1267204702.05125") :method
.annotate "line", 4
new $P314, "ResizablePMCArray"
push $P314, "for"
@@ -3979,7 +3988,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>" :subid("71_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<CATCH>" :subid("71_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx320_tgt
.local int rx320_pos
@@ -4010,7 +4019,7 @@
set_addr $I10, rxscan323_loop
rx320_cur."!mark_push"(0, rx320_pos, $I10)
rxscan323_done:
-.annotate "line", 180
+.annotate "line", 181
# rx subcapture "sym"
set_addr $I10, rxcap_324_fail
rx320_cur."!mark_push"(0, rx320_pos, $I10)
@@ -4043,7 +4052,7 @@
$P10 = rx320_cur."ws"()
unless $P10, rx320_fail
rx320_pos = $P10."pos"()
-.annotate "line", 181
+.annotate "line", 182
# rx subrule "block" subtype=capture negate=
rx320_cur."!cursor_pos"(rx320_pos)
$P10 = rx320_cur."block"()
@@ -4056,7 +4065,7 @@
$P10 = rx320_cur."ws"()
unless $P10, rx320_fail
rx320_pos = $P10."pos"()
-.annotate "line", 179
+.annotate "line", 180
# rx pass
rx320_cur."!cursor_pass"(rx320_pos, "statement_control:sym<CATCH>")
rx320_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx320_pos)
@@ -4076,7 +4085,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>" :subid("72_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<CATCH>" :subid("72_1267204702.05125") :method
.annotate "line", 4
new $P322, "ResizablePMCArray"
push $P322, "CATCH"
@@ -4085,7 +4094,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>" :subid("73_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<CONTROL>" :subid("73_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx328_tgt
.local int rx328_pos
@@ -4116,7 +4125,7 @@
set_addr $I10, rxscan331_loop
rx328_cur."!mark_push"(0, rx328_pos, $I10)
rxscan331_done:
-.annotate "line", 185
+.annotate "line", 186
# rx subcapture "sym"
set_addr $I10, rxcap_332_fail
rx328_cur."!mark_push"(0, rx328_pos, $I10)
@@ -4149,7 +4158,7 @@
$P10 = rx328_cur."ws"()
unless $P10, rx328_fail
rx328_pos = $P10."pos"()
-.annotate "line", 186
+.annotate "line", 187
# rx subrule "block" subtype=capture negate=
rx328_cur."!cursor_pos"(rx328_pos)
$P10 = rx328_cur."block"()
@@ -4162,7 +4171,7 @@
$P10 = rx328_cur."ws"()
unless $P10, rx328_fail
rx328_pos = $P10."pos"()
-.annotate "line", 184
+.annotate "line", 185
# rx pass
rx328_cur."!cursor_pass"(rx328_pos, "statement_control:sym<CONTROL>")
rx328_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx328_pos)
@@ -4182,7 +4191,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("74_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("74_1267204702.05125") :method
.annotate "line", 4
new $P330, "ResizablePMCArray"
push $P330, "CONTROL"
@@ -4191,23 +4200,23 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix" :subid("75_1261064023.05912") :method
-.annotate "line", 189
+.sub "statement_prefix" :subid("75_1267204702.05125") :method
+.annotate "line", 190
$P336 = self."!protoregex"("statement_prefix")
.return ($P336)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix" :subid("76_1261064023.05912") :method
-.annotate "line", 189
+.sub "!PREFIX__statement_prefix" :subid("76_1267204702.05125") :method
+.annotate "line", 190
$P338 = self."!PREFIX__!protoregex"("statement_prefix")
.return ($P338)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>" :subid("77_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_prefix:sym<INIT>" :subid("77_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx340_tgt
.local int rx340_pos
@@ -4238,7 +4247,7 @@
set_addr $I10, rxscan344_loop
rx340_cur."!mark_push"(0, rx340_pos, $I10)
rxscan344_done:
-.annotate "line", 190
+.annotate "line", 191
# rx subcapture "sym"
set_addr $I10, rxcap_345_fail
rx340_cur."!mark_push"(0, rx340_pos, $I10)
@@ -4286,7 +4295,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("78_1261064023.05912") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("78_1267204702.05125") :method
.annotate "line", 4
$P342 = self."!PREFIX__!subrule"("blorst", "INIT")
new $P343, "ResizablePMCArray"
@@ -4296,7 +4305,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>" :subid("79_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_prefix:sym<try>" :subid("79_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx347_tgt
.local int rx347_pos
@@ -4327,7 +4336,7 @@
set_addr $I10, rxscan351_loop
rx347_cur."!mark_push"(0, rx347_pos, $I10)
rxscan351_done:
-.annotate "line", 193
+.annotate "line", 194
# rx subcapture "sym"
set_addr $I10, rxcap_352_fail
rx347_cur."!mark_push"(0, rx347_pos, $I10)
@@ -4349,7 +4358,7 @@
rxcap_352_fail:
goto rx347_fail
rxcap_352_done:
-.annotate "line", 194
+.annotate "line", 195
# rx subrule "blorst" subtype=capture negate=
rx347_cur."!cursor_pos"(rx347_pos)
$P10 = rx347_cur."blorst"()
@@ -4357,7 +4366,7 @@
rx347_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blorst")
rx347_pos = $P10."pos"()
-.annotate "line", 192
+.annotate "line", 193
# rx pass
rx347_cur."!cursor_pass"(rx347_pos, "statement_prefix:sym<try>")
rx347_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx347_pos)
@@ -4377,7 +4386,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>" :subid("80_1261064023.05912") :method
+.sub "!PREFIX__statement_prefix:sym<try>" :subid("80_1267204702.05125") :method
.annotate "line", 4
$P349 = self."!PREFIX__!subrule"("blorst", "try")
new $P350, "ResizablePMCArray"
@@ -4387,7 +4396,7 @@
.namespace ["NQP";"Grammar"]
-.sub "blorst" :subid("81_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "blorst" :subid("81_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx354_tgt
.local int rx354_pos
@@ -4418,7 +4427,7 @@
set_addr $I10, rxscan357_loop
rx354_cur."!mark_push"(0, rx354_pos, $I10)
rxscan357_done:
-.annotate "line", 198
+.annotate "line", 199
# rx charclass s
ge rx354_pos, rx354_eos, rx354_fail
sub $I10, rx354_pos, rx354_off
@@ -4456,7 +4465,7 @@
$P10."!cursor_names"("statement")
rx354_pos = $P10."pos"()
alt358_end:
-.annotate "line", 197
+.annotate "line", 198
# rx pass
rx354_cur."!cursor_pass"(rx354_pos, "blorst")
rx354_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx354_pos)
@@ -4476,7 +4485,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst" :subid("82_1261064023.05912") :method
+.sub "!PREFIX__blorst" :subid("82_1267204702.05125") :method
.annotate "line", 4
new $P356, "ResizablePMCArray"
push $P356, ""
@@ -4485,23 +4494,23 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond" :subid("83_1261064023.05912") :method
-.annotate "line", 203
+.sub "statement_mod_cond" :subid("83_1267204702.05125") :method
+.annotate "line", 204
$P360 = self."!protoregex"("statement_mod_cond")
.return ($P360)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond" :subid("84_1261064023.05912") :method
-.annotate "line", 203
+.sub "!PREFIX__statement_mod_cond" :subid("84_1267204702.05125") :method
+.annotate "line", 204
$P362 = self."!PREFIX__!protoregex"("statement_mod_cond")
.return ($P362)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>" :subid("85_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_cond:sym<if>" :subid("85_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx364_tgt
.local int rx364_pos
@@ -4532,7 +4541,7 @@
set_addr $I10, rxscan367_loop
rx364_cur."!mark_push"(0, rx364_pos, $I10)
rxscan367_done:
-.annotate "line", 205
+.annotate "line", 206
# rx subcapture "sym"
set_addr $I10, rxcap_368_fail
rx364_cur."!mark_push"(0, rx364_pos, $I10)
@@ -4590,7 +4599,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("86_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("86_1267204702.05125") :method
.annotate "line", 4
new $P366, "ResizablePMCArray"
push $P366, "if"
@@ -4599,7 +4608,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>" :subid("87_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_cond:sym<unless>" :subid("87_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx372_tgt
.local int rx372_pos
@@ -4630,7 +4639,7 @@
set_addr $I10, rxscan375_loop
rx372_cur."!mark_push"(0, rx372_pos, $I10)
rxscan375_done:
-.annotate "line", 206
+.annotate "line", 207
# rx subcapture "sym"
set_addr $I10, rxcap_376_fail
rx372_cur."!mark_push"(0, rx372_pos, $I10)
@@ -4688,7 +4697,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("88_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("88_1267204702.05125") :method
.annotate "line", 4
new $P374, "ResizablePMCArray"
push $P374, "unless"
@@ -4697,23 +4706,23 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop" :subid("89_1261064023.05912") :method
-.annotate "line", 208
+.sub "statement_mod_loop" :subid("89_1267204702.05125") :method
+.annotate "line", 209
$P380 = self."!protoregex"("statement_mod_loop")
.return ($P380)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop" :subid("90_1261064023.05912") :method
-.annotate "line", 208
+.sub "!PREFIX__statement_mod_loop" :subid("90_1267204702.05125") :method
+.annotate "line", 209
$P382 = self."!PREFIX__!protoregex"("statement_mod_loop")
.return ($P382)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>" :subid("91_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_loop:sym<while>" :subid("91_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx384_tgt
.local int rx384_pos
@@ -4744,7 +4753,7 @@
set_addr $I10, rxscan387_loop
rx384_cur."!mark_push"(0, rx384_pos, $I10)
rxscan387_done:
-.annotate "line", 210
+.annotate "line", 211
# rx subcapture "sym"
set_addr $I10, rxcap_388_fail
rx384_cur."!mark_push"(0, rx384_pos, $I10)
@@ -4802,7 +4811,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("92_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("92_1267204702.05125") :method
.annotate "line", 4
new $P386, "ResizablePMCArray"
push $P386, "while"
@@ -4811,7 +4820,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>" :subid("93_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_loop:sym<until>" :subid("93_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx392_tgt
.local int rx392_pos
@@ -4842,7 +4851,7 @@
set_addr $I10, rxscan395_loop
rx392_cur."!mark_push"(0, rx392_pos, $I10)
rxscan395_done:
-.annotate "line", 211
+.annotate "line", 212
# rx subcapture "sym"
set_addr $I10, rxcap_396_fail
rx392_cur."!mark_push"(0, rx392_pos, $I10)
@@ -4900,7 +4909,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("94_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("94_1267204702.05125") :method
.annotate "line", 4
new $P394, "ResizablePMCArray"
push $P394, "until"
@@ -4909,7 +4918,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>" :subid("95_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<fatarrow>" :subid("95_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx400_tgt
.local int rx400_pos
@@ -4940,7 +4949,7 @@
set_addr $I10, rxscan404_loop
rx400_cur."!mark_push"(0, rx400_pos, $I10)
rxscan404_done:
-.annotate "line", 215
+.annotate "line", 216
# rx subrule "fatarrow" subtype=capture negate=
rx400_cur."!cursor_pos"(rx400_pos)
$P10 = rx400_cur."fatarrow"()
@@ -4967,7 +4976,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>" :subid("96_1261064023.05912") :method
+.sub "!PREFIX__term:sym<fatarrow>" :subid("96_1267204702.05125") :method
.annotate "line", 4
$P402 = self."!PREFIX__!subrule"("fatarrow", "")
new $P403, "ResizablePMCArray"
@@ -4977,7 +4986,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>" :subid("97_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<colonpair>" :subid("97_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx406_tgt
.local int rx406_pos
@@ -5008,7 +5017,7 @@
set_addr $I10, rxscan410_loop
rx406_cur."!mark_push"(0, rx406_pos, $I10)
rxscan410_done:
-.annotate "line", 216
+.annotate "line", 217
# rx subrule "colonpair" subtype=capture negate=
rx406_cur."!cursor_pos"(rx406_pos)
$P10 = rx406_cur."colonpair"()
@@ -5035,7 +5044,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>" :subid("98_1261064023.05912") :method
+.sub "!PREFIX__term:sym<colonpair>" :subid("98_1267204702.05125") :method
.annotate "line", 4
$P408 = self."!PREFIX__!subrule"("colonpair", "")
new $P409, "ResizablePMCArray"
@@ -5045,7 +5054,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>" :subid("99_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<variable>" :subid("99_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx412_tgt
.local int rx412_pos
@@ -5076,7 +5085,7 @@
set_addr $I10, rxscan416_loop
rx412_cur."!mark_push"(0, rx412_pos, $I10)
rxscan416_done:
-.annotate "line", 217
+.annotate "line", 218
# rx subrule "variable" subtype=capture negate=
rx412_cur."!cursor_pos"(rx412_pos)
$P10 = rx412_cur."variable"()
@@ -5103,7 +5112,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>" :subid("100_1261064023.05912") :method
+.sub "!PREFIX__term:sym<variable>" :subid("100_1267204702.05125") :method
.annotate "line", 4
$P414 = self."!PREFIX__!subrule"("variable", "")
new $P415, "ResizablePMCArray"
@@ -5113,7 +5122,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>" :subid("101_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<package_declarator>" :subid("101_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx418_tgt
.local int rx418_pos
@@ -5144,7 +5153,7 @@
set_addr $I10, rxscan422_loop
rx418_cur."!mark_push"(0, rx418_pos, $I10)
rxscan422_done:
-.annotate "line", 218
+.annotate "line", 219
# rx subrule "package_declarator" subtype=capture negate=
rx418_cur."!cursor_pos"(rx418_pos)
$P10 = rx418_cur."package_declarator"()
@@ -5171,7 +5180,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>" :subid("102_1261064023.05912") :method
+.sub "!PREFIX__term:sym<package_declarator>" :subid("102_1267204702.05125") :method
.annotate "line", 4
$P420 = self."!PREFIX__!subrule"("package_declarator", "")
new $P421, "ResizablePMCArray"
@@ -5181,7 +5190,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>" :subid("103_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<scope_declarator>" :subid("103_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx424_tgt
.local int rx424_pos
@@ -5212,7 +5221,7 @@
set_addr $I10, rxscan428_loop
rx424_cur."!mark_push"(0, rx424_pos, $I10)
rxscan428_done:
-.annotate "line", 219
+.annotate "line", 220
# rx subrule "scope_declarator" subtype=capture negate=
rx424_cur."!cursor_pos"(rx424_pos)
$P10 = rx424_cur."scope_declarator"()
@@ -5239,7 +5248,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>" :subid("104_1261064023.05912") :method
+.sub "!PREFIX__term:sym<scope_declarator>" :subid("104_1267204702.05125") :method
.annotate "line", 4
$P426 = self."!PREFIX__!subrule"("scope_declarator", "")
new $P427, "ResizablePMCArray"
@@ -5249,7 +5258,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>" :subid("105_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<routine_declarator>" :subid("105_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx430_tgt
.local int rx430_pos
@@ -5280,7 +5289,7 @@
set_addr $I10, rxscan434_loop
rx430_cur."!mark_push"(0, rx430_pos, $I10)
rxscan434_done:
-.annotate "line", 220
+.annotate "line", 221
# rx subrule "routine_declarator" subtype=capture negate=
rx430_cur."!cursor_pos"(rx430_pos)
$P10 = rx430_cur."routine_declarator"()
@@ -5307,7 +5316,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>" :subid("106_1261064023.05912") :method
+.sub "!PREFIX__term:sym<routine_declarator>" :subid("106_1267204702.05125") :method
.annotate "line", 4
$P432 = self."!PREFIX__!subrule"("routine_declarator", "")
new $P433, "ResizablePMCArray"
@@ -5317,7 +5326,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>" :subid("107_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<regex_declarator>" :subid("107_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx436_tgt
.local int rx436_pos
@@ -5348,7 +5357,7 @@
set_addr $I10, rxscan440_loop
rx436_cur."!mark_push"(0, rx436_pos, $I10)
rxscan440_done:
-.annotate "line", 221
+.annotate "line", 222
# rx subrule "regex_declarator" subtype=capture negate=
rx436_cur."!cursor_pos"(rx436_pos)
$P10 = rx436_cur."regex_declarator"()
@@ -5375,7 +5384,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>" :subid("108_1261064023.05912") :method
+.sub "!PREFIX__term:sym<regex_declarator>" :subid("108_1267204702.05125") :method
.annotate "line", 4
$P438 = self."!PREFIX__!subrule"("regex_declarator", "")
new $P439, "ResizablePMCArray"
@@ -5385,7 +5394,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>" :subid("109_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<statement_prefix>" :subid("109_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx442_tgt
.local int rx442_pos
@@ -5416,7 +5425,7 @@
set_addr $I10, rxscan446_loop
rx442_cur."!mark_push"(0, rx442_pos, $I10)
rxscan446_done:
-.annotate "line", 222
+.annotate "line", 223
# rx subrule "statement_prefix" subtype=capture negate=
rx442_cur."!cursor_pos"(rx442_pos)
$P10 = rx442_cur."statement_prefix"()
@@ -5443,7 +5452,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>" :subid("110_1261064023.05912") :method
+.sub "!PREFIX__term:sym<statement_prefix>" :subid("110_1267204702.05125") :method
.annotate "line", 4
$P444 = self."!PREFIX__!subrule"("statement_prefix", "")
new $P445, "ResizablePMCArray"
@@ -5453,7 +5462,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>" :subid("111_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<lambda>" :subid("111_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx448_tgt
.local int rx448_pos
@@ -5484,7 +5493,7 @@
set_addr $I10, rxscan451_loop
rx448_cur."!mark_push"(0, rx448_pos, $I10)
rxscan451_done:
-.annotate "line", 223
+.annotate "line", 224
# rx subrule "lambda" subtype=zerowidth negate=
rx448_cur."!cursor_pos"(rx448_pos)
$P10 = rx448_cur."lambda"()
@@ -5515,7 +5524,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>" :subid("112_1261064023.05912") :method
+.sub "!PREFIX__term:sym<lambda>" :subid("112_1267204702.05125") :method
.annotate "line", 4
new $P450, "ResizablePMCArray"
push $P450, ""
@@ -5524,7 +5533,7 @@
.namespace ["NQP";"Grammar"]
-.sub "fatarrow" :subid("113_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "fatarrow" :subid("113_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx453_tgt
.local int rx453_pos
@@ -5555,7 +5564,7 @@
set_addr $I10, rxscan457_loop
rx453_cur."!mark_push"(0, rx453_pos, $I10)
rxscan457_done:
-.annotate "line", 226
+.annotate "line", 227
# rx subrule "identifier" subtype=capture negate=
rx453_cur."!cursor_pos"(rx453_pos)
$P10 = rx453_cur."identifier"()
@@ -5597,7 +5606,7 @@
rx453_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("val")
rx453_pos = $P10."pos"()
-.annotate "line", 225
+.annotate "line", 226
# rx pass
rx453_cur."!cursor_pass"(rx453_pos, "fatarrow")
rx453_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx453_pos)
@@ -5617,7 +5626,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow" :subid("114_1261064023.05912") :method
+.sub "!PREFIX__fatarrow" :subid("114_1267204702.05125") :method
.annotate "line", 4
$P455 = self."!PREFIX__!subrule"("key", "")
new $P456, "ResizablePMCArray"
@@ -5627,7 +5636,7 @@
.namespace ["NQP";"Grammar"]
-.sub "colonpair" :subid("115_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "colonpair" :subid("115_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx461_tgt
.local int rx461_pos
@@ -5659,7 +5668,7 @@
set_addr $I10, rxscan467_loop
rx461_cur."!mark_push"(0, rx461_pos, $I10)
rxscan467_done:
-.annotate "line", 230
+.annotate "line", 231
# rx literal ":"
add $I11, rx461_pos, 1
gt $I11, rx461_eos, rx461_fail
@@ -5668,10 +5677,10 @@
ne $S10, ":", rx461_fail
add rx461_pos, 1
alt468_0:
-.annotate "line", 231
+.annotate "line", 232
set_addr $I10, alt468_1
rx461_cur."!mark_push"(0, rx461_pos, $I10)
-.annotate "line", 232
+.annotate "line", 233
# rx subcapture "not"
set_addr $I10, rxcap_469_fail
rx461_cur."!mark_push"(0, rx461_pos, $I10)
@@ -5704,7 +5713,7 @@
alt468_1:
set_addr $I10, alt468_2
rx461_cur."!mark_push"(0, rx461_pos, $I10)
-.annotate "line", 233
+.annotate "line", 234
# rx subrule "identifier" subtype=capture negate=
rx461_cur."!cursor_pos"(rx461_pos)
$P10 = rx461_cur."identifier"()
@@ -5727,7 +5736,7 @@
rxquantr470_done:
goto alt468_end
alt468_2:
-.annotate "line", 234
+.annotate "line", 235
# rx subrule "circumfix" subtype=capture negate=
rx461_cur."!cursor_pos"(rx461_pos)
$P10 = rx461_cur."circumfix"()
@@ -5736,7 +5745,7 @@
$P10."!cursor_names"("circumfix")
rx461_pos = $P10."pos"()
alt468_end:
-.annotate "line", 229
+.annotate "line", 230
# rx pass
rx461_cur."!cursor_pass"(rx461_pos, "colonpair")
rx461_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx461_pos)
@@ -5756,7 +5765,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair" :subid("116_1261064023.05912") :method
+.sub "!PREFIX__colonpair" :subid("116_1267204702.05125") :method
.annotate "line", 4
$P463 = self."!PREFIX__!subrule"("circumfix", ":")
$P464 = self."!PREFIX__!subrule"("identifier", ":")
@@ -5770,7 +5779,7 @@
.namespace ["NQP";"Grammar"]
-.sub "variable" :subid("117_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "variable" :subid("117_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx473_tgt
.local int rx473_pos
@@ -5803,10 +5812,10 @@
rx473_cur."!mark_push"(0, rx473_pos, $I10)
rxscan478_done:
alt479_0:
-.annotate "line", 238
+.annotate "line", 239
set_addr $I10, alt479_1
rx473_cur."!mark_push"(0, rx473_pos, $I10)
-.annotate "line", 239
+.annotate "line", 240
# rx subrule "sigil" subtype=capture negate=
rx473_cur."!cursor_pos"(rx473_pos)
$P10 = rx473_cur."sigil"()
@@ -5838,7 +5847,7 @@
alt479_1:
set_addr $I10, alt479_2
rx473_cur."!mark_push"(0, rx473_pos, $I10)
-.annotate "line", 240
+.annotate "line", 241
# rx subrule "sigil" subtype=capture negate=
rx473_cur."!cursor_pos"(rx473_pos)
$P10 = rx473_cur."sigil"()
@@ -5861,7 +5870,7 @@
rx473_pos = $P10."pos"()
goto alt479_end
alt479_2:
-.annotate "line", 241
+.annotate "line", 242
# rx subcapture "sigil"
set_addr $I10, rxcap_482_fail
rx473_cur."!mark_push"(0, rx473_pos, $I10)
@@ -5905,7 +5914,7 @@
goto rx473_fail
rxcap_483_done:
alt479_end:
-.annotate "line", 238
+.annotate "line", 239
# rx pass
rx473_cur."!cursor_pass"(rx473_pos, "variable")
rx473_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx473_pos)
@@ -5925,7 +5934,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable" :subid("118_1261064023.05912") :method
+.sub "!PREFIX__variable" :subid("118_1267204702.05125") :method
.annotate "line", 4
$P475 = self."!PREFIX__!subrule"("sigil", "")
$P476 = self."!PREFIX__!subrule"("sigil", "")
@@ -5940,7 +5949,7 @@
.namespace ["NQP";"Grammar"]
-.sub "sigil" :subid("119_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "sigil" :subid("119_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx485_tgt
.local int rx485_pos
@@ -5971,7 +5980,7 @@
set_addr $I10, rxscan488_loop
rx485_cur."!mark_push"(0, rx485_pos, $I10)
rxscan488_done:
-.annotate "line", 244
+.annotate "line", 245
# rx enumcharlist negate=0
ge rx485_pos, rx485_eos, rx485_fail
sub $I10, rx485_pos, rx485_off
@@ -5998,7 +6007,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil" :subid("120_1261064023.05912") :method
+.sub "!PREFIX__sigil" :subid("120_1267204702.05125") :method
.annotate "line", 4
new $P487, "ResizablePMCArray"
push $P487, "&"
@@ -6010,7 +6019,7 @@
.namespace ["NQP";"Grammar"]
-.sub "twigil" :subid("121_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "twigil" :subid("121_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx490_tgt
.local int rx490_pos
@@ -6041,7 +6050,7 @@
set_addr $I10, rxscan493_loop
rx490_cur."!mark_push"(0, rx490_pos, $I10)
rxscan493_done:
-.annotate "line", 246
+.annotate "line", 247
# rx enumcharlist negate=0
ge rx490_pos, rx490_eos, rx490_fail
sub $I10, rx490_pos, rx490_off
@@ -6068,7 +6077,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil" :subid("122_1261064023.05912") :method
+.sub "!PREFIX__twigil" :subid("122_1267204702.05125") :method
.annotate "line", 4
new $P492, "ResizablePMCArray"
push $P492, "?"
@@ -6079,23 +6088,23 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator" :subid("123_1261064023.05912") :method
-.annotate "line", 248
+.sub "package_declarator" :subid("123_1267204702.05125") :method
+.annotate "line", 249
$P495 = self."!protoregex"("package_declarator")
.return ($P495)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator" :subid("124_1261064023.05912") :method
-.annotate "line", 248
+.sub "!PREFIX__package_declarator" :subid("124_1267204702.05125") :method
+.annotate "line", 249
$P497 = self."!PREFIX__!protoregex"("package_declarator")
.return ($P497)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>" :subid("125_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "package_declarator:sym<module>" :subid("125_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx499_tgt
.local int rx499_pos
@@ -6126,7 +6135,7 @@
set_addr $I10, rxscan503_loop
rx499_cur."!mark_push"(0, rx499_pos, $I10)
rxscan503_done:
-.annotate "line", 249
+.annotate "line", 250
# rx subcapture "sym"
set_addr $I10, rxcap_504_fail
rx499_cur."!mark_push"(0, rx499_pos, $I10)
@@ -6174,7 +6183,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>" :subid("126_1261064023.05912") :method
+.sub "!PREFIX__package_declarator:sym<module>" :subid("126_1267204702.05125") :method
.annotate "line", 4
$P501 = self."!PREFIX__!subrule"("package_def", "module")
new $P502, "ResizablePMCArray"
@@ -6184,7 +6193,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>" :subid("127_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "package_declarator:sym<class>" :subid("127_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx506_tgt
.local int rx506_pos
@@ -6215,7 +6224,7 @@
set_addr $I10, rxscan511_loop
rx506_cur."!mark_push"(0, rx506_pos, $I10)
rxscan511_done:
-.annotate "line", 250
+.annotate "line", 251
# rx subcapture "sym"
set_addr $I10, rxcap_513_fail
rx506_cur."!mark_push"(0, rx506_pos, $I10)
@@ -6276,7 +6285,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>" :subid("128_1261064023.05912") :method
+.sub "!PREFIX__package_declarator:sym<class>" :subid("128_1267204702.05125") :method
.annotate "line", 4
$P508 = self."!PREFIX__!subrule"("package_def", "grammar")
$P509 = self."!PREFIX__!subrule"("package_def", "class")
@@ -6288,7 +6297,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_def" :subid("129_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "package_def" :subid("129_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx515_tgt
.local int rx515_pos
@@ -6320,13 +6329,13 @@
set_addr $I10, rxscan518_loop
rx515_cur."!mark_push"(0, rx515_pos, $I10)
rxscan518_done:
-.annotate "line", 252
+.annotate "line", 253
# rx subrule "ws" subtype=method negate=
rx515_cur."!cursor_pos"(rx515_pos)
$P10 = rx515_cur."ws"()
unless $P10, rx515_fail
rx515_pos = $P10."pos"()
-.annotate "line", 253
+.annotate "line", 254
# rx subrule "name" subtype=capture negate=
rx515_cur."!cursor_pos"(rx515_pos)
$P10 = rx515_cur."name"()
@@ -6339,7 +6348,7 @@
$P10 = rx515_cur."ws"()
unless $P10, rx515_fail
rx515_pos = $P10."pos"()
-.annotate "line", 254
+.annotate "line", 255
# rx rxquantr521 ** 0..1
set_addr $I525, rxquantr521_done
rx515_cur."!mark_push"(0, rx515_pos, $I525)
@@ -6381,10 +6390,10 @@
unless $P10, rx515_fail
rx515_pos = $P10."pos"()
alt527_0:
-.annotate "line", 255
+.annotate "line", 256
set_addr $I10, alt527_1
rx515_cur."!mark_push"(0, rx515_pos, $I10)
-.annotate "line", 256
+.annotate "line", 257
# rx subrule "ws" subtype=method negate=
rx515_cur."!cursor_pos"(rx515_pos)
$P10 = rx515_cur."ws"()
@@ -6418,7 +6427,7 @@
alt527_1:
set_addr $I10, alt527_2
rx515_cur."!mark_push"(0, rx515_pos, $I10)
-.annotate "line", 257
+.annotate "line", 258
# rx subrule "ws" subtype=method negate=
rx515_cur."!cursor_pos"(rx515_pos)
$P10 = rx515_cur."ws"()
@@ -6449,7 +6458,7 @@
rx515_pos = $P10."pos"()
goto alt527_end
alt527_2:
-.annotate "line", 258
+.annotate "line", 259
# rx subrule "ws" subtype=method negate=
rx515_cur."!cursor_pos"(rx515_pos)
$P10 = rx515_cur."ws"()
@@ -6466,13 +6475,13 @@
unless $P10, rx515_fail
rx515_pos = $P10."pos"()
alt527_end:
-.annotate "line", 259
+.annotate "line", 260
# rx subrule "ws" subtype=method negate=
rx515_cur."!cursor_pos"(rx515_pos)
$P10 = rx515_cur."ws"()
unless $P10, rx515_fail
rx515_pos = $P10."pos"()
-.annotate "line", 252
+.annotate "line", 253
# rx pass
rx515_cur."!cursor_pass"(rx515_pos, "package_def")
rx515_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx515_pos)
@@ -6492,7 +6501,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def" :subid("130_1261064023.05912") :method
+.sub "!PREFIX__package_def" :subid("130_1267204702.05125") :method
.annotate "line", 4
new $P517, "ResizablePMCArray"
push $P517, ""
@@ -6501,23 +6510,23 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator" :subid("131_1261064023.05912") :method
-.annotate "line", 262
+.sub "scope_declarator" :subid("131_1267204702.05125") :method
+.annotate "line", 263
$P538 = self."!protoregex"("scope_declarator")
.return ($P538)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator" :subid("132_1261064023.05912") :method
-.annotate "line", 262
+.sub "!PREFIX__scope_declarator" :subid("132_1267204702.05125") :method
+.annotate "line", 263
$P540 = self."!PREFIX__!protoregex"("scope_declarator")
.return ($P540)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>" :subid("133_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scope_declarator:sym<my>" :subid("133_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx542_tgt
.local int rx542_pos
@@ -6548,7 +6557,7 @@
set_addr $I10, rxscan546_loop
rx542_cur."!mark_push"(0, rx542_pos, $I10)
rxscan546_done:
-.annotate "line", 263
+.annotate "line", 264
# rx subcapture "sym"
set_addr $I10, rxcap_547_fail
rx542_cur."!mark_push"(0, rx542_pos, $I10)
@@ -6596,7 +6605,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>" :subid("134_1261064023.05912") :method
+.sub "!PREFIX__scope_declarator:sym<my>" :subid("134_1267204702.05125") :method
.annotate "line", 4
$P544 = self."!PREFIX__!subrule"("scoped", "my")
new $P545, "ResizablePMCArray"
@@ -6606,7 +6615,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>" :subid("135_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scope_declarator:sym<our>" :subid("135_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx549_tgt
.local int rx549_pos
@@ -6637,7 +6646,7 @@
set_addr $I10, rxscan553_loop
rx549_cur."!mark_push"(0, rx549_pos, $I10)
rxscan553_done:
-.annotate "line", 264
+.annotate "line", 265
# rx subcapture "sym"
set_addr $I10, rxcap_554_fail
rx549_cur."!mark_push"(0, rx549_pos, $I10)
@@ -6685,7 +6694,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>" :subid("136_1261064023.05912") :method
+.sub "!PREFIX__scope_declarator:sym<our>" :subid("136_1267204702.05125") :method
.annotate "line", 4
$P551 = self."!PREFIX__!subrule"("scoped", "our")
new $P552, "ResizablePMCArray"
@@ -6695,7 +6704,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>" :subid("137_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scope_declarator:sym<has>" :subid("137_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx556_tgt
.local int rx556_pos
@@ -6726,7 +6735,7 @@
set_addr $I10, rxscan560_loop
rx556_cur."!mark_push"(0, rx556_pos, $I10)
rxscan560_done:
-.annotate "line", 265
+.annotate "line", 266
# rx subcapture "sym"
set_addr $I10, rxcap_561_fail
rx556_cur."!mark_push"(0, rx556_pos, $I10)
@@ -6774,7 +6783,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>" :subid("138_1261064023.05912") :method
+.sub "!PREFIX__scope_declarator:sym<has>" :subid("138_1267204702.05125") :method
.annotate "line", 4
$P558 = self."!PREFIX__!subrule"("scoped", "has")
new $P559, "ResizablePMCArray"
@@ -6784,9 +6793,9 @@
.namespace ["NQP";"Grammar"]
-.sub "scoped" :subid("139_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scoped" :subid("139_1267204702.05125") :method :outer("11_1267204702.05125")
.param pmc param_563
-.annotate "line", 267
+.annotate "line", 268
.lex "$*SCOPE", param_563
.annotate "line", 4
.local string rx564_tgt
@@ -6819,10 +6828,10 @@
rx564_cur."!mark_push"(0, rx564_pos, $I10)
rxscan567_done:
alt568_0:
-.annotate "line", 267
+.annotate "line", 268
set_addr $I10, alt568_1
rx564_cur."!mark_push"(0, rx564_pos, $I10)
-.annotate "line", 268
+.annotate "line", 269
# rx subrule "ws" subtype=method negate=
rx564_cur."!cursor_pos"(rx564_pos)
$P10 = rx564_cur."ws"()
@@ -6842,7 +6851,7 @@
rx564_pos = $P10."pos"()
goto alt568_end
alt568_1:
-.annotate "line", 269
+.annotate "line", 270
# rx subrule "ws" subtype=method negate=
rx564_cur."!cursor_pos"(rx564_pos)
$P10 = rx564_cur."ws"()
@@ -6861,7 +6870,7 @@
unless $P10, rx564_fail
rx564_pos = $P10."pos"()
alt568_end:
-.annotate "line", 267
+.annotate "line", 268
# rx pass
rx564_cur."!cursor_pass"(rx564_pos, "scoped")
rx564_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx564_pos)
@@ -6881,7 +6890,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped" :subid("140_1261064023.05912") :method
+.sub "!PREFIX__scoped" :subid("140_1267204702.05125") :method
.annotate "line", 4
new $P566, "ResizablePMCArray"
push $P566, ""
@@ -6891,7 +6900,7 @@
.namespace ["NQP";"Grammar"]
-.sub "variable_declarator" :subid("141_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "variable_declarator" :subid("141_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx574_tgt
.local int rx574_pos
@@ -6922,7 +6931,7 @@
set_addr $I10, rxscan578_loop
rx574_cur."!mark_push"(0, rx574_pos, $I10)
rxscan578_done:
-.annotate "line", 272
+.annotate "line", 273
# rx subrule "variable" subtype=capture negate=
rx574_cur."!cursor_pos"(rx574_pos)
$P10 = rx574_cur."variable"()
@@ -6949,7 +6958,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator" :subid("142_1261064023.05912") :method
+.sub "!PREFIX__variable_declarator" :subid("142_1267204702.05125") :method
.annotate "line", 4
$P576 = self."!PREFIX__!subrule"("variable", "")
new $P577, "ResizablePMCArray"
@@ -6959,23 +6968,23 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator" :subid("143_1261064023.05912") :method
-.annotate "line", 274
+.sub "routine_declarator" :subid("143_1267204702.05125") :method
+.annotate "line", 275
$P580 = self."!protoregex"("routine_declarator")
.return ($P580)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator" :subid("144_1261064023.05912") :method
-.annotate "line", 274
+.sub "!PREFIX__routine_declarator" :subid("144_1267204702.05125") :method
+.annotate "line", 275
$P582 = self."!PREFIX__!protoregex"("routine_declarator")
.return ($P582)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>" :subid("145_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "routine_declarator:sym<sub>" :subid("145_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx584_tgt
.local int rx584_pos
@@ -7006,7 +7015,7 @@
set_addr $I10, rxscan588_loop
rx584_cur."!mark_push"(0, rx584_pos, $I10)
rxscan588_done:
-.annotate "line", 275
+.annotate "line", 276
# rx subcapture "sym"
set_addr $I10, rxcap_589_fail
rx584_cur."!mark_push"(0, rx584_pos, $I10)
@@ -7054,7 +7063,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>" :subid("146_1261064023.05912") :method
+.sub "!PREFIX__routine_declarator:sym<sub>" :subid("146_1267204702.05125") :method
.annotate "line", 4
$P586 = self."!PREFIX__!subrule"("routine_def", "sub")
new $P587, "ResizablePMCArray"
@@ -7064,7 +7073,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>" :subid("147_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "routine_declarator:sym<method>" :subid("147_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx591_tgt
.local int rx591_pos
@@ -7095,7 +7104,7 @@
set_addr $I10, rxscan595_loop
rx591_cur."!mark_push"(0, rx591_pos, $I10)
rxscan595_done:
-.annotate "line", 276
+.annotate "line", 277
# rx subcapture "sym"
set_addr $I10, rxcap_596_fail
rx591_cur."!mark_push"(0, rx591_pos, $I10)
@@ -7143,7 +7152,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>" :subid("148_1261064023.05912") :method
+.sub "!PREFIX__routine_declarator:sym<method>" :subid("148_1267204702.05125") :method
.annotate "line", 4
$P593 = self."!PREFIX__!subrule"("method_def", "method")
new $P594, "ResizablePMCArray"
@@ -7153,7 +7162,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_def" :subid("149_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "routine_def" :subid("149_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx598_tgt
.local int rx598_pos
@@ -7163,7 +7172,7 @@
.local pmc rx598_cur
(rx598_cur, rx598_pos, rx598_tgt) = self."!cursor_start"()
rx598_cur."!cursor_debug"("START ", "routine_def")
- rx598_cur."!cursor_caparray"("sigil", "deflongname")
+ rx598_cur."!cursor_caparray"("deflongname", "sigil")
.lex unicode:"$\x{a2}", rx598_cur
.local pmc match
.lex "$/", match
@@ -7185,13 +7194,13 @@
set_addr $I10, rxscan601_loop
rx598_cur."!mark_push"(0, rx598_pos, $I10)
rxscan601_done:
-.annotate "line", 278
+.annotate "line", 279
# rx subrule "ws" subtype=method negate=
rx598_cur."!cursor_pos"(rx598_pos)
$P10 = rx598_cur."ws"()
unless $P10, rx598_fail
rx598_pos = $P10."pos"()
-.annotate "line", 279
+.annotate "line", 280
# rx rxquantr603 ** 0..1
set_addr $I609, rxquantr603_done
rx598_cur."!mark_push"(0, rx598_pos, $I609)
@@ -7247,7 +7256,7 @@
$P10 = rx598_cur."ws"()
unless $P10, rx598_fail
rx598_pos = $P10."pos"()
-.annotate "line", 280
+.annotate "line", 281
# rx subrule "newpad" subtype=method negate=
rx598_cur."!cursor_pos"(rx598_pos)
$P10 = rx598_cur."newpad"()
@@ -7259,7 +7268,7 @@
unless $P10, rx598_fail
rx598_pos = $P10."pos"()
alt612_0:
-.annotate "line", 281
+.annotate "line", 282
set_addr $I10, alt612_1
rx598_cur."!mark_push"(0, rx598_pos, $I10)
# rx subrule "ws" subtype=method negate=
@@ -7305,7 +7314,7 @@
rx598_pos = $P10."pos"()
goto alt612_end
alt612_1:
-.annotate "line", 282
+.annotate "line", 283
# rx subrule "ws" subtype=method negate=
rx598_cur."!cursor_pos"(rx598_pos)
$P10 = rx598_cur."ws"()
@@ -7327,7 +7336,7 @@
$P10 = rx598_cur."ws"()
unless $P10, rx598_fail
rx598_pos = $P10."pos"()
-.annotate "line", 283
+.annotate "line", 284
# rx subrule "blockoid" subtype=capture negate=
rx598_cur."!cursor_pos"(rx598_pos)
$P10 = rx598_cur."blockoid"()
@@ -7340,7 +7349,7 @@
$P10 = rx598_cur."ws"()
unless $P10, rx598_fail
rx598_pos = $P10."pos"()
-.annotate "line", 278
+.annotate "line", 279
# rx pass
rx598_cur."!cursor_pass"(rx598_pos, "routine_def")
rx598_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx598_pos)
@@ -7360,7 +7369,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def" :subid("150_1261064023.05912") :method
+.sub "!PREFIX__routine_def" :subid("150_1267204702.05125") :method
.annotate "line", 4
new $P600, "ResizablePMCArray"
push $P600, ""
@@ -7369,7 +7378,7 @@
.namespace ["NQP";"Grammar"]
-.sub "method_def" :subid("151_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "method_def" :subid("151_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx622_tgt
.local int rx622_pos
@@ -7401,13 +7410,13 @@
set_addr $I10, rxscan625_loop
rx622_cur."!mark_push"(0, rx622_pos, $I10)
rxscan625_done:
-.annotate "line", 286
+.annotate "line", 287
# rx subrule "ws" subtype=method negate=
rx622_cur."!cursor_pos"(rx622_pos)
$P10 = rx622_cur."ws"()
unless $P10, rx622_fail
rx622_pos = $P10."pos"()
-.annotate "line", 287
+.annotate "line", 288
# rx rxquantr627 ** 0..1
set_addr $I628, rxquantr627_done
rx622_cur."!mark_push"(0, rx622_pos, $I628)
@@ -7426,7 +7435,7 @@
$P10 = rx622_cur."ws"()
unless $P10, rx622_fail
rx622_pos = $P10."pos"()
-.annotate "line", 288
+.annotate "line", 289
# rx subrule "newpad" subtype=method negate=
rx622_cur."!cursor_pos"(rx622_pos)
$P10 = rx622_cur."newpad"()
@@ -7438,7 +7447,7 @@
unless $P10, rx622_fail
rx622_pos = $P10."pos"()
alt631_0:
-.annotate "line", 289
+.annotate "line", 290
set_addr $I10, alt631_1
rx622_cur."!mark_push"(0, rx622_pos, $I10)
# rx subrule "ws" subtype=method negate=
@@ -7484,7 +7493,7 @@
rx622_pos = $P10."pos"()
goto alt631_end
alt631_1:
-.annotate "line", 290
+.annotate "line", 291
# rx subrule "ws" subtype=method negate=
rx622_cur."!cursor_pos"(rx622_pos)
$P10 = rx622_cur."ws"()
@@ -7506,7 +7515,7 @@
$P10 = rx622_cur."ws"()
unless $P10, rx622_fail
rx622_pos = $P10."pos"()
-.annotate "line", 291
+.annotate "line", 292
# rx subrule "blockoid" subtype=capture negate=
rx622_cur."!cursor_pos"(rx622_pos)
$P10 = rx622_cur."blockoid"()
@@ -7519,7 +7528,7 @@
$P10 = rx622_cur."ws"()
unless $P10, rx622_fail
rx622_pos = $P10."pos"()
-.annotate "line", 286
+.annotate "line", 287
# rx pass
rx622_cur."!cursor_pass"(rx622_pos, "method_def")
rx622_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx622_pos)
@@ -7539,7 +7548,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def" :subid("152_1261064023.05912") :method
+.sub "!PREFIX__method_def" :subid("152_1267204702.05125") :method
.annotate "line", 4
new $P624, "ResizablePMCArray"
push $P624, ""
@@ -7548,7 +7557,7 @@
.namespace ["NQP";"Grammar"]
-.sub "signature" :subid("153_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "signature" :subid("153_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx641_tgt
.local int rx641_pos
@@ -7580,7 +7589,7 @@
set_addr $I10, rxscan644_loop
rx641_cur."!mark_push"(0, rx641_pos, $I10)
rxscan644_done:
-.annotate "line", 294
+.annotate "line", 295
# rx rxquantr645 ** 0..1
set_addr $I648, rxquantr645_done
rx641_cur."!mark_push"(0, rx641_pos, $I648)
@@ -7638,7 +7647,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature" :subid("154_1261064023.05912") :method
+.sub "!PREFIX__signature" :subid("154_1267204702.05125") :method
.annotate "line", 4
new $P643, "ResizablePMCArray"
push $P643, ""
@@ -7647,7 +7656,7 @@
.namespace ["NQP";"Grammar"]
-.sub "parameter" :subid("155_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "parameter" :subid("155_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx650_tgt
.local int rx650_pos
@@ -7680,10 +7689,10 @@
rx650_cur."!mark_push"(0, rx650_pos, $I10)
rxscan656_done:
alt657_0:
-.annotate "line", 297
+.annotate "line", 298
set_addr $I10, alt657_1
rx650_cur."!mark_push"(0, rx650_pos, $I10)
-.annotate "line", 298
+.annotate "line", 299
# rx subcapture "quant"
set_addr $I10, rxcap_658_fail
rx650_cur."!mark_push"(0, rx650_pos, $I10)
@@ -7715,7 +7724,7 @@
goto alt657_end
alt657_1:
alt659_0:
-.annotate "line", 299
+.annotate "line", 300
set_addr $I10, alt659_1
rx650_cur."!mark_push"(0, rx650_pos, $I10)
# rx subrule "param_var" subtype=capture negate=
@@ -7774,7 +7783,7 @@
goto rx650_fail
rxcap_661_done:
alt657_end:
-.annotate "line", 301
+.annotate "line", 302
# rx rxquantr662 ** 0..1
set_addr $I663, rxquantr662_done
rx650_cur."!mark_push"(0, rx650_pos, $I663)
@@ -7788,7 +7797,7 @@
rx650_pos = $P10."pos"()
(rx650_rep) = rx650_cur."!mark_commit"($I663)
rxquantr662_done:
-.annotate "line", 296
+.annotate "line", 297
# rx pass
rx650_cur."!cursor_pass"(rx650_pos, "parameter")
rx650_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx650_pos)
@@ -7808,7 +7817,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter" :subid("156_1261064023.05912") :method
+.sub "!PREFIX__parameter" :subid("156_1267204702.05125") :method
.annotate "line", 4
$P652 = self."!PREFIX__!subrule"("named_param", "")
$P653 = self."!PREFIX__!subrule"("param_var", "")
@@ -7822,7 +7831,7 @@
.namespace ["NQP";"Grammar"]
-.sub "param_var" :subid("157_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "param_var" :subid("157_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx665_tgt
.local int rx665_pos
@@ -7854,7 +7863,7 @@
set_addr $I10, rxscan669_loop
rx665_cur."!mark_push"(0, rx665_pos, $I10)
rxscan669_done:
-.annotate "line", 305
+.annotate "line", 306
# rx subrule "sigil" subtype=capture negate=
rx665_cur."!cursor_pos"(rx665_pos)
$P10 = rx665_cur."sigil"()
@@ -7876,7 +7885,7 @@
(rx665_rep) = rx665_cur."!mark_commit"($I671)
rxquantr670_done:
alt672_0:
-.annotate "line", 306
+.annotate "line", 307
set_addr $I10, alt672_1
rx665_cur."!mark_push"(0, rx665_pos, $I10)
# rx subrule "ident" subtype=capture negate=
@@ -7910,7 +7919,7 @@
goto rx665_fail
rxcap_673_done:
alt672_end:
-.annotate "line", 304
+.annotate "line", 305
# rx pass
rx665_cur."!cursor_pass"(rx665_pos, "param_var")
rx665_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx665_pos)
@@ -7930,7 +7939,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var" :subid("158_1261064023.05912") :method
+.sub "!PREFIX__param_var" :subid("158_1267204702.05125") :method
.annotate "line", 4
$P667 = self."!PREFIX__!subrule"("sigil", "")
new $P668, "ResizablePMCArray"
@@ -7940,7 +7949,7 @@
.namespace ["NQP";"Grammar"]
-.sub "named_param" :subid("159_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "named_param" :subid("159_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx675_tgt
.local int rx675_pos
@@ -7971,7 +7980,7 @@
set_addr $I10, rxscan679_loop
rx675_cur."!mark_push"(0, rx675_pos, $I10)
rxscan679_done:
-.annotate "line", 310
+.annotate "line", 311
# rx literal ":"
add $I11, rx675_pos, 1
gt $I11, rx675_eos, rx675_fail
@@ -7986,7 +7995,7 @@
rx675_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("param_var")
rx675_pos = $P10."pos"()
-.annotate "line", 309
+.annotate "line", 310
# rx pass
rx675_cur."!cursor_pass"(rx675_pos, "named_param")
rx675_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx675_pos)
@@ -8006,7 +8015,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param" :subid("160_1261064023.05912") :method
+.sub "!PREFIX__named_param" :subid("160_1267204702.05125") :method
.annotate "line", 4
$P677 = self."!PREFIX__!subrule"("param_var", ":")
new $P678, "ResizablePMCArray"
@@ -8016,7 +8025,7 @@
.namespace ["NQP";"Grammar"]
-.sub "default_value" :subid("161_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "default_value" :subid("161_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx681_tgt
.local int rx681_pos
@@ -8047,7 +8056,7 @@
set_addr $I10, rxscan684_loop
rx681_cur."!mark_push"(0, rx681_pos, $I10)
rxscan684_done:
-.annotate "line", 313
+.annotate "line", 314
# rx subrule "ws" subtype=method negate=
rx681_cur."!cursor_pos"(rx681_pos)
$P10 = rx681_cur."ws"()
@@ -8096,7 +8105,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value" :subid("162_1261064023.05912") :method
+.sub "!PREFIX__default_value" :subid("162_1267204702.05125") :method
.annotate "line", 4
new $P683, "ResizablePMCArray"
push $P683, ""
@@ -8105,7 +8114,7 @@
.namespace ["NQP";"Grammar"]
-.sub "regex_declarator" :subid("163_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "regex_declarator" :subid("163_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx689_tgt
.local int rx689_pos
@@ -8137,17 +8146,17 @@
set_addr $I10, rxscan692_loop
rx689_cur."!mark_push"(0, rx689_pos, $I10)
rxscan692_done:
-.annotate "line", 315
+.annotate "line", 316
# rx subrule "ws" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
alt694_0:
-.annotate "line", 316
+.annotate "line", 317
set_addr $I10, alt694_1
rx689_cur."!mark_push"(0, rx689_pos, $I10)
-.annotate "line", 317
+.annotate "line", 318
# rx subrule "ws" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."ws"()
@@ -8215,7 +8224,7 @@
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 318
+.annotate "line", 319
# rx subrule "deflongname" subtype=capture negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."deflongname"()
@@ -8228,7 +8237,16 @@
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 319
+ alt701_0:
+.annotate "line", 320
+ set_addr $I10, alt701_1
+ rx689_cur."!mark_push"(0, rx689_pos, $I10)
+.annotate "line", 321
+ # rx subrule "ws" subtype=method negate=
+ rx689_cur."!cursor_pos"(rx689_pos)
+ $P10 = rx689_cur."ws"()
+ unless $P10, rx689_fail
+ rx689_pos = $P10."pos"()
# rx literal "{"
add $I11, rx689_pos, 1
gt $I11, rx689_eos, rx689_fail
@@ -8269,20 +8287,45 @@
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 317
+ goto alt701_end
+ alt701_1:
+.annotate "line", 322
+ # rx subrule "ws" subtype=method negate=
+ rx689_cur."!cursor_pos"(rx689_pos)
+ $P10 = rx689_cur."ws"()
+ unless $P10, rx689_fail
+ rx689_pos = $P10."pos"()
+ # rx subrule "panic" subtype=method negate=
+ rx689_cur."!cursor_pos"(rx689_pos)
+ $P10 = rx689_cur."panic"("Proto regex body must be <...>")
+ unless $P10, rx689_fail
+ rx689_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx689_cur."!cursor_pos"(rx689_pos)
+ $P10 = rx689_cur."ws"()
+ unless $P10, rx689_fail
+ rx689_pos = $P10."pos"()
+ alt701_end:
+.annotate "line", 323
+ # rx subrule "ws" subtype=method negate=
+ rx689_cur."!cursor_pos"(rx689_pos)
+ $P10 = rx689_cur."ws"()
+ unless $P10, rx689_fail
+ rx689_pos = $P10."pos"()
+.annotate "line", 318
goto alt694_end
alt694_1:
-.annotate "line", 320
+.annotate "line", 324
# rx subrule "ws" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
# rx subcapture "sym"
- set_addr $I10, rxcap_706_fail
+ set_addr $I10, rxcap_711_fail
rx689_cur."!mark_push"(0, rx689_pos, $I10)
- alt705_0:
- set_addr $I10, alt705_1
+ alt710_0:
+ set_addr $I10, alt710_1
rx689_cur."!mark_push"(0, rx689_pos, $I10)
# rx literal "regex"
add $I11, rx689_pos, 5
@@ -8291,9 +8334,9 @@
substr $S10, rx689_tgt, $I11, 5
ne $S10, "regex", rx689_fail
add rx689_pos, 5
- goto alt705_end
- alt705_1:
- set_addr $I10, alt705_2
+ goto alt710_end
+ alt710_1:
+ set_addr $I10, alt710_2
rx689_cur."!mark_push"(0, rx689_pos, $I10)
# rx literal "token"
add $I11, rx689_pos, 5
@@ -8302,8 +8345,8 @@
substr $S10, rx689_tgt, $I11, 5
ne $S10, "token", rx689_fail
add rx689_pos, 5
- goto alt705_end
- alt705_2:
+ goto alt710_end
+ alt710_2:
# rx literal "rule"
add $I11, rx689_pos, 4
gt $I11, rx689_eos, rx689_fail
@@ -8311,24 +8354,24 @@
substr $S10, rx689_tgt, $I11, 4
ne $S10, "rule", rx689_fail
add rx689_pos, 4
- alt705_end:
- set_addr $I10, rxcap_706_fail
+ alt710_end:
+ set_addr $I10, rxcap_711_fail
($I12, $I11) = rx689_cur."!mark_peek"($I10)
rx689_cur."!cursor_pos"($I11)
($P10) = rx689_cur."!cursor_start"()
$P10."!cursor_pass"(rx689_pos, "")
rx689_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_706_done
- rxcap_706_fail:
+ goto rxcap_711_done
+ rxcap_711_fail:
goto rx689_fail
- rxcap_706_done:
+ rxcap_711_done:
# rx subrule "ws" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 321
+.annotate "line", 325
# rx subrule "deflongname" subtype=capture negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."deflongname"()
@@ -8341,7 +8384,7 @@
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 322
+.annotate "line", 326
# rx subrule "newpad" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."newpad"()
@@ -8352,11 +8395,11 @@
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 323
- # rx rxquantr710 ** 0..1
- set_addr $I715, rxquantr710_done
- rx689_cur."!mark_push"(0, rx689_pos, $I715)
- rxquantr710_loop:
+.annotate "line", 327
+ # rx rxquantr715 ** 0..1
+ set_addr $I720, rxquantr715_done
+ rx689_cur."!mark_push"(0, rx689_pos, $I720)
+ rxquantr715_loop:
# rx subrule "ws" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."ws"()
@@ -8398,14 +8441,14 @@
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
- (rx689_rep) = rx689_cur."!mark_commit"($I715)
- rxquantr710_done:
+ (rx689_rep) = rx689_cur."!mark_commit"($I720)
+ rxquantr715_done:
# rx subrule "ws" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 324
+.annotate "line", 328
# rx reduce name="regex_declarator" key="open"
rx689_cur."!cursor_pos"(rx689_pos)
rx689_cur."!reduce"("regex_declarator", "open")
@@ -8414,7 +8457,7 @@
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 325
+.annotate "line", 329
# rx literal "{"
add $I11, rx689_pos, 1
gt $I11, rx689_eos, rx689_fail
@@ -8446,13 +8489,13 @@
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
alt694_end:
-.annotate "line", 326
+.annotate "line", 330
# rx subrule "ws" subtype=method negate=
rx689_cur."!cursor_pos"(rx689_pos)
$P10 = rx689_cur."ws"()
unless $P10, rx689_fail
rx689_pos = $P10."pos"()
-.annotate "line", 315
+.annotate "line", 316
# rx pass
rx689_cur."!cursor_pass"(rx689_pos, "regex_declarator")
rx689_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx689_pos)
@@ -8472,7 +8515,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator" :subid("164_1261064023.05912") :method
+.sub "!PREFIX__regex_declarator" :subid("164_1267204702.05125") :method
.annotate "line", 4
new $P691, "ResizablePMCArray"
push $P691, ""
@@ -8481,1063 +8524,990 @@
.namespace ["NQP";"Grammar"]
-.sub "dotty" :subid("165_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "dotty" :subid("165_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx721_tgt
- .local int rx721_pos
- .local int rx721_off
- .local int rx721_eos
- .local int rx721_rep
- .local pmc rx721_cur
- (rx721_cur, rx721_pos, rx721_tgt) = self."!cursor_start"()
- rx721_cur."!cursor_debug"("START ", "dotty")
- rx721_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx721_cur
- .local pmc match
- .lex "$/", match
- length rx721_eos, rx721_tgt
- set rx721_off, 0
- lt rx721_pos, 2, rx721_start
- sub rx721_off, rx721_pos, 1
- substr rx721_tgt, rx721_tgt, rx721_off
- rx721_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan725_done
- goto rxscan725_scan
- rxscan725_loop:
- ($P10) = rx721_cur."from"()
- inc $P10
- set rx721_pos, $P10
- ge rx721_pos, rx721_eos, rxscan725_done
- rxscan725_scan:
- set_addr $I10, rxscan725_loop
- rx721_cur."!mark_push"(0, rx721_pos, $I10)
- rxscan725_done:
-.annotate "line", 330
+ .local string rx726_tgt
+ .local int rx726_pos
+ .local int rx726_off
+ .local int rx726_eos
+ .local int rx726_rep
+ .local pmc rx726_cur
+ (rx726_cur, rx726_pos, rx726_tgt) = self."!cursor_start"()
+ rx726_cur."!cursor_debug"("START ", "dotty")
+ rx726_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx726_cur
+ .local pmc match
+ .lex "$/", match
+ length rx726_eos, rx726_tgt
+ set rx726_off, 0
+ lt rx726_pos, 2, rx726_start
+ sub rx726_off, rx726_pos, 1
+ substr rx726_tgt, rx726_tgt, rx726_off
+ rx726_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan730_done
+ goto rxscan730_scan
+ rxscan730_loop:
+ ($P10) = rx726_cur."from"()
+ inc $P10
+ set rx726_pos, $P10
+ ge rx726_pos, rx726_eos, rxscan730_done
+ rxscan730_scan:
+ set_addr $I10, rxscan730_loop
+ rx726_cur."!mark_push"(0, rx726_pos, $I10)
+ rxscan730_done:
+.annotate "line", 334
# rx literal "."
- add $I11, rx721_pos, 1
- gt $I11, rx721_eos, rx721_fail
- sub $I11, rx721_pos, rx721_off
- substr $S10, rx721_tgt, $I11, 1
- ne $S10, ".", rx721_fail
- add rx721_pos, 1
- alt726_0:
-.annotate "line", 331
- set_addr $I10, alt726_1
- rx721_cur."!mark_push"(0, rx721_pos, $I10)
+ add $I11, rx726_pos, 1
+ gt $I11, rx726_eos, rx726_fail
+ sub $I11, rx726_pos, rx726_off
+ substr $S10, rx726_tgt, $I11, 1
+ ne $S10, ".", rx726_fail
+ add rx726_pos, 1
+ alt731_0:
+.annotate "line", 335
+ set_addr $I10, alt731_1
+ rx726_cur."!mark_push"(0, rx726_pos, $I10)
# rx subrule "identifier" subtype=capture negate=
- rx721_cur."!cursor_pos"(rx721_pos)
- $P10 = rx721_cur."identifier"()
- unless $P10, rx721_fail
- rx721_cur."!mark_push"(0, -1, 0, $P10)
+ rx726_cur."!cursor_pos"(rx726_pos)
+ $P10 = rx726_cur."identifier"()
+ unless $P10, rx726_fail
+ rx726_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("longname=identifier")
- rx721_pos = $P10."pos"()
- goto alt726_end
- alt726_1:
-.annotate "line", 332
+ rx726_pos = $P10."pos"()
+ goto alt731_end
+ alt731_1:
+.annotate "line", 336
# rx enumcharlist negate=0 zerowidth
- ge rx721_pos, rx721_eos, rx721_fail
- sub $I10, rx721_pos, rx721_off
- substr $S10, rx721_tgt, $I10, 1
+ ge rx726_pos, rx726_eos, rx726_fail
+ sub $I10, rx726_pos, rx726_off
+ substr $S10, rx726_tgt, $I10, 1
index $I11, "'\"", $S10
- lt $I11, 0, rx721_fail
+ lt $I11, 0, rx726_fail
# rx subrule "quote" subtype=capture negate=
- rx721_cur."!cursor_pos"(rx721_pos)
- $P10 = rx721_cur."quote"()
- unless $P10, rx721_fail
- rx721_cur."!mark_push"(0, -1, 0, $P10)
+ rx726_cur."!cursor_pos"(rx726_pos)
+ $P10 = rx726_cur."quote"()
+ unless $P10, rx726_fail
+ rx726_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote")
- rx721_pos = $P10."pos"()
- alt727_0:
-.annotate "line", 333
- set_addr $I10, alt727_1
- rx721_cur."!mark_push"(0, rx721_pos, $I10)
+ rx726_pos = $P10."pos"()
+ alt732_0:
+.annotate "line", 337
+ set_addr $I10, alt732_1
+ rx726_cur."!mark_push"(0, rx726_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx721_pos, rx721_eos, rx721_fail
- sub $I10, rx721_pos, rx721_off
- substr $S10, rx721_tgt, $I10, 1
+ ge rx726_pos, rx726_eos, rx726_fail
+ sub $I10, rx726_pos, rx726_off
+ substr $S10, rx726_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx721_fail
- goto alt727_end
- alt727_1:
+ lt $I11, 0, rx726_fail
+ goto alt732_end
+ alt732_1:
# rx subrule "panic" subtype=method negate=
- rx721_cur."!cursor_pos"(rx721_pos)
- $P10 = rx721_cur."panic"("Quoted method name requires parenthesized arguments")
- unless $P10, rx721_fail
- rx721_pos = $P10."pos"()
- alt727_end:
- alt726_end:
-.annotate "line", 339
- # rx rxquantr728 ** 0..1
- set_addr $I730, rxquantr728_done
- rx721_cur."!mark_push"(0, rx721_pos, $I730)
- rxquantr728_loop:
- alt729_0:
-.annotate "line", 336
- set_addr $I10, alt729_1
- rx721_cur."!mark_push"(0, rx721_pos, $I10)
-.annotate "line", 337
+ rx726_cur."!cursor_pos"(rx726_pos)
+ $P10 = rx726_cur."panic"("Quoted method name requires parenthesized arguments")
+ unless $P10, rx726_fail
+ rx726_pos = $P10."pos"()
+ alt732_end:
+ alt731_end:
+.annotate "line", 343
+ # rx rxquantr733 ** 0..1
+ set_addr $I735, rxquantr733_done
+ rx726_cur."!mark_push"(0, rx726_pos, $I735)
+ rxquantr733_loop:
+ alt734_0:
+.annotate "line", 340
+ set_addr $I10, alt734_1
+ rx726_cur."!mark_push"(0, rx726_pos, $I10)
+.annotate "line", 341
# rx enumcharlist negate=0 zerowidth
- ge rx721_pos, rx721_eos, rx721_fail
- sub $I10, rx721_pos, rx721_off
- substr $S10, rx721_tgt, $I10, 1
+ ge rx726_pos, rx726_eos, rx726_fail
+ sub $I10, rx726_pos, rx726_off
+ substr $S10, rx726_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx721_fail
+ lt $I11, 0, rx726_fail
# rx subrule "args" subtype=capture negate=
- rx721_cur."!cursor_pos"(rx721_pos)
- $P10 = rx721_cur."args"()
- unless $P10, rx721_fail
- rx721_cur."!mark_push"(0, -1, 0, $P10)
+ rx726_cur."!cursor_pos"(rx726_pos)
+ $P10 = rx726_cur."args"()
+ unless $P10, rx726_fail
+ rx726_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx721_pos = $P10."pos"()
- goto alt729_end
- alt729_1:
-.annotate "line", 338
+ rx726_pos = $P10."pos"()
+ goto alt734_end
+ alt734_1:
+.annotate "line", 342
# rx literal ":"
- add $I11, rx721_pos, 1
- gt $I11, rx721_eos, rx721_fail
- sub $I11, rx721_pos, rx721_off
- substr $S10, rx721_tgt, $I11, 1
- ne $S10, ":", rx721_fail
- add rx721_pos, 1
+ add $I11, rx726_pos, 1
+ gt $I11, rx726_eos, rx726_fail
+ sub $I11, rx726_pos, rx726_off
+ substr $S10, rx726_tgt, $I11, 1
+ ne $S10, ":", rx726_fail
+ add rx726_pos, 1
# rx charclass s
- ge rx721_pos, rx721_eos, rx721_fail
- sub $I10, rx721_pos, rx721_off
- is_cclass $I11, 32, rx721_tgt, $I10
- unless $I11, rx721_fail
- inc rx721_pos
+ ge rx726_pos, rx726_eos, rx726_fail
+ sub $I10, rx726_pos, rx726_off
+ is_cclass $I11, 32, rx726_tgt, $I10
+ unless $I11, rx726_fail
+ inc rx726_pos
# rx subrule "arglist" subtype=capture negate=
- rx721_cur."!cursor_pos"(rx721_pos)
- $P10 = rx721_cur."arglist"()
- unless $P10, rx721_fail
- rx721_cur."!mark_push"(0, -1, 0, $P10)
+ rx726_cur."!cursor_pos"(rx726_pos)
+ $P10 = rx726_cur."arglist"()
+ unless $P10, rx726_fail
+ rx726_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx721_pos = $P10."pos"()
- alt729_end:
-.annotate "line", 339
- (rx721_rep) = rx721_cur."!mark_commit"($I730)
- rxquantr728_done:
-.annotate "line", 329
+ rx726_pos = $P10."pos"()
+ alt734_end:
+.annotate "line", 343
+ (rx726_rep) = rx726_cur."!mark_commit"($I735)
+ rxquantr733_done:
+.annotate "line", 333
# rx pass
- rx721_cur."!cursor_pass"(rx721_pos, "dotty")
- rx721_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx721_pos)
- .return (rx721_cur)
- rx721_fail:
+ rx726_cur."!cursor_pass"(rx726_pos, "dotty")
+ rx726_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx726_pos)
+ .return (rx726_cur)
+ rx726_fail:
.annotate "line", 4
- (rx721_rep, rx721_pos, $I10, $P10) = rx721_cur."!mark_fail"(0)
- lt rx721_pos, -1, rx721_done
- eq rx721_pos, -1, rx721_fail
+ (rx726_rep, rx726_pos, $I10, $P10) = rx726_cur."!mark_fail"(0)
+ lt rx726_pos, -1, rx726_done
+ eq rx726_pos, -1, rx726_fail
jump $I10
- rx721_done:
- rx721_cur."!cursor_fail"()
- rx721_cur."!cursor_debug"("FAIL ", "dotty")
- .return (rx721_cur)
+ rx726_done:
+ rx726_cur."!cursor_fail"()
+ rx726_cur."!cursor_debug"("FAIL ", "dotty")
+ .return (rx726_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty" :subid("166_1261064023.05912") :method
+.sub "!PREFIX__dotty" :subid("166_1267204702.05125") :method
.annotate "line", 4
- $P723 = self."!PREFIX__!subrule"("longname=identifier", ".")
- new $P724, "ResizablePMCArray"
- push $P724, "'"
- push $P724, "\""
- push $P724, $P723
- .return ($P724)
+ $P728 = self."!PREFIX__!subrule"("longname=identifier", ".")
+ new $P729, "ResizablePMCArray"
+ push $P729, "'"
+ push $P729, "\""
+ push $P729, $P728
+ .return ($P729)
.end
.namespace ["NQP";"Grammar"]
-.sub "term" :subid("167_1261064023.05912") :method
-.annotate "line", 343
- $P732 = self."!protoregex"("term")
- .return ($P732)
+.sub "term" :subid("167_1267204702.05125") :method
+.annotate "line", 347
+ $P737 = self."!protoregex"("term")
+ .return ($P737)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term" :subid("168_1261064023.05912") :method
-.annotate "line", 343
- $P734 = self."!PREFIX__!protoregex"("term")
- .return ($P734)
+.sub "!PREFIX__term" :subid("168_1267204702.05125") :method
+.annotate "line", 347
+ $P739 = self."!PREFIX__!protoregex"("term")
+ .return ($P739)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<self>" :subid("169_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<self>" :subid("169_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx736_tgt
- .local int rx736_pos
- .local int rx736_off
- .local int rx736_eos
- .local int rx736_rep
- .local pmc rx736_cur
- (rx736_cur, rx736_pos, rx736_tgt) = self."!cursor_start"()
- rx736_cur."!cursor_debug"("START ", "term:sym<self>")
- .lex unicode:"$\x{a2}", rx736_cur
- .local pmc match
- .lex "$/", match
- length rx736_eos, rx736_tgt
- set rx736_off, 0
- lt rx736_pos, 2, rx736_start
- sub rx736_off, rx736_pos, 1
- substr rx736_tgt, rx736_tgt, rx736_off
- rx736_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan739_done
- goto rxscan739_scan
- rxscan739_loop:
- ($P10) = rx736_cur."from"()
- inc $P10
- set rx736_pos, $P10
- ge rx736_pos, rx736_eos, rxscan739_done
- rxscan739_scan:
- set_addr $I10, rxscan739_loop
- rx736_cur."!mark_push"(0, rx736_pos, $I10)
- rxscan739_done:
-.annotate "line", 345
+ .local string rx741_tgt
+ .local int rx741_pos
+ .local int rx741_off
+ .local int rx741_eos
+ .local int rx741_rep
+ .local pmc rx741_cur
+ (rx741_cur, rx741_pos, rx741_tgt) = self."!cursor_start"()
+ rx741_cur."!cursor_debug"("START ", "term:sym<self>")
+ .lex unicode:"$\x{a2}", rx741_cur
+ .local pmc match
+ .lex "$/", match
+ length rx741_eos, rx741_tgt
+ set rx741_off, 0
+ lt rx741_pos, 2, rx741_start
+ sub rx741_off, rx741_pos, 1
+ substr rx741_tgt, rx741_tgt, rx741_off
+ rx741_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan744_done
+ goto rxscan744_scan
+ rxscan744_loop:
+ ($P10) = rx741_cur."from"()
+ inc $P10
+ set rx741_pos, $P10
+ ge rx741_pos, rx741_eos, rxscan744_done
+ rxscan744_scan:
+ set_addr $I10, rxscan744_loop
+ rx741_cur."!mark_push"(0, rx741_pos, $I10)
+ rxscan744_done:
+.annotate "line", 349
# rx subcapture "sym"
- set_addr $I10, rxcap_740_fail
- rx736_cur."!mark_push"(0, rx736_pos, $I10)
+ set_addr $I10, rxcap_745_fail
+ rx741_cur."!mark_push"(0, rx741_pos, $I10)
# rx literal "self"
- add $I11, rx736_pos, 4
- gt $I11, rx736_eos, rx736_fail
- sub $I11, rx736_pos, rx736_off
- substr $S10, rx736_tgt, $I11, 4
- ne $S10, "self", rx736_fail
- add rx736_pos, 4
- set_addr $I10, rxcap_740_fail
- ($I12, $I11) = rx736_cur."!mark_peek"($I10)
- rx736_cur."!cursor_pos"($I11)
- ($P10) = rx736_cur."!cursor_start"()
- $P10."!cursor_pass"(rx736_pos, "")
- rx736_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx741_pos, 4
+ gt $I11, rx741_eos, rx741_fail
+ sub $I11, rx741_pos, rx741_off
+ substr $S10, rx741_tgt, $I11, 4
+ ne $S10, "self", rx741_fail
+ add rx741_pos, 4
+ set_addr $I10, rxcap_745_fail
+ ($I12, $I11) = rx741_cur."!mark_peek"($I10)
+ rx741_cur."!cursor_pos"($I11)
+ ($P10) = rx741_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx741_pos, "")
+ rx741_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_740_done
- rxcap_740_fail:
- goto rx736_fail
- rxcap_740_done:
+ goto rxcap_745_done
+ rxcap_745_fail:
+ goto rx741_fail
+ rxcap_745_done:
# rxanchor rwb
- le rx736_pos, 0, rx736_fail
- sub $I10, rx736_pos, rx736_off
- is_cclass $I11, 8192, rx736_tgt, $I10
- if $I11, rx736_fail
+ le rx741_pos, 0, rx741_fail
+ sub $I10, rx741_pos, rx741_off
+ is_cclass $I11, 8192, rx741_tgt, $I10
+ if $I11, rx741_fail
dec $I10
- is_cclass $I11, 8192, rx736_tgt, $I10
- unless $I11, rx736_fail
+ is_cclass $I11, 8192, rx741_tgt, $I10
+ unless $I11, rx741_fail
# rx pass
- rx736_cur."!cursor_pass"(rx736_pos, "term:sym<self>")
- rx736_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx736_pos)
- .return (rx736_cur)
- rx736_fail:
+ rx741_cur."!cursor_pass"(rx741_pos, "term:sym<self>")
+ rx741_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx741_pos)
+ .return (rx741_cur)
+ rx741_fail:
.annotate "line", 4
- (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
- lt rx736_pos, -1, rx736_done
- eq rx736_pos, -1, rx736_fail
+ (rx741_rep, rx741_pos, $I10, $P10) = rx741_cur."!mark_fail"(0)
+ lt rx741_pos, -1, rx741_done
+ eq rx741_pos, -1, rx741_fail
jump $I10
- rx736_done:
- rx736_cur."!cursor_fail"()
- rx736_cur."!cursor_debug"("FAIL ", "term:sym<self>")
- .return (rx736_cur)
+ rx741_done:
+ rx741_cur."!cursor_fail"()
+ rx741_cur."!cursor_debug"("FAIL ", "term:sym<self>")
+ .return (rx741_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>" :subid("170_1261064023.05912") :method
+.sub "!PREFIX__term:sym<self>" :subid("170_1267204702.05125") :method
.annotate "line", 4
- new $P738, "ResizablePMCArray"
- push $P738, "self"
- .return ($P738)
+ new $P743, "ResizablePMCArray"
+ push $P743, "self"
+ .return ($P743)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>" :subid("171_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<identifier>" :subid("171_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx742_tgt
- .local int rx742_pos
- .local int rx742_off
- .local int rx742_eos
- .local int rx742_rep
- .local pmc rx742_cur
- (rx742_cur, rx742_pos, rx742_tgt) = self."!cursor_start"()
- rx742_cur."!cursor_debug"("START ", "term:sym<identifier>")
- .lex unicode:"$\x{a2}", rx742_cur
+ .local string rx747_tgt
+ .local int rx747_pos
+ .local int rx747_off
+ .local int rx747_eos
+ .local int rx747_rep
+ .local pmc rx747_cur
+ (rx747_cur, rx747_pos, rx747_tgt) = self."!cursor_start"()
+ rx747_cur."!cursor_debug"("START ", "term:sym<identifier>")
+ .lex unicode:"$\x{a2}", rx747_cur
.local pmc match
.lex "$/", match
- length rx742_eos, rx742_tgt
- set rx742_off, 0
- lt rx742_pos, 2, rx742_start
- sub rx742_off, rx742_pos, 1
- substr rx742_tgt, rx742_tgt, rx742_off
- rx742_start:
+ length rx747_eos, rx747_tgt
+ set rx747_off, 0
+ lt rx747_pos, 2, rx747_start
+ sub rx747_off, rx747_pos, 1
+ substr rx747_tgt, rx747_tgt, rx747_off
+ rx747_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan746_done
- goto rxscan746_scan
- rxscan746_loop:
- ($P10) = rx742_cur."from"()
+ ne $I10, -1, rxscan751_done
+ goto rxscan751_scan
+ rxscan751_loop:
+ ($P10) = rx747_cur."from"()
inc $P10
- set rx742_pos, $P10
- ge rx742_pos, rx742_eos, rxscan746_done
- rxscan746_scan:
- set_addr $I10, rxscan746_loop
- rx742_cur."!mark_push"(0, rx742_pos, $I10)
- rxscan746_done:
-.annotate "line", 348
+ set rx747_pos, $P10
+ ge rx747_pos, rx747_eos, rxscan751_done
+ rxscan751_scan:
+ set_addr $I10, rxscan751_loop
+ rx747_cur."!mark_push"(0, rx747_pos, $I10)
+ rxscan751_done:
+.annotate "line", 352
# rx subrule "identifier" subtype=capture negate=
- rx742_cur."!cursor_pos"(rx742_pos)
- $P10 = rx742_cur."identifier"()
- unless $P10, rx742_fail
- rx742_cur."!mark_push"(0, -1, 0, $P10)
+ rx747_cur."!cursor_pos"(rx747_pos)
+ $P10 = rx747_cur."identifier"()
+ unless $P10, rx747_fail
+ rx747_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx742_pos = $P10."pos"()
+ rx747_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx742_pos, rx742_eos, rx742_fail
- sub $I10, rx742_pos, rx742_off
- substr $S10, rx742_tgt, $I10, 1
+ ge rx747_pos, rx747_eos, rx747_fail
+ sub $I10, rx747_pos, rx747_off
+ substr $S10, rx747_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx742_fail
+ lt $I11, 0, rx747_fail
# rx subrule "args" subtype=capture negate=
- rx742_cur."!cursor_pos"(rx742_pos)
- $P10 = rx742_cur."args"()
- unless $P10, rx742_fail
- rx742_cur."!mark_push"(0, -1, 0, $P10)
+ rx747_cur."!cursor_pos"(rx747_pos)
+ $P10 = rx747_cur."args"()
+ unless $P10, rx747_fail
+ rx747_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx742_pos = $P10."pos"()
-.annotate "line", 347
+ rx747_pos = $P10."pos"()
+.annotate "line", 351
# rx pass
- rx742_cur."!cursor_pass"(rx742_pos, "term:sym<identifier>")
- rx742_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx742_pos)
- .return (rx742_cur)
- rx742_fail:
+ rx747_cur."!cursor_pass"(rx747_pos, "term:sym<identifier>")
+ rx747_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx747_pos)
+ .return (rx747_cur)
+ rx747_fail:
.annotate "line", 4
- (rx742_rep, rx742_pos, $I10, $P10) = rx742_cur."!mark_fail"(0)
- lt rx742_pos, -1, rx742_done
- eq rx742_pos, -1, rx742_fail
+ (rx747_rep, rx747_pos, $I10, $P10) = rx747_cur."!mark_fail"(0)
+ lt rx747_pos, -1, rx747_done
+ eq rx747_pos, -1, rx747_fail
jump $I10
- rx742_done:
- rx742_cur."!cursor_fail"()
- rx742_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
- .return (rx742_cur)
+ rx747_done:
+ rx747_cur."!cursor_fail"()
+ rx747_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
+ .return (rx747_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>" :subid("172_1261064023.05912") :method
+.sub "!PREFIX__term:sym<identifier>" :subid("172_1267204702.05125") :method
.annotate "line", 4
- $P744 = self."!PREFIX__!subrule"("identifier", "")
- new $P745, "ResizablePMCArray"
- push $P745, $P744
- .return ($P745)
+ $P749 = self."!PREFIX__!subrule"("identifier", "")
+ new $P750, "ResizablePMCArray"
+ push $P750, $P749
+ .return ($P750)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<name>" :subid("173_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<name>" :subid("173_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx748_tgt
- .local int rx748_pos
- .local int rx748_off
- .local int rx748_eos
- .local int rx748_rep
- .local pmc rx748_cur
- (rx748_cur, rx748_pos, rx748_tgt) = self."!cursor_start"()
- rx748_cur."!cursor_debug"("START ", "term:sym<name>")
- rx748_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx748_cur
+ .local string rx753_tgt
+ .local int rx753_pos
+ .local int rx753_off
+ .local int rx753_eos
+ .local int rx753_rep
+ .local pmc rx753_cur
+ (rx753_cur, rx753_pos, rx753_tgt) = self."!cursor_start"()
+ rx753_cur."!cursor_debug"("START ", "term:sym<name>")
+ rx753_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx753_cur
.local pmc match
.lex "$/", match
- length rx748_eos, rx748_tgt
- set rx748_off, 0
- lt rx748_pos, 2, rx748_start
- sub rx748_off, rx748_pos, 1
- substr rx748_tgt, rx748_tgt, rx748_off
- rx748_start:
+ length rx753_eos, rx753_tgt
+ set rx753_off, 0
+ lt rx753_pos, 2, rx753_start
+ sub rx753_off, rx753_pos, 1
+ substr rx753_tgt, rx753_tgt, rx753_off
+ rx753_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan752_done
- goto rxscan752_scan
- rxscan752_loop:
- ($P10) = rx748_cur."from"()
+ ne $I10, -1, rxscan757_done
+ goto rxscan757_scan
+ rxscan757_loop:
+ ($P10) = rx753_cur."from"()
inc $P10
- set rx748_pos, $P10
- ge rx748_pos, rx748_eos, rxscan752_done
- rxscan752_scan:
- set_addr $I10, rxscan752_loop
- rx748_cur."!mark_push"(0, rx748_pos, $I10)
- rxscan752_done:
-.annotate "line", 352
+ set rx753_pos, $P10
+ ge rx753_pos, rx753_eos, rxscan757_done
+ rxscan757_scan:
+ set_addr $I10, rxscan757_loop
+ rx753_cur."!mark_push"(0, rx753_pos, $I10)
+ rxscan757_done:
+.annotate "line", 356
# rx subrule "name" subtype=capture negate=
- rx748_cur."!cursor_pos"(rx748_pos)
- $P10 = rx748_cur."name"()
- unless $P10, rx748_fail
- rx748_cur."!mark_push"(0, -1, 0, $P10)
+ rx753_cur."!cursor_pos"(rx753_pos)
+ $P10 = rx753_cur."name"()
+ unless $P10, rx753_fail
+ rx753_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx748_pos = $P10."pos"()
- # rx rxquantr753 ** 0..1
- set_addr $I754, rxquantr753_done
- rx748_cur."!mark_push"(0, rx748_pos, $I754)
- rxquantr753_loop:
+ rx753_pos = $P10."pos"()
+ # rx rxquantr758 ** 0..1
+ set_addr $I759, rxquantr758_done
+ rx753_cur."!mark_push"(0, rx753_pos, $I759)
+ rxquantr758_loop:
# rx subrule "args" subtype=capture negate=
- rx748_cur."!cursor_pos"(rx748_pos)
- $P10 = rx748_cur."args"()
- unless $P10, rx748_fail
- rx748_cur."!mark_push"(0, -1, 0, $P10)
+ rx753_cur."!cursor_pos"(rx753_pos)
+ $P10 = rx753_cur."args"()
+ unless $P10, rx753_fail
+ rx753_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx748_pos = $P10."pos"()
- (rx748_rep) = rx748_cur."!mark_commit"($I754)
- rxquantr753_done:
-.annotate "line", 351
+ rx753_pos = $P10."pos"()
+ (rx753_rep) = rx753_cur."!mark_commit"($I759)
+ rxquantr758_done:
+.annotate "line", 355
# rx pass
- rx748_cur."!cursor_pass"(rx748_pos, "term:sym<name>")
- rx748_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx748_pos)
- .return (rx748_cur)
- rx748_fail:
+ rx753_cur."!cursor_pass"(rx753_pos, "term:sym<name>")
+ rx753_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx753_pos)
+ .return (rx753_cur)
+ rx753_fail:
.annotate "line", 4
- (rx748_rep, rx748_pos, $I10, $P10) = rx748_cur."!mark_fail"(0)
- lt rx748_pos, -1, rx748_done
- eq rx748_pos, -1, rx748_fail
+ (rx753_rep, rx753_pos, $I10, $P10) = rx753_cur."!mark_fail"(0)
+ lt rx753_pos, -1, rx753_done
+ eq rx753_pos, -1, rx753_fail
jump $I10
- rx748_done:
- rx748_cur."!cursor_fail"()
- rx748_cur."!cursor_debug"("FAIL ", "term:sym<name>")
- .return (rx748_cur)
+ rx753_done:
+ rx753_cur."!cursor_fail"()
+ rx753_cur."!cursor_debug"("FAIL ", "term:sym<name>")
+ .return (rx753_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>" :subid("174_1261064023.05912") :method
+.sub "!PREFIX__term:sym<name>" :subid("174_1267204702.05125") :method
.annotate "line", 4
- $P750 = self."!PREFIX__!subrule"("name", "")
- new $P751, "ResizablePMCArray"
- push $P751, $P750
- .return ($P751)
+ $P755 = self."!PREFIX__!subrule"("name", "")
+ new $P756, "ResizablePMCArray"
+ push $P756, $P755
+ .return ($P756)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>" :subid("175_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<pir::op>" :subid("175_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx756_tgt
- .local int rx756_pos
- .local int rx756_off
- .local int rx756_eos
- .local int rx756_rep
- .local pmc rx756_cur
- (rx756_cur, rx756_pos, rx756_tgt) = self."!cursor_start"()
- rx756_cur."!cursor_debug"("START ", "term:sym<pir::op>")
- rx756_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx756_cur
+ .local string rx761_tgt
+ .local int rx761_pos
+ .local int rx761_off
+ .local int rx761_eos
+ .local int rx761_rep
+ .local pmc rx761_cur
+ (rx761_cur, rx761_pos, rx761_tgt) = self."!cursor_start"()
+ rx761_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+ rx761_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx761_cur
.local pmc match
.lex "$/", match
- length rx756_eos, rx756_tgt
- set rx756_off, 0
- lt rx756_pos, 2, rx756_start
- sub rx756_off, rx756_pos, 1
- substr rx756_tgt, rx756_tgt, rx756_off
- rx756_start:
+ length rx761_eos, rx761_tgt
+ set rx761_off, 0
+ lt rx761_pos, 2, rx761_start
+ sub rx761_off, rx761_pos, 1
+ substr rx761_tgt, rx761_tgt, rx761_off
+ rx761_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan759_done
- goto rxscan759_scan
- rxscan759_loop:
- ($P10) = rx756_cur."from"()
+ ne $I10, -1, rxscan764_done
+ goto rxscan764_scan
+ rxscan764_loop:
+ ($P10) = rx761_cur."from"()
inc $P10
- set rx756_pos, $P10
- ge rx756_pos, rx756_eos, rxscan759_done
- rxscan759_scan:
- set_addr $I10, rxscan759_loop
- rx756_cur."!mark_push"(0, rx756_pos, $I10)
- rxscan759_done:
-.annotate "line", 356
+ set rx761_pos, $P10
+ ge rx761_pos, rx761_eos, rxscan764_done
+ rxscan764_scan:
+ set_addr $I10, rxscan764_loop
+ rx761_cur."!mark_push"(0, rx761_pos, $I10)
+ rxscan764_done:
+.annotate "line", 360
# rx literal "pir::"
- add $I11, rx756_pos, 5
- gt $I11, rx756_eos, rx756_fail
- sub $I11, rx756_pos, rx756_off
- substr $S10, rx756_tgt, $I11, 5
- ne $S10, "pir::", rx756_fail
- add rx756_pos, 5
+ add $I11, rx761_pos, 5
+ gt $I11, rx761_eos, rx761_fail
+ sub $I11, rx761_pos, rx761_off
+ substr $S10, rx761_tgt, $I11, 5
+ ne $S10, "pir::", rx761_fail
+ add rx761_pos, 5
# rx subcapture "op"
- set_addr $I10, rxcap_760_fail
- rx756_cur."!mark_push"(0, rx756_pos, $I10)
+ set_addr $I10, rxcap_765_fail
+ rx761_cur."!mark_push"(0, rx761_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx756_pos, rx756_off
- find_not_cclass $I11, 8192, rx756_tgt, $I10, rx756_eos
+ sub $I10, rx761_pos, rx761_off
+ find_not_cclass $I11, 8192, rx761_tgt, $I10, rx761_eos
add $I12, $I10, 1
- lt $I11, $I12, rx756_fail
- add rx756_pos, rx756_off, $I11
- set_addr $I10, rxcap_760_fail
- ($I12, $I11) = rx756_cur."!mark_peek"($I10)
- rx756_cur."!cursor_pos"($I11)
- ($P10) = rx756_cur."!cursor_start"()
- $P10."!cursor_pass"(rx756_pos, "")
- rx756_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx761_fail
+ add rx761_pos, rx761_off, $I11
+ set_addr $I10, rxcap_765_fail
+ ($I12, $I11) = rx761_cur."!mark_peek"($I10)
+ rx761_cur."!cursor_pos"($I11)
+ ($P10) = rx761_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx761_pos, "")
+ rx761_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("op")
- goto rxcap_760_done
- rxcap_760_fail:
- goto rx756_fail
- rxcap_760_done:
- # rx rxquantr761 ** 0..1
- set_addr $I762, rxquantr761_done
- rx756_cur."!mark_push"(0, rx756_pos, $I762)
- rxquantr761_loop:
+ goto rxcap_765_done
+ rxcap_765_fail:
+ goto rx761_fail
+ rxcap_765_done:
+ # rx rxquantr766 ** 0..1
+ set_addr $I767, rxquantr766_done
+ rx761_cur."!mark_push"(0, rx761_pos, $I767)
+ rxquantr766_loop:
# rx subrule "args" subtype=capture negate=
- rx756_cur."!cursor_pos"(rx756_pos)
- $P10 = rx756_cur."args"()
- unless $P10, rx756_fail
- rx756_cur."!mark_push"(0, -1, 0, $P10)
+ rx761_cur."!cursor_pos"(rx761_pos)
+ $P10 = rx761_cur."args"()
+ unless $P10, rx761_fail
+ rx761_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx756_pos = $P10."pos"()
- (rx756_rep) = rx756_cur."!mark_commit"($I762)
- rxquantr761_done:
-.annotate "line", 355
+ rx761_pos = $P10."pos"()
+ (rx761_rep) = rx761_cur."!mark_commit"($I767)
+ rxquantr766_done:
+.annotate "line", 359
# rx pass
- rx756_cur."!cursor_pass"(rx756_pos, "term:sym<pir::op>")
- rx756_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx756_pos)
- .return (rx756_cur)
- rx756_fail:
+ rx761_cur."!cursor_pass"(rx761_pos, "term:sym<pir::op>")
+ rx761_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx761_pos)
+ .return (rx761_cur)
+ rx761_fail:
.annotate "line", 4
- (rx756_rep, rx756_pos, $I10, $P10) = rx756_cur."!mark_fail"(0)
- lt rx756_pos, -1, rx756_done
- eq rx756_pos, -1, rx756_fail
+ (rx761_rep, rx761_pos, $I10, $P10) = rx761_cur."!mark_fail"(0)
+ lt rx761_pos, -1, rx761_done
+ eq rx761_pos, -1, rx761_fail
jump $I10
- rx756_done:
- rx756_cur."!cursor_fail"()
- rx756_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
- .return (rx756_cur)
+ rx761_done:
+ rx761_cur."!cursor_fail"()
+ rx761_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
+ .return (rx761_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>" :subid("176_1261064023.05912") :method
+.sub "!PREFIX__term:sym<pir::op>" :subid("176_1267204702.05125") :method
.annotate "line", 4
- new $P758, "ResizablePMCArray"
- push $P758, "pir::"
- .return ($P758)
+ new $P763, "ResizablePMCArray"
+ push $P763, "pir::"
+ .return ($P763)
.end
.namespace ["NQP";"Grammar"]
-.sub "args" :subid("177_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "args" :subid("177_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx764_tgt
- .local int rx764_pos
- .local int rx764_off
- .local int rx764_eos
- .local int rx764_rep
- .local pmc rx764_cur
- (rx764_cur, rx764_pos, rx764_tgt) = self."!cursor_start"()
- rx764_cur."!cursor_debug"("START ", "args")
- .lex unicode:"$\x{a2}", rx764_cur
+ .local string rx769_tgt
+ .local int rx769_pos
+ .local int rx769_off
+ .local int rx769_eos
+ .local int rx769_rep
+ .local pmc rx769_cur
+ (rx769_cur, rx769_pos, rx769_tgt) = self."!cursor_start"()
+ rx769_cur."!cursor_debug"("START ", "args")
+ .lex unicode:"$\x{a2}", rx769_cur
.local pmc match
.lex "$/", match
- length rx764_eos, rx764_tgt
- set rx764_off, 0
- lt rx764_pos, 2, rx764_start
- sub rx764_off, rx764_pos, 1
- substr rx764_tgt, rx764_tgt, rx764_off
- rx764_start:
+ length rx769_eos, rx769_tgt
+ set rx769_off, 0
+ lt rx769_pos, 2, rx769_start
+ sub rx769_off, rx769_pos, 1
+ substr rx769_tgt, rx769_tgt, rx769_off
+ rx769_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan768_done
- goto rxscan768_scan
- rxscan768_loop:
- ($P10) = rx764_cur."from"()
+ ne $I10, -1, rxscan773_done
+ goto rxscan773_scan
+ rxscan773_loop:
+ ($P10) = rx769_cur."from"()
inc $P10
- set rx764_pos, $P10
- ge rx764_pos, rx764_eos, rxscan768_done
- rxscan768_scan:
- set_addr $I10, rxscan768_loop
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
- rxscan768_done:
-.annotate "line", 360
+ set rx769_pos, $P10
+ ge rx769_pos, rx769_eos, rxscan773_done
+ rxscan773_scan:
+ set_addr $I10, rxscan773_loop
+ rx769_cur."!mark_push"(0, rx769_pos, $I10)
+ rxscan773_done:
+.annotate "line", 364
# rx literal "("
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, "(", rx764_fail
- add rx764_pos, 1
+ add $I11, rx769_pos, 1
+ gt $I11, rx769_eos, rx769_fail
+ sub $I11, rx769_pos, rx769_off
+ substr $S10, rx769_tgt, $I11, 1
+ ne $S10, "(", rx769_fail
+ add rx769_pos, 1
# rx subrule "arglist" subtype=capture negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."arglist"()
- unless $P10, rx764_fail
- rx764_cur."!mark_push"(0, -1, 0, $P10)
+ rx769_cur."!cursor_pos"(rx769_pos)
+ $P10 = rx769_cur."arglist"()
+ unless $P10, rx769_fail
+ rx769_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx764_pos = $P10."pos"()
+ rx769_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, ")", rx764_fail
- add rx764_pos, 1
+ add $I11, rx769_pos, 1
+ gt $I11, rx769_eos, rx769_fail
+ sub $I11, rx769_pos, rx769_off
+ substr $S10, rx769_tgt, $I11, 1
+ ne $S10, ")", rx769_fail
+ add rx769_pos, 1
# rx pass
- rx764_cur."!cursor_pass"(rx764_pos, "args")
- rx764_cur."!cursor_debug"("PASS ", "args", " at pos=", rx764_pos)
- .return (rx764_cur)
- rx764_fail:
+ rx769_cur."!cursor_pass"(rx769_pos, "args")
+ rx769_cur."!cursor_debug"("PASS ", "args", " at pos=", rx769_pos)
+ .return (rx769_cur)
+ rx769_fail:
.annotate "line", 4
- (rx764_rep, rx764_pos, $I10, $P10) = rx764_cur."!mark_fail"(0)
- lt rx764_pos, -1, rx764_done
- eq rx764_pos, -1, rx764_fail
+ (rx769_rep, rx769_pos, $I10, $P10) = rx769_cur."!mark_fail"(0)
+ lt rx769_pos, -1, rx769_done
+ eq rx769_pos, -1, rx769_fail
jump $I10
- rx764_done:
- rx764_cur."!cursor_fail"()
- rx764_cur."!cursor_debug"("FAIL ", "args")
- .return (rx764_cur)
+ rx769_done:
+ rx769_cur."!cursor_fail"()
+ rx769_cur."!cursor_debug"("FAIL ", "args")
+ .return (rx769_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args" :subid("178_1261064023.05912") :method
+.sub "!PREFIX__args" :subid("178_1267204702.05125") :method
.annotate "line", 4
- $P766 = self."!PREFIX__!subrule"("arglist", "(")
- new $P767, "ResizablePMCArray"
- push $P767, $P766
- .return ($P767)
+ $P771 = self."!PREFIX__!subrule"("arglist", "(")
+ new $P772, "ResizablePMCArray"
+ push $P772, $P771
+ .return ($P772)
.end
.namespace ["NQP";"Grammar"]
-.sub "arglist" :subid("179_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "arglist" :subid("179_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx770_tgt
- .local int rx770_pos
- .local int rx770_off
- .local int rx770_eos
- .local int rx770_rep
- .local pmc rx770_cur
- (rx770_cur, rx770_pos, rx770_tgt) = self."!cursor_start"()
- rx770_cur."!cursor_debug"("START ", "arglist")
- .lex unicode:"$\x{a2}", rx770_cur
- .local pmc match
- .lex "$/", match
- length rx770_eos, rx770_tgt
- set rx770_off, 0
- lt rx770_pos, 2, rx770_start
- sub rx770_off, rx770_pos, 1
- substr rx770_tgt, rx770_tgt, rx770_off
- rx770_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan774_done
- goto rxscan774_scan
- rxscan774_loop:
- ($P10) = rx770_cur."from"()
- inc $P10
- set rx770_pos, $P10
- ge rx770_pos, rx770_eos, rxscan774_done
- rxscan774_scan:
- set_addr $I10, rxscan774_loop
- rx770_cur."!mark_push"(0, rx770_pos, $I10)
- rxscan774_done:
-.annotate "line", 364
+ .local string rx775_tgt
+ .local int rx775_pos
+ .local int rx775_off
+ .local int rx775_eos
+ .local int rx775_rep
+ .local pmc rx775_cur
+ (rx775_cur, rx775_pos, rx775_tgt) = self."!cursor_start"()
+ rx775_cur."!cursor_debug"("START ", "arglist")
+ .lex unicode:"$\x{a2}", rx775_cur
+ .local pmc match
+ .lex "$/", match
+ length rx775_eos, rx775_tgt
+ set rx775_off, 0
+ lt rx775_pos, 2, rx775_start
+ sub rx775_off, rx775_pos, 1
+ substr rx775_tgt, rx775_tgt, rx775_off
+ rx775_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan779_done
+ goto rxscan779_scan
+ rxscan779_loop:
+ ($P10) = rx775_cur."from"()
+ inc $P10
+ set rx775_pos, $P10
+ ge rx775_pos, rx775_eos, rxscan779_done
+ rxscan779_scan:
+ set_addr $I10, rxscan779_loop
+ rx775_cur."!mark_push"(0, rx775_pos, $I10)
+ rxscan779_done:
+.annotate "line", 368
# rx subrule "ws" subtype=method negate=
- rx770_cur."!cursor_pos"(rx770_pos)
- $P10 = rx770_cur."ws"()
- unless $P10, rx770_fail
- rx770_pos = $P10."pos"()
- alt775_0:
-.annotate "line", 365
- set_addr $I10, alt775_1
- rx770_cur."!mark_push"(0, rx770_pos, $I10)
-.annotate "line", 366
+ rx775_cur."!cursor_pos"(rx775_pos)
+ $P10 = rx775_cur."ws"()
+ unless $P10, rx775_fail
+ rx775_pos = $P10."pos"()
+ alt780_0:
+.annotate "line", 369
+ set_addr $I10, alt780_1
+ rx775_cur."!mark_push"(0, rx775_pos, $I10)
+.annotate "line", 370
# rx subrule "EXPR" subtype=capture negate=
- rx770_cur."!cursor_pos"(rx770_pos)
- $P10 = rx770_cur."EXPR"("f=")
- unless $P10, rx770_fail
- rx770_cur."!mark_push"(0, -1, 0, $P10)
+ rx775_cur."!cursor_pos"(rx775_pos)
+ $P10 = rx775_cur."EXPR"("f=")
+ unless $P10, rx775_fail
+ rx775_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx770_pos = $P10."pos"()
- goto alt775_end
- alt775_1:
- alt775_end:
-.annotate "line", 363
+ rx775_pos = $P10."pos"()
+ goto alt780_end
+ alt780_1:
+ alt780_end:
+.annotate "line", 367
# rx pass
- rx770_cur."!cursor_pass"(rx770_pos, "arglist")
- rx770_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx770_pos)
- .return (rx770_cur)
- rx770_fail:
+ rx775_cur."!cursor_pass"(rx775_pos, "arglist")
+ rx775_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx775_pos)
+ .return (rx775_cur)
+ rx775_fail:
.annotate "line", 4
- (rx770_rep, rx770_pos, $I10, $P10) = rx770_cur."!mark_fail"(0)
- lt rx770_pos, -1, rx770_done
- eq rx770_pos, -1, rx770_fail
+ (rx775_rep, rx775_pos, $I10, $P10) = rx775_cur."!mark_fail"(0)
+ lt rx775_pos, -1, rx775_done
+ eq rx775_pos, -1, rx775_fail
jump $I10
- rx770_done:
- rx770_cur."!cursor_fail"()
- rx770_cur."!cursor_debug"("FAIL ", "arglist")
- .return (rx770_cur)
+ rx775_done:
+ rx775_cur."!cursor_fail"()
+ rx775_cur."!cursor_debug"("FAIL ", "arglist")
+ .return (rx775_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist" :subid("180_1261064023.05912") :method
+.sub "!PREFIX__arglist" :subid("180_1267204702.05125") :method
.annotate "line", 4
- $P772 = self."!PREFIX__!subrule"("", "")
- new $P773, "ResizablePMCArray"
- push $P773, $P772
- .return ($P773)
+ $P777 = self."!PREFIX__!subrule"("", "")
+ new $P778, "ResizablePMCArray"
+ push $P778, $P777
+ .return ($P778)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<value>" :subid("181_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<value>" :subid("181_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx777_tgt
- .local int rx777_pos
- .local int rx777_off
- .local int rx777_eos
- .local int rx777_rep
- .local pmc rx777_cur
- (rx777_cur, rx777_pos, rx777_tgt) = self."!cursor_start"()
- rx777_cur."!cursor_debug"("START ", "term:sym<value>")
- .lex unicode:"$\x{a2}", rx777_cur
+ .local string rx782_tgt
+ .local int rx782_pos
+ .local int rx782_off
+ .local int rx782_eos
+ .local int rx782_rep
+ .local pmc rx782_cur
+ (rx782_cur, rx782_pos, rx782_tgt) = self."!cursor_start"()
+ rx782_cur."!cursor_debug"("START ", "term:sym<value>")
+ .lex unicode:"$\x{a2}", rx782_cur
.local pmc match
.lex "$/", match
- length rx777_eos, rx777_tgt
- set rx777_off, 0
- lt rx777_pos, 2, rx777_start
- sub rx777_off, rx777_pos, 1
- substr rx777_tgt, rx777_tgt, rx777_off
- rx777_start:
+ length rx782_eos, rx782_tgt
+ set rx782_off, 0
+ lt rx782_pos, 2, rx782_start
+ sub rx782_off, rx782_pos, 1
+ substr rx782_tgt, rx782_tgt, rx782_off
+ rx782_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan781_done
- goto rxscan781_scan
- rxscan781_loop:
- ($P10) = rx777_cur."from"()
+ ne $I10, -1, rxscan786_done
+ goto rxscan786_scan
+ rxscan786_loop:
+ ($P10) = rx782_cur."from"()
inc $P10
- set rx777_pos, $P10
- ge rx777_pos, rx777_eos, rxscan781_done
- rxscan781_scan:
- set_addr $I10, rxscan781_loop
- rx777_cur."!mark_push"(0, rx777_pos, $I10)
- rxscan781_done:
-.annotate "line", 372
+ set rx782_pos, $P10
+ ge rx782_pos, rx782_eos, rxscan786_done
+ rxscan786_scan:
+ set_addr $I10, rxscan786_loop
+ rx782_cur."!mark_push"(0, rx782_pos, $I10)
+ rxscan786_done:
+.annotate "line", 376
# rx subrule "value" subtype=capture negate=
- rx777_cur."!cursor_pos"(rx777_pos)
- $P10 = rx777_cur."value"()
- unless $P10, rx777_fail
- rx777_cur."!mark_push"(0, -1, 0, $P10)
+ rx782_cur."!cursor_pos"(rx782_pos)
+ $P10 = rx782_cur."value"()
+ unless $P10, rx782_fail
+ rx782_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("value")
- rx777_pos = $P10."pos"()
+ rx782_pos = $P10."pos"()
# rx pass
- rx777_cur."!cursor_pass"(rx777_pos, "term:sym<value>")
- rx777_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx777_pos)
- .return (rx777_cur)
- rx777_fail:
+ rx782_cur."!cursor_pass"(rx782_pos, "term:sym<value>")
+ rx782_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx782_pos)
+ .return (rx782_cur)
+ rx782_fail:
.annotate "line", 4
- (rx777_rep, rx777_pos, $I10, $P10) = rx777_cur."!mark_fail"(0)
- lt rx777_pos, -1, rx777_done
- eq rx777_pos, -1, rx777_fail
+ (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
+ lt rx782_pos, -1, rx782_done
+ eq rx782_pos, -1, rx782_fail
jump $I10
- rx777_done:
- rx777_cur."!cursor_fail"()
- rx777_cur."!cursor_debug"("FAIL ", "term:sym<value>")
- .return (rx777_cur)
+ rx782_done:
+ rx782_cur."!cursor_fail"()
+ rx782_cur."!cursor_debug"("FAIL ", "term:sym<value>")
+ .return (rx782_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>" :subid("182_1261064023.05912") :method
+.sub "!PREFIX__term:sym<value>" :subid("182_1267204702.05125") :method
.annotate "line", 4
- $P779 = self."!PREFIX__!subrule"("value", "")
- new $P780, "ResizablePMCArray"
- push $P780, $P779
- .return ($P780)
+ $P784 = self."!PREFIX__!subrule"("value", "")
+ new $P785, "ResizablePMCArray"
+ push $P785, $P784
+ .return ($P785)
.end
.namespace ["NQP";"Grammar"]
-.sub "value" :subid("183_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "value" :subid("183_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx783_tgt
- .local int rx783_pos
- .local int rx783_off
- .local int rx783_eos
- .local int rx783_rep
- .local pmc rx783_cur
- (rx783_cur, rx783_pos, rx783_tgt) = self."!cursor_start"()
- rx783_cur."!cursor_debug"("START ", "value")
- .lex unicode:"$\x{a2}", rx783_cur
- .local pmc match
- .lex "$/", match
- length rx783_eos, rx783_tgt
- set rx783_off, 0
- lt rx783_pos, 2, rx783_start
- sub rx783_off, rx783_pos, 1
- substr rx783_tgt, rx783_tgt, rx783_off
- rx783_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan788_done
- goto rxscan788_scan
- rxscan788_loop:
- ($P10) = rx783_cur."from"()
- inc $P10
- set rx783_pos, $P10
- ge rx783_pos, rx783_eos, rxscan788_done
- rxscan788_scan:
- set_addr $I10, rxscan788_loop
- rx783_cur."!mark_push"(0, rx783_pos, $I10)
- rxscan788_done:
- alt789_0:
-.annotate "line", 374
- set_addr $I10, alt789_1
- rx783_cur."!mark_push"(0, rx783_pos, $I10)
-.annotate "line", 375
+ .local string rx788_tgt
+ .local int rx788_pos
+ .local int rx788_off
+ .local int rx788_eos
+ .local int rx788_rep
+ .local pmc rx788_cur
+ (rx788_cur, rx788_pos, rx788_tgt) = self."!cursor_start"()
+ rx788_cur."!cursor_debug"("START ", "value")
+ .lex unicode:"$\x{a2}", rx788_cur
+ .local pmc match
+ .lex "$/", match
+ length rx788_eos, rx788_tgt
+ set rx788_off, 0
+ lt rx788_pos, 2, rx788_start
+ sub rx788_off, rx788_pos, 1
+ substr rx788_tgt, rx788_tgt, rx788_off
+ rx788_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan793_done
+ goto rxscan793_scan
+ rxscan793_loop:
+ ($P10) = rx788_cur."from"()
+ inc $P10
+ set rx788_pos, $P10
+ ge rx788_pos, rx788_eos, rxscan793_done
+ rxscan793_scan:
+ set_addr $I10, rxscan793_loop
+ rx788_cur."!mark_push"(0, rx788_pos, $I10)
+ rxscan793_done:
+ alt794_0:
+.annotate "line", 378
+ set_addr $I10, alt794_1
+ rx788_cur."!mark_push"(0, rx788_pos, $I10)
+.annotate "line", 379
# rx subrule "quote" subtype=capture negate=
- rx783_cur."!cursor_pos"(rx783_pos)
- $P10 = rx783_cur."quote"()
- unless $P10, rx783_fail
- rx783_cur."!mark_push"(0, -1, 0, $P10)
+ rx788_cur."!cursor_pos"(rx788_pos)
+ $P10 = rx788_cur."quote"()
+ unless $P10, rx788_fail
+ rx788_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote")
- rx783_pos = $P10."pos"()
- goto alt789_end
- alt789_1:
-.annotate "line", 376
+ rx788_pos = $P10."pos"()
+ goto alt794_end
+ alt794_1:
+.annotate "line", 380
# rx subrule "number" subtype=capture negate=
- rx783_cur."!cursor_pos"(rx783_pos)
- $P10 = rx783_cur."number"()
- unless $P10, rx783_fail
- rx783_cur."!mark_push"(0, -1, 0, $P10)
+ rx788_cur."!cursor_pos"(rx788_pos)
+ $P10 = rx788_cur."number"()
+ unless $P10, rx788_fail
+ rx788_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("number")
- rx783_pos = $P10."pos"()
- alt789_end:
-.annotate "line", 374
+ rx788_pos = $P10."pos"()
+ alt794_end:
+.annotate "line", 378
# rx pass
- rx783_cur."!cursor_pass"(rx783_pos, "value")
- rx783_cur."!cursor_debug"("PASS ", "value", " at pos=", rx783_pos)
- .return (rx783_cur)
- rx783_fail:
+ rx788_cur."!cursor_pass"(rx788_pos, "value")
+ rx788_cur."!cursor_debug"("PASS ", "value", " at pos=", rx788_pos)
+ .return (rx788_cur)
+ rx788_fail:
.annotate "line", 4
- (rx783_rep, rx783_pos, $I10, $P10) = rx783_cur."!mark_fail"(0)
- lt rx783_pos, -1, rx783_done
- eq rx783_pos, -1, rx783_fail
+ (rx788_rep, rx788_pos, $I10, $P10) = rx788_cur."!mark_fail"(0)
+ lt rx788_pos, -1, rx788_done
+ eq rx788_pos, -1, rx788_fail
jump $I10
- rx783_done:
- rx783_cur."!cursor_fail"()
- rx783_cur."!cursor_debug"("FAIL ", "value")
- .return (rx783_cur)
+ rx788_done:
+ rx788_cur."!cursor_fail"()
+ rx788_cur."!cursor_debug"("FAIL ", "value")
+ .return (rx788_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value" :subid("184_1261064023.05912") :method
+.sub "!PREFIX__value" :subid("184_1267204702.05125") :method
.annotate "line", 4
- $P785 = self."!PREFIX__!subrule"("number", "")
- $P786 = self."!PREFIX__!subrule"("quote", "")
- new $P787, "ResizablePMCArray"
- push $P787, $P785
- push $P787, $P786
- .return ($P787)
+ $P790 = self."!PREFIX__!subrule"("number", "")
+ $P791 = self."!PREFIX__!subrule"("quote", "")
+ new $P792, "ResizablePMCArray"
+ push $P792, $P790
+ push $P792, $P791
+ .return ($P792)
.end
.namespace ["NQP";"Grammar"]
-.sub "number" :subid("185_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "number" :subid("185_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx791_tgt
- .local int rx791_pos
- .local int rx791_off
- .local int rx791_eos
- .local int rx791_rep
- .local pmc rx791_cur
- (rx791_cur, rx791_pos, rx791_tgt) = self."!cursor_start"()
- rx791_cur."!cursor_debug"("START ", "number")
- .lex unicode:"$\x{a2}", rx791_cur
- .local pmc match
- .lex "$/", match
- length rx791_eos, rx791_tgt
- set rx791_off, 0
- lt rx791_pos, 2, rx791_start
- sub rx791_off, rx791_pos, 1
- substr rx791_tgt, rx791_tgt, rx791_off
- rx791_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan794_done
- goto rxscan794_scan
- rxscan794_loop:
- ($P10) = rx791_cur."from"()
- inc $P10
- set rx791_pos, $P10
- ge rx791_pos, rx791_eos, rxscan794_done
- rxscan794_scan:
- set_addr $I10, rxscan794_loop
- rx791_cur."!mark_push"(0, rx791_pos, $I10)
- rxscan794_done:
-.annotate "line", 380
+ .local string rx796_tgt
+ .local int rx796_pos
+ .local int rx796_off
+ .local int rx796_eos
+ .local int rx796_rep
+ .local pmc rx796_cur
+ (rx796_cur, rx796_pos, rx796_tgt) = self."!cursor_start"()
+ rx796_cur."!cursor_debug"("START ", "number")
+ .lex unicode:"$\x{a2}", rx796_cur
+ .local pmc match
+ .lex "$/", match
+ length rx796_eos, rx796_tgt
+ set rx796_off, 0
+ lt rx796_pos, 2, rx796_start
+ sub rx796_off, rx796_pos, 1
+ substr rx796_tgt, rx796_tgt, rx796_off
+ rx796_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan799_done
+ goto rxscan799_scan
+ rxscan799_loop:
+ ($P10) = rx796_cur."from"()
+ inc $P10
+ set rx796_pos, $P10
+ ge rx796_pos, rx796_eos, rxscan799_done
+ rxscan799_scan:
+ set_addr $I10, rxscan799_loop
+ rx796_cur."!mark_push"(0, rx796_pos, $I10)
+ rxscan799_done:
+.annotate "line", 384
# rx subcapture "sign"
- set_addr $I10, rxcap_797_fail
- rx791_cur."!mark_push"(0, rx791_pos, $I10)
- # rx rxquantr795 ** 0..1
- set_addr $I796, rxquantr795_done
- rx791_cur."!mark_push"(0, rx791_pos, $I796)
- rxquantr795_loop:
+ set_addr $I10, rxcap_802_fail
+ rx796_cur."!mark_push"(0, rx796_pos, $I10)
+ # rx rxquantr800 ** 0..1
+ set_addr $I801, rxquantr800_done
+ rx796_cur."!mark_push"(0, rx796_pos, $I801)
+ rxquantr800_loop:
# rx enumcharlist negate=0
- ge rx791_pos, rx791_eos, rx791_fail
- sub $I10, rx791_pos, rx791_off
- substr $S10, rx791_tgt, $I10, 1
+ ge rx796_pos, rx796_eos, rx796_fail
+ sub $I10, rx796_pos, rx796_off
+ substr $S10, rx796_tgt, $I10, 1
index $I11, "+-", $S10
- lt $I11, 0, rx791_fail
- inc rx791_pos
- (rx791_rep) = rx791_cur."!mark_commit"($I796)
- rxquantr795_done:
- set_addr $I10, rxcap_797_fail
- ($I12, $I11) = rx791_cur."!mark_peek"($I10)
- rx791_cur."!cursor_pos"($I11)
- ($P10) = rx791_cur."!cursor_start"()
- $P10."!cursor_pass"(rx791_pos, "")
- rx791_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx796_fail
+ inc rx796_pos
+ (rx796_rep) = rx796_cur."!mark_commit"($I801)
+ rxquantr800_done:
+ set_addr $I10, rxcap_802_fail
+ ($I12, $I11) = rx796_cur."!mark_peek"($I10)
+ rx796_cur."!cursor_pos"($I11)
+ ($P10) = rx796_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx796_pos, "")
+ rx796_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sign")
- goto rxcap_797_done
- rxcap_797_fail:
- goto rx791_fail
- rxcap_797_done:
- alt798_0:
-.annotate "line", 381
- set_addr $I10, alt798_1
- rx791_cur."!mark_push"(0, rx791_pos, $I10)
+ goto rxcap_802_done
+ rxcap_802_fail:
+ goto rx796_fail
+ rxcap_802_done:
+ alt803_0:
+.annotate "line", 385
+ set_addr $I10, alt803_1
+ rx796_cur."!mark_push"(0, rx796_pos, $I10)
# rx subrule "dec_number" subtype=capture negate=
- rx791_cur."!cursor_pos"(rx791_pos)
- $P10 = rx791_cur."dec_number"()
- unless $P10, rx791_fail
- rx791_cur."!mark_push"(0, -1, 0, $P10)
+ rx796_cur."!cursor_pos"(rx796_pos)
+ $P10 = rx796_cur."dec_number"()
+ unless $P10, rx796_fail
+ rx796_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("dec_number")
- rx791_pos = $P10."pos"()
- goto alt798_end
- alt798_1:
+ rx796_pos = $P10."pos"()
+ goto alt803_end
+ alt803_1:
# rx subrule "integer" subtype=capture negate=
- rx791_cur."!cursor_pos"(rx791_pos)
- $P10 = rx791_cur."integer"()
- unless $P10, rx791_fail
- rx791_cur."!mark_push"(0, -1, 0, $P10)
+ rx796_cur."!cursor_pos"(rx796_pos)
+ $P10 = rx796_cur."integer"()
+ unless $P10, rx796_fail
+ rx796_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("integer")
- rx791_pos = $P10."pos"()
- alt798_end:
-.annotate "line", 379
+ rx796_pos = $P10."pos"()
+ alt803_end:
+.annotate "line", 383
# rx pass
- rx791_cur."!cursor_pass"(rx791_pos, "number")
- rx791_cur."!cursor_debug"("PASS ", "number", " at pos=", rx791_pos)
- .return (rx791_cur)
- rx791_fail:
+ rx796_cur."!cursor_pass"(rx796_pos, "number")
+ rx796_cur."!cursor_debug"("PASS ", "number", " at pos=", rx796_pos)
+ .return (rx796_cur)
+ rx796_fail:
.annotate "line", 4
- (rx791_rep, rx791_pos, $I10, $P10) = rx791_cur."!mark_fail"(0)
- lt rx791_pos, -1, rx791_done
- eq rx791_pos, -1, rx791_fail
+ (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
+ lt rx796_pos, -1, rx796_done
+ eq rx796_pos, -1, rx796_fail
jump $I10
- rx791_done:
- rx791_cur."!cursor_fail"()
- rx791_cur."!cursor_debug"("FAIL ", "number")
- .return (rx791_cur)
+ rx796_done:
+ rx796_cur."!cursor_fail"()
+ rx796_cur."!cursor_debug"("FAIL ", "number")
+ .return (rx796_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number" :subid("186_1261064023.05912") :method
+.sub "!PREFIX__number" :subid("186_1267204702.05125") :method
.annotate "line", 4
- new $P793, "ResizablePMCArray"
- push $P793, ""
- .return ($P793)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "quote" :subid("187_1261064023.05912") :method
-.annotate "line", 384
- $P800 = self."!protoregex"("quote")
- .return ($P800)
+ new $P798, "ResizablePMCArray"
+ push $P798, ""
+ .return ($P798)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote" :subid("188_1261064023.05912") :method
-.annotate "line", 384
- $P802 = self."!PREFIX__!protoregex"("quote")
- .return ($P802)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>" :subid("189_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 4
- .local string rx804_tgt
- .local int rx804_pos
- .local int rx804_off
- .local int rx804_eos
- .local int rx804_rep
- .local pmc rx804_cur
- (rx804_cur, rx804_pos, rx804_tgt) = self."!cursor_start"()
- rx804_cur."!cursor_debug"("START ", "quote:sym<apos>")
- .lex unicode:"$\x{a2}", rx804_cur
- .local pmc match
- .lex "$/", match
- length rx804_eos, rx804_tgt
- set rx804_off, 0
- lt rx804_pos, 2, rx804_start
- sub rx804_off, rx804_pos, 1
- substr rx804_tgt, rx804_tgt, rx804_off
- rx804_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan807_done
- goto rxscan807_scan
- rxscan807_loop:
- ($P10) = rx804_cur."from"()
- inc $P10
- set rx804_pos, $P10
- ge rx804_pos, rx804_eos, rxscan807_done
- rxscan807_scan:
- set_addr $I10, rxscan807_loop
- rx804_cur."!mark_push"(0, rx804_pos, $I10)
- rxscan807_done:
-.annotate "line", 385
- # rx enumcharlist negate=0 zerowidth
- ge rx804_pos, rx804_eos, rx804_fail
- sub $I10, rx804_pos, rx804_off
- substr $S10, rx804_tgt, $I10, 1
- index $I11, "'", $S10
- lt $I11, 0, rx804_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx804_cur."!cursor_pos"(rx804_pos)
- $P10 = rx804_cur."quote_EXPR"(":q")
- unless $P10, rx804_fail
- rx804_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx804_pos = $P10."pos"()
- # rx pass
- rx804_cur."!cursor_pass"(rx804_pos, "quote:sym<apos>")
- rx804_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx804_pos)
- .return (rx804_cur)
- rx804_fail:
-.annotate "line", 4
- (rx804_rep, rx804_pos, $I10, $P10) = rx804_cur."!mark_fail"(0)
- lt rx804_pos, -1, rx804_done
- eq rx804_pos, -1, rx804_fail
- jump $I10
- rx804_done:
- rx804_cur."!cursor_fail"()
- rx804_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
- .return (rx804_cur)
- .return ()
+.sub "quote" :subid("187_1267204702.05125") :method
+.annotate "line", 388
+ $P805 = self."!protoregex"("quote")
+ .return ($P805)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>" :subid("190_1261064023.05912") :method
-.annotate "line", 4
- new $P806, "ResizablePMCArray"
- push $P806, "'"
- .return ($P806)
+.sub "!PREFIX__quote" :subid("188_1267204702.05125") :method
+.annotate "line", 388
+ $P807 = self."!PREFIX__!protoregex"("quote")
+ .return ($P807)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>" :subid("191_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<apos>" :subid("189_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx809_tgt
.local int rx809_pos
@@ -9546,7 +9516,7 @@
.local int rx809_rep
.local pmc rx809_cur
(rx809_cur, rx809_pos, rx809_tgt) = self."!cursor_start"()
- rx809_cur."!cursor_debug"("START ", "quote:sym<dblq>")
+ rx809_cur."!cursor_debug"("START ", "quote:sym<apos>")
.lex unicode:"$\x{a2}", rx809_cur
.local pmc match
.lex "$/", match
@@ -9568,23 +9538,23 @@
set_addr $I10, rxscan812_loop
rx809_cur."!mark_push"(0, rx809_pos, $I10)
rxscan812_done:
-.annotate "line", 386
+.annotate "line", 389
# rx enumcharlist negate=0 zerowidth
ge rx809_pos, rx809_eos, rx809_fail
sub $I10, rx809_pos, rx809_off
substr $S10, rx809_tgt, $I10, 1
- index $I11, "\"", $S10
+ index $I11, "'", $S10
lt $I11, 0, rx809_fail
# rx subrule "quote_EXPR" subtype=capture negate=
rx809_cur."!cursor_pos"(rx809_pos)
- $P10 = rx809_cur."quote_EXPR"(":qq")
+ $P10 = rx809_cur."quote_EXPR"(":q")
unless $P10, rx809_fail
rx809_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
rx809_pos = $P10."pos"()
# rx pass
- rx809_cur."!cursor_pass"(rx809_pos, "quote:sym<dblq>")
- rx809_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx809_pos)
+ rx809_cur."!cursor_pass"(rx809_pos, "quote:sym<apos>")
+ rx809_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx809_pos)
.return (rx809_cur)
rx809_fail:
.annotate "line", 4
@@ -9594,23 +9564,23 @@
jump $I10
rx809_done:
rx809_cur."!cursor_fail"()
- rx809_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
+ rx809_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
.return (rx809_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>" :subid("192_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<apos>" :subid("190_1267204702.05125") :method
.annotate "line", 4
new $P811, "ResizablePMCArray"
- push $P811, "\""
+ push $P811, "'"
.return ($P811)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>" :subid("193_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<dblq>" :subid("191_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx814_tgt
.local int rx814_pos
@@ -9619,7 +9589,7 @@
.local int rx814_rep
.local pmc rx814_cur
(rx814_cur, rx814_pos, rx814_tgt) = self."!cursor_start"()
- rx814_cur."!cursor_debug"("START ", "quote:sym<q>")
+ rx814_cur."!cursor_debug"("START ", "quote:sym<dblq>")
.lex unicode:"$\x{a2}", rx814_cur
.local pmc match
.lex "$/", match
@@ -9630,46 +9600,34 @@
substr rx814_tgt, rx814_tgt, rx814_off
rx814_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan818_done
- goto rxscan818_scan
- rxscan818_loop:
+ ne $I10, -1, rxscan817_done
+ goto rxscan817_scan
+ rxscan817_loop:
($P10) = rx814_cur."from"()
inc $P10
set rx814_pos, $P10
- ge rx814_pos, rx814_eos, rxscan818_done
- rxscan818_scan:
- set_addr $I10, rxscan818_loop
+ ge rx814_pos, rx814_eos, rxscan817_done
+ rxscan817_scan:
+ set_addr $I10, rxscan817_loop
rx814_cur."!mark_push"(0, rx814_pos, $I10)
- rxscan818_done:
-.annotate "line", 387
- # rx literal "q"
- add $I11, rx814_pos, 1
- gt $I11, rx814_eos, rx814_fail
- sub $I11, rx814_pos, rx814_off
- substr $S10, rx814_tgt, $I11, 1
- ne $S10, "q", rx814_fail
- add rx814_pos, 1
- # rx enumcharlist negate=1 zerowidth
+ rxscan817_done:
+.annotate "line", 390
+ # rx enumcharlist negate=0 zerowidth
ge rx814_pos, rx814_eos, rx814_fail
sub $I10, rx814_pos, rx814_off
substr $S10, rx814_tgt, $I10, 1
- index $I11, "(", $S10
- ge $I11, 0, rx814_fail
- # rx subrule "ws" subtype=method negate=
- rx814_cur."!cursor_pos"(rx814_pos)
- $P10 = rx814_cur."ws"()
- unless $P10, rx814_fail
- rx814_pos = $P10."pos"()
+ index $I11, "\"", $S10
+ lt $I11, 0, rx814_fail
# rx subrule "quote_EXPR" subtype=capture negate=
rx814_cur."!cursor_pos"(rx814_pos)
- $P10 = rx814_cur."quote_EXPR"(":q")
+ $P10 = rx814_cur."quote_EXPR"(":qq")
unless $P10, rx814_fail
rx814_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
rx814_pos = $P10."pos"()
# rx pass
- rx814_cur."!cursor_pass"(rx814_pos, "quote:sym<q>")
- rx814_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx814_pos)
+ rx814_cur."!cursor_pass"(rx814_pos, "quote:sym<dblq>")
+ rx814_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx814_pos)
.return (rx814_cur)
rx814_fail:
.annotate "line", 4
@@ -9679,448 +9637,456 @@
jump $I10
rx814_done:
rx814_cur."!cursor_fail"()
- rx814_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
+ rx814_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
.return (rx814_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>" :subid("194_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<dblq>" :subid("192_1267204702.05125") :method
.annotate "line", 4
- $P816 = self."!PREFIX__!subrule"("", "q")
- new $P817, "ResizablePMCArray"
- push $P817, $P816
- .return ($P817)
+ new $P816, "ResizablePMCArray"
+ push $P816, "\""
+ .return ($P816)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>" :subid("195_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 4
- .local string rx820_tgt
- .local int rx820_pos
- .local int rx820_off
- .local int rx820_eos
- .local int rx820_rep
- .local pmc rx820_cur
- (rx820_cur, rx820_pos, rx820_tgt) = self."!cursor_start"()
- rx820_cur."!cursor_debug"("START ", "quote:sym<qq>")
- .lex unicode:"$\x{a2}", rx820_cur
- .local pmc match
- .lex "$/", match
- length rx820_eos, rx820_tgt
- set rx820_off, 0
- lt rx820_pos, 2, rx820_start
- sub rx820_off, rx820_pos, 1
- substr rx820_tgt, rx820_tgt, rx820_off
- rx820_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan824_done
- goto rxscan824_scan
- rxscan824_loop:
- ($P10) = rx820_cur."from"()
- inc $P10
- set rx820_pos, $P10
- ge rx820_pos, rx820_eos, rxscan824_done
- rxscan824_scan:
- set_addr $I10, rxscan824_loop
- rx820_cur."!mark_push"(0, rx820_pos, $I10)
- rxscan824_done:
-.annotate "line", 388
- # rx literal "qq"
- add $I11, rx820_pos, 2
- gt $I11, rx820_eos, rx820_fail
- sub $I11, rx820_pos, rx820_off
- substr $S10, rx820_tgt, $I11, 2
- ne $S10, "qq", rx820_fail
- add rx820_pos, 2
+.sub "quote:sym<q>" :subid("193_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 4
+ .local string rx819_tgt
+ .local int rx819_pos
+ .local int rx819_off
+ .local int rx819_eos
+ .local int rx819_rep
+ .local pmc rx819_cur
+ (rx819_cur, rx819_pos, rx819_tgt) = self."!cursor_start"()
+ rx819_cur."!cursor_debug"("START ", "quote:sym<q>")
+ .lex unicode:"$\x{a2}", rx819_cur
+ .local pmc match
+ .lex "$/", match
+ length rx819_eos, rx819_tgt
+ set rx819_off, 0
+ lt rx819_pos, 2, rx819_start
+ sub rx819_off, rx819_pos, 1
+ substr rx819_tgt, rx819_tgt, rx819_off
+ rx819_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan823_done
+ goto rxscan823_scan
+ rxscan823_loop:
+ ($P10) = rx819_cur."from"()
+ inc $P10
+ set rx819_pos, $P10
+ ge rx819_pos, rx819_eos, rxscan823_done
+ rxscan823_scan:
+ set_addr $I10, rxscan823_loop
+ rx819_cur."!mark_push"(0, rx819_pos, $I10)
+ rxscan823_done:
+.annotate "line", 391
+ # rx literal "q"
+ add $I11, rx819_pos, 1
+ gt $I11, rx819_eos, rx819_fail
+ sub $I11, rx819_pos, rx819_off
+ substr $S10, rx819_tgt, $I11, 1
+ ne $S10, "q", rx819_fail
+ add rx819_pos, 1
# rx enumcharlist negate=1 zerowidth
- ge rx820_pos, rx820_eos, rx820_fail
- sub $I10, rx820_pos, rx820_off
- substr $S10, rx820_tgt, $I10, 1
+ ge rx819_pos, rx819_eos, rx819_fail
+ sub $I10, rx819_pos, rx819_off
+ substr $S10, rx819_tgt, $I10, 1
index $I11, "(", $S10
- ge $I11, 0, rx820_fail
+ ge $I11, 0, rx819_fail
# rx subrule "ws" subtype=method negate=
- rx820_cur."!cursor_pos"(rx820_pos)
- $P10 = rx820_cur."ws"()
- unless $P10, rx820_fail
- rx820_pos = $P10."pos"()
+ rx819_cur."!cursor_pos"(rx819_pos)
+ $P10 = rx819_cur."ws"()
+ unless $P10, rx819_fail
+ rx819_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx820_cur."!cursor_pos"(rx820_pos)
- $P10 = rx820_cur."quote_EXPR"(":qq")
- unless $P10, rx820_fail
- rx820_cur."!mark_push"(0, -1, 0, $P10)
+ rx819_cur."!cursor_pos"(rx819_pos)
+ $P10 = rx819_cur."quote_EXPR"(":q")
+ unless $P10, rx819_fail
+ rx819_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx820_pos = $P10."pos"()
+ rx819_pos = $P10."pos"()
# rx pass
- rx820_cur."!cursor_pass"(rx820_pos, "quote:sym<qq>")
- rx820_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx820_pos)
- .return (rx820_cur)
- rx820_fail:
+ rx819_cur."!cursor_pass"(rx819_pos, "quote:sym<q>")
+ rx819_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx819_pos)
+ .return (rx819_cur)
+ rx819_fail:
.annotate "line", 4
- (rx820_rep, rx820_pos, $I10, $P10) = rx820_cur."!mark_fail"(0)
- lt rx820_pos, -1, rx820_done
- eq rx820_pos, -1, rx820_fail
+ (rx819_rep, rx819_pos, $I10, $P10) = rx819_cur."!mark_fail"(0)
+ lt rx819_pos, -1, rx819_done
+ eq rx819_pos, -1, rx819_fail
jump $I10
- rx820_done:
- rx820_cur."!cursor_fail"()
- rx820_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
- .return (rx820_cur)
+ rx819_done:
+ rx819_cur."!cursor_fail"()
+ rx819_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
+ .return (rx819_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>" :subid("196_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<q>" :subid("194_1267204702.05125") :method
.annotate "line", 4
- $P822 = self."!PREFIX__!subrule"("", "qq")
- new $P823, "ResizablePMCArray"
- push $P823, $P822
- .return ($P823)
+ $P821 = self."!PREFIX__!subrule"("", "q")
+ new $P822, "ResizablePMCArray"
+ push $P822, $P821
+ .return ($P822)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>" :subid("197_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<qq>" :subid("195_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx826_tgt
- .local int rx826_pos
- .local int rx826_off
- .local int rx826_eos
- .local int rx826_rep
- .local pmc rx826_cur
- (rx826_cur, rx826_pos, rx826_tgt) = self."!cursor_start"()
- rx826_cur."!cursor_debug"("START ", "quote:sym<Q>")
- .lex unicode:"$\x{a2}", rx826_cur
+ .local string rx825_tgt
+ .local int rx825_pos
+ .local int rx825_off
+ .local int rx825_eos
+ .local int rx825_rep
+ .local pmc rx825_cur
+ (rx825_cur, rx825_pos, rx825_tgt) = self."!cursor_start"()
+ rx825_cur."!cursor_debug"("START ", "quote:sym<qq>")
+ .lex unicode:"$\x{a2}", rx825_cur
.local pmc match
.lex "$/", match
- length rx826_eos, rx826_tgt
- set rx826_off, 0
- lt rx826_pos, 2, rx826_start
- sub rx826_off, rx826_pos, 1
- substr rx826_tgt, rx826_tgt, rx826_off
- rx826_start:
+ length rx825_eos, rx825_tgt
+ set rx825_off, 0
+ lt rx825_pos, 2, rx825_start
+ sub rx825_off, rx825_pos, 1
+ substr rx825_tgt, rx825_tgt, rx825_off
+ rx825_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan830_done
- goto rxscan830_scan
- rxscan830_loop:
- ($P10) = rx826_cur."from"()
+ ne $I10, -1, rxscan829_done
+ goto rxscan829_scan
+ rxscan829_loop:
+ ($P10) = rx825_cur."from"()
inc $P10
- set rx826_pos, $P10
- ge rx826_pos, rx826_eos, rxscan830_done
- rxscan830_scan:
- set_addr $I10, rxscan830_loop
- rx826_cur."!mark_push"(0, rx826_pos, $I10)
- rxscan830_done:
-.annotate "line", 389
- # rx literal "Q"
- add $I11, rx826_pos, 1
- gt $I11, rx826_eos, rx826_fail
- sub $I11, rx826_pos, rx826_off
- substr $S10, rx826_tgt, $I11, 1
- ne $S10, "Q", rx826_fail
- add rx826_pos, 1
+ set rx825_pos, $P10
+ ge rx825_pos, rx825_eos, rxscan829_done
+ rxscan829_scan:
+ set_addr $I10, rxscan829_loop
+ rx825_cur."!mark_push"(0, rx825_pos, $I10)
+ rxscan829_done:
+.annotate "line", 392
+ # rx literal "qq"
+ add $I11, rx825_pos, 2
+ gt $I11, rx825_eos, rx825_fail
+ sub $I11, rx825_pos, rx825_off
+ substr $S10, rx825_tgt, $I11, 2
+ ne $S10, "qq", rx825_fail
+ add rx825_pos, 2
# rx enumcharlist negate=1 zerowidth
- ge rx826_pos, rx826_eos, rx826_fail
- sub $I10, rx826_pos, rx826_off
- substr $S10, rx826_tgt, $I10, 1
+ ge rx825_pos, rx825_eos, rx825_fail
+ sub $I10, rx825_pos, rx825_off
+ substr $S10, rx825_tgt, $I10, 1
index $I11, "(", $S10
- ge $I11, 0, rx826_fail
+ ge $I11, 0, rx825_fail
# rx subrule "ws" subtype=method negate=
- rx826_cur."!cursor_pos"(rx826_pos)
- $P10 = rx826_cur."ws"()
- unless $P10, rx826_fail
- rx826_pos = $P10."pos"()
+ rx825_cur."!cursor_pos"(rx825_pos)
+ $P10 = rx825_cur."ws"()
+ unless $P10, rx825_fail
+ rx825_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx826_cur."!cursor_pos"(rx826_pos)
- $P10 = rx826_cur."quote_EXPR"()
- unless $P10, rx826_fail
- rx826_cur."!mark_push"(0, -1, 0, $P10)
+ rx825_cur."!cursor_pos"(rx825_pos)
+ $P10 = rx825_cur."quote_EXPR"(":qq")
+ unless $P10, rx825_fail
+ rx825_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx826_pos = $P10."pos"()
+ rx825_pos = $P10."pos"()
# rx pass
- rx826_cur."!cursor_pass"(rx826_pos, "quote:sym<Q>")
- rx826_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx826_pos)
- .return (rx826_cur)
- rx826_fail:
+ rx825_cur."!cursor_pass"(rx825_pos, "quote:sym<qq>")
+ rx825_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx825_pos)
+ .return (rx825_cur)
+ rx825_fail:
.annotate "line", 4
- (rx826_rep, rx826_pos, $I10, $P10) = rx826_cur."!mark_fail"(0)
- lt rx826_pos, -1, rx826_done
- eq rx826_pos, -1, rx826_fail
+ (rx825_rep, rx825_pos, $I10, $P10) = rx825_cur."!mark_fail"(0)
+ lt rx825_pos, -1, rx825_done
+ eq rx825_pos, -1, rx825_fail
jump $I10
- rx826_done:
- rx826_cur."!cursor_fail"()
- rx826_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
- .return (rx826_cur)
+ rx825_done:
+ rx825_cur."!cursor_fail"()
+ rx825_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
+ .return (rx825_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>" :subid("198_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<qq>" :subid("196_1267204702.05125") :method
.annotate "line", 4
- $P828 = self."!PREFIX__!subrule"("", "Q")
- new $P829, "ResizablePMCArray"
- push $P829, $P828
- .return ($P829)
+ $P827 = self."!PREFIX__!subrule"("", "qq")
+ new $P828, "ResizablePMCArray"
+ push $P828, $P827
+ .return ($P828)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>" :subid("199_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<Q>" :subid("197_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx832_tgt
- .local int rx832_pos
- .local int rx832_off
- .local int rx832_eos
- .local int rx832_rep
- .local pmc rx832_cur
- (rx832_cur, rx832_pos, rx832_tgt) = self."!cursor_start"()
- rx832_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
- .lex unicode:"$\x{a2}", rx832_cur
- .local pmc match
- .lex "$/", match
- length rx832_eos, rx832_tgt
- set rx832_off, 0
- lt rx832_pos, 2, rx832_start
- sub rx832_off, rx832_pos, 1
- substr rx832_tgt, rx832_tgt, rx832_off
- rx832_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan836_done
- goto rxscan836_scan
- rxscan836_loop:
- ($P10) = rx832_cur."from"()
- inc $P10
- set rx832_pos, $P10
- ge rx832_pos, rx832_eos, rxscan836_done
- rxscan836_scan:
- set_addr $I10, rxscan836_loop
- rx832_cur."!mark_push"(0, rx832_pos, $I10)
- rxscan836_done:
-.annotate "line", 390
- # rx literal "Q:PIR"
- add $I11, rx832_pos, 5
- gt $I11, rx832_eos, rx832_fail
- sub $I11, rx832_pos, rx832_off
- substr $S10, rx832_tgt, $I11, 5
- ne $S10, "Q:PIR", rx832_fail
- add rx832_pos, 5
- # rx subrule "ws" subtype=method negate=
- rx832_cur."!cursor_pos"(rx832_pos)
- $P10 = rx832_cur."ws"()
- unless $P10, rx832_fail
- rx832_pos = $P10."pos"()
+ .local string rx831_tgt
+ .local int rx831_pos
+ .local int rx831_off
+ .local int rx831_eos
+ .local int rx831_rep
+ .local pmc rx831_cur
+ (rx831_cur, rx831_pos, rx831_tgt) = self."!cursor_start"()
+ rx831_cur."!cursor_debug"("START ", "quote:sym<Q>")
+ .lex unicode:"$\x{a2}", rx831_cur
+ .local pmc match
+ .lex "$/", match
+ length rx831_eos, rx831_tgt
+ set rx831_off, 0
+ lt rx831_pos, 2, rx831_start
+ sub rx831_off, rx831_pos, 1
+ substr rx831_tgt, rx831_tgt, rx831_off
+ rx831_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan835_done
+ goto rxscan835_scan
+ rxscan835_loop:
+ ($P10) = rx831_cur."from"()
+ inc $P10
+ set rx831_pos, $P10
+ ge rx831_pos, rx831_eos, rxscan835_done
+ rxscan835_scan:
+ set_addr $I10, rxscan835_loop
+ rx831_cur."!mark_push"(0, rx831_pos, $I10)
+ rxscan835_done:
+.annotate "line", 393
+ # rx literal "Q"
+ add $I11, rx831_pos, 1
+ gt $I11, rx831_eos, rx831_fail
+ sub $I11, rx831_pos, rx831_off
+ substr $S10, rx831_tgt, $I11, 1
+ ne $S10, "Q", rx831_fail
+ add rx831_pos, 1
+ # rx enumcharlist negate=1 zerowidth
+ ge rx831_pos, rx831_eos, rx831_fail
+ sub $I10, rx831_pos, rx831_off
+ substr $S10, rx831_tgt, $I10, 1
+ index $I11, "(", $S10
+ ge $I11, 0, rx831_fail
+ # rx subrule "ws" subtype=method negate=
+ rx831_cur."!cursor_pos"(rx831_pos)
+ $P10 = rx831_cur."ws"()
+ unless $P10, rx831_fail
+ rx831_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx832_cur."!cursor_pos"(rx832_pos)
- $P10 = rx832_cur."quote_EXPR"()
- unless $P10, rx832_fail
- rx832_cur."!mark_push"(0, -1, 0, $P10)
+ rx831_cur."!cursor_pos"(rx831_pos)
+ $P10 = rx831_cur."quote_EXPR"()
+ unless $P10, rx831_fail
+ rx831_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx832_pos = $P10."pos"()
+ rx831_pos = $P10."pos"()
# rx pass
- rx832_cur."!cursor_pass"(rx832_pos, "quote:sym<Q:PIR>")
- rx832_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx832_pos)
- .return (rx832_cur)
- rx832_fail:
+ rx831_cur."!cursor_pass"(rx831_pos, "quote:sym<Q>")
+ rx831_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx831_pos)
+ .return (rx831_cur)
+ rx831_fail:
.annotate "line", 4
- (rx832_rep, rx832_pos, $I10, $P10) = rx832_cur."!mark_fail"(0)
- lt rx832_pos, -1, rx832_done
- eq rx832_pos, -1, rx832_fail
+ (rx831_rep, rx831_pos, $I10, $P10) = rx831_cur."!mark_fail"(0)
+ lt rx831_pos, -1, rx831_done
+ eq rx831_pos, -1, rx831_fail
jump $I10
- rx832_done:
- rx832_cur."!cursor_fail"()
- rx832_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
- .return (rx832_cur)
+ rx831_done:
+ rx831_cur."!cursor_fail"()
+ rx831_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
+ .return (rx831_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>" :subid("200_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<Q>" :subid("198_1267204702.05125") :method
.annotate "line", 4
- $P834 = self."!PREFIX__!subrule"("", "Q:PIR")
- new $P835, "ResizablePMCArray"
- push $P835, $P834
- .return ($P835)
+ $P833 = self."!PREFIX__!subrule"("", "Q")
+ new $P834, "ResizablePMCArray"
+ push $P834, $P833
+ .return ($P834)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />" :subid("201_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<Q:PIR>" :subid("199_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx838_tgt
- .local int rx838_pos
- .local int rx838_off
- .local int rx838_eos
- .local int rx838_rep
- .local pmc rx838_cur
- (rx838_cur, rx838_pos, rx838_tgt) = self."!cursor_start"()
- rx838_cur."!cursor_debug"("START ", "quote:sym</ />")
- .lex unicode:"$\x{a2}", rx838_cur
+ .local string rx837_tgt
+ .local int rx837_pos
+ .local int rx837_off
+ .local int rx837_eos
+ .local int rx837_rep
+ .local pmc rx837_cur
+ (rx837_cur, rx837_pos, rx837_tgt) = self."!cursor_start"()
+ rx837_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+ .lex unicode:"$\x{a2}", rx837_cur
.local pmc match
.lex "$/", match
- length rx838_eos, rx838_tgt
- set rx838_off, 0
- lt rx838_pos, 2, rx838_start
- sub rx838_off, rx838_pos, 1
- substr rx838_tgt, rx838_tgt, rx838_off
- rx838_start:
+ length rx837_eos, rx837_tgt
+ set rx837_off, 0
+ lt rx837_pos, 2, rx837_start
+ sub rx837_off, rx837_pos, 1
+ substr rx837_tgt, rx837_tgt, rx837_off
+ rx837_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan842_done
- goto rxscan842_scan
- rxscan842_loop:
- ($P10) = rx838_cur."from"()
+ ne $I10, -1, rxscan841_done
+ goto rxscan841_scan
+ rxscan841_loop:
+ ($P10) = rx837_cur."from"()
inc $P10
- set rx838_pos, $P10
- ge rx838_pos, rx838_eos, rxscan842_done
- rxscan842_scan:
- set_addr $I10, rxscan842_loop
- rx838_cur."!mark_push"(0, rx838_pos, $I10)
- rxscan842_done:
-.annotate "line", 392
- # rx literal "/"
- add $I11, rx838_pos, 1
- gt $I11, rx838_eos, rx838_fail
- sub $I11, rx838_pos, rx838_off
- substr $S10, rx838_tgt, $I11, 1
- ne $S10, "/", rx838_fail
- add rx838_pos, 1
-.annotate "line", 393
- # rx subrule "newpad" subtype=method negate=
- rx838_cur."!cursor_pos"(rx838_pos)
- $P10 = rx838_cur."newpad"()
- unless $P10, rx838_fail
- rx838_pos = $P10."pos"()
+ set rx837_pos, $P10
+ ge rx837_pos, rx837_eos, rxscan841_done
+ rxscan841_scan:
+ set_addr $I10, rxscan841_loop
+ rx837_cur."!mark_push"(0, rx837_pos, $I10)
+ rxscan841_done:
.annotate "line", 394
- # rx reduce name="quote:sym</ />" key="open"
- rx838_cur."!cursor_pos"(rx838_pos)
- rx838_cur."!reduce"("quote:sym</ />", "open")
-.annotate "line", 395
- # rx subrule "LANG" subtype=capture negate=
- rx838_cur."!cursor_pos"(rx838_pos)
- $P10 = rx838_cur."LANG"("Regex", "nibbler")
- unless $P10, rx838_fail
- rx838_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("p6regex")
- rx838_pos = $P10."pos"()
-.annotate "line", 396
- # rx literal "/"
- add $I11, rx838_pos, 1
- gt $I11, rx838_eos, rx838_fail
- sub $I11, rx838_pos, rx838_off
- substr $S10, rx838_tgt, $I11, 1
- ne $S10, "/", rx838_fail
- add rx838_pos, 1
-.annotate "line", 391
+ # rx literal "Q:PIR"
+ add $I11, rx837_pos, 5
+ gt $I11, rx837_eos, rx837_fail
+ sub $I11, rx837_pos, rx837_off
+ substr $S10, rx837_tgt, $I11, 5
+ ne $S10, "Q:PIR", rx837_fail
+ add rx837_pos, 5
+ # rx subrule "ws" subtype=method negate=
+ rx837_cur."!cursor_pos"(rx837_pos)
+ $P10 = rx837_cur."ws"()
+ unless $P10, rx837_fail
+ rx837_pos = $P10."pos"()
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx837_cur."!cursor_pos"(rx837_pos)
+ $P10 = rx837_cur."quote_EXPR"()
+ unless $P10, rx837_fail
+ rx837_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx837_pos = $P10."pos"()
# rx pass
- rx838_cur."!cursor_pass"(rx838_pos, "quote:sym</ />")
- rx838_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx838_pos)
- .return (rx838_cur)
- rx838_fail:
+ rx837_cur."!cursor_pass"(rx837_pos, "quote:sym<Q:PIR>")
+ rx837_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx837_pos)
+ .return (rx837_cur)
+ rx837_fail:
.annotate "line", 4
- (rx838_rep, rx838_pos, $I10, $P10) = rx838_cur."!mark_fail"(0)
- lt rx838_pos, -1, rx838_done
- eq rx838_pos, -1, rx838_fail
+ (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
+ lt rx837_pos, -1, rx837_done
+ eq rx837_pos, -1, rx837_fail
jump $I10
- rx838_done:
- rx838_cur."!cursor_fail"()
- rx838_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
- .return (rx838_cur)
+ rx837_done:
+ rx837_cur."!cursor_fail"()
+ rx837_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
+ .return (rx837_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />" :subid("202_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<Q:PIR>" :subid("200_1267204702.05125") :method
.annotate "line", 4
- $P840 = self."!PREFIX__!subrule"("", "/")
- new $P841, "ResizablePMCArray"
- push $P841, $P840
- .return ($P841)
+ $P839 = self."!PREFIX__!subrule"("", "Q:PIR")
+ new $P840, "ResizablePMCArray"
+ push $P840, $P839
+ .return ($P840)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>" :subid("203_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym</ />" :subid("201_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx844_tgt
- .local int rx844_pos
- .local int rx844_off
- .local int rx844_eos
- .local int rx844_rep
- .local pmc rx844_cur
- (rx844_cur, rx844_pos, rx844_tgt) = self."!cursor_start"()
- rx844_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
- .lex unicode:"$\x{a2}", rx844_cur
+ .local string rx843_tgt
+ .local int rx843_pos
+ .local int rx843_off
+ .local int rx843_eos
+ .local int rx843_rep
+ .local pmc rx843_cur
+ (rx843_cur, rx843_pos, rx843_tgt) = self."!cursor_start"()
+ rx843_cur."!cursor_debug"("START ", "quote:sym</ />")
+ .lex unicode:"$\x{a2}", rx843_cur
.local pmc match
.lex "$/", match
- length rx844_eos, rx844_tgt
- set rx844_off, 0
- lt rx844_pos, 2, rx844_start
- sub rx844_off, rx844_pos, 1
- substr rx844_tgt, rx844_tgt, rx844_off
- rx844_start:
+ length rx843_eos, rx843_tgt
+ set rx843_off, 0
+ lt rx843_pos, 2, rx843_start
+ sub rx843_off, rx843_pos, 1
+ substr rx843_tgt, rx843_tgt, rx843_off
+ rx843_start:
$I10 = self.'from'()
ne $I10, -1, rxscan847_done
goto rxscan847_scan
rxscan847_loop:
- ($P10) = rx844_cur."from"()
+ ($P10) = rx843_cur."from"()
inc $P10
- set rx844_pos, $P10
- ge rx844_pos, rx844_eos, rxscan847_done
+ set rx843_pos, $P10
+ ge rx843_pos, rx843_eos, rxscan847_done
rxscan847_scan:
set_addr $I10, rxscan847_loop
- rx844_cur."!mark_push"(0, rx844_pos, $I10)
+ rx843_cur."!mark_push"(0, rx843_pos, $I10)
rxscan847_done:
+.annotate "line", 396
+ # rx literal "/"
+ add $I11, rx843_pos, 1
+ gt $I11, rx843_eos, rx843_fail
+ sub $I11, rx843_pos, rx843_off
+ substr $S10, rx843_tgt, $I11, 1
+ ne $S10, "/", rx843_fail
+ add rx843_pos, 1
+.annotate "line", 397
+ # rx subrule "newpad" subtype=method negate=
+ rx843_cur."!cursor_pos"(rx843_pos)
+ $P10 = rx843_cur."newpad"()
+ unless $P10, rx843_fail
+ rx843_pos = $P10."pos"()
+.annotate "line", 398
+ # rx reduce name="quote:sym</ />" key="open"
+ rx843_cur."!cursor_pos"(rx843_pos)
+ rx843_cur."!reduce"("quote:sym</ />", "open")
.annotate "line", 399
- # rx enumcharlist negate=0 zerowidth
- ge rx844_pos, rx844_eos, rx844_fail
- sub $I10, rx844_pos, rx844_off
- substr $S10, rx844_tgt, $I10, 1
- index $I11, "$", $S10
- lt $I11, 0, rx844_fail
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx844_cur."!cursor_pos"(rx844_pos)
- $P10 = rx844_cur."quotemod_check"("s")
- unless $P10, rx844_fail
- # rx subrule "variable" subtype=capture negate=
- rx844_cur."!cursor_pos"(rx844_pos)
- $P10 = rx844_cur."variable"()
- unless $P10, rx844_fail
- rx844_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("variable")
- rx844_pos = $P10."pos"()
+ # rx subrule "LANG" subtype=capture negate=
+ rx843_cur."!cursor_pos"(rx843_pos)
+ $P10 = rx843_cur."LANG"("Regex", "nibbler")
+ unless $P10, rx843_fail
+ rx843_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("p6regex")
+ rx843_pos = $P10."pos"()
+.annotate "line", 400
+ # rx literal "/"
+ add $I11, rx843_pos, 1
+ gt $I11, rx843_eos, rx843_fail
+ sub $I11, rx843_pos, rx843_off
+ substr $S10, rx843_tgt, $I11, 1
+ ne $S10, "/", rx843_fail
+ add rx843_pos, 1
+.annotate "line", 395
# rx pass
- rx844_cur."!cursor_pass"(rx844_pos, "quote_escape:sym<$>")
- rx844_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx844_pos)
- .return (rx844_cur)
- rx844_fail:
+ rx843_cur."!cursor_pass"(rx843_pos, "quote:sym</ />")
+ rx843_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx843_pos)
+ .return (rx843_cur)
+ rx843_fail:
.annotate "line", 4
- (rx844_rep, rx844_pos, $I10, $P10) = rx844_cur."!mark_fail"(0)
- lt rx844_pos, -1, rx844_done
- eq rx844_pos, -1, rx844_fail
+ (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
+ lt rx843_pos, -1, rx843_done
+ eq rx843_pos, -1, rx843_fail
jump $I10
- rx844_done:
- rx844_cur."!cursor_fail"()
- rx844_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
- .return (rx844_cur)
+ rx843_done:
+ rx843_cur."!cursor_fail"()
+ rx843_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
+ .return (rx843_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>" :subid("204_1261064023.05912") :method
+.sub "!PREFIX__quote:sym</ />" :subid("202_1267204702.05125") :method
.annotate "line", 4
+ $P845 = self."!PREFIX__!subrule"("", "/")
new $P846, "ResizablePMCArray"
- push $P846, "$"
+ push $P846, $P845
.return ($P846)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>" :subid("205_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote_escape:sym<$>" :subid("203_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx849_tgt
.local int rx849_pos
@@ -10129,7 +10095,7 @@
.local int rx849_rep
.local pmc rx849_cur
(rx849_cur, rx849_pos, rx849_tgt) = self."!cursor_start"()
- rx849_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+ rx849_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
.lex unicode:"$\x{a2}", rx849_cur
.local pmc match
.lex "$/", match
@@ -10151,27 +10117,27 @@
set_addr $I10, rxscan852_loop
rx849_cur."!mark_push"(0, rx849_pos, $I10)
rxscan852_done:
-.annotate "line", 400
+.annotate "line", 403
# rx enumcharlist negate=0 zerowidth
ge rx849_pos, rx849_eos, rx849_fail
sub $I10, rx849_pos, rx849_off
substr $S10, rx849_tgt, $I10, 1
- index $I11, "{", $S10
+ index $I11, "$", $S10
lt $I11, 0, rx849_fail
# rx subrule "quotemod_check" subtype=zerowidth negate=
rx849_cur."!cursor_pos"(rx849_pos)
- $P10 = rx849_cur."quotemod_check"("c")
+ $P10 = rx849_cur."quotemod_check"("s")
unless $P10, rx849_fail
- # rx subrule "block" subtype=capture negate=
+ # rx subrule "variable" subtype=capture negate=
rx849_cur."!cursor_pos"(rx849_pos)
- $P10 = rx849_cur."block"()
+ $P10 = rx849_cur."variable"()
unless $P10, rx849_fail
rx849_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("block")
+ $P10."!cursor_names"("variable")
rx849_pos = $P10."pos"()
# rx pass
- rx849_cur."!cursor_pass"(rx849_pos, "quote_escape:sym<{ }>")
- rx849_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx849_pos)
+ rx849_cur."!cursor_pass"(rx849_pos, "quote_escape:sym<$>")
+ rx849_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx849_pos)
.return (rx849_cur)
rx849_fail:
.annotate "line", 4
@@ -10181,23 +10147,23 @@
jump $I10
rx849_done:
rx849_cur."!cursor_fail"()
- rx849_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
+ rx849_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
.return (rx849_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>" :subid("206_1261064023.05912") :method
+.sub "!PREFIX__quote_escape:sym<$>" :subid("204_1267204702.05125") :method
.annotate "line", 4
new $P851, "ResizablePMCArray"
- push $P851, "{"
+ push $P851, "$"
.return ($P851)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>" :subid("207_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote_escape:sym<{ }>" :subid("205_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx854_tgt
.local int rx854_pos
@@ -10206,8 +10172,7 @@
.local int rx854_rep
.local pmc rx854_cur
(rx854_cur, rx854_pos, rx854_tgt) = self."!cursor_start"()
- rx854_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
- rx854_cur."!cursor_caparray"("EXPR")
+ rx854_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
.lex unicode:"$\x{a2}", rx854_cur
.local pmc match
.lex "$/", match
@@ -10218,53 +10183,38 @@
substr rx854_tgt, rx854_tgt, rx854_off
rx854_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan858_done
- goto rxscan858_scan
- rxscan858_loop:
+ ne $I10, -1, rxscan857_done
+ goto rxscan857_scan
+ rxscan857_loop:
($P10) = rx854_cur."from"()
inc $P10
set rx854_pos, $P10
- ge rx854_pos, rx854_eos, rxscan858_done
- rxscan858_scan:
- set_addr $I10, rxscan858_loop
+ ge rx854_pos, rx854_eos, rxscan857_done
+ rxscan857_scan:
+ set_addr $I10, rxscan857_loop
rx854_cur."!mark_push"(0, rx854_pos, $I10)
- rxscan858_done:
-.annotate "line", 402
- # rx literal "("
- add $I11, rx854_pos, 1
- gt $I11, rx854_eos, rx854_fail
- sub $I11, rx854_pos, rx854_off
- substr $S10, rx854_tgt, $I11, 1
- ne $S10, "(", rx854_fail
- add rx854_pos, 1
- # rx subrule "ws" subtype=method negate=
+ rxscan857_done:
+.annotate "line", 404
+ # rx enumcharlist negate=0 zerowidth
+ ge rx854_pos, rx854_eos, rx854_fail
+ sub $I10, rx854_pos, rx854_off
+ substr $S10, rx854_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx854_fail
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
rx854_cur."!cursor_pos"(rx854_pos)
- $P10 = rx854_cur."ws"()
+ $P10 = rx854_cur."quotemod_check"("c")
unless $P10, rx854_fail
- rx854_pos = $P10."pos"()
- # rx rxquantr859 ** 0..1
- set_addr $I860, rxquantr859_done
- rx854_cur."!mark_push"(0, rx854_pos, $I860)
- rxquantr859_loop:
- # rx subrule "EXPR" subtype=capture negate=
+ # rx subrule "block" subtype=capture negate=
rx854_cur."!cursor_pos"(rx854_pos)
- $P10 = rx854_cur."EXPR"()
+ $P10 = rx854_cur."block"()
unless $P10, rx854_fail
rx854_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
+ $P10."!cursor_names"("block")
rx854_pos = $P10."pos"()
- (rx854_rep) = rx854_cur."!mark_commit"($I860)
- rxquantr859_done:
- # rx literal ")"
- add $I11, rx854_pos, 1
- gt $I11, rx854_eos, rx854_fail
- sub $I11, rx854_pos, rx854_off
- substr $S10, rx854_tgt, $I11, 1
- ne $S10, ")", rx854_fail
- add rx854_pos, 1
# rx pass
- rx854_cur."!cursor_pass"(rx854_pos, "circumfix:sym<( )>")
- rx854_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx854_pos)
+ rx854_cur."!cursor_pass"(rx854_pos, "quote_escape:sym<{ }>")
+ rx854_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx854_pos)
.return (rx854_cur)
rx854_fail:
.annotate "line", 4
@@ -10274,191 +10224,211 @@
jump $I10
rx854_done:
rx854_cur."!cursor_fail"()
- rx854_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
+ rx854_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
.return (rx854_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>" :subid("208_1261064023.05912") :method
+.sub "!PREFIX__quote_escape:sym<{ }>" :subid("206_1267204702.05125") :method
.annotate "line", 4
- $P856 = self."!PREFIX__!subrule"("", "(")
- new $P857, "ResizablePMCArray"
- push $P857, $P856
- .return ($P857)
+ new $P856, "ResizablePMCArray"
+ push $P856, "{"
+ .return ($P856)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>" :subid("209_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 4
- .local string rx862_tgt
- .local int rx862_pos
- .local int rx862_off
- .local int rx862_eos
- .local int rx862_rep
- .local pmc rx862_cur
- (rx862_cur, rx862_pos, rx862_tgt) = self."!cursor_start"()
- rx862_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
- rx862_cur."!cursor_caparray"("EXPR")
- .lex unicode:"$\x{a2}", rx862_cur
- .local pmc match
- .lex "$/", match
- length rx862_eos, rx862_tgt
- set rx862_off, 0
- lt rx862_pos, 2, rx862_start
- sub rx862_off, rx862_pos, 1
- substr rx862_tgt, rx862_tgt, rx862_off
- rx862_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan866_done
- goto rxscan866_scan
- rxscan866_loop:
- ($P10) = rx862_cur."from"()
- inc $P10
- set rx862_pos, $P10
- ge rx862_pos, rx862_eos, rxscan866_done
- rxscan866_scan:
- set_addr $I10, rxscan866_loop
- rx862_cur."!mark_push"(0, rx862_pos, $I10)
- rxscan866_done:
-.annotate "line", 403
- # rx literal "["
- add $I11, rx862_pos, 1
- gt $I11, rx862_eos, rx862_fail
- sub $I11, rx862_pos, rx862_off
- substr $S10, rx862_tgt, $I11, 1
- ne $S10, "[", rx862_fail
- add rx862_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx862_cur."!cursor_pos"(rx862_pos)
- $P10 = rx862_cur."ws"()
- unless $P10, rx862_fail
- rx862_pos = $P10."pos"()
- # rx rxquantr867 ** 0..1
- set_addr $I868, rxquantr867_done
- rx862_cur."!mark_push"(0, rx862_pos, $I868)
- rxquantr867_loop:
+.sub "circumfix:sym<( )>" :subid("207_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 4
+ .local string rx859_tgt
+ .local int rx859_pos
+ .local int rx859_off
+ .local int rx859_eos
+ .local int rx859_rep
+ .local pmc rx859_cur
+ (rx859_cur, rx859_pos, rx859_tgt) = self."!cursor_start"()
+ rx859_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+ rx859_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx859_cur
+ .local pmc match
+ .lex "$/", match
+ length rx859_eos, rx859_tgt
+ set rx859_off, 0
+ lt rx859_pos, 2, rx859_start
+ sub rx859_off, rx859_pos, 1
+ substr rx859_tgt, rx859_tgt, rx859_off
+ rx859_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan863_done
+ goto rxscan863_scan
+ rxscan863_loop:
+ ($P10) = rx859_cur."from"()
+ inc $P10
+ set rx859_pos, $P10
+ ge rx859_pos, rx859_eos, rxscan863_done
+ rxscan863_scan:
+ set_addr $I10, rxscan863_loop
+ rx859_cur."!mark_push"(0, rx859_pos, $I10)
+ rxscan863_done:
+.annotate "line", 406
+ # rx literal "("
+ add $I11, rx859_pos, 1
+ gt $I11, rx859_eos, rx859_fail
+ sub $I11, rx859_pos, rx859_off
+ substr $S10, rx859_tgt, $I11, 1
+ ne $S10, "(", rx859_fail
+ add rx859_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx859_cur."!cursor_pos"(rx859_pos)
+ $P10 = rx859_cur."ws"()
+ unless $P10, rx859_fail
+ rx859_pos = $P10."pos"()
+ # rx rxquantr864 ** 0..1
+ set_addr $I865, rxquantr864_done
+ rx859_cur."!mark_push"(0, rx859_pos, $I865)
+ rxquantr864_loop:
# rx subrule "EXPR" subtype=capture negate=
- rx862_cur."!cursor_pos"(rx862_pos)
- $P10 = rx862_cur."EXPR"()
- unless $P10, rx862_fail
- rx862_cur."!mark_push"(0, -1, 0, $P10)
+ rx859_cur."!cursor_pos"(rx859_pos)
+ $P10 = rx859_cur."EXPR"()
+ unless $P10, rx859_fail
+ rx859_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx862_pos = $P10."pos"()
- (rx862_rep) = rx862_cur."!mark_commit"($I868)
- rxquantr867_done:
- # rx literal "]"
- add $I11, rx862_pos, 1
- gt $I11, rx862_eos, rx862_fail
- sub $I11, rx862_pos, rx862_off
- substr $S10, rx862_tgt, $I11, 1
- ne $S10, "]", rx862_fail
- add rx862_pos, 1
+ rx859_pos = $P10."pos"()
+ (rx859_rep) = rx859_cur."!mark_commit"($I865)
+ rxquantr864_done:
+ # rx literal ")"
+ add $I11, rx859_pos, 1
+ gt $I11, rx859_eos, rx859_fail
+ sub $I11, rx859_pos, rx859_off
+ substr $S10, rx859_tgt, $I11, 1
+ ne $S10, ")", rx859_fail
+ add rx859_pos, 1
# rx pass
- rx862_cur."!cursor_pass"(rx862_pos, "circumfix:sym<[ ]>")
- rx862_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx862_pos)
- .return (rx862_cur)
- rx862_fail:
+ rx859_cur."!cursor_pass"(rx859_pos, "circumfix:sym<( )>")
+ rx859_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx859_pos)
+ .return (rx859_cur)
+ rx859_fail:
.annotate "line", 4
- (rx862_rep, rx862_pos, $I10, $P10) = rx862_cur."!mark_fail"(0)
- lt rx862_pos, -1, rx862_done
- eq rx862_pos, -1, rx862_fail
+ (rx859_rep, rx859_pos, $I10, $P10) = rx859_cur."!mark_fail"(0)
+ lt rx859_pos, -1, rx859_done
+ eq rx859_pos, -1, rx859_fail
jump $I10
- rx862_done:
- rx862_cur."!cursor_fail"()
- rx862_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
- .return (rx862_cur)
+ rx859_done:
+ rx859_cur."!cursor_fail"()
+ rx859_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
+ .return (rx859_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>" :subid("210_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<( )>" :subid("208_1267204702.05125") :method
.annotate "line", 4
- $P864 = self."!PREFIX__!subrule"("", "[")
- new $P865, "ResizablePMCArray"
- push $P865, $P864
- .return ($P865)
+ $P861 = self."!PREFIX__!subrule"("", "(")
+ new $P862, "ResizablePMCArray"
+ push $P862, $P861
+ .return ($P862)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>" :subid("211_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<[ ]>" :subid("209_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
- .local string rx870_tgt
- .local int rx870_pos
- .local int rx870_off
- .local int rx870_eos
- .local int rx870_rep
- .local pmc rx870_cur
- (rx870_cur, rx870_pos, rx870_tgt) = self."!cursor_start"()
- rx870_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
- .lex unicode:"$\x{a2}", rx870_cur
+ .local string rx867_tgt
+ .local int rx867_pos
+ .local int rx867_off
+ .local int rx867_eos
+ .local int rx867_rep
+ .local pmc rx867_cur
+ (rx867_cur, rx867_pos, rx867_tgt) = self."!cursor_start"()
+ rx867_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+ rx867_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx867_cur
.local pmc match
.lex "$/", match
- length rx870_eos, rx870_tgt
- set rx870_off, 0
- lt rx870_pos, 2, rx870_start
- sub rx870_off, rx870_pos, 1
- substr rx870_tgt, rx870_tgt, rx870_off
- rx870_start:
+ length rx867_eos, rx867_tgt
+ set rx867_off, 0
+ lt rx867_pos, 2, rx867_start
+ sub rx867_off, rx867_pos, 1
+ substr rx867_tgt, rx867_tgt, rx867_off
+ rx867_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan873_done
- goto rxscan873_scan
- rxscan873_loop:
- ($P10) = rx870_cur."from"()
+ ne $I10, -1, rxscan871_done
+ goto rxscan871_scan
+ rxscan871_loop:
+ ($P10) = rx867_cur."from"()
inc $P10
- set rx870_pos, $P10
- ge rx870_pos, rx870_eos, rxscan873_done
- rxscan873_scan:
- set_addr $I10, rxscan873_loop
- rx870_cur."!mark_push"(0, rx870_pos, $I10)
- rxscan873_done:
-.annotate "line", 404
- # rx enumcharlist negate=0 zerowidth
- ge rx870_pos, rx870_eos, rx870_fail
- sub $I10, rx870_pos, rx870_off
- substr $S10, rx870_tgt, $I10, 1
- index $I11, "<", $S10
- lt $I11, 0, rx870_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx870_cur."!cursor_pos"(rx870_pos)
- $P10 = rx870_cur."quote_EXPR"(":q", ":w")
- unless $P10, rx870_fail
- rx870_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx870_pos = $P10."pos"()
+ set rx867_pos, $P10
+ ge rx867_pos, rx867_eos, rxscan871_done
+ rxscan871_scan:
+ set_addr $I10, rxscan871_loop
+ rx867_cur."!mark_push"(0, rx867_pos, $I10)
+ rxscan871_done:
+.annotate "line", 407
+ # rx literal "["
+ add $I11, rx867_pos, 1
+ gt $I11, rx867_eos, rx867_fail
+ sub $I11, rx867_pos, rx867_off
+ substr $S10, rx867_tgt, $I11, 1
+ ne $S10, "[", rx867_fail
+ add rx867_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx867_cur."!cursor_pos"(rx867_pos)
+ $P10 = rx867_cur."ws"()
+ unless $P10, rx867_fail
+ rx867_pos = $P10."pos"()
+ # rx rxquantr872 ** 0..1
+ set_addr $I873, rxquantr872_done
+ rx867_cur."!mark_push"(0, rx867_pos, $I873)
+ rxquantr872_loop:
+ # rx subrule "EXPR" subtype=capture negate=
+ rx867_cur."!cursor_pos"(rx867_pos)
+ $P10 = rx867_cur."EXPR"()
+ unless $P10, rx867_fail
+ rx867_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx867_pos = $P10."pos"()
+ (rx867_rep) = rx867_cur."!mark_commit"($I873)
+ rxquantr872_done:
+ # rx literal "]"
+ add $I11, rx867_pos, 1
+ gt $I11, rx867_eos, rx867_fail
+ sub $I11, rx867_pos, rx867_off
+ substr $S10, rx867_tgt, $I11, 1
+ ne $S10, "]", rx867_fail
+ add rx867_pos, 1
# rx pass
- rx870_cur."!cursor_pass"(rx870_pos, "circumfix:sym<ang>")
- rx870_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx870_pos)
- .return (rx870_cur)
- rx870_fail:
+ rx867_cur."!cursor_pass"(rx867_pos, "circumfix:sym<[ ]>")
+ rx867_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx867_pos)
+ .return (rx867_cur)
+ rx867_fail:
.annotate "line", 4
- (rx870_rep, rx870_pos, $I10, $P10) = rx870_cur."!mark_fail"(0)
- lt rx870_pos, -1, rx870_done
- eq rx870_pos, -1, rx870_fail
+ (rx867_rep, rx867_pos, $I10, $P10) = rx867_cur."!mark_fail"(0)
+ lt rx867_pos, -1, rx867_done
+ eq rx867_pos, -1, rx867_fail
jump $I10
- rx870_done:
- rx870_cur."!cursor_fail"()
- rx870_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
- .return (rx870_cur)
+ rx867_done:
+ rx867_cur."!cursor_fail"()
+ rx867_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
+ .return (rx867_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>" :subid("212_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<[ ]>" :subid("210_1267204702.05125") :method
.annotate "line", 4
- new $P872, "ResizablePMCArray"
- push $P872, "<"
- .return ($P872)
+ $P869 = self."!PREFIX__!subrule"("", "[")
+ new $P870, "ResizablePMCArray"
+ push $P870, $P869
+ .return ($P870)
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("213_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<ang>" :subid("211_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx875_tgt
.local int rx875_pos
@@ -10467,7 +10437,7 @@
.local int rx875_rep
.local pmc rx875_cur
(rx875_cur, rx875_pos, rx875_tgt) = self."!cursor_start"()
- rx875_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ rx875_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
.lex unicode:"$\x{a2}", rx875_cur
.local pmc match
.lex "$/", match
@@ -10489,23 +10459,23 @@
set_addr $I10, rxscan878_loop
rx875_cur."!mark_push"(0, rx875_pos, $I10)
rxscan878_done:
-.annotate "line", 405
+.annotate "line", 408
# rx enumcharlist negate=0 zerowidth
ge rx875_pos, rx875_eos, rx875_fail
sub $I10, rx875_pos, rx875_off
substr $S10, rx875_tgt, $I10, 1
- index $I11, unicode:"\x{ab}", $S10
+ index $I11, "<", $S10
lt $I11, 0, rx875_fail
# rx subrule "quote_EXPR" subtype=capture negate=
rx875_cur."!cursor_pos"(rx875_pos)
- $P10 = rx875_cur."quote_EXPR"(":qq", ":w")
+ $P10 = rx875_cur."quote_EXPR"(":q", ":w")
unless $P10, rx875_fail
rx875_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
rx875_pos = $P10."pos"()
# rx pass
- rx875_cur."!cursor_pass"(rx875_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
- rx875_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx875_pos)
+ rx875_cur."!cursor_pass"(rx875_pos, "circumfix:sym<ang>")
+ rx875_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx875_pos)
.return (rx875_cur)
rx875_fail:
.annotate "line", 4
@@ -10515,23 +10485,23 @@
jump $I10
rx875_done:
rx875_cur."!cursor_fail"()
- rx875_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ rx875_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
.return (rx875_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("214_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<ang>" :subid("212_1267204702.05125") :method
.annotate "line", 4
new $P877, "ResizablePMCArray"
- push $P877, unicode:"\x{ab}"
+ push $P877, "<"
.return ($P877)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>" :subid("215_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("213_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx880_tgt
.local int rx880_pos
@@ -10540,7 +10510,7 @@
.local int rx880_rep
.local pmc rx880_cur
(rx880_cur, rx880_pos, rx880_tgt) = self."!cursor_start"()
- rx880_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+ rx880_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
.lex unicode:"$\x{a2}", rx880_cur
.local pmc match
.lex "$/", match
@@ -10562,23 +10532,23 @@
set_addr $I10, rxscan883_loop
rx880_cur."!mark_push"(0, rx880_pos, $I10)
rxscan883_done:
-.annotate "line", 406
+.annotate "line", 409
# rx enumcharlist negate=0 zerowidth
ge rx880_pos, rx880_eos, rx880_fail
sub $I10, rx880_pos, rx880_off
substr $S10, rx880_tgt, $I10, 1
- index $I11, "{", $S10
+ index $I11, unicode:"\x{ab}", $S10
lt $I11, 0, rx880_fail
- # rx subrule "pblock" subtype=capture negate=
+ # rx subrule "quote_EXPR" subtype=capture negate=
rx880_cur."!cursor_pos"(rx880_pos)
- $P10 = rx880_cur."pblock"()
+ $P10 = rx880_cur."quote_EXPR"(":qq", ":w")
unless $P10, rx880_fail
rx880_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("pblock")
+ $P10."!cursor_names"("quote_EXPR")
rx880_pos = $P10."pos"()
# rx pass
- rx880_cur."!cursor_pass"(rx880_pos, "circumfix:sym<{ }>")
- rx880_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx880_pos)
+ rx880_cur."!cursor_pass"(rx880_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ rx880_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx880_pos)
.return (rx880_cur)
rx880_fail:
.annotate "line", 4
@@ -10588,23 +10558,23 @@
jump $I10
rx880_done:
rx880_cur."!cursor_fail"()
- rx880_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
+ rx880_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
.return (rx880_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>" :subid("216_1261064023.05912") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("214_1267204702.05125") :method
.annotate "line", 4
new $P882, "ResizablePMCArray"
- push $P882, "{"
+ push $P882, unicode:"\x{ab}"
.return ($P882)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>" :subid("217_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<{ }>" :subid("215_1267204702.05125") :method :outer("11_1267204702.05125")
.annotate "line", 4
.local string rx885_tgt
.local int rx885_pos
@@ -10613,7 +10583,7 @@
.local int rx885_rep
.local pmc rx885_cur
(rx885_cur, rx885_pos, rx885_tgt) = self."!cursor_start"()
- rx885_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+ rx885_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
.lex unicode:"$\x{a2}", rx885_cur
.local pmc match
.lex "$/", match
@@ -10624,60 +10594,34 @@
substr rx885_tgt, rx885_tgt, rx885_off
rx885_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan889_done
- goto rxscan889_scan
- rxscan889_loop:
+ ne $I10, -1, rxscan888_done
+ goto rxscan888_scan
+ rxscan888_loop:
($P10) = rx885_cur."from"()
inc $P10
set rx885_pos, $P10
- ge rx885_pos, rx885_eos, rxscan889_done
- rxscan889_scan:
- set_addr $I10, rxscan889_loop
+ ge rx885_pos, rx885_eos, rxscan888_done
+ rxscan888_scan:
+ set_addr $I10, rxscan888_loop
rx885_cur."!mark_push"(0, rx885_pos, $I10)
- rxscan889_done:
-.annotate "line", 407
- # rx subrule "sigil" subtype=capture negate=
- rx885_cur."!cursor_pos"(rx885_pos)
- $P10 = rx885_cur."sigil"()
- unless $P10, rx885_fail
- rx885_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sigil")
- rx885_pos = $P10."pos"()
- # rx literal "("
- add $I11, rx885_pos, 1
- gt $I11, rx885_eos, rx885_fail
- sub $I11, rx885_pos, rx885_off
- substr $S10, rx885_tgt, $I11, 1
- ne $S10, "(", rx885_fail
- add rx885_pos, 1
- # rx subrule "semilist" subtype=capture negate=
+ rxscan888_done:
+.annotate "line", 410
+ # rx enumcharlist negate=0 zerowidth
+ ge rx885_pos, rx885_eos, rx885_fail
+ sub $I10, rx885_pos, rx885_off
+ substr $S10, rx885_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx885_fail
+ # rx subrule "pblock" subtype=capture negate=
rx885_cur."!cursor_pos"(rx885_pos)
- $P10 = rx885_cur."semilist"()
+ $P10 = rx885_cur."pblock"()
unless $P10, rx885_fail
rx885_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("semilist")
- rx885_pos = $P10."pos"()
- alt890_0:
- set_addr $I10, alt890_1
- rx885_cur."!mark_push"(0, rx885_pos, $I10)
- # rx literal ")"
- add $I11, rx885_pos, 1
- gt $I11, rx885_eos, rx885_fail
- sub $I11, rx885_pos, rx885_off
- substr $S10, rx885_tgt, $I11, 1
- ne $S10, ")", rx885_fail
- add rx885_pos, 1
- goto alt890_end
- alt890_1:
- # rx subrule "FAILGOAL" subtype=method negate=
- rx885_cur."!cursor_pos"(rx885_pos)
- $P10 = rx885_cur."FAILGOAL"("')'")
- unless $P10, rx885_fail
+ $P10."!cursor_names"("pblock")
rx885_pos = $P10."pos"()
- alt890_end:
# rx pass
- rx885_cur."!cursor_pass"(rx885_pos, "circumfix:sym<sigil>")
- rx885_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx885_pos)
+ rx885_cur."!cursor_pass"(rx885_pos, "circumfix:sym<{ }>")
+ rx885_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx885_pos)
.return (rx885_cur)
rx885_fail:
.annotate "line", 4
@@ -10687,173 +10631,201 @@
jump $I10
rx885_done:
rx885_cur."!cursor_fail"()
- rx885_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
+ rx885_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
.return (rx885_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>" :subid("218_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<{ }>" :subid("216_1267204702.05125") :method
.annotate "line", 4
- $P887 = self."!PREFIX__!subrule"("sigil", "")
- new $P888, "ResizablePMCArray"
- push $P888, $P887
- .return ($P888)
+ new $P887, "ResizablePMCArray"
+ push $P887, "{"
+ .return ($P887)
.end
.namespace ["NQP";"Grammar"]
-.sub "semilist" :subid("219_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 4
- .local string rx893_tgt
- .local int rx893_pos
- .local int rx893_off
- .local int rx893_eos
- .local int rx893_rep
- .local pmc rx893_cur
- (rx893_cur, rx893_pos, rx893_tgt) = self."!cursor_start"()
- rx893_cur."!cursor_debug"("START ", "semilist")
- .lex unicode:"$\x{a2}", rx893_cur
- .local pmc match
- .lex "$/", match
- length rx893_eos, rx893_tgt
- set rx893_off, 0
- lt rx893_pos, 2, rx893_start
- sub rx893_off, rx893_pos, 1
- substr rx893_tgt, rx893_tgt, rx893_off
- rx893_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan896_done
- goto rxscan896_scan
- rxscan896_loop:
- ($P10) = rx893_cur."from"()
- inc $P10
- set rx893_pos, $P10
- ge rx893_pos, rx893_eos, rxscan896_done
- rxscan896_scan:
- set_addr $I10, rxscan896_loop
- rx893_cur."!mark_push"(0, rx893_pos, $I10)
- rxscan896_done:
-.annotate "line", 409
- # rx subrule "ws" subtype=method negate=
- rx893_cur."!cursor_pos"(rx893_pos)
- $P10 = rx893_cur."ws"()
- unless $P10, rx893_fail
- rx893_pos = $P10."pos"()
- # rx subrule "statement" subtype=capture negate=
- rx893_cur."!cursor_pos"(rx893_pos)
- $P10 = rx893_cur."statement"()
- unless $P10, rx893_fail
- rx893_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("statement")
- rx893_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx893_cur."!cursor_pos"(rx893_pos)
- $P10 = rx893_cur."ws"()
- unless $P10, rx893_fail
- rx893_pos = $P10."pos"()
+.sub "circumfix:sym<sigil>" :subid("217_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 4
+ .local string rx890_tgt
+ .local int rx890_pos
+ .local int rx890_off
+ .local int rx890_eos
+ .local int rx890_rep
+ .local pmc rx890_cur
+ (rx890_cur, rx890_pos, rx890_tgt) = self."!cursor_start"()
+ rx890_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+ .lex unicode:"$\x{a2}", rx890_cur
+ .local pmc match
+ .lex "$/", match
+ length rx890_eos, rx890_tgt
+ set rx890_off, 0
+ lt rx890_pos, 2, rx890_start
+ sub rx890_off, rx890_pos, 1
+ substr rx890_tgt, rx890_tgt, rx890_off
+ rx890_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan894_done
+ goto rxscan894_scan
+ rxscan894_loop:
+ ($P10) = rx890_cur."from"()
+ inc $P10
+ set rx890_pos, $P10
+ ge rx890_pos, rx890_eos, rxscan894_done
+ rxscan894_scan:
+ set_addr $I10, rxscan894_loop
+ rx890_cur."!mark_push"(0, rx890_pos, $I10)
+ rxscan894_done:
+.annotate "line", 411
+ # rx subrule "sigil" subtype=capture negate=
+ rx890_cur."!cursor_pos"(rx890_pos)
+ $P10 = rx890_cur."sigil"()
+ unless $P10, rx890_fail
+ rx890_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sigil")
+ rx890_pos = $P10."pos"()
+ # rx literal "("
+ add $I11, rx890_pos, 1
+ gt $I11, rx890_eos, rx890_fail
+ sub $I11, rx890_pos, rx890_off
+ substr $S10, rx890_tgt, $I11, 1
+ ne $S10, "(", rx890_fail
+ add rx890_pos, 1
+ # rx subrule "semilist" subtype=capture negate=
+ rx890_cur."!cursor_pos"(rx890_pos)
+ $P10 = rx890_cur."semilist"()
+ unless $P10, rx890_fail
+ rx890_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("semilist")
+ rx890_pos = $P10."pos"()
+ alt895_0:
+ set_addr $I10, alt895_1
+ rx890_cur."!mark_push"(0, rx890_pos, $I10)
+ # rx literal ")"
+ add $I11, rx890_pos, 1
+ gt $I11, rx890_eos, rx890_fail
+ sub $I11, rx890_pos, rx890_off
+ substr $S10, rx890_tgt, $I11, 1
+ ne $S10, ")", rx890_fail
+ add rx890_pos, 1
+ goto alt895_end
+ alt895_1:
+ # rx subrule "FAILGOAL" subtype=method negate=
+ rx890_cur."!cursor_pos"(rx890_pos)
+ $P10 = rx890_cur."FAILGOAL"("')'")
+ unless $P10, rx890_fail
+ rx890_pos = $P10."pos"()
+ alt895_end:
# rx pass
- rx893_cur."!cursor_pass"(rx893_pos, "semilist")
- rx893_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx893_pos)
- .return (rx893_cur)
- rx893_fail:
+ rx890_cur."!cursor_pass"(rx890_pos, "circumfix:sym<sigil>")
+ rx890_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx890_pos)
+ .return (rx890_cur)
+ rx890_fail:
.annotate "line", 4
- (rx893_rep, rx893_pos, $I10, $P10) = rx893_cur."!mark_fail"(0)
- lt rx893_pos, -1, rx893_done
- eq rx893_pos, -1, rx893_fail
+ (rx890_rep, rx890_pos, $I10, $P10) = rx890_cur."!mark_fail"(0)
+ lt rx890_pos, -1, rx890_done
+ eq rx890_pos, -1, rx890_fail
jump $I10
- rx893_done:
- rx893_cur."!cursor_fail"()
- rx893_cur."!cursor_debug"("FAIL ", "semilist")
- .return (rx893_cur)
+ rx890_done:
+ rx890_cur."!cursor_fail"()
+ rx890_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
+ .return (rx890_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist" :subid("220_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<sigil>" :subid("218_1267204702.05125") :method
.annotate "line", 4
- new $P895, "ResizablePMCArray"
- push $P895, ""
- .return ($P895)
+ $P892 = self."!PREFIX__!subrule"("sigil", "")
+ new $P893, "ResizablePMCArray"
+ push $P893, $P892
+ .return ($P893)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixish" :subid("221_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "semilist" :subid("219_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 4
+ .local string rx898_tgt
+ .local int rx898_pos
+ .local int rx898_off
+ .local int rx898_eos
+ .local int rx898_rep
+ .local pmc rx898_cur
+ (rx898_cur, rx898_pos, rx898_tgt) = self."!cursor_start"()
+ rx898_cur."!cursor_debug"("START ", "semilist")
+ .lex unicode:"$\x{a2}", rx898_cur
+ .local pmc match
+ .lex "$/", match
+ length rx898_eos, rx898_tgt
+ set rx898_off, 0
+ lt rx898_pos, 2, rx898_start
+ sub rx898_off, rx898_pos, 1
+ substr rx898_tgt, rx898_tgt, rx898_off
+ rx898_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan901_done
+ goto rxscan901_scan
+ rxscan901_loop:
+ ($P10) = rx898_cur."from"()
+ inc $P10
+ set rx898_pos, $P10
+ ge rx898_pos, rx898_eos, rxscan901_done
+ rxscan901_scan:
+ set_addr $I10, rxscan901_loop
+ rx898_cur."!mark_push"(0, rx898_pos, $I10)
+ rxscan901_done:
.annotate "line", 413
- .local string rx900_tgt
- .local int rx900_pos
- .local int rx900_off
- .local int rx900_eos
- .local int rx900_rep
- .local pmc rx900_cur
- (rx900_cur, rx900_pos, rx900_tgt) = self."!cursor_start"()
- rx900_cur."!cursor_debug"("START ", "infixish")
- .lex unicode:"$\x{a2}", rx900_cur
- .local pmc match
- .lex "$/", match
- length rx900_eos, rx900_tgt
- set rx900_off, 0
- lt rx900_pos, 2, rx900_start
- sub rx900_off, rx900_pos, 1
- substr rx900_tgt, rx900_tgt, rx900_off
- rx900_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan903_done
- goto rxscan903_scan
- rxscan903_loop:
- ($P10) = rx900_cur."from"()
- inc $P10
- set rx900_pos, $P10
- ge rx900_pos, rx900_eos, rxscan903_done
- rxscan903_scan:
- set_addr $I10, rxscan903_loop
- rx900_cur."!mark_push"(0, rx900_pos, $I10)
- rxscan903_done:
-.annotate "line", 432
- # rx subrule "infixstopper" subtype=zerowidth negate=1
- rx900_cur."!cursor_pos"(rx900_pos)
- $P10 = rx900_cur."infixstopper"()
- if $P10, rx900_fail
- # rx subrule "infix" subtype=capture negate=
- rx900_cur."!cursor_pos"(rx900_pos)
- $P10 = rx900_cur."infix"()
- unless $P10, rx900_fail
- rx900_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("OPER=infix")
- rx900_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx898_cur."!cursor_pos"(rx898_pos)
+ $P10 = rx898_cur."ws"()
+ unless $P10, rx898_fail
+ rx898_pos = $P10."pos"()
+ # rx subrule "statement" subtype=capture negate=
+ rx898_cur."!cursor_pos"(rx898_pos)
+ $P10 = rx898_cur."statement"()
+ unless $P10, rx898_fail
+ rx898_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("statement")
+ rx898_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx898_cur."!cursor_pos"(rx898_pos)
+ $P10 = rx898_cur."ws"()
+ unless $P10, rx898_fail
+ rx898_pos = $P10."pos"()
# rx pass
- rx900_cur."!cursor_pass"(rx900_pos, "infixish")
- rx900_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx900_pos)
- .return (rx900_cur)
- rx900_fail:
-.annotate "line", 413
- (rx900_rep, rx900_pos, $I10, $P10) = rx900_cur."!mark_fail"(0)
- lt rx900_pos, -1, rx900_done
- eq rx900_pos, -1, rx900_fail
+ rx898_cur."!cursor_pass"(rx898_pos, "semilist")
+ rx898_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx898_pos)
+ .return (rx898_cur)
+ rx898_fail:
+.annotate "line", 4
+ (rx898_rep, rx898_pos, $I10, $P10) = rx898_cur."!mark_fail"(0)
+ lt rx898_pos, -1, rx898_done
+ eq rx898_pos, -1, rx898_fail
jump $I10
- rx900_done:
- rx900_cur."!cursor_fail"()
- rx900_cur."!cursor_debug"("FAIL ", "infixish")
- .return (rx900_cur)
+ rx898_done:
+ rx898_cur."!cursor_fail"()
+ rx898_cur."!cursor_debug"("FAIL ", "semilist")
+ .return (rx898_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish" :subid("222_1261064023.05912") :method
-.annotate "line", 413
- new $P902, "ResizablePMCArray"
- push $P902, ""
- .return ($P902)
+.sub "!PREFIX__semilist" :subid("220_1267204702.05125") :method
+.annotate "line", 4
+ new $P900, "ResizablePMCArray"
+ push $P900, ""
+ .return ($P900)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixstopper" :subid("223_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
+.sub "infixish" :subid("221_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
.local string rx905_tgt
.local int rx905_pos
.local int rx905_off
@@ -10861,7 +10833,7 @@
.local int rx905_rep
.local pmc rx905_cur
(rx905_cur, rx905_pos, rx905_tgt) = self."!cursor_start"()
- rx905_cur."!cursor_debug"("START ", "infixstopper")
+ rx905_cur."!cursor_debug"("START ", "infixish")
.lex unicode:"$\x{a2}", rx905_cur
.local pmc match
.lex "$/", match
@@ -10883,32 +10855,39 @@
set_addr $I10, rxscan908_loop
rx905_cur."!mark_push"(0, rx905_pos, $I10)
rxscan908_done:
-.annotate "line", 433
- # rx subrule "lambda" subtype=zerowidth negate=
+.annotate "line", 436
+ # rx subrule "infixstopper" subtype=zerowidth negate=1
+ rx905_cur."!cursor_pos"(rx905_pos)
+ $P10 = rx905_cur."infixstopper"()
+ if $P10, rx905_fail
+ # rx subrule "infix" subtype=capture negate=
rx905_cur."!cursor_pos"(rx905_pos)
- $P10 = rx905_cur."lambda"()
+ $P10 = rx905_cur."infix"()
unless $P10, rx905_fail
+ rx905_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("OPER=infix")
+ rx905_pos = $P10."pos"()
# rx pass
- rx905_cur."!cursor_pass"(rx905_pos, "infixstopper")
- rx905_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx905_pos)
+ rx905_cur."!cursor_pass"(rx905_pos, "infixish")
+ rx905_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx905_pos)
.return (rx905_cur)
rx905_fail:
-.annotate "line", 413
+.annotate "line", 417
(rx905_rep, rx905_pos, $I10, $P10) = rx905_cur."!mark_fail"(0)
lt rx905_pos, -1, rx905_done
eq rx905_pos, -1, rx905_fail
jump $I10
rx905_done:
rx905_cur."!cursor_fail"()
- rx905_cur."!cursor_debug"("FAIL ", "infixstopper")
+ rx905_cur."!cursor_debug"("FAIL ", "infixish")
.return (rx905_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper" :subid("224_1261064023.05912") :method
-.annotate "line", 413
+.sub "!PREFIX__infixish" :subid("222_1267204702.05125") :method
+.annotate "line", 417
new $P907, "ResizablePMCArray"
push $P907, ""
.return ($P907)
@@ -10916,8 +10895,8 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>" :subid("225_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
+.sub "infixstopper" :subid("223_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
.local string rx910_tgt
.local int rx910_pos
.local int rx910_off
@@ -10925,7 +10904,7 @@
.local int rx910_rep
.local pmc rx910_cur
(rx910_cur, rx910_pos, rx910_tgt) = self."!cursor_start"()
- rx910_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+ rx910_cur."!cursor_debug"("START ", "infixstopper")
.lex unicode:"$\x{a2}", rx910_cur
.local pmc match
.lex "$/", match
@@ -10936,262 +10915,244 @@
substr rx910_tgt, rx910_tgt, rx910_off
rx910_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan914_done
- goto rxscan914_scan
- rxscan914_loop:
+ ne $I10, -1, rxscan913_done
+ goto rxscan913_scan
+ rxscan913_loop:
($P10) = rx910_cur."from"()
inc $P10
set rx910_pos, $P10
- ge rx910_pos, rx910_eos, rxscan914_done
- rxscan914_scan:
- set_addr $I10, rxscan914_loop
+ ge rx910_pos, rx910_eos, rxscan913_done
+ rxscan913_scan:
+ set_addr $I10, rxscan913_loop
rx910_cur."!mark_push"(0, rx910_pos, $I10)
- rxscan914_done:
-.annotate "line", 436
- # rx literal "["
- add $I11, rx910_pos, 1
- gt $I11, rx910_eos, rx910_fail
- sub $I11, rx910_pos, rx910_off
- substr $S10, rx910_tgt, $I11, 1
- ne $S10, "[", rx910_fail
- add rx910_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx910_cur."!cursor_pos"(rx910_pos)
- $P10 = rx910_cur."ws"()
- unless $P10, rx910_fail
- rx910_pos = $P10."pos"()
- # rx subrule "EXPR" subtype=capture negate=
- rx910_cur."!cursor_pos"(rx910_pos)
- $P10 = rx910_cur."EXPR"()
- unless $P10, rx910_fail
- rx910_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx910_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx910_pos, 1
- gt $I11, rx910_eos, rx910_fail
- sub $I11, rx910_pos, rx910_off
- substr $S10, rx910_tgt, $I11, 1
- ne $S10, "]", rx910_fail
- add rx910_pos, 1
+ rxscan913_done:
.annotate "line", 437
- # rx subrule "O" subtype=capture negate=
+ # rx subrule "lambda" subtype=zerowidth negate=
rx910_cur."!cursor_pos"(rx910_pos)
- $P10 = rx910_cur."O"("%methodop")
+ $P10 = rx910_cur."lambda"()
unless $P10, rx910_fail
- rx910_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx910_pos = $P10."pos"()
-.annotate "line", 435
# rx pass
- rx910_cur."!cursor_pass"(rx910_pos, "postcircumfix:sym<[ ]>")
- rx910_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx910_pos)
+ rx910_cur."!cursor_pass"(rx910_pos, "infixstopper")
+ rx910_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx910_pos)
.return (rx910_cur)
rx910_fail:
-.annotate "line", 413
+.annotate "line", 417
(rx910_rep, rx910_pos, $I10, $P10) = rx910_cur."!mark_fail"(0)
lt rx910_pos, -1, rx910_done
eq rx910_pos, -1, rx910_fail
jump $I10
rx910_done:
rx910_cur."!cursor_fail"()
- rx910_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
+ rx910_cur."!cursor_debug"("FAIL ", "infixstopper")
.return (rx910_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("226_1261064023.05912") :method
-.annotate "line", 413
- $P912 = self."!PREFIX__!subrule"("", "[")
- new $P913, "ResizablePMCArray"
- push $P913, $P912
- .return ($P913)
+.sub "!PREFIX__infixstopper" :subid("224_1267204702.05125") :method
+.annotate "line", 417
+ new $P912, "ResizablePMCArray"
+ push $P912, ""
+ .return ($P912)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>" :subid("227_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx916_tgt
- .local int rx916_pos
- .local int rx916_off
- .local int rx916_eos
- .local int rx916_rep
- .local pmc rx916_cur
- (rx916_cur, rx916_pos, rx916_tgt) = self."!cursor_start"()
- rx916_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
- .lex unicode:"$\x{a2}", rx916_cur
- .local pmc match
- .lex "$/", match
- length rx916_eos, rx916_tgt
- set rx916_off, 0
- lt rx916_pos, 2, rx916_start
- sub rx916_off, rx916_pos, 1
- substr rx916_tgt, rx916_tgt, rx916_off
- rx916_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan920_done
- goto rxscan920_scan
- rxscan920_loop:
- ($P10) = rx916_cur."from"()
- inc $P10
- set rx916_pos, $P10
- ge rx916_pos, rx916_eos, rxscan920_done
- rxscan920_scan:
- set_addr $I10, rxscan920_loop
- rx916_cur."!mark_push"(0, rx916_pos, $I10)
- rxscan920_done:
-.annotate "line", 441
- # rx literal "{"
- add $I11, rx916_pos, 1
- gt $I11, rx916_eos, rx916_fail
- sub $I11, rx916_pos, rx916_off
- substr $S10, rx916_tgt, $I11, 1
- ne $S10, "{", rx916_fail
- add rx916_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx916_cur."!cursor_pos"(rx916_pos)
- $P10 = rx916_cur."ws"()
- unless $P10, rx916_fail
- rx916_pos = $P10."pos"()
+.sub "postcircumfix:sym<[ ]>" :subid("225_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx915_tgt
+ .local int rx915_pos
+ .local int rx915_off
+ .local int rx915_eos
+ .local int rx915_rep
+ .local pmc rx915_cur
+ (rx915_cur, rx915_pos, rx915_tgt) = self."!cursor_start"()
+ rx915_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+ .lex unicode:"$\x{a2}", rx915_cur
+ .local pmc match
+ .lex "$/", match
+ length rx915_eos, rx915_tgt
+ set rx915_off, 0
+ lt rx915_pos, 2, rx915_start
+ sub rx915_off, rx915_pos, 1
+ substr rx915_tgt, rx915_tgt, rx915_off
+ rx915_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan919_done
+ goto rxscan919_scan
+ rxscan919_loop:
+ ($P10) = rx915_cur."from"()
+ inc $P10
+ set rx915_pos, $P10
+ ge rx915_pos, rx915_eos, rxscan919_done
+ rxscan919_scan:
+ set_addr $I10, rxscan919_loop
+ rx915_cur."!mark_push"(0, rx915_pos, $I10)
+ rxscan919_done:
+.annotate "line", 440
+ # rx literal "["
+ add $I11, rx915_pos, 1
+ gt $I11, rx915_eos, rx915_fail
+ sub $I11, rx915_pos, rx915_off
+ substr $S10, rx915_tgt, $I11, 1
+ ne $S10, "[", rx915_fail
+ add rx915_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx915_cur."!cursor_pos"(rx915_pos)
+ $P10 = rx915_cur."ws"()
+ unless $P10, rx915_fail
+ rx915_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx916_cur."!cursor_pos"(rx916_pos)
- $P10 = rx916_cur."EXPR"()
- unless $P10, rx916_fail
- rx916_cur."!mark_push"(0, -1, 0, $P10)
+ rx915_cur."!cursor_pos"(rx915_pos)
+ $P10 = rx915_cur."EXPR"()
+ unless $P10, rx915_fail
+ rx915_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx916_pos = $P10."pos"()
- # rx literal "}"
- add $I11, rx916_pos, 1
- gt $I11, rx916_eos, rx916_fail
- sub $I11, rx916_pos, rx916_off
- substr $S10, rx916_tgt, $I11, 1
- ne $S10, "}", rx916_fail
- add rx916_pos, 1
-.annotate "line", 442
+ rx915_pos = $P10."pos"()
+ # rx literal "]"
+ add $I11, rx915_pos, 1
+ gt $I11, rx915_eos, rx915_fail
+ sub $I11, rx915_pos, rx915_off
+ substr $S10, rx915_tgt, $I11, 1
+ ne $S10, "]", rx915_fail
+ add rx915_pos, 1
+.annotate "line", 441
# rx subrule "O" subtype=capture negate=
- rx916_cur."!cursor_pos"(rx916_pos)
- $P10 = rx916_cur."O"("%methodop")
- unless $P10, rx916_fail
- rx916_cur."!mark_push"(0, -1, 0, $P10)
+ rx915_cur."!cursor_pos"(rx915_pos)
+ $P10 = rx915_cur."O"("%methodop")
+ unless $P10, rx915_fail
+ rx915_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx916_pos = $P10."pos"()
-.annotate "line", 440
+ rx915_pos = $P10."pos"()
+.annotate "line", 439
# rx pass
- rx916_cur."!cursor_pass"(rx916_pos, "postcircumfix:sym<{ }>")
- rx916_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx916_pos)
- .return (rx916_cur)
- rx916_fail:
-.annotate "line", 413
- (rx916_rep, rx916_pos, $I10, $P10) = rx916_cur."!mark_fail"(0)
- lt rx916_pos, -1, rx916_done
- eq rx916_pos, -1, rx916_fail
+ rx915_cur."!cursor_pass"(rx915_pos, "postcircumfix:sym<[ ]>")
+ rx915_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx915_pos)
+ .return (rx915_cur)
+ rx915_fail:
+.annotate "line", 417
+ (rx915_rep, rx915_pos, $I10, $P10) = rx915_cur."!mark_fail"(0)
+ lt rx915_pos, -1, rx915_done
+ eq rx915_pos, -1, rx915_fail
jump $I10
- rx916_done:
- rx916_cur."!cursor_fail"()
- rx916_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
- .return (rx916_cur)
+ rx915_done:
+ rx915_cur."!cursor_fail"()
+ rx915_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
+ .return (rx915_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("228_1261064023.05912") :method
-.annotate "line", 413
- $P918 = self."!PREFIX__!subrule"("", "{")
- new $P919, "ResizablePMCArray"
- push $P919, $P918
- .return ($P919)
+.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("226_1267204702.05125") :method
+.annotate "line", 417
+ $P917 = self."!PREFIX__!subrule"("", "[")
+ new $P918, "ResizablePMCArray"
+ push $P918, $P917
+ .return ($P918)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>" :subid("229_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx922_tgt
- .local int rx922_pos
- .local int rx922_off
- .local int rx922_eos
- .local int rx922_rep
- .local pmc rx922_cur
- (rx922_cur, rx922_pos, rx922_tgt) = self."!cursor_start"()
- rx922_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
- .lex unicode:"$\x{a2}", rx922_cur
- .local pmc match
- .lex "$/", match
- length rx922_eos, rx922_tgt
- set rx922_off, 0
- lt rx922_pos, 2, rx922_start
- sub rx922_off, rx922_pos, 1
- substr rx922_tgt, rx922_tgt, rx922_off
- rx922_start:
+.sub "postcircumfix:sym<{ }>" :subid("227_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx921_tgt
+ .local int rx921_pos
+ .local int rx921_off
+ .local int rx921_eos
+ .local int rx921_rep
+ .local pmc rx921_cur
+ (rx921_cur, rx921_pos, rx921_tgt) = self."!cursor_start"()
+ rx921_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx921_cur
+ .local pmc match
+ .lex "$/", match
+ length rx921_eos, rx921_tgt
+ set rx921_off, 0
+ lt rx921_pos, 2, rx921_start
+ sub rx921_off, rx921_pos, 1
+ substr rx921_tgt, rx921_tgt, rx921_off
+ rx921_start:
$I10 = self.'from'()
ne $I10, -1, rxscan925_done
goto rxscan925_scan
rxscan925_loop:
- ($P10) = rx922_cur."from"()
+ ($P10) = rx921_cur."from"()
inc $P10
- set rx922_pos, $P10
- ge rx922_pos, rx922_eos, rxscan925_done
+ set rx921_pos, $P10
+ ge rx921_pos, rx921_eos, rxscan925_done
rxscan925_scan:
set_addr $I10, rxscan925_loop
- rx922_cur."!mark_push"(0, rx922_pos, $I10)
+ rx921_cur."!mark_push"(0, rx921_pos, $I10)
rxscan925_done:
+.annotate "line", 445
+ # rx literal "{"
+ add $I11, rx921_pos, 1
+ gt $I11, rx921_eos, rx921_fail
+ sub $I11, rx921_pos, rx921_off
+ substr $S10, rx921_tgt, $I11, 1
+ ne $S10, "{", rx921_fail
+ add rx921_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx921_cur."!cursor_pos"(rx921_pos)
+ $P10 = rx921_cur."ws"()
+ unless $P10, rx921_fail
+ rx921_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx921_cur."!cursor_pos"(rx921_pos)
+ $P10 = rx921_cur."EXPR"()
+ unless $P10, rx921_fail
+ rx921_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx921_pos = $P10."pos"()
+ # rx literal "}"
+ add $I11, rx921_pos, 1
+ gt $I11, rx921_eos, rx921_fail
+ sub $I11, rx921_pos, rx921_off
+ substr $S10, rx921_tgt, $I11, 1
+ ne $S10, "}", rx921_fail
+ add rx921_pos, 1
.annotate "line", 446
- # rx enumcharlist negate=0 zerowidth
- ge rx922_pos, rx922_eos, rx922_fail
- sub $I10, rx922_pos, rx922_off
- substr $S10, rx922_tgt, $I10, 1
- index $I11, "<", $S10
- lt $I11, 0, rx922_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx922_cur."!cursor_pos"(rx922_pos)
- $P10 = rx922_cur."quote_EXPR"(":q")
- unless $P10, rx922_fail
- rx922_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx922_pos = $P10."pos"()
-.annotate "line", 447
# rx subrule "O" subtype=capture negate=
- rx922_cur."!cursor_pos"(rx922_pos)
- $P10 = rx922_cur."O"("%methodop")
- unless $P10, rx922_fail
- rx922_cur."!mark_push"(0, -1, 0, $P10)
+ rx921_cur."!cursor_pos"(rx921_pos)
+ $P10 = rx921_cur."O"("%methodop")
+ unless $P10, rx921_fail
+ rx921_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx922_pos = $P10."pos"()
-.annotate "line", 445
+ rx921_pos = $P10."pos"()
+.annotate "line", 444
# rx pass
- rx922_cur."!cursor_pass"(rx922_pos, "postcircumfix:sym<ang>")
- rx922_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx922_pos)
- .return (rx922_cur)
- rx922_fail:
-.annotate "line", 413
- (rx922_rep, rx922_pos, $I10, $P10) = rx922_cur."!mark_fail"(0)
- lt rx922_pos, -1, rx922_done
- eq rx922_pos, -1, rx922_fail
+ rx921_cur."!cursor_pass"(rx921_pos, "postcircumfix:sym<{ }>")
+ rx921_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx921_pos)
+ .return (rx921_cur)
+ rx921_fail:
+.annotate "line", 417
+ (rx921_rep, rx921_pos, $I10, $P10) = rx921_cur."!mark_fail"(0)
+ lt rx921_pos, -1, rx921_done
+ eq rx921_pos, -1, rx921_fail
jump $I10
- rx922_done:
- rx922_cur."!cursor_fail"()
- rx922_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
- .return (rx922_cur)
+ rx921_done:
+ rx921_cur."!cursor_fail"()
+ rx921_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
+ .return (rx921_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>" :subid("230_1261064023.05912") :method
-.annotate "line", 413
+.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("228_1267204702.05125") :method
+.annotate "line", 417
+ $P923 = self."!PREFIX__!subrule"("", "{")
new $P924, "ResizablePMCArray"
- push $P924, "<"
+ push $P924, $P923
.return ($P924)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>" :subid("231_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
+.sub "postcircumfix:sym<ang>" :subid("229_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
.local string rx927_tgt
.local int rx927_pos
.local int rx927_off
@@ -11199,7 +11160,7 @@
.local int rx927_rep
.local pmc rx927_cur
(rx927_cur, rx927_pos, rx927_tgt) = self."!cursor_start"()
- rx927_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+ rx927_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
.lex unicode:"$\x{a2}", rx927_cur
.local pmc match
.lex "$/", match
@@ -11210,45 +11171,32 @@
substr rx927_tgt, rx927_tgt, rx927_off
rx927_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan931_done
- goto rxscan931_scan
- rxscan931_loop:
+ ne $I10, -1, rxscan930_done
+ goto rxscan930_scan
+ rxscan930_loop:
($P10) = rx927_cur."from"()
inc $P10
set rx927_pos, $P10
- ge rx927_pos, rx927_eos, rxscan931_done
- rxscan931_scan:
- set_addr $I10, rxscan931_loop
+ ge rx927_pos, rx927_eos, rxscan930_done
+ rxscan930_scan:
+ set_addr $I10, rxscan930_loop
rx927_cur."!mark_push"(0, rx927_pos, $I10)
- rxscan931_done:
-.annotate "line", 451
- # rx literal "("
- add $I11, rx927_pos, 1
- gt $I11, rx927_eos, rx927_fail
- sub $I11, rx927_pos, rx927_off
- substr $S10, rx927_tgt, $I11, 1
- ne $S10, "(", rx927_fail
- add rx927_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx927_cur."!cursor_pos"(rx927_pos)
- $P10 = rx927_cur."ws"()
- unless $P10, rx927_fail
- rx927_pos = $P10."pos"()
- # rx subrule "arglist" subtype=capture negate=
+ rxscan930_done:
+.annotate "line", 450
+ # rx enumcharlist negate=0 zerowidth
+ ge rx927_pos, rx927_eos, rx927_fail
+ sub $I10, rx927_pos, rx927_off
+ substr $S10, rx927_tgt, $I10, 1
+ index $I11, "<", $S10
+ lt $I11, 0, rx927_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
rx927_cur."!cursor_pos"(rx927_pos)
- $P10 = rx927_cur."arglist"()
+ $P10 = rx927_cur."quote_EXPR"(":q")
unless $P10, rx927_fail
rx927_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
+ $P10."!cursor_names"("quote_EXPR")
rx927_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx927_pos, 1
- gt $I11, rx927_eos, rx927_fail
- sub $I11, rx927_pos, rx927_off
- substr $S10, rx927_tgt, $I11, 1
- ne $S10, ")", rx927_fail
- add rx927_pos, 1
-.annotate "line", 452
+.annotate "line", 451
# rx subrule "O" subtype=capture negate=
rx927_cur."!cursor_pos"(rx927_pos)
$P10 = rx927_cur."O"("%methodop")
@@ -11256,4087 +11204,4108 @@
rx927_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx927_pos = $P10."pos"()
-.annotate "line", 450
+.annotate "line", 449
# rx pass
- rx927_cur."!cursor_pass"(rx927_pos, "postcircumfix:sym<( )>")
- rx927_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx927_pos)
+ rx927_cur."!cursor_pass"(rx927_pos, "postcircumfix:sym<ang>")
+ rx927_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx927_pos)
.return (rx927_cur)
rx927_fail:
-.annotate "line", 413
+.annotate "line", 417
(rx927_rep, rx927_pos, $I10, $P10) = rx927_cur."!mark_fail"(0)
lt rx927_pos, -1, rx927_done
eq rx927_pos, -1, rx927_fail
jump $I10
rx927_done:
rx927_cur."!cursor_fail"()
- rx927_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
+ rx927_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
.return (rx927_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>" :subid("232_1261064023.05912") :method
-.annotate "line", 413
- $P929 = self."!PREFIX__!subrule"("", "(")
- new $P930, "ResizablePMCArray"
- push $P930, $P929
- .return ($P930)
+.sub "!PREFIX__postcircumfix:sym<ang>" :subid("230_1267204702.05125") :method
+.annotate "line", 417
+ new $P929, "ResizablePMCArray"
+ push $P929, "<"
+ .return ($P929)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>" :subid("233_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx933_tgt
- .local int rx933_pos
- .local int rx933_off
- .local int rx933_eos
- .local int rx933_rep
- .local pmc rx933_cur
- (rx933_cur, rx933_pos, rx933_tgt) = self."!cursor_start"()
- rx933_cur."!cursor_debug"("START ", "postfix:sym<.>")
- .lex unicode:"$\x{a2}", rx933_cur
- .local pmc match
- .lex "$/", match
- length rx933_eos, rx933_tgt
- set rx933_off, 0
- lt rx933_pos, 2, rx933_start
- sub rx933_off, rx933_pos, 1
- substr rx933_tgt, rx933_tgt, rx933_off
- rx933_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan937_done
- goto rxscan937_scan
- rxscan937_loop:
- ($P10) = rx933_cur."from"()
- inc $P10
- set rx933_pos, $P10
- ge rx933_pos, rx933_eos, rxscan937_done
- rxscan937_scan:
- set_addr $I10, rxscan937_loop
- rx933_cur."!mark_push"(0, rx933_pos, $I10)
- rxscan937_done:
+.sub "postcircumfix:sym<( )>" :subid("231_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx932_tgt
+ .local int rx932_pos
+ .local int rx932_off
+ .local int rx932_eos
+ .local int rx932_rep
+ .local pmc rx932_cur
+ (rx932_cur, rx932_pos, rx932_tgt) = self."!cursor_start"()
+ rx932_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+ .lex unicode:"$\x{a2}", rx932_cur
+ .local pmc match
+ .lex "$/", match
+ length rx932_eos, rx932_tgt
+ set rx932_off, 0
+ lt rx932_pos, 2, rx932_start
+ sub rx932_off, rx932_pos, 1
+ substr rx932_tgt, rx932_tgt, rx932_off
+ rx932_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan936_done
+ goto rxscan936_scan
+ rxscan936_loop:
+ ($P10) = rx932_cur."from"()
+ inc $P10
+ set rx932_pos, $P10
+ ge rx932_pos, rx932_eos, rxscan936_done
+ rxscan936_scan:
+ set_addr $I10, rxscan936_loop
+ rx932_cur."!mark_push"(0, rx932_pos, $I10)
+ rxscan936_done:
.annotate "line", 455
- # rx subrule "dotty" subtype=capture negate=
- rx933_cur."!cursor_pos"(rx933_pos)
- $P10 = rx933_cur."dotty"()
- unless $P10, rx933_fail
- rx933_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("dotty")
- rx933_pos = $P10."pos"()
+ # rx literal "("
+ add $I11, rx932_pos, 1
+ gt $I11, rx932_eos, rx932_fail
+ sub $I11, rx932_pos, rx932_off
+ substr $S10, rx932_tgt, $I11, 1
+ ne $S10, "(", rx932_fail
+ add rx932_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx932_cur."!cursor_pos"(rx932_pos)
+ $P10 = rx932_cur."ws"()
+ unless $P10, rx932_fail
+ rx932_pos = $P10."pos"()
+ # rx subrule "arglist" subtype=capture negate=
+ rx932_cur."!cursor_pos"(rx932_pos)
+ $P10 = rx932_cur."arglist"()
+ unless $P10, rx932_fail
+ rx932_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx932_pos = $P10."pos"()
+ # rx literal ")"
+ add $I11, rx932_pos, 1
+ gt $I11, rx932_eos, rx932_fail
+ sub $I11, rx932_pos, rx932_off
+ substr $S10, rx932_tgt, $I11, 1
+ ne $S10, ")", rx932_fail
+ add rx932_pos, 1
+.annotate "line", 456
# rx subrule "O" subtype=capture negate=
- rx933_cur."!cursor_pos"(rx933_pos)
- $P10 = rx933_cur."O"("%methodop")
- unless $P10, rx933_fail
- rx933_cur."!mark_push"(0, -1, 0, $P10)
+ rx932_cur."!cursor_pos"(rx932_pos)
+ $P10 = rx932_cur."O"("%methodop")
+ unless $P10, rx932_fail
+ rx932_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx933_pos = $P10."pos"()
+ rx932_pos = $P10."pos"()
+.annotate "line", 454
# rx pass
- rx933_cur."!cursor_pass"(rx933_pos, "postfix:sym<.>")
- rx933_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx933_pos)
- .return (rx933_cur)
- rx933_fail:
-.annotate "line", 413
- (rx933_rep, rx933_pos, $I10, $P10) = rx933_cur."!mark_fail"(0)
- lt rx933_pos, -1, rx933_done
- eq rx933_pos, -1, rx933_fail
+ rx932_cur."!cursor_pass"(rx932_pos, "postcircumfix:sym<( )>")
+ rx932_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx932_pos)
+ .return (rx932_cur)
+ rx932_fail:
+.annotate "line", 417
+ (rx932_rep, rx932_pos, $I10, $P10) = rx932_cur."!mark_fail"(0)
+ lt rx932_pos, -1, rx932_done
+ eq rx932_pos, -1, rx932_fail
jump $I10
- rx933_done:
- rx933_cur."!cursor_fail"()
- rx933_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
- .return (rx933_cur)
+ rx932_done:
+ rx932_cur."!cursor_fail"()
+ rx932_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
+ .return (rx932_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>" :subid("234_1261064023.05912") :method
-.annotate "line", 413
- $P935 = self."!PREFIX__!subrule"("dotty", "")
- new $P936, "ResizablePMCArray"
- push $P936, $P935
- .return ($P936)
+.sub "!PREFIX__postcircumfix:sym<( )>" :subid("232_1267204702.05125") :method
+.annotate "line", 417
+ $P934 = self."!PREFIX__!subrule"("", "(")
+ new $P935, "ResizablePMCArray"
+ push $P935, $P934
+ .return ($P935)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>" :subid("235_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx939_tgt
- .local int rx939_pos
- .local int rx939_off
- .local int rx939_eos
- .local int rx939_rep
- .local pmc rx939_cur
- (rx939_cur, rx939_pos, rx939_tgt) = self."!cursor_start"()
- rx939_cur."!cursor_debug"("START ", "prefix:sym<++>")
- .lex unicode:"$\x{a2}", rx939_cur
- .local pmc match
- .lex "$/", match
- length rx939_eos, rx939_tgt
- set rx939_off, 0
- lt rx939_pos, 2, rx939_start
- sub rx939_off, rx939_pos, 1
- substr rx939_tgt, rx939_tgt, rx939_off
- rx939_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan943_done
- goto rxscan943_scan
- rxscan943_loop:
- ($P10) = rx939_cur."from"()
- inc $P10
- set rx939_pos, $P10
- ge rx939_pos, rx939_eos, rxscan943_done
- rxscan943_scan:
- set_addr $I10, rxscan943_loop
- rx939_cur."!mark_push"(0, rx939_pos, $I10)
- rxscan943_done:
-.annotate "line", 457
- # rx subcapture "sym"
- set_addr $I10, rxcap_944_fail
- rx939_cur."!mark_push"(0, rx939_pos, $I10)
- # rx literal "++"
- add $I11, rx939_pos, 2
- gt $I11, rx939_eos, rx939_fail
- sub $I11, rx939_pos, rx939_off
- substr $S10, rx939_tgt, $I11, 2
- ne $S10, "++", rx939_fail
- add rx939_pos, 2
- set_addr $I10, rxcap_944_fail
- ($I12, $I11) = rx939_cur."!mark_peek"($I10)
- rx939_cur."!cursor_pos"($I11)
- ($P10) = rx939_cur."!cursor_start"()
- $P10."!cursor_pass"(rx939_pos, "")
- rx939_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_944_done
- rxcap_944_fail:
- goto rx939_fail
- rxcap_944_done:
+.sub "postfix:sym<.>" :subid("233_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx938_tgt
+ .local int rx938_pos
+ .local int rx938_off
+ .local int rx938_eos
+ .local int rx938_rep
+ .local pmc rx938_cur
+ (rx938_cur, rx938_pos, rx938_tgt) = self."!cursor_start"()
+ rx938_cur."!cursor_debug"("START ", "postfix:sym<.>")
+ .lex unicode:"$\x{a2}", rx938_cur
+ .local pmc match
+ .lex "$/", match
+ length rx938_eos, rx938_tgt
+ set rx938_off, 0
+ lt rx938_pos, 2, rx938_start
+ sub rx938_off, rx938_pos, 1
+ substr rx938_tgt, rx938_tgt, rx938_off
+ rx938_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan942_done
+ goto rxscan942_scan
+ rxscan942_loop:
+ ($P10) = rx938_cur."from"()
+ inc $P10
+ set rx938_pos, $P10
+ ge rx938_pos, rx938_eos, rxscan942_done
+ rxscan942_scan:
+ set_addr $I10, rxscan942_loop
+ rx938_cur."!mark_push"(0, rx938_pos, $I10)
+ rxscan942_done:
+.annotate "line", 459
+ # rx subrule "dotty" subtype=capture negate=
+ rx938_cur."!cursor_pos"(rx938_pos)
+ $P10 = rx938_cur."dotty"()
+ unless $P10, rx938_fail
+ rx938_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("dotty")
+ rx938_pos = $P10."pos"()
# rx subrule "O" subtype=capture negate=
- rx939_cur."!cursor_pos"(rx939_pos)
- $P10 = rx939_cur."O"("%autoincrement, :pirop<inc>")
- unless $P10, rx939_fail
- rx939_cur."!mark_push"(0, -1, 0, $P10)
+ rx938_cur."!cursor_pos"(rx938_pos)
+ $P10 = rx938_cur."O"("%methodop")
+ unless $P10, rx938_fail
+ rx938_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx939_pos = $P10."pos"()
+ rx938_pos = $P10."pos"()
# rx pass
- rx939_cur."!cursor_pass"(rx939_pos, "prefix:sym<++>")
- rx939_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx939_pos)
- .return (rx939_cur)
- rx939_fail:
-.annotate "line", 413
- (rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0)
- lt rx939_pos, -1, rx939_done
- eq rx939_pos, -1, rx939_fail
+ rx938_cur."!cursor_pass"(rx938_pos, "postfix:sym<.>")
+ rx938_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx938_pos)
+ .return (rx938_cur)
+ rx938_fail:
+.annotate "line", 417
+ (rx938_rep, rx938_pos, $I10, $P10) = rx938_cur."!mark_fail"(0)
+ lt rx938_pos, -1, rx938_done
+ eq rx938_pos, -1, rx938_fail
jump $I10
- rx939_done:
- rx939_cur."!cursor_fail"()
- rx939_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
- .return (rx939_cur)
+ rx938_done:
+ rx938_cur."!cursor_fail"()
+ rx938_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
+ .return (rx938_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>" :subid("236_1261064023.05912") :method
-.annotate "line", 413
- $P941 = self."!PREFIX__!subrule"("O", "++")
- new $P942, "ResizablePMCArray"
- push $P942, $P941
- .return ($P942)
+.sub "!PREFIX__postfix:sym<.>" :subid("234_1267204702.05125") :method
+.annotate "line", 417
+ $P940 = self."!PREFIX__!subrule"("dotty", "")
+ new $P941, "ResizablePMCArray"
+ push $P941, $P940
+ .return ($P941)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->" :subid("237_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx946_tgt
- .local int rx946_pos
- .local int rx946_off
- .local int rx946_eos
- .local int rx946_rep
- .local pmc rx946_cur
- (rx946_cur, rx946_pos, rx946_tgt) = self."!cursor_start"()
- rx946_cur."!cursor_debug"("START ", "prefix:sym<-->")
- .lex unicode:"$\x{a2}", rx946_cur
- .local pmc match
- .lex "$/", match
- length rx946_eos, rx946_tgt
- set rx946_off, 0
- lt rx946_pos, 2, rx946_start
- sub rx946_off, rx946_pos, 1
- substr rx946_tgt, rx946_tgt, rx946_off
- rx946_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan950_done
- goto rxscan950_scan
- rxscan950_loop:
- ($P10) = rx946_cur."from"()
- inc $P10
- set rx946_pos, $P10
- ge rx946_pos, rx946_eos, rxscan950_done
- rxscan950_scan:
- set_addr $I10, rxscan950_loop
- rx946_cur."!mark_push"(0, rx946_pos, $I10)
- rxscan950_done:
-.annotate "line", 458
+.sub "prefix:sym<++>" :subid("235_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx944_tgt
+ .local int rx944_pos
+ .local int rx944_off
+ .local int rx944_eos
+ .local int rx944_rep
+ .local pmc rx944_cur
+ (rx944_cur, rx944_pos, rx944_tgt) = self."!cursor_start"()
+ rx944_cur."!cursor_debug"("START ", "prefix:sym<++>")
+ .lex unicode:"$\x{a2}", rx944_cur
+ .local pmc match
+ .lex "$/", match
+ length rx944_eos, rx944_tgt
+ set rx944_off, 0
+ lt rx944_pos, 2, rx944_start
+ sub rx944_off, rx944_pos, 1
+ substr rx944_tgt, rx944_tgt, rx944_off
+ rx944_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan948_done
+ goto rxscan948_scan
+ rxscan948_loop:
+ ($P10) = rx944_cur."from"()
+ inc $P10
+ set rx944_pos, $P10
+ ge rx944_pos, rx944_eos, rxscan948_done
+ rxscan948_scan:
+ set_addr $I10, rxscan948_loop
+ rx944_cur."!mark_push"(0, rx944_pos, $I10)
+ rxscan948_done:
+.annotate "line", 461
# rx subcapture "sym"
- set_addr $I10, rxcap_951_fail
- rx946_cur."!mark_push"(0, rx946_pos, $I10)
- # rx literal "--"
- add $I11, rx946_pos, 2
- gt $I11, rx946_eos, rx946_fail
- sub $I11, rx946_pos, rx946_off
- substr $S10, rx946_tgt, $I11, 2
- ne $S10, "--", rx946_fail
- add rx946_pos, 2
- set_addr $I10, rxcap_951_fail
- ($I12, $I11) = rx946_cur."!mark_peek"($I10)
- rx946_cur."!cursor_pos"($I11)
- ($P10) = rx946_cur."!cursor_start"()
- $P10."!cursor_pass"(rx946_pos, "")
- rx946_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_949_fail
+ rx944_cur."!mark_push"(0, rx944_pos, $I10)
+ # rx literal "++"
+ add $I11, rx944_pos, 2
+ gt $I11, rx944_eos, rx944_fail
+ sub $I11, rx944_pos, rx944_off
+ substr $S10, rx944_tgt, $I11, 2
+ ne $S10, "++", rx944_fail
+ add rx944_pos, 2
+ set_addr $I10, rxcap_949_fail
+ ($I12, $I11) = rx944_cur."!mark_peek"($I10)
+ rx944_cur."!cursor_pos"($I11)
+ ($P10) = rx944_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx944_pos, "")
+ rx944_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_951_done
- rxcap_951_fail:
- goto rx946_fail
- rxcap_951_done:
+ goto rxcap_949_done
+ rxcap_949_fail:
+ goto rx944_fail
+ rxcap_949_done:
# rx subrule "O" subtype=capture negate=
- rx946_cur."!cursor_pos"(rx946_pos)
- $P10 = rx946_cur."O"("%autoincrement, :pirop<dec>")
- unless $P10, rx946_fail
- rx946_cur."!mark_push"(0, -1, 0, $P10)
+ rx944_cur."!cursor_pos"(rx944_pos)
+ $P10 = rx944_cur."O"("%autoincrement, :pirop<inc>")
+ unless $P10, rx944_fail
+ rx944_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx946_pos = $P10."pos"()
+ rx944_pos = $P10."pos"()
# rx pass
- rx946_cur."!cursor_pass"(rx946_pos, "prefix:sym<-->")
- rx946_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx946_pos)
- .return (rx946_cur)
- rx946_fail:
-.annotate "line", 413
- (rx946_rep, rx946_pos, $I10, $P10) = rx946_cur."!mark_fail"(0)
- lt rx946_pos, -1, rx946_done
- eq rx946_pos, -1, rx946_fail
+ rx944_cur."!cursor_pass"(rx944_pos, "prefix:sym<++>")
+ rx944_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx944_pos)
+ .return (rx944_cur)
+ rx944_fail:
+.annotate "line", 417
+ (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0)
+ lt rx944_pos, -1, rx944_done
+ eq rx944_pos, -1, rx944_fail
jump $I10
- rx946_done:
- rx946_cur."!cursor_fail"()
- rx946_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
- .return (rx946_cur)
+ rx944_done:
+ rx944_cur."!cursor_fail"()
+ rx944_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
+ .return (rx944_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->" :subid("238_1261064023.05912") :method
-.annotate "line", 413
- $P948 = self."!PREFIX__!subrule"("O", "--")
- new $P949, "ResizablePMCArray"
- push $P949, $P948
- .return ($P949)
+.sub "!PREFIX__prefix:sym<++>" :subid("236_1267204702.05125") :method
+.annotate "line", 417
+ $P946 = self."!PREFIX__!subrule"("O", "++")
+ new $P947, "ResizablePMCArray"
+ push $P947, $P946
+ .return ($P947)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>" :subid("239_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx953_tgt
- .local int rx953_pos
- .local int rx953_off
- .local int rx953_eos
- .local int rx953_rep
- .local pmc rx953_cur
- (rx953_cur, rx953_pos, rx953_tgt) = self."!cursor_start"()
- rx953_cur."!cursor_debug"("START ", "postfix:sym<++>")
- .lex unicode:"$\x{a2}", rx953_cur
- .local pmc match
- .lex "$/", match
- length rx953_eos, rx953_tgt
- set rx953_off, 0
- lt rx953_pos, 2, rx953_start
- sub rx953_off, rx953_pos, 1
- substr rx953_tgt, rx953_tgt, rx953_off
- rx953_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan957_done
- goto rxscan957_scan
- rxscan957_loop:
- ($P10) = rx953_cur."from"()
- inc $P10
- set rx953_pos, $P10
- ge rx953_pos, rx953_eos, rxscan957_done
- rxscan957_scan:
- set_addr $I10, rxscan957_loop
- rx953_cur."!mark_push"(0, rx953_pos, $I10)
- rxscan957_done:
-.annotate "line", 461
+.sub "prefix:sym<-->" :subid("237_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx951_tgt
+ .local int rx951_pos
+ .local int rx951_off
+ .local int rx951_eos
+ .local int rx951_rep
+ .local pmc rx951_cur
+ (rx951_cur, rx951_pos, rx951_tgt) = self."!cursor_start"()
+ rx951_cur."!cursor_debug"("START ", "prefix:sym<-->")
+ .lex unicode:"$\x{a2}", rx951_cur
+ .local pmc match
+ .lex "$/", match
+ length rx951_eos, rx951_tgt
+ set rx951_off, 0
+ lt rx951_pos, 2, rx951_start
+ sub rx951_off, rx951_pos, 1
+ substr rx951_tgt, rx951_tgt, rx951_off
+ rx951_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan955_done
+ goto rxscan955_scan
+ rxscan955_loop:
+ ($P10) = rx951_cur."from"()
+ inc $P10
+ set rx951_pos, $P10
+ ge rx951_pos, rx951_eos, rxscan955_done
+ rxscan955_scan:
+ set_addr $I10, rxscan955_loop
+ rx951_cur."!mark_push"(0, rx951_pos, $I10)
+ rxscan955_done:
+.annotate "line", 462
# rx subcapture "sym"
- set_addr $I10, rxcap_958_fail
- rx953_cur."!mark_push"(0, rx953_pos, $I10)
- # rx literal "++"
- add $I11, rx953_pos, 2
- gt $I11, rx953_eos, rx953_fail
- sub $I11, rx953_pos, rx953_off
- substr $S10, rx953_tgt, $I11, 2
- ne $S10, "++", rx953_fail
- add rx953_pos, 2
- set_addr $I10, rxcap_958_fail
- ($I12, $I11) = rx953_cur."!mark_peek"($I10)
- rx953_cur."!cursor_pos"($I11)
- ($P10) = rx953_cur."!cursor_start"()
- $P10."!cursor_pass"(rx953_pos, "")
- rx953_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_956_fail
+ rx951_cur."!mark_push"(0, rx951_pos, $I10)
+ # rx literal "--"
+ add $I11, rx951_pos, 2
+ gt $I11, rx951_eos, rx951_fail
+ sub $I11, rx951_pos, rx951_off
+ substr $S10, rx951_tgt, $I11, 2
+ ne $S10, "--", rx951_fail
+ add rx951_pos, 2
+ set_addr $I10, rxcap_956_fail
+ ($I12, $I11) = rx951_cur."!mark_peek"($I10)
+ rx951_cur."!cursor_pos"($I11)
+ ($P10) = rx951_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx951_pos, "")
+ rx951_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_958_done
- rxcap_958_fail:
- goto rx953_fail
- rxcap_958_done:
+ goto rxcap_956_done
+ rxcap_956_fail:
+ goto rx951_fail
+ rxcap_956_done:
# rx subrule "O" subtype=capture negate=
- rx953_cur."!cursor_pos"(rx953_pos)
- $P10 = rx953_cur."O"("%autoincrement")
- unless $P10, rx953_fail
- rx953_cur."!mark_push"(0, -1, 0, $P10)
+ rx951_cur."!cursor_pos"(rx951_pos)
+ $P10 = rx951_cur."O"("%autoincrement, :pirop<dec>")
+ unless $P10, rx951_fail
+ rx951_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx953_pos = $P10."pos"()
+ rx951_pos = $P10."pos"()
# rx pass
- rx953_cur."!cursor_pass"(rx953_pos, "postfix:sym<++>")
- rx953_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx953_pos)
- .return (rx953_cur)
- rx953_fail:
-.annotate "line", 413
- (rx953_rep, rx953_pos, $I10, $P10) = rx953_cur."!mark_fail"(0)
- lt rx953_pos, -1, rx953_done
- eq rx953_pos, -1, rx953_fail
+ rx951_cur."!cursor_pass"(rx951_pos, "prefix:sym<-->")
+ rx951_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx951_pos)
+ .return (rx951_cur)
+ rx951_fail:
+.annotate "line", 417
+ (rx951_rep, rx951_pos, $I10, $P10) = rx951_cur."!mark_fail"(0)
+ lt rx951_pos, -1, rx951_done
+ eq rx951_pos, -1, rx951_fail
jump $I10
- rx953_done:
- rx953_cur."!cursor_fail"()
- rx953_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
- .return (rx953_cur)
+ rx951_done:
+ rx951_cur."!cursor_fail"()
+ rx951_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
+ .return (rx951_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>" :subid("240_1261064023.05912") :method
-.annotate "line", 413
- $P955 = self."!PREFIX__!subrule"("O", "++")
- new $P956, "ResizablePMCArray"
- push $P956, $P955
- .return ($P956)
+.sub "!PREFIX__prefix:sym<-->" :subid("238_1267204702.05125") :method
+.annotate "line", 417
+ $P953 = self."!PREFIX__!subrule"("O", "--")
+ new $P954, "ResizablePMCArray"
+ push $P954, $P953
+ .return ($P954)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->" :subid("241_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx960_tgt
- .local int rx960_pos
- .local int rx960_off
- .local int rx960_eos
- .local int rx960_rep
- .local pmc rx960_cur
- (rx960_cur, rx960_pos, rx960_tgt) = self."!cursor_start"()
- rx960_cur."!cursor_debug"("START ", "postfix:sym<-->")
- .lex unicode:"$\x{a2}", rx960_cur
- .local pmc match
- .lex "$/", match
- length rx960_eos, rx960_tgt
- set rx960_off, 0
- lt rx960_pos, 2, rx960_start
- sub rx960_off, rx960_pos, 1
- substr rx960_tgt, rx960_tgt, rx960_off
- rx960_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan964_done
- goto rxscan964_scan
- rxscan964_loop:
- ($P10) = rx960_cur."from"()
- inc $P10
- set rx960_pos, $P10
- ge rx960_pos, rx960_eos, rxscan964_done
- rxscan964_scan:
- set_addr $I10, rxscan964_loop
- rx960_cur."!mark_push"(0, rx960_pos, $I10)
- rxscan964_done:
-.annotate "line", 462
- # rx subcapture "sym"
- set_addr $I10, rxcap_965_fail
- rx960_cur."!mark_push"(0, rx960_pos, $I10)
+.sub "postfix:sym<++>" :subid("239_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx958_tgt
+ .local int rx958_pos
+ .local int rx958_off
+ .local int rx958_eos
+ .local int rx958_rep
+ .local pmc rx958_cur
+ (rx958_cur, rx958_pos, rx958_tgt) = self."!cursor_start"()
+ rx958_cur."!cursor_debug"("START ", "postfix:sym<++>")
+ .lex unicode:"$\x{a2}", rx958_cur
+ .local pmc match
+ .lex "$/", match
+ length rx958_eos, rx958_tgt
+ set rx958_off, 0
+ lt rx958_pos, 2, rx958_start
+ sub rx958_off, rx958_pos, 1
+ substr rx958_tgt, rx958_tgt, rx958_off
+ rx958_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan962_done
+ goto rxscan962_scan
+ rxscan962_loop:
+ ($P10) = rx958_cur."from"()
+ inc $P10
+ set rx958_pos, $P10
+ ge rx958_pos, rx958_eos, rxscan962_done
+ rxscan962_scan:
+ set_addr $I10, rxscan962_loop
+ rx958_cur."!mark_push"(0, rx958_pos, $I10)
+ rxscan962_done:
+.annotate "line", 465
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_963_fail
+ rx958_cur."!mark_push"(0, rx958_pos, $I10)
+ # rx literal "++"
+ add $I11, rx958_pos, 2
+ gt $I11, rx958_eos, rx958_fail
+ sub $I11, rx958_pos, rx958_off
+ substr $S10, rx958_tgt, $I11, 2
+ ne $S10, "++", rx958_fail
+ add rx958_pos, 2
+ set_addr $I10, rxcap_963_fail
+ ($I12, $I11) = rx958_cur."!mark_peek"($I10)
+ rx958_cur."!cursor_pos"($I11)
+ ($P10) = rx958_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx958_pos, "")
+ rx958_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_963_done
+ rxcap_963_fail:
+ goto rx958_fail
+ rxcap_963_done:
+ # rx subrule "O" subtype=capture negate=
+ rx958_cur."!cursor_pos"(rx958_pos)
+ $P10 = rx958_cur."O"("%autoincrement")
+ unless $P10, rx958_fail
+ rx958_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx958_pos = $P10."pos"()
+ # rx pass
+ rx958_cur."!cursor_pass"(rx958_pos, "postfix:sym<++>")
+ rx958_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx958_pos)
+ .return (rx958_cur)
+ rx958_fail:
+.annotate "line", 417
+ (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
+ lt rx958_pos, -1, rx958_done
+ eq rx958_pos, -1, rx958_fail
+ jump $I10
+ rx958_done:
+ rx958_cur."!cursor_fail"()
+ rx958_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
+ .return (rx958_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__postfix:sym<++>" :subid("240_1267204702.05125") :method
+.annotate "line", 417
+ $P960 = self."!PREFIX__!subrule"("O", "++")
+ new $P961, "ResizablePMCArray"
+ push $P961, $P960
+ .return ($P961)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "postfix:sym<-->" :subid("241_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx965_tgt
+ .local int rx965_pos
+ .local int rx965_off
+ .local int rx965_eos
+ .local int rx965_rep
+ .local pmc rx965_cur
+ (rx965_cur, rx965_pos, rx965_tgt) = self."!cursor_start"()
+ rx965_cur."!cursor_debug"("START ", "postfix:sym<-->")
+ .lex unicode:"$\x{a2}", rx965_cur
+ .local pmc match
+ .lex "$/", match
+ length rx965_eos, rx965_tgt
+ set rx965_off, 0
+ lt rx965_pos, 2, rx965_start
+ sub rx965_off, rx965_pos, 1
+ substr rx965_tgt, rx965_tgt, rx965_off
+ rx965_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan969_done
+ goto rxscan969_scan
+ rxscan969_loop:
+ ($P10) = rx965_cur."from"()
+ inc $P10
+ set rx965_pos, $P10
+ ge rx965_pos, rx965_eos, rxscan969_done
+ rxscan969_scan:
+ set_addr $I10, rxscan969_loop
+ rx965_cur."!mark_push"(0, rx965_pos, $I10)
+ rxscan969_done:
+.annotate "line", 466
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_970_fail
+ rx965_cur."!mark_push"(0, rx965_pos, $I10)
# rx literal "--"
- add $I11, rx960_pos, 2
- gt $I11, rx960_eos, rx960_fail
- sub $I11, rx960_pos, rx960_off
- substr $S10, rx960_tgt, $I11, 2
- ne $S10, "--", rx960_fail
- add rx960_pos, 2
- set_addr $I10, rxcap_965_fail
- ($I12, $I11) = rx960_cur."!mark_peek"($I10)
- rx960_cur."!cursor_pos"($I11)
- ($P10) = rx960_cur."!cursor_start"()
- $P10."!cursor_pass"(rx960_pos, "")
- rx960_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx965_pos, 2
+ gt $I11, rx965_eos, rx965_fail
+ sub $I11, rx965_pos, rx965_off
+ substr $S10, rx965_tgt, $I11, 2
+ ne $S10, "--", rx965_fail
+ add rx965_pos, 2
+ set_addr $I10, rxcap_970_fail
+ ($I12, $I11) = rx965_cur."!mark_peek"($I10)
+ rx965_cur."!cursor_pos"($I11)
+ ($P10) = rx965_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx965_pos, "")
+ rx965_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_965_done
- rxcap_965_fail:
- goto rx960_fail
- rxcap_965_done:
+ goto rxcap_970_done
+ rxcap_970_fail:
+ goto rx965_fail
+ rxcap_970_done:
# rx subrule "O" subtype=capture negate=
- rx960_cur."!cursor_pos"(rx960_pos)
- $P10 = rx960_cur."O"("%autoincrement")
- unless $P10, rx960_fail
- rx960_cur."!mark_push"(0, -1, 0, $P10)
+ rx965_cur."!cursor_pos"(rx965_pos)
+ $P10 = rx965_cur."O"("%autoincrement")
+ unless $P10, rx965_fail
+ rx965_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx960_pos = $P10."pos"()
+ rx965_pos = $P10."pos"()
# rx pass
- rx960_cur."!cursor_pass"(rx960_pos, "postfix:sym<-->")
- rx960_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx960_pos)
- .return (rx960_cur)
- rx960_fail:
-.annotate "line", 413
- (rx960_rep, rx960_pos, $I10, $P10) = rx960_cur."!mark_fail"(0)
- lt rx960_pos, -1, rx960_done
- eq rx960_pos, -1, rx960_fail
+ rx965_cur."!cursor_pass"(rx965_pos, "postfix:sym<-->")
+ rx965_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx965_pos)
+ .return (rx965_cur)
+ rx965_fail:
+.annotate "line", 417
+ (rx965_rep, rx965_pos, $I10, $P10) = rx965_cur."!mark_fail"(0)
+ lt rx965_pos, -1, rx965_done
+ eq rx965_pos, -1, rx965_fail
jump $I10
- rx960_done:
- rx960_cur."!cursor_fail"()
- rx960_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
- .return (rx960_cur)
+ rx965_done:
+ rx965_cur."!cursor_fail"()
+ rx965_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
+ .return (rx965_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->" :subid("242_1261064023.05912") :method
-.annotate "line", 413
- $P962 = self."!PREFIX__!subrule"("O", "--")
- new $P963, "ResizablePMCArray"
- push $P963, $P962
- .return ($P963)
+.sub "!PREFIX__postfix:sym<-->" :subid("242_1267204702.05125") :method
+.annotate "line", 417
+ $P967 = self."!PREFIX__!subrule"("O", "--")
+ new $P968, "ResizablePMCArray"
+ push $P968, $P967
+ .return ($P968)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>" :subid("243_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx967_tgt
- .local int rx967_pos
- .local int rx967_off
- .local int rx967_eos
- .local int rx967_rep
- .local pmc rx967_cur
- (rx967_cur, rx967_pos, rx967_tgt) = self."!cursor_start"()
- rx967_cur."!cursor_debug"("START ", "infix:sym<**>")
- .lex unicode:"$\x{a2}", rx967_cur
- .local pmc match
- .lex "$/", match
- length rx967_eos, rx967_tgt
- set rx967_off, 0
- lt rx967_pos, 2, rx967_start
- sub rx967_off, rx967_pos, 1
- substr rx967_tgt, rx967_tgt, rx967_off
- rx967_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan971_done
- goto rxscan971_scan
- rxscan971_loop:
- ($P10) = rx967_cur."from"()
- inc $P10
- set rx967_pos, $P10
- ge rx967_pos, rx967_eos, rxscan971_done
- rxscan971_scan:
- set_addr $I10, rxscan971_loop
- rx967_cur."!mark_push"(0, rx967_pos, $I10)
- rxscan971_done:
-.annotate "line", 464
+.sub "infix:sym<**>" :subid("243_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx972_tgt
+ .local int rx972_pos
+ .local int rx972_off
+ .local int rx972_eos
+ .local int rx972_rep
+ .local pmc rx972_cur
+ (rx972_cur, rx972_pos, rx972_tgt) = self."!cursor_start"()
+ rx972_cur."!cursor_debug"("START ", "infix:sym<**>")
+ .lex unicode:"$\x{a2}", rx972_cur
+ .local pmc match
+ .lex "$/", match
+ length rx972_eos, rx972_tgt
+ set rx972_off, 0
+ lt rx972_pos, 2, rx972_start
+ sub rx972_off, rx972_pos, 1
+ substr rx972_tgt, rx972_tgt, rx972_off
+ rx972_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan976_done
+ goto rxscan976_scan
+ rxscan976_loop:
+ ($P10) = rx972_cur."from"()
+ inc $P10
+ set rx972_pos, $P10
+ ge rx972_pos, rx972_eos, rxscan976_done
+ rxscan976_scan:
+ set_addr $I10, rxscan976_loop
+ rx972_cur."!mark_push"(0, rx972_pos, $I10)
+ rxscan976_done:
+.annotate "line", 468
# rx subcapture "sym"
- set_addr $I10, rxcap_972_fail
- rx967_cur."!mark_push"(0, rx967_pos, $I10)
+ set_addr $I10, rxcap_977_fail
+ rx972_cur."!mark_push"(0, rx972_pos, $I10)
# rx literal "**"
- add $I11, rx967_pos, 2
- gt $I11, rx967_eos, rx967_fail
- sub $I11, rx967_pos, rx967_off
- substr $S10, rx967_tgt, $I11, 2
- ne $S10, "**", rx967_fail
- add rx967_pos, 2
- set_addr $I10, rxcap_972_fail
- ($I12, $I11) = rx967_cur."!mark_peek"($I10)
- rx967_cur."!cursor_pos"($I11)
- ($P10) = rx967_cur."!cursor_start"()
- $P10."!cursor_pass"(rx967_pos, "")
- rx967_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx972_pos, 2
+ gt $I11, rx972_eos, rx972_fail
+ sub $I11, rx972_pos, rx972_off
+ substr $S10, rx972_tgt, $I11, 2
+ ne $S10, "**", rx972_fail
+ add rx972_pos, 2
+ set_addr $I10, rxcap_977_fail
+ ($I12, $I11) = rx972_cur."!mark_peek"($I10)
+ rx972_cur."!cursor_pos"($I11)
+ ($P10) = rx972_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx972_pos, "")
+ rx972_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_972_done
- rxcap_972_fail:
- goto rx967_fail
- rxcap_972_done:
+ goto rxcap_977_done
+ rxcap_977_fail:
+ goto rx972_fail
+ rxcap_977_done:
# rx subrule "O" subtype=capture negate=
- rx967_cur."!cursor_pos"(rx967_pos)
- $P10 = rx967_cur."O"("%exponentiation, :pirop<pow>")
- unless $P10, rx967_fail
- rx967_cur."!mark_push"(0, -1, 0, $P10)
+ rx972_cur."!cursor_pos"(rx972_pos)
+ $P10 = rx972_cur."O"("%exponentiation, :pirop<pow>")
+ unless $P10, rx972_fail
+ rx972_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx967_pos = $P10."pos"()
+ rx972_pos = $P10."pos"()
# rx pass
- rx967_cur."!cursor_pass"(rx967_pos, "infix:sym<**>")
- rx967_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx967_pos)
- .return (rx967_cur)
- rx967_fail:
-.annotate "line", 413
- (rx967_rep, rx967_pos, $I10, $P10) = rx967_cur."!mark_fail"(0)
- lt rx967_pos, -1, rx967_done
- eq rx967_pos, -1, rx967_fail
+ rx972_cur."!cursor_pass"(rx972_pos, "infix:sym<**>")
+ rx972_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx972_pos)
+ .return (rx972_cur)
+ rx972_fail:
+.annotate "line", 417
+ (rx972_rep, rx972_pos, $I10, $P10) = rx972_cur."!mark_fail"(0)
+ lt rx972_pos, -1, rx972_done
+ eq rx972_pos, -1, rx972_fail
jump $I10
- rx967_done:
- rx967_cur."!cursor_fail"()
- rx967_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
- .return (rx967_cur)
+ rx972_done:
+ rx972_cur."!cursor_fail"()
+ rx972_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
+ .return (rx972_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>" :subid("244_1261064023.05912") :method
-.annotate "line", 413
- $P969 = self."!PREFIX__!subrule"("O", "**")
- new $P970, "ResizablePMCArray"
- push $P970, $P969
- .return ($P970)
+.sub "!PREFIX__infix:sym<**>" :subid("244_1267204702.05125") :method
+.annotate "line", 417
+ $P974 = self."!PREFIX__!subrule"("O", "**")
+ new $P975, "ResizablePMCArray"
+ push $P975, $P974
+ .return ($P975)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>" :subid("245_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx974_tgt
- .local int rx974_pos
- .local int rx974_off
- .local int rx974_eos
- .local int rx974_rep
- .local pmc rx974_cur
- (rx974_cur, rx974_pos, rx974_tgt) = self."!cursor_start"()
- rx974_cur."!cursor_debug"("START ", "prefix:sym<+>")
- .lex unicode:"$\x{a2}", rx974_cur
- .local pmc match
- .lex "$/", match
- length rx974_eos, rx974_tgt
- set rx974_off, 0
- lt rx974_pos, 2, rx974_start
- sub rx974_off, rx974_pos, 1
- substr rx974_tgt, rx974_tgt, rx974_off
- rx974_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan978_done
- goto rxscan978_scan
- rxscan978_loop:
- ($P10) = rx974_cur."from"()
- inc $P10
- set rx974_pos, $P10
- ge rx974_pos, rx974_eos, rxscan978_done
- rxscan978_scan:
- set_addr $I10, rxscan978_loop
- rx974_cur."!mark_push"(0, rx974_pos, $I10)
- rxscan978_done:
-.annotate "line", 466
+.sub "prefix:sym<+>" :subid("245_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx979_tgt
+ .local int rx979_pos
+ .local int rx979_off
+ .local int rx979_eos
+ .local int rx979_rep
+ .local pmc rx979_cur
+ (rx979_cur, rx979_pos, rx979_tgt) = self."!cursor_start"()
+ rx979_cur."!cursor_debug"("START ", "prefix:sym<+>")
+ .lex unicode:"$\x{a2}", rx979_cur
+ .local pmc match
+ .lex "$/", match
+ length rx979_eos, rx979_tgt
+ set rx979_off, 0
+ lt rx979_pos, 2, rx979_start
+ sub rx979_off, rx979_pos, 1
+ substr rx979_tgt, rx979_tgt, rx979_off
+ rx979_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan983_done
+ goto rxscan983_scan
+ rxscan983_loop:
+ ($P10) = rx979_cur."from"()
+ inc $P10
+ set rx979_pos, $P10
+ ge rx979_pos, rx979_eos, rxscan983_done
+ rxscan983_scan:
+ set_addr $I10, rxscan983_loop
+ rx979_cur."!mark_push"(0, rx979_pos, $I10)
+ rxscan983_done:
+.annotate "line", 470
# rx subcapture "sym"
- set_addr $I10, rxcap_979_fail
- rx974_cur."!mark_push"(0, rx974_pos, $I10)
+ set_addr $I10, rxcap_984_fail
+ rx979_cur."!mark_push"(0, rx979_pos, $I10)
# rx literal "+"
- add $I11, rx974_pos, 1
- gt $I11, rx974_eos, rx974_fail
- sub $I11, rx974_pos, rx974_off
- substr $S10, rx974_tgt, $I11, 1
- ne $S10, "+", rx974_fail
- add rx974_pos, 1
- set_addr $I10, rxcap_979_fail
- ($I12, $I11) = rx974_cur."!mark_peek"($I10)
- rx974_cur."!cursor_pos"($I11)
- ($P10) = rx974_cur."!cursor_start"()
- $P10."!cursor_pass"(rx974_pos, "")
- rx974_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx979_pos, 1
+ gt $I11, rx979_eos, rx979_fail
+ sub $I11, rx979_pos, rx979_off
+ substr $S10, rx979_tgt, $I11, 1
+ ne $S10, "+", rx979_fail
+ add rx979_pos, 1
+ set_addr $I10, rxcap_984_fail
+ ($I12, $I11) = rx979_cur."!mark_peek"($I10)
+ rx979_cur."!cursor_pos"($I11)
+ ($P10) = rx979_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx979_pos, "")
+ rx979_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_979_done
- rxcap_979_fail:
- goto rx974_fail
- rxcap_979_done:
+ goto rxcap_984_done
+ rxcap_984_fail:
+ goto rx979_fail
+ rxcap_984_done:
# rx subrule "O" subtype=capture negate=
- rx974_cur."!cursor_pos"(rx974_pos)
- $P10 = rx974_cur."O"("%symbolic_unary, :pirop<set N*>")
- unless $P10, rx974_fail
- rx974_cur."!mark_push"(0, -1, 0, $P10)
+ rx979_cur."!cursor_pos"(rx979_pos)
+ $P10 = rx979_cur."O"("%symbolic_unary, :pirop<set N*>")
+ unless $P10, rx979_fail
+ rx979_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx974_pos = $P10."pos"()
+ rx979_pos = $P10."pos"()
# rx pass
- rx974_cur."!cursor_pass"(rx974_pos, "prefix:sym<+>")
- rx974_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx974_pos)
- .return (rx974_cur)
- rx974_fail:
-.annotate "line", 413
- (rx974_rep, rx974_pos, $I10, $P10) = rx974_cur."!mark_fail"(0)
- lt rx974_pos, -1, rx974_done
- eq rx974_pos, -1, rx974_fail
+ rx979_cur."!cursor_pass"(rx979_pos, "prefix:sym<+>")
+ rx979_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx979_pos)
+ .return (rx979_cur)
+ rx979_fail:
+.annotate "line", 417
+ (rx979_rep, rx979_pos, $I10, $P10) = rx979_cur."!mark_fail"(0)
+ lt rx979_pos, -1, rx979_done
+ eq rx979_pos, -1, rx979_fail
jump $I10
- rx974_done:
- rx974_cur."!cursor_fail"()
- rx974_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
- .return (rx974_cur)
+ rx979_done:
+ rx979_cur."!cursor_fail"()
+ rx979_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
+ .return (rx979_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>" :subid("246_1261064023.05912") :method
-.annotate "line", 413
- $P976 = self."!PREFIX__!subrule"("O", "+")
- new $P977, "ResizablePMCArray"
- push $P977, $P976
- .return ($P977)
+.sub "!PREFIX__prefix:sym<+>" :subid("246_1267204702.05125") :method
+.annotate "line", 417
+ $P981 = self."!PREFIX__!subrule"("O", "+")
+ new $P982, "ResizablePMCArray"
+ push $P982, $P981
+ .return ($P982)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>" :subid("247_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx981_tgt
- .local int rx981_pos
- .local int rx981_off
- .local int rx981_eos
- .local int rx981_rep
- .local pmc rx981_cur
- (rx981_cur, rx981_pos, rx981_tgt) = self."!cursor_start"()
- rx981_cur."!cursor_debug"("START ", "prefix:sym<~>")
- .lex unicode:"$\x{a2}", rx981_cur
- .local pmc match
- .lex "$/", match
- length rx981_eos, rx981_tgt
- set rx981_off, 0
- lt rx981_pos, 2, rx981_start
- sub rx981_off, rx981_pos, 1
- substr rx981_tgt, rx981_tgt, rx981_off
- rx981_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan985_done
- goto rxscan985_scan
- rxscan985_loop:
- ($P10) = rx981_cur."from"()
- inc $P10
- set rx981_pos, $P10
- ge rx981_pos, rx981_eos, rxscan985_done
- rxscan985_scan:
- set_addr $I10, rxscan985_loop
- rx981_cur."!mark_push"(0, rx981_pos, $I10)
- rxscan985_done:
-.annotate "line", 467
+.sub "prefix:sym<~>" :subid("247_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx986_tgt
+ .local int rx986_pos
+ .local int rx986_off
+ .local int rx986_eos
+ .local int rx986_rep
+ .local pmc rx986_cur
+ (rx986_cur, rx986_pos, rx986_tgt) = self."!cursor_start"()
+ rx986_cur."!cursor_debug"("START ", "prefix:sym<~>")
+ .lex unicode:"$\x{a2}", rx986_cur
+ .local pmc match
+ .lex "$/", match
+ length rx986_eos, rx986_tgt
+ set rx986_off, 0
+ lt rx986_pos, 2, rx986_start
+ sub rx986_off, rx986_pos, 1
+ substr rx986_tgt, rx986_tgt, rx986_off
+ rx986_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan990_done
+ goto rxscan990_scan
+ rxscan990_loop:
+ ($P10) = rx986_cur."from"()
+ inc $P10
+ set rx986_pos, $P10
+ ge rx986_pos, rx986_eos, rxscan990_done
+ rxscan990_scan:
+ set_addr $I10, rxscan990_loop
+ rx986_cur."!mark_push"(0, rx986_pos, $I10)
+ rxscan990_done:
+.annotate "line", 471
# rx subcapture "sym"
- set_addr $I10, rxcap_986_fail
- rx981_cur."!mark_push"(0, rx981_pos, $I10)
+ set_addr $I10, rxcap_991_fail
+ rx986_cur."!mark_push"(0, rx986_pos, $I10)
# rx literal "~"
- add $I11, rx981_pos, 1
- gt $I11, rx981_eos, rx981_fail
- sub $I11, rx981_pos, rx981_off
- substr $S10, rx981_tgt, $I11, 1
- ne $S10, "~", rx981_fail
- add rx981_pos, 1
- set_addr $I10, rxcap_986_fail
- ($I12, $I11) = rx981_cur."!mark_peek"($I10)
- rx981_cur."!cursor_pos"($I11)
- ($P10) = rx981_cur."!cursor_start"()
- $P10."!cursor_pass"(rx981_pos, "")
- rx981_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx986_pos, 1
+ gt $I11, rx986_eos, rx986_fail
+ sub $I11, rx986_pos, rx986_off
+ substr $S10, rx986_tgt, $I11, 1
+ ne $S10, "~", rx986_fail
+ add rx986_pos, 1
+ set_addr $I10, rxcap_991_fail
+ ($I12, $I11) = rx986_cur."!mark_peek"($I10)
+ rx986_cur."!cursor_pos"($I11)
+ ($P10) = rx986_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx986_pos, "")
+ rx986_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_986_done
- rxcap_986_fail:
- goto rx981_fail
- rxcap_986_done:
+ goto rxcap_991_done
+ rxcap_991_fail:
+ goto rx986_fail
+ rxcap_991_done:
# rx subrule "O" subtype=capture negate=
- rx981_cur."!cursor_pos"(rx981_pos)
- $P10 = rx981_cur."O"("%symbolic_unary, :pirop<set S*>")
- unless $P10, rx981_fail
- rx981_cur."!mark_push"(0, -1, 0, $P10)
+ rx986_cur."!cursor_pos"(rx986_pos)
+ $P10 = rx986_cur."O"("%symbolic_unary, :pirop<set S*>")
+ unless $P10, rx986_fail
+ rx986_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx981_pos = $P10."pos"()
+ rx986_pos = $P10."pos"()
# rx pass
- rx981_cur."!cursor_pass"(rx981_pos, "prefix:sym<~>")
- rx981_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx981_pos)
- .return (rx981_cur)
- rx981_fail:
-.annotate "line", 413
- (rx981_rep, rx981_pos, $I10, $P10) = rx981_cur."!mark_fail"(0)
- lt rx981_pos, -1, rx981_done
- eq rx981_pos, -1, rx981_fail
+ rx986_cur."!cursor_pass"(rx986_pos, "prefix:sym<~>")
+ rx986_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx986_pos)
+ .return (rx986_cur)
+ rx986_fail:
+.annotate "line", 417
+ (rx986_rep, rx986_pos, $I10, $P10) = rx986_cur."!mark_fail"(0)
+ lt rx986_pos, -1, rx986_done
+ eq rx986_pos, -1, rx986_fail
jump $I10
- rx981_done:
- rx981_cur."!cursor_fail"()
- rx981_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
- .return (rx981_cur)
+ rx986_done:
+ rx986_cur."!cursor_fail"()
+ rx986_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
+ .return (rx986_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>" :subid("248_1261064023.05912") :method
-.annotate "line", 413
- $P983 = self."!PREFIX__!subrule"("O", "~")
- new $P984, "ResizablePMCArray"
- push $P984, $P983
- .return ($P984)
+.sub "!PREFIX__prefix:sym<~>" :subid("248_1267204702.05125") :method
+.annotate "line", 417
+ $P988 = self."!PREFIX__!subrule"("O", "~")
+ new $P989, "ResizablePMCArray"
+ push $P989, $P988
+ .return ($P989)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->" :subid("249_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx988_tgt
- .local int rx988_pos
- .local int rx988_off
- .local int rx988_eos
- .local int rx988_rep
- .local pmc rx988_cur
- (rx988_cur, rx988_pos, rx988_tgt) = self."!cursor_start"()
- rx988_cur."!cursor_debug"("START ", "prefix:sym<->")
- .lex unicode:"$\x{a2}", rx988_cur
- .local pmc match
- .lex "$/", match
- length rx988_eos, rx988_tgt
- set rx988_off, 0
- lt rx988_pos, 2, rx988_start
- sub rx988_off, rx988_pos, 1
- substr rx988_tgt, rx988_tgt, rx988_off
- rx988_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan991_done
- goto rxscan991_scan
- rxscan991_loop:
- ($P10) = rx988_cur."from"()
- inc $P10
- set rx988_pos, $P10
- ge rx988_pos, rx988_eos, rxscan991_done
- rxscan991_scan:
- set_addr $I10, rxscan991_loop
- rx988_cur."!mark_push"(0, rx988_pos, $I10)
- rxscan991_done:
-.annotate "line", 468
+.sub "prefix:sym<->" :subid("249_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx993_tgt
+ .local int rx993_pos
+ .local int rx993_off
+ .local int rx993_eos
+ .local int rx993_rep
+ .local pmc rx993_cur
+ (rx993_cur, rx993_pos, rx993_tgt) = self."!cursor_start"()
+ rx993_cur."!cursor_debug"("START ", "prefix:sym<->")
+ .lex unicode:"$\x{a2}", rx993_cur
+ .local pmc match
+ .lex "$/", match
+ length rx993_eos, rx993_tgt
+ set rx993_off, 0
+ lt rx993_pos, 2, rx993_start
+ sub rx993_off, rx993_pos, 1
+ substr rx993_tgt, rx993_tgt, rx993_off
+ rx993_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan996_done
+ goto rxscan996_scan
+ rxscan996_loop:
+ ($P10) = rx993_cur."from"()
+ inc $P10
+ set rx993_pos, $P10
+ ge rx993_pos, rx993_eos, rxscan996_done
+ rxscan996_scan:
+ set_addr $I10, rxscan996_loop
+ rx993_cur."!mark_push"(0, rx993_pos, $I10)
+ rxscan996_done:
+.annotate "line", 472
# rx subcapture "sym"
- set_addr $I10, rxcap_992_fail
- rx988_cur."!mark_push"(0, rx988_pos, $I10)
+ set_addr $I10, rxcap_997_fail
+ rx993_cur."!mark_push"(0, rx993_pos, $I10)
# rx literal "-"
- add $I11, rx988_pos, 1
- gt $I11, rx988_eos, rx988_fail
- sub $I11, rx988_pos, rx988_off
- substr $S10, rx988_tgt, $I11, 1
- ne $S10, "-", rx988_fail
- add rx988_pos, 1
- set_addr $I10, rxcap_992_fail
- ($I12, $I11) = rx988_cur."!mark_peek"($I10)
- rx988_cur."!cursor_pos"($I11)
- ($P10) = rx988_cur."!cursor_start"()
- $P10."!cursor_pass"(rx988_pos, "")
- rx988_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx993_pos, 1
+ gt $I11, rx993_eos, rx993_fail
+ sub $I11, rx993_pos, rx993_off
+ substr $S10, rx993_tgt, $I11, 1
+ ne $S10, "-", rx993_fail
+ add rx993_pos, 1
+ set_addr $I10, rxcap_997_fail
+ ($I12, $I11) = rx993_cur."!mark_peek"($I10)
+ rx993_cur."!cursor_pos"($I11)
+ ($P10) = rx993_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx993_pos, "")
+ rx993_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_992_done
- rxcap_992_fail:
- goto rx988_fail
- rxcap_992_done:
+ goto rxcap_997_done
+ rxcap_997_fail:
+ goto rx993_fail
+ rxcap_997_done:
# rx enumcharlist negate=1 zerowidth
- ge rx988_pos, rx988_eos, rx988_fail
- sub $I10, rx988_pos, rx988_off
- substr $S10, rx988_tgt, $I10, 1
+ ge rx993_pos, rx993_eos, rx993_fail
+ sub $I10, rx993_pos, rx993_off
+ substr $S10, rx993_tgt, $I10, 1
index $I11, ">", $S10
- ge $I11, 0, rx988_fail
+ ge $I11, 0, rx993_fail
# rx subrule "number" subtype=zerowidth negate=1
- rx988_cur."!cursor_pos"(rx988_pos)
- $P10 = rx988_cur."number"()
- if $P10, rx988_fail
+ rx993_cur."!cursor_pos"(rx993_pos)
+ $P10 = rx993_cur."number"()
+ if $P10, rx993_fail
# rx subrule "O" subtype=capture negate=
- rx988_cur."!cursor_pos"(rx988_pos)
- $P10 = rx988_cur."O"("%symbolic_unary, :pirop<neg>")
- unless $P10, rx988_fail
- rx988_cur."!mark_push"(0, -1, 0, $P10)
+ rx993_cur."!cursor_pos"(rx993_pos)
+ $P10 = rx993_cur."O"("%symbolic_unary, :pirop<neg>")
+ unless $P10, rx993_fail
+ rx993_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx988_pos = $P10."pos"()
+ rx993_pos = $P10."pos"()
# rx pass
- rx988_cur."!cursor_pass"(rx988_pos, "prefix:sym<->")
- rx988_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx988_pos)
- .return (rx988_cur)
- rx988_fail:
-.annotate "line", 413
- (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0)
- lt rx988_pos, -1, rx988_done
- eq rx988_pos, -1, rx988_fail
+ rx993_cur."!cursor_pass"(rx993_pos, "prefix:sym<->")
+ rx993_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx993_pos)
+ .return (rx993_cur)
+ rx993_fail:
+.annotate "line", 417
+ (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0)
+ lt rx993_pos, -1, rx993_done
+ eq rx993_pos, -1, rx993_fail
jump $I10
- rx988_done:
- rx988_cur."!cursor_fail"()
- rx988_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
- .return (rx988_cur)
+ rx993_done:
+ rx993_cur."!cursor_fail"()
+ rx993_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
+ .return (rx993_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->" :subid("250_1261064023.05912") :method
-.annotate "line", 413
- new $P990, "ResizablePMCArray"
- push $P990, "-"
- .return ($P990)
+.sub "!PREFIX__prefix:sym<->" :subid("250_1267204702.05125") :method
+.annotate "line", 417
+ new $P995, "ResizablePMCArray"
+ push $P995, "-"
+ .return ($P995)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>" :subid("251_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx994_tgt
- .local int rx994_pos
- .local int rx994_off
- .local int rx994_eos
- .local int rx994_rep
- .local pmc rx994_cur
- (rx994_cur, rx994_pos, rx994_tgt) = self."!cursor_start"()
- rx994_cur."!cursor_debug"("START ", "prefix:sym<?>")
- .lex unicode:"$\x{a2}", rx994_cur
- .local pmc match
- .lex "$/", match
- length rx994_eos, rx994_tgt
- set rx994_off, 0
- lt rx994_pos, 2, rx994_start
- sub rx994_off, rx994_pos, 1
- substr rx994_tgt, rx994_tgt, rx994_off
- rx994_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan998_done
- goto rxscan998_scan
- rxscan998_loop:
- ($P10) = rx994_cur."from"()
- inc $P10
- set rx994_pos, $P10
- ge rx994_pos, rx994_eos, rxscan998_done
- rxscan998_scan:
- set_addr $I10, rxscan998_loop
- rx994_cur."!mark_push"(0, rx994_pos, $I10)
- rxscan998_done:
-.annotate "line", 469
+.sub "prefix:sym<?>" :subid("251_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx999_tgt
+ .local int rx999_pos
+ .local int rx999_off
+ .local int rx999_eos
+ .local int rx999_rep
+ .local pmc rx999_cur
+ (rx999_cur, rx999_pos, rx999_tgt) = self."!cursor_start"()
+ rx999_cur."!cursor_debug"("START ", "prefix:sym<?>")
+ .lex unicode:"$\x{a2}", rx999_cur
+ .local pmc match
+ .lex "$/", match
+ length rx999_eos, rx999_tgt
+ set rx999_off, 0
+ lt rx999_pos, 2, rx999_start
+ sub rx999_off, rx999_pos, 1
+ substr rx999_tgt, rx999_tgt, rx999_off
+ rx999_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1003_done
+ goto rxscan1003_scan
+ rxscan1003_loop:
+ ($P10) = rx999_cur."from"()
+ inc $P10
+ set rx999_pos, $P10
+ ge rx999_pos, rx999_eos, rxscan1003_done
+ rxscan1003_scan:
+ set_addr $I10, rxscan1003_loop
+ rx999_cur."!mark_push"(0, rx999_pos, $I10)
+ rxscan1003_done:
+.annotate "line", 473
# rx subcapture "sym"
- set_addr $I10, rxcap_999_fail
- rx994_cur."!mark_push"(0, rx994_pos, $I10)
+ set_addr $I10, rxcap_1004_fail
+ rx999_cur."!mark_push"(0, rx999_pos, $I10)
# rx literal "?"
- add $I11, rx994_pos, 1
- gt $I11, rx994_eos, rx994_fail
- sub $I11, rx994_pos, rx994_off
- substr $S10, rx994_tgt, $I11, 1
- ne $S10, "?", rx994_fail
- add rx994_pos, 1
- set_addr $I10, rxcap_999_fail
- ($I12, $I11) = rx994_cur."!mark_peek"($I10)
- rx994_cur."!cursor_pos"($I11)
- ($P10) = rx994_cur."!cursor_start"()
- $P10."!cursor_pass"(rx994_pos, "")
- rx994_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx999_pos, 1
+ gt $I11, rx999_eos, rx999_fail
+ sub $I11, rx999_pos, rx999_off
+ substr $S10, rx999_tgt, $I11, 1
+ ne $S10, "?", rx999_fail
+ add rx999_pos, 1
+ set_addr $I10, rxcap_1004_fail
+ ($I12, $I11) = rx999_cur."!mark_peek"($I10)
+ rx999_cur."!cursor_pos"($I11)
+ ($P10) = rx999_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx999_pos, "")
+ rx999_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_999_done
- rxcap_999_fail:
- goto rx994_fail
- rxcap_999_done:
+ goto rxcap_1004_done
+ rxcap_1004_fail:
+ goto rx999_fail
+ rxcap_1004_done:
# rx subrule "O" subtype=capture negate=
- rx994_cur."!cursor_pos"(rx994_pos)
- $P10 = rx994_cur."O"("%symbolic_unary, :pirop<istrue>")
- unless $P10, rx994_fail
- rx994_cur."!mark_push"(0, -1, 0, $P10)
+ rx999_cur."!cursor_pos"(rx999_pos)
+ $P10 = rx999_cur."O"("%symbolic_unary, :pirop<istrue>")
+ unless $P10, rx999_fail
+ rx999_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx994_pos = $P10."pos"()
+ rx999_pos = $P10."pos"()
# rx pass
- rx994_cur."!cursor_pass"(rx994_pos, "prefix:sym<?>")
- rx994_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx994_pos)
- .return (rx994_cur)
- rx994_fail:
-.annotate "line", 413
- (rx994_rep, rx994_pos, $I10, $P10) = rx994_cur."!mark_fail"(0)
- lt rx994_pos, -1, rx994_done
- eq rx994_pos, -1, rx994_fail
+ rx999_cur."!cursor_pass"(rx999_pos, "prefix:sym<?>")
+ rx999_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx999_pos)
+ .return (rx999_cur)
+ rx999_fail:
+.annotate "line", 417
+ (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
+ lt rx999_pos, -1, rx999_done
+ eq rx999_pos, -1, rx999_fail
jump $I10
- rx994_done:
- rx994_cur."!cursor_fail"()
- rx994_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
- .return (rx994_cur)
+ rx999_done:
+ rx999_cur."!cursor_fail"()
+ rx999_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
+ .return (rx999_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>" :subid("252_1261064023.05912") :method
-.annotate "line", 413
- $P996 = self."!PREFIX__!subrule"("O", "?")
- new $P997, "ResizablePMCArray"
- push $P997, $P996
- .return ($P997)
+.sub "!PREFIX__prefix:sym<?>" :subid("252_1267204702.05125") :method
+.annotate "line", 417
+ $P1001 = self."!PREFIX__!subrule"("O", "?")
+ new $P1002, "ResizablePMCArray"
+ push $P1002, $P1001
+ .return ($P1002)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>" :subid("253_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1001_tgt
- .local int rx1001_pos
- .local int rx1001_off
- .local int rx1001_eos
- .local int rx1001_rep
- .local pmc rx1001_cur
- (rx1001_cur, rx1001_pos, rx1001_tgt) = self."!cursor_start"()
- rx1001_cur."!cursor_debug"("START ", "prefix:sym<!>")
- .lex unicode:"$\x{a2}", rx1001_cur
- .local pmc match
- .lex "$/", match
- length rx1001_eos, rx1001_tgt
- set rx1001_off, 0
- lt rx1001_pos, 2, rx1001_start
- sub rx1001_off, rx1001_pos, 1
- substr rx1001_tgt, rx1001_tgt, rx1001_off
- rx1001_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1005_done
- goto rxscan1005_scan
- rxscan1005_loop:
- ($P10) = rx1001_cur."from"()
- inc $P10
- set rx1001_pos, $P10
- ge rx1001_pos, rx1001_eos, rxscan1005_done
- rxscan1005_scan:
- set_addr $I10, rxscan1005_loop
- rx1001_cur."!mark_push"(0, rx1001_pos, $I10)
- rxscan1005_done:
-.annotate "line", 470
+.sub "prefix:sym<!>" :subid("253_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1006_tgt
+ .local int rx1006_pos
+ .local int rx1006_off
+ .local int rx1006_eos
+ .local int rx1006_rep
+ .local pmc rx1006_cur
+ (rx1006_cur, rx1006_pos, rx1006_tgt) = self."!cursor_start"()
+ rx1006_cur."!cursor_debug"("START ", "prefix:sym<!>")
+ .lex unicode:"$\x{a2}", rx1006_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1006_eos, rx1006_tgt
+ set rx1006_off, 0
+ lt rx1006_pos, 2, rx1006_start
+ sub rx1006_off, rx1006_pos, 1
+ substr rx1006_tgt, rx1006_tgt, rx1006_off
+ rx1006_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1010_done
+ goto rxscan1010_scan
+ rxscan1010_loop:
+ ($P10) = rx1006_cur."from"()
+ inc $P10
+ set rx1006_pos, $P10
+ ge rx1006_pos, rx1006_eos, rxscan1010_done
+ rxscan1010_scan:
+ set_addr $I10, rxscan1010_loop
+ rx1006_cur."!mark_push"(0, rx1006_pos, $I10)
+ rxscan1010_done:
+.annotate "line", 474
# rx subcapture "sym"
- set_addr $I10, rxcap_1006_fail
- rx1001_cur."!mark_push"(0, rx1001_pos, $I10)
+ set_addr $I10, rxcap_1011_fail
+ rx1006_cur."!mark_push"(0, rx1006_pos, $I10)
# rx literal "!"
- add $I11, rx1001_pos, 1
- gt $I11, rx1001_eos, rx1001_fail
- sub $I11, rx1001_pos, rx1001_off
- substr $S10, rx1001_tgt, $I11, 1
- ne $S10, "!", rx1001_fail
- add rx1001_pos, 1
- set_addr $I10, rxcap_1006_fail
- ($I12, $I11) = rx1001_cur."!mark_peek"($I10)
- rx1001_cur."!cursor_pos"($I11)
- ($P10) = rx1001_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1001_pos, "")
- rx1001_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1006_pos, 1
+ gt $I11, rx1006_eos, rx1006_fail
+ sub $I11, rx1006_pos, rx1006_off
+ substr $S10, rx1006_tgt, $I11, 1
+ ne $S10, "!", rx1006_fail
+ add rx1006_pos, 1
+ set_addr $I10, rxcap_1011_fail
+ ($I12, $I11) = rx1006_cur."!mark_peek"($I10)
+ rx1006_cur."!cursor_pos"($I11)
+ ($P10) = rx1006_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1006_pos, "")
+ rx1006_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1006_done
- rxcap_1006_fail:
- goto rx1001_fail
- rxcap_1006_done:
+ goto rxcap_1011_done
+ rxcap_1011_fail:
+ goto rx1006_fail
+ rxcap_1011_done:
# rx subrule "O" subtype=capture negate=
- rx1001_cur."!cursor_pos"(rx1001_pos)
- $P10 = rx1001_cur."O"("%symbolic_unary, :pirop<isfalse>")
- unless $P10, rx1001_fail
- rx1001_cur."!mark_push"(0, -1, 0, $P10)
+ rx1006_cur."!cursor_pos"(rx1006_pos)
+ $P10 = rx1006_cur."O"("%symbolic_unary, :pirop<isfalse>")
+ unless $P10, rx1006_fail
+ rx1006_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1001_pos = $P10."pos"()
+ rx1006_pos = $P10."pos"()
# rx pass
- rx1001_cur."!cursor_pass"(rx1001_pos, "prefix:sym<!>")
- rx1001_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1001_pos)
- .return (rx1001_cur)
- rx1001_fail:
-.annotate "line", 413
- (rx1001_rep, rx1001_pos, $I10, $P10) = rx1001_cur."!mark_fail"(0)
- lt rx1001_pos, -1, rx1001_done
- eq rx1001_pos, -1, rx1001_fail
+ rx1006_cur."!cursor_pass"(rx1006_pos, "prefix:sym<!>")
+ rx1006_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1006_pos)
+ .return (rx1006_cur)
+ rx1006_fail:
+.annotate "line", 417
+ (rx1006_rep, rx1006_pos, $I10, $P10) = rx1006_cur."!mark_fail"(0)
+ lt rx1006_pos, -1, rx1006_done
+ eq rx1006_pos, -1, rx1006_fail
jump $I10
- rx1001_done:
- rx1001_cur."!cursor_fail"()
- rx1001_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
- .return (rx1001_cur)
+ rx1006_done:
+ rx1006_cur."!cursor_fail"()
+ rx1006_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
+ .return (rx1006_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>" :subid("254_1261064023.05912") :method
-.annotate "line", 413
- $P1003 = self."!PREFIX__!subrule"("O", "!")
- new $P1004, "ResizablePMCArray"
- push $P1004, $P1003
- .return ($P1004)
+.sub "!PREFIX__prefix:sym<!>" :subid("254_1267204702.05125") :method
+.annotate "line", 417
+ $P1008 = self."!PREFIX__!subrule"("O", "!")
+ new $P1009, "ResizablePMCArray"
+ push $P1009, $P1008
+ .return ($P1009)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>" :subid("255_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1008_tgt
- .local int rx1008_pos
- .local int rx1008_off
- .local int rx1008_eos
- .local int rx1008_rep
- .local pmc rx1008_cur
- (rx1008_cur, rx1008_pos, rx1008_tgt) = self."!cursor_start"()
- rx1008_cur."!cursor_debug"("START ", "prefix:sym<|>")
- .lex unicode:"$\x{a2}", rx1008_cur
- .local pmc match
- .lex "$/", match
- length rx1008_eos, rx1008_tgt
- set rx1008_off, 0
- lt rx1008_pos, 2, rx1008_start
- sub rx1008_off, rx1008_pos, 1
- substr rx1008_tgt, rx1008_tgt, rx1008_off
- rx1008_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1012_done
- goto rxscan1012_scan
- rxscan1012_loop:
- ($P10) = rx1008_cur."from"()
- inc $P10
- set rx1008_pos, $P10
- ge rx1008_pos, rx1008_eos, rxscan1012_done
- rxscan1012_scan:
- set_addr $I10, rxscan1012_loop
- rx1008_cur."!mark_push"(0, rx1008_pos, $I10)
- rxscan1012_done:
-.annotate "line", 471
+.sub "prefix:sym<|>" :subid("255_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1013_tgt
+ .local int rx1013_pos
+ .local int rx1013_off
+ .local int rx1013_eos
+ .local int rx1013_rep
+ .local pmc rx1013_cur
+ (rx1013_cur, rx1013_pos, rx1013_tgt) = self."!cursor_start"()
+ rx1013_cur."!cursor_debug"("START ", "prefix:sym<|>")
+ .lex unicode:"$\x{a2}", rx1013_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1013_eos, rx1013_tgt
+ set rx1013_off, 0
+ lt rx1013_pos, 2, rx1013_start
+ sub rx1013_off, rx1013_pos, 1
+ substr rx1013_tgt, rx1013_tgt, rx1013_off
+ rx1013_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1017_done
+ goto rxscan1017_scan
+ rxscan1017_loop:
+ ($P10) = rx1013_cur."from"()
+ inc $P10
+ set rx1013_pos, $P10
+ ge rx1013_pos, rx1013_eos, rxscan1017_done
+ rxscan1017_scan:
+ set_addr $I10, rxscan1017_loop
+ rx1013_cur."!mark_push"(0, rx1013_pos, $I10)
+ rxscan1017_done:
+.annotate "line", 475
# rx subcapture "sym"
- set_addr $I10, rxcap_1013_fail
- rx1008_cur."!mark_push"(0, rx1008_pos, $I10)
+ set_addr $I10, rxcap_1018_fail
+ rx1013_cur."!mark_push"(0, rx1013_pos, $I10)
# rx literal "|"
- add $I11, rx1008_pos, 1
- gt $I11, rx1008_eos, rx1008_fail
- sub $I11, rx1008_pos, rx1008_off
- substr $S10, rx1008_tgt, $I11, 1
- ne $S10, "|", rx1008_fail
- add rx1008_pos, 1
- set_addr $I10, rxcap_1013_fail
- ($I12, $I11) = rx1008_cur."!mark_peek"($I10)
- rx1008_cur."!cursor_pos"($I11)
- ($P10) = rx1008_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1008_pos, "")
- rx1008_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1013_pos, 1
+ gt $I11, rx1013_eos, rx1013_fail
+ sub $I11, rx1013_pos, rx1013_off
+ substr $S10, rx1013_tgt, $I11, 1
+ ne $S10, "|", rx1013_fail
+ add rx1013_pos, 1
+ set_addr $I10, rxcap_1018_fail
+ ($I12, $I11) = rx1013_cur."!mark_peek"($I10)
+ rx1013_cur."!cursor_pos"($I11)
+ ($P10) = rx1013_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1013_pos, "")
+ rx1013_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1013_done
- rxcap_1013_fail:
- goto rx1008_fail
- rxcap_1013_done:
+ goto rxcap_1018_done
+ rxcap_1018_fail:
+ goto rx1013_fail
+ rxcap_1018_done:
# rx subrule "O" subtype=capture negate=
- rx1008_cur."!cursor_pos"(rx1008_pos)
- $P10 = rx1008_cur."O"("%symbolic_unary")
- unless $P10, rx1008_fail
- rx1008_cur."!mark_push"(0, -1, 0, $P10)
+ rx1013_cur."!cursor_pos"(rx1013_pos)
+ $P10 = rx1013_cur."O"("%symbolic_unary")
+ unless $P10, rx1013_fail
+ rx1013_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1008_pos = $P10."pos"()
+ rx1013_pos = $P10."pos"()
# rx pass
- rx1008_cur."!cursor_pass"(rx1008_pos, "prefix:sym<|>")
- rx1008_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1008_pos)
- .return (rx1008_cur)
- rx1008_fail:
-.annotate "line", 413
- (rx1008_rep, rx1008_pos, $I10, $P10) = rx1008_cur."!mark_fail"(0)
- lt rx1008_pos, -1, rx1008_done
- eq rx1008_pos, -1, rx1008_fail
+ rx1013_cur."!cursor_pass"(rx1013_pos, "prefix:sym<|>")
+ rx1013_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1013_pos)
+ .return (rx1013_cur)
+ rx1013_fail:
+.annotate "line", 417
+ (rx1013_rep, rx1013_pos, $I10, $P10) = rx1013_cur."!mark_fail"(0)
+ lt rx1013_pos, -1, rx1013_done
+ eq rx1013_pos, -1, rx1013_fail
jump $I10
- rx1008_done:
- rx1008_cur."!cursor_fail"()
- rx1008_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
- .return (rx1008_cur)
+ rx1013_done:
+ rx1013_cur."!cursor_fail"()
+ rx1013_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
+ .return (rx1013_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>" :subid("256_1261064023.05912") :method
-.annotate "line", 413
- $P1010 = self."!PREFIX__!subrule"("O", "|")
- new $P1011, "ResizablePMCArray"
- push $P1011, $P1010
- .return ($P1011)
+.sub "!PREFIX__prefix:sym<|>" :subid("256_1267204702.05125") :method
+.annotate "line", 417
+ $P1015 = self."!PREFIX__!subrule"("O", "|")
+ new $P1016, "ResizablePMCArray"
+ push $P1016, $P1015
+ .return ($P1016)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>" :subid("257_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1015_tgt
- .local int rx1015_pos
- .local int rx1015_off
- .local int rx1015_eos
- .local int rx1015_rep
- .local pmc rx1015_cur
- (rx1015_cur, rx1015_pos, rx1015_tgt) = self."!cursor_start"()
- rx1015_cur."!cursor_debug"("START ", "infix:sym<*>")
- .lex unicode:"$\x{a2}", rx1015_cur
- .local pmc match
- .lex "$/", match
- length rx1015_eos, rx1015_tgt
- set rx1015_off, 0
- lt rx1015_pos, 2, rx1015_start
- sub rx1015_off, rx1015_pos, 1
- substr rx1015_tgt, rx1015_tgt, rx1015_off
- rx1015_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1019_done
- goto rxscan1019_scan
- rxscan1019_loop:
- ($P10) = rx1015_cur."from"()
- inc $P10
- set rx1015_pos, $P10
- ge rx1015_pos, rx1015_eos, rxscan1019_done
- rxscan1019_scan:
- set_addr $I10, rxscan1019_loop
- rx1015_cur."!mark_push"(0, rx1015_pos, $I10)
- rxscan1019_done:
-.annotate "line", 473
+.sub "infix:sym<*>" :subid("257_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1020_tgt
+ .local int rx1020_pos
+ .local int rx1020_off
+ .local int rx1020_eos
+ .local int rx1020_rep
+ .local pmc rx1020_cur
+ (rx1020_cur, rx1020_pos, rx1020_tgt) = self."!cursor_start"()
+ rx1020_cur."!cursor_debug"("START ", "infix:sym<*>")
+ .lex unicode:"$\x{a2}", rx1020_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1020_eos, rx1020_tgt
+ set rx1020_off, 0
+ lt rx1020_pos, 2, rx1020_start
+ sub rx1020_off, rx1020_pos, 1
+ substr rx1020_tgt, rx1020_tgt, rx1020_off
+ rx1020_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1024_done
+ goto rxscan1024_scan
+ rxscan1024_loop:
+ ($P10) = rx1020_cur."from"()
+ inc $P10
+ set rx1020_pos, $P10
+ ge rx1020_pos, rx1020_eos, rxscan1024_done
+ rxscan1024_scan:
+ set_addr $I10, rxscan1024_loop
+ rx1020_cur."!mark_push"(0, rx1020_pos, $I10)
+ rxscan1024_done:
+.annotate "line", 477
# rx subcapture "sym"
- set_addr $I10, rxcap_1020_fail
- rx1015_cur."!mark_push"(0, rx1015_pos, $I10)
+ set_addr $I10, rxcap_1025_fail
+ rx1020_cur."!mark_push"(0, rx1020_pos, $I10)
# rx literal "*"
- add $I11, rx1015_pos, 1
- gt $I11, rx1015_eos, rx1015_fail
- sub $I11, rx1015_pos, rx1015_off
- substr $S10, rx1015_tgt, $I11, 1
- ne $S10, "*", rx1015_fail
- add rx1015_pos, 1
- set_addr $I10, rxcap_1020_fail
- ($I12, $I11) = rx1015_cur."!mark_peek"($I10)
- rx1015_cur."!cursor_pos"($I11)
- ($P10) = rx1015_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1015_pos, "")
- rx1015_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1020_pos, 1
+ gt $I11, rx1020_eos, rx1020_fail
+ sub $I11, rx1020_pos, rx1020_off
+ substr $S10, rx1020_tgt, $I11, 1
+ ne $S10, "*", rx1020_fail
+ add rx1020_pos, 1
+ set_addr $I10, rxcap_1025_fail
+ ($I12, $I11) = rx1020_cur."!mark_peek"($I10)
+ rx1020_cur."!cursor_pos"($I11)
+ ($P10) = rx1020_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1020_pos, "")
+ rx1020_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1020_done
- rxcap_1020_fail:
- goto rx1015_fail
- rxcap_1020_done:
+ goto rxcap_1025_done
+ rxcap_1025_fail:
+ goto rx1020_fail
+ rxcap_1025_done:
# rx subrule "O" subtype=capture negate=
- rx1015_cur."!cursor_pos"(rx1015_pos)
- $P10 = rx1015_cur."O"("%multiplicative, :pirop<mul>")
- unless $P10, rx1015_fail
- rx1015_cur."!mark_push"(0, -1, 0, $P10)
+ rx1020_cur."!cursor_pos"(rx1020_pos)
+ $P10 = rx1020_cur."O"("%multiplicative, :pirop<mul>")
+ unless $P10, rx1020_fail
+ rx1020_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1015_pos = $P10."pos"()
+ rx1020_pos = $P10."pos"()
# rx pass
- rx1015_cur."!cursor_pass"(rx1015_pos, "infix:sym<*>")
- rx1015_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1015_pos)
- .return (rx1015_cur)
- rx1015_fail:
-.annotate "line", 413
- (rx1015_rep, rx1015_pos, $I10, $P10) = rx1015_cur."!mark_fail"(0)
- lt rx1015_pos, -1, rx1015_done
- eq rx1015_pos, -1, rx1015_fail
+ rx1020_cur."!cursor_pass"(rx1020_pos, "infix:sym<*>")
+ rx1020_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1020_pos)
+ .return (rx1020_cur)
+ rx1020_fail:
+.annotate "line", 417
+ (rx1020_rep, rx1020_pos, $I10, $P10) = rx1020_cur."!mark_fail"(0)
+ lt rx1020_pos, -1, rx1020_done
+ eq rx1020_pos, -1, rx1020_fail
jump $I10
- rx1015_done:
- rx1015_cur."!cursor_fail"()
- rx1015_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
- .return (rx1015_cur)
+ rx1020_done:
+ rx1020_cur."!cursor_fail"()
+ rx1020_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
+ .return (rx1020_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>" :subid("258_1261064023.05912") :method
-.annotate "line", 413
- $P1017 = self."!PREFIX__!subrule"("O", "*")
- new $P1018, "ResizablePMCArray"
- push $P1018, $P1017
- .return ($P1018)
+.sub "!PREFIX__infix:sym<*>" :subid("258_1267204702.05125") :method
+.annotate "line", 417
+ $P1022 = self."!PREFIX__!subrule"("O", "*")
+ new $P1023, "ResizablePMCArray"
+ push $P1023, $P1022
+ .return ($P1023)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym</>" :subid("259_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1022_tgt
- .local int rx1022_pos
- .local int rx1022_off
- .local int rx1022_eos
- .local int rx1022_rep
- .local pmc rx1022_cur
- (rx1022_cur, rx1022_pos, rx1022_tgt) = self."!cursor_start"()
- rx1022_cur."!cursor_debug"("START ", "infix:sym</>")
- .lex unicode:"$\x{a2}", rx1022_cur
- .local pmc match
- .lex "$/", match
- length rx1022_eos, rx1022_tgt
- set rx1022_off, 0
- lt rx1022_pos, 2, rx1022_start
- sub rx1022_off, rx1022_pos, 1
- substr rx1022_tgt, rx1022_tgt, rx1022_off
- rx1022_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1026_done
- goto rxscan1026_scan
- rxscan1026_loop:
- ($P10) = rx1022_cur."from"()
- inc $P10
- set rx1022_pos, $P10
- ge rx1022_pos, rx1022_eos, rxscan1026_done
- rxscan1026_scan:
- set_addr $I10, rxscan1026_loop
- rx1022_cur."!mark_push"(0, rx1022_pos, $I10)
- rxscan1026_done:
-.annotate "line", 474
+.sub "infix:sym</>" :subid("259_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1027_tgt
+ .local int rx1027_pos
+ .local int rx1027_off
+ .local int rx1027_eos
+ .local int rx1027_rep
+ .local pmc rx1027_cur
+ (rx1027_cur, rx1027_pos, rx1027_tgt) = self."!cursor_start"()
+ rx1027_cur."!cursor_debug"("START ", "infix:sym</>")
+ .lex unicode:"$\x{a2}", rx1027_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1027_eos, rx1027_tgt
+ set rx1027_off, 0
+ lt rx1027_pos, 2, rx1027_start
+ sub rx1027_off, rx1027_pos, 1
+ substr rx1027_tgt, rx1027_tgt, rx1027_off
+ rx1027_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1031_done
+ goto rxscan1031_scan
+ rxscan1031_loop:
+ ($P10) = rx1027_cur."from"()
+ inc $P10
+ set rx1027_pos, $P10
+ ge rx1027_pos, rx1027_eos, rxscan1031_done
+ rxscan1031_scan:
+ set_addr $I10, rxscan1031_loop
+ rx1027_cur."!mark_push"(0, rx1027_pos, $I10)
+ rxscan1031_done:
+.annotate "line", 478
# rx subcapture "sym"
- set_addr $I10, rxcap_1027_fail
- rx1022_cur."!mark_push"(0, rx1022_pos, $I10)
+ set_addr $I10, rxcap_1032_fail
+ rx1027_cur."!mark_push"(0, rx1027_pos, $I10)
# rx literal "/"
- add $I11, rx1022_pos, 1
- gt $I11, rx1022_eos, rx1022_fail
- sub $I11, rx1022_pos, rx1022_off
- substr $S10, rx1022_tgt, $I11, 1
- ne $S10, "/", rx1022_fail
- add rx1022_pos, 1
- set_addr $I10, rxcap_1027_fail
- ($I12, $I11) = rx1022_cur."!mark_peek"($I10)
- rx1022_cur."!cursor_pos"($I11)
- ($P10) = rx1022_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1022_pos, "")
- rx1022_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1027_pos, 1
+ gt $I11, rx1027_eos, rx1027_fail
+ sub $I11, rx1027_pos, rx1027_off
+ substr $S10, rx1027_tgt, $I11, 1
+ ne $S10, "/", rx1027_fail
+ add rx1027_pos, 1
+ set_addr $I10, rxcap_1032_fail
+ ($I12, $I11) = rx1027_cur."!mark_peek"($I10)
+ rx1027_cur."!cursor_pos"($I11)
+ ($P10) = rx1027_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1027_pos, "")
+ rx1027_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1027_done
- rxcap_1027_fail:
- goto rx1022_fail
- rxcap_1027_done:
+ goto rxcap_1032_done
+ rxcap_1032_fail:
+ goto rx1027_fail
+ rxcap_1032_done:
# rx subrule "O" subtype=capture negate=
- rx1022_cur."!cursor_pos"(rx1022_pos)
- $P10 = rx1022_cur."O"("%multiplicative, :pirop<div>")
- unless $P10, rx1022_fail
- rx1022_cur."!mark_push"(0, -1, 0, $P10)
+ rx1027_cur."!cursor_pos"(rx1027_pos)
+ $P10 = rx1027_cur."O"("%multiplicative, :pirop<div>")
+ unless $P10, rx1027_fail
+ rx1027_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1022_pos = $P10."pos"()
+ rx1027_pos = $P10."pos"()
# rx pass
- rx1022_cur."!cursor_pass"(rx1022_pos, "infix:sym</>")
- rx1022_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1022_pos)
- .return (rx1022_cur)
- rx1022_fail:
-.annotate "line", 413
- (rx1022_rep, rx1022_pos, $I10, $P10) = rx1022_cur."!mark_fail"(0)
- lt rx1022_pos, -1, rx1022_done
- eq rx1022_pos, -1, rx1022_fail
+ rx1027_cur."!cursor_pass"(rx1027_pos, "infix:sym</>")
+ rx1027_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1027_pos)
+ .return (rx1027_cur)
+ rx1027_fail:
+.annotate "line", 417
+ (rx1027_rep, rx1027_pos, $I10, $P10) = rx1027_cur."!mark_fail"(0)
+ lt rx1027_pos, -1, rx1027_done
+ eq rx1027_pos, -1, rx1027_fail
jump $I10
- rx1022_done:
- rx1022_cur."!cursor_fail"()
- rx1022_cur."!cursor_debug"("FAIL ", "infix:sym</>")
- .return (rx1022_cur)
+ rx1027_done:
+ rx1027_cur."!cursor_fail"()
+ rx1027_cur."!cursor_debug"("FAIL ", "infix:sym</>")
+ .return (rx1027_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>" :subid("260_1261064023.05912") :method
-.annotate "line", 413
- $P1024 = self."!PREFIX__!subrule"("O", "/")
- new $P1025, "ResizablePMCArray"
- push $P1025, $P1024
- .return ($P1025)
+.sub "!PREFIX__infix:sym</>" :subid("260_1267204702.05125") :method
+.annotate "line", 417
+ $P1029 = self."!PREFIX__!subrule"("O", "/")
+ new $P1030, "ResizablePMCArray"
+ push $P1030, $P1029
+ .return ($P1030)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>" :subid("261_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1029_tgt
- .local int rx1029_pos
- .local int rx1029_off
- .local int rx1029_eos
- .local int rx1029_rep
- .local pmc rx1029_cur
- (rx1029_cur, rx1029_pos, rx1029_tgt) = self."!cursor_start"()
- rx1029_cur."!cursor_debug"("START ", "infix:sym<%>")
- .lex unicode:"$\x{a2}", rx1029_cur
- .local pmc match
- .lex "$/", match
- length rx1029_eos, rx1029_tgt
- set rx1029_off, 0
- lt rx1029_pos, 2, rx1029_start
- sub rx1029_off, rx1029_pos, 1
- substr rx1029_tgt, rx1029_tgt, rx1029_off
- rx1029_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1033_done
- goto rxscan1033_scan
- rxscan1033_loop:
- ($P10) = rx1029_cur."from"()
- inc $P10
- set rx1029_pos, $P10
- ge rx1029_pos, rx1029_eos, rxscan1033_done
- rxscan1033_scan:
- set_addr $I10, rxscan1033_loop
- rx1029_cur."!mark_push"(0, rx1029_pos, $I10)
- rxscan1033_done:
-.annotate "line", 475
+.sub "infix:sym<%>" :subid("261_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1034_tgt
+ .local int rx1034_pos
+ .local int rx1034_off
+ .local int rx1034_eos
+ .local int rx1034_rep
+ .local pmc rx1034_cur
+ (rx1034_cur, rx1034_pos, rx1034_tgt) = self."!cursor_start"()
+ rx1034_cur."!cursor_debug"("START ", "infix:sym<%>")
+ .lex unicode:"$\x{a2}", rx1034_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1034_eos, rx1034_tgt
+ set rx1034_off, 0
+ lt rx1034_pos, 2, rx1034_start
+ sub rx1034_off, rx1034_pos, 1
+ substr rx1034_tgt, rx1034_tgt, rx1034_off
+ rx1034_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1038_done
+ goto rxscan1038_scan
+ rxscan1038_loop:
+ ($P10) = rx1034_cur."from"()
+ inc $P10
+ set rx1034_pos, $P10
+ ge rx1034_pos, rx1034_eos, rxscan1038_done
+ rxscan1038_scan:
+ set_addr $I10, rxscan1038_loop
+ rx1034_cur."!mark_push"(0, rx1034_pos, $I10)
+ rxscan1038_done:
+.annotate "line", 479
# rx subcapture "sym"
- set_addr $I10, rxcap_1034_fail
- rx1029_cur."!mark_push"(0, rx1029_pos, $I10)
+ set_addr $I10, rxcap_1039_fail
+ rx1034_cur."!mark_push"(0, rx1034_pos, $I10)
# rx literal "%"
- add $I11, rx1029_pos, 1
- gt $I11, rx1029_eos, rx1029_fail
- sub $I11, rx1029_pos, rx1029_off
- substr $S10, rx1029_tgt, $I11, 1
- ne $S10, "%", rx1029_fail
- add rx1029_pos, 1
- set_addr $I10, rxcap_1034_fail
- ($I12, $I11) = rx1029_cur."!mark_peek"($I10)
- rx1029_cur."!cursor_pos"($I11)
- ($P10) = rx1029_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1029_pos, "")
- rx1029_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1034_pos, 1
+ gt $I11, rx1034_eos, rx1034_fail
+ sub $I11, rx1034_pos, rx1034_off
+ substr $S10, rx1034_tgt, $I11, 1
+ ne $S10, "%", rx1034_fail
+ add rx1034_pos, 1
+ set_addr $I10, rxcap_1039_fail
+ ($I12, $I11) = rx1034_cur."!mark_peek"($I10)
+ rx1034_cur."!cursor_pos"($I11)
+ ($P10) = rx1034_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1034_pos, "")
+ rx1034_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1034_done
- rxcap_1034_fail:
- goto rx1029_fail
- rxcap_1034_done:
+ goto rxcap_1039_done
+ rxcap_1039_fail:
+ goto rx1034_fail
+ rxcap_1039_done:
# rx subrule "O" subtype=capture negate=
- rx1029_cur."!cursor_pos"(rx1029_pos)
- $P10 = rx1029_cur."O"("%multiplicative, :pirop<mod>")
- unless $P10, rx1029_fail
- rx1029_cur."!mark_push"(0, -1, 0, $P10)
+ rx1034_cur."!cursor_pos"(rx1034_pos)
+ $P10 = rx1034_cur."O"("%multiplicative, :pirop<mod>")
+ unless $P10, rx1034_fail
+ rx1034_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1029_pos = $P10."pos"()
+ rx1034_pos = $P10."pos"()
# rx pass
- rx1029_cur."!cursor_pass"(rx1029_pos, "infix:sym<%>")
- rx1029_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1029_pos)
- .return (rx1029_cur)
- rx1029_fail:
-.annotate "line", 413
- (rx1029_rep, rx1029_pos, $I10, $P10) = rx1029_cur."!mark_fail"(0)
- lt rx1029_pos, -1, rx1029_done
- eq rx1029_pos, -1, rx1029_fail
+ rx1034_cur."!cursor_pass"(rx1034_pos, "infix:sym<%>")
+ rx1034_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1034_pos)
+ .return (rx1034_cur)
+ rx1034_fail:
+.annotate "line", 417
+ (rx1034_rep, rx1034_pos, $I10, $P10) = rx1034_cur."!mark_fail"(0)
+ lt rx1034_pos, -1, rx1034_done
+ eq rx1034_pos, -1, rx1034_fail
jump $I10
- rx1029_done:
- rx1029_cur."!cursor_fail"()
- rx1029_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
- .return (rx1029_cur)
+ rx1034_done:
+ rx1034_cur."!cursor_fail"()
+ rx1034_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
+ .return (rx1034_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>" :subid("262_1261064023.05912") :method
-.annotate "line", 413
- $P1031 = self."!PREFIX__!subrule"("O", "%")
- new $P1032, "ResizablePMCArray"
- push $P1032, $P1031
- .return ($P1032)
+.sub "!PREFIX__infix:sym<%>" :subid("262_1267204702.05125") :method
+.annotate "line", 417
+ $P1036 = self."!PREFIX__!subrule"("O", "%")
+ new $P1037, "ResizablePMCArray"
+ push $P1037, $P1036
+ .return ($P1037)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>" :subid("263_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1036_tgt
- .local int rx1036_pos
- .local int rx1036_off
- .local int rx1036_eos
- .local int rx1036_rep
- .local pmc rx1036_cur
- (rx1036_cur, rx1036_pos, rx1036_tgt) = self."!cursor_start"()
- rx1036_cur."!cursor_debug"("START ", "infix:sym<+>")
- .lex unicode:"$\x{a2}", rx1036_cur
- .local pmc match
- .lex "$/", match
- length rx1036_eos, rx1036_tgt
- set rx1036_off, 0
- lt rx1036_pos, 2, rx1036_start
- sub rx1036_off, rx1036_pos, 1
- substr rx1036_tgt, rx1036_tgt, rx1036_off
- rx1036_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1040_done
- goto rxscan1040_scan
- rxscan1040_loop:
- ($P10) = rx1036_cur."from"()
- inc $P10
- set rx1036_pos, $P10
- ge rx1036_pos, rx1036_eos, rxscan1040_done
- rxscan1040_scan:
- set_addr $I10, rxscan1040_loop
- rx1036_cur."!mark_push"(0, rx1036_pos, $I10)
- rxscan1040_done:
-.annotate "line", 477
+.sub "infix:sym<+>" :subid("263_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1041_tgt
+ .local int rx1041_pos
+ .local int rx1041_off
+ .local int rx1041_eos
+ .local int rx1041_rep
+ .local pmc rx1041_cur
+ (rx1041_cur, rx1041_pos, rx1041_tgt) = self."!cursor_start"()
+ rx1041_cur."!cursor_debug"("START ", "infix:sym<+>")
+ .lex unicode:"$\x{a2}", rx1041_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1041_eos, rx1041_tgt
+ set rx1041_off, 0
+ lt rx1041_pos, 2, rx1041_start
+ sub rx1041_off, rx1041_pos, 1
+ substr rx1041_tgt, rx1041_tgt, rx1041_off
+ rx1041_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1045_done
+ goto rxscan1045_scan
+ rxscan1045_loop:
+ ($P10) = rx1041_cur."from"()
+ inc $P10
+ set rx1041_pos, $P10
+ ge rx1041_pos, rx1041_eos, rxscan1045_done
+ rxscan1045_scan:
+ set_addr $I10, rxscan1045_loop
+ rx1041_cur."!mark_push"(0, rx1041_pos, $I10)
+ rxscan1045_done:
+.annotate "line", 481
# rx subcapture "sym"
- set_addr $I10, rxcap_1041_fail
- rx1036_cur."!mark_push"(0, rx1036_pos, $I10)
+ set_addr $I10, rxcap_1046_fail
+ rx1041_cur."!mark_push"(0, rx1041_pos, $I10)
# rx literal "+"
- add $I11, rx1036_pos, 1
- gt $I11, rx1036_eos, rx1036_fail
- sub $I11, rx1036_pos, rx1036_off
- substr $S10, rx1036_tgt, $I11, 1
- ne $S10, "+", rx1036_fail
- add rx1036_pos, 1
- set_addr $I10, rxcap_1041_fail
- ($I12, $I11) = rx1036_cur."!mark_peek"($I10)
- rx1036_cur."!cursor_pos"($I11)
- ($P10) = rx1036_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1036_pos, "")
- rx1036_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1041_pos, 1
+ gt $I11, rx1041_eos, rx1041_fail
+ sub $I11, rx1041_pos, rx1041_off
+ substr $S10, rx1041_tgt, $I11, 1
+ ne $S10, "+", rx1041_fail
+ add rx1041_pos, 1
+ set_addr $I10, rxcap_1046_fail
+ ($I12, $I11) = rx1041_cur."!mark_peek"($I10)
+ rx1041_cur."!cursor_pos"($I11)
+ ($P10) = rx1041_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1041_pos, "")
+ rx1041_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1041_done
- rxcap_1041_fail:
- goto rx1036_fail
- rxcap_1041_done:
+ goto rxcap_1046_done
+ rxcap_1046_fail:
+ goto rx1041_fail
+ rxcap_1046_done:
# rx subrule "O" subtype=capture negate=
- rx1036_cur."!cursor_pos"(rx1036_pos)
- $P10 = rx1036_cur."O"("%additive, :pirop<add>")
- unless $P10, rx1036_fail
- rx1036_cur."!mark_push"(0, -1, 0, $P10)
+ rx1041_cur."!cursor_pos"(rx1041_pos)
+ $P10 = rx1041_cur."O"("%additive, :pirop<add>")
+ unless $P10, rx1041_fail
+ rx1041_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1036_pos = $P10."pos"()
+ rx1041_pos = $P10."pos"()
# rx pass
- rx1036_cur."!cursor_pass"(rx1036_pos, "infix:sym<+>")
- rx1036_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1036_pos)
- .return (rx1036_cur)
- rx1036_fail:
-.annotate "line", 413
- (rx1036_rep, rx1036_pos, $I10, $P10) = rx1036_cur."!mark_fail"(0)
- lt rx1036_pos, -1, rx1036_done
- eq rx1036_pos, -1, rx1036_fail
+ rx1041_cur."!cursor_pass"(rx1041_pos, "infix:sym<+>")
+ rx1041_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1041_pos)
+ .return (rx1041_cur)
+ rx1041_fail:
+.annotate "line", 417
+ (rx1041_rep, rx1041_pos, $I10, $P10) = rx1041_cur."!mark_fail"(0)
+ lt rx1041_pos, -1, rx1041_done
+ eq rx1041_pos, -1, rx1041_fail
jump $I10
- rx1036_done:
- rx1036_cur."!cursor_fail"()
- rx1036_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
- .return (rx1036_cur)
+ rx1041_done:
+ rx1041_cur."!cursor_fail"()
+ rx1041_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
+ .return (rx1041_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>" :subid("264_1261064023.05912") :method
-.annotate "line", 413
- $P1038 = self."!PREFIX__!subrule"("O", "+")
- new $P1039, "ResizablePMCArray"
- push $P1039, $P1038
- .return ($P1039)
+.sub "!PREFIX__infix:sym<+>" :subid("264_1267204702.05125") :method
+.annotate "line", 417
+ $P1043 = self."!PREFIX__!subrule"("O", "+")
+ new $P1044, "ResizablePMCArray"
+ push $P1044, $P1043
+ .return ($P1044)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<->" :subid("265_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1043_tgt
- .local int rx1043_pos
- .local int rx1043_off
- .local int rx1043_eos
- .local int rx1043_rep
- .local pmc rx1043_cur
- (rx1043_cur, rx1043_pos, rx1043_tgt) = self."!cursor_start"()
- rx1043_cur."!cursor_debug"("START ", "infix:sym<->")
- .lex unicode:"$\x{a2}", rx1043_cur
- .local pmc match
- .lex "$/", match
- length rx1043_eos, rx1043_tgt
- set rx1043_off, 0
- lt rx1043_pos, 2, rx1043_start
- sub rx1043_off, rx1043_pos, 1
- substr rx1043_tgt, rx1043_tgt, rx1043_off
- rx1043_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1047_done
- goto rxscan1047_scan
- rxscan1047_loop:
- ($P10) = rx1043_cur."from"()
- inc $P10
- set rx1043_pos, $P10
- ge rx1043_pos, rx1043_eos, rxscan1047_done
- rxscan1047_scan:
- set_addr $I10, rxscan1047_loop
- rx1043_cur."!mark_push"(0, rx1043_pos, $I10)
- rxscan1047_done:
-.annotate "line", 478
+.sub "infix:sym<->" :subid("265_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1048_tgt
+ .local int rx1048_pos
+ .local int rx1048_off
+ .local int rx1048_eos
+ .local int rx1048_rep
+ .local pmc rx1048_cur
+ (rx1048_cur, rx1048_pos, rx1048_tgt) = self."!cursor_start"()
+ rx1048_cur."!cursor_debug"("START ", "infix:sym<->")
+ .lex unicode:"$\x{a2}", rx1048_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1048_eos, rx1048_tgt
+ set rx1048_off, 0
+ lt rx1048_pos, 2, rx1048_start
+ sub rx1048_off, rx1048_pos, 1
+ substr rx1048_tgt, rx1048_tgt, rx1048_off
+ rx1048_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1052_done
+ goto rxscan1052_scan
+ rxscan1052_loop:
+ ($P10) = rx1048_cur."from"()
+ inc $P10
+ set rx1048_pos, $P10
+ ge rx1048_pos, rx1048_eos, rxscan1052_done
+ rxscan1052_scan:
+ set_addr $I10, rxscan1052_loop
+ rx1048_cur."!mark_push"(0, rx1048_pos, $I10)
+ rxscan1052_done:
+.annotate "line", 482
# rx subcapture "sym"
- set_addr $I10, rxcap_1048_fail
- rx1043_cur."!mark_push"(0, rx1043_pos, $I10)
+ set_addr $I10, rxcap_1053_fail
+ rx1048_cur."!mark_push"(0, rx1048_pos, $I10)
# rx literal "-"
- add $I11, rx1043_pos, 1
- gt $I11, rx1043_eos, rx1043_fail
- sub $I11, rx1043_pos, rx1043_off
- substr $S10, rx1043_tgt, $I11, 1
- ne $S10, "-", rx1043_fail
- add rx1043_pos, 1
- set_addr $I10, rxcap_1048_fail
- ($I12, $I11) = rx1043_cur."!mark_peek"($I10)
- rx1043_cur."!cursor_pos"($I11)
- ($P10) = rx1043_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1043_pos, "")
- rx1043_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1048_pos, 1
+ gt $I11, rx1048_eos, rx1048_fail
+ sub $I11, rx1048_pos, rx1048_off
+ substr $S10, rx1048_tgt, $I11, 1
+ ne $S10, "-", rx1048_fail
+ add rx1048_pos, 1
+ set_addr $I10, rxcap_1053_fail
+ ($I12, $I11) = rx1048_cur."!mark_peek"($I10)
+ rx1048_cur."!cursor_pos"($I11)
+ ($P10) = rx1048_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1048_pos, "")
+ rx1048_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1048_done
- rxcap_1048_fail:
- goto rx1043_fail
- rxcap_1048_done:
+ goto rxcap_1053_done
+ rxcap_1053_fail:
+ goto rx1048_fail
+ rxcap_1053_done:
# rx subrule "O" subtype=capture negate=
- rx1043_cur."!cursor_pos"(rx1043_pos)
- $P10 = rx1043_cur."O"("%additive, :pirop<sub>")
- unless $P10, rx1043_fail
- rx1043_cur."!mark_push"(0, -1, 0, $P10)
+ rx1048_cur."!cursor_pos"(rx1048_pos)
+ $P10 = rx1048_cur."O"("%additive, :pirop<sub>")
+ unless $P10, rx1048_fail
+ rx1048_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1043_pos = $P10."pos"()
+ rx1048_pos = $P10."pos"()
# rx pass
- rx1043_cur."!cursor_pass"(rx1043_pos, "infix:sym<->")
- rx1043_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1043_pos)
- .return (rx1043_cur)
- rx1043_fail:
-.annotate "line", 413
- (rx1043_rep, rx1043_pos, $I10, $P10) = rx1043_cur."!mark_fail"(0)
- lt rx1043_pos, -1, rx1043_done
- eq rx1043_pos, -1, rx1043_fail
+ rx1048_cur."!cursor_pass"(rx1048_pos, "infix:sym<->")
+ rx1048_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1048_pos)
+ .return (rx1048_cur)
+ rx1048_fail:
+.annotate "line", 417
+ (rx1048_rep, rx1048_pos, $I10, $P10) = rx1048_cur."!mark_fail"(0)
+ lt rx1048_pos, -1, rx1048_done
+ eq rx1048_pos, -1, rx1048_fail
jump $I10
- rx1043_done:
- rx1043_cur."!cursor_fail"()
- rx1043_cur."!cursor_debug"("FAIL ", "infix:sym<->")
- .return (rx1043_cur)
+ rx1048_done:
+ rx1048_cur."!cursor_fail"()
+ rx1048_cur."!cursor_debug"("FAIL ", "infix:sym<->")
+ .return (rx1048_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->" :subid("266_1261064023.05912") :method
-.annotate "line", 413
- $P1045 = self."!PREFIX__!subrule"("O", "-")
- new $P1046, "ResizablePMCArray"
- push $P1046, $P1045
- .return ($P1046)
+.sub "!PREFIX__infix:sym<->" :subid("266_1267204702.05125") :method
+.annotate "line", 417
+ $P1050 = self."!PREFIX__!subrule"("O", "-")
+ new $P1051, "ResizablePMCArray"
+ push $P1051, $P1050
+ .return ($P1051)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>" :subid("267_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1050_tgt
- .local int rx1050_pos
- .local int rx1050_off
- .local int rx1050_eos
- .local int rx1050_rep
- .local pmc rx1050_cur
- (rx1050_cur, rx1050_pos, rx1050_tgt) = self."!cursor_start"()
- rx1050_cur."!cursor_debug"("START ", "infix:sym<~>")
- .lex unicode:"$\x{a2}", rx1050_cur
- .local pmc match
- .lex "$/", match
- length rx1050_eos, rx1050_tgt
- set rx1050_off, 0
- lt rx1050_pos, 2, rx1050_start
- sub rx1050_off, rx1050_pos, 1
- substr rx1050_tgt, rx1050_tgt, rx1050_off
- rx1050_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1054_done
- goto rxscan1054_scan
- rxscan1054_loop:
- ($P10) = rx1050_cur."from"()
- inc $P10
- set rx1050_pos, $P10
- ge rx1050_pos, rx1050_eos, rxscan1054_done
- rxscan1054_scan:
- set_addr $I10, rxscan1054_loop
- rx1050_cur."!mark_push"(0, rx1050_pos, $I10)
- rxscan1054_done:
-.annotate "line", 480
+.sub "infix:sym<~>" :subid("267_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1055_tgt
+ .local int rx1055_pos
+ .local int rx1055_off
+ .local int rx1055_eos
+ .local int rx1055_rep
+ .local pmc rx1055_cur
+ (rx1055_cur, rx1055_pos, rx1055_tgt) = self."!cursor_start"()
+ rx1055_cur."!cursor_debug"("START ", "infix:sym<~>")
+ .lex unicode:"$\x{a2}", rx1055_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1055_eos, rx1055_tgt
+ set rx1055_off, 0
+ lt rx1055_pos, 2, rx1055_start
+ sub rx1055_off, rx1055_pos, 1
+ substr rx1055_tgt, rx1055_tgt, rx1055_off
+ rx1055_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1059_done
+ goto rxscan1059_scan
+ rxscan1059_loop:
+ ($P10) = rx1055_cur."from"()
+ inc $P10
+ set rx1055_pos, $P10
+ ge rx1055_pos, rx1055_eos, rxscan1059_done
+ rxscan1059_scan:
+ set_addr $I10, rxscan1059_loop
+ rx1055_cur."!mark_push"(0, rx1055_pos, $I10)
+ rxscan1059_done:
+.annotate "line", 484
# rx subcapture "sym"
- set_addr $I10, rxcap_1055_fail
- rx1050_cur."!mark_push"(0, rx1050_pos, $I10)
+ set_addr $I10, rxcap_1060_fail
+ rx1055_cur."!mark_push"(0, rx1055_pos, $I10)
# rx literal "~"
- add $I11, rx1050_pos, 1
- gt $I11, rx1050_eos, rx1050_fail
- sub $I11, rx1050_pos, rx1050_off
- substr $S10, rx1050_tgt, $I11, 1
- ne $S10, "~", rx1050_fail
- add rx1050_pos, 1
- set_addr $I10, rxcap_1055_fail
- ($I12, $I11) = rx1050_cur."!mark_peek"($I10)
- rx1050_cur."!cursor_pos"($I11)
- ($P10) = rx1050_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1050_pos, "")
- rx1050_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1055_pos, 1
+ gt $I11, rx1055_eos, rx1055_fail
+ sub $I11, rx1055_pos, rx1055_off
+ substr $S10, rx1055_tgt, $I11, 1
+ ne $S10, "~", rx1055_fail
+ add rx1055_pos, 1
+ set_addr $I10, rxcap_1060_fail
+ ($I12, $I11) = rx1055_cur."!mark_peek"($I10)
+ rx1055_cur."!cursor_pos"($I11)
+ ($P10) = rx1055_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1055_pos, "")
+ rx1055_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1055_done
- rxcap_1055_fail:
- goto rx1050_fail
- rxcap_1055_done:
+ goto rxcap_1060_done
+ rxcap_1060_fail:
+ goto rx1055_fail
+ rxcap_1060_done:
# rx subrule "O" subtype=capture negate=
- rx1050_cur."!cursor_pos"(rx1050_pos)
- $P10 = rx1050_cur."O"("%concatenation , :pirop<concat>")
- unless $P10, rx1050_fail
- rx1050_cur."!mark_push"(0, -1, 0, $P10)
+ rx1055_cur."!cursor_pos"(rx1055_pos)
+ $P10 = rx1055_cur."O"("%concatenation , :pirop<concat>")
+ unless $P10, rx1055_fail
+ rx1055_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1050_pos = $P10."pos"()
+ rx1055_pos = $P10."pos"()
# rx pass
- rx1050_cur."!cursor_pass"(rx1050_pos, "infix:sym<~>")
- rx1050_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1050_pos)
- .return (rx1050_cur)
- rx1050_fail:
-.annotate "line", 413
- (rx1050_rep, rx1050_pos, $I10, $P10) = rx1050_cur."!mark_fail"(0)
- lt rx1050_pos, -1, rx1050_done
- eq rx1050_pos, -1, rx1050_fail
+ rx1055_cur."!cursor_pass"(rx1055_pos, "infix:sym<~>")
+ rx1055_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1055_pos)
+ .return (rx1055_cur)
+ rx1055_fail:
+.annotate "line", 417
+ (rx1055_rep, rx1055_pos, $I10, $P10) = rx1055_cur."!mark_fail"(0)
+ lt rx1055_pos, -1, rx1055_done
+ eq rx1055_pos, -1, rx1055_fail
jump $I10
- rx1050_done:
- rx1050_cur."!cursor_fail"()
- rx1050_cur."!cursor_debug"("FAIL ", "infix:sym<~>")
- .return (rx1050_cur)
+ rx1055_done:
+ rx1055_cur."!cursor_fail"()
+ rx1055_cur."!cursor_debug"("FAIL ", "infix:sym<~>")
+ .return (rx1055_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>" :subid("268_1261064023.05912") :method
-.annotate "line", 413
- $P1052 = self."!PREFIX__!subrule"("O", "~")
- new $P1053, "ResizablePMCArray"
- push $P1053, $P1052
- .return ($P1053)
+.sub "!PREFIX__infix:sym<~>" :subid("268_1267204702.05125") :method
+.annotate "line", 417
+ $P1057 = self."!PREFIX__!subrule"("O", "~")
+ new $P1058, "ResizablePMCArray"
+ push $P1058, $P1057
+ .return ($P1058)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>" :subid("269_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1057_tgt
- .local int rx1057_pos
- .local int rx1057_off
- .local int rx1057_eos
- .local int rx1057_rep
- .local pmc rx1057_cur
- (rx1057_cur, rx1057_pos, rx1057_tgt) = self."!cursor_start"()
- rx1057_cur."!cursor_debug"("START ", "infix:sym<==>")
- .lex unicode:"$\x{a2}", rx1057_cur
- .local pmc match
- .lex "$/", match
- length rx1057_eos, rx1057_tgt
- set rx1057_off, 0
- lt rx1057_pos, 2, rx1057_start
- sub rx1057_off, rx1057_pos, 1
- substr rx1057_tgt, rx1057_tgt, rx1057_off
- rx1057_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1061_done
- goto rxscan1061_scan
- rxscan1061_loop:
- ($P10) = rx1057_cur."from"()
- inc $P10
- set rx1057_pos, $P10
- ge rx1057_pos, rx1057_eos, rxscan1061_done
- rxscan1061_scan:
- set_addr $I10, rxscan1061_loop
- rx1057_cur."!mark_push"(0, rx1057_pos, $I10)
- rxscan1061_done:
-.annotate "line", 482
+.sub "infix:sym<==>" :subid("269_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1062_tgt
+ .local int rx1062_pos
+ .local int rx1062_off
+ .local int rx1062_eos
+ .local int rx1062_rep
+ .local pmc rx1062_cur
+ (rx1062_cur, rx1062_pos, rx1062_tgt) = self."!cursor_start"()
+ rx1062_cur."!cursor_debug"("START ", "infix:sym<==>")
+ .lex unicode:"$\x{a2}", rx1062_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1062_eos, rx1062_tgt
+ set rx1062_off, 0
+ lt rx1062_pos, 2, rx1062_start
+ sub rx1062_off, rx1062_pos, 1
+ substr rx1062_tgt, rx1062_tgt, rx1062_off
+ rx1062_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1066_done
+ goto rxscan1066_scan
+ rxscan1066_loop:
+ ($P10) = rx1062_cur."from"()
+ inc $P10
+ set rx1062_pos, $P10
+ ge rx1062_pos, rx1062_eos, rxscan1066_done
+ rxscan1066_scan:
+ set_addr $I10, rxscan1066_loop
+ rx1062_cur."!mark_push"(0, rx1062_pos, $I10)
+ rxscan1066_done:
+.annotate "line", 486
# rx subcapture "sym"
- set_addr $I10, rxcap_1062_fail
- rx1057_cur."!mark_push"(0, rx1057_pos, $I10)
+ set_addr $I10, rxcap_1067_fail
+ rx1062_cur."!mark_push"(0, rx1062_pos, $I10)
# rx literal "=="
- add $I11, rx1057_pos, 2
- gt $I11, rx1057_eos, rx1057_fail
- sub $I11, rx1057_pos, rx1057_off
- substr $S10, rx1057_tgt, $I11, 2
- ne $S10, "==", rx1057_fail
- add rx1057_pos, 2
- set_addr $I10, rxcap_1062_fail
- ($I12, $I11) = rx1057_cur."!mark_peek"($I10)
- rx1057_cur."!cursor_pos"($I11)
- ($P10) = rx1057_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1057_pos, "")
- rx1057_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1062_pos, 2
+ gt $I11, rx1062_eos, rx1062_fail
+ sub $I11, rx1062_pos, rx1062_off
+ substr $S10, rx1062_tgt, $I11, 2
+ ne $S10, "==", rx1062_fail
+ add rx1062_pos, 2
+ set_addr $I10, rxcap_1067_fail
+ ($I12, $I11) = rx1062_cur."!mark_peek"($I10)
+ rx1062_cur."!cursor_pos"($I11)
+ ($P10) = rx1062_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1062_pos, "")
+ rx1062_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1062_done
- rxcap_1062_fail:
- goto rx1057_fail
- rxcap_1062_done:
+ goto rxcap_1067_done
+ rxcap_1067_fail:
+ goto rx1062_fail
+ rxcap_1067_done:
# rx subrule "O" subtype=capture negate=
- rx1057_cur."!cursor_pos"(rx1057_pos)
- $P10 = rx1057_cur."O"("%relational, :pirop<iseq INn>")
- unless $P10, rx1057_fail
- rx1057_cur."!mark_push"(0, -1, 0, $P10)
+ rx1062_cur."!cursor_pos"(rx1062_pos)
+ $P10 = rx1062_cur."O"("%relational, :pirop<iseq INn>")
+ unless $P10, rx1062_fail
+ rx1062_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1057_pos = $P10."pos"()
+ rx1062_pos = $P10."pos"()
# rx pass
- rx1057_cur."!cursor_pass"(rx1057_pos, "infix:sym<==>")
- rx1057_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1057_pos)
- .return (rx1057_cur)
- rx1057_fail:
-.annotate "line", 413
- (rx1057_rep, rx1057_pos, $I10, $P10) = rx1057_cur."!mark_fail"(0)
- lt rx1057_pos, -1, rx1057_done
- eq rx1057_pos, -1, rx1057_fail
+ rx1062_cur."!cursor_pass"(rx1062_pos, "infix:sym<==>")
+ rx1062_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1062_pos)
+ .return (rx1062_cur)
+ rx1062_fail:
+.annotate "line", 417
+ (rx1062_rep, rx1062_pos, $I10, $P10) = rx1062_cur."!mark_fail"(0)
+ lt rx1062_pos, -1, rx1062_done
+ eq rx1062_pos, -1, rx1062_fail
jump $I10
- rx1057_done:
- rx1057_cur."!cursor_fail"()
- rx1057_cur."!cursor_debug"("FAIL ", "infix:sym<==>")
- .return (rx1057_cur)
+ rx1062_done:
+ rx1062_cur."!cursor_fail"()
+ rx1062_cur."!cursor_debug"("FAIL ", "infix:sym<==>")
+ .return (rx1062_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>" :subid("270_1261064023.05912") :method
-.annotate "line", 413
- $P1059 = self."!PREFIX__!subrule"("O", "==")
- new $P1060, "ResizablePMCArray"
- push $P1060, $P1059
- .return ($P1060)
+.sub "!PREFIX__infix:sym<==>" :subid("270_1267204702.05125") :method
+.annotate "line", 417
+ $P1064 = self."!PREFIX__!subrule"("O", "==")
+ new $P1065, "ResizablePMCArray"
+ push $P1065, $P1064
+ .return ($P1065)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>" :subid("271_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1064_tgt
- .local int rx1064_pos
- .local int rx1064_off
- .local int rx1064_eos
- .local int rx1064_rep
- .local pmc rx1064_cur
- (rx1064_cur, rx1064_pos, rx1064_tgt) = self."!cursor_start"()
- rx1064_cur."!cursor_debug"("START ", "infix:sym<!=>")
- .lex unicode:"$\x{a2}", rx1064_cur
- .local pmc match
- .lex "$/", match
- length rx1064_eos, rx1064_tgt
- set rx1064_off, 0
- lt rx1064_pos, 2, rx1064_start
- sub rx1064_off, rx1064_pos, 1
- substr rx1064_tgt, rx1064_tgt, rx1064_off
- rx1064_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1068_done
- goto rxscan1068_scan
- rxscan1068_loop:
- ($P10) = rx1064_cur."from"()
- inc $P10
- set rx1064_pos, $P10
- ge rx1064_pos, rx1064_eos, rxscan1068_done
- rxscan1068_scan:
- set_addr $I10, rxscan1068_loop
- rx1064_cur."!mark_push"(0, rx1064_pos, $I10)
- rxscan1068_done:
-.annotate "line", 483
+.sub "infix:sym<!=>" :subid("271_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1069_tgt
+ .local int rx1069_pos
+ .local int rx1069_off
+ .local int rx1069_eos
+ .local int rx1069_rep
+ .local pmc rx1069_cur
+ (rx1069_cur, rx1069_pos, rx1069_tgt) = self."!cursor_start"()
+ rx1069_cur."!cursor_debug"("START ", "infix:sym<!=>")
+ .lex unicode:"$\x{a2}", rx1069_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1069_eos, rx1069_tgt
+ set rx1069_off, 0
+ lt rx1069_pos, 2, rx1069_start
+ sub rx1069_off, rx1069_pos, 1
+ substr rx1069_tgt, rx1069_tgt, rx1069_off
+ rx1069_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1073_done
+ goto rxscan1073_scan
+ rxscan1073_loop:
+ ($P10) = rx1069_cur."from"()
+ inc $P10
+ set rx1069_pos, $P10
+ ge rx1069_pos, rx1069_eos, rxscan1073_done
+ rxscan1073_scan:
+ set_addr $I10, rxscan1073_loop
+ rx1069_cur."!mark_push"(0, rx1069_pos, $I10)
+ rxscan1073_done:
+.annotate "line", 487
# rx subcapture "sym"
- set_addr $I10, rxcap_1069_fail
- rx1064_cur."!mark_push"(0, rx1064_pos, $I10)
+ set_addr $I10, rxcap_1074_fail
+ rx1069_cur."!mark_push"(0, rx1069_pos, $I10)
# rx literal "!="
- add $I11, rx1064_pos, 2
- gt $I11, rx1064_eos, rx1064_fail
- sub $I11, rx1064_pos, rx1064_off
- substr $S10, rx1064_tgt, $I11, 2
- ne $S10, "!=", rx1064_fail
- add rx1064_pos, 2
- set_addr $I10, rxcap_1069_fail
- ($I12, $I11) = rx1064_cur."!mark_peek"($I10)
- rx1064_cur."!cursor_pos"($I11)
- ($P10) = rx1064_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1064_pos, "")
- rx1064_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1069_pos, 2
+ gt $I11, rx1069_eos, rx1069_fail
+ sub $I11, rx1069_pos, rx1069_off
+ substr $S10, rx1069_tgt, $I11, 2
+ ne $S10, "!=", rx1069_fail
+ add rx1069_pos, 2
+ set_addr $I10, rxcap_1074_fail
+ ($I12, $I11) = rx1069_cur."!mark_peek"($I10)
+ rx1069_cur."!cursor_pos"($I11)
+ ($P10) = rx1069_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1069_pos, "")
+ rx1069_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1069_done
- rxcap_1069_fail:
- goto rx1064_fail
- rxcap_1069_done:
+ goto rxcap_1074_done
+ rxcap_1074_fail:
+ goto rx1069_fail
+ rxcap_1074_done:
# rx subrule "O" subtype=capture negate=
- rx1064_cur."!cursor_pos"(rx1064_pos)
- $P10 = rx1064_cur."O"("%relational, :pirop<isne INn>")
- unless $P10, rx1064_fail
- rx1064_cur."!mark_push"(0, -1, 0, $P10)
+ rx1069_cur."!cursor_pos"(rx1069_pos)
+ $P10 = rx1069_cur."O"("%relational, :pirop<isne INn>")
+ unless $P10, rx1069_fail
+ rx1069_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1064_pos = $P10."pos"()
+ rx1069_pos = $P10."pos"()
# rx pass
- rx1064_cur."!cursor_pass"(rx1064_pos, "infix:sym<!=>")
- rx1064_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1064_pos)
- .return (rx1064_cur)
- rx1064_fail:
-.annotate "line", 413
- (rx1064_rep, rx1064_pos, $I10, $P10) = rx1064_cur."!mark_fail"(0)
- lt rx1064_pos, -1, rx1064_done
- eq rx1064_pos, -1, rx1064_fail
+ rx1069_cur."!cursor_pass"(rx1069_pos, "infix:sym<!=>")
+ rx1069_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1069_pos)
+ .return (rx1069_cur)
+ rx1069_fail:
+.annotate "line", 417
+ (rx1069_rep, rx1069_pos, $I10, $P10) = rx1069_cur."!mark_fail"(0)
+ lt rx1069_pos, -1, rx1069_done
+ eq rx1069_pos, -1, rx1069_fail
jump $I10
- rx1064_done:
- rx1064_cur."!cursor_fail"()
- rx1064_cur."!cursor_debug"("FAIL ", "infix:sym<!=>")
- .return (rx1064_cur)
+ rx1069_done:
+ rx1069_cur."!cursor_fail"()
+ rx1069_cur."!cursor_debug"("FAIL ", "infix:sym<!=>")
+ .return (rx1069_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>" :subid("272_1261064023.05912") :method
-.annotate "line", 413
- $P1066 = self."!PREFIX__!subrule"("O", "!=")
- new $P1067, "ResizablePMCArray"
- push $P1067, $P1066
- .return ($P1067)
+.sub "!PREFIX__infix:sym<!=>" :subid("272_1267204702.05125") :method
+.annotate "line", 417
+ $P1071 = self."!PREFIX__!subrule"("O", "!=")
+ new $P1072, "ResizablePMCArray"
+ push $P1072, $P1071
+ .return ($P1072)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>" :subid("273_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1071_tgt
- .local int rx1071_pos
- .local int rx1071_off
- .local int rx1071_eos
- .local int rx1071_rep
- .local pmc rx1071_cur
- (rx1071_cur, rx1071_pos, rx1071_tgt) = self."!cursor_start"()
- rx1071_cur."!cursor_debug"("START ", "infix:sym<<=>")
- .lex unicode:"$\x{a2}", rx1071_cur
- .local pmc match
- .lex "$/", match
- length rx1071_eos, rx1071_tgt
- set rx1071_off, 0
- lt rx1071_pos, 2, rx1071_start
- sub rx1071_off, rx1071_pos, 1
- substr rx1071_tgt, rx1071_tgt, rx1071_off
- rx1071_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1075_done
- goto rxscan1075_scan
- rxscan1075_loop:
- ($P10) = rx1071_cur."from"()
- inc $P10
- set rx1071_pos, $P10
- ge rx1071_pos, rx1071_eos, rxscan1075_done
- rxscan1075_scan:
- set_addr $I10, rxscan1075_loop
- rx1071_cur."!mark_push"(0, rx1071_pos, $I10)
- rxscan1075_done:
-.annotate "line", 484
+.sub "infix:sym<<=>" :subid("273_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1076_tgt
+ .local int rx1076_pos
+ .local int rx1076_off
+ .local int rx1076_eos
+ .local int rx1076_rep
+ .local pmc rx1076_cur
+ (rx1076_cur, rx1076_pos, rx1076_tgt) = self."!cursor_start"()
+ rx1076_cur."!cursor_debug"("START ", "infix:sym<<=>")
+ .lex unicode:"$\x{a2}", rx1076_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1076_eos, rx1076_tgt
+ set rx1076_off, 0
+ lt rx1076_pos, 2, rx1076_start
+ sub rx1076_off, rx1076_pos, 1
+ substr rx1076_tgt, rx1076_tgt, rx1076_off
+ rx1076_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1080_done
+ goto rxscan1080_scan
+ rxscan1080_loop:
+ ($P10) = rx1076_cur."from"()
+ inc $P10
+ set rx1076_pos, $P10
+ ge rx1076_pos, rx1076_eos, rxscan1080_done
+ rxscan1080_scan:
+ set_addr $I10, rxscan1080_loop
+ rx1076_cur."!mark_push"(0, rx1076_pos, $I10)
+ rxscan1080_done:
+.annotate "line", 488
# rx subcapture "sym"
- set_addr $I10, rxcap_1076_fail
- rx1071_cur."!mark_push"(0, rx1071_pos, $I10)
+ set_addr $I10, rxcap_1081_fail
+ rx1076_cur."!mark_push"(0, rx1076_pos, $I10)
# rx literal "<="
- add $I11, rx1071_pos, 2
- gt $I11, rx1071_eos, rx1071_fail
- sub $I11, rx1071_pos, rx1071_off
- substr $S10, rx1071_tgt, $I11, 2
- ne $S10, "<=", rx1071_fail
- add rx1071_pos, 2
- set_addr $I10, rxcap_1076_fail
- ($I12, $I11) = rx1071_cur."!mark_peek"($I10)
- rx1071_cur."!cursor_pos"($I11)
- ($P10) = rx1071_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1071_pos, "")
- rx1071_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1076_pos, 2
+ gt $I11, rx1076_eos, rx1076_fail
+ sub $I11, rx1076_pos, rx1076_off
+ substr $S10, rx1076_tgt, $I11, 2
+ ne $S10, "<=", rx1076_fail
+ add rx1076_pos, 2
+ set_addr $I10, rxcap_1081_fail
+ ($I12, $I11) = rx1076_cur."!mark_peek"($I10)
+ rx1076_cur."!cursor_pos"($I11)
+ ($P10) = rx1076_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1076_pos, "")
+ rx1076_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1076_done
- rxcap_1076_fail:
- goto rx1071_fail
- rxcap_1076_done:
+ goto rxcap_1081_done
+ rxcap_1081_fail:
+ goto rx1076_fail
+ rxcap_1081_done:
# rx subrule "O" subtype=capture negate=
- rx1071_cur."!cursor_pos"(rx1071_pos)
- $P10 = rx1071_cur."O"("%relational, :pirop<isle INn>")
- unless $P10, rx1071_fail
- rx1071_cur."!mark_push"(0, -1, 0, $P10)
+ rx1076_cur."!cursor_pos"(rx1076_pos)
+ $P10 = rx1076_cur."O"("%relational, :pirop<isle INn>")
+ unless $P10, rx1076_fail
+ rx1076_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1071_pos = $P10."pos"()
+ rx1076_pos = $P10."pos"()
# rx pass
- rx1071_cur."!cursor_pass"(rx1071_pos, "infix:sym<<=>")
- rx1071_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1071_pos)
- .return (rx1071_cur)
- rx1071_fail:
-.annotate "line", 413
- (rx1071_rep, rx1071_pos, $I10, $P10) = rx1071_cur."!mark_fail"(0)
- lt rx1071_pos, -1, rx1071_done
- eq rx1071_pos, -1, rx1071_fail
+ rx1076_cur."!cursor_pass"(rx1076_pos, "infix:sym<<=>")
+ rx1076_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1076_pos)
+ .return (rx1076_cur)
+ rx1076_fail:
+.annotate "line", 417
+ (rx1076_rep, rx1076_pos, $I10, $P10) = rx1076_cur."!mark_fail"(0)
+ lt rx1076_pos, -1, rx1076_done
+ eq rx1076_pos, -1, rx1076_fail
jump $I10
- rx1071_done:
- rx1071_cur."!cursor_fail"()
- rx1071_cur."!cursor_debug"("FAIL ", "infix:sym<<=>")
- .return (rx1071_cur)
+ rx1076_done:
+ rx1076_cur."!cursor_fail"()
+ rx1076_cur."!cursor_debug"("FAIL ", "infix:sym<<=>")
+ .return (rx1076_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>" :subid("274_1261064023.05912") :method
-.annotate "line", 413
- $P1073 = self."!PREFIX__!subrule"("O", "<=")
- new $P1074, "ResizablePMCArray"
- push $P1074, $P1073
- .return ($P1074)
+.sub "!PREFIX__infix:sym<<=>" :subid("274_1267204702.05125") :method
+.annotate "line", 417
+ $P1078 = self."!PREFIX__!subrule"("O", "<=")
+ new $P1079, "ResizablePMCArray"
+ push $P1079, $P1078
+ .return ($P1079)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>" :subid("275_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1078_tgt
- .local int rx1078_pos
- .local int rx1078_off
- .local int rx1078_eos
- .local int rx1078_rep
- .local pmc rx1078_cur
- (rx1078_cur, rx1078_pos, rx1078_tgt) = self."!cursor_start"()
- rx1078_cur."!cursor_debug"("START ", "infix:sym<>=>")
- .lex unicode:"$\x{a2}", rx1078_cur
- .local pmc match
- .lex "$/", match
- length rx1078_eos, rx1078_tgt
- set rx1078_off, 0
- lt rx1078_pos, 2, rx1078_start
- sub rx1078_off, rx1078_pos, 1
- substr rx1078_tgt, rx1078_tgt, rx1078_off
- rx1078_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1082_done
- goto rxscan1082_scan
- rxscan1082_loop:
- ($P10) = rx1078_cur."from"()
- inc $P10
- set rx1078_pos, $P10
- ge rx1078_pos, rx1078_eos, rxscan1082_done
- rxscan1082_scan:
- set_addr $I10, rxscan1082_loop
- rx1078_cur."!mark_push"(0, rx1078_pos, $I10)
- rxscan1082_done:
-.annotate "line", 485
+.sub "infix:sym<>=>" :subid("275_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1083_tgt
+ .local int rx1083_pos
+ .local int rx1083_off
+ .local int rx1083_eos
+ .local int rx1083_rep
+ .local pmc rx1083_cur
+ (rx1083_cur, rx1083_pos, rx1083_tgt) = self."!cursor_start"()
+ rx1083_cur."!cursor_debug"("START ", "infix:sym<>=>")
+ .lex unicode:"$\x{a2}", rx1083_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1083_eos, rx1083_tgt
+ set rx1083_off, 0
+ lt rx1083_pos, 2, rx1083_start
+ sub rx1083_off, rx1083_pos, 1
+ substr rx1083_tgt, rx1083_tgt, rx1083_off
+ rx1083_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1087_done
+ goto rxscan1087_scan
+ rxscan1087_loop:
+ ($P10) = rx1083_cur."from"()
+ inc $P10
+ set rx1083_pos, $P10
+ ge rx1083_pos, rx1083_eos, rxscan1087_done
+ rxscan1087_scan:
+ set_addr $I10, rxscan1087_loop
+ rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
+ rxscan1087_done:
+.annotate "line", 489
# rx subcapture "sym"
- set_addr $I10, rxcap_1083_fail
- rx1078_cur."!mark_push"(0, rx1078_pos, $I10)
+ set_addr $I10, rxcap_1088_fail
+ rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
# rx literal ">="
- add $I11, rx1078_pos, 2
- gt $I11, rx1078_eos, rx1078_fail
- sub $I11, rx1078_pos, rx1078_off
- substr $S10, rx1078_tgt, $I11, 2
- ne $S10, ">=", rx1078_fail
- add rx1078_pos, 2
- set_addr $I10, rxcap_1083_fail
- ($I12, $I11) = rx1078_cur."!mark_peek"($I10)
- rx1078_cur."!cursor_pos"($I11)
- ($P10) = rx1078_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1078_pos, "")
- rx1078_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1083_pos, 2
+ gt $I11, rx1083_eos, rx1083_fail
+ sub $I11, rx1083_pos, rx1083_off
+ substr $S10, rx1083_tgt, $I11, 2
+ ne $S10, ">=", rx1083_fail
+ add rx1083_pos, 2
+ set_addr $I10, rxcap_1088_fail
+ ($I12, $I11) = rx1083_cur."!mark_peek"($I10)
+ rx1083_cur."!cursor_pos"($I11)
+ ($P10) = rx1083_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1083_pos, "")
+ rx1083_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1083_done
- rxcap_1083_fail:
- goto rx1078_fail
- rxcap_1083_done:
+ goto rxcap_1088_done
+ rxcap_1088_fail:
+ goto rx1083_fail
+ rxcap_1088_done:
# rx subrule "O" subtype=capture negate=
- rx1078_cur."!cursor_pos"(rx1078_pos)
- $P10 = rx1078_cur."O"("%relational, :pirop<isge INn>")
- unless $P10, rx1078_fail
- rx1078_cur."!mark_push"(0, -1, 0, $P10)
+ rx1083_cur."!cursor_pos"(rx1083_pos)
+ $P10 = rx1083_cur."O"("%relational, :pirop<isge INn>")
+ unless $P10, rx1083_fail
+ rx1083_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1078_pos = $P10."pos"()
+ rx1083_pos = $P10."pos"()
# rx pass
- rx1078_cur."!cursor_pass"(rx1078_pos, "infix:sym<>=>")
- rx1078_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1078_pos)
- .return (rx1078_cur)
- rx1078_fail:
-.annotate "line", 413
- (rx1078_rep, rx1078_pos, $I10, $P10) = rx1078_cur."!mark_fail"(0)
- lt rx1078_pos, -1, rx1078_done
- eq rx1078_pos, -1, rx1078_fail
+ rx1083_cur."!cursor_pass"(rx1083_pos, "infix:sym<>=>")
+ rx1083_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1083_pos)
+ .return (rx1083_cur)
+ rx1083_fail:
+.annotate "line", 417
+ (rx1083_rep, rx1083_pos, $I10, $P10) = rx1083_cur."!mark_fail"(0)
+ lt rx1083_pos, -1, rx1083_done
+ eq rx1083_pos, -1, rx1083_fail
jump $I10
- rx1078_done:
- rx1078_cur."!cursor_fail"()
- rx1078_cur."!cursor_debug"("FAIL ", "infix:sym<>=>")
- .return (rx1078_cur)
+ rx1083_done:
+ rx1083_cur."!cursor_fail"()
+ rx1083_cur."!cursor_debug"("FAIL ", "infix:sym<>=>")
+ .return (rx1083_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>" :subid("276_1261064023.05912") :method
-.annotate "line", 413
- $P1080 = self."!PREFIX__!subrule"("O", ">=")
- new $P1081, "ResizablePMCArray"
- push $P1081, $P1080
- .return ($P1081)
+.sub "!PREFIX__infix:sym<>=>" :subid("276_1267204702.05125") :method
+.annotate "line", 417
+ $P1085 = self."!PREFIX__!subrule"("O", ">=")
+ new $P1086, "ResizablePMCArray"
+ push $P1086, $P1085
+ .return ($P1086)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>" :subid("277_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1085_tgt
- .local int rx1085_pos
- .local int rx1085_off
- .local int rx1085_eos
- .local int rx1085_rep
- .local pmc rx1085_cur
- (rx1085_cur, rx1085_pos, rx1085_tgt) = self."!cursor_start"()
- rx1085_cur."!cursor_debug"("START ", "infix:sym<<>")
- .lex unicode:"$\x{a2}", rx1085_cur
- .local pmc match
- .lex "$/", match
- length rx1085_eos, rx1085_tgt
- set rx1085_off, 0
- lt rx1085_pos, 2, rx1085_start
- sub rx1085_off, rx1085_pos, 1
- substr rx1085_tgt, rx1085_tgt, rx1085_off
- rx1085_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1089_done
- goto rxscan1089_scan
- rxscan1089_loop:
- ($P10) = rx1085_cur."from"()
- inc $P10
- set rx1085_pos, $P10
- ge rx1085_pos, rx1085_eos, rxscan1089_done
- rxscan1089_scan:
- set_addr $I10, rxscan1089_loop
- rx1085_cur."!mark_push"(0, rx1085_pos, $I10)
- rxscan1089_done:
-.annotate "line", 486
+.sub "infix:sym<<>" :subid("277_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1090_tgt
+ .local int rx1090_pos
+ .local int rx1090_off
+ .local int rx1090_eos
+ .local int rx1090_rep
+ .local pmc rx1090_cur
+ (rx1090_cur, rx1090_pos, rx1090_tgt) = self."!cursor_start"()
+ rx1090_cur."!cursor_debug"("START ", "infix:sym<<>")
+ .lex unicode:"$\x{a2}", rx1090_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1090_eos, rx1090_tgt
+ set rx1090_off, 0
+ lt rx1090_pos, 2, rx1090_start
+ sub rx1090_off, rx1090_pos, 1
+ substr rx1090_tgt, rx1090_tgt, rx1090_off
+ rx1090_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1094_done
+ goto rxscan1094_scan
+ rxscan1094_loop:
+ ($P10) = rx1090_cur."from"()
+ inc $P10
+ set rx1090_pos, $P10
+ ge rx1090_pos, rx1090_eos, rxscan1094_done
+ rxscan1094_scan:
+ set_addr $I10, rxscan1094_loop
+ rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
+ rxscan1094_done:
+.annotate "line", 490
# rx subcapture "sym"
- set_addr $I10, rxcap_1090_fail
- rx1085_cur."!mark_push"(0, rx1085_pos, $I10)
+ set_addr $I10, rxcap_1095_fail
+ rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
# rx literal "<"
- add $I11, rx1085_pos, 1
- gt $I11, rx1085_eos, rx1085_fail
- sub $I11, rx1085_pos, rx1085_off
- substr $S10, rx1085_tgt, $I11, 1
- ne $S10, "<", rx1085_fail
- add rx1085_pos, 1
- set_addr $I10, rxcap_1090_fail
- ($I12, $I11) = rx1085_cur."!mark_peek"($I10)
- rx1085_cur."!cursor_pos"($I11)
- ($P10) = rx1085_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1085_pos, "")
- rx1085_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1090_pos, 1
+ gt $I11, rx1090_eos, rx1090_fail
+ sub $I11, rx1090_pos, rx1090_off
+ substr $S10, rx1090_tgt, $I11, 1
+ ne $S10, "<", rx1090_fail
+ add rx1090_pos, 1
+ set_addr $I10, rxcap_1095_fail
+ ($I12, $I11) = rx1090_cur."!mark_peek"($I10)
+ rx1090_cur."!cursor_pos"($I11)
+ ($P10) = rx1090_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1090_pos, "")
+ rx1090_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1090_done
- rxcap_1090_fail:
- goto rx1085_fail
- rxcap_1090_done:
+ goto rxcap_1095_done
+ rxcap_1095_fail:
+ goto rx1090_fail
+ rxcap_1095_done:
# rx subrule "O" subtype=capture negate=
- rx1085_cur."!cursor_pos"(rx1085_pos)
- $P10 = rx1085_cur."O"("%relational, :pirop<islt INn>")
- unless $P10, rx1085_fail
- rx1085_cur."!mark_push"(0, -1, 0, $P10)
+ rx1090_cur."!cursor_pos"(rx1090_pos)
+ $P10 = rx1090_cur."O"("%relational, :pirop<islt INn>")
+ unless $P10, rx1090_fail
+ rx1090_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1085_pos = $P10."pos"()
+ rx1090_pos = $P10."pos"()
# rx pass
- rx1085_cur."!cursor_pass"(rx1085_pos, "infix:sym<<>")
- rx1085_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1085_pos)
- .return (rx1085_cur)
- rx1085_fail:
-.annotate "line", 413
- (rx1085_rep, rx1085_pos, $I10, $P10) = rx1085_cur."!mark_fail"(0)
- lt rx1085_pos, -1, rx1085_done
- eq rx1085_pos, -1, rx1085_fail
+ rx1090_cur."!cursor_pass"(rx1090_pos, "infix:sym<<>")
+ rx1090_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1090_pos)
+ .return (rx1090_cur)
+ rx1090_fail:
+.annotate "line", 417
+ (rx1090_rep, rx1090_pos, $I10, $P10) = rx1090_cur."!mark_fail"(0)
+ lt rx1090_pos, -1, rx1090_done
+ eq rx1090_pos, -1, rx1090_fail
jump $I10
- rx1085_done:
- rx1085_cur."!cursor_fail"()
- rx1085_cur."!cursor_debug"("FAIL ", "infix:sym<<>")
- .return (rx1085_cur)
+ rx1090_done:
+ rx1090_cur."!cursor_fail"()
+ rx1090_cur."!cursor_debug"("FAIL ", "infix:sym<<>")
+ .return (rx1090_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>" :subid("278_1261064023.05912") :method
-.annotate "line", 413
- $P1087 = self."!PREFIX__!subrule"("O", "<")
- new $P1088, "ResizablePMCArray"
- push $P1088, $P1087
- .return ($P1088)
+.sub "!PREFIX__infix:sym<<>" :subid("278_1267204702.05125") :method
+.annotate "line", 417
+ $P1092 = self."!PREFIX__!subrule"("O", "<")
+ new $P1093, "ResizablePMCArray"
+ push $P1093, $P1092
+ .return ($P1093)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>" :subid("279_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1092_tgt
- .local int rx1092_pos
- .local int rx1092_off
- .local int rx1092_eos
- .local int rx1092_rep
- .local pmc rx1092_cur
- (rx1092_cur, rx1092_pos, rx1092_tgt) = self."!cursor_start"()
- rx1092_cur."!cursor_debug"("START ", "infix:sym<>>")
- .lex unicode:"$\x{a2}", rx1092_cur
- .local pmc match
- .lex "$/", match
- length rx1092_eos, rx1092_tgt
- set rx1092_off, 0
- lt rx1092_pos, 2, rx1092_start
- sub rx1092_off, rx1092_pos, 1
- substr rx1092_tgt, rx1092_tgt, rx1092_off
- rx1092_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1096_done
- goto rxscan1096_scan
- rxscan1096_loop:
- ($P10) = rx1092_cur."from"()
- inc $P10
- set rx1092_pos, $P10
- ge rx1092_pos, rx1092_eos, rxscan1096_done
- rxscan1096_scan:
- set_addr $I10, rxscan1096_loop
- rx1092_cur."!mark_push"(0, rx1092_pos, $I10)
- rxscan1096_done:
-.annotate "line", 487
+.sub "infix:sym<>>" :subid("279_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1097_tgt
+ .local int rx1097_pos
+ .local int rx1097_off
+ .local int rx1097_eos
+ .local int rx1097_rep
+ .local pmc rx1097_cur
+ (rx1097_cur, rx1097_pos, rx1097_tgt) = self."!cursor_start"()
+ rx1097_cur."!cursor_debug"("START ", "infix:sym<>>")
+ .lex unicode:"$\x{a2}", rx1097_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1097_eos, rx1097_tgt
+ set rx1097_off, 0
+ lt rx1097_pos, 2, rx1097_start
+ sub rx1097_off, rx1097_pos, 1
+ substr rx1097_tgt, rx1097_tgt, rx1097_off
+ rx1097_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1101_done
+ goto rxscan1101_scan
+ rxscan1101_loop:
+ ($P10) = rx1097_cur."from"()
+ inc $P10
+ set rx1097_pos, $P10
+ ge rx1097_pos, rx1097_eos, rxscan1101_done
+ rxscan1101_scan:
+ set_addr $I10, rxscan1101_loop
+ rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
+ rxscan1101_done:
+.annotate "line", 491
# rx subcapture "sym"
- set_addr $I10, rxcap_1097_fail
- rx1092_cur."!mark_push"(0, rx1092_pos, $I10)
+ set_addr $I10, rxcap_1102_fail
+ rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
# rx literal ">"
- add $I11, rx1092_pos, 1
- gt $I11, rx1092_eos, rx1092_fail
- sub $I11, rx1092_pos, rx1092_off
- substr $S10, rx1092_tgt, $I11, 1
- ne $S10, ">", rx1092_fail
- add rx1092_pos, 1
- set_addr $I10, rxcap_1097_fail
- ($I12, $I11) = rx1092_cur."!mark_peek"($I10)
- rx1092_cur."!cursor_pos"($I11)
- ($P10) = rx1092_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1092_pos, "")
- rx1092_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1097_pos, 1
+ gt $I11, rx1097_eos, rx1097_fail
+ sub $I11, rx1097_pos, rx1097_off
+ substr $S10, rx1097_tgt, $I11, 1
+ ne $S10, ">", rx1097_fail
+ add rx1097_pos, 1
+ set_addr $I10, rxcap_1102_fail
+ ($I12, $I11) = rx1097_cur."!mark_peek"($I10)
+ rx1097_cur."!cursor_pos"($I11)
+ ($P10) = rx1097_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1097_pos, "")
+ rx1097_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1097_done
- rxcap_1097_fail:
- goto rx1092_fail
- rxcap_1097_done:
+ goto rxcap_1102_done
+ rxcap_1102_fail:
+ goto rx1097_fail
+ rxcap_1102_done:
# rx subrule "O" subtype=capture negate=
- rx1092_cur."!cursor_pos"(rx1092_pos)
- $P10 = rx1092_cur."O"("%relational, :pirop<isgt INn>")
- unless $P10, rx1092_fail
- rx1092_cur."!mark_push"(0, -1, 0, $P10)
+ rx1097_cur."!cursor_pos"(rx1097_pos)
+ $P10 = rx1097_cur."O"("%relational, :pirop<isgt INn>")
+ unless $P10, rx1097_fail
+ rx1097_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1092_pos = $P10."pos"()
+ rx1097_pos = $P10."pos"()
# rx pass
- rx1092_cur."!cursor_pass"(rx1092_pos, "infix:sym<>>")
- rx1092_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1092_pos)
- .return (rx1092_cur)
- rx1092_fail:
-.annotate "line", 413
- (rx1092_rep, rx1092_pos, $I10, $P10) = rx1092_cur."!mark_fail"(0)
- lt rx1092_pos, -1, rx1092_done
- eq rx1092_pos, -1, rx1092_fail
+ rx1097_cur."!cursor_pass"(rx1097_pos, "infix:sym<>>")
+ rx1097_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1097_pos)
+ .return (rx1097_cur)
+ rx1097_fail:
+.annotate "line", 417
+ (rx1097_rep, rx1097_pos, $I10, $P10) = rx1097_cur."!mark_fail"(0)
+ lt rx1097_pos, -1, rx1097_done
+ eq rx1097_pos, -1, rx1097_fail
jump $I10
- rx1092_done:
- rx1092_cur."!cursor_fail"()
- rx1092_cur."!cursor_debug"("FAIL ", "infix:sym<>>")
- .return (rx1092_cur)
+ rx1097_done:
+ rx1097_cur."!cursor_fail"()
+ rx1097_cur."!cursor_debug"("FAIL ", "infix:sym<>>")
+ .return (rx1097_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>" :subid("280_1261064023.05912") :method
-.annotate "line", 413
- $P1094 = self."!PREFIX__!subrule"("O", ">")
- new $P1095, "ResizablePMCArray"
- push $P1095, $P1094
- .return ($P1095)
+.sub "!PREFIX__infix:sym<>>" :subid("280_1267204702.05125") :method
+.annotate "line", 417
+ $P1099 = self."!PREFIX__!subrule"("O", ">")
+ new $P1100, "ResizablePMCArray"
+ push $P1100, $P1099
+ .return ($P1100)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>" :subid("281_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1099_tgt
- .local int rx1099_pos
- .local int rx1099_off
- .local int rx1099_eos
- .local int rx1099_rep
- .local pmc rx1099_cur
- (rx1099_cur, rx1099_pos, rx1099_tgt) = self."!cursor_start"()
- rx1099_cur."!cursor_debug"("START ", "infix:sym<eq>")
- .lex unicode:"$\x{a2}", rx1099_cur
- .local pmc match
- .lex "$/", match
- length rx1099_eos, rx1099_tgt
- set rx1099_off, 0
- lt rx1099_pos, 2, rx1099_start
- sub rx1099_off, rx1099_pos, 1
- substr rx1099_tgt, rx1099_tgt, rx1099_off
- rx1099_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1103_done
- goto rxscan1103_scan
- rxscan1103_loop:
- ($P10) = rx1099_cur."from"()
- inc $P10
- set rx1099_pos, $P10
- ge rx1099_pos, rx1099_eos, rxscan1103_done
- rxscan1103_scan:
- set_addr $I10, rxscan1103_loop
- rx1099_cur."!mark_push"(0, rx1099_pos, $I10)
- rxscan1103_done:
-.annotate "line", 488
+.sub "infix:sym<eq>" :subid("281_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1104_tgt
+ .local int rx1104_pos
+ .local int rx1104_off
+ .local int rx1104_eos
+ .local int rx1104_rep
+ .local pmc rx1104_cur
+ (rx1104_cur, rx1104_pos, rx1104_tgt) = self."!cursor_start"()
+ rx1104_cur."!cursor_debug"("START ", "infix:sym<eq>")
+ .lex unicode:"$\x{a2}", rx1104_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1104_eos, rx1104_tgt
+ set rx1104_off, 0
+ lt rx1104_pos, 2, rx1104_start
+ sub rx1104_off, rx1104_pos, 1
+ substr rx1104_tgt, rx1104_tgt, rx1104_off
+ rx1104_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1108_done
+ goto rxscan1108_scan
+ rxscan1108_loop:
+ ($P10) = rx1104_cur."from"()
+ inc $P10
+ set rx1104_pos, $P10
+ ge rx1104_pos, rx1104_eos, rxscan1108_done
+ rxscan1108_scan:
+ set_addr $I10, rxscan1108_loop
+ rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
+ rxscan1108_done:
+.annotate "line", 492
# rx subcapture "sym"
- set_addr $I10, rxcap_1104_fail
- rx1099_cur."!mark_push"(0, rx1099_pos, $I10)
+ set_addr $I10, rxcap_1109_fail
+ rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
# rx literal "eq"
- add $I11, rx1099_pos, 2
- gt $I11, rx1099_eos, rx1099_fail
- sub $I11, rx1099_pos, rx1099_off
- substr $S10, rx1099_tgt, $I11, 2
- ne $S10, "eq", rx1099_fail
- add rx1099_pos, 2
- set_addr $I10, rxcap_1104_fail
- ($I12, $I11) = rx1099_cur."!mark_peek"($I10)
- rx1099_cur."!cursor_pos"($I11)
- ($P10) = rx1099_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1099_pos, "")
- rx1099_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1104_pos, 2
+ gt $I11, rx1104_eos, rx1104_fail
+ sub $I11, rx1104_pos, rx1104_off
+ substr $S10, rx1104_tgt, $I11, 2
+ ne $S10, "eq", rx1104_fail
+ add rx1104_pos, 2
+ set_addr $I10, rxcap_1109_fail
+ ($I12, $I11) = rx1104_cur."!mark_peek"($I10)
+ rx1104_cur."!cursor_pos"($I11)
+ ($P10) = rx1104_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1104_pos, "")
+ rx1104_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1104_done
- rxcap_1104_fail:
- goto rx1099_fail
- rxcap_1104_done:
+ goto rxcap_1109_done
+ rxcap_1109_fail:
+ goto rx1104_fail
+ rxcap_1109_done:
# rx subrule "O" subtype=capture negate=
- rx1099_cur."!cursor_pos"(rx1099_pos)
- $P10 = rx1099_cur."O"("%relational, :pirop<iseq ISs>")
- unless $P10, rx1099_fail
- rx1099_cur."!mark_push"(0, -1, 0, $P10)
+ rx1104_cur."!cursor_pos"(rx1104_pos)
+ $P10 = rx1104_cur."O"("%relational, :pirop<iseq ISs>")
+ unless $P10, rx1104_fail
+ rx1104_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1099_pos = $P10."pos"()
+ rx1104_pos = $P10."pos"()
# rx pass
- rx1099_cur."!cursor_pass"(rx1099_pos, "infix:sym<eq>")
- rx1099_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1099_pos)
- .return (rx1099_cur)
- rx1099_fail:
-.annotate "line", 413
- (rx1099_rep, rx1099_pos, $I10, $P10) = rx1099_cur."!mark_fail"(0)
- lt rx1099_pos, -1, rx1099_done
- eq rx1099_pos, -1, rx1099_fail
+ rx1104_cur."!cursor_pass"(rx1104_pos, "infix:sym<eq>")
+ rx1104_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1104_pos)
+ .return (rx1104_cur)
+ rx1104_fail:
+.annotate "line", 417
+ (rx1104_rep, rx1104_pos, $I10, $P10) = rx1104_cur."!mark_fail"(0)
+ lt rx1104_pos, -1, rx1104_done
+ eq rx1104_pos, -1, rx1104_fail
jump $I10
- rx1099_done:
- rx1099_cur."!cursor_fail"()
- rx1099_cur."!cursor_debug"("FAIL ", "infix:sym<eq>")
- .return (rx1099_cur)
+ rx1104_done:
+ rx1104_cur."!cursor_fail"()
+ rx1104_cur."!cursor_debug"("FAIL ", "infix:sym<eq>")
+ .return (rx1104_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>" :subid("282_1261064023.05912") :method
-.annotate "line", 413
- $P1101 = self."!PREFIX__!subrule"("O", "eq")
- new $P1102, "ResizablePMCArray"
- push $P1102, $P1101
- .return ($P1102)
+.sub "!PREFIX__infix:sym<eq>" :subid("282_1267204702.05125") :method
+.annotate "line", 417
+ $P1106 = self."!PREFIX__!subrule"("O", "eq")
+ new $P1107, "ResizablePMCArray"
+ push $P1107, $P1106
+ .return ($P1107)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>" :subid("283_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1106_tgt
- .local int rx1106_pos
- .local int rx1106_off
- .local int rx1106_eos
- .local int rx1106_rep
- .local pmc rx1106_cur
- (rx1106_cur, rx1106_pos, rx1106_tgt) = self."!cursor_start"()
- rx1106_cur."!cursor_debug"("START ", "infix:sym<ne>")
- .lex unicode:"$\x{a2}", rx1106_cur
- .local pmc match
- .lex "$/", match
- length rx1106_eos, rx1106_tgt
- set rx1106_off, 0
- lt rx1106_pos, 2, rx1106_start
- sub rx1106_off, rx1106_pos, 1
- substr rx1106_tgt, rx1106_tgt, rx1106_off
- rx1106_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1110_done
- goto rxscan1110_scan
- rxscan1110_loop:
- ($P10) = rx1106_cur."from"()
- inc $P10
- set rx1106_pos, $P10
- ge rx1106_pos, rx1106_eos, rxscan1110_done
- rxscan1110_scan:
- set_addr $I10, rxscan1110_loop
- rx1106_cur."!mark_push"(0, rx1106_pos, $I10)
- rxscan1110_done:
-.annotate "line", 489
+.sub "infix:sym<ne>" :subid("283_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1111_tgt
+ .local int rx1111_pos
+ .local int rx1111_off
+ .local int rx1111_eos
+ .local int rx1111_rep
+ .local pmc rx1111_cur
+ (rx1111_cur, rx1111_pos, rx1111_tgt) = self."!cursor_start"()
+ rx1111_cur."!cursor_debug"("START ", "infix:sym<ne>")
+ .lex unicode:"$\x{a2}", rx1111_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1111_eos, rx1111_tgt
+ set rx1111_off, 0
+ lt rx1111_pos, 2, rx1111_start
+ sub rx1111_off, rx1111_pos, 1
+ substr rx1111_tgt, rx1111_tgt, rx1111_off
+ rx1111_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1115_done
+ goto rxscan1115_scan
+ rxscan1115_loop:
+ ($P10) = rx1111_cur."from"()
+ inc $P10
+ set rx1111_pos, $P10
+ ge rx1111_pos, rx1111_eos, rxscan1115_done
+ rxscan1115_scan:
+ set_addr $I10, rxscan1115_loop
+ rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
+ rxscan1115_done:
+.annotate "line", 493
# rx subcapture "sym"
- set_addr $I10, rxcap_1111_fail
- rx1106_cur."!mark_push"(0, rx1106_pos, $I10)
+ set_addr $I10, rxcap_1116_fail
+ rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
# rx literal "ne"
- add $I11, rx1106_pos, 2
- gt $I11, rx1106_eos, rx1106_fail
- sub $I11, rx1106_pos, rx1106_off
- substr $S10, rx1106_tgt, $I11, 2
- ne $S10, "ne", rx1106_fail
- add rx1106_pos, 2
- set_addr $I10, rxcap_1111_fail
- ($I12, $I11) = rx1106_cur."!mark_peek"($I10)
- rx1106_cur."!cursor_pos"($I11)
- ($P10) = rx1106_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1106_pos, "")
- rx1106_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1111_pos, 2
+ gt $I11, rx1111_eos, rx1111_fail
+ sub $I11, rx1111_pos, rx1111_off
+ substr $S10, rx1111_tgt, $I11, 2
+ ne $S10, "ne", rx1111_fail
+ add rx1111_pos, 2
+ set_addr $I10, rxcap_1116_fail
+ ($I12, $I11) = rx1111_cur."!mark_peek"($I10)
+ rx1111_cur."!cursor_pos"($I11)
+ ($P10) = rx1111_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1111_pos, "")
+ rx1111_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1111_done
- rxcap_1111_fail:
- goto rx1106_fail
- rxcap_1111_done:
+ goto rxcap_1116_done
+ rxcap_1116_fail:
+ goto rx1111_fail
+ rxcap_1116_done:
# rx subrule "O" subtype=capture negate=
- rx1106_cur."!cursor_pos"(rx1106_pos)
- $P10 = rx1106_cur."O"("%relational, :pirop<isne ISs>")
- unless $P10, rx1106_fail
- rx1106_cur."!mark_push"(0, -1, 0, $P10)
+ rx1111_cur."!cursor_pos"(rx1111_pos)
+ $P10 = rx1111_cur."O"("%relational, :pirop<isne ISs>")
+ unless $P10, rx1111_fail
+ rx1111_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1106_pos = $P10."pos"()
+ rx1111_pos = $P10."pos"()
# rx pass
- rx1106_cur."!cursor_pass"(rx1106_pos, "infix:sym<ne>")
- rx1106_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1106_pos)
- .return (rx1106_cur)
- rx1106_fail:
-.annotate "line", 413
- (rx1106_rep, rx1106_pos, $I10, $P10) = rx1106_cur."!mark_fail"(0)
- lt rx1106_pos, -1, rx1106_done
- eq rx1106_pos, -1, rx1106_fail
+ rx1111_cur."!cursor_pass"(rx1111_pos, "infix:sym<ne>")
+ rx1111_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1111_pos)
+ .return (rx1111_cur)
+ rx1111_fail:
+.annotate "line", 417
+ (rx1111_rep, rx1111_pos, $I10, $P10) = rx1111_cur."!mark_fail"(0)
+ lt rx1111_pos, -1, rx1111_done
+ eq rx1111_pos, -1, rx1111_fail
jump $I10
- rx1106_done:
- rx1106_cur."!cursor_fail"()
- rx1106_cur."!cursor_debug"("FAIL ", "infix:sym<ne>")
- .return (rx1106_cur)
+ rx1111_done:
+ rx1111_cur."!cursor_fail"()
+ rx1111_cur."!cursor_debug"("FAIL ", "infix:sym<ne>")
+ .return (rx1111_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>" :subid("284_1261064023.05912") :method
-.annotate "line", 413
- $P1108 = self."!PREFIX__!subrule"("O", "ne")
- new $P1109, "ResizablePMCArray"
- push $P1109, $P1108
- .return ($P1109)
+.sub "!PREFIX__infix:sym<ne>" :subid("284_1267204702.05125") :method
+.annotate "line", 417
+ $P1113 = self."!PREFIX__!subrule"("O", "ne")
+ new $P1114, "ResizablePMCArray"
+ push $P1114, $P1113
+ .return ($P1114)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>" :subid("285_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1113_tgt
- .local int rx1113_pos
- .local int rx1113_off
- .local int rx1113_eos
- .local int rx1113_rep
- .local pmc rx1113_cur
- (rx1113_cur, rx1113_pos, rx1113_tgt) = self."!cursor_start"()
- rx1113_cur."!cursor_debug"("START ", "infix:sym<le>")
- .lex unicode:"$\x{a2}", rx1113_cur
- .local pmc match
- .lex "$/", match
- length rx1113_eos, rx1113_tgt
- set rx1113_off, 0
- lt rx1113_pos, 2, rx1113_start
- sub rx1113_off, rx1113_pos, 1
- substr rx1113_tgt, rx1113_tgt, rx1113_off
- rx1113_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1117_done
- goto rxscan1117_scan
- rxscan1117_loop:
- ($P10) = rx1113_cur."from"()
- inc $P10
- set rx1113_pos, $P10
- ge rx1113_pos, rx1113_eos, rxscan1117_done
- rxscan1117_scan:
- set_addr $I10, rxscan1117_loop
- rx1113_cur."!mark_push"(0, rx1113_pos, $I10)
- rxscan1117_done:
-.annotate "line", 490
+.sub "infix:sym<le>" :subid("285_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1118_tgt
+ .local int rx1118_pos
+ .local int rx1118_off
+ .local int rx1118_eos
+ .local int rx1118_rep
+ .local pmc rx1118_cur
+ (rx1118_cur, rx1118_pos, rx1118_tgt) = self."!cursor_start"()
+ rx1118_cur."!cursor_debug"("START ", "infix:sym<le>")
+ .lex unicode:"$\x{a2}", rx1118_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1118_eos, rx1118_tgt
+ set rx1118_off, 0
+ lt rx1118_pos, 2, rx1118_start
+ sub rx1118_off, rx1118_pos, 1
+ substr rx1118_tgt, rx1118_tgt, rx1118_off
+ rx1118_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1122_done
+ goto rxscan1122_scan
+ rxscan1122_loop:
+ ($P10) = rx1118_cur."from"()
+ inc $P10
+ set rx1118_pos, $P10
+ ge rx1118_pos, rx1118_eos, rxscan1122_done
+ rxscan1122_scan:
+ set_addr $I10, rxscan1122_loop
+ rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
+ rxscan1122_done:
+.annotate "line", 494
# rx subcapture "sym"
- set_addr $I10, rxcap_1118_fail
- rx1113_cur."!mark_push"(0, rx1113_pos, $I10)
+ set_addr $I10, rxcap_1123_fail
+ rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
# rx literal "le"
- add $I11, rx1113_pos, 2
- gt $I11, rx1113_eos, rx1113_fail
- sub $I11, rx1113_pos, rx1113_off
- substr $S10, rx1113_tgt, $I11, 2
- ne $S10, "le", rx1113_fail
- add rx1113_pos, 2
- set_addr $I10, rxcap_1118_fail
- ($I12, $I11) = rx1113_cur."!mark_peek"($I10)
- rx1113_cur."!cursor_pos"($I11)
- ($P10) = rx1113_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1113_pos, "")
- rx1113_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1118_pos, 2
+ gt $I11, rx1118_eos, rx1118_fail
+ sub $I11, rx1118_pos, rx1118_off
+ substr $S10, rx1118_tgt, $I11, 2
+ ne $S10, "le", rx1118_fail
+ add rx1118_pos, 2
+ set_addr $I10, rxcap_1123_fail
+ ($I12, $I11) = rx1118_cur."!mark_peek"($I10)
+ rx1118_cur."!cursor_pos"($I11)
+ ($P10) = rx1118_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1118_pos, "")
+ rx1118_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1118_done
- rxcap_1118_fail:
- goto rx1113_fail
- rxcap_1118_done:
+ goto rxcap_1123_done
+ rxcap_1123_fail:
+ goto rx1118_fail
+ rxcap_1123_done:
# rx subrule "O" subtype=capture negate=
- rx1113_cur."!cursor_pos"(rx1113_pos)
- $P10 = rx1113_cur."O"("%relational, :pirop<isle ISs>")
- unless $P10, rx1113_fail
- rx1113_cur."!mark_push"(0, -1, 0, $P10)
+ rx1118_cur."!cursor_pos"(rx1118_pos)
+ $P10 = rx1118_cur."O"("%relational, :pirop<isle ISs>")
+ unless $P10, rx1118_fail
+ rx1118_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1113_pos = $P10."pos"()
+ rx1118_pos = $P10."pos"()
# rx pass
- rx1113_cur."!cursor_pass"(rx1113_pos, "infix:sym<le>")
- rx1113_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1113_pos)
- .return (rx1113_cur)
- rx1113_fail:
-.annotate "line", 413
- (rx1113_rep, rx1113_pos, $I10, $P10) = rx1113_cur."!mark_fail"(0)
- lt rx1113_pos, -1, rx1113_done
- eq rx1113_pos, -1, rx1113_fail
+ rx1118_cur."!cursor_pass"(rx1118_pos, "infix:sym<le>")
+ rx1118_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1118_pos)
+ .return (rx1118_cur)
+ rx1118_fail:
+.annotate "line", 417
+ (rx1118_rep, rx1118_pos, $I10, $P10) = rx1118_cur."!mark_fail"(0)
+ lt rx1118_pos, -1, rx1118_done
+ eq rx1118_pos, -1, rx1118_fail
jump $I10
- rx1113_done:
- rx1113_cur."!cursor_fail"()
- rx1113_cur."!cursor_debug"("FAIL ", "infix:sym<le>")
- .return (rx1113_cur)
+ rx1118_done:
+ rx1118_cur."!cursor_fail"()
+ rx1118_cur."!cursor_debug"("FAIL ", "infix:sym<le>")
+ .return (rx1118_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>" :subid("286_1261064023.05912") :method
-.annotate "line", 413
- $P1115 = self."!PREFIX__!subrule"("O", "le")
- new $P1116, "ResizablePMCArray"
- push $P1116, $P1115
- .return ($P1116)
+.sub "!PREFIX__infix:sym<le>" :subid("286_1267204702.05125") :method
+.annotate "line", 417
+ $P1120 = self."!PREFIX__!subrule"("O", "le")
+ new $P1121, "ResizablePMCArray"
+ push $P1121, $P1120
+ .return ($P1121)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>" :subid("287_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1120_tgt
- .local int rx1120_pos
- .local int rx1120_off
- .local int rx1120_eos
- .local int rx1120_rep
- .local pmc rx1120_cur
- (rx1120_cur, rx1120_pos, rx1120_tgt) = self."!cursor_start"()
- rx1120_cur."!cursor_debug"("START ", "infix:sym<ge>")
- .lex unicode:"$\x{a2}", rx1120_cur
- .local pmc match
- .lex "$/", match
- length rx1120_eos, rx1120_tgt
- set rx1120_off, 0
- lt rx1120_pos, 2, rx1120_start
- sub rx1120_off, rx1120_pos, 1
- substr rx1120_tgt, rx1120_tgt, rx1120_off
- rx1120_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1124_done
- goto rxscan1124_scan
- rxscan1124_loop:
- ($P10) = rx1120_cur."from"()
- inc $P10
- set rx1120_pos, $P10
- ge rx1120_pos, rx1120_eos, rxscan1124_done
- rxscan1124_scan:
- set_addr $I10, rxscan1124_loop
- rx1120_cur."!mark_push"(0, rx1120_pos, $I10)
- rxscan1124_done:
-.annotate "line", 491
+.sub "infix:sym<ge>" :subid("287_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1125_tgt
+ .local int rx1125_pos
+ .local int rx1125_off
+ .local int rx1125_eos
+ .local int rx1125_rep
+ .local pmc rx1125_cur
+ (rx1125_cur, rx1125_pos, rx1125_tgt) = self."!cursor_start"()
+ rx1125_cur."!cursor_debug"("START ", "infix:sym<ge>")
+ .lex unicode:"$\x{a2}", rx1125_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1125_eos, rx1125_tgt
+ set rx1125_off, 0
+ lt rx1125_pos, 2, rx1125_start
+ sub rx1125_off, rx1125_pos, 1
+ substr rx1125_tgt, rx1125_tgt, rx1125_off
+ rx1125_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1129_done
+ goto rxscan1129_scan
+ rxscan1129_loop:
+ ($P10) = rx1125_cur."from"()
+ inc $P10
+ set rx1125_pos, $P10
+ ge rx1125_pos, rx1125_eos, rxscan1129_done
+ rxscan1129_scan:
+ set_addr $I10, rxscan1129_loop
+ rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
+ rxscan1129_done:
+.annotate "line", 495
# rx subcapture "sym"
- set_addr $I10, rxcap_1125_fail
- rx1120_cur."!mark_push"(0, rx1120_pos, $I10)
+ set_addr $I10, rxcap_1130_fail
+ rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
# rx literal "ge"
- add $I11, rx1120_pos, 2
- gt $I11, rx1120_eos, rx1120_fail
- sub $I11, rx1120_pos, rx1120_off
- substr $S10, rx1120_tgt, $I11, 2
- ne $S10, "ge", rx1120_fail
- add rx1120_pos, 2
- set_addr $I10, rxcap_1125_fail
- ($I12, $I11) = rx1120_cur."!mark_peek"($I10)
- rx1120_cur."!cursor_pos"($I11)
- ($P10) = rx1120_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1120_pos, "")
- rx1120_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1125_pos, 2
+ gt $I11, rx1125_eos, rx1125_fail
+ sub $I11, rx1125_pos, rx1125_off
+ substr $S10, rx1125_tgt, $I11, 2
+ ne $S10, "ge", rx1125_fail
+ add rx1125_pos, 2
+ set_addr $I10, rxcap_1130_fail
+ ($I12, $I11) = rx1125_cur."!mark_peek"($I10)
+ rx1125_cur."!cursor_pos"($I11)
+ ($P10) = rx1125_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1125_pos, "")
+ rx1125_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1125_done
- rxcap_1125_fail:
- goto rx1120_fail
- rxcap_1125_done:
+ goto rxcap_1130_done
+ rxcap_1130_fail:
+ goto rx1125_fail
+ rxcap_1130_done:
# rx subrule "O" subtype=capture negate=
- rx1120_cur."!cursor_pos"(rx1120_pos)
- $P10 = rx1120_cur."O"("%relational, :pirop<isge ISs>")
- unless $P10, rx1120_fail
- rx1120_cur."!mark_push"(0, -1, 0, $P10)
+ rx1125_cur."!cursor_pos"(rx1125_pos)
+ $P10 = rx1125_cur."O"("%relational, :pirop<isge ISs>")
+ unless $P10, rx1125_fail
+ rx1125_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1120_pos = $P10."pos"()
+ rx1125_pos = $P10."pos"()
# rx pass
- rx1120_cur."!cursor_pass"(rx1120_pos, "infix:sym<ge>")
- rx1120_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1120_pos)
- .return (rx1120_cur)
- rx1120_fail:
-.annotate "line", 413
- (rx1120_rep, rx1120_pos, $I10, $P10) = rx1120_cur."!mark_fail"(0)
- lt rx1120_pos, -1, rx1120_done
- eq rx1120_pos, -1, rx1120_fail
+ rx1125_cur."!cursor_pass"(rx1125_pos, "infix:sym<ge>")
+ rx1125_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1125_pos)
+ .return (rx1125_cur)
+ rx1125_fail:
+.annotate "line", 417
+ (rx1125_rep, rx1125_pos, $I10, $P10) = rx1125_cur."!mark_fail"(0)
+ lt rx1125_pos, -1, rx1125_done
+ eq rx1125_pos, -1, rx1125_fail
jump $I10
- rx1120_done:
- rx1120_cur."!cursor_fail"()
- rx1120_cur."!cursor_debug"("FAIL ", "infix:sym<ge>")
- .return (rx1120_cur)
+ rx1125_done:
+ rx1125_cur."!cursor_fail"()
+ rx1125_cur."!cursor_debug"("FAIL ", "infix:sym<ge>")
+ .return (rx1125_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>" :subid("288_1261064023.05912") :method
-.annotate "line", 413
- $P1122 = self."!PREFIX__!subrule"("O", "ge")
- new $P1123, "ResizablePMCArray"
- push $P1123, $P1122
- .return ($P1123)
+.sub "!PREFIX__infix:sym<ge>" :subid("288_1267204702.05125") :method
+.annotate "line", 417
+ $P1127 = self."!PREFIX__!subrule"("O", "ge")
+ new $P1128, "ResizablePMCArray"
+ push $P1128, $P1127
+ .return ($P1128)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>" :subid("289_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1127_tgt
- .local int rx1127_pos
- .local int rx1127_off
- .local int rx1127_eos
- .local int rx1127_rep
- .local pmc rx1127_cur
- (rx1127_cur, rx1127_pos, rx1127_tgt) = self."!cursor_start"()
- rx1127_cur."!cursor_debug"("START ", "infix:sym<lt>")
- .lex unicode:"$\x{a2}", rx1127_cur
- .local pmc match
- .lex "$/", match
- length rx1127_eos, rx1127_tgt
- set rx1127_off, 0
- lt rx1127_pos, 2, rx1127_start
- sub rx1127_off, rx1127_pos, 1
- substr rx1127_tgt, rx1127_tgt, rx1127_off
- rx1127_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1131_done
- goto rxscan1131_scan
- rxscan1131_loop:
- ($P10) = rx1127_cur."from"()
- inc $P10
- set rx1127_pos, $P10
- ge rx1127_pos, rx1127_eos, rxscan1131_done
- rxscan1131_scan:
- set_addr $I10, rxscan1131_loop
- rx1127_cur."!mark_push"(0, rx1127_pos, $I10)
- rxscan1131_done:
-.annotate "line", 492
+.sub "infix:sym<lt>" :subid("289_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1132_tgt
+ .local int rx1132_pos
+ .local int rx1132_off
+ .local int rx1132_eos
+ .local int rx1132_rep
+ .local pmc rx1132_cur
+ (rx1132_cur, rx1132_pos, rx1132_tgt) = self."!cursor_start"()
+ rx1132_cur."!cursor_debug"("START ", "infix:sym<lt>")
+ .lex unicode:"$\x{a2}", rx1132_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1132_eos, rx1132_tgt
+ set rx1132_off, 0
+ lt rx1132_pos, 2, rx1132_start
+ sub rx1132_off, rx1132_pos, 1
+ substr rx1132_tgt, rx1132_tgt, rx1132_off
+ rx1132_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1136_done
+ goto rxscan1136_scan
+ rxscan1136_loop:
+ ($P10) = rx1132_cur."from"()
+ inc $P10
+ set rx1132_pos, $P10
+ ge rx1132_pos, rx1132_eos, rxscan1136_done
+ rxscan1136_scan:
+ set_addr $I10, rxscan1136_loop
+ rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
+ rxscan1136_done:
+.annotate "line", 496
# rx subcapture "sym"
- set_addr $I10, rxcap_1132_fail
- rx1127_cur."!mark_push"(0, rx1127_pos, $I10)
+ set_addr $I10, rxcap_1137_fail
+ rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
# rx literal "lt"
- add $I11, rx1127_pos, 2
- gt $I11, rx1127_eos, rx1127_fail
- sub $I11, rx1127_pos, rx1127_off
- substr $S10, rx1127_tgt, $I11, 2
- ne $S10, "lt", rx1127_fail
- add rx1127_pos, 2
- set_addr $I10, rxcap_1132_fail
- ($I12, $I11) = rx1127_cur."!mark_peek"($I10)
- rx1127_cur."!cursor_pos"($I11)
- ($P10) = rx1127_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1127_pos, "")
- rx1127_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1132_pos, 2
+ gt $I11, rx1132_eos, rx1132_fail
+ sub $I11, rx1132_pos, rx1132_off
+ substr $S10, rx1132_tgt, $I11, 2
+ ne $S10, "lt", rx1132_fail
+ add rx1132_pos, 2
+ set_addr $I10, rxcap_1137_fail
+ ($I12, $I11) = rx1132_cur."!mark_peek"($I10)
+ rx1132_cur."!cursor_pos"($I11)
+ ($P10) = rx1132_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1132_pos, "")
+ rx1132_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1132_done
- rxcap_1132_fail:
- goto rx1127_fail
- rxcap_1132_done:
+ goto rxcap_1137_done
+ rxcap_1137_fail:
+ goto rx1132_fail
+ rxcap_1137_done:
# rx subrule "O" subtype=capture negate=
- rx1127_cur."!cursor_pos"(rx1127_pos)
- $P10 = rx1127_cur."O"("%relational, :pirop<islt ISs>")
- unless $P10, rx1127_fail
- rx1127_cur."!mark_push"(0, -1, 0, $P10)
+ rx1132_cur."!cursor_pos"(rx1132_pos)
+ $P10 = rx1132_cur."O"("%relational, :pirop<islt ISs>")
+ unless $P10, rx1132_fail
+ rx1132_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1127_pos = $P10."pos"()
+ rx1132_pos = $P10."pos"()
# rx pass
- rx1127_cur."!cursor_pass"(rx1127_pos, "infix:sym<lt>")
- rx1127_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1127_pos)
- .return (rx1127_cur)
- rx1127_fail:
-.annotate "line", 413
- (rx1127_rep, rx1127_pos, $I10, $P10) = rx1127_cur."!mark_fail"(0)
- lt rx1127_pos, -1, rx1127_done
- eq rx1127_pos, -1, rx1127_fail
+ rx1132_cur."!cursor_pass"(rx1132_pos, "infix:sym<lt>")
+ rx1132_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1132_pos)
+ .return (rx1132_cur)
+ rx1132_fail:
+.annotate "line", 417
+ (rx1132_rep, rx1132_pos, $I10, $P10) = rx1132_cur."!mark_fail"(0)
+ lt rx1132_pos, -1, rx1132_done
+ eq rx1132_pos, -1, rx1132_fail
jump $I10
- rx1127_done:
- rx1127_cur."!cursor_fail"()
- rx1127_cur."!cursor_debug"("FAIL ", "infix:sym<lt>")
- .return (rx1127_cur)
+ rx1132_done:
+ rx1132_cur."!cursor_fail"()
+ rx1132_cur."!cursor_debug"("FAIL ", "infix:sym<lt>")
+ .return (rx1132_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>" :subid("290_1261064023.05912") :method
-.annotate "line", 413
- $P1129 = self."!PREFIX__!subrule"("O", "lt")
- new $P1130, "ResizablePMCArray"
- push $P1130, $P1129
- .return ($P1130)
+.sub "!PREFIX__infix:sym<lt>" :subid("290_1267204702.05125") :method
+.annotate "line", 417
+ $P1134 = self."!PREFIX__!subrule"("O", "lt")
+ new $P1135, "ResizablePMCArray"
+ push $P1135, $P1134
+ .return ($P1135)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>" :subid("291_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1134_tgt
- .local int rx1134_pos
- .local int rx1134_off
- .local int rx1134_eos
- .local int rx1134_rep
- .local pmc rx1134_cur
- (rx1134_cur, rx1134_pos, rx1134_tgt) = self."!cursor_start"()
- rx1134_cur."!cursor_debug"("START ", "infix:sym<gt>")
- .lex unicode:"$\x{a2}", rx1134_cur
- .local pmc match
- .lex "$/", match
- length rx1134_eos, rx1134_tgt
- set rx1134_off, 0
- lt rx1134_pos, 2, rx1134_start
- sub rx1134_off, rx1134_pos, 1
- substr rx1134_tgt, rx1134_tgt, rx1134_off
- rx1134_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1138_done
- goto rxscan1138_scan
- rxscan1138_loop:
- ($P10) = rx1134_cur."from"()
- inc $P10
- set rx1134_pos, $P10
- ge rx1134_pos, rx1134_eos, rxscan1138_done
- rxscan1138_scan:
- set_addr $I10, rxscan1138_loop
- rx1134_cur."!mark_push"(0, rx1134_pos, $I10)
- rxscan1138_done:
-.annotate "line", 493
+.sub "infix:sym<gt>" :subid("291_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1139_tgt
+ .local int rx1139_pos
+ .local int rx1139_off
+ .local int rx1139_eos
+ .local int rx1139_rep
+ .local pmc rx1139_cur
+ (rx1139_cur, rx1139_pos, rx1139_tgt) = self."!cursor_start"()
+ rx1139_cur."!cursor_debug"("START ", "infix:sym<gt>")
+ .lex unicode:"$\x{a2}", rx1139_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1139_eos, rx1139_tgt
+ set rx1139_off, 0
+ lt rx1139_pos, 2, rx1139_start
+ sub rx1139_off, rx1139_pos, 1
+ substr rx1139_tgt, rx1139_tgt, rx1139_off
+ rx1139_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1143_done
+ goto rxscan1143_scan
+ rxscan1143_loop:
+ ($P10) = rx1139_cur."from"()
+ inc $P10
+ set rx1139_pos, $P10
+ ge rx1139_pos, rx1139_eos, rxscan1143_done
+ rxscan1143_scan:
+ set_addr $I10, rxscan1143_loop
+ rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
+ rxscan1143_done:
+.annotate "line", 497
# rx subcapture "sym"
- set_addr $I10, rxcap_1139_fail
- rx1134_cur."!mark_push"(0, rx1134_pos, $I10)
+ set_addr $I10, rxcap_1144_fail
+ rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
# rx literal "gt"
- add $I11, rx1134_pos, 2
- gt $I11, rx1134_eos, rx1134_fail
- sub $I11, rx1134_pos, rx1134_off
- substr $S10, rx1134_tgt, $I11, 2
- ne $S10, "gt", rx1134_fail
- add rx1134_pos, 2
- set_addr $I10, rxcap_1139_fail
- ($I12, $I11) = rx1134_cur."!mark_peek"($I10)
- rx1134_cur."!cursor_pos"($I11)
- ($P10) = rx1134_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1134_pos, "")
- rx1134_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1139_pos, 2
+ gt $I11, rx1139_eos, rx1139_fail
+ sub $I11, rx1139_pos, rx1139_off
+ substr $S10, rx1139_tgt, $I11, 2
+ ne $S10, "gt", rx1139_fail
+ add rx1139_pos, 2
+ set_addr $I10, rxcap_1144_fail
+ ($I12, $I11) = rx1139_cur."!mark_peek"($I10)
+ rx1139_cur."!cursor_pos"($I11)
+ ($P10) = rx1139_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1139_pos, "")
+ rx1139_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1139_done
- rxcap_1139_fail:
- goto rx1134_fail
- rxcap_1139_done:
+ goto rxcap_1144_done
+ rxcap_1144_fail:
+ goto rx1139_fail
+ rxcap_1144_done:
# rx subrule "O" subtype=capture negate=
- rx1134_cur."!cursor_pos"(rx1134_pos)
- $P10 = rx1134_cur."O"("%relational, :pirop<isgt ISs>")
- unless $P10, rx1134_fail
- rx1134_cur."!mark_push"(0, -1, 0, $P10)
+ rx1139_cur."!cursor_pos"(rx1139_pos)
+ $P10 = rx1139_cur."O"("%relational, :pirop<isgt ISs>")
+ unless $P10, rx1139_fail
+ rx1139_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1134_pos = $P10."pos"()
+ rx1139_pos = $P10."pos"()
# rx pass
- rx1134_cur."!cursor_pass"(rx1134_pos, "infix:sym<gt>")
- rx1134_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1134_pos)
- .return (rx1134_cur)
- rx1134_fail:
-.annotate "line", 413
- (rx1134_rep, rx1134_pos, $I10, $P10) = rx1134_cur."!mark_fail"(0)
- lt rx1134_pos, -1, rx1134_done
- eq rx1134_pos, -1, rx1134_fail
+ rx1139_cur."!cursor_pass"(rx1139_pos, "infix:sym<gt>")
+ rx1139_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1139_pos)
+ .return (rx1139_cur)
+ rx1139_fail:
+.annotate "line", 417
+ (rx1139_rep, rx1139_pos, $I10, $P10) = rx1139_cur."!mark_fail"(0)
+ lt rx1139_pos, -1, rx1139_done
+ eq rx1139_pos, -1, rx1139_fail
jump $I10
- rx1134_done:
- rx1134_cur."!cursor_fail"()
- rx1134_cur."!cursor_debug"("FAIL ", "infix:sym<gt>")
- .return (rx1134_cur)
+ rx1139_done:
+ rx1139_cur."!cursor_fail"()
+ rx1139_cur."!cursor_debug"("FAIL ", "infix:sym<gt>")
+ .return (rx1139_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>" :subid("292_1261064023.05912") :method
-.annotate "line", 413
- $P1136 = self."!PREFIX__!subrule"("O", "gt")
- new $P1137, "ResizablePMCArray"
- push $P1137, $P1136
- .return ($P1137)
+.sub "!PREFIX__infix:sym<gt>" :subid("292_1267204702.05125") :method
+.annotate "line", 417
+ $P1141 = self."!PREFIX__!subrule"("O", "gt")
+ new $P1142, "ResizablePMCArray"
+ push $P1142, $P1141
+ .return ($P1142)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>" :subid("293_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1141_tgt
- .local int rx1141_pos
- .local int rx1141_off
- .local int rx1141_eos
- .local int rx1141_rep
- .local pmc rx1141_cur
- (rx1141_cur, rx1141_pos, rx1141_tgt) = self."!cursor_start"()
- rx1141_cur."!cursor_debug"("START ", "infix:sym<=:=>")
- .lex unicode:"$\x{a2}", rx1141_cur
- .local pmc match
- .lex "$/", match
- length rx1141_eos, rx1141_tgt
- set rx1141_off, 0
- lt rx1141_pos, 2, rx1141_start
- sub rx1141_off, rx1141_pos, 1
- substr rx1141_tgt, rx1141_tgt, rx1141_off
- rx1141_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1145_done
- goto rxscan1145_scan
- rxscan1145_loop:
- ($P10) = rx1141_cur."from"()
- inc $P10
- set rx1141_pos, $P10
- ge rx1141_pos, rx1141_eos, rxscan1145_done
- rxscan1145_scan:
- set_addr $I10, rxscan1145_loop
- rx1141_cur."!mark_push"(0, rx1141_pos, $I10)
- rxscan1145_done:
-.annotate "line", 494
+.sub "infix:sym<=:=>" :subid("293_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1146_tgt
+ .local int rx1146_pos
+ .local int rx1146_off
+ .local int rx1146_eos
+ .local int rx1146_rep
+ .local pmc rx1146_cur
+ (rx1146_cur, rx1146_pos, rx1146_tgt) = self."!cursor_start"()
+ rx1146_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+ .lex unicode:"$\x{a2}", rx1146_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1146_eos, rx1146_tgt
+ set rx1146_off, 0
+ lt rx1146_pos, 2, rx1146_start
+ sub rx1146_off, rx1146_pos, 1
+ substr rx1146_tgt, rx1146_tgt, rx1146_off
+ rx1146_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1150_done
+ goto rxscan1150_scan
+ rxscan1150_loop:
+ ($P10) = rx1146_cur."from"()
+ inc $P10
+ set rx1146_pos, $P10
+ ge rx1146_pos, rx1146_eos, rxscan1150_done
+ rxscan1150_scan:
+ set_addr $I10, rxscan1150_loop
+ rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
+ rxscan1150_done:
+.annotate "line", 498
# rx subcapture "sym"
- set_addr $I10, rxcap_1146_fail
- rx1141_cur."!mark_push"(0, rx1141_pos, $I10)
+ set_addr $I10, rxcap_1151_fail
+ rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
# rx literal "=:="
- add $I11, rx1141_pos, 3
- gt $I11, rx1141_eos, rx1141_fail
- sub $I11, rx1141_pos, rx1141_off
- substr $S10, rx1141_tgt, $I11, 3
- ne $S10, "=:=", rx1141_fail
- add rx1141_pos, 3
- set_addr $I10, rxcap_1146_fail
- ($I12, $I11) = rx1141_cur."!mark_peek"($I10)
- rx1141_cur."!cursor_pos"($I11)
- ($P10) = rx1141_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1141_pos, "")
- rx1141_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1146_pos, 3
+ gt $I11, rx1146_eos, rx1146_fail
+ sub $I11, rx1146_pos, rx1146_off
+ substr $S10, rx1146_tgt, $I11, 3
+ ne $S10, "=:=", rx1146_fail
+ add rx1146_pos, 3
+ set_addr $I10, rxcap_1151_fail
+ ($I12, $I11) = rx1146_cur."!mark_peek"($I10)
+ rx1146_cur."!cursor_pos"($I11)
+ ($P10) = rx1146_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1146_pos, "")
+ rx1146_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1146_done
- rxcap_1146_fail:
- goto rx1141_fail
- rxcap_1146_done:
+ goto rxcap_1151_done
+ rxcap_1151_fail:
+ goto rx1146_fail
+ rxcap_1151_done:
# rx subrule "O" subtype=capture negate=
- rx1141_cur."!cursor_pos"(rx1141_pos)
- $P10 = rx1141_cur."O"("%relational, :pirop<issame>")
- unless $P10, rx1141_fail
- rx1141_cur."!mark_push"(0, -1, 0, $P10)
+ rx1146_cur."!cursor_pos"(rx1146_pos)
+ $P10 = rx1146_cur."O"("%relational, :pirop<issame>")
+ unless $P10, rx1146_fail
+ rx1146_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1141_pos = $P10."pos"()
+ rx1146_pos = $P10."pos"()
# rx pass
- rx1141_cur."!cursor_pass"(rx1141_pos, "infix:sym<=:=>")
- rx1141_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1141_pos)
- .return (rx1141_cur)
- rx1141_fail:
-.annotate "line", 413
- (rx1141_rep, rx1141_pos, $I10, $P10) = rx1141_cur."!mark_fail"(0)
- lt rx1141_pos, -1, rx1141_done
- eq rx1141_pos, -1, rx1141_fail
+ rx1146_cur."!cursor_pass"(rx1146_pos, "infix:sym<=:=>")
+ rx1146_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1146_pos)
+ .return (rx1146_cur)
+ rx1146_fail:
+.annotate "line", 417
+ (rx1146_rep, rx1146_pos, $I10, $P10) = rx1146_cur."!mark_fail"(0)
+ lt rx1146_pos, -1, rx1146_done
+ eq rx1146_pos, -1, rx1146_fail
jump $I10
- rx1141_done:
- rx1141_cur."!cursor_fail"()
- rx1141_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>")
- .return (rx1141_cur)
+ rx1146_done:
+ rx1146_cur."!cursor_fail"()
+ rx1146_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>")
+ .return (rx1146_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>" :subid("294_1261064023.05912") :method
-.annotate "line", 413
- $P1143 = self."!PREFIX__!subrule"("O", "=:=")
- new $P1144, "ResizablePMCArray"
- push $P1144, $P1143
- .return ($P1144)
+.sub "!PREFIX__infix:sym<=:=>" :subid("294_1267204702.05125") :method
+.annotate "line", 417
+ $P1148 = self."!PREFIX__!subrule"("O", "=:=")
+ new $P1149, "ResizablePMCArray"
+ push $P1149, $P1148
+ .return ($P1149)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>" :subid("295_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1148_tgt
- .local int rx1148_pos
- .local int rx1148_off
- .local int rx1148_eos
- .local int rx1148_rep
- .local pmc rx1148_cur
- (rx1148_cur, rx1148_pos, rx1148_tgt) = self."!cursor_start"()
- rx1148_cur."!cursor_debug"("START ", "infix:sym<~~>")
- .lex unicode:"$\x{a2}", rx1148_cur
- .local pmc match
- .lex "$/", match
- length rx1148_eos, rx1148_tgt
- set rx1148_off, 0
- lt rx1148_pos, 2, rx1148_start
- sub rx1148_off, rx1148_pos, 1
- substr rx1148_tgt, rx1148_tgt, rx1148_off
- rx1148_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1152_done
- goto rxscan1152_scan
- rxscan1152_loop:
- ($P10) = rx1148_cur."from"()
- inc $P10
- set rx1148_pos, $P10
- ge rx1148_pos, rx1148_eos, rxscan1152_done
- rxscan1152_scan:
- set_addr $I10, rxscan1152_loop
- rx1148_cur."!mark_push"(0, rx1148_pos, $I10)
- rxscan1152_done:
-.annotate "line", 495
+.sub "infix:sym<~~>" :subid("295_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1153_tgt
+ .local int rx1153_pos
+ .local int rx1153_off
+ .local int rx1153_eos
+ .local int rx1153_rep
+ .local pmc rx1153_cur
+ (rx1153_cur, rx1153_pos, rx1153_tgt) = self."!cursor_start"()
+ rx1153_cur."!cursor_debug"("START ", "infix:sym<~~>")
+ .lex unicode:"$\x{a2}", rx1153_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1153_eos, rx1153_tgt
+ set rx1153_off, 0
+ lt rx1153_pos, 2, rx1153_start
+ sub rx1153_off, rx1153_pos, 1
+ substr rx1153_tgt, rx1153_tgt, rx1153_off
+ rx1153_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1157_done
+ goto rxscan1157_scan
+ rxscan1157_loop:
+ ($P10) = rx1153_cur."from"()
+ inc $P10
+ set rx1153_pos, $P10
+ ge rx1153_pos, rx1153_eos, rxscan1157_done
+ rxscan1157_scan:
+ set_addr $I10, rxscan1157_loop
+ rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
+ rxscan1157_done:
+.annotate "line", 499
# rx subcapture "sym"
- set_addr $I10, rxcap_1153_fail
- rx1148_cur."!mark_push"(0, rx1148_pos, $I10)
+ set_addr $I10, rxcap_1158_fail
+ rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
# rx literal "~~"
- add $I11, rx1148_pos, 2
- gt $I11, rx1148_eos, rx1148_fail
- sub $I11, rx1148_pos, rx1148_off
- substr $S10, rx1148_tgt, $I11, 2
- ne $S10, "~~", rx1148_fail
- add rx1148_pos, 2
- set_addr $I10, rxcap_1153_fail
- ($I12, $I11) = rx1148_cur."!mark_peek"($I10)
- rx1148_cur."!cursor_pos"($I11)
- ($P10) = rx1148_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1148_pos, "")
- rx1148_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1153_pos, 2
+ gt $I11, rx1153_eos, rx1153_fail
+ sub $I11, rx1153_pos, rx1153_off
+ substr $S10, rx1153_tgt, $I11, 2
+ ne $S10, "~~", rx1153_fail
+ add rx1153_pos, 2
+ set_addr $I10, rxcap_1158_fail
+ ($I12, $I11) = rx1153_cur."!mark_peek"($I10)
+ rx1153_cur."!cursor_pos"($I11)
+ ($P10) = rx1153_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1153_pos, "")
+ rx1153_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1153_done
- rxcap_1153_fail:
- goto rx1148_fail
- rxcap_1153_done:
+ goto rxcap_1158_done
+ rxcap_1158_fail:
+ goto rx1153_fail
+ rxcap_1158_done:
# rx subrule "O" subtype=capture negate=
- rx1148_cur."!cursor_pos"(rx1148_pos)
- $P10 = rx1148_cur."O"("%relational, :reducecheck<smartmatch>")
- unless $P10, rx1148_fail
- rx1148_cur."!mark_push"(0, -1, 0, $P10)
+ rx1153_cur."!cursor_pos"(rx1153_pos)
+ $P10 = rx1153_cur."O"("%relational, :reducecheck<smartmatch>")
+ unless $P10, rx1153_fail
+ rx1153_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1148_pos = $P10."pos"()
+ rx1153_pos = $P10."pos"()
# rx pass
- rx1148_cur."!cursor_pass"(rx1148_pos, "infix:sym<~~>")
- rx1148_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1148_pos)
- .return (rx1148_cur)
- rx1148_fail:
-.annotate "line", 413
- (rx1148_rep, rx1148_pos, $I10, $P10) = rx1148_cur."!mark_fail"(0)
- lt rx1148_pos, -1, rx1148_done
- eq rx1148_pos, -1, rx1148_fail
+ rx1153_cur."!cursor_pass"(rx1153_pos, "infix:sym<~~>")
+ rx1153_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1153_pos)
+ .return (rx1153_cur)
+ rx1153_fail:
+.annotate "line", 417
+ (rx1153_rep, rx1153_pos, $I10, $P10) = rx1153_cur."!mark_fail"(0)
+ lt rx1153_pos, -1, rx1153_done
+ eq rx1153_pos, -1, rx1153_fail
jump $I10
- rx1148_done:
- rx1148_cur."!cursor_fail"()
- rx1148_cur."!cursor_debug"("FAIL ", "infix:sym<~~>")
- .return (rx1148_cur)
+ rx1153_done:
+ rx1153_cur."!cursor_fail"()
+ rx1153_cur."!cursor_debug"("FAIL ", "infix:sym<~~>")
+ .return (rx1153_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>" :subid("296_1261064023.05912") :method
-.annotate "line", 413
- $P1150 = self."!PREFIX__!subrule"("O", "~~")
- new $P1151, "ResizablePMCArray"
- push $P1151, $P1150
- .return ($P1151)
+.sub "!PREFIX__infix:sym<~~>" :subid("296_1267204702.05125") :method
+.annotate "line", 417
+ $P1155 = self."!PREFIX__!subrule"("O", "~~")
+ new $P1156, "ResizablePMCArray"
+ push $P1156, $P1155
+ .return ($P1156)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>" :subid("297_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1155_tgt
- .local int rx1155_pos
- .local int rx1155_off
- .local int rx1155_eos
- .local int rx1155_rep
- .local pmc rx1155_cur
- (rx1155_cur, rx1155_pos, rx1155_tgt) = self."!cursor_start"()
- rx1155_cur."!cursor_debug"("START ", "infix:sym<&&>")
- .lex unicode:"$\x{a2}", rx1155_cur
- .local pmc match
- .lex "$/", match
- length rx1155_eos, rx1155_tgt
- set rx1155_off, 0
- lt rx1155_pos, 2, rx1155_start
- sub rx1155_off, rx1155_pos, 1
- substr rx1155_tgt, rx1155_tgt, rx1155_off
- rx1155_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1159_done
- goto rxscan1159_scan
- rxscan1159_loop:
- ($P10) = rx1155_cur."from"()
- inc $P10
- set rx1155_pos, $P10
- ge rx1155_pos, rx1155_eos, rxscan1159_done
- rxscan1159_scan:
- set_addr $I10, rxscan1159_loop
- rx1155_cur."!mark_push"(0, rx1155_pos, $I10)
- rxscan1159_done:
-.annotate "line", 497
+.sub "infix:sym<&&>" :subid("297_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1160_tgt
+ .local int rx1160_pos
+ .local int rx1160_off
+ .local int rx1160_eos
+ .local int rx1160_rep
+ .local pmc rx1160_cur
+ (rx1160_cur, rx1160_pos, rx1160_tgt) = self."!cursor_start"()
+ rx1160_cur."!cursor_debug"("START ", "infix:sym<&&>")
+ .lex unicode:"$\x{a2}", rx1160_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1160_eos, rx1160_tgt
+ set rx1160_off, 0
+ lt rx1160_pos, 2, rx1160_start
+ sub rx1160_off, rx1160_pos, 1
+ substr rx1160_tgt, rx1160_tgt, rx1160_off
+ rx1160_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1164_done
+ goto rxscan1164_scan
+ rxscan1164_loop:
+ ($P10) = rx1160_cur."from"()
+ inc $P10
+ set rx1160_pos, $P10
+ ge rx1160_pos, rx1160_eos, rxscan1164_done
+ rxscan1164_scan:
+ set_addr $I10, rxscan1164_loop
+ rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
+ rxscan1164_done:
+.annotate "line", 501
# rx subcapture "sym"
- set_addr $I10, rxcap_1160_fail
- rx1155_cur."!mark_push"(0, rx1155_pos, $I10)
+ set_addr $I10, rxcap_1165_fail
+ rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
# rx literal "&&"
- add $I11, rx1155_pos, 2
- gt $I11, rx1155_eos, rx1155_fail
- sub $I11, rx1155_pos, rx1155_off
- substr $S10, rx1155_tgt, $I11, 2
- ne $S10, "&&", rx1155_fail
- add rx1155_pos, 2
- set_addr $I10, rxcap_1160_fail
- ($I12, $I11) = rx1155_cur."!mark_peek"($I10)
- rx1155_cur."!cursor_pos"($I11)
- ($P10) = rx1155_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1155_pos, "")
- rx1155_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1160_pos, 2
+ gt $I11, rx1160_eos, rx1160_fail
+ sub $I11, rx1160_pos, rx1160_off
+ substr $S10, rx1160_tgt, $I11, 2
+ ne $S10, "&&", rx1160_fail
+ add rx1160_pos, 2
+ set_addr $I10, rxcap_1165_fail
+ ($I12, $I11) = rx1160_cur."!mark_peek"($I10)
+ rx1160_cur."!cursor_pos"($I11)
+ ($P10) = rx1160_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1160_pos, "")
+ rx1160_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1160_done
- rxcap_1160_fail:
- goto rx1155_fail
- rxcap_1160_done:
+ goto rxcap_1165_done
+ rxcap_1165_fail:
+ goto rx1160_fail
+ rxcap_1165_done:
# rx subrule "O" subtype=capture negate=
- rx1155_cur."!cursor_pos"(rx1155_pos)
- $P10 = rx1155_cur."O"("%tight_and, :pasttype<if>")
- unless $P10, rx1155_fail
- rx1155_cur."!mark_push"(0, -1, 0, $P10)
+ rx1160_cur."!cursor_pos"(rx1160_pos)
+ $P10 = rx1160_cur."O"("%tight_and, :pasttype<if>")
+ unless $P10, rx1160_fail
+ rx1160_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1155_pos = $P10."pos"()
+ rx1160_pos = $P10."pos"()
# rx pass
- rx1155_cur."!cursor_pass"(rx1155_pos, "infix:sym<&&>")
- rx1155_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1155_pos)
- .return (rx1155_cur)
- rx1155_fail:
-.annotate "line", 413
- (rx1155_rep, rx1155_pos, $I10, $P10) = rx1155_cur."!mark_fail"(0)
- lt rx1155_pos, -1, rx1155_done
- eq rx1155_pos, -1, rx1155_fail
+ rx1160_cur."!cursor_pass"(rx1160_pos, "infix:sym<&&>")
+ rx1160_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1160_pos)
+ .return (rx1160_cur)
+ rx1160_fail:
+.annotate "line", 417
+ (rx1160_rep, rx1160_pos, $I10, $P10) = rx1160_cur."!mark_fail"(0)
+ lt rx1160_pos, -1, rx1160_done
+ eq rx1160_pos, -1, rx1160_fail
jump $I10
- rx1155_done:
- rx1155_cur."!cursor_fail"()
- rx1155_cur."!cursor_debug"("FAIL ", "infix:sym<&&>")
- .return (rx1155_cur)
+ rx1160_done:
+ rx1160_cur."!cursor_fail"()
+ rx1160_cur."!cursor_debug"("FAIL ", "infix:sym<&&>")
+ .return (rx1160_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>" :subid("298_1261064023.05912") :method
-.annotate "line", 413
- $P1157 = self."!PREFIX__!subrule"("O", "&&")
- new $P1158, "ResizablePMCArray"
- push $P1158, $P1157
- .return ($P1158)
+.sub "!PREFIX__infix:sym<&&>" :subid("298_1267204702.05125") :method
+.annotate "line", 417
+ $P1162 = self."!PREFIX__!subrule"("O", "&&")
+ new $P1163, "ResizablePMCArray"
+ push $P1163, $P1162
+ .return ($P1163)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>" :subid("299_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1162_tgt
- .local int rx1162_pos
- .local int rx1162_off
- .local int rx1162_eos
- .local int rx1162_rep
- .local pmc rx1162_cur
- (rx1162_cur, rx1162_pos, rx1162_tgt) = self."!cursor_start"()
- rx1162_cur."!cursor_debug"("START ", "infix:sym<||>")
- .lex unicode:"$\x{a2}", rx1162_cur
- .local pmc match
- .lex "$/", match
- length rx1162_eos, rx1162_tgt
- set rx1162_off, 0
- lt rx1162_pos, 2, rx1162_start
- sub rx1162_off, rx1162_pos, 1
- substr rx1162_tgt, rx1162_tgt, rx1162_off
- rx1162_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1166_done
- goto rxscan1166_scan
- rxscan1166_loop:
- ($P10) = rx1162_cur."from"()
- inc $P10
- set rx1162_pos, $P10
- ge rx1162_pos, rx1162_eos, rxscan1166_done
- rxscan1166_scan:
- set_addr $I10, rxscan1166_loop
- rx1162_cur."!mark_push"(0, rx1162_pos, $I10)
- rxscan1166_done:
-.annotate "line", 499
+.sub "infix:sym<||>" :subid("299_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1167_tgt
+ .local int rx1167_pos
+ .local int rx1167_off
+ .local int rx1167_eos
+ .local int rx1167_rep
+ .local pmc rx1167_cur
+ (rx1167_cur, rx1167_pos, rx1167_tgt) = self."!cursor_start"()
+ rx1167_cur."!cursor_debug"("START ", "infix:sym<||>")
+ .lex unicode:"$\x{a2}", rx1167_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1167_eos, rx1167_tgt
+ set rx1167_off, 0
+ lt rx1167_pos, 2, rx1167_start
+ sub rx1167_off, rx1167_pos, 1
+ substr rx1167_tgt, rx1167_tgt, rx1167_off
+ rx1167_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1171_done
+ goto rxscan1171_scan
+ rxscan1171_loop:
+ ($P10) = rx1167_cur."from"()
+ inc $P10
+ set rx1167_pos, $P10
+ ge rx1167_pos, rx1167_eos, rxscan1171_done
+ rxscan1171_scan:
+ set_addr $I10, rxscan1171_loop
+ rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
+ rxscan1171_done:
+.annotate "line", 503
# rx subcapture "sym"
- set_addr $I10, rxcap_1167_fail
- rx1162_cur."!mark_push"(0, rx1162_pos, $I10)
+ set_addr $I10, rxcap_1172_fail
+ rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
# rx literal "||"
- add $I11, rx1162_pos, 2
- gt $I11, rx1162_eos, rx1162_fail
- sub $I11, rx1162_pos, rx1162_off
- substr $S10, rx1162_tgt, $I11, 2
- ne $S10, "||", rx1162_fail
- add rx1162_pos, 2
- set_addr $I10, rxcap_1167_fail
- ($I12, $I11) = rx1162_cur."!mark_peek"($I10)
- rx1162_cur."!cursor_pos"($I11)
- ($P10) = rx1162_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1162_pos, "")
- rx1162_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1167_pos, 2
+ gt $I11, rx1167_eos, rx1167_fail
+ sub $I11, rx1167_pos, rx1167_off
+ substr $S10, rx1167_tgt, $I11, 2
+ ne $S10, "||", rx1167_fail
+ add rx1167_pos, 2
+ set_addr $I10, rxcap_1172_fail
+ ($I12, $I11) = rx1167_cur."!mark_peek"($I10)
+ rx1167_cur."!cursor_pos"($I11)
+ ($P10) = rx1167_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1167_pos, "")
+ rx1167_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1167_done
- rxcap_1167_fail:
- goto rx1162_fail
- rxcap_1167_done:
+ goto rxcap_1172_done
+ rxcap_1172_fail:
+ goto rx1167_fail
+ rxcap_1172_done:
# rx subrule "O" subtype=capture negate=
- rx1162_cur."!cursor_pos"(rx1162_pos)
- $P10 = rx1162_cur."O"("%tight_or, :pasttype<unless>")
- unless $P10, rx1162_fail
- rx1162_cur."!mark_push"(0, -1, 0, $P10)
+ rx1167_cur."!cursor_pos"(rx1167_pos)
+ $P10 = rx1167_cur."O"("%tight_or, :pasttype<unless>")
+ unless $P10, rx1167_fail
+ rx1167_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1162_pos = $P10."pos"()
+ rx1167_pos = $P10."pos"()
# rx pass
- rx1162_cur."!cursor_pass"(rx1162_pos, "infix:sym<||>")
- rx1162_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1162_pos)
- .return (rx1162_cur)
- rx1162_fail:
-.annotate "line", 413
- (rx1162_rep, rx1162_pos, $I10, $P10) = rx1162_cur."!mark_fail"(0)
- lt rx1162_pos, -1, rx1162_done
- eq rx1162_pos, -1, rx1162_fail
+ rx1167_cur."!cursor_pass"(rx1167_pos, "infix:sym<||>")
+ rx1167_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1167_pos)
+ .return (rx1167_cur)
+ rx1167_fail:
+.annotate "line", 417
+ (rx1167_rep, rx1167_pos, $I10, $P10) = rx1167_cur."!mark_fail"(0)
+ lt rx1167_pos, -1, rx1167_done
+ eq rx1167_pos, -1, rx1167_fail
jump $I10
- rx1162_done:
- rx1162_cur."!cursor_fail"()
- rx1162_cur."!cursor_debug"("FAIL ", "infix:sym<||>")
- .return (rx1162_cur)
+ rx1167_done:
+ rx1167_cur."!cursor_fail"()
+ rx1167_cur."!cursor_debug"("FAIL ", "infix:sym<||>")
+ .return (rx1167_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>" :subid("300_1261064023.05912") :method
-.annotate "line", 413
- $P1164 = self."!PREFIX__!subrule"("O", "||")
- new $P1165, "ResizablePMCArray"
- push $P1165, $P1164
- .return ($P1165)
+.sub "!PREFIX__infix:sym<||>" :subid("300_1267204702.05125") :method
+.annotate "line", 417
+ $P1169 = self."!PREFIX__!subrule"("O", "||")
+ new $P1170, "ResizablePMCArray"
+ push $P1170, $P1169
+ .return ($P1170)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>" :subid("301_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1169_tgt
- .local int rx1169_pos
- .local int rx1169_off
- .local int rx1169_eos
- .local int rx1169_rep
- .local pmc rx1169_cur
- (rx1169_cur, rx1169_pos, rx1169_tgt) = self."!cursor_start"()
- rx1169_cur."!cursor_debug"("START ", "infix:sym<//>")
- .lex unicode:"$\x{a2}", rx1169_cur
- .local pmc match
- .lex "$/", match
- length rx1169_eos, rx1169_tgt
- set rx1169_off, 0
- lt rx1169_pos, 2, rx1169_start
- sub rx1169_off, rx1169_pos, 1
- substr rx1169_tgt, rx1169_tgt, rx1169_off
- rx1169_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1173_done
- goto rxscan1173_scan
- rxscan1173_loop:
- ($P10) = rx1169_cur."from"()
- inc $P10
- set rx1169_pos, $P10
- ge rx1169_pos, rx1169_eos, rxscan1173_done
- rxscan1173_scan:
- set_addr $I10, rxscan1173_loop
- rx1169_cur."!mark_push"(0, rx1169_pos, $I10)
- rxscan1173_done:
-.annotate "line", 500
+.sub "infix:sym<//>" :subid("301_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1174_tgt
+ .local int rx1174_pos
+ .local int rx1174_off
+ .local int rx1174_eos
+ .local int rx1174_rep
+ .local pmc rx1174_cur
+ (rx1174_cur, rx1174_pos, rx1174_tgt) = self."!cursor_start"()
+ rx1174_cur."!cursor_debug"("START ", "infix:sym<//>")
+ .lex unicode:"$\x{a2}", rx1174_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1174_eos, rx1174_tgt
+ set rx1174_off, 0
+ lt rx1174_pos, 2, rx1174_start
+ sub rx1174_off, rx1174_pos, 1
+ substr rx1174_tgt, rx1174_tgt, rx1174_off
+ rx1174_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1178_done
+ goto rxscan1178_scan
+ rxscan1178_loop:
+ ($P10) = rx1174_cur."from"()
+ inc $P10
+ set rx1174_pos, $P10
+ ge rx1174_pos, rx1174_eos, rxscan1178_done
+ rxscan1178_scan:
+ set_addr $I10, rxscan1178_loop
+ rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
+ rxscan1178_done:
+.annotate "line", 504
# rx subcapture "sym"
- set_addr $I10, rxcap_1174_fail
- rx1169_cur."!mark_push"(0, rx1169_pos, $I10)
+ set_addr $I10, rxcap_1179_fail
+ rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
# rx literal "//"
- add $I11, rx1169_pos, 2
- gt $I11, rx1169_eos, rx1169_fail
- sub $I11, rx1169_pos, rx1169_off
- substr $S10, rx1169_tgt, $I11, 2
- ne $S10, "//", rx1169_fail
- add rx1169_pos, 2
- set_addr $I10, rxcap_1174_fail
- ($I12, $I11) = rx1169_cur."!mark_peek"($I10)
- rx1169_cur."!cursor_pos"($I11)
- ($P10) = rx1169_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1169_pos, "")
- rx1169_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1174_pos, 2
+ gt $I11, rx1174_eos, rx1174_fail
+ sub $I11, rx1174_pos, rx1174_off
+ substr $S10, rx1174_tgt, $I11, 2
+ ne $S10, "//", rx1174_fail
+ add rx1174_pos, 2
+ set_addr $I10, rxcap_1179_fail
+ ($I12, $I11) = rx1174_cur."!mark_peek"($I10)
+ rx1174_cur."!cursor_pos"($I11)
+ ($P10) = rx1174_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1174_pos, "")
+ rx1174_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1174_done
- rxcap_1174_fail:
- goto rx1169_fail
- rxcap_1174_done:
+ goto rxcap_1179_done
+ rxcap_1179_fail:
+ goto rx1174_fail
+ rxcap_1179_done:
# rx subrule "O" subtype=capture negate=
- rx1169_cur."!cursor_pos"(rx1169_pos)
- $P10 = rx1169_cur."O"("%tight_or, :pasttype<def_or>")
- unless $P10, rx1169_fail
- rx1169_cur."!mark_push"(0, -1, 0, $P10)
+ rx1174_cur."!cursor_pos"(rx1174_pos)
+ $P10 = rx1174_cur."O"("%tight_or, :pasttype<def_or>")
+ unless $P10, rx1174_fail
+ rx1174_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1169_pos = $P10."pos"()
+ rx1174_pos = $P10."pos"()
# rx pass
- rx1169_cur."!cursor_pass"(rx1169_pos, "infix:sym<//>")
- rx1169_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1169_pos)
- .return (rx1169_cur)
- rx1169_fail:
-.annotate "line", 413
- (rx1169_rep, rx1169_pos, $I10, $P10) = rx1169_cur."!mark_fail"(0)
- lt rx1169_pos, -1, rx1169_done
- eq rx1169_pos, -1, rx1169_fail
+ rx1174_cur."!cursor_pass"(rx1174_pos, "infix:sym<//>")
+ rx1174_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1174_pos)
+ .return (rx1174_cur)
+ rx1174_fail:
+.annotate "line", 417
+ (rx1174_rep, rx1174_pos, $I10, $P10) = rx1174_cur."!mark_fail"(0)
+ lt rx1174_pos, -1, rx1174_done
+ eq rx1174_pos, -1, rx1174_fail
jump $I10
- rx1169_done:
- rx1169_cur."!cursor_fail"()
- rx1169_cur."!cursor_debug"("FAIL ", "infix:sym<//>")
- .return (rx1169_cur)
+ rx1174_done:
+ rx1174_cur."!cursor_fail"()
+ rx1174_cur."!cursor_debug"("FAIL ", "infix:sym<//>")
+ .return (rx1174_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>" :subid("302_1261064023.05912") :method
-.annotate "line", 413
- $P1171 = self."!PREFIX__!subrule"("O", "//")
- new $P1172, "ResizablePMCArray"
- push $P1172, $P1171
- .return ($P1172)
+.sub "!PREFIX__infix:sym<//>" :subid("302_1267204702.05125") :method
+.annotate "line", 417
+ $P1176 = self."!PREFIX__!subrule"("O", "//")
+ new $P1177, "ResizablePMCArray"
+ push $P1177, $P1176
+ .return ($P1177)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>" :subid("303_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1176_tgt
- .local int rx1176_pos
- .local int rx1176_off
- .local int rx1176_eos
- .local int rx1176_rep
- .local pmc rx1176_cur
- (rx1176_cur, rx1176_pos, rx1176_tgt) = self."!cursor_start"()
- rx1176_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
- .lex unicode:"$\x{a2}", rx1176_cur
- .local pmc match
- .lex "$/", match
- length rx1176_eos, rx1176_tgt
- set rx1176_off, 0
- lt rx1176_pos, 2, rx1176_start
- sub rx1176_off, rx1176_pos, 1
- substr rx1176_tgt, rx1176_tgt, rx1176_off
- rx1176_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1180_done
- goto rxscan1180_scan
- rxscan1180_loop:
- ($P10) = rx1176_cur."from"()
- inc $P10
- set rx1176_pos, $P10
- ge rx1176_pos, rx1176_eos, rxscan1180_done
- rxscan1180_scan:
- set_addr $I10, rxscan1180_loop
- rx1176_cur."!mark_push"(0, rx1176_pos, $I10)
- rxscan1180_done:
-.annotate "line", 503
+.sub "infix:sym<?? !!>" :subid("303_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1181_tgt
+ .local int rx1181_pos
+ .local int rx1181_off
+ .local int rx1181_eos
+ .local int rx1181_rep
+ .local pmc rx1181_cur
+ (rx1181_cur, rx1181_pos, rx1181_tgt) = self."!cursor_start"()
+ rx1181_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+ .lex unicode:"$\x{a2}", rx1181_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1181_eos, rx1181_tgt
+ set rx1181_off, 0
+ lt rx1181_pos, 2, rx1181_start
+ sub rx1181_off, rx1181_pos, 1
+ substr rx1181_tgt, rx1181_tgt, rx1181_off
+ rx1181_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1185_done
+ goto rxscan1185_scan
+ rxscan1185_loop:
+ ($P10) = rx1181_cur."from"()
+ inc $P10
+ set rx1181_pos, $P10
+ ge rx1181_pos, rx1181_eos, rxscan1185_done
+ rxscan1185_scan:
+ set_addr $I10, rxscan1185_loop
+ rx1181_cur."!mark_push"(0, rx1181_pos, $I10)
+ rxscan1185_done:
+.annotate "line", 507
# rx literal "??"
- add $I11, rx1176_pos, 2
- gt $I11, rx1176_eos, rx1176_fail
- sub $I11, rx1176_pos, rx1176_off
- substr $S10, rx1176_tgt, $I11, 2
- ne $S10, "??", rx1176_fail
- add rx1176_pos, 2
-.annotate "line", 504
- # rx subrule "ws" subtype=method negate=
- rx1176_cur."!cursor_pos"(rx1176_pos)
- $P10 = rx1176_cur."ws"()
- unless $P10, rx1176_fail
- rx1176_pos = $P10."pos"()
-.annotate "line", 505
+ add $I11, rx1181_pos, 2
+ gt $I11, rx1181_eos, rx1181_fail
+ sub $I11, rx1181_pos, rx1181_off
+ substr $S10, rx1181_tgt, $I11, 2
+ ne $S10, "??", rx1181_fail
+ add rx1181_pos, 2
+.annotate "line", 508
+ # rx subrule "ws" subtype=method negate=
+ rx1181_cur."!cursor_pos"(rx1181_pos)
+ $P10 = rx1181_cur."ws"()
+ unless $P10, rx1181_fail
+ rx1181_pos = $P10."pos"()
+.annotate "line", 509
# rx subrule "EXPR" subtype=capture negate=
- rx1176_cur."!cursor_pos"(rx1176_pos)
- $P10 = rx1176_cur."EXPR"("i=")
- unless $P10, rx1176_fail
- rx1176_cur."!mark_push"(0, -1, 0, $P10)
+ rx1181_cur."!cursor_pos"(rx1181_pos)
+ $P10 = rx1181_cur."EXPR"("i=")
+ unless $P10, rx1181_fail
+ rx1181_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx1176_pos = $P10."pos"()
-.annotate "line", 506
+ rx1181_pos = $P10."pos"()
+.annotate "line", 510
# rx literal "!!"
- add $I11, rx1176_pos, 2
- gt $I11, rx1176_eos, rx1176_fail
- sub $I11, rx1176_pos, rx1176_off
- substr $S10, rx1176_tgt, $I11, 2
- ne $S10, "!!", rx1176_fail
- add rx1176_pos, 2
-.annotate "line", 507
+ add $I11, rx1181_pos, 2
+ gt $I11, rx1181_eos, rx1181_fail
+ sub $I11, rx1181_pos, rx1181_off
+ substr $S10, rx1181_tgt, $I11, 2
+ ne $S10, "!!", rx1181_fail
+ add rx1181_pos, 2
+.annotate "line", 511
# rx subrule "O" subtype=capture negate=
- rx1176_cur."!cursor_pos"(rx1176_pos)
- $P10 = rx1176_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
- unless $P10, rx1176_fail
- rx1176_cur."!mark_push"(0, -1, 0, $P10)
+ rx1181_cur."!cursor_pos"(rx1181_pos)
+ $P10 = rx1181_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
+ unless $P10, rx1181_fail
+ rx1181_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1176_pos = $P10."pos"()
-.annotate "line", 502
+ rx1181_pos = $P10."pos"()
+.annotate "line", 506
# rx pass
- rx1176_cur."!cursor_pass"(rx1176_pos, "infix:sym<?? !!>")
- rx1176_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1176_pos)
- .return (rx1176_cur)
- rx1176_fail:
-.annotate "line", 413
- (rx1176_rep, rx1176_pos, $I10, $P10) = rx1176_cur."!mark_fail"(0)
- lt rx1176_pos, -1, rx1176_done
- eq rx1176_pos, -1, rx1176_fail
+ rx1181_cur."!cursor_pass"(rx1181_pos, "infix:sym<?? !!>")
+ rx1181_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1181_pos)
+ .return (rx1181_cur)
+ rx1181_fail:
+.annotate "line", 417
+ (rx1181_rep, rx1181_pos, $I10, $P10) = rx1181_cur."!mark_fail"(0)
+ lt rx1181_pos, -1, rx1181_done
+ eq rx1181_pos, -1, rx1181_fail
jump $I10
- rx1176_done:
- rx1176_cur."!cursor_fail"()
- rx1176_cur."!cursor_debug"("FAIL ", "infix:sym<?? !!>")
- .return (rx1176_cur)
+ rx1181_done:
+ rx1181_cur."!cursor_fail"()
+ rx1181_cur."!cursor_debug"("FAIL ", "infix:sym<?? !!>")
+ .return (rx1181_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>" :subid("304_1261064023.05912") :method
-.annotate "line", 413
- $P1178 = self."!PREFIX__!subrule"("", "??")
- new $P1179, "ResizablePMCArray"
- push $P1179, $P1178
- .return ($P1179)
+.sub "!PREFIX__infix:sym<?? !!>" :subid("304_1267204702.05125") :method
+.annotate "line", 417
+ $P1183 = self."!PREFIX__!subrule"("", "??")
+ new $P1184, "ResizablePMCArray"
+ push $P1184, $P1183
+ .return ($P1184)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>" :subid("305_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1182_tgt
- .local int rx1182_pos
- .local int rx1182_off
- .local int rx1182_eos
- .local int rx1182_rep
- .local pmc rx1182_cur
- (rx1182_cur, rx1182_pos, rx1182_tgt) = self."!cursor_start"()
- rx1182_cur."!cursor_debug"("START ", "infix:sym<=>")
- .lex unicode:"$\x{a2}", rx1182_cur
- .local pmc match
- .lex "$/", match
- length rx1182_eos, rx1182_tgt
- set rx1182_off, 0
- lt rx1182_pos, 2, rx1182_start
- sub rx1182_off, rx1182_pos, 1
- substr rx1182_tgt, rx1182_tgt, rx1182_off
- rx1182_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1186_done
- goto rxscan1186_scan
- rxscan1186_loop:
- ($P10) = rx1182_cur."from"()
- inc $P10
- set rx1182_pos, $P10
- ge rx1182_pos, rx1182_eos, rxscan1186_done
- rxscan1186_scan:
- set_addr $I10, rxscan1186_loop
- rx1182_cur."!mark_push"(0, rx1182_pos, $I10)
- rxscan1186_done:
-.annotate "line", 511
+.sub "infix:sym<=>" :subid("305_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1187_tgt
+ .local int rx1187_pos
+ .local int rx1187_off
+ .local int rx1187_eos
+ .local int rx1187_rep
+ .local pmc rx1187_cur
+ (rx1187_cur, rx1187_pos, rx1187_tgt) = self."!cursor_start"()
+ rx1187_cur."!cursor_debug"("START ", "infix:sym<=>")
+ .lex unicode:"$\x{a2}", rx1187_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1187_eos, rx1187_tgt
+ set rx1187_off, 0
+ lt rx1187_pos, 2, rx1187_start
+ sub rx1187_off, rx1187_pos, 1
+ substr rx1187_tgt, rx1187_tgt, rx1187_off
+ rx1187_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1191_done
+ goto rxscan1191_scan
+ rxscan1191_loop:
+ ($P10) = rx1187_cur."from"()
+ inc $P10
+ set rx1187_pos, $P10
+ ge rx1187_pos, rx1187_eos, rxscan1191_done
+ rxscan1191_scan:
+ set_addr $I10, rxscan1191_loop
+ rx1187_cur."!mark_push"(0, rx1187_pos, $I10)
+ rxscan1191_done:
+.annotate "line", 515
# rx subcapture "sym"
- set_addr $I10, rxcap_1187_fail
- rx1182_cur."!mark_push"(0, rx1182_pos, $I10)
+ set_addr $I10, rxcap_1192_fail
+ rx1187_cur."!mark_push"(0, rx1187_pos, $I10)
# rx literal "="
- add $I11, rx1182_pos, 1
- gt $I11, rx1182_eos, rx1182_fail
- sub $I11, rx1182_pos, rx1182_off
- substr $S10, rx1182_tgt, $I11, 1
- ne $S10, "=", rx1182_fail
- add rx1182_pos, 1
- set_addr $I10, rxcap_1187_fail
- ($I12, $I11) = rx1182_cur."!mark_peek"($I10)
- rx1182_cur."!cursor_pos"($I11)
- ($P10) = rx1182_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1182_pos, "")
- rx1182_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1187_pos, 1
+ gt $I11, rx1187_eos, rx1187_fail
+ sub $I11, rx1187_pos, rx1187_off
+ substr $S10, rx1187_tgt, $I11, 1
+ ne $S10, "=", rx1187_fail
+ add rx1187_pos, 1
+ set_addr $I10, rxcap_1192_fail
+ ($I12, $I11) = rx1187_cur."!mark_peek"($I10)
+ rx1187_cur."!cursor_pos"($I11)
+ ($P10) = rx1187_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1187_pos, "")
+ rx1187_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1187_done
- rxcap_1187_fail:
- goto rx1182_fail
- rxcap_1187_done:
+ goto rxcap_1192_done
+ rxcap_1192_fail:
+ goto rx1187_fail
+ rxcap_1192_done:
# rx subrule "panic" subtype=method negate=
- rx1182_cur."!cursor_pos"(rx1182_pos)
- $P10 = rx1182_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
- unless $P10, rx1182_fail
- rx1182_pos = $P10."pos"()
-.annotate "line", 510
+ rx1187_cur."!cursor_pos"(rx1187_pos)
+ $P10 = rx1187_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
+ unless $P10, rx1187_fail
+ rx1187_pos = $P10."pos"()
+.annotate "line", 514
# rx pass
- rx1182_cur."!cursor_pass"(rx1182_pos, "infix:sym<=>")
- rx1182_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1182_pos)
- .return (rx1182_cur)
- rx1182_fail:
-.annotate "line", 413
- (rx1182_rep, rx1182_pos, $I10, $P10) = rx1182_cur."!mark_fail"(0)
- lt rx1182_pos, -1, rx1182_done
- eq rx1182_pos, -1, rx1182_fail
+ rx1187_cur."!cursor_pass"(rx1187_pos, "infix:sym<=>")
+ rx1187_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1187_pos)
+ .return (rx1187_cur)
+ rx1187_fail:
+.annotate "line", 417
+ (rx1187_rep, rx1187_pos, $I10, $P10) = rx1187_cur."!mark_fail"(0)
+ lt rx1187_pos, -1, rx1187_done
+ eq rx1187_pos, -1, rx1187_fail
jump $I10
- rx1182_done:
- rx1182_cur."!cursor_fail"()
- rx1182_cur."!cursor_debug"("FAIL ", "infix:sym<=>")
- .return (rx1182_cur)
+ rx1187_done:
+ rx1187_cur."!cursor_fail"()
+ rx1187_cur."!cursor_debug"("FAIL ", "infix:sym<=>")
+ .return (rx1187_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>" :subid("306_1261064023.05912") :method
-.annotate "line", 413
- $P1184 = self."!PREFIX__!subrule"("", "=")
- new $P1185, "ResizablePMCArray"
- push $P1185, $P1184
- .return ($P1185)
+.sub "!PREFIX__infix:sym<=>" :subid("306_1267204702.05125") :method
+.annotate "line", 417
+ $P1189 = self."!PREFIX__!subrule"("", "=")
+ new $P1190, "ResizablePMCArray"
+ push $P1190, $P1189
+ .return ($P1190)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>" :subid("307_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1189_tgt
- .local int rx1189_pos
- .local int rx1189_off
- .local int rx1189_eos
- .local int rx1189_rep
- .local pmc rx1189_cur
- (rx1189_cur, rx1189_pos, rx1189_tgt) = self."!cursor_start"()
- rx1189_cur."!cursor_debug"("START ", "infix:sym<:=>")
- .lex unicode:"$\x{a2}", rx1189_cur
- .local pmc match
- .lex "$/", match
- length rx1189_eos, rx1189_tgt
- set rx1189_off, 0
- lt rx1189_pos, 2, rx1189_start
- sub rx1189_off, rx1189_pos, 1
- substr rx1189_tgt, rx1189_tgt, rx1189_off
- rx1189_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1193_done
- goto rxscan1193_scan
- rxscan1193_loop:
- ($P10) = rx1189_cur."from"()
- inc $P10
- set rx1189_pos, $P10
- ge rx1189_pos, rx1189_eos, rxscan1193_done
- rxscan1193_scan:
- set_addr $I10, rxscan1193_loop
- rx1189_cur."!mark_push"(0, rx1189_pos, $I10)
- rxscan1193_done:
-.annotate "line", 513
+.sub "infix:sym<:=>" :subid("307_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1194_tgt
+ .local int rx1194_pos
+ .local int rx1194_off
+ .local int rx1194_eos
+ .local int rx1194_rep
+ .local pmc rx1194_cur
+ (rx1194_cur, rx1194_pos, rx1194_tgt) = self."!cursor_start"()
+ rx1194_cur."!cursor_debug"("START ", "infix:sym<:=>")
+ .lex unicode:"$\x{a2}", rx1194_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1194_eos, rx1194_tgt
+ set rx1194_off, 0
+ lt rx1194_pos, 2, rx1194_start
+ sub rx1194_off, rx1194_pos, 1
+ substr rx1194_tgt, rx1194_tgt, rx1194_off
+ rx1194_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1198_done
+ goto rxscan1198_scan
+ rxscan1198_loop:
+ ($P10) = rx1194_cur."from"()
+ inc $P10
+ set rx1194_pos, $P10
+ ge rx1194_pos, rx1194_eos, rxscan1198_done
+ rxscan1198_scan:
+ set_addr $I10, rxscan1198_loop
+ rx1194_cur."!mark_push"(0, rx1194_pos, $I10)
+ rxscan1198_done:
+.annotate "line", 517
# rx subcapture "sym"
- set_addr $I10, rxcap_1194_fail
- rx1189_cur."!mark_push"(0, rx1189_pos, $I10)
+ set_addr $I10, rxcap_1199_fail
+ rx1194_cur."!mark_push"(0, rx1194_pos, $I10)
# rx literal ":="
- add $I11, rx1189_pos, 2
- gt $I11, rx1189_eos, rx1189_fail
- sub $I11, rx1189_pos, rx1189_off
- substr $S10, rx1189_tgt, $I11, 2
- ne $S10, ":=", rx1189_fail
- add rx1189_pos, 2
- set_addr $I10, rxcap_1194_fail
- ($I12, $I11) = rx1189_cur."!mark_peek"($I10)
- rx1189_cur."!cursor_pos"($I11)
- ($P10) = rx1189_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1189_pos, "")
- rx1189_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1194_pos, 2
+ gt $I11, rx1194_eos, rx1194_fail
+ sub $I11, rx1194_pos, rx1194_off
+ substr $S10, rx1194_tgt, $I11, 2
+ ne $S10, ":=", rx1194_fail
+ add rx1194_pos, 2
+ set_addr $I10, rxcap_1199_fail
+ ($I12, $I11) = rx1194_cur."!mark_peek"($I10)
+ rx1194_cur."!cursor_pos"($I11)
+ ($P10) = rx1194_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1194_pos, "")
+ rx1194_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1194_done
- rxcap_1194_fail:
- goto rx1189_fail
- rxcap_1194_done:
+ goto rxcap_1199_done
+ rxcap_1199_fail:
+ goto rx1194_fail
+ rxcap_1199_done:
# rx subrule "O" subtype=capture negate=
- rx1189_cur."!cursor_pos"(rx1189_pos)
- $P10 = rx1189_cur."O"("%assignment, :pasttype<bind>")
- unless $P10, rx1189_fail
- rx1189_cur."!mark_push"(0, -1, 0, $P10)
+ rx1194_cur."!cursor_pos"(rx1194_pos)
+ $P10 = rx1194_cur."O"("%assignment, :pasttype<bind>")
+ unless $P10, rx1194_fail
+ rx1194_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1189_pos = $P10."pos"()
+ rx1194_pos = $P10."pos"()
# rx pass
- rx1189_cur."!cursor_pass"(rx1189_pos, "infix:sym<:=>")
- rx1189_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1189_pos)
- .return (rx1189_cur)
- rx1189_fail:
-.annotate "line", 413
- (rx1189_rep, rx1189_pos, $I10, $P10) = rx1189_cur."!mark_fail"(0)
- lt rx1189_pos, -1, rx1189_done
- eq rx1189_pos, -1, rx1189_fail
+ rx1194_cur."!cursor_pass"(rx1194_pos, "infix:sym<:=>")
+ rx1194_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1194_pos)
+ .return (rx1194_cur)
+ rx1194_fail:
+.annotate "line", 417
+ (rx1194_rep, rx1194_pos, $I10, $P10) = rx1194_cur."!mark_fail"(0)
+ lt rx1194_pos, -1, rx1194_done
+ eq rx1194_pos, -1, rx1194_fail
jump $I10
- rx1189_done:
- rx1189_cur."!cursor_fail"()
- rx1189_cur."!cursor_debug"("FAIL ", "infix:sym<:=>")
- .return (rx1189_cur)
+ rx1194_done:
+ rx1194_cur."!cursor_fail"()
+ rx1194_cur."!cursor_debug"("FAIL ", "infix:sym<:=>")
+ .return (rx1194_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>" :subid("308_1261064023.05912") :method
-.annotate "line", 413
- $P1191 = self."!PREFIX__!subrule"("O", ":=")
- new $P1192, "ResizablePMCArray"
- push $P1192, $P1191
- .return ($P1192)
+.sub "!PREFIX__infix:sym<:=>" :subid("308_1267204702.05125") :method
+.annotate "line", 417
+ $P1196 = self."!PREFIX__!subrule"("O", ":=")
+ new $P1197, "ResizablePMCArray"
+ push $P1197, $P1196
+ .return ($P1197)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>" :subid("309_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1196_tgt
- .local int rx1196_pos
- .local int rx1196_off
- .local int rx1196_eos
- .local int rx1196_rep
- .local pmc rx1196_cur
- (rx1196_cur, rx1196_pos, rx1196_tgt) = self."!cursor_start"()
- rx1196_cur."!cursor_debug"("START ", "infix:sym<::=>")
- .lex unicode:"$\x{a2}", rx1196_cur
- .local pmc match
- .lex "$/", match
- length rx1196_eos, rx1196_tgt
- set rx1196_off, 0
- lt rx1196_pos, 2, rx1196_start
- sub rx1196_off, rx1196_pos, 1
- substr rx1196_tgt, rx1196_tgt, rx1196_off
- rx1196_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1200_done
- goto rxscan1200_scan
- rxscan1200_loop:
- ($P10) = rx1196_cur."from"()
- inc $P10
- set rx1196_pos, $P10
- ge rx1196_pos, rx1196_eos, rxscan1200_done
- rxscan1200_scan:
- set_addr $I10, rxscan1200_loop
- rx1196_cur."!mark_push"(0, rx1196_pos, $I10)
- rxscan1200_done:
-.annotate "line", 514
+.sub "infix:sym<::=>" :subid("309_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1201_tgt
+ .local int rx1201_pos
+ .local int rx1201_off
+ .local int rx1201_eos
+ .local int rx1201_rep
+ .local pmc rx1201_cur
+ (rx1201_cur, rx1201_pos, rx1201_tgt) = self."!cursor_start"()
+ rx1201_cur."!cursor_debug"("START ", "infix:sym<::=>")
+ .lex unicode:"$\x{a2}", rx1201_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1201_eos, rx1201_tgt
+ set rx1201_off, 0
+ lt rx1201_pos, 2, rx1201_start
+ sub rx1201_off, rx1201_pos, 1
+ substr rx1201_tgt, rx1201_tgt, rx1201_off
+ rx1201_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1205_done
+ goto rxscan1205_scan
+ rxscan1205_loop:
+ ($P10) = rx1201_cur."from"()
+ inc $P10
+ set rx1201_pos, $P10
+ ge rx1201_pos, rx1201_eos, rxscan1205_done
+ rxscan1205_scan:
+ set_addr $I10, rxscan1205_loop
+ rx1201_cur."!mark_push"(0, rx1201_pos, $I10)
+ rxscan1205_done:
+.annotate "line", 518
# rx subcapture "sym"
- set_addr $I10, rxcap_1201_fail
- rx1196_cur."!mark_push"(0, rx1196_pos, $I10)
+ set_addr $I10, rxcap_1206_fail
+ rx1201_cur."!mark_push"(0, rx1201_pos, $I10)
# rx literal "::="
- add $I11, rx1196_pos, 3
- gt $I11, rx1196_eos, rx1196_fail
- sub $I11, rx1196_pos, rx1196_off
- substr $S10, rx1196_tgt, $I11, 3
- ne $S10, "::=", rx1196_fail
- add rx1196_pos, 3
- set_addr $I10, rxcap_1201_fail
- ($I12, $I11) = rx1196_cur."!mark_peek"($I10)
- rx1196_cur."!cursor_pos"($I11)
- ($P10) = rx1196_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1196_pos, "")
- rx1196_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1201_pos, 3
+ gt $I11, rx1201_eos, rx1201_fail
+ sub $I11, rx1201_pos, rx1201_off
+ substr $S10, rx1201_tgt, $I11, 3
+ ne $S10, "::=", rx1201_fail
+ add rx1201_pos, 3
+ set_addr $I10, rxcap_1206_fail
+ ($I12, $I11) = rx1201_cur."!mark_peek"($I10)
+ rx1201_cur."!cursor_pos"($I11)
+ ($P10) = rx1201_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1201_pos, "")
+ rx1201_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1201_done
- rxcap_1201_fail:
- goto rx1196_fail
- rxcap_1201_done:
+ goto rxcap_1206_done
+ rxcap_1206_fail:
+ goto rx1201_fail
+ rxcap_1206_done:
# rx subrule "O" subtype=capture negate=
- rx1196_cur."!cursor_pos"(rx1196_pos)
- $P10 = rx1196_cur."O"("%assignment, :pasttype<bind>")
- unless $P10, rx1196_fail
- rx1196_cur."!mark_push"(0, -1, 0, $P10)
+ rx1201_cur."!cursor_pos"(rx1201_pos)
+ $P10 = rx1201_cur."O"("%assignment, :pasttype<bind>")
+ unless $P10, rx1201_fail
+ rx1201_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1196_pos = $P10."pos"()
+ rx1201_pos = $P10."pos"()
# rx pass
- rx1196_cur."!cursor_pass"(rx1196_pos, "infix:sym<::=>")
- rx1196_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1196_pos)
- .return (rx1196_cur)
- rx1196_fail:
-.annotate "line", 413
- (rx1196_rep, rx1196_pos, $I10, $P10) = rx1196_cur."!mark_fail"(0)
- lt rx1196_pos, -1, rx1196_done
- eq rx1196_pos, -1, rx1196_fail
+ rx1201_cur."!cursor_pass"(rx1201_pos, "infix:sym<::=>")
+ rx1201_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1201_pos)
+ .return (rx1201_cur)
+ rx1201_fail:
+.annotate "line", 417
+ (rx1201_rep, rx1201_pos, $I10, $P10) = rx1201_cur."!mark_fail"(0)
+ lt rx1201_pos, -1, rx1201_done
+ eq rx1201_pos, -1, rx1201_fail
jump $I10
- rx1196_done:
- rx1196_cur."!cursor_fail"()
- rx1196_cur."!cursor_debug"("FAIL ", "infix:sym<::=>")
- .return (rx1196_cur)
+ rx1201_done:
+ rx1201_cur."!cursor_fail"()
+ rx1201_cur."!cursor_debug"("FAIL ", "infix:sym<::=>")
+ .return (rx1201_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>" :subid("310_1261064023.05912") :method
-.annotate "line", 413
- $P1198 = self."!PREFIX__!subrule"("O", "::=")
- new $P1199, "ResizablePMCArray"
- push $P1199, $P1198
- .return ($P1199)
+.sub "!PREFIX__infix:sym<::=>" :subid("310_1267204702.05125") :method
+.annotate "line", 417
+ $P1203 = self."!PREFIX__!subrule"("O", "::=")
+ new $P1204, "ResizablePMCArray"
+ push $P1204, $P1203
+ .return ($P1204)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>" :subid("311_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1203_tgt
- .local int rx1203_pos
- .local int rx1203_off
- .local int rx1203_eos
- .local int rx1203_rep
- .local pmc rx1203_cur
- (rx1203_cur, rx1203_pos, rx1203_tgt) = self."!cursor_start"()
- rx1203_cur."!cursor_debug"("START ", "infix:sym<,>")
- .lex unicode:"$\x{a2}", rx1203_cur
- .local pmc match
- .lex "$/", match
- length rx1203_eos, rx1203_tgt
- set rx1203_off, 0
- lt rx1203_pos, 2, rx1203_start
- sub rx1203_off, rx1203_pos, 1
- substr rx1203_tgt, rx1203_tgt, rx1203_off
- rx1203_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1207_done
- goto rxscan1207_scan
- rxscan1207_loop:
- ($P10) = rx1203_cur."from"()
- inc $P10
- set rx1203_pos, $P10
- ge rx1203_pos, rx1203_eos, rxscan1207_done
- rxscan1207_scan:
- set_addr $I10, rxscan1207_loop
- rx1203_cur."!mark_push"(0, rx1203_pos, $I10)
- rxscan1207_done:
-.annotate "line", 516
+.sub "infix:sym<,>" :subid("311_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1208_tgt
+ .local int rx1208_pos
+ .local int rx1208_off
+ .local int rx1208_eos
+ .local int rx1208_rep
+ .local pmc rx1208_cur
+ (rx1208_cur, rx1208_pos, rx1208_tgt) = self."!cursor_start"()
+ rx1208_cur."!cursor_debug"("START ", "infix:sym<,>")
+ .lex unicode:"$\x{a2}", rx1208_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1208_eos, rx1208_tgt
+ set rx1208_off, 0
+ lt rx1208_pos, 2, rx1208_start
+ sub rx1208_off, rx1208_pos, 1
+ substr rx1208_tgt, rx1208_tgt, rx1208_off
+ rx1208_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1212_done
+ goto rxscan1212_scan
+ rxscan1212_loop:
+ ($P10) = rx1208_cur."from"()
+ inc $P10
+ set rx1208_pos, $P10
+ ge rx1208_pos, rx1208_eos, rxscan1212_done
+ rxscan1212_scan:
+ set_addr $I10, rxscan1212_loop
+ rx1208_cur."!mark_push"(0, rx1208_pos, $I10)
+ rxscan1212_done:
+.annotate "line", 520
# rx subcapture "sym"
- set_addr $I10, rxcap_1208_fail
- rx1203_cur."!mark_push"(0, rx1203_pos, $I10)
+ set_addr $I10, rxcap_1213_fail
+ rx1208_cur."!mark_push"(0, rx1208_pos, $I10)
# rx literal ","
- add $I11, rx1203_pos, 1
- gt $I11, rx1203_eos, rx1203_fail
- sub $I11, rx1203_pos, rx1203_off
- substr $S10, rx1203_tgt, $I11, 1
- ne $S10, ",", rx1203_fail
- add rx1203_pos, 1
- set_addr $I10, rxcap_1208_fail
- ($I12, $I11) = rx1203_cur."!mark_peek"($I10)
- rx1203_cur."!cursor_pos"($I11)
- ($P10) = rx1203_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1203_pos, "")
- rx1203_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1208_pos, 1
+ gt $I11, rx1208_eos, rx1208_fail
+ sub $I11, rx1208_pos, rx1208_off
+ substr $S10, rx1208_tgt, $I11, 1
+ ne $S10, ",", rx1208_fail
+ add rx1208_pos, 1
+ set_addr $I10, rxcap_1213_fail
+ ($I12, $I11) = rx1208_cur."!mark_peek"($I10)
+ rx1208_cur."!cursor_pos"($I11)
+ ($P10) = rx1208_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1208_pos, "")
+ rx1208_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1208_done
- rxcap_1208_fail:
- goto rx1203_fail
- rxcap_1208_done:
+ goto rxcap_1213_done
+ rxcap_1213_fail:
+ goto rx1208_fail
+ rxcap_1213_done:
# rx subrule "O" subtype=capture negate=
- rx1203_cur."!cursor_pos"(rx1203_pos)
- $P10 = rx1203_cur."O"("%comma, :pasttype<list>")
- unless $P10, rx1203_fail
- rx1203_cur."!mark_push"(0, -1, 0, $P10)
+ rx1208_cur."!cursor_pos"(rx1208_pos)
+ $P10 = rx1208_cur."O"("%comma, :pasttype<list>")
+ unless $P10, rx1208_fail
+ rx1208_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1203_pos = $P10."pos"()
+ rx1208_pos = $P10."pos"()
# rx pass
- rx1203_cur."!cursor_pass"(rx1203_pos, "infix:sym<,>")
- rx1203_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1203_pos)
- .return (rx1203_cur)
- rx1203_fail:
-.annotate "line", 413
- (rx1203_rep, rx1203_pos, $I10, $P10) = rx1203_cur."!mark_fail"(0)
- lt rx1203_pos, -1, rx1203_done
- eq rx1203_pos, -1, rx1203_fail
+ rx1208_cur."!cursor_pass"(rx1208_pos, "infix:sym<,>")
+ rx1208_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1208_pos)
+ .return (rx1208_cur)
+ rx1208_fail:
+.annotate "line", 417
+ (rx1208_rep, rx1208_pos, $I10, $P10) = rx1208_cur."!mark_fail"(0)
+ lt rx1208_pos, -1, rx1208_done
+ eq rx1208_pos, -1, rx1208_fail
jump $I10
- rx1203_done:
- rx1203_cur."!cursor_fail"()
- rx1203_cur."!cursor_debug"("FAIL ", "infix:sym<,>")
- .return (rx1203_cur)
+ rx1208_done:
+ rx1208_cur."!cursor_fail"()
+ rx1208_cur."!cursor_debug"("FAIL ", "infix:sym<,>")
+ .return (rx1208_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>" :subid("312_1261064023.05912") :method
-.annotate "line", 413
- $P1205 = self."!PREFIX__!subrule"("O", ",")
- new $P1206, "ResizablePMCArray"
- push $P1206, $P1205
- .return ($P1206)
+.sub "!PREFIX__infix:sym<,>" :subid("312_1267204702.05125") :method
+.annotate "line", 417
+ $P1210 = self."!PREFIX__!subrule"("O", ",")
+ new $P1211, "ResizablePMCArray"
+ push $P1211, $P1210
+ .return ($P1211)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>" :subid("313_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1210_tgt
- .local int rx1210_pos
- .local int rx1210_off
- .local int rx1210_eos
- .local int rx1210_rep
- .local pmc rx1210_cur
- (rx1210_cur, rx1210_pos, rx1210_tgt) = self."!cursor_start"()
- rx1210_cur."!cursor_debug"("START ", "prefix:sym<return>")
- .lex unicode:"$\x{a2}", rx1210_cur
- .local pmc match
- .lex "$/", match
- length rx1210_eos, rx1210_tgt
- set rx1210_off, 0
- lt rx1210_pos, 2, rx1210_start
- sub rx1210_off, rx1210_pos, 1
- substr rx1210_tgt, rx1210_tgt, rx1210_off
- rx1210_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1213_done
- goto rxscan1213_scan
- rxscan1213_loop:
- ($P10) = rx1210_cur."from"()
- inc $P10
- set rx1210_pos, $P10
- ge rx1210_pos, rx1210_eos, rxscan1213_done
- rxscan1213_scan:
- set_addr $I10, rxscan1213_loop
- rx1210_cur."!mark_push"(0, rx1210_pos, $I10)
- rxscan1213_done:
-.annotate "line", 518
+.sub "prefix:sym<return>" :subid("313_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1215_tgt
+ .local int rx1215_pos
+ .local int rx1215_off
+ .local int rx1215_eos
+ .local int rx1215_rep
+ .local pmc rx1215_cur
+ (rx1215_cur, rx1215_pos, rx1215_tgt) = self."!cursor_start"()
+ rx1215_cur."!cursor_debug"("START ", "prefix:sym<return>")
+ .lex unicode:"$\x{a2}", rx1215_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1215_eos, rx1215_tgt
+ set rx1215_off, 0
+ lt rx1215_pos, 2, rx1215_start
+ sub rx1215_off, rx1215_pos, 1
+ substr rx1215_tgt, rx1215_tgt, rx1215_off
+ rx1215_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1218_done
+ goto rxscan1218_scan
+ rxscan1218_loop:
+ ($P10) = rx1215_cur."from"()
+ inc $P10
+ set rx1215_pos, $P10
+ ge rx1215_pos, rx1215_eos, rxscan1218_done
+ rxscan1218_scan:
+ set_addr $I10, rxscan1218_loop
+ rx1215_cur."!mark_push"(0, rx1215_pos, $I10)
+ rxscan1218_done:
+.annotate "line", 522
# rx subcapture "sym"
- set_addr $I10, rxcap_1214_fail
- rx1210_cur."!mark_push"(0, rx1210_pos, $I10)
+ set_addr $I10, rxcap_1219_fail
+ rx1215_cur."!mark_push"(0, rx1215_pos, $I10)
# rx literal "return"
- add $I11, rx1210_pos, 6
- gt $I11, rx1210_eos, rx1210_fail
- sub $I11, rx1210_pos, rx1210_off
- substr $S10, rx1210_tgt, $I11, 6
- ne $S10, "return", rx1210_fail
- add rx1210_pos, 6
- set_addr $I10, rxcap_1214_fail
- ($I12, $I11) = rx1210_cur."!mark_peek"($I10)
- rx1210_cur."!cursor_pos"($I11)
- ($P10) = rx1210_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1210_pos, "")
- rx1210_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1215_pos, 6
+ gt $I11, rx1215_eos, rx1215_fail
+ sub $I11, rx1215_pos, rx1215_off
+ substr $S10, rx1215_tgt, $I11, 6
+ ne $S10, "return", rx1215_fail
+ add rx1215_pos, 6
+ set_addr $I10, rxcap_1219_fail
+ ($I12, $I11) = rx1215_cur."!mark_peek"($I10)
+ rx1215_cur."!cursor_pos"($I11)
+ ($P10) = rx1215_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1215_pos, "")
+ rx1215_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1214_done
- rxcap_1214_fail:
- goto rx1210_fail
- rxcap_1214_done:
+ goto rxcap_1219_done
+ rxcap_1219_fail:
+ goto rx1215_fail
+ rxcap_1219_done:
# rx charclass s
- ge rx1210_pos, rx1210_eos, rx1210_fail
- sub $I10, rx1210_pos, rx1210_off
- is_cclass $I11, 32, rx1210_tgt, $I10
- unless $I11, rx1210_fail
- inc rx1210_pos
+ ge rx1215_pos, rx1215_eos, rx1215_fail
+ sub $I10, rx1215_pos, rx1215_off
+ is_cclass $I11, 32, rx1215_tgt, $I10
+ unless $I11, rx1215_fail
+ inc rx1215_pos
# rx subrule "O" subtype=capture negate=
- rx1210_cur."!cursor_pos"(rx1210_pos)
- $P10 = rx1210_cur."O"("%list_prefix, :pasttype<return>")
- unless $P10, rx1210_fail
- rx1210_cur."!mark_push"(0, -1, 0, $P10)
+ rx1215_cur."!cursor_pos"(rx1215_pos)
+ $P10 = rx1215_cur."O"("%list_prefix, :pasttype<return>")
+ unless $P10, rx1215_fail
+ rx1215_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1210_pos = $P10."pos"()
+ rx1215_pos = $P10."pos"()
# rx pass
- rx1210_cur."!cursor_pass"(rx1210_pos, "prefix:sym<return>")
- rx1210_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1210_pos)
- .return (rx1210_cur)
- rx1210_fail:
-.annotate "line", 413
- (rx1210_rep, rx1210_pos, $I10, $P10) = rx1210_cur."!mark_fail"(0)
- lt rx1210_pos, -1, rx1210_done
- eq rx1210_pos, -1, rx1210_fail
+ rx1215_cur."!cursor_pass"(rx1215_pos, "prefix:sym<return>")
+ rx1215_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1215_pos)
+ .return (rx1215_cur)
+ rx1215_fail:
+.annotate "line", 417
+ (rx1215_rep, rx1215_pos, $I10, $P10) = rx1215_cur."!mark_fail"(0)
+ lt rx1215_pos, -1, rx1215_done
+ eq rx1215_pos, -1, rx1215_fail
jump $I10
- rx1210_done:
- rx1210_cur."!cursor_fail"()
- rx1210_cur."!cursor_debug"("FAIL ", "prefix:sym<return>")
- .return (rx1210_cur)
+ rx1215_done:
+ rx1215_cur."!cursor_fail"()
+ rx1215_cur."!cursor_debug"("FAIL ", "prefix:sym<return>")
+ .return (rx1215_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>" :subid("314_1261064023.05912") :method
-.annotate "line", 413
- new $P1212, "ResizablePMCArray"
- push $P1212, "return"
- .return ($P1212)
+.sub "!PREFIX__prefix:sym<return>" :subid("314_1267204702.05125") :method
+.annotate "line", 417
+ new $P1217, "ResizablePMCArray"
+ push $P1217, "return"
+ .return ($P1217)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>" :subid("315_1261064023.05912") :method :outer("11_1261064023.05912")
-.annotate "line", 413
- .local string rx1216_tgt
- .local int rx1216_pos
- .local int rx1216_off
- .local int rx1216_eos
- .local int rx1216_rep
- .local pmc rx1216_cur
- (rx1216_cur, rx1216_pos, rx1216_tgt) = self."!cursor_start"()
- rx1216_cur."!cursor_debug"("START ", "prefix:sym<make>")
- .lex unicode:"$\x{a2}", rx1216_cur
- .local pmc match
- .lex "$/", match
- length rx1216_eos, rx1216_tgt
- set rx1216_off, 0
- lt rx1216_pos, 2, rx1216_start
- sub rx1216_off, rx1216_pos, 1
- substr rx1216_tgt, rx1216_tgt, rx1216_off
- rx1216_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1219_done
- goto rxscan1219_scan
- rxscan1219_loop:
- ($P10) = rx1216_cur."from"()
- inc $P10
- set rx1216_pos, $P10
- ge rx1216_pos, rx1216_eos, rxscan1219_done
- rxscan1219_scan:
- set_addr $I10, rxscan1219_loop
- rx1216_cur."!mark_push"(0, rx1216_pos, $I10)
- rxscan1219_done:
-.annotate "line", 519
+.sub "prefix:sym<make>" :subid("315_1267204702.05125") :method :outer("11_1267204702.05125")
+.annotate "line", 417
+ .local string rx1221_tgt
+ .local int rx1221_pos
+ .local int rx1221_off
+ .local int rx1221_eos
+ .local int rx1221_rep
+ .local pmc rx1221_cur
+ (rx1221_cur, rx1221_pos, rx1221_tgt) = self."!cursor_start"()
+ rx1221_cur."!cursor_debug"("START ", "prefix:sym<make>")
+ .lex unicode:"$\x{a2}", rx1221_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1221_eos, rx1221_tgt
+ set rx1221_off, 0
+ lt rx1221_pos, 2, rx1221_start
+ sub rx1221_off, rx1221_pos, 1
+ substr rx1221_tgt, rx1221_tgt, rx1221_off
+ rx1221_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1224_done
+ goto rxscan1224_scan
+ rxscan1224_loop:
+ ($P10) = rx1221_cur."from"()
+ inc $P10
+ set rx1221_pos, $P10
+ ge rx1221_pos, rx1221_eos, rxscan1224_done
+ rxscan1224_scan:
+ set_addr $I10, rxscan1224_loop
+ rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
+ rxscan1224_done:
+.annotate "line", 523
# rx subcapture "sym"
- set_addr $I10, rxcap_1220_fail
- rx1216_cur."!mark_push"(0, rx1216_pos, $I10)
+ set_addr $I10, rxcap_1225_fail
+ rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
# rx literal "make"
- add $I11, rx1216_pos, 4
- gt $I11, rx1216_eos, rx1216_fail
- sub $I11, rx1216_pos, rx1216_off
- substr $S10, rx1216_tgt, $I11, 4
- ne $S10, "make", rx1216_fail
- add rx1216_pos, 4
- set_addr $I10, rxcap_1220_fail
- ($I12, $I11) = rx1216_cur."!mark_peek"($I10)
- rx1216_cur."!cursor_pos"($I11)
- ($P10) = rx1216_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1216_pos, "")
- rx1216_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1221_pos, 4
+ gt $I11, rx1221_eos, rx1221_fail
+ sub $I11, rx1221_pos, rx1221_off
+ substr $S10, rx1221_tgt, $I11, 4
+ ne $S10, "make", rx1221_fail
+ add rx1221_pos, 4
+ set_addr $I10, rxcap_1225_fail
+ ($I12, $I11) = rx1221_cur."!mark_peek"($I10)
+ rx1221_cur."!cursor_pos"($I11)
+ ($P10) = rx1221_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1221_pos, "")
+ rx1221_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1220_done
- rxcap_1220_fail:
- goto rx1216_fail
- rxcap_1220_done:
+ goto rxcap_1225_done
+ rxcap_1225_fail:
+ goto rx1221_fail
+ rxcap_1225_done:
# rx charclass s
- ge rx1216_pos, rx1216_eos, rx1216_fail
- sub $I10, rx1216_pos, rx1216_off
- is_cclass $I11, 32, rx1216_tgt, $I10
- unless $I11, rx1216_fail
- inc rx1216_pos
+ ge rx1221_pos, rx1221_eos, rx1221_fail
+ sub $I10, rx1221_pos, rx1221_off
+ is_cclass $I11, 32, rx1221_tgt, $I10
+ unless $I11, rx1221_fail
+ inc rx1221_pos
# rx subrule "O" subtype=capture negate=
- rx1216_cur."!cursor_pos"(rx1216_pos)
- $P10 = rx1216_cur."O"("%list_prefix")
- unless $P10, rx1216_fail
- rx1216_cur."!mark_push"(0, -1, 0, $P10)
+ rx1221_cur."!cursor_pos"(rx1221_pos)
+ $P10 = rx1221_cur."O"("%list_prefix")
+ unless $P10, rx1221_fail
+ rx1221_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1216_pos = $P10."pos"()
+ rx1221_pos = $P10."pos"()
# rx pass
- rx1216_cur."!cursor_pass"(rx1216_pos, "prefix:sym<make>")
- rx1216_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1216_pos)
- .return (rx1216_cur)
- rx1216_fail:
-.annotate "line", 413
- (rx1216_rep, rx1216_pos, $I10, $P10) = rx1216_cur."!mark_fail"(0)
- lt rx1216_pos, -1, rx1216_done
- eq rx1216_pos, -1, rx1216_fail
+ rx1221_cur."!cursor_pass"(rx1221_pos, "prefix:sym<make>")
+ rx1221_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1221_pos)
+ .return (rx1221_cur)
+ rx1221_fail:
+.annotate "line", 417
+ (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
+ lt rx1221_pos, -1, rx1221_done
+ eq rx1221_pos, -1, rx1221_fail
jump $I10
- rx1216_done:
- rx1216_cur."!cursor_fail"()
- rx1216_cur."!cursor_debug"("FAIL ", "prefix:sym<make>")
- .return (rx1216_cur)
+ rx1221_done:
+ rx1221_cur."!cursor_fail"()
+ rx1221_cur."!cursor_debug"("FAIL ", "prefix:sym<make>")
+ .return (rx1221_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>" :subid("316_1261064023.05912") :method
-.annotate "line", 413
- new $P1218, "ResizablePMCArray"
- push $P1218, "make"
- .return ($P1218)
+.sub "!PREFIX__prefix:sym<make>" :subid("316_1267204702.05125") :method
+.annotate "line", 417
+ new $P1223, "ResizablePMCArray"
+ push $P1223, "make"
+ .return ($P1223)
.end
.namespace ["NQP";"Grammar"]
-.sub "smartmatch" :subid("317_1261064023.05912") :method :outer("11_1261064023.05912")
- .param pmc param_1224
-.annotate "line", 521
- new $P1223, 'ExceptionHandler'
- set_addr $P1223, control_1222
- $P1223."handle_types"(58)
- push_eh $P1223
+.sub "smartmatch" :subid("317_1267204702.05125") :method :outer("11_1267204702.05125")
+ .param pmc param_1229
+.annotate "line", 525
+ new $P1228, 'ExceptionHandler'
+ set_addr $P1228, control_1227
+ $P1228."handle_types"(58)
+ push_eh $P1228
.lex "self", self
- .lex "$/", param_1224
-.annotate "line", 523
- new $P1225, "Undef"
- .lex "$t", $P1225
- find_lex $P1226, "$/"
- unless_null $P1226, vivify_343
- new $P1226, "ResizablePMCArray"
+ .lex "$/", param_1229
+.annotate "line", 527
+ new $P1230, "Undef"
+ .lex "$t", $P1230
+ find_lex $P1231, "$/"
+ unless_null $P1231, vivify_343
+ $P1231 = root_new ['parrot';'ResizablePMCArray']
vivify_343:
- set $P1227, $P1226[0]
- unless_null $P1227, vivify_344
- new $P1227, "Undef"
+ set $P1232, $P1231[0]
+ unless_null $P1232, vivify_344
+ new $P1232, "Undef"
vivify_344:
- store_lex "$t", $P1227
- find_lex $P1228, "$/"
- unless_null $P1228, vivify_345
- new $P1228, "ResizablePMCArray"
+ store_lex "$t", $P1232
+ find_lex $P1233, "$/"
+ unless_null $P1233, vivify_345
+ $P1233 = root_new ['parrot';'ResizablePMCArray']
vivify_345:
- set $P1229, $P1228[1]
- unless_null $P1229, vivify_346
- new $P1229, "Undef"
+ set $P1234, $P1233[1]
+ unless_null $P1234, vivify_346
+ new $P1234, "Undef"
vivify_346:
- find_lex $P1230, "$/"
- unless_null $P1230, vivify_347
- new $P1230, "ResizablePMCArray"
- store_lex "$/", $P1230
+ find_lex $P1235, "$/"
+ unless_null $P1235, vivify_347
+ $P1235 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$/", $P1235
vivify_347:
- set $P1230[0], $P1229
- find_lex $P1231, "$t"
- find_lex $P1232, "$/"
- unless_null $P1232, vivify_348
- new $P1232, "ResizablePMCArray"
- store_lex "$/", $P1232
+ set $P1235[0], $P1234
+ find_lex $P1236, "$t"
+ find_lex $P1237, "$/"
+ unless_null $P1237, vivify_348
+ $P1237 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$/", $P1237
vivify_348:
- set $P1232[1], $P1231
-.annotate "line", 521
- .return ($P1231)
- control_1222:
+ set $P1237[1], $P1236
+.annotate "line", 525
+ .return ($P1236)
+ control_1227:
.local pmc exception
.get_results (exception)
- getattribute $P1233, exception, "payload"
- .return ($P1233)
+ getattribute $P1238, exception, "payload"
+ .return ($P1238)
.end
.namespace ["NQP";"Regex"]
-.sub "_block1234" :subid("318_1261064023.05912") :outer("11_1261064023.05912")
-.annotate "line", 527
- .const 'Sub' $P1268 = "329_1261064023.05912"
- capture_lex $P1268
- .const 'Sub' $P1255 = "326_1261064023.05912"
+.sub "_block1239" :subid("318_1267204702.05125") :outer("11_1267204702.05125")
+.annotate "line", 531
+ .const 'Sub' $P1273 = "329_1267204702.05125"
+ capture_lex $P1273
+ .const 'Sub' $P1260 = "326_1267204702.05125"
+ capture_lex $P1260
+ .const 'Sub' $P1255 = "324_1267204702.05125"
capture_lex $P1255
- .const 'Sub' $P1250 = "324_1261064023.05912"
+ .const 'Sub' $P1250 = "322_1267204702.05125"
capture_lex $P1250
- .const 'Sub' $P1245 = "322_1261064023.05912"
- capture_lex $P1245
- .const 'Sub' $P1236 = "319_1261064023.05912"
- capture_lex $P1236
- .const 'Sub' $P1268 = "329_1261064023.05912"
- capture_lex $P1268
- .return ($P1268)
+ .const 'Sub' $P1241 = "319_1267204702.05125"
+ capture_lex $P1241
+ .const 'Sub' $P1273 = "329_1267204702.05125"
+ capture_lex $P1273
+ .return ($P1273)
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>" :subid("319_1261064023.05912") :method :outer("318_1261064023.05912")
-.annotate "line", 527
- .const 'Sub' $P1242 = "321_1261064023.05912"
- capture_lex $P1242
- .local string rx1237_tgt
- .local int rx1237_pos
- .local int rx1237_off
- .local int rx1237_eos
- .local int rx1237_rep
- .local pmc rx1237_cur
- (rx1237_cur, rx1237_pos, rx1237_tgt) = self."!cursor_start"()
- rx1237_cur."!cursor_debug"("START ", "metachar:sym<:my>")
- .lex unicode:"$\x{a2}", rx1237_cur
- .local pmc match
- .lex "$/", match
- length rx1237_eos, rx1237_tgt
- set rx1237_off, 0
- lt rx1237_pos, 2, rx1237_start
- sub rx1237_off, rx1237_pos, 1
- substr rx1237_tgt, rx1237_tgt, rx1237_off
- rx1237_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1240_done
- goto rxscan1240_scan
- rxscan1240_loop:
- ($P10) = rx1237_cur."from"()
- inc $P10
- set rx1237_pos, $P10
- ge rx1237_pos, rx1237_eos, rxscan1240_done
- rxscan1240_scan:
- set_addr $I10, rxscan1240_loop
- rx1237_cur."!mark_push"(0, rx1237_pos, $I10)
- rxscan1240_done:
-.annotate "line", 529
+.sub "metachar:sym<:my>" :subid("319_1267204702.05125") :method :outer("318_1267204702.05125")
+.annotate "line", 531
+ .const 'Sub' $P1247 = "321_1267204702.05125"
+ capture_lex $P1247
+ .local string rx1242_tgt
+ .local int rx1242_pos
+ .local int rx1242_off
+ .local int rx1242_eos
+ .local int rx1242_rep
+ .local pmc rx1242_cur
+ (rx1242_cur, rx1242_pos, rx1242_tgt) = self."!cursor_start"()
+ rx1242_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+ .lex unicode:"$\x{a2}", rx1242_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1242_eos, rx1242_tgt
+ set rx1242_off, 0
+ lt rx1242_pos, 2, rx1242_start
+ sub rx1242_off, rx1242_pos, 1
+ substr rx1242_tgt, rx1242_tgt, rx1242_off
+ rx1242_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1245_done
+ goto rxscan1245_scan
+ rxscan1245_loop:
+ ($P10) = rx1242_cur."from"()
+ inc $P10
+ set rx1242_pos, $P10
+ ge rx1242_pos, rx1242_eos, rxscan1245_done
+ rxscan1245_scan:
+ set_addr $I10, rxscan1245_loop
+ rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
+ rxscan1245_done:
+.annotate "line", 533
# rx literal ":"
- add $I11, rx1237_pos, 1
- gt $I11, rx1237_eos, rx1237_fail
- sub $I11, rx1237_pos, rx1237_off
- substr $S10, rx1237_tgt, $I11, 1
- ne $S10, ":", rx1237_fail
- add rx1237_pos, 1
+ add $I11, rx1242_pos, 1
+ gt $I11, rx1242_eos, rx1242_fail
+ sub $I11, rx1242_pos, rx1242_off
+ substr $S10, rx1242_tgt, $I11, 1
+ ne $S10, ":", rx1242_fail
+ add rx1242_pos, 1
# rx subrule "before" subtype=zerowidth negate=
- rx1237_cur."!cursor_pos"(rx1237_pos)
- .const 'Sub' $P1242 = "321_1261064023.05912"
- capture_lex $P1242
- $P10 = rx1237_cur."before"($P1242)
- unless $P10, rx1237_fail
+ rx1242_cur."!cursor_pos"(rx1242_pos)
+ .const 'Sub' $P1247 = "321_1267204702.05125"
+ capture_lex $P1247
+ $P10 = rx1242_cur."before"($P1247)
+ unless $P10, rx1242_fail
# rx subrule "LANG" subtype=capture negate=
- rx1237_cur."!cursor_pos"(rx1237_pos)
- $P10 = rx1237_cur."LANG"("MAIN", "statement")
- unless $P10, rx1237_fail
- rx1237_cur."!mark_push"(0, -1, 0, $P10)
+ rx1242_cur."!cursor_pos"(rx1242_pos)
+ $P10 = rx1242_cur."LANG"("MAIN", "statement")
+ unless $P10, rx1242_fail
+ rx1242_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx1237_pos = $P10."pos"()
+ rx1242_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx1237_cur."!cursor_pos"(rx1237_pos)
- $P10 = rx1237_cur."ws"()
- unless $P10, rx1237_fail
- rx1237_pos = $P10."pos"()
+ rx1242_cur."!cursor_pos"(rx1242_pos)
+ $P10 = rx1242_cur."ws"()
+ unless $P10, rx1242_fail
+ rx1242_pos = $P10."pos"()
# rx literal ";"
- add $I11, rx1237_pos, 1
- gt $I11, rx1237_eos, rx1237_fail
- sub $I11, rx1237_pos, rx1237_off
- substr $S10, rx1237_tgt, $I11, 1
- ne $S10, ";", rx1237_fail
- add rx1237_pos, 1
-.annotate "line", 528
- # rx pass
- rx1237_cur."!cursor_pass"(rx1237_pos, "metachar:sym<:my>")
- rx1237_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1237_pos)
- .return (rx1237_cur)
- rx1237_fail:
-.annotate "line", 527
- (rx1237_rep, rx1237_pos, $I10, $P10) = rx1237_cur."!mark_fail"(0)
- lt rx1237_pos, -1, rx1237_done
- eq rx1237_pos, -1, rx1237_fail
- jump $I10
- rx1237_done:
- rx1237_cur."!cursor_fail"()
- rx1237_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>")
- .return (rx1237_cur)
+ add $I11, rx1242_pos, 1
+ gt $I11, rx1242_eos, rx1242_fail
+ sub $I11, rx1242_pos, rx1242_off
+ substr $S10, rx1242_tgt, $I11, 1
+ ne $S10, ";", rx1242_fail
+ add rx1242_pos, 1
+.annotate "line", 532
+ # rx pass
+ rx1242_cur."!cursor_pass"(rx1242_pos, "metachar:sym<:my>")
+ rx1242_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1242_pos)
+ .return (rx1242_cur)
+ rx1242_fail:
+.annotate "line", 531
+ (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
+ lt rx1242_pos, -1, rx1242_done
+ eq rx1242_pos, -1, rx1242_fail
+ jump $I10
+ rx1242_done:
+ rx1242_cur."!cursor_fail"()
+ rx1242_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>")
+ .return (rx1242_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>" :subid("320_1261064023.05912") :method
-.annotate "line", 527
- new $P1239, "ResizablePMCArray"
- push $P1239, ":"
- .return ($P1239)
-.end
-
-
-.namespace ["NQP";"Regex"]
-.sub "_block1241" :anon :subid("321_1261064023.05912") :method :outer("319_1261064023.05912")
-.annotate "line", 529
- .local string rx1243_tgt
- .local int rx1243_pos
- .local int rx1243_off
- .local int rx1243_eos
- .local int rx1243_rep
- .local pmc rx1243_cur
- (rx1243_cur, rx1243_pos, rx1243_tgt) = self."!cursor_start"()
- rx1243_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx1243_cur
- .local pmc match
- .lex "$/", match
- length rx1243_eos, rx1243_tgt
- set rx1243_off, 0
- lt rx1243_pos, 2, rx1243_start
- sub rx1243_off, rx1243_pos, 1
- substr rx1243_tgt, rx1243_tgt, rx1243_off
- rx1243_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1244_done
- goto rxscan1244_scan
- rxscan1244_loop:
- ($P10) = rx1243_cur."from"()
- inc $P10
- set rx1243_pos, $P10
- ge rx1243_pos, rx1243_eos, rxscan1244_done
- rxscan1244_scan:
- set_addr $I10, rxscan1244_loop
- rx1243_cur."!mark_push"(0, rx1243_pos, $I10)
- rxscan1244_done:
- # rx literal "my"
- add $I11, rx1243_pos, 2
- gt $I11, rx1243_eos, rx1243_fail
- sub $I11, rx1243_pos, rx1243_off
- substr $S10, rx1243_tgt, $I11, 2
- ne $S10, "my", rx1243_fail
- add rx1243_pos, 2
- # rx pass
- rx1243_cur."!cursor_pass"(rx1243_pos, "")
- rx1243_cur."!cursor_debug"("PASS ", "", " at pos=", rx1243_pos)
- .return (rx1243_cur)
- rx1243_fail:
- (rx1243_rep, rx1243_pos, $I10, $P10) = rx1243_cur."!mark_fail"(0)
- lt rx1243_pos, -1, rx1243_done
- eq rx1243_pos, -1, rx1243_fail
- jump $I10
- rx1243_done:
- rx1243_cur."!cursor_fail"()
- rx1243_cur."!cursor_debug"("FAIL ", "")
- .return (rx1243_cur)
- .return ()
+.sub "!PREFIX__metachar:sym<:my>" :subid("320_1267204702.05125") :method
+.annotate "line", 531
+ new $P1244, "ResizablePMCArray"
+ push $P1244, ":"
+ .return ($P1244)
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>" :subid("322_1261064023.05912") :method :outer("318_1261064023.05912")
-.annotate "line", 527
- .local string rx1246_tgt
- .local int rx1246_pos
- .local int rx1246_off
- .local int rx1246_eos
- .local int rx1246_rep
- .local pmc rx1246_cur
- (rx1246_cur, rx1246_pos, rx1246_tgt) = self."!cursor_start"()
- rx1246_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
- .lex unicode:"$\x{a2}", rx1246_cur
- .local pmc match
- .lex "$/", match
- length rx1246_eos, rx1246_tgt
- set rx1246_off, 0
- lt rx1246_pos, 2, rx1246_start
- sub rx1246_off, rx1246_pos, 1
- substr rx1246_tgt, rx1246_tgt, rx1246_off
- rx1246_start:
+.sub "_block1246" :anon :subid("321_1267204702.05125") :method :outer("319_1267204702.05125")
+.annotate "line", 533
+ .local string rx1248_tgt
+ .local int rx1248_pos
+ .local int rx1248_off
+ .local int rx1248_eos
+ .local int rx1248_rep
+ .local pmc rx1248_cur
+ (rx1248_cur, rx1248_pos, rx1248_tgt) = self."!cursor_start"()
+ rx1248_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx1248_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1248_eos, rx1248_tgt
+ set rx1248_off, 0
+ lt rx1248_pos, 2, rx1248_start
+ sub rx1248_off, rx1248_pos, 1
+ substr rx1248_tgt, rx1248_tgt, rx1248_off
+ rx1248_start:
$I10 = self.'from'()
ne $I10, -1, rxscan1249_done
goto rxscan1249_scan
rxscan1249_loop:
- ($P10) = rx1246_cur."from"()
+ ($P10) = rx1248_cur."from"()
inc $P10
- set rx1246_pos, $P10
- ge rx1246_pos, rx1246_eos, rxscan1249_done
+ set rx1248_pos, $P10
+ ge rx1248_pos, rx1248_eos, rxscan1249_done
rxscan1249_scan:
set_addr $I10, rxscan1249_loop
- rx1246_cur."!mark_push"(0, rx1246_pos, $I10)
+ rx1248_cur."!mark_push"(0, rx1248_pos, $I10)
rxscan1249_done:
-.annotate "line", 533
- # rx enumcharlist negate=0 zerowidth
- ge rx1246_pos, rx1246_eos, rx1246_fail
- sub $I10, rx1246_pos, rx1246_off
- substr $S10, rx1246_tgt, $I10, 1
- index $I11, "{", $S10
- lt $I11, 0, rx1246_fail
- # rx subrule "codeblock" subtype=capture negate=
- rx1246_cur."!cursor_pos"(rx1246_pos)
- $P10 = rx1246_cur."codeblock"()
- unless $P10, rx1246_fail
- rx1246_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("codeblock")
- rx1246_pos = $P10."pos"()
-.annotate "line", 532
- # rx pass
- rx1246_cur."!cursor_pass"(rx1246_pos, "metachar:sym<{ }>")
- rx1246_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1246_pos)
- .return (rx1246_cur)
- rx1246_fail:
-.annotate "line", 527
- (rx1246_rep, rx1246_pos, $I10, $P10) = rx1246_cur."!mark_fail"(0)
- lt rx1246_pos, -1, rx1246_done
- eq rx1246_pos, -1, rx1246_fail
- jump $I10
- rx1246_done:
- rx1246_cur."!cursor_fail"()
- rx1246_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>")
- .return (rx1246_cur)
+ # rx literal "my"
+ add $I11, rx1248_pos, 2
+ gt $I11, rx1248_eos, rx1248_fail
+ sub $I11, rx1248_pos, rx1248_off
+ substr $S10, rx1248_tgt, $I11, 2
+ ne $S10, "my", rx1248_fail
+ add rx1248_pos, 2
+ # rx pass
+ rx1248_cur."!cursor_pass"(rx1248_pos, "")
+ rx1248_cur."!cursor_debug"("PASS ", "", " at pos=", rx1248_pos)
+ .return (rx1248_cur)
+ rx1248_fail:
+ (rx1248_rep, rx1248_pos, $I10, $P10) = rx1248_cur."!mark_fail"(0)
+ lt rx1248_pos, -1, rx1248_done
+ eq rx1248_pos, -1, rx1248_fail
+ jump $I10
+ rx1248_done:
+ rx1248_cur."!cursor_fail"()
+ rx1248_cur."!cursor_debug"("FAIL ", "")
+ .return (rx1248_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>" :subid("323_1261064023.05912") :method
-.annotate "line", 527
- new $P1248, "ResizablePMCArray"
- push $P1248, "{"
- .return ($P1248)
-.end
-
-
-.namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>" :subid("324_1261064023.05912") :method :outer("318_1261064023.05912")
-.annotate "line", 527
+.sub "metachar:sym<{ }>" :subid("322_1267204702.05125") :method :outer("318_1267204702.05125")
+.annotate "line", 531
.local string rx1251_tgt
.local int rx1251_pos
.local int rx1251_off
@@ -15344,7 +15313,7 @@
.local int rx1251_rep
.local pmc rx1251_cur
(rx1251_cur, rx1251_pos, rx1251_tgt) = self."!cursor_start"()
- rx1251_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+ rx1251_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
.lex unicode:"$\x{a2}", rx1251_cur
.local pmc match
.lex "$/", match
@@ -15382,26 +15351,26 @@
rx1251_pos = $P10."pos"()
.annotate "line", 536
# rx pass
- rx1251_cur."!cursor_pass"(rx1251_pos, "assertion:sym<{ }>")
- rx1251_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1251_pos)
+ rx1251_cur."!cursor_pass"(rx1251_pos, "metachar:sym<{ }>")
+ rx1251_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1251_pos)
.return (rx1251_cur)
rx1251_fail:
-.annotate "line", 527
+.annotate "line", 531
(rx1251_rep, rx1251_pos, $I10, $P10) = rx1251_cur."!mark_fail"(0)
lt rx1251_pos, -1, rx1251_done
eq rx1251_pos, -1, rx1251_fail
jump $I10
rx1251_done:
rx1251_cur."!cursor_fail"()
- rx1251_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>")
+ rx1251_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>")
.return (rx1251_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>" :subid("325_1261064023.05912") :method
-.annotate "line", 527
+.sub "!PREFIX__metachar:sym<{ }>" :subid("323_1267204702.05125") :method
+.annotate "line", 531
new $P1253, "ResizablePMCArray"
push $P1253, "{"
.return ($P1253)
@@ -15409,10 +15378,8 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>" :subid("326_1261064023.05912") :method :outer("318_1261064023.05912")
-.annotate "line", 527
- .const 'Sub' $P1264 = "328_1261064023.05912"
- capture_lex $P1264
+.sub "assertion:sym<{ }>" :subid("324_1267204702.05125") :method :outer("318_1267204702.05125")
+.annotate "line", 531
.local string rx1256_tgt
.local int rx1256_pos
.local int rx1256_off
@@ -15420,8 +15387,7 @@
.local int rx1256_rep
.local pmc rx1256_cur
(rx1256_cur, rx1256_pos, rx1256_tgt) = self."!cursor_start"()
- rx1256_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx1256_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+ rx1256_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
.lex unicode:"$\x{a2}", rx1256_cur
.local pmc match
.lex "$/", match
@@ -15444,575 +15410,652 @@
rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
rxscan1259_done:
.annotate "line", 541
+ # rx enumcharlist negate=0 zerowidth
+ ge rx1256_pos, rx1256_eos, rx1256_fail
+ sub $I10, rx1256_pos, rx1256_off
+ substr $S10, rx1256_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx1256_fail
+ # rx subrule "codeblock" subtype=capture negate=
+ rx1256_cur."!cursor_pos"(rx1256_pos)
+ $P10 = rx1256_cur."codeblock"()
+ unless $P10, rx1256_fail
+ rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("codeblock")
+ rx1256_pos = $P10."pos"()
+.annotate "line", 540
+ # rx pass
+ rx1256_cur."!cursor_pass"(rx1256_pos, "assertion:sym<{ }>")
+ rx1256_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1256_pos)
+ .return (rx1256_cur)
+ rx1256_fail:
+.annotate "line", 531
+ (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
+ lt rx1256_pos, -1, rx1256_done
+ eq rx1256_pos, -1, rx1256_fail
+ jump $I10
+ rx1256_done:
+ rx1256_cur."!cursor_fail"()
+ rx1256_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>")
+ .return (rx1256_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__assertion:sym<{ }>" :subid("325_1267204702.05125") :method
+.annotate "line", 531
+ new $P1258, "ResizablePMCArray"
+ push $P1258, "{"
+ .return ($P1258)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "assertion:sym<name>" :subid("326_1267204702.05125") :method :outer("318_1267204702.05125")
+.annotate "line", 531
+ .const 'Sub' $P1269 = "328_1267204702.05125"
+ capture_lex $P1269
+ .local string rx1261_tgt
+ .local int rx1261_pos
+ .local int rx1261_off
+ .local int rx1261_eos
+ .local int rx1261_rep
+ .local pmc rx1261_cur
+ (rx1261_cur, rx1261_pos, rx1261_tgt) = self."!cursor_start"()
+ rx1261_cur."!cursor_debug"("START ", "assertion:sym<name>")
+ rx1261_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
+ .lex unicode:"$\x{a2}", rx1261_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1261_eos, rx1261_tgt
+ set rx1261_off, 0
+ lt rx1261_pos, 2, rx1261_start
+ sub rx1261_off, rx1261_pos, 1
+ substr rx1261_tgt, rx1261_tgt, rx1261_off
+ rx1261_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1264_done
+ goto rxscan1264_scan
+ rxscan1264_loop:
+ ($P10) = rx1261_cur."from"()
+ inc $P10
+ set rx1261_pos, $P10
+ ge rx1261_pos, rx1261_eos, rxscan1264_done
+ rxscan1264_scan:
+ set_addr $I10, rxscan1264_loop
+ rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
+ rxscan1264_done:
+.annotate "line", 545
# rx subcapture "longname"
- set_addr $I10, rxcap_1260_fail
- rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
+ set_addr $I10, rxcap_1265_fail
+ rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx1256_pos, rx1256_off
- find_not_cclass $I11, 8192, rx1256_tgt, $I10, rx1256_eos
+ sub $I10, rx1261_pos, rx1261_off
+ find_not_cclass $I11, 8192, rx1261_tgt, $I10, rx1261_eos
add $I12, $I10, 1
- lt $I11, $I12, rx1256_fail
- add rx1256_pos, rx1256_off, $I11
- set_addr $I10, rxcap_1260_fail
- ($I12, $I11) = rx1256_cur."!mark_peek"($I10)
- rx1256_cur."!cursor_pos"($I11)
- ($P10) = rx1256_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1256_pos, "")
- rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx1261_fail
+ add rx1261_pos, rx1261_off, $I11
+ set_addr $I10, rxcap_1265_fail
+ ($I12, $I11) = rx1261_cur."!mark_peek"($I10)
+ rx1261_cur."!cursor_pos"($I11)
+ ($P10) = rx1261_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1261_pos, "")
+ rx1261_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("longname")
- goto rxcap_1260_done
- rxcap_1260_fail:
- goto rx1256_fail
- rxcap_1260_done:
-.annotate "line", 548
- # rx rxquantr1261 ** 0..1
- set_addr $I1267, rxquantr1261_done
- rx1256_cur."!mark_push"(0, rx1256_pos, $I1267)
- rxquantr1261_loop:
- alt1262_0:
-.annotate "line", 542
- set_addr $I10, alt1262_1
- rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
-.annotate "line", 543
+ goto rxcap_1265_done
+ rxcap_1265_fail:
+ goto rx1261_fail
+ rxcap_1265_done:
+.annotate "line", 552
+ # rx rxquantr1266 ** 0..1
+ set_addr $I1272, rxquantr1266_done
+ rx1261_cur."!mark_push"(0, rx1261_pos, $I1272)
+ rxquantr1266_loop:
+ alt1267_0:
+.annotate "line", 546
+ set_addr $I10, alt1267_1
+ rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
+.annotate "line", 547
# rx subrule "before" subtype=zerowidth negate=
- rx1256_cur."!cursor_pos"(rx1256_pos)
- .const 'Sub' $P1264 = "328_1261064023.05912"
- capture_lex $P1264
- $P10 = rx1256_cur."before"($P1264)
- unless $P10, rx1256_fail
- goto alt1262_end
- alt1262_1:
- set_addr $I10, alt1262_2
- rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
-.annotate "line", 544
+ rx1261_cur."!cursor_pos"(rx1261_pos)
+ .const 'Sub' $P1269 = "328_1267204702.05125"
+ capture_lex $P1269
+ $P10 = rx1261_cur."before"($P1269)
+ unless $P10, rx1261_fail
+ goto alt1267_end
+ alt1267_1:
+ set_addr $I10, alt1267_2
+ rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
+.annotate "line", 548
# rx literal "="
- add $I11, rx1256_pos, 1
- gt $I11, rx1256_eos, rx1256_fail
- sub $I11, rx1256_pos, rx1256_off
- substr $S10, rx1256_tgt, $I11, 1
- ne $S10, "=", rx1256_fail
- add rx1256_pos, 1
+ add $I11, rx1261_pos, 1
+ gt $I11, rx1261_eos, rx1261_fail
+ sub $I11, rx1261_pos, rx1261_off
+ substr $S10, rx1261_tgt, $I11, 1
+ ne $S10, "=", rx1261_fail
+ add rx1261_pos, 1
# rx subrule "assertion" subtype=capture negate=
- rx1256_cur."!cursor_pos"(rx1256_pos)
- $P10 = rx1256_cur."assertion"()
- unless $P10, rx1256_fail
- rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ rx1261_cur."!cursor_pos"(rx1261_pos)
+ $P10 = rx1261_cur."assertion"()
+ unless $P10, rx1261_fail
+ rx1261_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx1256_pos = $P10."pos"()
- goto alt1262_end
- alt1262_2:
- set_addr $I10, alt1262_3
- rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
-.annotate "line", 545
+ rx1261_pos = $P10."pos"()
+ goto alt1267_end
+ alt1267_2:
+ set_addr $I10, alt1267_3
+ rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
+.annotate "line", 549
# rx literal ":"
- add $I11, rx1256_pos, 1
- gt $I11, rx1256_eos, rx1256_fail
- sub $I11, rx1256_pos, rx1256_off
- substr $S10, rx1256_tgt, $I11, 1
- ne $S10, ":", rx1256_fail
- add rx1256_pos, 1
+ add $I11, rx1261_pos, 1
+ gt $I11, rx1261_eos, rx1261_fail
+ sub $I11, rx1261_pos, rx1261_off
+ substr $S10, rx1261_tgt, $I11, 1
+ ne $S10, ":", rx1261_fail
+ add rx1261_pos, 1
# rx subrule "arglist" subtype=capture negate=
- rx1256_cur."!cursor_pos"(rx1256_pos)
- $P10 = rx1256_cur."arglist"()
- unless $P10, rx1256_fail
- rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ rx1261_cur."!cursor_pos"(rx1261_pos)
+ $P10 = rx1261_cur."arglist"()
+ unless $P10, rx1261_fail
+ rx1261_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx1256_pos = $P10."pos"()
- goto alt1262_end
- alt1262_3:
- set_addr $I10, alt1262_4
- rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
-.annotate "line", 546
+ rx1261_pos = $P10."pos"()
+ goto alt1267_end
+ alt1267_3:
+ set_addr $I10, alt1267_4
+ rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
+.annotate "line", 550
# rx literal "("
- add $I11, rx1256_pos, 1
- gt $I11, rx1256_eos, rx1256_fail
- sub $I11, rx1256_pos, rx1256_off
- substr $S10, rx1256_tgt, $I11, 1
- ne $S10, "(", rx1256_fail
- add rx1256_pos, 1
+ add $I11, rx1261_pos, 1
+ gt $I11, rx1261_eos, rx1261_fail
+ sub $I11, rx1261_pos, rx1261_off
+ substr $S10, rx1261_tgt, $I11, 1
+ ne $S10, "(", rx1261_fail
+ add rx1261_pos, 1
# rx subrule "LANG" subtype=capture negate=
- rx1256_cur."!cursor_pos"(rx1256_pos)
- $P10 = rx1256_cur."LANG"("MAIN", "arglist")
- unless $P10, rx1256_fail
- rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ rx1261_cur."!cursor_pos"(rx1261_pos)
+ $P10 = rx1261_cur."LANG"("MAIN", "arglist")
+ unless $P10, rx1261_fail
+ rx1261_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx1256_pos = $P10."pos"()
+ rx1261_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx1256_pos, 1
- gt $I11, rx1256_eos, rx1256_fail
- sub $I11, rx1256_pos, rx1256_off
- substr $S10, rx1256_tgt, $I11, 1
- ne $S10, ")", rx1256_fail
- add rx1256_pos, 1
- goto alt1262_end
- alt1262_4:
-.annotate "line", 547
+ add $I11, rx1261_pos, 1
+ gt $I11, rx1261_eos, rx1261_fail
+ sub $I11, rx1261_pos, rx1261_off
+ substr $S10, rx1261_tgt, $I11, 1
+ ne $S10, ")", rx1261_fail
+ add rx1261_pos, 1
+ goto alt1267_end
+ alt1267_4:
+.annotate "line", 551
# rx subrule "normspace" subtype=method negate=
- rx1256_cur."!cursor_pos"(rx1256_pos)
- $P10 = rx1256_cur."normspace"()
- unless $P10, rx1256_fail
- rx1256_pos = $P10."pos"()
+ rx1261_cur."!cursor_pos"(rx1261_pos)
+ $P10 = rx1261_cur."normspace"()
+ unless $P10, rx1261_fail
+ rx1261_pos = $P10."pos"()
# rx subrule "nibbler" subtype=capture negate=
- rx1256_cur."!cursor_pos"(rx1256_pos)
- $P10 = rx1256_cur."nibbler"()
- unless $P10, rx1256_fail
- rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ rx1261_cur."!cursor_pos"(rx1261_pos)
+ $P10 = rx1261_cur."nibbler"()
+ unless $P10, rx1261_fail
+ rx1261_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx1256_pos = $P10."pos"()
- alt1262_end:
-.annotate "line", 548
- (rx1256_rep) = rx1256_cur."!mark_commit"($I1267)
- rxquantr1261_done:
-.annotate "line", 540
+ rx1261_pos = $P10."pos"()
+ alt1267_end:
+.annotate "line", 552
+ (rx1261_rep) = rx1261_cur."!mark_commit"($I1272)
+ rxquantr1266_done:
+.annotate "line", 544
# rx pass
- rx1256_cur."!cursor_pass"(rx1256_pos, "assertion:sym<name>")
- rx1256_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx1256_pos)
- .return (rx1256_cur)
- rx1256_fail:
-.annotate "line", 527
- (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
- lt rx1256_pos, -1, rx1256_done
- eq rx1256_pos, -1, rx1256_fail
- jump $I10
- rx1256_done:
- rx1256_cur."!cursor_fail"()
- rx1256_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
- .return (rx1256_cur)
+ rx1261_cur."!cursor_pass"(rx1261_pos, "assertion:sym<name>")
+ rx1261_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx1261_pos)
+ .return (rx1261_cur)
+ rx1261_fail:
+.annotate "line", 531
+ (rx1261_rep, rx1261_pos, $I10, $P10) = rx1261_cur."!mark_fail"(0)
+ lt rx1261_pos, -1, rx1261_done
+ eq rx1261_pos, -1, rx1261_fail
+ jump $I10
+ rx1261_done:
+ rx1261_cur."!cursor_fail"()
+ rx1261_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
+ .return (rx1261_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>" :subid("327_1261064023.05912") :method
-.annotate "line", 527
- new $P1258, "ResizablePMCArray"
- push $P1258, ""
- .return ($P1258)
+.sub "!PREFIX__assertion:sym<name>" :subid("327_1267204702.05125") :method
+.annotate "line", 531
+ new $P1263, "ResizablePMCArray"
+ push $P1263, ""
+ .return ($P1263)
.end
.namespace ["NQP";"Regex"]
-.sub "_block1263" :anon :subid("328_1261064023.05912") :method :outer("326_1261064023.05912")
-.annotate "line", 543
- .local string rx1265_tgt
- .local int rx1265_pos
- .local int rx1265_off
- .local int rx1265_eos
- .local int rx1265_rep
- .local pmc rx1265_cur
- (rx1265_cur, rx1265_pos, rx1265_tgt) = self."!cursor_start"()
- rx1265_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx1265_cur
- .local pmc match
- .lex "$/", match
- length rx1265_eos, rx1265_tgt
- set rx1265_off, 0
- lt rx1265_pos, 2, rx1265_start
- sub rx1265_off, rx1265_pos, 1
- substr rx1265_tgt, rx1265_tgt, rx1265_off
- rx1265_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1266_done
- goto rxscan1266_scan
- rxscan1266_loop:
- ($P10) = rx1265_cur."from"()
- inc $P10
- set rx1265_pos, $P10
- ge rx1265_pos, rx1265_eos, rxscan1266_done
- rxscan1266_scan:
- set_addr $I10, rxscan1266_loop
- rx1265_cur."!mark_push"(0, rx1265_pos, $I10)
- rxscan1266_done:
+.sub "_block1268" :anon :subid("328_1267204702.05125") :method :outer("326_1267204702.05125")
+.annotate "line", 547
+ .local string rx1270_tgt
+ .local int rx1270_pos
+ .local int rx1270_off
+ .local int rx1270_eos
+ .local int rx1270_rep
+ .local pmc rx1270_cur
+ (rx1270_cur, rx1270_pos, rx1270_tgt) = self."!cursor_start"()
+ rx1270_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx1270_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1270_eos, rx1270_tgt
+ set rx1270_off, 0
+ lt rx1270_pos, 2, rx1270_start
+ sub rx1270_off, rx1270_pos, 1
+ substr rx1270_tgt, rx1270_tgt, rx1270_off
+ rx1270_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1271_done
+ goto rxscan1271_scan
+ rxscan1271_loop:
+ ($P10) = rx1270_cur."from"()
+ inc $P10
+ set rx1270_pos, $P10
+ ge rx1270_pos, rx1270_eos, rxscan1271_done
+ rxscan1271_scan:
+ set_addr $I10, rxscan1271_loop
+ rx1270_cur."!mark_push"(0, rx1270_pos, $I10)
+ rxscan1271_done:
# rx literal ">"
- add $I11, rx1265_pos, 1
- gt $I11, rx1265_eos, rx1265_fail
- sub $I11, rx1265_pos, rx1265_off
- substr $S10, rx1265_tgt, $I11, 1
- ne $S10, ">", rx1265_fail
- add rx1265_pos, 1
- # rx pass
- rx1265_cur."!cursor_pass"(rx1265_pos, "")
- rx1265_cur."!cursor_debug"("PASS ", "", " at pos=", rx1265_pos)
- .return (rx1265_cur)
- rx1265_fail:
- (rx1265_rep, rx1265_pos, $I10, $P10) = rx1265_cur."!mark_fail"(0)
- lt rx1265_pos, -1, rx1265_done
- eq rx1265_pos, -1, rx1265_fail
- jump $I10
- rx1265_done:
- rx1265_cur."!cursor_fail"()
- rx1265_cur."!cursor_debug"("FAIL ", "")
- .return (rx1265_cur)
+ add $I11, rx1270_pos, 1
+ gt $I11, rx1270_eos, rx1270_fail
+ sub $I11, rx1270_pos, rx1270_off
+ substr $S10, rx1270_tgt, $I11, 1
+ ne $S10, ">", rx1270_fail
+ add rx1270_pos, 1
+ # rx pass
+ rx1270_cur."!cursor_pass"(rx1270_pos, "")
+ rx1270_cur."!cursor_debug"("PASS ", "", " at pos=", rx1270_pos)
+ .return (rx1270_cur)
+ rx1270_fail:
+ (rx1270_rep, rx1270_pos, $I10, $P10) = rx1270_cur."!mark_fail"(0)
+ lt rx1270_pos, -1, rx1270_done
+ eq rx1270_pos, -1, rx1270_fail
+ jump $I10
+ rx1270_done:
+ rx1270_cur."!cursor_fail"()
+ rx1270_cur."!cursor_debug"("FAIL ", "")
+ .return (rx1270_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "codeblock" :subid("329_1261064023.05912") :method :outer("318_1261064023.05912")
-.annotate "line", 527
- .local string rx1269_tgt
- .local int rx1269_pos
- .local int rx1269_off
- .local int rx1269_eos
- .local int rx1269_rep
- .local pmc rx1269_cur
- (rx1269_cur, rx1269_pos, rx1269_tgt) = self."!cursor_start"()
- rx1269_cur."!cursor_debug"("START ", "codeblock")
- .lex unicode:"$\x{a2}", rx1269_cur
- .local pmc match
- .lex "$/", match
- length rx1269_eos, rx1269_tgt
- set rx1269_off, 0
- lt rx1269_pos, 2, rx1269_start
- sub rx1269_off, rx1269_pos, 1
- substr rx1269_tgt, rx1269_tgt, rx1269_off
- rx1269_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1273_done
- goto rxscan1273_scan
- rxscan1273_loop:
- ($P10) = rx1269_cur."from"()
- inc $P10
- set rx1269_pos, $P10
- ge rx1269_pos, rx1269_eos, rxscan1273_done
- rxscan1273_scan:
- set_addr $I10, rxscan1273_loop
- rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
- rxscan1273_done:
-.annotate "line", 553
+.sub "codeblock" :subid("329_1267204702.05125") :method :outer("318_1267204702.05125")
+.annotate "line", 531
+ .local string rx1274_tgt
+ .local int rx1274_pos
+ .local int rx1274_off
+ .local int rx1274_eos
+ .local int rx1274_rep
+ .local pmc rx1274_cur
+ (rx1274_cur, rx1274_pos, rx1274_tgt) = self."!cursor_start"()
+ rx1274_cur."!cursor_debug"("START ", "codeblock")
+ .lex unicode:"$\x{a2}", rx1274_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1274_eos, rx1274_tgt
+ set rx1274_off, 0
+ lt rx1274_pos, 2, rx1274_start
+ sub rx1274_off, rx1274_pos, 1
+ substr rx1274_tgt, rx1274_tgt, rx1274_off
+ rx1274_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1278_done
+ goto rxscan1278_scan
+ rxscan1278_loop:
+ ($P10) = rx1274_cur."from"()
+ inc $P10
+ set rx1274_pos, $P10
+ ge rx1274_pos, rx1274_eos, rxscan1278_done
+ rxscan1278_scan:
+ set_addr $I10, rxscan1278_loop
+ rx1274_cur."!mark_push"(0, rx1274_pos, $I10)
+ rxscan1278_done:
+.annotate "line", 557
# rx subrule "LANG" subtype=capture negate=
- rx1269_cur."!cursor_pos"(rx1269_pos)
- $P10 = rx1269_cur."LANG"("MAIN", "pblock")
- unless $P10, rx1269_fail
- rx1269_cur."!mark_push"(0, -1, 0, $P10)
+ rx1274_cur."!cursor_pos"(rx1274_pos)
+ $P10 = rx1274_cur."LANG"("MAIN", "pblock")
+ unless $P10, rx1274_fail
+ rx1274_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx1269_pos = $P10."pos"()
-.annotate "line", 552
+ rx1274_pos = $P10."pos"()
+.annotate "line", 556
# rx pass
- rx1269_cur."!cursor_pass"(rx1269_pos, "codeblock")
- rx1269_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1269_pos)
- .return (rx1269_cur)
- rx1269_fail:
-.annotate "line", 527
- (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
- lt rx1269_pos, -1, rx1269_done
- eq rx1269_pos, -1, rx1269_fail
- jump $I10
- rx1269_done:
- rx1269_cur."!cursor_fail"()
- rx1269_cur."!cursor_debug"("FAIL ", "codeblock")
- .return (rx1269_cur)
+ rx1274_cur."!cursor_pass"(rx1274_pos, "codeblock")
+ rx1274_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1274_pos)
+ .return (rx1274_cur)
+ rx1274_fail:
+.annotate "line", 531
+ (rx1274_rep, rx1274_pos, $I10, $P10) = rx1274_cur."!mark_fail"(0)
+ lt rx1274_pos, -1, rx1274_done
+ eq rx1274_pos, -1, rx1274_fail
+ jump $I10
+ rx1274_done:
+ rx1274_cur."!cursor_fail"()
+ rx1274_cur."!cursor_debug"("FAIL ", "codeblock")
+ .return (rx1274_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock" :subid("330_1261064023.05912") :method
-.annotate "line", 527
- $P1271 = self."!PREFIX__!subrule"("block", "")
- new $P1272, "ResizablePMCArray"
- push $P1272, $P1271
- .return ($P1272)
+.sub "!PREFIX__codeblock" :subid("330_1267204702.05125") :method
+.annotate "line", 531
+ $P1276 = self."!PREFIX__!subrule"("block", "")
+ new $P1277, "ResizablePMCArray"
+ push $P1277, $P1276
+ .return ($P1277)
.end
### .include 'gen/nqp-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064035.64813")
+.sub "_block11" :anon :subid("10_1267204714.47172")
.annotate "line", 0
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
.annotate "line", 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
- $P2165 = $P14()
+ $P2168 = $P14()
.annotate "line", 1
- .return ($P2165)
+ .return ($P2168)
.end
.namespace []
-.sub "" :load :init :subid("post126") :outer("10_1261064035.64813")
+.sub "" :load :init :subid("post126") :outer("10_1267204714.47172")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064035.64813"
+ .const 'Sub' $P12 = "10_1267204714.47172"
.local pmc block
set block, $P12
- $P2166 = get_root_global ["parrot"], "P6metaclass"
- $P2166."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+ $P2169 = get_root_global ["parrot"], "P6metaclass"
+ $P2169."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["NQP";"Actions"]
-.sub "_block13" :subid("11_1261064035.64813") :outer("10_1261064035.64813")
+.sub "_block13" :subid("11_1267204714.47172") :outer("10_1267204714.47172")
.annotate "line", 3
- .const 'Sub' $P2161 = "125_1261064035.64813"
- capture_lex $P2161
- get_hll_global $P2097, ["NQP";"RegexActions"], "_block2096"
- capture_lex $P2097
- .const 'Sub' $P2086 = "119_1261064035.64813"
- capture_lex $P2086
- .const 'Sub' $P2074 = "118_1261064035.64813"
- capture_lex $P2074
- .const 'Sub' $P2064 = "117_1261064035.64813"
- capture_lex $P2064
- .const 'Sub' $P2054 = "116_1261064035.64813"
- capture_lex $P2054
- .const 'Sub' $P2044 = "115_1261064035.64813"
- capture_lex $P2044
- .const 'Sub' $P2030 = "114_1261064035.64813"
- capture_lex $P2030
- .const 'Sub' $P2020 = "113_1261064035.64813"
- capture_lex $P2020
- .const 'Sub' $P1983 = "112_1261064035.64813"
- capture_lex $P1983
- .const 'Sub' $P1969 = "111_1261064035.64813"
- capture_lex $P1969
- .const 'Sub' $P1959 = "110_1261064035.64813"
- capture_lex $P1959
- .const 'Sub' $P1949 = "109_1261064035.64813"
- capture_lex $P1949
- .const 'Sub' $P1939 = "108_1261064035.64813"
- capture_lex $P1939
- .const 'Sub' $P1929 = "107_1261064035.64813"
- capture_lex $P1929
- .const 'Sub' $P1919 = "106_1261064035.64813"
- capture_lex $P1919
- .const 'Sub' $P1891 = "105_1261064035.64813"
- capture_lex $P1891
- .const 'Sub' $P1874 = "104_1261064035.64813"
- capture_lex $P1874
- .const 'Sub' $P1864 = "103_1261064035.64813"
- capture_lex $P1864
- .const 'Sub' $P1852 = "102_1261064035.64813"
- capture_lex $P1852
- .const 'Sub' $P1840 = "101_1261064035.64813"
- capture_lex $P1840
- .const 'Sub' $P1828 = "100_1261064035.64813"
+ .const 'Sub' $P2164 = "125_1267204714.47172"
+ capture_lex $P2164
+ get_hll_global $P2100, ["NQP";"RegexActions"], "_block2099"
+ capture_lex $P2100
+ .const 'Sub' $P2089 = "119_1267204714.47172"
+ capture_lex $P2089
+ .const 'Sub' $P2077 = "118_1267204714.47172"
+ capture_lex $P2077
+ .const 'Sub' $P2067 = "117_1267204714.47172"
+ capture_lex $P2067
+ .const 'Sub' $P2057 = "116_1267204714.47172"
+ capture_lex $P2057
+ .const 'Sub' $P2047 = "115_1267204714.47172"
+ capture_lex $P2047
+ .const 'Sub' $P2033 = "114_1267204714.47172"
+ capture_lex $P2033
+ .const 'Sub' $P2023 = "113_1267204714.47172"
+ capture_lex $P2023
+ .const 'Sub' $P1986 = "112_1267204714.47172"
+ capture_lex $P1986
+ .const 'Sub' $P1972 = "111_1267204714.47172"
+ capture_lex $P1972
+ .const 'Sub' $P1962 = "110_1267204714.47172"
+ capture_lex $P1962
+ .const 'Sub' $P1952 = "109_1267204714.47172"
+ capture_lex $P1952
+ .const 'Sub' $P1942 = "108_1267204714.47172"
+ capture_lex $P1942
+ .const 'Sub' $P1932 = "107_1267204714.47172"
+ capture_lex $P1932
+ .const 'Sub' $P1922 = "106_1267204714.47172"
+ capture_lex $P1922
+ .const 'Sub' $P1894 = "105_1267204714.47172"
+ capture_lex $P1894
+ .const 'Sub' $P1877 = "104_1267204714.47172"
+ capture_lex $P1877
+ .const 'Sub' $P1867 = "103_1267204714.47172"
+ capture_lex $P1867
+ .const 'Sub' $P1854 = "102_1267204714.47172"
+ capture_lex $P1854
+ .const 'Sub' $P1841 = "101_1267204714.47172"
+ capture_lex $P1841
+ .const 'Sub' $P1828 = "100_1267204714.47172"
capture_lex $P1828
- .const 'Sub' $P1818 = "99_1261064035.64813"
+ .const 'Sub' $P1818 = "99_1267204714.47172"
capture_lex $P1818
- .const 'Sub' $P1789 = "98_1261064035.64813"
+ .const 'Sub' $P1789 = "98_1267204714.47172"
capture_lex $P1789
- .const 'Sub' $P1767 = "97_1261064035.64813"
- capture_lex $P1767
- .const 'Sub' $P1757 = "96_1261064035.64813"
- capture_lex $P1757
- .const 'Sub' $P1747 = "95_1261064035.64813"
- capture_lex $P1747
- .const 'Sub' $P1720 = "94_1261064035.64813"
- capture_lex $P1720
- .const 'Sub' $P1702 = "93_1261064035.64813"
- capture_lex $P1702
- .const 'Sub' $P1692 = "92_1261064035.64813"
- capture_lex $P1692
- .const 'Sub' $P1608 = "89_1261064035.64813"
- capture_lex $P1608
- .const 'Sub' $P1598 = "88_1261064035.64813"
- capture_lex $P1598
- .const 'Sub' $P1569 = "87_1261064035.64813"
- capture_lex $P1569
- .const 'Sub' $P1527 = "86_1261064035.64813"
- capture_lex $P1527
- .const 'Sub' $P1511 = "85_1261064035.64813"
- capture_lex $P1511
- .const 'Sub' $P1502 = "84_1261064035.64813"
- capture_lex $P1502
- .const 'Sub' $P1470 = "83_1261064035.64813"
- capture_lex $P1470
- .const 'Sub' $P1371 = "80_1261064035.64813"
- capture_lex $P1371
- .const 'Sub' $P1354 = "79_1261064035.64813"
- capture_lex $P1354
- .const 'Sub' $P1334 = "78_1261064035.64813"
- capture_lex $P1334
- .const 'Sub' $P1250 = "77_1261064035.64813"
- capture_lex $P1250
- .const 'Sub' $P1226 = "75_1261064035.64813"
- capture_lex $P1226
- .const 'Sub' $P1192 = "73_1261064035.64813"
- capture_lex $P1192
- .const 'Sub' $P1142 = "71_1261064035.64813"
- capture_lex $P1142
- .const 'Sub' $P1132 = "70_1261064035.64813"
- capture_lex $P1132
- .const 'Sub' $P1122 = "69_1261064035.64813"
- capture_lex $P1122
- .const 'Sub' $P1051 = "67_1261064035.64813"
- capture_lex $P1051
- .const 'Sub' $P1034 = "66_1261064035.64813"
- capture_lex $P1034
- .const 'Sub' $P1024 = "65_1261064035.64813"
- capture_lex $P1024
- .const 'Sub' $P1014 = "64_1261064035.64813"
- capture_lex $P1014
- .const 'Sub' $P1004 = "63_1261064035.64813"
- capture_lex $P1004
- .const 'Sub' $P980 = "62_1261064035.64813"
- capture_lex $P980
- .const 'Sub' $P927 = "61_1261064035.64813"
- capture_lex $P927
- .const 'Sub' $P917 = "60_1261064035.64813"
- capture_lex $P917
- .const 'Sub' $P828 = "58_1261064035.64813"
- capture_lex $P828
- .const 'Sub' $P802 = "57_1261064035.64813"
- capture_lex $P802
- .const 'Sub' $P786 = "56_1261064035.64813"
- capture_lex $P786
- .const 'Sub' $P776 = "55_1261064035.64813"
- capture_lex $P776
- .const 'Sub' $P766 = "54_1261064035.64813"
- capture_lex $P766
- .const 'Sub' $P756 = "53_1261064035.64813"
- capture_lex $P756
- .const 'Sub' $P746 = "52_1261064035.64813"
- capture_lex $P746
- .const 'Sub' $P736 = "51_1261064035.64813"
- capture_lex $P736
- .const 'Sub' $P726 = "50_1261064035.64813"
- capture_lex $P726
- .const 'Sub' $P716 = "49_1261064035.64813"
- capture_lex $P716
- .const 'Sub' $P706 = "48_1261064035.64813"
- capture_lex $P706
- .const 'Sub' $P696 = "47_1261064035.64813"
- capture_lex $P696
- .const 'Sub' $P686 = "46_1261064035.64813"
- capture_lex $P686
- .const 'Sub' $P676 = "45_1261064035.64813"
- capture_lex $P676
- .const 'Sub' $P666 = "44_1261064035.64813"
- capture_lex $P666
- .const 'Sub' $P656 = "43_1261064035.64813"
- capture_lex $P656
- .const 'Sub' $P638 = "42_1261064035.64813"
- capture_lex $P638
- .const 'Sub' $P603 = "41_1261064035.64813"
- capture_lex $P603
- .const 'Sub' $P587 = "40_1261064035.64813"
- capture_lex $P587
- .const 'Sub' $P566 = "39_1261064035.64813"
- capture_lex $P566
- .const 'Sub' $P546 = "38_1261064035.64813"
- capture_lex $P546
- .const 'Sub' $P533 = "37_1261064035.64813"
- capture_lex $P533
- .const 'Sub' $P507 = "36_1261064035.64813"
- capture_lex $P507
- .const 'Sub' $P471 = "35_1261064035.64813"
- capture_lex $P471
- .const 'Sub' $P454 = "34_1261064035.64813"
- capture_lex $P454
- .const 'Sub' $P440 = "33_1261064035.64813"
- capture_lex $P440
- .const 'Sub' $P387 = "31_1261064035.64813"
- capture_lex $P387
- .const 'Sub' $P374 = "30_1261064035.64813"
- capture_lex $P374
- .const 'Sub' $P355 = "29_1261064035.64813"
- capture_lex $P355
- .const 'Sub' $P345 = "28_1261064035.64813"
- capture_lex $P345
- .const 'Sub' $P335 = "27_1261064035.64813"
- capture_lex $P335
- .const 'Sub' $P319 = "26_1261064035.64813"
- capture_lex $P319
- .const 'Sub' $P259 = "24_1261064035.64813"
- capture_lex $P259
- .const 'Sub' $P210 = "22_1261064035.64813"
- capture_lex $P210
- .const 'Sub' $P191 = "21_1261064035.64813"
- capture_lex $P191
- .const 'Sub' $P158 = "20_1261064035.64813"
- capture_lex $P158
- .const 'Sub' $P148 = "19_1261064035.64813"
- capture_lex $P148
- .const 'Sub' $P94 = "18_1261064035.64813"
- capture_lex $P94
- .const 'Sub' $P79 = "17_1261064035.64813"
- capture_lex $P79
- .const 'Sub' $P61 = "16_1261064035.64813"
+ .const 'Sub' $P1769 = "97_1267204714.47172"
+ capture_lex $P1769
+ .const 'Sub' $P1759 = "96_1267204714.47172"
+ capture_lex $P1759
+ .const 'Sub' $P1749 = "95_1267204714.47172"
+ capture_lex $P1749
+ .const 'Sub' $P1722 = "94_1267204714.47172"
+ capture_lex $P1722
+ .const 'Sub' $P1704 = "93_1267204714.47172"
+ capture_lex $P1704
+ .const 'Sub' $P1694 = "92_1267204714.47172"
+ capture_lex $P1694
+ .const 'Sub' $P1610 = "89_1267204714.47172"
+ capture_lex $P1610
+ .const 'Sub' $P1600 = "88_1267204714.47172"
+ capture_lex $P1600
+ .const 'Sub' $P1571 = "87_1267204714.47172"
+ capture_lex $P1571
+ .const 'Sub' $P1529 = "86_1267204714.47172"
+ capture_lex $P1529
+ .const 'Sub' $P1513 = "85_1267204714.47172"
+ capture_lex $P1513
+ .const 'Sub' $P1504 = "84_1267204714.47172"
+ capture_lex $P1504
+ .const 'Sub' $P1472 = "83_1267204714.47172"
+ capture_lex $P1472
+ .const 'Sub' $P1373 = "80_1267204714.47172"
+ capture_lex $P1373
+ .const 'Sub' $P1356 = "79_1267204714.47172"
+ capture_lex $P1356
+ .const 'Sub' $P1336 = "78_1267204714.47172"
+ capture_lex $P1336
+ .const 'Sub' $P1252 = "77_1267204714.47172"
+ capture_lex $P1252
+ .const 'Sub' $P1228 = "75_1267204714.47172"
+ capture_lex $P1228
+ .const 'Sub' $P1194 = "73_1267204714.47172"
+ capture_lex $P1194
+ .const 'Sub' $P1144 = "71_1267204714.47172"
+ capture_lex $P1144
+ .const 'Sub' $P1134 = "70_1267204714.47172"
+ capture_lex $P1134
+ .const 'Sub' $P1124 = "69_1267204714.47172"
+ capture_lex $P1124
+ .const 'Sub' $P1053 = "67_1267204714.47172"
+ capture_lex $P1053
+ .const 'Sub' $P1036 = "66_1267204714.47172"
+ capture_lex $P1036
+ .const 'Sub' $P1026 = "65_1267204714.47172"
+ capture_lex $P1026
+ .const 'Sub' $P1016 = "64_1267204714.47172"
+ capture_lex $P1016
+ .const 'Sub' $P1006 = "63_1267204714.47172"
+ capture_lex $P1006
+ .const 'Sub' $P982 = "62_1267204714.47172"
+ capture_lex $P982
+ .const 'Sub' $P929 = "61_1267204714.47172"
+ capture_lex $P929
+ .const 'Sub' $P919 = "60_1267204714.47172"
+ capture_lex $P919
+ .const 'Sub' $P830 = "58_1267204714.47172"
+ capture_lex $P830
+ .const 'Sub' $P804 = "57_1267204714.47172"
+ capture_lex $P804
+ .const 'Sub' $P788 = "56_1267204714.47172"
+ capture_lex $P788
+ .const 'Sub' $P778 = "55_1267204714.47172"
+ capture_lex $P778
+ .const 'Sub' $P768 = "54_1267204714.47172"
+ capture_lex $P768
+ .const 'Sub' $P758 = "53_1267204714.47172"
+ capture_lex $P758
+ .const 'Sub' $P748 = "52_1267204714.47172"
+ capture_lex $P748
+ .const 'Sub' $P738 = "51_1267204714.47172"
+ capture_lex $P738
+ .const 'Sub' $P728 = "50_1267204714.47172"
+ capture_lex $P728
+ .const 'Sub' $P718 = "49_1267204714.47172"
+ capture_lex $P718
+ .const 'Sub' $P708 = "48_1267204714.47172"
+ capture_lex $P708
+ .const 'Sub' $P698 = "47_1267204714.47172"
+ capture_lex $P698
+ .const 'Sub' $P688 = "46_1267204714.47172"
+ capture_lex $P688
+ .const 'Sub' $P678 = "45_1267204714.47172"
+ capture_lex $P678
+ .const 'Sub' $P668 = "44_1267204714.47172"
+ capture_lex $P668
+ .const 'Sub' $P658 = "43_1267204714.47172"
+ capture_lex $P658
+ .const 'Sub' $P640 = "42_1267204714.47172"
+ capture_lex $P640
+ .const 'Sub' $P605 = "41_1267204714.47172"
+ capture_lex $P605
+ .const 'Sub' $P589 = "40_1267204714.47172"
+ capture_lex $P589
+ .const 'Sub' $P568 = "39_1267204714.47172"
+ capture_lex $P568
+ .const 'Sub' $P548 = "38_1267204714.47172"
+ capture_lex $P548
+ .const 'Sub' $P535 = "37_1267204714.47172"
+ capture_lex $P535
+ .const 'Sub' $P509 = "36_1267204714.47172"
+ capture_lex $P509
+ .const 'Sub' $P473 = "35_1267204714.47172"
+ capture_lex $P473
+ .const 'Sub' $P456 = "34_1267204714.47172"
+ capture_lex $P456
+ .const 'Sub' $P442 = "33_1267204714.47172"
+ capture_lex $P442
+ .const 'Sub' $P389 = "31_1267204714.47172"
+ capture_lex $P389
+ .const 'Sub' $P376 = "30_1267204714.47172"
+ capture_lex $P376
+ .const 'Sub' $P357 = "29_1267204714.47172"
+ capture_lex $P357
+ .const 'Sub' $P347 = "28_1267204714.47172"
+ capture_lex $P347
+ .const 'Sub' $P337 = "27_1267204714.47172"
+ capture_lex $P337
+ .const 'Sub' $P321 = "26_1267204714.47172"
+ capture_lex $P321
+ .const 'Sub' $P261 = "24_1267204714.47172"
+ capture_lex $P261
+ .const 'Sub' $P212 = "22_1267204714.47172"
+ capture_lex $P212
+ .const 'Sub' $P193 = "21_1267204714.47172"
+ capture_lex $P193
+ .const 'Sub' $P160 = "20_1267204714.47172"
+ capture_lex $P160
+ .const 'Sub' $P150 = "19_1267204714.47172"
+ capture_lex $P150
+ .const 'Sub' $P96 = "18_1267204714.47172"
+ capture_lex $P96
+ .const 'Sub' $P81 = "17_1267204714.47172"
+ capture_lex $P81
+ .const 'Sub' $P61 = "16_1267204714.47172"
capture_lex $P61
- .const 'Sub' $P26 = "13_1261064035.64813"
+ .const 'Sub' $P26 = "13_1267204714.47172"
capture_lex $P26
- .const 'Sub' $P16 = "12_1261064035.64813"
+ .const 'Sub' $P16 = "12_1267204714.47172"
capture_lex $P16
get_global $P15, "@BLOCK"
unless_null $P15, vivify_129
- new $P15, "ResizablePMCArray"
+ $P15 = root_new ['parrot';'ResizablePMCArray']
set_global "@BLOCK", $P15
vivify_129:
.annotate "line", 9
- .const 'Sub' $P16 = "12_1261064035.64813"
+ .const 'Sub' $P16 = "12_1267204714.47172"
capture_lex $P16
.lex "xblock_immediate", $P16
.annotate "line", 14
- .const 'Sub' $P26 = "13_1261064035.64813"
+ .const 'Sub' $P26 = "13_1267204714.47172"
capture_lex $P26
.lex "block_immediate", $P26
.annotate "line", 24
- .const 'Sub' $P61 = "16_1261064035.64813"
+ .const 'Sub' $P61 = "16_1267204714.47172"
capture_lex $P61
- .lex "sigiltype", $P61
-.annotate "line", 40
- .const 'Sub' $P79 = "17_1261064035.64813"
- capture_lex $P79
- .lex "colonpair_str", $P79
-.annotate "line", 187
- .const 'Sub' $P94 = "18_1261064035.64813"
- capture_lex $P94
- .lex "push_block_handler", $P94
+ .lex "vivitype", $P61
+.annotate "line", 43
+ .const 'Sub' $P81 = "17_1267204714.47172"
+ capture_lex $P81
+ .lex "colonpair_str", $P81
+.annotate "line", 190
+ .const 'Sub' $P96 = "18_1267204714.47172"
+ capture_lex $P96
+ .lex "push_block_handler", $P96
.annotate "line", 3
- get_global $P144, "@BLOCK"
+ get_global $P146, "@BLOCK"
.annotate "line", 5
- find_lex $P145, "xblock_immediate"
- find_lex $P146, "block_immediate"
- find_lex $P147, "sigiltype"
-.annotate "line", 32
- find_lex $P190, "colonpair_str"
-.annotate "line", 180
- find_lex $P586, "push_block_handler"
-.annotate "line", 765
- get_hll_global $P2097, ["NQP";"RegexActions"], "_block2096"
- capture_lex $P2097
- $P2159 = $P2097()
+ find_lex $P147, "xblock_immediate"
+ find_lex $P148, "block_immediate"
+ find_lex $P149, "vivitype"
+.annotate "line", 35
+ find_lex $P192, "colonpair_str"
+.annotate "line", 183
+ find_lex $P588, "push_block_handler"
+.annotate "line", 768
+ get_hll_global $P2100, ["NQP";"RegexActions"], "_block2099"
+ capture_lex $P2100
+ $P2162 = $P2100()
.annotate "line", 3
- .return ($P2159)
+ .return ($P2162)
.end
.namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post127") :outer("11_1261064035.64813")
+.sub "" :load :init :subid("post127") :outer("11_1267204714.47172")
.annotate "line", 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate "line", 5
- .const 'Sub' $P2161 = "125_1261064035.64813"
- capture_lex $P2161
- $P2161()
- $P2164 = get_root_global ["parrot"], "P6metaclass"
- $P2164."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
+ .const 'Sub' $P2164 = "125_1267204714.47172"
+ capture_lex $P2164
+ $P2164()
+ $P2167 = get_root_global ["parrot"], "P6metaclass"
+ $P2167."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
.end
.namespace ["NQP";"Actions"]
-.sub "_block2160" :anon :subid("125_1261064035.64813") :outer("11_1261064035.64813")
+.sub "_block2163" :anon :subid("125_1267204714.47172") :outer("11_1267204714.47172")
.annotate "line", 6
- get_global $P2162, "@BLOCK"
- unless_null $P2162, vivify_128
- new $P2162, "ResizablePMCArray"
- set_global "@BLOCK", $P2162
+ get_global $P2165, "@BLOCK"
+ unless_null $P2165, vivify_128
+ $P2165 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P2165
vivify_128:
- $P2163 = new ['ResizablePMCArray']
- set_global "@BLOCK", $P2163
+ $P2166 = new ['ResizablePMCArray']
+ set_global "@BLOCK", $P2166
.annotate "line", 5
- .return ($P2163)
+ .return ($P2166)
.end
.namespace ["NQP";"Actions"]
-.sub "xblock_immediate" :subid("12_1261064035.64813") :outer("11_1261064035.64813")
+.sub "xblock_immediate" :subid("12_1267204714.47172") :outer("11_1267204714.47172")
.param pmc param_19
.annotate "line", 9
new $P18, 'ExceptionHandler'
@@ -16023,7 +16066,7 @@
.annotate "line", 10
find_lex $P20, "$xblock"
unless_null $P20, vivify_130
- new $P20, "ResizablePMCArray"
+ $P20 = root_new ['parrot';'ResizablePMCArray']
vivify_130:
set $P21, $P20[1]
unless_null $P21, vivify_131
@@ -16032,7 +16075,7 @@
$P22 = "block_immediate"($P21)
find_lex $P23, "$xblock"
unless_null $P23, vivify_132
- new $P23, "ResizablePMCArray"
+ $P23 = root_new ['parrot';'ResizablePMCArray']
store_lex "$xblock", $P23
vivify_132:
set $P23[1], $P22
@@ -16048,10 +16091,10 @@
.namespace ["NQP";"Actions"]
-.sub "block_immediate" :subid("13_1261064035.64813") :outer("11_1261064035.64813")
+.sub "block_immediate" :subid("13_1267204714.47172") :outer("11_1267204714.47172")
.param pmc param_29
.annotate "line", 14
- .const 'Sub' $P39 = "14_1261064035.64813"
+ .const 'Sub' $P39 = "14_1267204714.47172"
capture_lex $P39
new $P28, 'ExceptionHandler'
set_addr $P28, control_27
@@ -16073,7 +16116,7 @@
set $P32, $P37
unless_33_end:
if $P32, unless_31_end
- .const 'Sub' $P39 = "14_1261064035.64813"
+ .const 'Sub' $P39 = "14_1267204714.47172"
capture_lex $P39
$P39()
unless_31_end:
@@ -16089,9 +16132,9 @@
.namespace ["NQP";"Actions"]
-.sub "_block38" :anon :subid("14_1261064035.64813") :outer("13_1261064035.64813")
+.sub "_block38" :anon :subid("14_1267204714.47172") :outer("13_1267204714.47172")
.annotate "line", 16
- .const 'Sub' $P50 = "15_1261064035.64813"
+ .const 'Sub' $P50 = "15_1267204714.47172"
capture_lex $P50
.annotate "line", 17
new $P40, "Undef"
@@ -16114,7 +16157,7 @@
unless $P44, loop55_done
shift $P48, $P44
loop55_redo:
- .const 'Sub' $P50 = "15_1261064035.64813"
+ .const 'Sub' $P50 = "15_1267204714.47172"
capture_lex $P50
$P50($P48)
loop55_next:
@@ -16137,7 +16180,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block49" :anon :subid("15_1261064035.64813") :outer("14_1261064035.64813")
+.sub "_block49" :anon :subid("15_1267204714.47172") :outer("14_1267204714.47172")
.param pmc param_51
.annotate "line", 18
.lex "$_", param_51
@@ -16149,7 +16192,7 @@
.namespace ["NQP";"Actions"]
-.sub "sigiltype" :subid("16_1261064035.64813") :outer("11_1261064035.64813")
+.sub "vivitype" :subid("16_1267204714.47172") :outer("11_1267204714.47172")
.param pmc param_64
.annotate "line", 24
new $P63, 'ExceptionHandler'
@@ -16163,4969 +16206,4969 @@
iseq $I69, $S68, "%"
if $I69, if_66
.annotate "line", 27
- find_lex $P73, "$sigil"
- set $S74, $P73
- iseq $I75, $S74, "@"
- if $I75, if_72
- new $P77, "String"
- assign $P77, "Undef"
- set $P71, $P77
- goto if_72_end
- if_72:
- new $P76, "String"
- assign $P76, "ResizablePMCArray"
- set $P71, $P76
- if_72_end:
- set $P65, $P71
+ find_lex $P74, "$sigil"
+ set $S75, $P74
+ iseq $I76, $S75, "@"
+ if $I76, if_73
+ new $P79, "String"
+ assign $P79, "Undef"
+ set $P72, $P79
+ goto if_73_end
+ if_73:
+.annotate "line", 28
+ get_hll_global $P77, ["PAST"], "Op"
+ $P78 = $P77."new"(" %r = root_new ['parrot';'ResizablePMCArray']" :named("inline"))
+ set $P72, $P78
+ if_73_end:
+ set $P65, $P72
.annotate "line", 25
goto if_66_end
if_66:
- new $P70, "String"
- assign $P70, "Hash"
- set $P65, $P70
+.annotate "line", 26
+ get_hll_global $P70, ["PAST"], "Op"
+ $P71 = $P70."new"(" %r = root_new ['parrot';'Hash']" :named("inline"))
+ set $P65, $P71
if_66_end:
.annotate "line", 24
.return ($P65)
control_62:
.local pmc exception
.get_results (exception)
- getattribute $P78, exception, "payload"
- .return ($P78)
+ getattribute $P80, exception, "payload"
+ .return ($P80)
.end
.namespace ["NQP";"Actions"]
-.sub "colonpair_str" :subid("17_1261064035.64813") :outer("11_1261064035.64813")
- .param pmc param_82
-.annotate "line", 40
- new $P81, 'ExceptionHandler'
- set_addr $P81, control_80
- $P81."handle_types"(58)
- push_eh $P81
- .lex "$ast", param_82
-.annotate "line", 41
- get_hll_global $P85, ["PAST"], "Op"
- find_lex $P86, "$ast"
- $P87 = $P85."ACCEPTS"($P86)
- if $P87, if_84
+.sub "colonpair_str" :subid("17_1267204714.47172") :outer("11_1267204714.47172")
+ .param pmc param_84
.annotate "line", 43
- find_lex $P91, "$ast"
- $P92 = $P91."value"()
- set $P83, $P92
-.annotate "line", 41
- goto if_84_end
- if_84:
-.annotate "line", 42
+ new $P83, 'ExceptionHandler'
+ set_addr $P83, control_82
+ $P83."handle_types"(58)
+ push_eh $P83
+ .lex "$ast", param_84
+.annotate "line", 44
+ get_hll_global $P87, ["PAST"], "Op"
find_lex $P88, "$ast"
- $P89 = $P88."list"()
- join $S90, " ", $P89
- new $P83, 'String'
- set $P83, $S90
- if_84_end:
-.annotate "line", 40
- .return ($P83)
- control_80:
+ $P89 = $P87."ACCEPTS"($P88)
+ if $P89, if_86
+.annotate "line", 46
+ find_lex $P93, "$ast"
+ $P94 = $P93."value"()
+ set $P85, $P94
+.annotate "line", 44
+ goto if_86_end
+ if_86:
+.annotate "line", 45
+ find_lex $P90, "$ast"
+ $P91 = $P90."list"()
+ join $S92, " ", $P91
+ new $P85, 'String'
+ set $P85, $S92
+ if_86_end:
+.annotate "line", 43
+ .return ($P85)
+ control_82:
.local pmc exception
.get_results (exception)
- getattribute $P93, exception, "payload"
- .return ($P93)
+ getattribute $P95, exception, "payload"
+ .return ($P95)
.end
.namespace ["NQP";"Actions"]
-.sub "push_block_handler" :subid("18_1261064035.64813") :outer("11_1261064035.64813")
- .param pmc param_97
- .param pmc param_98
-.annotate "line", 187
- new $P96, 'ExceptionHandler'
- set_addr $P96, control_95
- $P96."handle_types"(58)
- push_eh $P96
- .lex "$/", param_97
- .lex "$block", param_98
-.annotate "line", 188
- get_global $P100, "@BLOCK"
- unless_null $P100, vivify_134
- new $P100, "ResizablePMCArray"
+.sub "push_block_handler" :subid("18_1267204714.47172") :outer("11_1267204714.47172")
+ .param pmc param_99
+ .param pmc param_100
+.annotate "line", 190
+ new $P98, 'ExceptionHandler'
+ set_addr $P98, control_97
+ $P98."handle_types"(58)
+ push_eh $P98
+ .lex "$/", param_99
+ .lex "$block", param_100
+.annotate "line", 191
+ get_global $P102, "@BLOCK"
+ unless_null $P102, vivify_134
+ $P102 = root_new ['parrot';'ResizablePMCArray']
vivify_134:
- set $P101, $P100[0]
- unless_null $P101, vivify_135
- new $P101, "Undef"
+ set $P103, $P102[0]
+ unless_null $P103, vivify_135
+ new $P103, "Undef"
vivify_135:
- $P102 = $P101."handlers"()
- if $P102, unless_99_end
-.annotate "line", 189
- get_global $P103, "@BLOCK"
- unless_null $P103, vivify_136
- new $P103, "ResizablePMCArray"
+ $P104 = $P103."handlers"()
+ if $P104, unless_101_end
+.annotate "line", 192
+ get_global $P105, "@BLOCK"
+ unless_null $P105, vivify_136
+ $P105 = root_new ['parrot';'ResizablePMCArray']
vivify_136:
- set $P104, $P103[0]
- unless_null $P104, vivify_137
- new $P104, "Undef"
+ set $P106, $P105[0]
+ unless_null $P106, vivify_137
+ new $P106, "Undef"
vivify_137:
- new $P105, "ResizablePMCArray"
- $P104."handlers"($P105)
- unless_99_end:
-.annotate "line", 191
- find_lex $P107, "$block"
- $P108 = $P107."arity"()
- if $P108, unless_106_end
-.annotate "line", 192
- find_lex $P109, "$block"
-.annotate "line", 193
- get_hll_global $P110, ["PAST"], "Op"
+ new $P107, "ResizablePMCArray"
+ $P106."handlers"($P107)
+ unless_101_end:
.annotate "line", 194
- get_hll_global $P111, ["PAST"], "Var"
- $P112 = $P111."new"("lexical" :named("scope"), "$!" :named("name"), 1 :named("isdecl"))
+ find_lex $P109, "$block"
+ $P110 = $P109."arity"()
+ if $P110, unless_108_end
.annotate "line", 195
+ find_lex $P111, "$block"
+.annotate "line", 196
+ get_hll_global $P112, ["PAST"], "Op"
+.annotate "line", 197
get_hll_global $P113, ["PAST"], "Var"
- $P114 = $P113."new"("lexical" :named("scope"), "$_" :named("name"))
- $P115 = $P110."new"($P112, $P114, "bind" :named("pasttype"))
-.annotate "line", 193
- $P109."unshift"($P115)
+ $P114 = $P113."new"("lexical" :named("scope"), "$!" :named("name"), 1 :named("isdecl"))
.annotate "line", 198
- find_lex $P116, "$block"
- get_hll_global $P117, ["PAST"], "Var"
- $P118 = $P117."new"("$_" :named("name"), "parameter" :named("scope"))
- $P116."unshift"($P118)
-.annotate "line", 199
- find_lex $P119, "$block"
- $P119."symbol"("$_", "lexical" :named("scope"))
-.annotate "line", 200
- find_lex $P120, "$block"
- $P120."symbol"("$!", "lexical" :named("scope"))
+ get_hll_global $P115, ["PAST"], "Var"
+ $P116 = $P115."new"("lexical" :named("scope"), "$_" :named("name"))
+ $P117 = $P112."new"($P114, $P116, "bind" :named("pasttype"))
+.annotate "line", 196
+ $P111."unshift"($P117)
.annotate "line", 201
+ find_lex $P118, "$block"
+ get_hll_global $P119, ["PAST"], "Var"
+ $P120 = $P119."new"("$_" :named("name"), "parameter" :named("scope"))
+ $P118."unshift"($P120)
+.annotate "line", 202
find_lex $P121, "$block"
- $P121."arity"(1)
- unless_106_end:
+ $P121."symbol"("$_", "lexical" :named("scope"))
.annotate "line", 203
find_lex $P122, "$block"
- $P122."blocktype"("declaration")
+ $P122."symbol"("$!", "lexical" :named("scope"))
.annotate "line", 204
- get_global $P123, "@BLOCK"
- unless_null $P123, vivify_138
- new $P123, "ResizablePMCArray"
+ find_lex $P123, "$block"
+ $P123."arity"(1)
+ unless_108_end:
+.annotate "line", 206
+ find_lex $P124, "$block"
+ $P124."blocktype"("declaration")
+.annotate "line", 207
+ get_global $P125, "@BLOCK"
+ unless_null $P125, vivify_138
+ $P125 = root_new ['parrot';'ResizablePMCArray']
vivify_138:
- set $P124, $P123[0]
- unless_null $P124, vivify_139
- new $P124, "Undef"
+ set $P126, $P125[0]
+ unless_null $P126, vivify_139
+ new $P126, "Undef"
vivify_139:
- $P125 = $P124."handlers"()
-.annotate "line", 205
- get_hll_global $P126, ["PAST"], "Control"
- find_lex $P127, "$/"
-.annotate "line", 207
- get_hll_global $P128, ["PAST"], "Stmts"
+ $P127 = $P126."handlers"()
.annotate "line", 208
- get_hll_global $P129, ["PAST"], "Op"
- find_lex $P130, "$block"
+ get_hll_global $P128, ["PAST"], "Control"
+ find_lex $P129, "$/"
.annotate "line", 210
- get_hll_global $P131, ["PAST"], "Var"
- $P132 = $P131."new"("register" :named("scope"), "exception" :named("name"))
- $P133 = $P129."new"($P130, $P132, "call" :named("pasttype"))
-.annotate "line", 212
- get_hll_global $P134, ["PAST"], "Op"
-.annotate "line", 213
- get_hll_global $P135, ["PAST"], "Var"
-.annotate "line", 214
- get_hll_global $P136, ["PAST"], "Var"
- $P137 = $P136."new"("register" :named("scope"), "exception" :named("name"))
- $P138 = $P135."new"($P137, "handled", "keyed" :named("scope"))
+ get_hll_global $P130, ["PAST"], "Stmts"
+.annotate "line", 211
+ get_hll_global $P131, ["PAST"], "Op"
+ find_lex $P132, "$block"
.annotate "line", 213
- $P139 = $P134."new"($P138, 1, "bind" :named("pasttype"))
-.annotate "line", 212
- $P140 = $P128."new"($P133, $P139)
-.annotate "line", 207
- $P141 = $P126."new"($P140, $P127 :named("node"))
-.annotate "line", 205
- $P142 = $P125."unshift"($P141)
-.annotate "line", 187
- .return ($P142)
- control_95:
+ get_hll_global $P133, ["PAST"], "Var"
+ $P134 = $P133."new"("register" :named("scope"), "exception" :named("name"))
+ $P135 = $P131."new"($P132, $P134, "call" :named("pasttype"))
+.annotate "line", 215
+ get_hll_global $P136, ["PAST"], "Op"
+.annotate "line", 216
+ get_hll_global $P137, ["PAST"], "Var"
+.annotate "line", 217
+ get_hll_global $P138, ["PAST"], "Var"
+ $P139 = $P138."new"("register" :named("scope"), "exception" :named("name"))
+ $P140 = $P137."new"($P139, "handled", "keyed" :named("scope"))
+.annotate "line", 216
+ $P141 = $P136."new"($P140, 1, "bind" :named("pasttype"))
+.annotate "line", 215
+ $P142 = $P130."new"($P135, $P141)
+.annotate "line", 210
+ $P143 = $P128."new"($P142, $P129 :named("node"))
+.annotate "line", 208
+ $P144 = $P127."unshift"($P143)
+.annotate "line", 190
+ .return ($P144)
+ control_97:
.local pmc exception
.get_results (exception)
- getattribute $P143, exception, "payload"
- .return ($P143)
+ getattribute $P145, exception, "payload"
+ .return ($P145)
.end
.namespace ["NQP";"Actions"]
-.sub "TOP" :subid("19_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_151
-.annotate "line", 30
- new $P150, 'ExceptionHandler'
- set_addr $P150, control_149
- $P150."handle_types"(58)
- push_eh $P150
- .lex "self", self
- .lex "$/", param_151
- find_lex $P152, "$/"
- find_lex $P153, "$/"
- unless_null $P153, vivify_140
- new $P153, "Hash"
+.sub "TOP" :subid("19_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_153
+.annotate "line", 33
+ new $P152, 'ExceptionHandler'
+ set_addr $P152, control_151
+ $P152."handle_types"(58)
+ push_eh $P152
+ .lex "self", self
+ .lex "$/", param_153
+ find_lex $P154, "$/"
+ find_lex $P155, "$/"
+ unless_null $P155, vivify_140
+ $P155 = root_new ['parrot';'Hash']
vivify_140:
- set $P154, $P153["comp_unit"]
- unless_null $P154, vivify_141
- new $P154, "Undef"
+ set $P156, $P155["comp_unit"]
+ unless_null $P156, vivify_141
+ new $P156, "Undef"
vivify_141:
- $P155 = $P154."ast"()
- $P156 = $P152."!make"($P155)
- .return ($P156)
- control_149:
+ $P157 = $P156."ast"()
+ $P158 = $P154."!make"($P157)
+ .return ($P158)
+ control_151:
.local pmc exception
.get_results (exception)
- getattribute $P157, exception, "payload"
- .return ($P157)
+ getattribute $P159, exception, "payload"
+ .return ($P159)
.end
.namespace ["NQP";"Actions"]
-.sub "deflongname" :subid("20_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_161
-.annotate "line", 32
- new $P160, 'ExceptionHandler'
- set_addr $P160, control_159
- $P160."handle_types"(58)
- push_eh $P160
+.sub "deflongname" :subid("20_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_163
+.annotate "line", 35
+ new $P162, 'ExceptionHandler'
+ set_addr $P162, control_161
+ $P162."handle_types"(58)
+ push_eh $P162
.lex "self", self
- .lex "$/", param_161
-.annotate "line", 33
- find_lex $P162, "$/"
-.annotate "line", 34
- find_lex $P165, "$/"
- unless_null $P165, vivify_142
- new $P165, "Hash"
- vivify_142:
- set $P166, $P165["colonpair"]
- unless_null $P166, vivify_143
- new $P166, "Undef"
- vivify_143:
- if $P166, if_164
+ .lex "$/", param_163
.annotate "line", 36
- find_lex $P186, "$/"
- set $S187, $P186
- new $P163, 'String'
- set $P163, $S187
-.annotate "line", 34
- goto if_164_end
- if_164:
+ find_lex $P164, "$/"
+.annotate "line", 37
find_lex $P167, "$/"
- unless_null $P167, vivify_144
- new $P167, "Hash"
- vivify_144:
- set $P168, $P167["identifier"]
- unless_null $P168, vivify_145
+ unless_null $P167, vivify_142
+ $P167 = root_new ['parrot';'Hash']
+ vivify_142:
+ set $P168, $P167["colonpair"]
+ unless_null $P168, vivify_143
new $P168, "Undef"
+ vivify_143:
+ if $P168, if_166
+.annotate "line", 39
+ find_lex $P188, "$/"
+ set $S189, $P188
+ new $P165, 'String'
+ set $P165, $S189
+.annotate "line", 37
+ goto if_166_end
+ if_166:
+ find_lex $P169, "$/"
+ unless_null $P169, vivify_144
+ $P169 = root_new ['parrot';'Hash']
+ vivify_144:
+ set $P170, $P169["identifier"]
+ unless_null $P170, vivify_145
+ new $P170, "Undef"
vivify_145:
- set $S169, $P168
- new $P170, 'String'
- set $P170, $S169
- concat $P171, $P170, ":"
- find_lex $P172, "$/"
- unless_null $P172, vivify_146
- new $P172, "Hash"
+ set $S171, $P170
+ new $P172, 'String'
+ set $P172, $S171
+ concat $P173, $P172, ":"
+ find_lex $P174, "$/"
+ unless_null $P174, vivify_146
+ $P174 = root_new ['parrot';'Hash']
vivify_146:
- set $P173, $P172["colonpair"]
- unless_null $P173, vivify_147
- new $P173, "ResizablePMCArray"
+ set $P175, $P174["colonpair"]
+ unless_null $P175, vivify_147
+ $P175 = root_new ['parrot';'ResizablePMCArray']
vivify_147:
- set $P174, $P173[0]
- unless_null $P174, vivify_148
- new $P174, "Undef"
+ set $P176, $P175[0]
+ unless_null $P176, vivify_148
+ new $P176, "Undef"
vivify_148:
- $P175 = $P174."ast"()
- $S176 = $P175."named"()
- concat $P177, $P171, $S176
- concat $P178, $P177, "<"
-.annotate "line", 35
- find_lex $P179, "$/"
- unless_null $P179, vivify_149
- new $P179, "Hash"
+ $P177 = $P176."ast"()
+ $S178 = $P177."named"()
+ concat $P179, $P173, $S178
+ concat $P180, $P179, "<"
+.annotate "line", 38
+ find_lex $P181, "$/"
+ unless_null $P181, vivify_149
+ $P181 = root_new ['parrot';'Hash']
vivify_149:
- set $P180, $P179["colonpair"]
- unless_null $P180, vivify_150
- new $P180, "ResizablePMCArray"
+ set $P182, $P181["colonpair"]
+ unless_null $P182, vivify_150
+ $P182 = root_new ['parrot';'ResizablePMCArray']
vivify_150:
- set $P181, $P180[0]
- unless_null $P181, vivify_151
- new $P181, "Undef"
+ set $P183, $P182[0]
+ unless_null $P183, vivify_151
+ new $P183, "Undef"
vivify_151:
- $P182 = $P181."ast"()
- $S183 = "colonpair_str"($P182)
- concat $P184, $P178, $S183
- concat $P185, $P184, ">"
- set $P163, $P185
- if_164_end:
-.annotate "line", 34
- $P188 = $P162."!make"($P163)
-.annotate "line", 32
- .return ($P188)
- control_159:
+ $P184 = $P183."ast"()
+ $S185 = "colonpair_str"($P184)
+ concat $P186, $P180, $S185
+ concat $P187, $P186, ">"
+ set $P165, $P187
+ if_166_end:
+.annotate "line", 37
+ $P190 = $P164."!make"($P165)
+.annotate "line", 35
+ .return ($P190)
+ control_161:
.local pmc exception
.get_results (exception)
- getattribute $P189, exception, "payload"
- .return ($P189)
+ getattribute $P191, exception, "payload"
+ .return ($P191)
.end
.namespace ["NQP";"Actions"]
-.sub "comp_unit" :subid("21_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_194
-.annotate "line", 46
- new $P193, 'ExceptionHandler'
- set_addr $P193, control_192
- $P193."handle_types"(58)
- push_eh $P193
- .lex "self", self
- .lex "$/", param_194
-.annotate "line", 47
- new $P195, "Undef"
- .lex "$past", $P195
-.annotate "line", 48
- new $P196, "Undef"
- .lex "$BLOCK", $P196
-.annotate "line", 47
- find_lex $P197, "$/"
- unless_null $P197, vivify_152
- new $P197, "Hash"
- vivify_152:
- set $P198, $P197["statementlist"]
- unless_null $P198, vivify_153
- new $P198, "Undef"
- vivify_153:
- $P199 = $P198."ast"()
- store_lex "$past", $P199
-.annotate "line", 48
- get_global $P200, "@BLOCK"
- $P201 = $P200."shift"()
- store_lex "$BLOCK", $P201
+.sub "comp_unit" :subid("21_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_196
.annotate "line", 49
- find_lex $P202, "$BLOCK"
- find_lex $P203, "$past"
- $P202."push"($P203)
+ new $P195, 'ExceptionHandler'
+ set_addr $P195, control_194
+ $P195."handle_types"(58)
+ push_eh $P195
+ .lex "self", self
+ .lex "$/", param_196
.annotate "line", 50
- find_lex $P204, "$BLOCK"
- find_lex $P205, "$/"
- $P204."node"($P205)
+ new $P197, "Undef"
+ .lex "$past", $P197
.annotate "line", 51
- find_lex $P206, "$/"
- find_lex $P207, "$BLOCK"
- $P208 = $P206."!make"($P207)
-.annotate "line", 46
- .return ($P208)
- control_192:
+ new $P198, "Undef"
+ .lex "$BLOCK", $P198
+.annotate "line", 50
+ find_lex $P199, "$/"
+ unless_null $P199, vivify_152
+ $P199 = root_new ['parrot';'Hash']
+ vivify_152:
+ set $P200, $P199["statementlist"]
+ unless_null $P200, vivify_153
+ new $P200, "Undef"
+ vivify_153:
+ $P201 = $P200."ast"()
+ store_lex "$past", $P201
+.annotate "line", 51
+ get_global $P202, "@BLOCK"
+ $P203 = $P202."shift"()
+ store_lex "$BLOCK", $P203
+.annotate "line", 52
+ find_lex $P204, "$BLOCK"
+ find_lex $P205, "$past"
+ $P204."push"($P205)
+.annotate "line", 53
+ find_lex $P206, "$BLOCK"
+ find_lex $P207, "$/"
+ $P206."node"($P207)
+.annotate "line", 54
+ find_lex $P208, "$/"
+ find_lex $P209, "$BLOCK"
+ $P210 = $P208."!make"($P209)
+.annotate "line", 49
+ .return ($P210)
+ control_194:
.local pmc exception
.get_results (exception)
- getattribute $P209, exception, "payload"
- .return ($P209)
+ getattribute $P211, exception, "payload"
+ .return ($P211)
.end
.namespace ["NQP";"Actions"]
-.sub "statementlist" :subid("22_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_213
-.annotate "line", 54
- .const 'Sub' $P227 = "23_1261064035.64813"
- capture_lex $P227
- new $P212, 'ExceptionHandler'
- set_addr $P212, control_211
- $P212."handle_types"(58)
- push_eh $P212
+.sub "statementlist" :subid("22_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_215
+.annotate "line", 57
+ .const 'Sub' $P229 = "23_1267204714.47172"
+ capture_lex $P229
+ new $P214, 'ExceptionHandler'
+ set_addr $P214, control_213
+ $P214."handle_types"(58)
+ push_eh $P214
.lex "self", self
- .lex "$/", param_213
-.annotate "line", 55
- new $P214, "Undef"
- .lex "$past", $P214
- get_hll_global $P215, ["PAST"], "Stmts"
- find_lex $P216, "$/"
- $P217 = $P215."new"($P216 :named("node"))
- store_lex "$past", $P217
-.annotate "line", 56
- find_lex $P219, "$/"
- unless_null $P219, vivify_154
- new $P219, "Hash"
+ .lex "$/", param_215
+.annotate "line", 58
+ new $P216, "Undef"
+ .lex "$past", $P216
+ get_hll_global $P217, ["PAST"], "Stmts"
+ find_lex $P218, "$/"
+ $P219 = $P217."new"($P218 :named("node"))
+ store_lex "$past", $P219
+.annotate "line", 59
+ find_lex $P221, "$/"
+ unless_null $P221, vivify_154
+ $P221 = root_new ['parrot';'Hash']
vivify_154:
- set $P220, $P219["statement"]
- unless_null $P220, vivify_155
- new $P220, "Undef"
+ set $P222, $P221["statement"]
+ unless_null $P222, vivify_155
+ new $P222, "Undef"
vivify_155:
- unless $P220, if_218_end
-.annotate "line", 57
- find_lex $P222, "$/"
- unless_null $P222, vivify_156
- new $P222, "Hash"
+ unless $P222, if_220_end
+.annotate "line", 60
+ find_lex $P224, "$/"
+ unless_null $P224, vivify_156
+ $P224 = root_new ['parrot';'Hash']
vivify_156:
- set $P223, $P222["statement"]
- unless_null $P223, vivify_157
- new $P223, "Undef"
+ set $P225, $P224["statement"]
+ unless_null $P225, vivify_157
+ new $P225, "Undef"
vivify_157:
- defined $I224, $P223
- unless $I224, for_undef_158
- iter $P221, $P223
- new $P253, 'ExceptionHandler'
- set_addr $P253, loop252_handler
- $P253."handle_types"(65, 67, 66)
- push_eh $P253
- loop252_test:
- unless $P221, loop252_done
- shift $P225, $P221
- loop252_redo:
- .const 'Sub' $P227 = "23_1261064035.64813"
- capture_lex $P227
- $P227($P225)
- loop252_next:
- goto loop252_test
- loop252_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P254, exception, 'type'
- eq $P254, 65, loop252_next
- eq $P254, 67, loop252_redo
- loop252_done:
+ defined $I226, $P225
+ unless $I226, for_undef_158
+ iter $P223, $P225
+ new $P255, 'ExceptionHandler'
+ set_addr $P255, loop254_handler
+ $P255."handle_types"(65, 67, 66)
+ push_eh $P255
+ loop254_test:
+ unless $P223, loop254_done
+ shift $P227, $P223
+ loop254_redo:
+ .const 'Sub' $P229 = "23_1267204714.47172"
+ capture_lex $P229
+ $P229($P227)
+ loop254_next:
+ goto loop254_test
+ loop254_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P256, exception, 'type'
+ eq $P256, 65, loop254_next
+ eq $P256, 67, loop254_redo
+ loop254_done:
pop_eh
for_undef_158:
- if_218_end:
-.annotate "line", 66
- find_lex $P255, "$/"
- find_lex $P256, "$past"
- $P257 = $P255."!make"($P256)
-.annotate "line", 54
- .return ($P257)
- control_211:
+ if_220_end:
+.annotate "line", 69
+ find_lex $P257, "$/"
+ find_lex $P258, "$past"
+ $P259 = $P257."!make"($P258)
+.annotate "line", 57
+ .return ($P259)
+ control_213:
.local pmc exception
.get_results (exception)
- getattribute $P258, exception, "payload"
- .return ($P258)
+ getattribute $P260, exception, "payload"
+ .return ($P260)
.end
.namespace ["NQP";"Actions"]
-.sub "_block226" :anon :subid("23_1261064035.64813") :outer("22_1261064035.64813")
- .param pmc param_229
-.annotate "line", 58
- new $P228, "Undef"
- .lex "$ast", $P228
- .lex "$_", param_229
- find_lex $P230, "$_"
- $P231 = $P230."ast"()
- store_lex "$ast", $P231
-.annotate "line", 59
- find_lex $P233, "$ast"
- unless_null $P233, vivify_159
- new $P233, "Hash"
+.sub "_block228" :anon :subid("23_1267204714.47172") :outer("22_1267204714.47172")
+ .param pmc param_231
+.annotate "line", 61
+ new $P230, "Undef"
+ .lex "$ast", $P230
+ .lex "$_", param_231
+ find_lex $P232, "$_"
+ $P233 = $P232."ast"()
+ store_lex "$ast", $P233
+.annotate "line", 62
+ find_lex $P235, "$ast"
+ unless_null $P235, vivify_159
+ $P235 = root_new ['parrot';'Hash']
vivify_159:
- set $P234, $P233["sink"]
- unless_null $P234, vivify_160
- new $P234, "Undef"
+ set $P236, $P235["sink"]
+ unless_null $P236, vivify_160
+ new $P236, "Undef"
vivify_160:
- defined $I235, $P234
- unless $I235, if_232_end
- find_lex $P236, "$ast"
- unless_null $P236, vivify_161
- new $P236, "Hash"
+ defined $I237, $P236
+ unless $I237, if_234_end
+ find_lex $P238, "$ast"
+ unless_null $P238, vivify_161
+ $P238 = root_new ['parrot';'Hash']
vivify_161:
- set $P237, $P236["sink"]
- unless_null $P237, vivify_162
- new $P237, "Undef"
+ set $P239, $P238["sink"]
+ unless_null $P239, vivify_162
+ new $P239, "Undef"
vivify_162:
- store_lex "$ast", $P237
- if_232_end:
-.annotate "line", 60
- find_lex $P241, "$ast"
- get_hll_global $P242, ["PAST"], "Block"
- $P243 = $P241."isa"($P242)
- if $P243, if_240
- set $P239, $P243
- goto if_240_end
- if_240:
- find_lex $P244, "$ast"
- $P245 = $P244."blocktype"()
- isfalse $I246, $P245
- new $P239, 'Integer'
- set $P239, $I246
- if_240_end:
- unless $P239, if_238_end
-.annotate "line", 61
- find_lex $P247, "$ast"
- $P248 = "block_immediate"($P247)
- store_lex "$ast", $P248
- if_238_end:
+ store_lex "$ast", $P239
+ if_234_end:
.annotate "line", 63
- find_lex $P249, "$past"
- find_lex $P250, "$ast"
- $P251 = $P249."push"($P250)
-.annotate "line", 57
- .return ($P251)
+ find_lex $P243, "$ast"
+ get_hll_global $P244, ["PAST"], "Block"
+ $P245 = $P243."isa"($P244)
+ if $P245, if_242
+ set $P241, $P245
+ goto if_242_end
+ if_242:
+ find_lex $P246, "$ast"
+ $P247 = $P246."blocktype"()
+ isfalse $I248, $P247
+ new $P241, 'Integer'
+ set $P241, $I248
+ if_242_end:
+ unless $P241, if_240_end
+.annotate "line", 64
+ find_lex $P249, "$ast"
+ $P250 = "block_immediate"($P249)
+ store_lex "$ast", $P250
+ if_240_end:
+.annotate "line", 66
+ find_lex $P251, "$past"
+ find_lex $P252, "$ast"
+ $P253 = $P251."push"($P252)
+.annotate "line", 60
+ .return ($P253)
.end
.namespace ["NQP";"Actions"]
-.sub "statement" :subid("24_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_262
- .param pmc param_263 :optional
- .param int has_param_263 :opt_flag
-.annotate "line", 69
- .const 'Sub' $P271 = "25_1261064035.64813"
- capture_lex $P271
- new $P261, 'ExceptionHandler'
- set_addr $P261, control_260
- $P261."handle_types"(58)
- push_eh $P261
- .lex "self", self
- .lex "$/", param_262
- if has_param_263, optparam_163
- new $P264, "Undef"
- set param_263, $P264
+.sub "statement" :subid("24_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_264
+ .param pmc param_265 :optional
+ .param int has_param_265 :opt_flag
+.annotate "line", 72
+ .const 'Sub' $P273 = "25_1267204714.47172"
+ capture_lex $P273
+ new $P263, 'ExceptionHandler'
+ set_addr $P263, control_262
+ $P263."handle_types"(58)
+ push_eh $P263
+ .lex "self", self
+ .lex "$/", param_264
+ if has_param_265, optparam_163
+ new $P266, "Undef"
+ set param_265, $P266
optparam_163:
- .lex "$key", param_263
-.annotate "line", 70
- new $P265, "Undef"
- .lex "$past", $P265
-.annotate "line", 69
- find_lex $P266, "$past"
-.annotate "line", 71
- find_lex $P268, "$/"
- unless_null $P268, vivify_164
- new $P268, "Hash"
+ .lex "$key", param_265
+.annotate "line", 73
+ new $P267, "Undef"
+ .lex "$past", $P267
+.annotate "line", 72
+ find_lex $P268, "$past"
+.annotate "line", 74
+ find_lex $P270, "$/"
+ unless_null $P270, vivify_164
+ $P270 = root_new ['parrot';'Hash']
vivify_164:
- set $P269, $P268["EXPR"]
- unless_null $P269, vivify_165
- new $P269, "Undef"
+ set $P271, $P270["EXPR"]
+ unless_null $P271, vivify_165
+ new $P271, "Undef"
vivify_165:
- if $P269, if_267
-.annotate "line", 82
- find_lex $P309, "$/"
- unless_null $P309, vivify_166
- new $P309, "Hash"
- vivify_166:
- set $P310, $P309["statement_control"]
- unless_null $P310, vivify_167
- new $P310, "Undef"
- vivify_167:
- if $P310, if_308
-.annotate "line", 83
- new $P314, "Integer"
- assign $P314, 0
- store_lex "$past", $P314
- goto if_308_end
- if_308:
-.annotate "line", 82
+ if $P271, if_269
+.annotate "line", 85
find_lex $P311, "$/"
- unless_null $P311, vivify_168
- new $P311, "Hash"
- vivify_168:
+ unless_null $P311, vivify_166
+ $P311 = root_new ['parrot';'Hash']
+ vivify_166:
set $P312, $P311["statement_control"]
- unless_null $P312, vivify_169
+ unless_null $P312, vivify_167
new $P312, "Undef"
+ vivify_167:
+ if $P312, if_310
+.annotate "line", 86
+ new $P316, "Integer"
+ assign $P316, 0
+ store_lex "$past", $P316
+ goto if_310_end
+ if_310:
+.annotate "line", 85
+ find_lex $P313, "$/"
+ unless_null $P313, vivify_168
+ $P313 = root_new ['parrot';'Hash']
+ vivify_168:
+ set $P314, $P313["statement_control"]
+ unless_null $P314, vivify_169
+ new $P314, "Undef"
vivify_169:
- $P313 = $P312."ast"()
- store_lex "$past", $P313
- if_308_end:
- goto if_267_end
- if_267:
-.annotate "line", 71
- .const 'Sub' $P271 = "25_1261064035.64813"
- capture_lex $P271
- $P271()
- if_267_end:
-.annotate "line", 84
- find_lex $P315, "$/"
- find_lex $P316, "$past"
- $P317 = $P315."!make"($P316)
-.annotate "line", 69
- .return ($P317)
- control_260:
+ $P315 = $P314."ast"()
+ store_lex "$past", $P315
+ if_310_end:
+ goto if_269_end
+ if_269:
+.annotate "line", 74
+ .const 'Sub' $P273 = "25_1267204714.47172"
+ capture_lex $P273
+ $P273()
+ if_269_end:
+.annotate "line", 87
+ find_lex $P317, "$/"
+ find_lex $P318, "$past"
+ $P319 = $P317."!make"($P318)
+.annotate "line", 72
+ .return ($P319)
+ control_262:
.local pmc exception
.get_results (exception)
- getattribute $P318, exception, "payload"
- .return ($P318)
+ getattribute $P320, exception, "payload"
+ .return ($P320)
.end
.namespace ["NQP";"Actions"]
-.sub "_block270" :anon :subid("25_1261064035.64813") :outer("24_1261064035.64813")
-.annotate "line", 72
- new $P272, "Undef"
- .lex "$mc", $P272
-.annotate "line", 73
- new $P273, "Undef"
- .lex "$ml", $P273
-.annotate "line", 72
- find_lex $P274, "$/"
- unless_null $P274, vivify_170
- new $P274, "Hash"
+.sub "_block272" :anon :subid("25_1267204714.47172") :outer("24_1267204714.47172")
+.annotate "line", 75
+ new $P274, "Undef"
+ .lex "$mc", $P274
+.annotate "line", 76
+ new $P275, "Undef"
+ .lex "$ml", $P275
+.annotate "line", 75
+ find_lex $P276, "$/"
+ unless_null $P276, vivify_170
+ $P276 = root_new ['parrot';'Hash']
vivify_170:
- set $P275, $P274["statement_mod_cond"]
- unless_null $P275, vivify_171
- new $P275, "ResizablePMCArray"
+ set $P277, $P276["statement_mod_cond"]
+ unless_null $P277, vivify_171
+ $P277 = root_new ['parrot';'ResizablePMCArray']
vivify_171:
- set $P276, $P275[0]
- unless_null $P276, vivify_172
- new $P276, "Undef"
+ set $P278, $P277[0]
+ unless_null $P278, vivify_172
+ new $P278, "Undef"
vivify_172:
- store_lex "$mc", $P276
-.annotate "line", 73
- find_lex $P277, "$/"
- unless_null $P277, vivify_173
- new $P277, "Hash"
+ store_lex "$mc", $P278
+.annotate "line", 76
+ find_lex $P279, "$/"
+ unless_null $P279, vivify_173
+ $P279 = root_new ['parrot';'Hash']
vivify_173:
- set $P278, $P277["statement_mod_loop"]
- unless_null $P278, vivify_174
- new $P278, "ResizablePMCArray"
+ set $P280, $P279["statement_mod_loop"]
+ unless_null $P280, vivify_174
+ $P280 = root_new ['parrot';'ResizablePMCArray']
vivify_174:
- set $P279, $P278[0]
- unless_null $P279, vivify_175
- new $P279, "Undef"
+ set $P281, $P280[0]
+ unless_null $P281, vivify_175
+ new $P281, "Undef"
vivify_175:
- store_lex "$ml", $P279
-.annotate "line", 74
- find_lex $P280, "$/"
- unless_null $P280, vivify_176
- new $P280, "Hash"
+ store_lex "$ml", $P281
+.annotate "line", 77
+ find_lex $P282, "$/"
+ unless_null $P282, vivify_176
+ $P282 = root_new ['parrot';'Hash']
vivify_176:
- set $P281, $P280["EXPR"]
- unless_null $P281, vivify_177
- new $P281, "Undef"
+ set $P283, $P282["EXPR"]
+ unless_null $P283, vivify_177
+ new $P283, "Undef"
vivify_177:
- $P282 = $P281."ast"()
- store_lex "$past", $P282
-.annotate "line", 75
- find_lex $P284, "$mc"
- unless $P284, if_283_end
-.annotate "line", 76
- get_hll_global $P285, ["PAST"], "Op"
+ $P284 = $P283."ast"()
+ store_lex "$past", $P284
+.annotate "line", 78
find_lex $P286, "$mc"
- unless_null $P286, vivify_178
- new $P286, "Hash"
+ unless $P286, if_285_end
+.annotate "line", 79
+ get_hll_global $P287, ["PAST"], "Op"
+ find_lex $P288, "$mc"
+ unless_null $P288, vivify_178
+ $P288 = root_new ['parrot';'Hash']
vivify_178:
- set $P287, $P286["cond"]
- unless_null $P287, vivify_179
- new $P287, "Undef"
+ set $P289, $P288["cond"]
+ unless_null $P289, vivify_179
+ new $P289, "Undef"
vivify_179:
- $P288 = $P287."ast"()
- find_lex $P289, "$past"
- find_lex $P290, "$mc"
- unless_null $P290, vivify_180
- new $P290, "Hash"
+ $P290 = $P289."ast"()
+ find_lex $P291, "$past"
+ find_lex $P292, "$mc"
+ unless_null $P292, vivify_180
+ $P292 = root_new ['parrot';'Hash']
vivify_180:
- set $P291, $P290["sym"]
- unless_null $P291, vivify_181
- new $P291, "Undef"
+ set $P293, $P292["sym"]
+ unless_null $P293, vivify_181
+ new $P293, "Undef"
vivify_181:
- set $S292, $P291
- find_lex $P293, "$/"
- $P294 = $P285."new"($P288, $P289, $S292 :named("pasttype"), $P293 :named("node"))
- store_lex "$past", $P294
- if_283_end:
-.annotate "line", 78
- find_lex $P297, "$ml"
- if $P297, if_296
- set $P295, $P297
- goto if_296_end
- if_296:
-.annotate "line", 79
- get_hll_global $P298, ["PAST"], "Op"
+ set $S294, $P293
+ find_lex $P295, "$/"
+ $P296 = $P287."new"($P290, $P291, $S294 :named("pasttype"), $P295 :named("node"))
+ store_lex "$past", $P296
+ if_285_end:
+.annotate "line", 81
find_lex $P299, "$ml"
- unless_null $P299, vivify_182
- new $P299, "Hash"
+ if $P299, if_298
+ set $P297, $P299
+ goto if_298_end
+ if_298:
+.annotate "line", 82
+ get_hll_global $P300, ["PAST"], "Op"
+ find_lex $P301, "$ml"
+ unless_null $P301, vivify_182
+ $P301 = root_new ['parrot';'Hash']
vivify_182:
- set $P300, $P299["cond"]
- unless_null $P300, vivify_183
- new $P300, "Undef"
+ set $P302, $P301["cond"]
+ unless_null $P302, vivify_183
+ new $P302, "Undef"
vivify_183:
- $P301 = $P300."ast"()
- find_lex $P302, "$past"
- find_lex $P303, "$ml"
- unless_null $P303, vivify_184
- new $P303, "Hash"
+ $P303 = $P302."ast"()
+ find_lex $P304, "$past"
+ find_lex $P305, "$ml"
+ unless_null $P305, vivify_184
+ $P305 = root_new ['parrot';'Hash']
vivify_184:
- set $P304, $P303["sym"]
- unless_null $P304, vivify_185
- new $P304, "Undef"
+ set $P306, $P305["sym"]
+ unless_null $P306, vivify_185
+ new $P306, "Undef"
vivify_185:
- set $S305, $P304
- find_lex $P306, "$/"
- $P307 = $P298."new"($P301, $P302, $S305 :named("pasttype"), $P306 :named("node"))
- store_lex "$past", $P307
-.annotate "line", 78
- set $P295, $P307
- if_296_end:
-.annotate "line", 71
- .return ($P295)
+ set $S307, $P306
+ find_lex $P308, "$/"
+ $P309 = $P300."new"($P303, $P304, $S307 :named("pasttype"), $P308 :named("node"))
+ store_lex "$past", $P309
+.annotate "line", 81
+ set $P297, $P309
+ if_298_end:
+.annotate "line", 74
+ .return ($P297)
.end
.namespace ["NQP";"Actions"]
-.sub "xblock" :subid("26_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_322
-.annotate "line", 87
- new $P321, 'ExceptionHandler'
- set_addr $P321, control_320
- $P321."handle_types"(58)
- push_eh $P321
+.sub "xblock" :subid("26_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_324
+.annotate "line", 90
+ new $P323, 'ExceptionHandler'
+ set_addr $P323, control_322
+ $P323."handle_types"(58)
+ push_eh $P323
.lex "self", self
- .lex "$/", param_322
-.annotate "line", 88
- find_lex $P323, "$/"
- get_hll_global $P324, ["PAST"], "Op"
+ .lex "$/", param_324
+.annotate "line", 91
find_lex $P325, "$/"
- unless_null $P325, vivify_186
- new $P325, "Hash"
+ get_hll_global $P326, ["PAST"], "Op"
+ find_lex $P327, "$/"
+ unless_null $P327, vivify_186
+ $P327 = root_new ['parrot';'Hash']
vivify_186:
- set $P326, $P325["EXPR"]
- unless_null $P326, vivify_187
- new $P326, "Undef"
+ set $P328, $P327["EXPR"]
+ unless_null $P328, vivify_187
+ new $P328, "Undef"
vivify_187:
- $P327 = $P326."ast"()
- find_lex $P328, "$/"
- unless_null $P328, vivify_188
- new $P328, "Hash"
+ $P329 = $P328."ast"()
+ find_lex $P330, "$/"
+ unless_null $P330, vivify_188
+ $P330 = root_new ['parrot';'Hash']
vivify_188:
- set $P329, $P328["pblock"]
- unless_null $P329, vivify_189
- new $P329, "Undef"
+ set $P331, $P330["pblock"]
+ unless_null $P331, vivify_189
+ new $P331, "Undef"
vivify_189:
- $P330 = $P329."ast"()
- find_lex $P331, "$/"
- $P332 = $P324."new"($P327, $P330, "if" :named("pasttype"), $P331 :named("node"))
- $P333 = $P323."!make"($P332)
-.annotate "line", 87
- .return ($P333)
- control_320:
+ $P332 = $P331."ast"()
+ find_lex $P333, "$/"
+ $P334 = $P326."new"($P329, $P332, "if" :named("pasttype"), $P333 :named("node"))
+ $P335 = $P325."!make"($P334)
+.annotate "line", 90
+ .return ($P335)
+ control_322:
.local pmc exception
.get_results (exception)
- getattribute $P334, exception, "payload"
- .return ($P334)
+ getattribute $P336, exception, "payload"
+ .return ($P336)
.end
.namespace ["NQP";"Actions"]
-.sub "pblock" :subid("27_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_338
-.annotate "line", 91
- new $P337, 'ExceptionHandler'
- set_addr $P337, control_336
- $P337."handle_types"(58)
- push_eh $P337
+.sub "pblock" :subid("27_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_340
+.annotate "line", 94
+ new $P339, 'ExceptionHandler'
+ set_addr $P339, control_338
+ $P339."handle_types"(58)
+ push_eh $P339
.lex "self", self
- .lex "$/", param_338
-.annotate "line", 92
- find_lex $P339, "$/"
- find_lex $P340, "$/"
- unless_null $P340, vivify_190
- new $P340, "Hash"
+ .lex "$/", param_340
+.annotate "line", 95
+ find_lex $P341, "$/"
+ find_lex $P342, "$/"
+ unless_null $P342, vivify_190
+ $P342 = root_new ['parrot';'Hash']
vivify_190:
- set $P341, $P340["blockoid"]
- unless_null $P341, vivify_191
- new $P341, "Undef"
+ set $P343, $P342["blockoid"]
+ unless_null $P343, vivify_191
+ new $P343, "Undef"
vivify_191:
- $P342 = $P341."ast"()
- $P343 = $P339."!make"($P342)
-.annotate "line", 91
- .return ($P343)
- control_336:
+ $P344 = $P343."ast"()
+ $P345 = $P341."!make"($P344)
+.annotate "line", 94
+ .return ($P345)
+ control_338:
.local pmc exception
.get_results (exception)
- getattribute $P344, exception, "payload"
- .return ($P344)
+ getattribute $P346, exception, "payload"
+ .return ($P346)
.end
.namespace ["NQP";"Actions"]
-.sub "block" :subid("28_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_348
-.annotate "line", 95
- new $P347, 'ExceptionHandler'
- set_addr $P347, control_346
- $P347."handle_types"(58)
- push_eh $P347
+.sub "block" :subid("28_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_350
+.annotate "line", 98
+ new $P349, 'ExceptionHandler'
+ set_addr $P349, control_348
+ $P349."handle_types"(58)
+ push_eh $P349
.lex "self", self
- .lex "$/", param_348
-.annotate "line", 96
- find_lex $P349, "$/"
- find_lex $P350, "$/"
- unless_null $P350, vivify_192
- new $P350, "Hash"
+ .lex "$/", param_350
+.annotate "line", 99
+ find_lex $P351, "$/"
+ find_lex $P352, "$/"
+ unless_null $P352, vivify_192
+ $P352 = root_new ['parrot';'Hash']
vivify_192:
- set $P351, $P350["blockoid"]
- unless_null $P351, vivify_193
- new $P351, "Undef"
+ set $P353, $P352["blockoid"]
+ unless_null $P353, vivify_193
+ new $P353, "Undef"
vivify_193:
- $P352 = $P351."ast"()
- $P353 = $P349."!make"($P352)
-.annotate "line", 95
- .return ($P353)
- control_346:
+ $P354 = $P353."ast"()
+ $P355 = $P351."!make"($P354)
+.annotate "line", 98
+ .return ($P355)
+ control_348:
.local pmc exception
.get_results (exception)
- getattribute $P354, exception, "payload"
- .return ($P354)
+ getattribute $P356, exception, "payload"
+ .return ($P356)
.end
.namespace ["NQP";"Actions"]
-.sub "blockoid" :subid("29_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_358
-.annotate "line", 99
- new $P357, 'ExceptionHandler'
- set_addr $P357, control_356
- $P357."handle_types"(58)
- push_eh $P357
- .lex "self", self
- .lex "$/", param_358
-.annotate "line", 100
- new $P359, "Undef"
- .lex "$past", $P359
-.annotate "line", 101
- new $P360, "Undef"
- .lex "$BLOCK", $P360
-.annotate "line", 100
- find_lex $P361, "$/"
- unless_null $P361, vivify_194
- new $P361, "Hash"
- vivify_194:
- set $P362, $P361["statementlist"]
- unless_null $P362, vivify_195
- new $P362, "Undef"
- vivify_195:
- $P363 = $P362."ast"()
- store_lex "$past", $P363
-.annotate "line", 101
- get_global $P364, "@BLOCK"
- $P365 = $P364."shift"()
- store_lex "$BLOCK", $P365
+.sub "blockoid" :subid("29_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_360
.annotate "line", 102
- find_lex $P366, "$BLOCK"
- find_lex $P367, "$past"
- $P366."push"($P367)
+ new $P359, 'ExceptionHandler'
+ set_addr $P359, control_358
+ $P359."handle_types"(58)
+ push_eh $P359
+ .lex "self", self
+ .lex "$/", param_360
.annotate "line", 103
- find_lex $P368, "$BLOCK"
- find_lex $P369, "$/"
- $P368."node"($P369)
+ new $P361, "Undef"
+ .lex "$past", $P361
.annotate "line", 104
- find_lex $P370, "$/"
- find_lex $P371, "$BLOCK"
- $P372 = $P370."!make"($P371)
-.annotate "line", 99
- .return ($P372)
- control_356:
+ new $P362, "Undef"
+ .lex "$BLOCK", $P362
+.annotate "line", 103
+ find_lex $P363, "$/"
+ unless_null $P363, vivify_194
+ $P363 = root_new ['parrot';'Hash']
+ vivify_194:
+ set $P364, $P363["statementlist"]
+ unless_null $P364, vivify_195
+ new $P364, "Undef"
+ vivify_195:
+ $P365 = $P364."ast"()
+ store_lex "$past", $P365
+.annotate "line", 104
+ get_global $P366, "@BLOCK"
+ $P367 = $P366."shift"()
+ store_lex "$BLOCK", $P367
+.annotate "line", 105
+ find_lex $P368, "$BLOCK"
+ find_lex $P369, "$past"
+ $P368."push"($P369)
+.annotate "line", 106
+ find_lex $P370, "$BLOCK"
+ find_lex $P371, "$/"
+ $P370."node"($P371)
+.annotate "line", 107
+ find_lex $P372, "$/"
+ find_lex $P373, "$BLOCK"
+ $P374 = $P372."!make"($P373)
+.annotate "line", 102
+ .return ($P374)
+ control_358:
.local pmc exception
.get_results (exception)
- getattribute $P373, exception, "payload"
- .return ($P373)
+ getattribute $P375, exception, "payload"
+ .return ($P375)
.end
.namespace ["NQP";"Actions"]
-.sub "newpad" :subid("30_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_377
-.annotate "line", 107
- new $P376, 'ExceptionHandler'
- set_addr $P376, control_375
- $P376."handle_types"(58)
- push_eh $P376
+.sub "newpad" :subid("30_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_379
+.annotate "line", 110
+ new $P378, 'ExceptionHandler'
+ set_addr $P378, control_377
+ $P378."handle_types"(58)
+ push_eh $P378
.lex "self", self
- .lex "$/", param_377
-.annotate "line", 108
- get_global $P378, "@BLOCK"
- unless_null $P378, vivify_196
- new $P378, "ResizablePMCArray"
- set_global "@BLOCK", $P378
- vivify_196:
-.annotate "line", 107
- get_global $P379, "@BLOCK"
-.annotate "line", 109
+ .lex "$/", param_379
+.annotate "line", 111
get_global $P380, "@BLOCK"
- get_hll_global $P381, ["PAST"], "Block"
- get_hll_global $P382, ["PAST"], "Stmts"
- $P383 = $P382."new"()
- $P384 = $P381."new"($P383)
- $P385 = $P380."unshift"($P384)
-.annotate "line", 107
- .return ($P385)
- control_375:
+ unless_null $P380, vivify_196
+ $P380 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P380
+ vivify_196:
+.annotate "line", 110
+ get_global $P381, "@BLOCK"
+.annotate "line", 112
+ get_global $P382, "@BLOCK"
+ get_hll_global $P383, ["PAST"], "Block"
+ get_hll_global $P384, ["PAST"], "Stmts"
+ $P385 = $P384."new"()
+ $P386 = $P383."new"($P385)
+ $P387 = $P382."unshift"($P386)
+.annotate "line", 110
+ .return ($P387)
+ control_377:
.local pmc exception
.get_results (exception)
- getattribute $P386, exception, "payload"
- .return ($P386)
+ getattribute $P388, exception, "payload"
+ .return ($P388)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>" :subid("31_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_390
-.annotate "line", 114
- .const 'Sub' $P418 = "32_1261064035.64813"
- capture_lex $P418
- new $P389, 'ExceptionHandler'
- set_addr $P389, control_388
- $P389."handle_types"(58)
- push_eh $P389
+.sub "statement_control:sym<if>" :subid("31_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_392
+.annotate "line", 117
+ .const 'Sub' $P420 = "32_1267204714.47172"
+ capture_lex $P420
+ new $P391, 'ExceptionHandler'
+ set_addr $P391, control_390
+ $P391."handle_types"(58)
+ push_eh $P391
.lex "self", self
- .lex "$/", param_390
-.annotate "line", 115
- new $P391, "Undef"
- .lex "$count", $P391
-.annotate "line", 116
- new $P392, "Undef"
- .lex "$past", $P392
-.annotate "line", 115
- find_lex $P393, "$/"
- unless_null $P393, vivify_197
- new $P393, "Hash"
- vivify_197:
- set $P394, $P393["xblock"]
- unless_null $P394, vivify_198
+ .lex "$/", param_392
+.annotate "line", 118
+ new $P393, "Undef"
+ .lex "$count", $P393
+.annotate "line", 119
new $P394, "Undef"
+ .lex "$past", $P394
+.annotate "line", 118
+ find_lex $P395, "$/"
+ unless_null $P395, vivify_197
+ $P395 = root_new ['parrot';'Hash']
+ vivify_197:
+ set $P396, $P395["xblock"]
+ unless_null $P396, vivify_198
+ new $P396, "Undef"
vivify_198:
- set $N395, $P394
- new $P396, 'Float'
- set $P396, $N395
- sub $P397, $P396, 1
- store_lex "$count", $P397
-.annotate "line", 116
- find_lex $P398, "$count"
- set $I399, $P398
- find_lex $P400, "$/"
- unless_null $P400, vivify_199
- new $P400, "Hash"
+ set $N397, $P396
+ new $P398, 'Float'
+ set $P398, $N397
+ sub $P399, $P398, 1
+ store_lex "$count", $P399
+.annotate "line", 119
+ find_lex $P400, "$count"
+ set $I401, $P400
+ find_lex $P402, "$/"
+ unless_null $P402, vivify_199
+ $P402 = root_new ['parrot';'Hash']
vivify_199:
- set $P401, $P400["xblock"]
- unless_null $P401, vivify_200
- new $P401, "ResizablePMCArray"
+ set $P403, $P402["xblock"]
+ unless_null $P403, vivify_200
+ $P403 = root_new ['parrot';'ResizablePMCArray']
vivify_200:
- set $P402, $P401[$I399]
- unless_null $P402, vivify_201
- new $P402, "Undef"
+ set $P404, $P403[$I401]
+ unless_null $P404, vivify_201
+ new $P404, "Undef"
vivify_201:
- $P403 = $P402."ast"()
- $P404 = "xblock_immediate"($P403)
- store_lex "$past", $P404
-.annotate "line", 117
- find_lex $P406, "$/"
- unless_null $P406, vivify_202
- new $P406, "Hash"
+ $P405 = $P404."ast"()
+ $P406 = "xblock_immediate"($P405)
+ store_lex "$past", $P406
+.annotate "line", 120
+ find_lex $P408, "$/"
+ unless_null $P408, vivify_202
+ $P408 = root_new ['parrot';'Hash']
vivify_202:
- set $P407, $P406["else"]
- unless_null $P407, vivify_203
- new $P407, "Undef"
+ set $P409, $P408["else"]
+ unless_null $P409, vivify_203
+ new $P409, "Undef"
vivify_203:
- unless $P407, if_405_end
-.annotate "line", 118
- find_lex $P408, "$past"
- find_lex $P409, "$/"
- unless_null $P409, vivify_204
- new $P409, "Hash"
+ unless $P409, if_407_end
+.annotate "line", 121
+ find_lex $P410, "$past"
+ find_lex $P411, "$/"
+ unless_null $P411, vivify_204
+ $P411 = root_new ['parrot';'Hash']
vivify_204:
- set $P410, $P409["else"]
- unless_null $P410, vivify_205
- new $P410, "ResizablePMCArray"
+ set $P412, $P411["else"]
+ unless_null $P412, vivify_205
+ $P412 = root_new ['parrot';'ResizablePMCArray']
vivify_205:
- set $P411, $P410[0]
- unless_null $P411, vivify_206
- new $P411, "Undef"
+ set $P413, $P412[0]
+ unless_null $P413, vivify_206
+ new $P413, "Undef"
vivify_206:
- $P412 = $P411."ast"()
- $P413 = "block_immediate"($P412)
- $P408."push"($P413)
- if_405_end:
-.annotate "line", 121
- new $P434, 'ExceptionHandler'
- set_addr $P434, loop433_handler
- $P434."handle_types"(65, 67, 66)
- push_eh $P434
- loop433_test:
- find_lex $P414, "$count"
- set $N415, $P414
- isgt $I416, $N415, 0.0
- unless $I416, loop433_done
- loop433_redo:
- .const 'Sub' $P418 = "32_1261064035.64813"
- capture_lex $P418
- $P418()
- loop433_next:
- goto loop433_test
- loop433_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P435, exception, 'type'
- eq $P435, 65, loop433_next
- eq $P435, 67, loop433_redo
- loop433_done:
+ $P414 = $P413."ast"()
+ $P415 = "block_immediate"($P414)
+ $P410."push"($P415)
+ if_407_end:
+.annotate "line", 124
+ new $P436, 'ExceptionHandler'
+ set_addr $P436, loop435_handler
+ $P436."handle_types"(65, 67, 66)
+ push_eh $P436
+ loop435_test:
+ find_lex $P416, "$count"
+ set $N417, $P416
+ isgt $I418, $N417, 0.0
+ unless $I418, loop435_done
+ loop435_redo:
+ .const 'Sub' $P420 = "32_1267204714.47172"
+ capture_lex $P420
+ $P420()
+ loop435_next:
+ goto loop435_test
+ loop435_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P437, exception, 'type'
+ eq $P437, 65, loop435_next
+ eq $P437, 67, loop435_redo
+ loop435_done:
pop_eh
-.annotate "line", 127
- find_lex $P436, "$/"
- find_lex $P437, "$past"
- $P438 = $P436."!make"($P437)
-.annotate "line", 114
- .return ($P438)
- control_388:
+.annotate "line", 130
+ find_lex $P438, "$/"
+ find_lex $P439, "$past"
+ $P440 = $P438."!make"($P439)
+.annotate "line", 117
+ .return ($P440)
+ control_390:
.local pmc exception
.get_results (exception)
- getattribute $P439, exception, "payload"
- .return ($P439)
+ getattribute $P441, exception, "payload"
+ .return ($P441)
.end
.namespace ["NQP";"Actions"]
-.sub "_block417" :anon :subid("32_1261064035.64813") :outer("31_1261064035.64813")
-.annotate "line", 123
- new $P419, "Undef"
- .lex "$else", $P419
-.annotate "line", 121
- find_lex $P420, "$count"
- clone $P421, $P420
- dec $P420
-.annotate "line", 123
- find_lex $P422, "$past"
- store_lex "$else", $P422
+.sub "_block419" :anon :subid("32_1267204714.47172") :outer("31_1267204714.47172")
+.annotate "line", 126
+ new $P421, "Undef"
+ .lex "$else", $P421
.annotate "line", 124
- find_lex $P423, "$count"
- set $I424, $P423
- find_lex $P425, "$/"
- unless_null $P425, vivify_207
- new $P425, "Hash"
+ find_lex $P422, "$count"
+ clone $P423, $P422
+ dec $P422
+.annotate "line", 126
+ find_lex $P424, "$past"
+ store_lex "$else", $P424
+.annotate "line", 127
+ find_lex $P425, "$count"
+ set $I426, $P425
+ find_lex $P427, "$/"
+ unless_null $P427, vivify_207
+ $P427 = root_new ['parrot';'Hash']
vivify_207:
- set $P426, $P425["xblock"]
- unless_null $P426, vivify_208
- new $P426, "ResizablePMCArray"
+ set $P428, $P427["xblock"]
+ unless_null $P428, vivify_208
+ $P428 = root_new ['parrot';'ResizablePMCArray']
vivify_208:
- set $P427, $P426[$I424]
- unless_null $P427, vivify_209
- new $P427, "Undef"
+ set $P429, $P428[$I426]
+ unless_null $P429, vivify_209
+ new $P429, "Undef"
vivify_209:
- $P428 = $P427."ast"()
- $P429 = "xblock_immediate"($P428)
- store_lex "$past", $P429
-.annotate "line", 125
- find_lex $P430, "$past"
- find_lex $P431, "$else"
- $P432 = $P430."push"($P431)
-.annotate "line", 121
- .return ($P432)
+ $P430 = $P429."ast"()
+ $P431 = "xblock_immediate"($P430)
+ store_lex "$past", $P431
+.annotate "line", 128
+ find_lex $P432, "$past"
+ find_lex $P433, "$else"
+ $P434 = $P432."push"($P433)
+.annotate "line", 124
+ .return ($P434)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>" :subid("33_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_443
-.annotate "line", 130
- new $P442, 'ExceptionHandler'
- set_addr $P442, control_441
- $P442."handle_types"(58)
- push_eh $P442
+.sub "statement_control:sym<unless>" :subid("33_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_445
+.annotate "line", 133
+ new $P444, 'ExceptionHandler'
+ set_addr $P444, control_443
+ $P444."handle_types"(58)
+ push_eh $P444
.lex "self", self
- .lex "$/", param_443
-.annotate "line", 131
- new $P444, "Undef"
- .lex "$past", $P444
- find_lex $P445, "$/"
- unless_null $P445, vivify_210
- new $P445, "Hash"
- vivify_210:
- set $P446, $P445["xblock"]
- unless_null $P446, vivify_211
+ .lex "$/", param_445
+.annotate "line", 134
new $P446, "Undef"
+ .lex "$past", $P446
+ find_lex $P447, "$/"
+ unless_null $P447, vivify_210
+ $P447 = root_new ['parrot';'Hash']
+ vivify_210:
+ set $P448, $P447["xblock"]
+ unless_null $P448, vivify_211
+ new $P448, "Undef"
vivify_211:
- $P447 = $P446."ast"()
- $P448 = "xblock_immediate"($P447)
- store_lex "$past", $P448
-.annotate "line", 132
- find_lex $P449, "$past"
- $P449."pasttype"("unless")
-.annotate "line", 133
- find_lex $P450, "$/"
+ $P449 = $P448."ast"()
+ $P450 = "xblock_immediate"($P449)
+ store_lex "$past", $P450
+.annotate "line", 135
find_lex $P451, "$past"
- $P452 = $P450."!make"($P451)
-.annotate "line", 130
- .return ($P452)
- control_441:
+ $P451."pasttype"("unless")
+.annotate "line", 136
+ find_lex $P452, "$/"
+ find_lex $P453, "$past"
+ $P454 = $P452."!make"($P453)
+.annotate "line", 133
+ .return ($P454)
+ control_443:
.local pmc exception
.get_results (exception)
- getattribute $P453, exception, "payload"
- .return ($P453)
+ getattribute $P455, exception, "payload"
+ .return ($P455)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>" :subid("34_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_457
-.annotate "line", 136
- new $P456, 'ExceptionHandler'
- set_addr $P456, control_455
- $P456."handle_types"(58)
- push_eh $P456
+.sub "statement_control:sym<while>" :subid("34_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_459
+.annotate "line", 139
+ new $P458, 'ExceptionHandler'
+ set_addr $P458, control_457
+ $P458."handle_types"(58)
+ push_eh $P458
.lex "self", self
- .lex "$/", param_457
-.annotate "line", 137
- new $P458, "Undef"
- .lex "$past", $P458
- find_lex $P459, "$/"
- unless_null $P459, vivify_212
- new $P459, "Hash"
- vivify_212:
- set $P460, $P459["xblock"]
- unless_null $P460, vivify_213
+ .lex "$/", param_459
+.annotate "line", 140
new $P460, "Undef"
+ .lex "$past", $P460
+ find_lex $P461, "$/"
+ unless_null $P461, vivify_212
+ $P461 = root_new ['parrot';'Hash']
+ vivify_212:
+ set $P462, $P461["xblock"]
+ unless_null $P462, vivify_213
+ new $P462, "Undef"
vivify_213:
- $P461 = $P460."ast"()
- $P462 = "xblock_immediate"($P461)
- store_lex "$past", $P462
-.annotate "line", 138
- find_lex $P463, "$past"
- find_lex $P464, "$/"
- unless_null $P464, vivify_214
- new $P464, "Hash"
+ $P463 = $P462."ast"()
+ $P464 = "xblock_immediate"($P463)
+ store_lex "$past", $P464
+.annotate "line", 141
+ find_lex $P465, "$past"
+ find_lex $P466, "$/"
+ unless_null $P466, vivify_214
+ $P466 = root_new ['parrot';'Hash']
vivify_214:
- set $P465, $P464["sym"]
- unless_null $P465, vivify_215
- new $P465, "Undef"
+ set $P467, $P466["sym"]
+ unless_null $P467, vivify_215
+ new $P467, "Undef"
vivify_215:
- set $S466, $P465
- $P463."pasttype"($S466)
+ set $S468, $P467
+ $P465."pasttype"($S468)
+.annotate "line", 142
+ find_lex $P469, "$/"
+ find_lex $P470, "$past"
+ $P471 = $P469."!make"($P470)
.annotate "line", 139
- find_lex $P467, "$/"
- find_lex $P468, "$past"
- $P469 = $P467."!make"($P468)
-.annotate "line", 136
- .return ($P469)
- control_455:
+ .return ($P471)
+ control_457:
.local pmc exception
.get_results (exception)
- getattribute $P470, exception, "payload"
- .return ($P470)
+ getattribute $P472, exception, "payload"
+ .return ($P472)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>" :subid("35_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_474
-.annotate "line", 142
- new $P473, 'ExceptionHandler'
- set_addr $P473, control_472
- $P473."handle_types"(58)
- push_eh $P473
+.sub "statement_control:sym<repeat>" :subid("35_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_476
+.annotate "line", 145
+ new $P475, 'ExceptionHandler'
+ set_addr $P475, control_474
+ $P475."handle_types"(58)
+ push_eh $P475
.lex "self", self
- .lex "$/", param_474
-.annotate "line", 143
- new $P475, "Undef"
- .lex "$pasttype", $P475
-.annotate "line", 144
- new $P476, "Undef"
- .lex "$past", $P476
-.annotate "line", 143
- new $P477, "String"
- assign $P477, "repeat_"
- find_lex $P478, "$/"
- unless_null $P478, vivify_216
- new $P478, "Hash"
+ .lex "$/", param_476
+.annotate "line", 146
+ new $P477, "Undef"
+ .lex "$pasttype", $P477
+.annotate "line", 147
+ new $P478, "Undef"
+ .lex "$past", $P478
+.annotate "line", 146
+ new $P479, "String"
+ assign $P479, "repeat_"
+ find_lex $P480, "$/"
+ unless_null $P480, vivify_216
+ $P480 = root_new ['parrot';'Hash']
vivify_216:
- set $P479, $P478["wu"]
- unless_null $P479, vivify_217
- new $P479, "Undef"
+ set $P481, $P480["wu"]
+ unless_null $P481, vivify_217
+ new $P481, "Undef"
vivify_217:
- set $S480, $P479
- concat $P481, $P477, $S480
- store_lex "$pasttype", $P481
- find_lex $P482, "$past"
-.annotate "line", 145
- find_lex $P484, "$/"
- unless_null $P484, vivify_218
- new $P484, "Hash"
+ set $S482, $P481
+ concat $P483, $P479, $S482
+ store_lex "$pasttype", $P483
+ find_lex $P484, "$past"
+.annotate "line", 148
+ find_lex $P486, "$/"
+ unless_null $P486, vivify_218
+ $P486 = root_new ['parrot';'Hash']
vivify_218:
- set $P485, $P484["xblock"]
- unless_null $P485, vivify_219
- new $P485, "Undef"
+ set $P487, $P486["xblock"]
+ unless_null $P487, vivify_219
+ new $P487, "Undef"
vivify_219:
- if $P485, if_483
-.annotate "line", 150
- get_hll_global $P492, ["PAST"], "Op"
- find_lex $P493, "$/"
- unless_null $P493, vivify_220
- new $P493, "Hash"
+ if $P487, if_485
+.annotate "line", 153
+ get_hll_global $P494, ["PAST"], "Op"
+ find_lex $P495, "$/"
+ unless_null $P495, vivify_220
+ $P495 = root_new ['parrot';'Hash']
vivify_220:
- set $P494, $P493["EXPR"]
- unless_null $P494, vivify_221
- new $P494, "Undef"
+ set $P496, $P495["EXPR"]
+ unless_null $P496, vivify_221
+ new $P496, "Undef"
vivify_221:
- $P495 = $P494."ast"()
- find_lex $P496, "$/"
- unless_null $P496, vivify_222
- new $P496, "Hash"
+ $P497 = $P496."ast"()
+ find_lex $P498, "$/"
+ unless_null $P498, vivify_222
+ $P498 = root_new ['parrot';'Hash']
vivify_222:
- set $P497, $P496["pblock"]
- unless_null $P497, vivify_223
- new $P497, "Undef"
+ set $P499, $P498["pblock"]
+ unless_null $P499, vivify_223
+ new $P499, "Undef"
vivify_223:
- $P498 = $P497."ast"()
- $P499 = "block_immediate"($P498)
- find_lex $P500, "$pasttype"
- find_lex $P501, "$/"
- $P502 = $P492."new"($P495, $P499, $P500 :named("pasttype"), $P501 :named("node"))
- store_lex "$past", $P502
+ $P500 = $P499."ast"()
+ $P501 = "block_immediate"($P500)
+ find_lex $P502, "$pasttype"
+ find_lex $P503, "$/"
+ $P504 = $P494."new"($P497, $P501, $P502 :named("pasttype"), $P503 :named("node"))
+ store_lex "$past", $P504
+.annotate "line", 152
+ goto if_485_end
+ if_485:
.annotate "line", 149
- goto if_483_end
- if_483:
-.annotate "line", 146
- find_lex $P486, "$/"
- unless_null $P486, vivify_224
- new $P486, "Hash"
+ find_lex $P488, "$/"
+ unless_null $P488, vivify_224
+ $P488 = root_new ['parrot';'Hash']
vivify_224:
- set $P487, $P486["xblock"]
- unless_null $P487, vivify_225
- new $P487, "Undef"
+ set $P489, $P488["xblock"]
+ unless_null $P489, vivify_225
+ new $P489, "Undef"
vivify_225:
- $P488 = $P487."ast"()
- $P489 = "xblock_immediate"($P488)
- store_lex "$past", $P489
-.annotate "line", 147
- find_lex $P490, "$past"
- find_lex $P491, "$pasttype"
- $P490."pasttype"($P491)
- if_483_end:
-.annotate "line", 153
- find_lex $P503, "$/"
- find_lex $P504, "$past"
- $P505 = $P503."!make"($P504)
-.annotate "line", 142
- .return ($P505)
- control_472:
+ $P490 = $P489."ast"()
+ $P491 = "xblock_immediate"($P490)
+ store_lex "$past", $P491
+.annotate "line", 150
+ find_lex $P492, "$past"
+ find_lex $P493, "$pasttype"
+ $P492."pasttype"($P493)
+ if_485_end:
+.annotate "line", 156
+ find_lex $P505, "$/"
+ find_lex $P506, "$past"
+ $P507 = $P505."!make"($P506)
+.annotate "line", 145
+ .return ($P507)
+ control_474:
.local pmc exception
.get_results (exception)
- getattribute $P506, exception, "payload"
- .return ($P506)
+ getattribute $P508, exception, "payload"
+ .return ($P508)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>" :subid("36_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_510
-.annotate "line", 156
- new $P509, 'ExceptionHandler'
- set_addr $P509, control_508
- $P509."handle_types"(58)
- push_eh $P509
- .lex "self", self
- .lex "$/", param_510
-.annotate "line", 157
- new $P511, "Undef"
- .lex "$past", $P511
+.sub "statement_control:sym<for>" :subid("36_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_512
.annotate "line", 159
- new $P512, "Undef"
- .lex "$block", $P512
-.annotate "line", 157
- find_lex $P513, "$/"
- unless_null $P513, vivify_226
- new $P513, "Hash"
- vivify_226:
- set $P514, $P513["xblock"]
- unless_null $P514, vivify_227
+ new $P511, 'ExceptionHandler'
+ set_addr $P511, control_510
+ $P511."handle_types"(58)
+ push_eh $P511
+ .lex "self", self
+ .lex "$/", param_512
+.annotate "line", 160
+ new $P513, "Undef"
+ .lex "$past", $P513
+.annotate "line", 162
new $P514, "Undef"
+ .lex "$block", $P514
+.annotate "line", 160
+ find_lex $P515, "$/"
+ unless_null $P515, vivify_226
+ $P515 = root_new ['parrot';'Hash']
+ vivify_226:
+ set $P516, $P515["xblock"]
+ unless_null $P516, vivify_227
+ new $P516, "Undef"
vivify_227:
- $P515 = $P514."ast"()
- store_lex "$past", $P515
-.annotate "line", 158
- find_lex $P516, "$past"
- $P516."pasttype"("for")
-.annotate "line", 159
- find_lex $P517, "$past"
- unless_null $P517, vivify_228
- new $P517, "ResizablePMCArray"
+ $P517 = $P516."ast"()
+ store_lex "$past", $P517
+.annotate "line", 161
+ find_lex $P518, "$past"
+ $P518."pasttype"("for")
+.annotate "line", 162
+ find_lex $P519, "$past"
+ unless_null $P519, vivify_228
+ $P519 = root_new ['parrot';'ResizablePMCArray']
vivify_228:
- set $P518, $P517[1]
- unless_null $P518, vivify_229
- new $P518, "Undef"
+ set $P520, $P519[1]
+ unless_null $P520, vivify_229
+ new $P520, "Undef"
vivify_229:
- store_lex "$block", $P518
-.annotate "line", 160
- find_lex $P520, "$block"
- $P521 = $P520."arity"()
- if $P521, unless_519_end
-.annotate "line", 161
+ store_lex "$block", $P520
+.annotate "line", 163
find_lex $P522, "$block"
- unless_null $P522, vivify_230
- new $P522, "ResizablePMCArray"
+ $P523 = $P522."arity"()
+ if $P523, unless_521_end
+.annotate "line", 164
+ find_lex $P524, "$block"
+ unless_null $P524, vivify_230
+ $P524 = root_new ['parrot';'ResizablePMCArray']
vivify_230:
- set $P523, $P522[0]
- unless_null $P523, vivify_231
- new $P523, "Undef"
+ set $P525, $P524[0]
+ unless_null $P525, vivify_231
+ new $P525, "Undef"
vivify_231:
- get_hll_global $P524, ["PAST"], "Var"
- $P525 = $P524."new"("$_" :named("name"), "parameter" :named("scope"))
- $P523."push"($P525)
-.annotate "line", 162
- find_lex $P526, "$block"
- $P526."symbol"("$_", "lexical" :named("scope"))
-.annotate "line", 163
- find_lex $P527, "$block"
- $P527."arity"(1)
- unless_519_end:
+ get_hll_global $P526, ["PAST"], "Var"
+ $P527 = $P526."new"("$_" :named("name"), "parameter" :named("scope"))
+ $P525."push"($P527)
.annotate "line", 165
find_lex $P528, "$block"
- $P528."blocktype"("immediate")
+ $P528."symbol"("$_", "lexical" :named("scope"))
.annotate "line", 166
- find_lex $P529, "$/"
- find_lex $P530, "$past"
- $P531 = $P529."!make"($P530)
-.annotate "line", 156
- .return ($P531)
- control_508:
+ find_lex $P529, "$block"
+ $P529."arity"(1)
+ unless_521_end:
+.annotate "line", 168
+ find_lex $P530, "$block"
+ $P530."blocktype"("immediate")
+.annotate "line", 169
+ find_lex $P531, "$/"
+ find_lex $P532, "$past"
+ $P533 = $P531."!make"($P532)
+.annotate "line", 159
+ .return ($P533)
+ control_510:
.local pmc exception
.get_results (exception)
- getattribute $P532, exception, "payload"
- .return ($P532)
+ getattribute $P534, exception, "payload"
+ .return ($P534)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>" :subid("37_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_536
-.annotate "line", 169
- new $P535, 'ExceptionHandler'
- set_addr $P535, control_534
- $P535."handle_types"(58)
- push_eh $P535
+.sub "statement_control:sym<return>" :subid("37_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_538
+.annotate "line", 172
+ new $P537, 'ExceptionHandler'
+ set_addr $P537, control_536
+ $P537."handle_types"(58)
+ push_eh $P537
.lex "self", self
- .lex "$/", param_536
-.annotate "line", 170
- find_lex $P537, "$/"
- get_hll_global $P538, ["PAST"], "Op"
+ .lex "$/", param_538
+.annotate "line", 173
find_lex $P539, "$/"
- unless_null $P539, vivify_232
- new $P539, "Hash"
+ get_hll_global $P540, ["PAST"], "Op"
+ find_lex $P541, "$/"
+ unless_null $P541, vivify_232
+ $P541 = root_new ['parrot';'Hash']
vivify_232:
- set $P540, $P539["EXPR"]
- unless_null $P540, vivify_233
- new $P540, "Undef"
+ set $P542, $P541["EXPR"]
+ unless_null $P542, vivify_233
+ new $P542, "Undef"
vivify_233:
- $P541 = $P540."ast"()
- find_lex $P542, "$/"
- $P543 = $P538."new"($P541, "return" :named("pasttype"), $P542 :named("node"))
- $P544 = $P537."!make"($P543)
-.annotate "line", 169
- .return ($P544)
- control_534:
+ $P543 = $P542."ast"()
+ find_lex $P544, "$/"
+ $P545 = $P540."new"($P543, "return" :named("pasttype"), $P544 :named("node"))
+ $P546 = $P539."!make"($P545)
+.annotate "line", 172
+ .return ($P546)
+ control_536:
.local pmc exception
.get_results (exception)
- getattribute $P545, exception, "payload"
- .return ($P545)
+ getattribute $P547, exception, "payload"
+ .return ($P547)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>" :subid("38_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_549
-.annotate "line", 173
- new $P548, 'ExceptionHandler'
- set_addr $P548, control_547
- $P548."handle_types"(58)
- push_eh $P548
- .lex "self", self
- .lex "$/", param_549
-.annotate "line", 174
- new $P550, "Undef"
- .lex "$block", $P550
- find_lex $P551, "$/"
- unless_null $P551, vivify_234
- new $P551, "Hash"
- vivify_234:
- set $P552, $P551["block"]
- unless_null $P552, vivify_235
+.sub "statement_control:sym<CATCH>" :subid("38_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_551
+.annotate "line", 176
+ new $P550, 'ExceptionHandler'
+ set_addr $P550, control_549
+ $P550."handle_types"(58)
+ push_eh $P550
+ .lex "self", self
+ .lex "$/", param_551
+.annotate "line", 177
new $P552, "Undef"
+ .lex "$block", $P552
+ find_lex $P553, "$/"
+ unless_null $P553, vivify_234
+ $P553 = root_new ['parrot';'Hash']
+ vivify_234:
+ set $P554, $P553["block"]
+ unless_null $P554, vivify_235
+ new $P554, "Undef"
vivify_235:
- $P553 = $P552."ast"()
- store_lex "$block", $P553
-.annotate "line", 175
- find_lex $P554, "$/"
- find_lex $P555, "$block"
- "push_block_handler"($P554, $P555)
-.annotate "line", 176
- get_global $P556, "@BLOCK"
- unless_null $P556, vivify_236
- new $P556, "ResizablePMCArray"
+ $P555 = $P554."ast"()
+ store_lex "$block", $P555
+.annotate "line", 178
+ find_lex $P556, "$/"
+ find_lex $P557, "$block"
+ "push_block_handler"($P556, $P557)
+.annotate "line", 179
+ get_global $P558, "@BLOCK"
+ unless_null $P558, vivify_236
+ $P558 = root_new ['parrot';'ResizablePMCArray']
vivify_236:
- set $P557, $P556[0]
- unless_null $P557, vivify_237
- new $P557, "Undef"
- vivify_237:
- $P558 = $P557."handlers"()
set $P559, $P558[0]
- unless_null $P559, vivify_238
+ unless_null $P559, vivify_237
new $P559, "Undef"
+ vivify_237:
+ $P560 = $P559."handlers"()
+ set $P561, $P560[0]
+ unless_null $P561, vivify_238
+ new $P561, "Undef"
vivify_238:
- $P559."handle_types_except"("CONTROL")
-.annotate "line", 177
- find_lex $P560, "$/"
- get_hll_global $P561, ["PAST"], "Stmts"
+ $P561."handle_types_except"("CONTROL")
+.annotate "line", 180
find_lex $P562, "$/"
- $P563 = $P561."new"($P562 :named("node"))
- $P564 = $P560."!make"($P563)
-.annotate "line", 173
- .return ($P564)
- control_547:
+ get_hll_global $P563, ["PAST"], "Stmts"
+ find_lex $P564, "$/"
+ $P565 = $P563."new"($P564 :named("node"))
+ $P566 = $P562."!make"($P565)
+.annotate "line", 176
+ .return ($P566)
+ control_549:
.local pmc exception
.get_results (exception)
- getattribute $P565, exception, "payload"
- .return ($P565)
+ getattribute $P567, exception, "payload"
+ .return ($P567)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>" :subid("39_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_569
-.annotate "line", 180
- new $P568, 'ExceptionHandler'
- set_addr $P568, control_567
- $P568."handle_types"(58)
- push_eh $P568
+.sub "statement_control:sym<CONTROL>" :subid("39_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_571
+.annotate "line", 183
+ new $P570, 'ExceptionHandler'
+ set_addr $P570, control_569
+ $P570."handle_types"(58)
+ push_eh $P570
.lex "self", self
- .lex "$/", param_569
-.annotate "line", 181
- new $P570, "Undef"
- .lex "$block", $P570
- find_lex $P571, "$/"
- unless_null $P571, vivify_239
- new $P571, "Hash"
- vivify_239:
- set $P572, $P571["block"]
- unless_null $P572, vivify_240
+ .lex "$/", param_571
+.annotate "line", 184
new $P572, "Undef"
+ .lex "$block", $P572
+ find_lex $P573, "$/"
+ unless_null $P573, vivify_239
+ $P573 = root_new ['parrot';'Hash']
+ vivify_239:
+ set $P574, $P573["block"]
+ unless_null $P574, vivify_240
+ new $P574, "Undef"
vivify_240:
- $P573 = $P572."ast"()
- store_lex "$block", $P573
-.annotate "line", 182
- find_lex $P574, "$/"
- find_lex $P575, "$block"
- "push_block_handler"($P574, $P575)
-.annotate "line", 183
- get_global $P576, "@BLOCK"
- unless_null $P576, vivify_241
- new $P576, "ResizablePMCArray"
+ $P575 = $P574."ast"()
+ store_lex "$block", $P575
+.annotate "line", 185
+ find_lex $P576, "$/"
+ find_lex $P577, "$block"
+ "push_block_handler"($P576, $P577)
+.annotate "line", 186
+ get_global $P578, "@BLOCK"
+ unless_null $P578, vivify_241
+ $P578 = root_new ['parrot';'ResizablePMCArray']
vivify_241:
- set $P577, $P576[0]
- unless_null $P577, vivify_242
- new $P577, "Undef"
- vivify_242:
- $P578 = $P577."handlers"()
set $P579, $P578[0]
- unless_null $P579, vivify_243
+ unless_null $P579, vivify_242
new $P579, "Undef"
+ vivify_242:
+ $P580 = $P579."handlers"()
+ set $P581, $P580[0]
+ unless_null $P581, vivify_243
+ new $P581, "Undef"
vivify_243:
- $P579."handle_types"("CONTROL")
-.annotate "line", 184
- find_lex $P580, "$/"
- get_hll_global $P581, ["PAST"], "Stmts"
+ $P581."handle_types"("CONTROL")
+.annotate "line", 187
find_lex $P582, "$/"
- $P583 = $P581."new"($P582 :named("node"))
- $P584 = $P580."!make"($P583)
-.annotate "line", 180
- .return ($P584)
- control_567:
+ get_hll_global $P583, ["PAST"], "Stmts"
+ find_lex $P584, "$/"
+ $P585 = $P583."new"($P584 :named("node"))
+ $P586 = $P582."!make"($P585)
+.annotate "line", 183
+ .return ($P586)
+ control_569:
.local pmc exception
.get_results (exception)
- getattribute $P585, exception, "payload"
- .return ($P585)
+ getattribute $P587, exception, "payload"
+ .return ($P587)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>" :subid("40_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_590
-.annotate "line", 224
- new $P589, 'ExceptionHandler'
- set_addr $P589, control_588
- $P589."handle_types"(58)
- push_eh $P589
- .lex "self", self
- .lex "$/", param_590
-.annotate "line", 225
- get_global $P591, "@BLOCK"
- unless_null $P591, vivify_244
- new $P591, "ResizablePMCArray"
+.sub "statement_prefix:sym<INIT>" :subid("40_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_592
+.annotate "line", 227
+ new $P591, 'ExceptionHandler'
+ set_addr $P591, control_590
+ $P591."handle_types"(58)
+ push_eh $P591
+ .lex "self", self
+ .lex "$/", param_592
+.annotate "line", 228
+ get_global $P593, "@BLOCK"
+ unless_null $P593, vivify_244
+ $P593 = root_new ['parrot';'ResizablePMCArray']
vivify_244:
- set $P592, $P591[0]
- unless_null $P592, vivify_245
- new $P592, "Undef"
+ set $P594, $P593[0]
+ unless_null $P594, vivify_245
+ new $P594, "Undef"
vivify_245:
- $P593 = $P592."loadinit"()
- find_lex $P594, "$/"
- unless_null $P594, vivify_246
- new $P594, "Hash"
+ $P595 = $P594."loadinit"()
+ find_lex $P596, "$/"
+ unless_null $P596, vivify_246
+ $P596 = root_new ['parrot';'Hash']
vivify_246:
- set $P595, $P594["blorst"]
- unless_null $P595, vivify_247
- new $P595, "Undef"
+ set $P597, $P596["blorst"]
+ unless_null $P597, vivify_247
+ new $P597, "Undef"
vivify_247:
- $P596 = $P595."ast"()
- $P593."push"($P596)
-.annotate "line", 226
- find_lex $P597, "$/"
- get_hll_global $P598, ["PAST"], "Stmts"
+ $P598 = $P597."ast"()
+ $P595."push"($P598)
+.annotate "line", 229
find_lex $P599, "$/"
- $P600 = $P598."new"($P599 :named("node"))
- $P601 = $P597."!make"($P600)
-.annotate "line", 224
- .return ($P601)
- control_588:
+ get_hll_global $P600, ["PAST"], "Stmts"
+ find_lex $P601, "$/"
+ $P602 = $P600."new"($P601 :named("node"))
+ $P603 = $P599."!make"($P602)
+.annotate "line", 227
+ .return ($P603)
+ control_590:
.local pmc exception
.get_results (exception)
- getattribute $P602, exception, "payload"
- .return ($P602)
+ getattribute $P604, exception, "payload"
+ .return ($P604)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>" :subid("41_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_606
-.annotate "line", 229
- new $P605, 'ExceptionHandler'
- set_addr $P605, control_604
- $P605."handle_types"(58)
- push_eh $P605
+.sub "statement_prefix:sym<try>" :subid("41_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_608
+.annotate "line", 232
+ new $P607, 'ExceptionHandler'
+ set_addr $P607, control_606
+ $P607."handle_types"(58)
+ push_eh $P607
.lex "self", self
- .lex "$/", param_606
-.annotate "line", 230
- new $P607, "Undef"
- .lex "$past", $P607
- find_lex $P608, "$/"
- unless_null $P608, vivify_248
- new $P608, "Hash"
- vivify_248:
- set $P609, $P608["blorst"]
- unless_null $P609, vivify_249
+ .lex "$/", param_608
+.annotate "line", 233
new $P609, "Undef"
+ .lex "$past", $P609
+ find_lex $P610, "$/"
+ unless_null $P610, vivify_248
+ $P610 = root_new ['parrot';'Hash']
+ vivify_248:
+ set $P611, $P610["blorst"]
+ unless_null $P611, vivify_249
+ new $P611, "Undef"
vivify_249:
- $P610 = $P609."ast"()
- store_lex "$past", $P610
-.annotate "line", 231
- find_lex $P612, "$past"
- $S613 = $P612."WHAT"()
- isne $I614, $S613, "PAST::Block()"
- unless $I614, if_611_end
-.annotate "line", 232
- get_hll_global $P615, ["PAST"], "Block"
- find_lex $P616, "$past"
- find_lex $P617, "$/"
- $P618 = $P615."new"($P616, "immediate" :named("blocktype"), $P617 :named("node"))
- store_lex "$past", $P618
- if_611_end:
+ $P612 = $P611."ast"()
+ store_lex "$past", $P612
.annotate "line", 234
- find_lex $P620, "$past"
- $P621 = $P620."handlers"()
- if $P621, unless_619_end
+ find_lex $P614, "$past"
+ $S615 = $P614."WHAT"()
+ isne $I616, $S615, "PAST::Block()"
+ unless $I616, if_613_end
.annotate "line", 235
- find_lex $P622, "$past"
- get_hll_global $P623, ["PAST"], "Control"
+ get_hll_global $P617, ["PAST"], "Block"
+ find_lex $P618, "$past"
+ find_lex $P619, "$/"
+ $P620 = $P617."new"($P618, "immediate" :named("blocktype"), $P619 :named("node"))
+ store_lex "$past", $P620
+ if_613_end:
.annotate "line", 237
- get_hll_global $P624, ["PAST"], "Stmts"
+ find_lex $P622, "$past"
+ $P623 = $P622."handlers"()
+ if $P623, unless_621_end
.annotate "line", 238
- get_hll_global $P625, ["PAST"], "Op"
-.annotate "line", 239
- get_hll_global $P626, ["PAST"], "Var"
+ find_lex $P624, "$past"
+ get_hll_global $P625, ["PAST"], "Control"
.annotate "line", 240
- get_hll_global $P627, ["PAST"], "Var"
- $P628 = $P627."new"("register" :named("scope"), "exception" :named("name"))
- $P629 = $P626."new"($P628, "handled", "keyed" :named("scope"))
-.annotate "line", 239
- $P630 = $P625."new"($P629, 1, "bind" :named("pasttype"))
+ get_hll_global $P626, ["PAST"], "Stmts"
+.annotate "line", 241
+ get_hll_global $P627, ["PAST"], "Op"
+.annotate "line", 242
+ get_hll_global $P628, ["PAST"], "Var"
+.annotate "line", 243
+ get_hll_global $P629, ["PAST"], "Var"
+ $P630 = $P629."new"("register" :named("scope"), "exception" :named("name"))
+ $P631 = $P628."new"($P630, "handled", "keyed" :named("scope"))
+.annotate "line", 242
+ $P632 = $P627."new"($P631, 1, "bind" :named("pasttype"))
+.annotate "line", 241
+ $P633 = $P626."new"($P632)
+.annotate "line", 240
+ $P634 = $P625."new"($P633, "CONTROL" :named("handle_types_except"))
.annotate "line", 238
- $P631 = $P624."new"($P630)
-.annotate "line", 237
- $P632 = $P623."new"($P631, "CONTROL" :named("handle_types_except"))
-.annotate "line", 235
- new $P633, "ResizablePMCArray"
- push $P633, $P632
- $P622."handlers"($P633)
- unless_619_end:
-.annotate "line", 249
- find_lex $P634, "$/"
- find_lex $P635, "$past"
- $P636 = $P634."!make"($P635)
-.annotate "line", 229
- .return ($P636)
- control_604:
+ new $P635, "ResizablePMCArray"
+ push $P635, $P634
+ $P624."handlers"($P635)
+ unless_621_end:
+.annotate "line", 252
+ find_lex $P636, "$/"
+ find_lex $P637, "$past"
+ $P638 = $P636."!make"($P637)
+.annotate "line", 232
+ .return ($P638)
+ control_606:
.local pmc exception
.get_results (exception)
- getattribute $P637, exception, "payload"
- .return ($P637)
+ getattribute $P639, exception, "payload"
+ .return ($P639)
.end
.namespace ["NQP";"Actions"]
-.sub "blorst" :subid("42_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_641
-.annotate "line", 252
- new $P640, 'ExceptionHandler'
- set_addr $P640, control_639
- $P640."handle_types"(58)
- push_eh $P640
+.sub "blorst" :subid("42_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_643
+.annotate "line", 255
+ new $P642, 'ExceptionHandler'
+ set_addr $P642, control_641
+ $P642."handle_types"(58)
+ push_eh $P642
.lex "self", self
- .lex "$/", param_641
-.annotate "line", 253
- find_lex $P642, "$/"
-.annotate "line", 254
- find_lex $P645, "$/"
- unless_null $P645, vivify_250
- new $P645, "Hash"
+ .lex "$/", param_643
+.annotate "line", 256
+ find_lex $P644, "$/"
+.annotate "line", 257
+ find_lex $P647, "$/"
+ unless_null $P647, vivify_250
+ $P647 = root_new ['parrot';'Hash']
vivify_250:
- set $P646, $P645["block"]
- unless_null $P646, vivify_251
- new $P646, "Undef"
+ set $P648, $P647["block"]
+ unless_null $P648, vivify_251
+ new $P648, "Undef"
vivify_251:
- if $P646, if_644
-.annotate "line", 255
- find_lex $P651, "$/"
- unless_null $P651, vivify_252
- new $P651, "Hash"
+ if $P648, if_646
+.annotate "line", 258
+ find_lex $P653, "$/"
+ unless_null $P653, vivify_252
+ $P653 = root_new ['parrot';'Hash']
vivify_252:
- set $P652, $P651["statement"]
- unless_null $P652, vivify_253
- new $P652, "Undef"
+ set $P654, $P653["statement"]
+ unless_null $P654, vivify_253
+ new $P654, "Undef"
vivify_253:
- $P653 = $P652."ast"()
- set $P643, $P653
-.annotate "line", 254
- goto if_644_end
- if_644:
- find_lex $P647, "$/"
- unless_null $P647, vivify_254
- new $P647, "Hash"
+ $P655 = $P654."ast"()
+ set $P645, $P655
+.annotate "line", 257
+ goto if_646_end
+ if_646:
+ find_lex $P649, "$/"
+ unless_null $P649, vivify_254
+ $P649 = root_new ['parrot';'Hash']
vivify_254:
- set $P648, $P647["block"]
- unless_null $P648, vivify_255
- new $P648, "Undef"
+ set $P650, $P649["block"]
+ unless_null $P650, vivify_255
+ new $P650, "Undef"
vivify_255:
- $P649 = $P648."ast"()
- $P650 = "block_immediate"($P649)
- set $P643, $P650
- if_644_end:
- $P654 = $P642."!make"($P643)
-.annotate "line", 252
- .return ($P654)
- control_639:
+ $P651 = $P650."ast"()
+ $P652 = "block_immediate"($P651)
+ set $P645, $P652
+ if_646_end:
+ $P656 = $P644."!make"($P645)
+.annotate "line", 255
+ .return ($P656)
+ control_641:
.local pmc exception
.get_results (exception)
- getattribute $P655, exception, "payload"
- .return ($P655)
+ getattribute $P657, exception, "payload"
+ .return ($P657)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>" :subid("43_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_659
-.annotate "line", 260
- new $P658, 'ExceptionHandler'
- set_addr $P658, control_657
- $P658."handle_types"(58)
- push_eh $P658
- .lex "self", self
- .lex "$/", param_659
- find_lex $P660, "$/"
- find_lex $P661, "$/"
- unless_null $P661, vivify_256
- new $P661, "Hash"
+.sub "statement_mod_cond:sym<if>" :subid("43_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_661
+.annotate "line", 263
+ new $P660, 'ExceptionHandler'
+ set_addr $P660, control_659
+ $P660."handle_types"(58)
+ push_eh $P660
+ .lex "self", self
+ .lex "$/", param_661
+ find_lex $P662, "$/"
+ find_lex $P663, "$/"
+ unless_null $P663, vivify_256
+ $P663 = root_new ['parrot';'Hash']
vivify_256:
- set $P662, $P661["cond"]
- unless_null $P662, vivify_257
- new $P662, "Undef"
+ set $P664, $P663["cond"]
+ unless_null $P664, vivify_257
+ new $P664, "Undef"
vivify_257:
- $P663 = $P662."ast"()
- $P664 = $P660."!make"($P663)
- .return ($P664)
- control_657:
+ $P665 = $P664."ast"()
+ $P666 = $P662."!make"($P665)
+ .return ($P666)
+ control_659:
.local pmc exception
.get_results (exception)
- getattribute $P665, exception, "payload"
- .return ($P665)
+ getattribute $P667, exception, "payload"
+ .return ($P667)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>" :subid("44_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_669
-.annotate "line", 261
- new $P668, 'ExceptionHandler'
- set_addr $P668, control_667
- $P668."handle_types"(58)
- push_eh $P668
- .lex "self", self
- .lex "$/", param_669
- find_lex $P670, "$/"
- find_lex $P671, "$/"
- unless_null $P671, vivify_258
- new $P671, "Hash"
+.sub "statement_mod_cond:sym<unless>" :subid("44_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_671
+.annotate "line", 264
+ new $P670, 'ExceptionHandler'
+ set_addr $P670, control_669
+ $P670."handle_types"(58)
+ push_eh $P670
+ .lex "self", self
+ .lex "$/", param_671
+ find_lex $P672, "$/"
+ find_lex $P673, "$/"
+ unless_null $P673, vivify_258
+ $P673 = root_new ['parrot';'Hash']
vivify_258:
- set $P672, $P671["cond"]
- unless_null $P672, vivify_259
- new $P672, "Undef"
+ set $P674, $P673["cond"]
+ unless_null $P674, vivify_259
+ new $P674, "Undef"
vivify_259:
- $P673 = $P672."ast"()
- $P674 = $P670."!make"($P673)
- .return ($P674)
- control_667:
+ $P675 = $P674."ast"()
+ $P676 = $P672."!make"($P675)
+ .return ($P676)
+ control_669:
.local pmc exception
.get_results (exception)
- getattribute $P675, exception, "payload"
- .return ($P675)
+ getattribute $P677, exception, "payload"
+ .return ($P677)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>" :subid("45_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_679
-.annotate "line", 263
- new $P678, 'ExceptionHandler'
- set_addr $P678, control_677
- $P678."handle_types"(58)
- push_eh $P678
- .lex "self", self
- .lex "$/", param_679
- find_lex $P680, "$/"
- find_lex $P681, "$/"
- unless_null $P681, vivify_260
- new $P681, "Hash"
+.sub "statement_mod_loop:sym<while>" :subid("45_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_681
+.annotate "line", 266
+ new $P680, 'ExceptionHandler'
+ set_addr $P680, control_679
+ $P680."handle_types"(58)
+ push_eh $P680
+ .lex "self", self
+ .lex "$/", param_681
+ find_lex $P682, "$/"
+ find_lex $P683, "$/"
+ unless_null $P683, vivify_260
+ $P683 = root_new ['parrot';'Hash']
vivify_260:
- set $P682, $P681["cond"]
- unless_null $P682, vivify_261
- new $P682, "Undef"
+ set $P684, $P683["cond"]
+ unless_null $P684, vivify_261
+ new $P684, "Undef"
vivify_261:
- $P683 = $P682."ast"()
- $P684 = $P680."!make"($P683)
- .return ($P684)
- control_677:
+ $P685 = $P684."ast"()
+ $P686 = $P682."!make"($P685)
+ .return ($P686)
+ control_679:
.local pmc exception
.get_results (exception)
- getattribute $P685, exception, "payload"
- .return ($P685)
+ getattribute $P687, exception, "payload"
+ .return ($P687)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>" :subid("46_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_689
-.annotate "line", 264
- new $P688, 'ExceptionHandler'
- set_addr $P688, control_687
- $P688."handle_types"(58)
- push_eh $P688
- .lex "self", self
- .lex "$/", param_689
- find_lex $P690, "$/"
- find_lex $P691, "$/"
- unless_null $P691, vivify_262
- new $P691, "Hash"
+.sub "statement_mod_loop:sym<until>" :subid("46_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_691
+.annotate "line", 267
+ new $P690, 'ExceptionHandler'
+ set_addr $P690, control_689
+ $P690."handle_types"(58)
+ push_eh $P690
+ .lex "self", self
+ .lex "$/", param_691
+ find_lex $P692, "$/"
+ find_lex $P693, "$/"
+ unless_null $P693, vivify_262
+ $P693 = root_new ['parrot';'Hash']
vivify_262:
- set $P692, $P691["cond"]
- unless_null $P692, vivify_263
- new $P692, "Undef"
+ set $P694, $P693["cond"]
+ unless_null $P694, vivify_263
+ new $P694, "Undef"
vivify_263:
- $P693 = $P692."ast"()
- $P694 = $P690."!make"($P693)
- .return ($P694)
- control_687:
+ $P695 = $P694."ast"()
+ $P696 = $P692."!make"($P695)
+ .return ($P696)
+ control_689:
.local pmc exception
.get_results (exception)
- getattribute $P695, exception, "payload"
- .return ($P695)
+ getattribute $P697, exception, "payload"
+ .return ($P697)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>" :subid("47_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_699
-.annotate "line", 268
- new $P698, 'ExceptionHandler'
- set_addr $P698, control_697
- $P698."handle_types"(58)
- push_eh $P698
- .lex "self", self
- .lex "$/", param_699
- find_lex $P700, "$/"
- find_lex $P701, "$/"
- unless_null $P701, vivify_264
- new $P701, "Hash"
+.sub "term:sym<fatarrow>" :subid("47_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_701
+.annotate "line", 271
+ new $P700, 'ExceptionHandler'
+ set_addr $P700, control_699
+ $P700."handle_types"(58)
+ push_eh $P700
+ .lex "self", self
+ .lex "$/", param_701
+ find_lex $P702, "$/"
+ find_lex $P703, "$/"
+ unless_null $P703, vivify_264
+ $P703 = root_new ['parrot';'Hash']
vivify_264:
- set $P702, $P701["fatarrow"]
- unless_null $P702, vivify_265
- new $P702, "Undef"
+ set $P704, $P703["fatarrow"]
+ unless_null $P704, vivify_265
+ new $P704, "Undef"
vivify_265:
- $P703 = $P702."ast"()
- $P704 = $P700."!make"($P703)
- .return ($P704)
- control_697:
+ $P705 = $P704."ast"()
+ $P706 = $P702."!make"($P705)
+ .return ($P706)
+ control_699:
.local pmc exception
.get_results (exception)
- getattribute $P705, exception, "payload"
- .return ($P705)
+ getattribute $P707, exception, "payload"
+ .return ($P707)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>" :subid("48_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_709
-.annotate "line", 269
- new $P708, 'ExceptionHandler'
- set_addr $P708, control_707
- $P708."handle_types"(58)
- push_eh $P708
- .lex "self", self
- .lex "$/", param_709
- find_lex $P710, "$/"
- find_lex $P711, "$/"
- unless_null $P711, vivify_266
- new $P711, "Hash"
+.sub "term:sym<colonpair>" :subid("48_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_711
+.annotate "line", 272
+ new $P710, 'ExceptionHandler'
+ set_addr $P710, control_709
+ $P710."handle_types"(58)
+ push_eh $P710
+ .lex "self", self
+ .lex "$/", param_711
+ find_lex $P712, "$/"
+ find_lex $P713, "$/"
+ unless_null $P713, vivify_266
+ $P713 = root_new ['parrot';'Hash']
vivify_266:
- set $P712, $P711["colonpair"]
- unless_null $P712, vivify_267
- new $P712, "Undef"
+ set $P714, $P713["colonpair"]
+ unless_null $P714, vivify_267
+ new $P714, "Undef"
vivify_267:
- $P713 = $P712."ast"()
- $P714 = $P710."!make"($P713)
- .return ($P714)
- control_707:
+ $P715 = $P714."ast"()
+ $P716 = $P712."!make"($P715)
+ .return ($P716)
+ control_709:
.local pmc exception
.get_results (exception)
- getattribute $P715, exception, "payload"
- .return ($P715)
+ getattribute $P717, exception, "payload"
+ .return ($P717)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<variable>" :subid("49_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_719
-.annotate "line", 270
- new $P718, 'ExceptionHandler'
- set_addr $P718, control_717
- $P718."handle_types"(58)
- push_eh $P718
- .lex "self", self
- .lex "$/", param_719
- find_lex $P720, "$/"
- find_lex $P721, "$/"
- unless_null $P721, vivify_268
- new $P721, "Hash"
+.sub "term:sym<variable>" :subid("49_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_721
+.annotate "line", 273
+ new $P720, 'ExceptionHandler'
+ set_addr $P720, control_719
+ $P720."handle_types"(58)
+ push_eh $P720
+ .lex "self", self
+ .lex "$/", param_721
+ find_lex $P722, "$/"
+ find_lex $P723, "$/"
+ unless_null $P723, vivify_268
+ $P723 = root_new ['parrot';'Hash']
vivify_268:
- set $P722, $P721["variable"]
- unless_null $P722, vivify_269
- new $P722, "Undef"
+ set $P724, $P723["variable"]
+ unless_null $P724, vivify_269
+ new $P724, "Undef"
vivify_269:
- $P723 = $P722."ast"()
- $P724 = $P720."!make"($P723)
- .return ($P724)
- control_717:
+ $P725 = $P724."ast"()
+ $P726 = $P722."!make"($P725)
+ .return ($P726)
+ control_719:
.local pmc exception
.get_results (exception)
- getattribute $P725, exception, "payload"
- .return ($P725)
+ getattribute $P727, exception, "payload"
+ .return ($P727)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>" :subid("50_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_729
-.annotate "line", 271
- new $P728, 'ExceptionHandler'
- set_addr $P728, control_727
- $P728."handle_types"(58)
- push_eh $P728
- .lex "self", self
- .lex "$/", param_729
- find_lex $P730, "$/"
- find_lex $P731, "$/"
- unless_null $P731, vivify_270
- new $P731, "Hash"
+.sub "term:sym<package_declarator>" :subid("50_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_731
+.annotate "line", 274
+ new $P730, 'ExceptionHandler'
+ set_addr $P730, control_729
+ $P730."handle_types"(58)
+ push_eh $P730
+ .lex "self", self
+ .lex "$/", param_731
+ find_lex $P732, "$/"
+ find_lex $P733, "$/"
+ unless_null $P733, vivify_270
+ $P733 = root_new ['parrot';'Hash']
vivify_270:
- set $P732, $P731["package_declarator"]
- unless_null $P732, vivify_271
- new $P732, "Undef"
+ set $P734, $P733["package_declarator"]
+ unless_null $P734, vivify_271
+ new $P734, "Undef"
vivify_271:
- $P733 = $P732."ast"()
- $P734 = $P730."!make"($P733)
- .return ($P734)
- control_727:
+ $P735 = $P734."ast"()
+ $P736 = $P732."!make"($P735)
+ .return ($P736)
+ control_729:
.local pmc exception
.get_results (exception)
- getattribute $P735, exception, "payload"
- .return ($P735)
+ getattribute $P737, exception, "payload"
+ .return ($P737)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>" :subid("51_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_739
-.annotate "line", 272
- new $P738, 'ExceptionHandler'
- set_addr $P738, control_737
- $P738."handle_types"(58)
- push_eh $P738
- .lex "self", self
- .lex "$/", param_739
- find_lex $P740, "$/"
- find_lex $P741, "$/"
- unless_null $P741, vivify_272
- new $P741, "Hash"
+.sub "term:sym<scope_declarator>" :subid("51_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_741
+.annotate "line", 275
+ new $P740, 'ExceptionHandler'
+ set_addr $P740, control_739
+ $P740."handle_types"(58)
+ push_eh $P740
+ .lex "self", self
+ .lex "$/", param_741
+ find_lex $P742, "$/"
+ find_lex $P743, "$/"
+ unless_null $P743, vivify_272
+ $P743 = root_new ['parrot';'Hash']
vivify_272:
- set $P742, $P741["scope_declarator"]
- unless_null $P742, vivify_273
- new $P742, "Undef"
+ set $P744, $P743["scope_declarator"]
+ unless_null $P744, vivify_273
+ new $P744, "Undef"
vivify_273:
- $P743 = $P742."ast"()
- $P744 = $P740."!make"($P743)
- .return ($P744)
- control_737:
+ $P745 = $P744."ast"()
+ $P746 = $P742."!make"($P745)
+ .return ($P746)
+ control_739:
.local pmc exception
.get_results (exception)
- getattribute $P745, exception, "payload"
- .return ($P745)
+ getattribute $P747, exception, "payload"
+ .return ($P747)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>" :subid("52_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_749
-.annotate "line", 273
- new $P748, 'ExceptionHandler'
- set_addr $P748, control_747
- $P748."handle_types"(58)
- push_eh $P748
- .lex "self", self
- .lex "$/", param_749
- find_lex $P750, "$/"
- find_lex $P751, "$/"
- unless_null $P751, vivify_274
- new $P751, "Hash"
+.sub "term:sym<routine_declarator>" :subid("52_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_751
+.annotate "line", 276
+ new $P750, 'ExceptionHandler'
+ set_addr $P750, control_749
+ $P750."handle_types"(58)
+ push_eh $P750
+ .lex "self", self
+ .lex "$/", param_751
+ find_lex $P752, "$/"
+ find_lex $P753, "$/"
+ unless_null $P753, vivify_274
+ $P753 = root_new ['parrot';'Hash']
vivify_274:
- set $P752, $P751["routine_declarator"]
- unless_null $P752, vivify_275
- new $P752, "Undef"
+ set $P754, $P753["routine_declarator"]
+ unless_null $P754, vivify_275
+ new $P754, "Undef"
vivify_275:
- $P753 = $P752."ast"()
- $P754 = $P750."!make"($P753)
- .return ($P754)
- control_747:
+ $P755 = $P754."ast"()
+ $P756 = $P752."!make"($P755)
+ .return ($P756)
+ control_749:
.local pmc exception
.get_results (exception)
- getattribute $P755, exception, "payload"
- .return ($P755)
+ getattribute $P757, exception, "payload"
+ .return ($P757)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>" :subid("53_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_759
-.annotate "line", 274
- new $P758, 'ExceptionHandler'
- set_addr $P758, control_757
- $P758."handle_types"(58)
- push_eh $P758
- .lex "self", self
- .lex "$/", param_759
- find_lex $P760, "$/"
- find_lex $P761, "$/"
- unless_null $P761, vivify_276
- new $P761, "Hash"
+.sub "term:sym<regex_declarator>" :subid("53_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_761
+.annotate "line", 277
+ new $P760, 'ExceptionHandler'
+ set_addr $P760, control_759
+ $P760."handle_types"(58)
+ push_eh $P760
+ .lex "self", self
+ .lex "$/", param_761
+ find_lex $P762, "$/"
+ find_lex $P763, "$/"
+ unless_null $P763, vivify_276
+ $P763 = root_new ['parrot';'Hash']
vivify_276:
- set $P762, $P761["regex_declarator"]
- unless_null $P762, vivify_277
- new $P762, "Undef"
+ set $P764, $P763["regex_declarator"]
+ unless_null $P764, vivify_277
+ new $P764, "Undef"
vivify_277:
- $P763 = $P762."ast"()
- $P764 = $P760."!make"($P763)
- .return ($P764)
- control_757:
+ $P765 = $P764."ast"()
+ $P766 = $P762."!make"($P765)
+ .return ($P766)
+ control_759:
.local pmc exception
.get_results (exception)
- getattribute $P765, exception, "payload"
- .return ($P765)
+ getattribute $P767, exception, "payload"
+ .return ($P767)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>" :subid("54_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_769
-.annotate "line", 275
- new $P768, 'ExceptionHandler'
- set_addr $P768, control_767
- $P768."handle_types"(58)
- push_eh $P768
- .lex "self", self
- .lex "$/", param_769
- find_lex $P770, "$/"
- find_lex $P771, "$/"
- unless_null $P771, vivify_278
- new $P771, "Hash"
+.sub "term:sym<statement_prefix>" :subid("54_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_771
+.annotate "line", 278
+ new $P770, 'ExceptionHandler'
+ set_addr $P770, control_769
+ $P770."handle_types"(58)
+ push_eh $P770
+ .lex "self", self
+ .lex "$/", param_771
+ find_lex $P772, "$/"
+ find_lex $P773, "$/"
+ unless_null $P773, vivify_278
+ $P773 = root_new ['parrot';'Hash']
vivify_278:
- set $P772, $P771["statement_prefix"]
- unless_null $P772, vivify_279
- new $P772, "Undef"
+ set $P774, $P773["statement_prefix"]
+ unless_null $P774, vivify_279
+ new $P774, "Undef"
vivify_279:
- $P773 = $P772."ast"()
- $P774 = $P770."!make"($P773)
- .return ($P774)
- control_767:
+ $P775 = $P774."ast"()
+ $P776 = $P772."!make"($P775)
+ .return ($P776)
+ control_769:
.local pmc exception
.get_results (exception)
- getattribute $P775, exception, "payload"
- .return ($P775)
+ getattribute $P777, exception, "payload"
+ .return ($P777)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>" :subid("55_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_779
-.annotate "line", 276
- new $P778, 'ExceptionHandler'
- set_addr $P778, control_777
- $P778."handle_types"(58)
- push_eh $P778
- .lex "self", self
- .lex "$/", param_779
- find_lex $P780, "$/"
- find_lex $P781, "$/"
- unless_null $P781, vivify_280
- new $P781, "Hash"
+.sub "term:sym<lambda>" :subid("55_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_781
+.annotate "line", 279
+ new $P780, 'ExceptionHandler'
+ set_addr $P780, control_779
+ $P780."handle_types"(58)
+ push_eh $P780
+ .lex "self", self
+ .lex "$/", param_781
+ find_lex $P782, "$/"
+ find_lex $P783, "$/"
+ unless_null $P783, vivify_280
+ $P783 = root_new ['parrot';'Hash']
vivify_280:
- set $P782, $P781["pblock"]
- unless_null $P782, vivify_281
- new $P782, "Undef"
+ set $P784, $P783["pblock"]
+ unless_null $P784, vivify_281
+ new $P784, "Undef"
vivify_281:
- $P783 = $P782."ast"()
- $P784 = $P780."!make"($P783)
- .return ($P784)
- control_777:
+ $P785 = $P784."ast"()
+ $P786 = $P782."!make"($P785)
+ .return ($P786)
+ control_779:
.local pmc exception
.get_results (exception)
- getattribute $P785, exception, "payload"
- .return ($P785)
+ getattribute $P787, exception, "payload"
+ .return ($P787)
.end
.namespace ["NQP";"Actions"]
-.sub "fatarrow" :subid("56_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_789
-.annotate "line", 278
- new $P788, 'ExceptionHandler'
- set_addr $P788, control_787
- $P788."handle_types"(58)
- push_eh $P788
+.sub "fatarrow" :subid("56_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_791
+.annotate "line", 281
+ new $P790, 'ExceptionHandler'
+ set_addr $P790, control_789
+ $P790."handle_types"(58)
+ push_eh $P790
.lex "self", self
- .lex "$/", param_789
-.annotate "line", 279
- new $P790, "Undef"
- .lex "$past", $P790
- find_lex $P791, "$/"
- unless_null $P791, vivify_282
- new $P791, "Hash"
- vivify_282:
- set $P792, $P791["val"]
- unless_null $P792, vivify_283
+ .lex "$/", param_791
+.annotate "line", 282
new $P792, "Undef"
+ .lex "$past", $P792
+ find_lex $P793, "$/"
+ unless_null $P793, vivify_282
+ $P793 = root_new ['parrot';'Hash']
+ vivify_282:
+ set $P794, $P793["val"]
+ unless_null $P794, vivify_283
+ new $P794, "Undef"
vivify_283:
- $P793 = $P792."ast"()
- store_lex "$past", $P793
-.annotate "line", 280
- find_lex $P794, "$past"
- find_lex $P795, "$/"
- unless_null $P795, vivify_284
- new $P795, "Hash"
+ $P795 = $P794."ast"()
+ store_lex "$past", $P795
+.annotate "line", 283
+ find_lex $P796, "$past"
+ find_lex $P797, "$/"
+ unless_null $P797, vivify_284
+ $P797 = root_new ['parrot';'Hash']
vivify_284:
- set $P796, $P795["key"]
- unless_null $P796, vivify_285
- new $P796, "Undef"
+ set $P798, $P797["key"]
+ unless_null $P798, vivify_285
+ new $P798, "Undef"
vivify_285:
- $P797 = $P796."Str"()
- $P794."named"($P797)
+ $P799 = $P798."Str"()
+ $P796."named"($P799)
+.annotate "line", 284
+ find_lex $P800, "$/"
+ find_lex $P801, "$past"
+ $P802 = $P800."!make"($P801)
.annotate "line", 281
- find_lex $P798, "$/"
- find_lex $P799, "$past"
- $P800 = $P798."!make"($P799)
-.annotate "line", 278
- .return ($P800)
- control_787:
+ .return ($P802)
+ control_789:
.local pmc exception
.get_results (exception)
- getattribute $P801, exception, "payload"
- .return ($P801)
+ getattribute $P803, exception, "payload"
+ .return ($P803)
.end
.namespace ["NQP";"Actions"]
-.sub "colonpair" :subid("57_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_805
-.annotate "line", 284
- new $P804, 'ExceptionHandler'
- set_addr $P804, control_803
- $P804."handle_types"(58)
- push_eh $P804
- .lex "self", self
- .lex "$/", param_805
-.annotate "line", 285
- new $P806, "Undef"
- .lex "$past", $P806
-.annotate "line", 286
- find_lex $P809, "$/"
- unless_null $P809, vivify_286
- new $P809, "Hash"
+.sub "colonpair" :subid("57_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_807
+.annotate "line", 287
+ new $P806, 'ExceptionHandler'
+ set_addr $P806, control_805
+ $P806."handle_types"(58)
+ push_eh $P806
+ .lex "self", self
+ .lex "$/", param_807
+.annotate "line", 288
+ new $P808, "Undef"
+ .lex "$past", $P808
+.annotate "line", 289
+ find_lex $P811, "$/"
+ unless_null $P811, vivify_286
+ $P811 = root_new ['parrot';'Hash']
vivify_286:
- set $P810, $P809["circumfix"]
- unless_null $P810, vivify_287
- new $P810, "Undef"
+ set $P812, $P811["circumfix"]
+ unless_null $P812, vivify_287
+ new $P812, "Undef"
vivify_287:
- if $P810, if_808
-.annotate "line", 287
- get_hll_global $P815, ["PAST"], "Val"
- find_lex $P816, "$/"
- unless_null $P816, vivify_288
- new $P816, "Hash"
+ if $P812, if_810
+.annotate "line", 290
+ get_hll_global $P817, ["PAST"], "Val"
+ find_lex $P818, "$/"
+ unless_null $P818, vivify_288
+ $P818 = root_new ['parrot';'Hash']
vivify_288:
- set $P817, $P816["not"]
- unless_null $P817, vivify_289
- new $P817, "Undef"
+ set $P819, $P818["not"]
+ unless_null $P819, vivify_289
+ new $P819, "Undef"
vivify_289:
- isfalse $I818, $P817
- $P819 = $P815."new"($I818 :named("value"))
- set $P807, $P819
-.annotate "line", 286
- goto if_808_end
- if_808:
- find_lex $P811, "$/"
- unless_null $P811, vivify_290
- new $P811, "Hash"
+ isfalse $I820, $P819
+ $P821 = $P817."new"($I820 :named("value"))
+ set $P809, $P821
+.annotate "line", 289
+ goto if_810_end
+ if_810:
+ find_lex $P813, "$/"
+ unless_null $P813, vivify_290
+ $P813 = root_new ['parrot';'Hash']
vivify_290:
- set $P812, $P811["circumfix"]
- unless_null $P812, vivify_291
- new $P812, "ResizablePMCArray"
+ set $P814, $P813["circumfix"]
+ unless_null $P814, vivify_291
+ $P814 = root_new ['parrot';'ResizablePMCArray']
vivify_291:
- set $P813, $P812[0]
- unless_null $P813, vivify_292
- new $P813, "Undef"
+ set $P815, $P814[0]
+ unless_null $P815, vivify_292
+ new $P815, "Undef"
vivify_292:
- $P814 = $P813."ast"()
- set $P807, $P814
- if_808_end:
- store_lex "$past", $P807
-.annotate "line", 288
- find_lex $P820, "$past"
- find_lex $P821, "$/"
- unless_null $P821, vivify_293
- new $P821, "Hash"
+ $P816 = $P815."ast"()
+ set $P809, $P816
+ if_810_end:
+ store_lex "$past", $P809
+.annotate "line", 291
+ find_lex $P822, "$past"
+ find_lex $P823, "$/"
+ unless_null $P823, vivify_293
+ $P823 = root_new ['parrot';'Hash']
vivify_293:
- set $P822, $P821["identifier"]
- unless_null $P822, vivify_294
- new $P822, "Undef"
+ set $P824, $P823["identifier"]
+ unless_null $P824, vivify_294
+ new $P824, "Undef"
vivify_294:
- set $S823, $P822
- $P820."named"($S823)
-.annotate "line", 289
- find_lex $P824, "$/"
- find_lex $P825, "$past"
- $P826 = $P824."!make"($P825)
-.annotate "line", 284
- .return ($P826)
- control_803:
+ set $S825, $P824
+ $P822."named"($S825)
+.annotate "line", 292
+ find_lex $P826, "$/"
+ find_lex $P827, "$past"
+ $P828 = $P826."!make"($P827)
+.annotate "line", 287
+ .return ($P828)
+ control_805:
.local pmc exception
.get_results (exception)
- getattribute $P827, exception, "payload"
- .return ($P827)
+ getattribute $P829, exception, "payload"
+ .return ($P829)
.end
.namespace ["NQP";"Actions"]
-.sub "variable" :subid("58_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_831
-.annotate "line", 292
- .const 'Sub' $P844 = "59_1261064035.64813"
- capture_lex $P844
- new $P830, 'ExceptionHandler'
- set_addr $P830, control_829
- $P830."handle_types"(58)
- push_eh $P830
- .lex "self", self
- .lex "$/", param_831
-.annotate "line", 293
- new $P832, "Undef"
- .lex "$past", $P832
-.annotate "line", 292
- find_lex $P833, "$past"
-.annotate "line", 294
- find_lex $P835, "$/"
- unless_null $P835, vivify_295
- new $P835, "Hash"
- vivify_295:
- set $P836, $P835["postcircumfix"]
- unless_null $P836, vivify_296
- new $P836, "Undef"
- vivify_296:
- if $P836, if_834
-.annotate "line", 298
- .const 'Sub' $P844 = "59_1261064035.64813"
- capture_lex $P844
- $P844()
- goto if_834_end
- if_834:
+.sub "variable" :subid("58_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_833
.annotate "line", 295
+ .const 'Sub' $P846 = "59_1267204714.47172"
+ capture_lex $P846
+ new $P832, 'ExceptionHandler'
+ set_addr $P832, control_831
+ $P832."handle_types"(58)
+ push_eh $P832
+ .lex "self", self
+ .lex "$/", param_833
+.annotate "line", 296
+ new $P834, "Undef"
+ .lex "$past", $P834
+.annotate "line", 295
+ find_lex $P835, "$past"
+.annotate "line", 297
find_lex $P837, "$/"
- unless_null $P837, vivify_313
- new $P837, "Hash"
- vivify_313:
+ unless_null $P837, vivify_295
+ $P837 = root_new ['parrot';'Hash']
+ vivify_295:
set $P838, $P837["postcircumfix"]
- unless_null $P838, vivify_314
+ unless_null $P838, vivify_296
new $P838, "Undef"
+ vivify_296:
+ if $P838, if_836
+.annotate "line", 301
+ .const 'Sub' $P846 = "59_1267204714.47172"
+ capture_lex $P846
+ $P846()
+ goto if_836_end
+ if_836:
+.annotate "line", 298
+ find_lex $P839, "$/"
+ unless_null $P839, vivify_313
+ $P839 = root_new ['parrot';'Hash']
+ vivify_313:
+ set $P840, $P839["postcircumfix"]
+ unless_null $P840, vivify_314
+ new $P840, "Undef"
vivify_314:
- $P839 = $P838."ast"()
- store_lex "$past", $P839
-.annotate "line", 296
- find_lex $P840, "$past"
- get_hll_global $P841, ["PAST"], "Var"
- $P842 = $P841."new"("$/" :named("name"))
- $P840."unshift"($P842)
- if_834_end:
-.annotate "line", 327
- find_lex $P913, "$/"
- find_lex $P914, "$past"
- $P915 = $P913."!make"($P914)
-.annotate "line", 292
- .return ($P915)
- control_829:
+ $P841 = $P840."ast"()
+ store_lex "$past", $P841
+.annotate "line", 299
+ find_lex $P842, "$past"
+ get_hll_global $P843, ["PAST"], "Var"
+ $P844 = $P843."new"("$/" :named("name"))
+ $P842."unshift"($P844)
+ if_836_end:
+.annotate "line", 330
+ find_lex $P915, "$/"
+ find_lex $P916, "$past"
+ $P917 = $P915."!make"($P916)
+.annotate "line", 295
+ .return ($P917)
+ control_831:
.local pmc exception
.get_results (exception)
- getattribute $P916, exception, "payload"
- .return ($P916)
+ getattribute $P918, exception, "payload"
+ .return ($P918)
.end
.namespace ["NQP";"Actions"]
-.sub "_block843" :anon :subid("59_1261064035.64813") :outer("58_1261064035.64813")
-.annotate "line", 299
- new $P845, "ResizablePMCArray"
- .lex "@name", $P845
- get_hll_global $P846, ["NQP"], "Compiler"
- find_lex $P847, "$/"
- set $S848, $P847
- $P849 = $P846."parse_name"($S848)
- store_lex "@name", $P849
-.annotate "line", 300
- get_hll_global $P850, ["PAST"], "Var"
- find_lex $P851, "@name"
- $P852 = $P851."pop"()
- set $S853, $P852
- $P854 = $P850."new"($S853 :named("name"))
- store_lex "$past", $P854
-.annotate "line", 301
- find_lex $P856, "@name"
- unless $P856, if_855_end
+.sub "_block845" :anon :subid("59_1267204714.47172") :outer("58_1267204714.47172")
.annotate "line", 302
+ $P847 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@name", $P847
+ get_hll_global $P848, ["NQP"], "Compiler"
+ find_lex $P849, "$/"
+ set $S850, $P849
+ $P851 = $P848."parse_name"($S850)
+ store_lex "@name", $P851
+.annotate "line", 303
+ get_hll_global $P852, ["PAST"], "Var"
+ find_lex $P853, "@name"
+ $P854 = $P853."pop"()
+ set $S855, $P854
+ $P856 = $P852."new"($S855 :named("name"))
+ store_lex "$past", $P856
+.annotate "line", 304
find_lex $P858, "@name"
- unless_null $P858, vivify_297
- new $P858, "ResizablePMCArray"
+ unless $P858, if_857_end
+.annotate "line", 305
+ find_lex $P860, "@name"
+ unless_null $P860, vivify_297
+ $P860 = root_new ['parrot';'ResizablePMCArray']
vivify_297:
- set $P859, $P858[0]
- unless_null $P859, vivify_298
- new $P859, "Undef"
+ set $P861, $P860[0]
+ unless_null $P861, vivify_298
+ new $P861, "Undef"
vivify_298:
- set $S860, $P859
- iseq $I861, $S860, "GLOBAL"
- unless $I861, if_857_end
- find_lex $P862, "@name"
- $P862."shift"()
- if_857_end:
-.annotate "line", 303
- find_lex $P863, "$past"
+ set $S862, $P861
+ iseq $I863, $S862, "GLOBAL"
+ unless $I863, if_859_end
find_lex $P864, "@name"
- $P863."namespace"($P864)
-.annotate "line", 304
+ $P864."shift"()
+ if_859_end:
+.annotate "line", 306
find_lex $P865, "$past"
- $P865."scope"("package")
-.annotate "line", 305
- find_lex $P866, "$past"
- find_lex $P867, "$/"
- unless_null $P867, vivify_299
- new $P867, "Hash"
+ find_lex $P866, "@name"
+ $P865."namespace"($P866)
+.annotate "line", 307
+ find_lex $P867, "$past"
+ $P867."scope"("package")
+.annotate "line", 308
+ find_lex $P868, "$past"
+ find_lex $P869, "$/"
+ unless_null $P869, vivify_299
+ $P869 = root_new ['parrot';'Hash']
vivify_299:
- set $P868, $P867["sigil"]
- unless_null $P868, vivify_300
- new $P868, "Undef"
+ set $P870, $P869["sigil"]
+ unless_null $P870, vivify_300
+ new $P870, "Undef"
vivify_300:
- $P869 = "sigiltype"($P868)
- $P866."viviself"($P869)
-.annotate "line", 306
- find_lex $P870, "$past"
- $P870."lvalue"(1)
- if_855_end:
-.annotate "line", 308
- find_lex $P873, "$/"
- unless_null $P873, vivify_301
- new $P873, "Hash"
+ $P871 = "vivitype"($P870)
+ $P868."viviself"($P871)
+.annotate "line", 309
+ find_lex $P872, "$past"
+ $P872."lvalue"(1)
+ if_857_end:
+.annotate "line", 311
+ find_lex $P875, "$/"
+ unless_null $P875, vivify_301
+ $P875 = root_new ['parrot';'Hash']
vivify_301:
- set $P874, $P873["twigil"]
- unless_null $P874, vivify_302
- new $P874, "ResizablePMCArray"
+ set $P876, $P875["twigil"]
+ unless_null $P876, vivify_302
+ $P876 = root_new ['parrot';'ResizablePMCArray']
vivify_302:
- set $P875, $P874[0]
- unless_null $P875, vivify_303
- new $P875, "Undef"
+ set $P877, $P876[0]
+ unless_null $P877, vivify_303
+ new $P877, "Undef"
vivify_303:
- set $S876, $P875
- iseq $I877, $S876, "*"
- if $I877, if_872
-.annotate "line", 321
- find_lex $P899, "$/"
- unless_null $P899, vivify_304
- new $P899, "Hash"
+ set $S878, $P877
+ iseq $I879, $S878, "*"
+ if $I879, if_874
+.annotate "line", 324
+ find_lex $P901, "$/"
+ unless_null $P901, vivify_304
+ $P901 = root_new ['parrot';'Hash']
vivify_304:
- set $P900, $P899["twigil"]
- unless_null $P900, vivify_305
- new $P900, "ResizablePMCArray"
+ set $P902, $P901["twigil"]
+ unless_null $P902, vivify_305
+ $P902 = root_new ['parrot';'ResizablePMCArray']
vivify_305:
- set $P901, $P900[0]
- unless_null $P901, vivify_306
- new $P901, "Undef"
+ set $P903, $P902[0]
+ unless_null $P903, vivify_306
+ new $P903, "Undef"
vivify_306:
- set $S902, $P901
- iseq $I903, $S902, "!"
- if $I903, if_898
- new $P897, 'Integer'
- set $P897, $I903
- goto if_898_end
- if_898:
-.annotate "line", 322
- find_lex $P904, "$past"
- get_hll_global $P905, ["PAST"], "Var"
- $P906 = $P905."new"("self" :named("name"))
- $P904."push"($P906)
-.annotate "line", 323
- find_lex $P907, "$past"
- $P907."scope"("attribute")
-.annotate "line", 324
- find_lex $P908, "$past"
- find_lex $P909, "$/"
- unless_null $P909, vivify_307
- new $P909, "Hash"
+ set $S904, $P903
+ iseq $I905, $S904, "!"
+ if $I905, if_900
+ new $P899, 'Integer'
+ set $P899, $I905
+ goto if_900_end
+ if_900:
+.annotate "line", 325
+ find_lex $P906, "$past"
+ get_hll_global $P907, ["PAST"], "Var"
+ $P908 = $P907."new"("self" :named("name"))
+ $P906."push"($P908)
+.annotate "line", 326
+ find_lex $P909, "$past"
+ $P909."scope"("attribute")
+.annotate "line", 327
+ find_lex $P910, "$past"
+ find_lex $P911, "$/"
+ unless_null $P911, vivify_307
+ $P911 = root_new ['parrot';'Hash']
vivify_307:
- set $P910, $P909["sigil"]
- unless_null $P910, vivify_308
- new $P910, "Undef"
+ set $P912, $P911["sigil"]
+ unless_null $P912, vivify_308
+ new $P912, "Undef"
vivify_308:
- $P911 = "sigiltype"($P910)
- $P912 = $P908."viviself"($P911)
-.annotate "line", 321
- set $P897, $P912
- if_898_end:
- set $P871, $P897
-.annotate "line", 308
- goto if_872_end
- if_872:
-.annotate "line", 309
- find_lex $P878, "$past"
- $P878."scope"("contextual")
-.annotate "line", 310
- find_lex $P879, "$past"
+ $P913 = "vivitype"($P912)
+ $P914 = $P910."viviself"($P913)
+.annotate "line", 324
+ set $P899, $P914
+ if_900_end:
+ set $P873, $P899
.annotate "line", 311
- get_hll_global $P880, ["PAST"], "Var"
+ goto if_874_end
+ if_874:
+.annotate "line", 312
+ find_lex $P880, "$past"
+ $P880."scope"("contextual")
.annotate "line", 313
- find_lex $P881, "$/"
- unless_null $P881, vivify_309
- new $P881, "Hash"
+ find_lex $P881, "$past"
+.annotate "line", 314
+ get_hll_global $P882, ["PAST"], "Var"
+.annotate "line", 316
+ find_lex $P883, "$/"
+ unless_null $P883, vivify_309
+ $P883 = root_new ['parrot';'Hash']
vivify_309:
- set $P882, $P881["sigil"]
- unless_null $P882, vivify_310
- new $P882, "Undef"
+ set $P884, $P883["sigil"]
+ unless_null $P884, vivify_310
+ new $P884, "Undef"
vivify_310:
- set $S883, $P882
- new $P884, 'String'
- set $P884, $S883
- find_lex $P885, "$/"
- unless_null $P885, vivify_311
- new $P885, "Hash"
+ set $S885, $P884
+ new $P886, 'String'
+ set $P886, $S885
+ find_lex $P887, "$/"
+ unless_null $P887, vivify_311
+ $P887 = root_new ['parrot';'Hash']
vivify_311:
- set $P886, $P885["desigilname"]
- unless_null $P886, vivify_312
- new $P886, "Undef"
+ set $P888, $P887["desigilname"]
+ unless_null $P888, vivify_312
+ new $P888, "Undef"
vivify_312:
- concat $P887, $P884, $P886
-.annotate "line", 315
- get_hll_global $P888, ["PAST"], "Op"
- new $P889, "String"
- assign $P889, "Contextual "
- find_lex $P890, "$/"
- set $S891, $P890
- concat $P892, $P889, $S891
- concat $P893, $P892, " not found"
- $P894 = $P888."new"($P893, "die" :named("pirop"))
- $P895 = $P880."new"("package" :named("scope"), "" :named("namespace"), $P887 :named("name"), $P894 :named("viviself"))
+ concat $P889, $P886, $P888
+.annotate "line", 318
+ get_hll_global $P890, ["PAST"], "Op"
+ new $P891, "String"
+ assign $P891, "Contextual "
+ find_lex $P892, "$/"
+ set $S893, $P892
+ concat $P894, $P891, $S893
+ concat $P895, $P894, " not found"
+ $P896 = $P890."new"($P895, "die" :named("pirop"))
+ $P897 = $P882."new"("package" :named("scope"), "" :named("namespace"), $P889 :named("name"), $P896 :named("viviself"))
+.annotate "line", 314
+ $P898 = $P881."viviself"($P897)
.annotate "line", 311
- $P896 = $P879."viviself"($P895)
-.annotate "line", 308
- set $P871, $P896
- if_872_end:
-.annotate "line", 298
- .return ($P871)
+ set $P873, $P898
+ if_874_end:
+.annotate "line", 301
+ .return ($P873)
.end
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>" :subid("60_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_920
-.annotate "line", 330
- new $P919, 'ExceptionHandler'
- set_addr $P919, control_918
- $P919."handle_types"(58)
- push_eh $P919
- .lex "self", self
- .lex "$/", param_920
- find_lex $P921, "$/"
- find_lex $P922, "$/"
- unless_null $P922, vivify_315
- new $P922, "Hash"
+.sub "package_declarator:sym<module>" :subid("60_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_922
+.annotate "line", 333
+ new $P921, 'ExceptionHandler'
+ set_addr $P921, control_920
+ $P921."handle_types"(58)
+ push_eh $P921
+ .lex "self", self
+ .lex "$/", param_922
+ find_lex $P923, "$/"
+ find_lex $P924, "$/"
+ unless_null $P924, vivify_315
+ $P924 = root_new ['parrot';'Hash']
vivify_315:
- set $P923, $P922["package_def"]
- unless_null $P923, vivify_316
- new $P923, "Undef"
+ set $P925, $P924["package_def"]
+ unless_null $P925, vivify_316
+ new $P925, "Undef"
vivify_316:
- $P924 = $P923."ast"()
- $P925 = $P921."!make"($P924)
- .return ($P925)
- control_918:
+ $P926 = $P925."ast"()
+ $P927 = $P923."!make"($P926)
+ .return ($P927)
+ control_920:
.local pmc exception
.get_results (exception)
- getattribute $P926, exception, "payload"
- .return ($P926)
+ getattribute $P928, exception, "payload"
+ .return ($P928)
.end
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>" :subid("61_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_930
-.annotate "line", 331
- new $P929, 'ExceptionHandler'
- set_addr $P929, control_928
- $P929."handle_types"(58)
- push_eh $P929
+.sub "package_declarator:sym<class>" :subid("61_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_932
+.annotate "line", 334
+ new $P931, 'ExceptionHandler'
+ set_addr $P931, control_930
+ $P931."handle_types"(58)
+ push_eh $P931
.lex "self", self
- .lex "$/", param_930
-.annotate "line", 332
- new $P931, "Undef"
- .lex "$past", $P931
-.annotate "line", 333
- new $P932, "Undef"
- .lex "$classinit", $P932
-.annotate "line", 342
+ .lex "$/", param_932
+.annotate "line", 335
new $P933, "Undef"
- .lex "$parent", $P933
-.annotate "line", 332
- find_lex $P934, "$/"
- unless_null $P934, vivify_317
- new $P934, "Hash"
- vivify_317:
- set $P935, $P934["package_def"]
- unless_null $P935, vivify_318
+ .lex "$past", $P933
+.annotate "line", 336
+ new $P934, "Undef"
+ .lex "$classinit", $P934
+.annotate "line", 345
new $P935, "Undef"
- vivify_318:
- $P936 = $P935."ast"()
- store_lex "$past", $P936
-.annotate "line", 334
- get_hll_global $P937, ["PAST"], "Op"
+ .lex "$parent", $P935
.annotate "line", 335
- get_hll_global $P938, ["PAST"], "Op"
- $P939 = $P938."new"(" %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
+ find_lex $P936, "$/"
+ unless_null $P936, vivify_317
+ $P936 = root_new ['parrot';'Hash']
+ vivify_317:
+ set $P937, $P936["package_def"]
+ unless_null $P937, vivify_318
+ new $P937, "Undef"
+ vivify_318:
+ $P938 = $P937."ast"()
+ store_lex "$past", $P938
+.annotate "line", 337
+ get_hll_global $P939, ["PAST"], "Op"
.annotate "line", 338
- find_lex $P940, "$/"
- unless_null $P940, vivify_319
- new $P940, "Hash"
+ get_hll_global $P940, ["PAST"], "Op"
+ $P941 = $P940."new"(" %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
+.annotate "line", 341
+ find_lex $P942, "$/"
+ unless_null $P942, vivify_319
+ $P942 = root_new ['parrot';'Hash']
vivify_319:
- set $P941, $P940["package_def"]
- unless_null $P941, vivify_320
- new $P941, "Hash"
+ set $P943, $P942["package_def"]
+ unless_null $P943, vivify_320
+ $P943 = root_new ['parrot';'Hash']
vivify_320:
- set $P942, $P941["name"]
- unless_null $P942, vivify_321
- new $P942, "Undef"
+ set $P944, $P943["name"]
+ unless_null $P944, vivify_321
+ new $P944, "Undef"
vivify_321:
- set $S943, $P942
- $P944 = $P937."new"($P939, $S943, "new_class" :named("name"), "callmethod" :named("pasttype"))
-.annotate "line", 334
- store_lex "$classinit", $P944
-.annotate "line", 342
- find_lex $P947, "$/"
- unless_null $P947, vivify_322
- new $P947, "Hash"
+ set $S945, $P944
+ $P946 = $P939."new"($P941, $S945, "new_class" :named("name"), "callmethod" :named("pasttype"))
+.annotate "line", 337
+ store_lex "$classinit", $P946
+.annotate "line", 345
+ find_lex $P949, "$/"
+ unless_null $P949, vivify_322
+ $P949 = root_new ['parrot';'Hash']
vivify_322:
- set $P948, $P947["package_def"]
- unless_null $P948, vivify_323
- new $P948, "Hash"
+ set $P950, $P949["package_def"]
+ unless_null $P950, vivify_323
+ $P950 = root_new ['parrot';'Hash']
vivify_323:
- set $P949, $P948["parent"]
- unless_null $P949, vivify_324
- new $P949, "ResizablePMCArray"
+ set $P951, $P950["parent"]
+ unless_null $P951, vivify_324
+ $P951 = root_new ['parrot';'ResizablePMCArray']
vivify_324:
- set $P950, $P949[0]
- unless_null $P950, vivify_325
- new $P950, "Undef"
+ set $P952, $P951[0]
+ unless_null $P952, vivify_325
+ new $P952, "Undef"
vivify_325:
- set $S951, $P950
- unless $S951, unless_946
- new $P945, 'String'
- set $P945, $S951
- goto unless_946_end
- unless_946:
-.annotate "line", 343
- find_lex $P954, "$/"
- unless_null $P954, vivify_326
- new $P954, "Hash"
+ set $S953, $P952
+ unless $S953, unless_948
+ new $P947, 'String'
+ set $P947, $S953
+ goto unless_948_end
+ unless_948:
+.annotate "line", 346
+ find_lex $P956, "$/"
+ unless_null $P956, vivify_326
+ $P956 = root_new ['parrot';'Hash']
vivify_326:
- set $P955, $P954["sym"]
- unless_null $P955, vivify_327
- new $P955, "Undef"
+ set $P957, $P956["sym"]
+ unless_null $P957, vivify_327
+ new $P957, "Undef"
vivify_327:
- set $S956, $P955
- iseq $I957, $S956, "grammar"
- if $I957, if_953
- new $P959, "String"
- assign $P959, ""
- set $P952, $P959
- goto if_953_end
- if_953:
- new $P958, "String"
- assign $P958, "Regex::Cursor"
- set $P952, $P958
- if_953_end:
- set $P945, $P952
- unless_946_end:
- store_lex "$parent", $P945
-.annotate "line", 344
- find_lex $P961, "$parent"
- unless $P961, if_960_end
-.annotate "line", 345
- find_lex $P962, "$classinit"
- get_hll_global $P963, ["PAST"], "Val"
- find_lex $P964, "$parent"
- $P965 = $P963."new"($P964 :named("value"), "parent" :named("named"))
- $P962."push"($P965)
- if_960_end:
+ set $S958, $P957
+ iseq $I959, $S958, "grammar"
+ if $I959, if_955
+ new $P961, "String"
+ assign $P961, ""
+ set $P954, $P961
+ goto if_955_end
+ if_955:
+ new $P960, "String"
+ assign $P960, "Regex::Cursor"
+ set $P954, $P960
+ if_955_end:
+ set $P947, $P954
+ unless_948_end:
+ store_lex "$parent", $P947
.annotate "line", 347
- find_lex $P967, "$past"
- unless_null $P967, vivify_328
- new $P967, "Hash"
+ find_lex $P963, "$parent"
+ unless $P963, if_962_end
+.annotate "line", 348
+ find_lex $P964, "$classinit"
+ get_hll_global $P965, ["PAST"], "Val"
+ find_lex $P966, "$parent"
+ $P967 = $P965."new"($P966 :named("value"), "parent" :named("named"))
+ $P964."push"($P967)
+ if_962_end:
+.annotate "line", 350
+ find_lex $P969, "$past"
+ unless_null $P969, vivify_328
+ $P969 = root_new ['parrot';'Hash']
vivify_328:
- set $P968, $P967["attributes"]
- unless_null $P968, vivify_329
- new $P968, "Undef"
+ set $P970, $P969["attributes"]
+ unless_null $P970, vivify_329
+ new $P970, "Undef"
vivify_329:
- unless $P968, if_966_end
-.annotate "line", 348
- find_lex $P969, "$classinit"
- find_lex $P970, "$past"
- unless_null $P970, vivify_330
- new $P970, "Hash"
+ unless $P970, if_968_end
+.annotate "line", 351
+ find_lex $P971, "$classinit"
+ find_lex $P972, "$past"
+ unless_null $P972, vivify_330
+ $P972 = root_new ['parrot';'Hash']
vivify_330:
- set $P971, $P970["attributes"]
- unless_null $P971, vivify_331
- new $P971, "Undef"
+ set $P973, $P972["attributes"]
+ unless_null $P973, vivify_331
+ new $P973, "Undef"
vivify_331:
- $P969."push"($P971)
- if_966_end:
-.annotate "line", 350
- get_global $P972, "@BLOCK"
- unless_null $P972, vivify_332
- new $P972, "ResizablePMCArray"
+ $P971."push"($P973)
+ if_968_end:
+.annotate "line", 353
+ get_global $P974, "@BLOCK"
+ unless_null $P974, vivify_332
+ $P974 = root_new ['parrot';'ResizablePMCArray']
vivify_332:
- set $P973, $P972[0]
- unless_null $P973, vivify_333
- new $P973, "Undef"
+ set $P975, $P974[0]
+ unless_null $P975, vivify_333
+ new $P975, "Undef"
vivify_333:
- $P974 = $P973."loadinit"()
- find_lex $P975, "$classinit"
- $P974."push"($P975)
-.annotate "line", 351
- find_lex $P976, "$/"
- find_lex $P977, "$past"
- $P978 = $P976."!make"($P977)
-.annotate "line", 331
- .return ($P978)
- control_928:
+ $P976 = $P975."loadinit"()
+ find_lex $P977, "$classinit"
+ $P976."push"($P977)
+.annotate "line", 354
+ find_lex $P978, "$/"
+ find_lex $P979, "$past"
+ $P980 = $P978."!make"($P979)
+.annotate "line", 334
+ .return ($P980)
+ control_930:
.local pmc exception
.get_results (exception)
- getattribute $P979, exception, "payload"
- .return ($P979)
+ getattribute $P981, exception, "payload"
+ .return ($P981)
.end
.namespace ["NQP";"Actions"]
-.sub "package_def" :subid("62_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_983
-.annotate "line", 354
- new $P982, 'ExceptionHandler'
- set_addr $P982, control_981
- $P982."handle_types"(58)
- push_eh $P982
+.sub "package_def" :subid("62_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_985
+.annotate "line", 357
+ new $P984, 'ExceptionHandler'
+ set_addr $P984, control_983
+ $P984."handle_types"(58)
+ push_eh $P984
.lex "self", self
- .lex "$/", param_983
-.annotate "line", 355
- new $P984, "Undef"
- .lex "$past", $P984
- find_lex $P987, "$/"
- unless_null $P987, vivify_334
- new $P987, "Hash"
+ .lex "$/", param_985
+.annotate "line", 358
+ new $P986, "Undef"
+ .lex "$past", $P986
+ find_lex $P989, "$/"
+ unless_null $P989, vivify_334
+ $P989 = root_new ['parrot';'Hash']
vivify_334:
- set $P988, $P987["block"]
- unless_null $P988, vivify_335
- new $P988, "Undef"
+ set $P990, $P989["block"]
+ unless_null $P990, vivify_335
+ new $P990, "Undef"
vivify_335:
- if $P988, if_986
- find_lex $P992, "$/"
- unless_null $P992, vivify_336
- new $P992, "Hash"
+ if $P990, if_988
+ find_lex $P994, "$/"
+ unless_null $P994, vivify_336
+ $P994 = root_new ['parrot';'Hash']
vivify_336:
- set $P993, $P992["comp_unit"]
- unless_null $P993, vivify_337
- new $P993, "Undef"
+ set $P995, $P994["comp_unit"]
+ unless_null $P995, vivify_337
+ new $P995, "Undef"
vivify_337:
- $P994 = $P993."ast"()
- set $P985, $P994
- goto if_986_end
- if_986:
- find_lex $P989, "$/"
- unless_null $P989, vivify_338
- new $P989, "Hash"
+ $P996 = $P995."ast"()
+ set $P987, $P996
+ goto if_988_end
+ if_988:
+ find_lex $P991, "$/"
+ unless_null $P991, vivify_338
+ $P991 = root_new ['parrot';'Hash']
vivify_338:
- set $P990, $P989["block"]
- unless_null $P990, vivify_339
- new $P990, "Undef"
+ set $P992, $P991["block"]
+ unless_null $P992, vivify_339
+ new $P992, "Undef"
vivify_339:
- $P991 = $P990."ast"()
- set $P985, $P991
- if_986_end:
- store_lex "$past", $P985
-.annotate "line", 356
- find_lex $P995, "$past"
- find_lex $P996, "$/"
- unless_null $P996, vivify_340
- new $P996, "Hash"
+ $P993 = $P992."ast"()
+ set $P987, $P993
+ if_988_end:
+ store_lex "$past", $P987
+.annotate "line", 359
+ find_lex $P997, "$past"
+ find_lex $P998, "$/"
+ unless_null $P998, vivify_340
+ $P998 = root_new ['parrot';'Hash']
vivify_340:
- set $P997, $P996["name"]
- unless_null $P997, vivify_341
- new $P997, "Hash"
+ set $P999, $P998["name"]
+ unless_null $P999, vivify_341
+ $P999 = root_new ['parrot';'Hash']
vivify_341:
- set $P998, $P997["identifier"]
- unless_null $P998, vivify_342
- new $P998, "Undef"
+ set $P1000, $P999["identifier"]
+ unless_null $P1000, vivify_342
+ new $P1000, "Undef"
vivify_342:
- $P995."namespace"($P998)
-.annotate "line", 357
- find_lex $P999, "$past"
- $P999."blocktype"("immediate")
-.annotate "line", 358
- find_lex $P1000, "$/"
+ $P997."namespace"($P1000)
+.annotate "line", 360
find_lex $P1001, "$past"
- $P1002 = $P1000."!make"($P1001)
-.annotate "line", 354
- .return ($P1002)
- control_981:
+ $P1001."blocktype"("immediate")
+.annotate "line", 361
+ find_lex $P1002, "$/"
+ find_lex $P1003, "$past"
+ $P1004 = $P1002."!make"($P1003)
+.annotate "line", 357
+ .return ($P1004)
+ control_983:
.local pmc exception
.get_results (exception)
- getattribute $P1003, exception, "payload"
- .return ($P1003)
+ getattribute $P1005, exception, "payload"
+ .return ($P1005)
.end
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>" :subid("63_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1007
-.annotate "line", 361
- new $P1006, 'ExceptionHandler'
- set_addr $P1006, control_1005
- $P1006."handle_types"(58)
- push_eh $P1006
- .lex "self", self
- .lex "$/", param_1007
- find_lex $P1008, "$/"
- find_lex $P1009, "$/"
- unless_null $P1009, vivify_343
- new $P1009, "Hash"
+.sub "scope_declarator:sym<my>" :subid("63_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1009
+.annotate "line", 364
+ new $P1008, 'ExceptionHandler'
+ set_addr $P1008, control_1007
+ $P1008."handle_types"(58)
+ push_eh $P1008
+ .lex "self", self
+ .lex "$/", param_1009
+ find_lex $P1010, "$/"
+ find_lex $P1011, "$/"
+ unless_null $P1011, vivify_343
+ $P1011 = root_new ['parrot';'Hash']
vivify_343:
- set $P1010, $P1009["scoped"]
- unless_null $P1010, vivify_344
- new $P1010, "Undef"
+ set $P1012, $P1011["scoped"]
+ unless_null $P1012, vivify_344
+ new $P1012, "Undef"
vivify_344:
- $P1011 = $P1010."ast"()
- $P1012 = $P1008."!make"($P1011)
- .return ($P1012)
- control_1005:
+ $P1013 = $P1012."ast"()
+ $P1014 = $P1010."!make"($P1013)
+ .return ($P1014)
+ control_1007:
.local pmc exception
.get_results (exception)
- getattribute $P1013, exception, "payload"
- .return ($P1013)
+ getattribute $P1015, exception, "payload"
+ .return ($P1015)
.end
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>" :subid("64_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1017
-.annotate "line", 362
- new $P1016, 'ExceptionHandler'
- set_addr $P1016, control_1015
- $P1016."handle_types"(58)
- push_eh $P1016
- .lex "self", self
- .lex "$/", param_1017
- find_lex $P1018, "$/"
- find_lex $P1019, "$/"
- unless_null $P1019, vivify_345
- new $P1019, "Hash"
+.sub "scope_declarator:sym<our>" :subid("64_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1019
+.annotate "line", 365
+ new $P1018, 'ExceptionHandler'
+ set_addr $P1018, control_1017
+ $P1018."handle_types"(58)
+ push_eh $P1018
+ .lex "self", self
+ .lex "$/", param_1019
+ find_lex $P1020, "$/"
+ find_lex $P1021, "$/"
+ unless_null $P1021, vivify_345
+ $P1021 = root_new ['parrot';'Hash']
vivify_345:
- set $P1020, $P1019["scoped"]
- unless_null $P1020, vivify_346
- new $P1020, "Undef"
+ set $P1022, $P1021["scoped"]
+ unless_null $P1022, vivify_346
+ new $P1022, "Undef"
vivify_346:
- $P1021 = $P1020."ast"()
- $P1022 = $P1018."!make"($P1021)
- .return ($P1022)
- control_1015:
+ $P1023 = $P1022."ast"()
+ $P1024 = $P1020."!make"($P1023)
+ .return ($P1024)
+ control_1017:
.local pmc exception
.get_results (exception)
- getattribute $P1023, exception, "payload"
- .return ($P1023)
+ getattribute $P1025, exception, "payload"
+ .return ($P1025)
.end
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>" :subid("65_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1027
-.annotate "line", 363
- new $P1026, 'ExceptionHandler'
- set_addr $P1026, control_1025
- $P1026."handle_types"(58)
- push_eh $P1026
- .lex "self", self
- .lex "$/", param_1027
- find_lex $P1028, "$/"
- find_lex $P1029, "$/"
- unless_null $P1029, vivify_347
- new $P1029, "Hash"
+.sub "scope_declarator:sym<has>" :subid("65_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1029
+.annotate "line", 366
+ new $P1028, 'ExceptionHandler'
+ set_addr $P1028, control_1027
+ $P1028."handle_types"(58)
+ push_eh $P1028
+ .lex "self", self
+ .lex "$/", param_1029
+ find_lex $P1030, "$/"
+ find_lex $P1031, "$/"
+ unless_null $P1031, vivify_347
+ $P1031 = root_new ['parrot';'Hash']
vivify_347:
- set $P1030, $P1029["scoped"]
- unless_null $P1030, vivify_348
- new $P1030, "Undef"
+ set $P1032, $P1031["scoped"]
+ unless_null $P1032, vivify_348
+ new $P1032, "Undef"
vivify_348:
- $P1031 = $P1030."ast"()
- $P1032 = $P1028."!make"($P1031)
- .return ($P1032)
- control_1025:
+ $P1033 = $P1032."ast"()
+ $P1034 = $P1030."!make"($P1033)
+ .return ($P1034)
+ control_1027:
.local pmc exception
.get_results (exception)
- getattribute $P1033, exception, "payload"
- .return ($P1033)
+ getattribute $P1035, exception, "payload"
+ .return ($P1035)
.end
.namespace ["NQP";"Actions"]
-.sub "scoped" :subid("66_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1037
-.annotate "line", 365
- new $P1036, 'ExceptionHandler'
- set_addr $P1036, control_1035
- $P1036."handle_types"(58)
- push_eh $P1036
- .lex "self", self
- .lex "$/", param_1037
-.annotate "line", 366
- find_lex $P1038, "$/"
-.annotate "line", 367
- find_lex $P1041, "$/"
- unless_null $P1041, vivify_349
- new $P1041, "Hash"
+.sub "scoped" :subid("66_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1039
+.annotate "line", 368
+ new $P1038, 'ExceptionHandler'
+ set_addr $P1038, control_1037
+ $P1038."handle_types"(58)
+ push_eh $P1038
+ .lex "self", self
+ .lex "$/", param_1039
+.annotate "line", 369
+ find_lex $P1040, "$/"
+.annotate "line", 370
+ find_lex $P1043, "$/"
+ unless_null $P1043, vivify_349
+ $P1043 = root_new ['parrot';'Hash']
vivify_349:
- set $P1042, $P1041["routine_declarator"]
- unless_null $P1042, vivify_350
- new $P1042, "Undef"
+ set $P1044, $P1043["routine_declarator"]
+ unless_null $P1044, vivify_350
+ new $P1044, "Undef"
vivify_350:
- if $P1042, if_1040
-.annotate "line", 368
- find_lex $P1046, "$/"
- unless_null $P1046, vivify_351
- new $P1046, "Hash"
+ if $P1044, if_1042
+.annotate "line", 371
+ find_lex $P1048, "$/"
+ unless_null $P1048, vivify_351
+ $P1048 = root_new ['parrot';'Hash']
vivify_351:
- set $P1047, $P1046["variable_declarator"]
- unless_null $P1047, vivify_352
- new $P1047, "Undef"
+ set $P1049, $P1048["variable_declarator"]
+ unless_null $P1049, vivify_352
+ new $P1049, "Undef"
vivify_352:
- $P1048 = $P1047."ast"()
- set $P1039, $P1048
-.annotate "line", 367
- goto if_1040_end
- if_1040:
- find_lex $P1043, "$/"
- unless_null $P1043, vivify_353
- new $P1043, "Hash"
+ $P1050 = $P1049."ast"()
+ set $P1041, $P1050
+.annotate "line", 370
+ goto if_1042_end
+ if_1042:
+ find_lex $P1045, "$/"
+ unless_null $P1045, vivify_353
+ $P1045 = root_new ['parrot';'Hash']
vivify_353:
- set $P1044, $P1043["routine_declarator"]
- unless_null $P1044, vivify_354
- new $P1044, "Undef"
+ set $P1046, $P1045["routine_declarator"]
+ unless_null $P1046, vivify_354
+ new $P1046, "Undef"
vivify_354:
- $P1045 = $P1044."ast"()
- set $P1039, $P1045
- if_1040_end:
- $P1049 = $P1038."!make"($P1039)
-.annotate "line", 365
- .return ($P1049)
- control_1035:
+ $P1047 = $P1046."ast"()
+ set $P1041, $P1047
+ if_1042_end:
+ $P1051 = $P1040."!make"($P1041)
+.annotate "line", 368
+ .return ($P1051)
+ control_1037:
.local pmc exception
.get_results (exception)
- getattribute $P1050, exception, "payload"
- .return ($P1050)
+ getattribute $P1052, exception, "payload"
+ .return ($P1052)
.end
.namespace ["NQP";"Actions"]
-.sub "variable_declarator" :subid("67_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1054
-.annotate "line", 371
- .const 'Sub' $P1094 = "68_1261064035.64813"
- capture_lex $P1094
- new $P1053, 'ExceptionHandler'
- set_addr $P1053, control_1052
- $P1053."handle_types"(58)
- push_eh $P1053
- .lex "self", self
- .lex "$/", param_1054
-.annotate "line", 372
- new $P1055, "Undef"
- .lex "$past", $P1055
-.annotate "line", 373
- new $P1056, "Undef"
- .lex "$sigil", $P1056
+.sub "variable_declarator" :subid("67_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1056
.annotate "line", 374
- new $P1057, "Undef"
- .lex "$name", $P1057
+ .const 'Sub' $P1096 = "68_1267204714.47172"
+ capture_lex $P1096
+ new $P1055, 'ExceptionHandler'
+ set_addr $P1055, control_1054
+ $P1055."handle_types"(58)
+ push_eh $P1055
+ .lex "self", self
+ .lex "$/", param_1056
.annotate "line", 375
+ new $P1057, "Undef"
+ .lex "$past", $P1057
+.annotate "line", 376
new $P1058, "Undef"
- .lex "$BLOCK", $P1058
-.annotate "line", 372
- find_lex $P1059, "$/"
- unless_null $P1059, vivify_355
- new $P1059, "Hash"
- vivify_355:
- set $P1060, $P1059["variable"]
- unless_null $P1060, vivify_356
+ .lex "$sigil", $P1058
+.annotate "line", 377
+ new $P1059, "Undef"
+ .lex "$name", $P1059
+.annotate "line", 378
new $P1060, "Undef"
+ .lex "$BLOCK", $P1060
+.annotate "line", 375
+ find_lex $P1061, "$/"
+ unless_null $P1061, vivify_355
+ $P1061 = root_new ['parrot';'Hash']
+ vivify_355:
+ set $P1062, $P1061["variable"]
+ unless_null $P1062, vivify_356
+ new $P1062, "Undef"
vivify_356:
- $P1061 = $P1060."ast"()
- store_lex "$past", $P1061
-.annotate "line", 373
- find_lex $P1062, "$/"
- unless_null $P1062, vivify_357
- new $P1062, "Hash"
+ $P1063 = $P1062."ast"()
+ store_lex "$past", $P1063
+.annotate "line", 376
+ find_lex $P1064, "$/"
+ unless_null $P1064, vivify_357
+ $P1064 = root_new ['parrot';'Hash']
vivify_357:
- set $P1063, $P1062["variable"]
- unless_null $P1063, vivify_358
- new $P1063, "Hash"
+ set $P1065, $P1064["variable"]
+ unless_null $P1065, vivify_358
+ $P1065 = root_new ['parrot';'Hash']
vivify_358:
- set $P1064, $P1063["sigil"]
- unless_null $P1064, vivify_359
- new $P1064, "Undef"
+ set $P1066, $P1065["sigil"]
+ unless_null $P1066, vivify_359
+ new $P1066, "Undef"
vivify_359:
- store_lex "$sigil", $P1064
-.annotate "line", 374
- find_lex $P1065, "$past"
- $P1066 = $P1065."name"()
- store_lex "$name", $P1066
-.annotate "line", 375
- get_global $P1067, "@BLOCK"
- unless_null $P1067, vivify_360
- new $P1067, "ResizablePMCArray"
+ store_lex "$sigil", $P1066
+.annotate "line", 377
+ find_lex $P1067, "$past"
+ $P1068 = $P1067."name"()
+ store_lex "$name", $P1068
+.annotate "line", 378
+ get_global $P1069, "@BLOCK"
+ unless_null $P1069, vivify_360
+ $P1069 = root_new ['parrot';'ResizablePMCArray']
vivify_360:
- set $P1068, $P1067[0]
- unless_null $P1068, vivify_361
- new $P1068, "Undef"
+ set $P1070, $P1069[0]
+ unless_null $P1070, vivify_361
+ new $P1070, "Undef"
vivify_361:
- store_lex "$BLOCK", $P1068
-.annotate "line", 376
- find_lex $P1070, "$BLOCK"
- find_lex $P1071, "$name"
- $P1072 = $P1070."symbol"($P1071)
- unless $P1072, if_1069_end
-.annotate "line", 377
- find_lex $P1073, "$/"
- $P1074 = $P1073."CURSOR"()
- find_lex $P1075, "$name"
- $P1074."panic"("Redeclaration of symbol ", $P1075)
- if_1069_end:
+ store_lex "$BLOCK", $P1070
.annotate "line", 379
- find_dynamic_lex $P1077, "$*SCOPE"
- unless_null $P1077, vivify_362
- get_hll_global $P1077, "$SCOPE"
- unless_null $P1077, vivify_363
+ find_lex $P1072, "$BLOCK"
+ find_lex $P1073, "$name"
+ $P1074 = $P1072."symbol"($P1073)
+ unless $P1074, if_1071_end
+.annotate "line", 380
+ find_lex $P1075, "$/"
+ $P1076 = $P1075."CURSOR"()
+ find_lex $P1077, "$name"
+ $P1076."panic"("Redeclaration of symbol ", $P1077)
+ if_1071_end:
+.annotate "line", 382
+ find_dynamic_lex $P1079, "$*SCOPE"
+ unless_null $P1079, vivify_362
+ get_hll_global $P1079, "$SCOPE"
+ unless_null $P1079, vivify_363
die "Contextual $*SCOPE not found"
vivify_363:
vivify_362:
- set $S1078, $P1077
- iseq $I1079, $S1078, "has"
- if $I1079, if_1076
-.annotate "line", 388
- .const 'Sub' $P1094 = "68_1261064035.64813"
- capture_lex $P1094
- $P1094()
- goto if_1076_end
- if_1076:
-.annotate "line", 380
- find_lex $P1080, "$BLOCK"
- find_lex $P1081, "$name"
- $P1080."symbol"($P1081, "attribute" :named("scope"))
-.annotate "line", 381
- find_lex $P1083, "$BLOCK"
- unless_null $P1083, vivify_368
- new $P1083, "Hash"
+ set $S1080, $P1079
+ iseq $I1081, $S1080, "has"
+ if $I1081, if_1078
+.annotate "line", 391
+ .const 'Sub' $P1096 = "68_1267204714.47172"
+ capture_lex $P1096
+ $P1096()
+ goto if_1078_end
+ if_1078:
+.annotate "line", 383
+ find_lex $P1082, "$BLOCK"
+ find_lex $P1083, "$name"
+ $P1082."symbol"($P1083, "attribute" :named("scope"))
+.annotate "line", 384
+ find_lex $P1085, "$BLOCK"
+ unless_null $P1085, vivify_368
+ $P1085 = root_new ['parrot';'Hash']
vivify_368:
- set $P1084, $P1083["attributes"]
- unless_null $P1084, vivify_369
- new $P1084, "Undef"
+ set $P1086, $P1085["attributes"]
+ unless_null $P1086, vivify_369
+ new $P1086, "Undef"
vivify_369:
- if $P1084, unless_1082_end
-.annotate "line", 383
- get_hll_global $P1085, ["PAST"], "Op"
- $P1086 = $P1085."new"("list" :named("pasttype"), "attr" :named("named"))
- find_lex $P1087, "$BLOCK"
- unless_null $P1087, vivify_370
- new $P1087, "Hash"
- store_lex "$BLOCK", $P1087
+ if $P1086, unless_1084_end
+.annotate "line", 386
+ get_hll_global $P1087, ["PAST"], "Op"
+ $P1088 = $P1087."new"("list" :named("pasttype"), "attr" :named("named"))
+ find_lex $P1089, "$BLOCK"
+ unless_null $P1089, vivify_370
+ $P1089 = root_new ['parrot';'Hash']
+ store_lex "$BLOCK", $P1089
vivify_370:
- set $P1087["attributes"], $P1086
- unless_1082_end:
-.annotate "line", 385
- find_lex $P1088, "$BLOCK"
- unless_null $P1088, vivify_371
- new $P1088, "Hash"
+ set $P1089["attributes"], $P1088
+ unless_1084_end:
+.annotate "line", 388
+ find_lex $P1090, "$BLOCK"
+ unless_null $P1090, vivify_371
+ $P1090 = root_new ['parrot';'Hash']
vivify_371:
- set $P1089, $P1088["attributes"]
- unless_null $P1089, vivify_372
- new $P1089, "Undef"
+ set $P1091, $P1090["attributes"]
+ unless_null $P1091, vivify_372
+ new $P1091, "Undef"
vivify_372:
- find_lex $P1090, "$name"
- $P1089."push"($P1090)
-.annotate "line", 386
- get_hll_global $P1091, ["PAST"], "Stmts"
- $P1092 = $P1091."new"()
- store_lex "$past", $P1092
- if_1076_end:
-.annotate "line", 396
- find_lex $P1118, "$/"
- find_lex $P1119, "$past"
- $P1120 = $P1118."!make"($P1119)
-.annotate "line", 371
- .return ($P1120)
- control_1052:
+ find_lex $P1092, "$name"
+ $P1091."push"($P1092)
+.annotate "line", 389
+ get_hll_global $P1093, ["PAST"], "Stmts"
+ $P1094 = $P1093."new"()
+ store_lex "$past", $P1094
+ if_1078_end:
+.annotate "line", 399
+ find_lex $P1120, "$/"
+ find_lex $P1121, "$past"
+ $P1122 = $P1120."!make"($P1121)
+.annotate "line", 374
+ .return ($P1122)
+ control_1054:
.local pmc exception
.get_results (exception)
- getattribute $P1121, exception, "payload"
- .return ($P1121)
+ getattribute $P1123, exception, "payload"
+ .return ($P1123)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1093" :anon :subid("68_1261064035.64813") :outer("67_1261064035.64813")
-.annotate "line", 389
- new $P1095, "Undef"
- .lex "$scope", $P1095
-.annotate "line", 390
- new $P1096, "Undef"
- .lex "$decl", $P1096
-.annotate "line", 389
- find_dynamic_lex $P1099, "$*SCOPE"
- unless_null $P1099, vivify_364
- get_hll_global $P1099, "$SCOPE"
- unless_null $P1099, vivify_365
+.sub "_block1095" :anon :subid("68_1267204714.47172") :outer("67_1267204714.47172")
+.annotate "line", 392
+ new $P1097, "Undef"
+ .lex "$scope", $P1097
+.annotate "line", 393
+ new $P1098, "Undef"
+ .lex "$decl", $P1098
+.annotate "line", 392
+ find_dynamic_lex $P1101, "$*SCOPE"
+ unless_null $P1101, vivify_364
+ get_hll_global $P1101, "$SCOPE"
+ unless_null $P1101, vivify_365
die "Contextual $*SCOPE not found"
vivify_365:
vivify_364:
- set $S1100, $P1099
- iseq $I1101, $S1100, "our"
- if $I1101, if_1098
- new $P1103, "String"
- assign $P1103, "lexical"
- set $P1097, $P1103
- goto if_1098_end
- if_1098:
- new $P1102, "String"
- assign $P1102, "package"
- set $P1097, $P1102
- if_1098_end:
- store_lex "$scope", $P1097
-.annotate "line", 390
- get_hll_global $P1104, ["PAST"], "Var"
- find_lex $P1105, "$name"
- find_lex $P1106, "$scope"
-.annotate "line", 391
- find_lex $P1107, "$sigil"
- $P1108 = "sigiltype"($P1107)
- find_lex $P1109, "$/"
- $P1110 = $P1104."new"($P1105 :named("name"), $P1106 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1108 :named("viviself"), $P1109 :named("node"))
-.annotate "line", 390
- store_lex "$decl", $P1110
+ set $S1102, $P1101
+ iseq $I1103, $S1102, "our"
+ if $I1103, if_1100
+ new $P1105, "String"
+ assign $P1105, "lexical"
+ set $P1099, $P1105
+ goto if_1100_end
+ if_1100:
+ new $P1104, "String"
+ assign $P1104, "package"
+ set $P1099, $P1104
+ if_1100_end:
+ store_lex "$scope", $P1099
.annotate "line", 393
- find_lex $P1111, "$BLOCK"
- find_lex $P1112, "$name"
- find_lex $P1113, "$scope"
- $P1111."symbol"($P1112, $P1113 :named("scope"))
+ get_hll_global $P1106, ["PAST"], "Var"
+ find_lex $P1107, "$name"
+ find_lex $P1108, "$scope"
.annotate "line", 394
- find_lex $P1114, "$BLOCK"
- unless_null $P1114, vivify_366
- new $P1114, "ResizablePMCArray"
+ find_lex $P1109, "$sigil"
+ $P1110 = "vivitype"($P1109)
+ find_lex $P1111, "$/"
+ $P1112 = $P1106."new"($P1107 :named("name"), $P1108 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1110 :named("viviself"), $P1111 :named("node"))
+.annotate "line", 393
+ store_lex "$decl", $P1112
+.annotate "line", 396
+ find_lex $P1113, "$BLOCK"
+ find_lex $P1114, "$name"
+ find_lex $P1115, "$scope"
+ $P1113."symbol"($P1114, $P1115 :named("scope"))
+.annotate "line", 397
+ find_lex $P1116, "$BLOCK"
+ unless_null $P1116, vivify_366
+ $P1116 = root_new ['parrot';'ResizablePMCArray']
vivify_366:
- set $P1115, $P1114[0]
- unless_null $P1115, vivify_367
- new $P1115, "Undef"
+ set $P1117, $P1116[0]
+ unless_null $P1117, vivify_367
+ new $P1117, "Undef"
vivify_367:
- find_lex $P1116, "$decl"
- $P1117 = $P1115."push"($P1116)
-.annotate "line", 388
- .return ($P1117)
+ find_lex $P1118, "$decl"
+ $P1119 = $P1117."push"($P1118)
+.annotate "line", 391
+ .return ($P1119)
.end
.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>" :subid("69_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1125
-.annotate "line", 399
- new $P1124, 'ExceptionHandler'
- set_addr $P1124, control_1123
- $P1124."handle_types"(58)
- push_eh $P1124
- .lex "self", self
- .lex "$/", param_1125
- find_lex $P1126, "$/"
- find_lex $P1127, "$/"
- unless_null $P1127, vivify_373
- new $P1127, "Hash"
+.sub "routine_declarator:sym<sub>" :subid("69_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1127
+.annotate "line", 402
+ new $P1126, 'ExceptionHandler'
+ set_addr $P1126, control_1125
+ $P1126."handle_types"(58)
+ push_eh $P1126
+ .lex "self", self
+ .lex "$/", param_1127
+ find_lex $P1128, "$/"
+ find_lex $P1129, "$/"
+ unless_null $P1129, vivify_373
+ $P1129 = root_new ['parrot';'Hash']
vivify_373:
- set $P1128, $P1127["routine_def"]
- unless_null $P1128, vivify_374
- new $P1128, "Undef"
+ set $P1130, $P1129["routine_def"]
+ unless_null $P1130, vivify_374
+ new $P1130, "Undef"
vivify_374:
- $P1129 = $P1128."ast"()
- $P1130 = $P1126."!make"($P1129)
- .return ($P1130)
- control_1123:
+ $P1131 = $P1130."ast"()
+ $P1132 = $P1128."!make"($P1131)
+ .return ($P1132)
+ control_1125:
.local pmc exception
.get_results (exception)
- getattribute $P1131, exception, "payload"
- .return ($P1131)
+ getattribute $P1133, exception, "payload"
+ .return ($P1133)
.end
.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>" :subid("70_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1135
-.annotate "line", 400
- new $P1134, 'ExceptionHandler'
- set_addr $P1134, control_1133
- $P1134."handle_types"(58)
- push_eh $P1134
- .lex "self", self
- .lex "$/", param_1135
- find_lex $P1136, "$/"
- find_lex $P1137, "$/"
- unless_null $P1137, vivify_375
- new $P1137, "Hash"
+.sub "routine_declarator:sym<method>" :subid("70_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1137
+.annotate "line", 403
+ new $P1136, 'ExceptionHandler'
+ set_addr $P1136, control_1135
+ $P1136."handle_types"(58)
+ push_eh $P1136
+ .lex "self", self
+ .lex "$/", param_1137
+ find_lex $P1138, "$/"
+ find_lex $P1139, "$/"
+ unless_null $P1139, vivify_375
+ $P1139 = root_new ['parrot';'Hash']
vivify_375:
- set $P1138, $P1137["method_def"]
- unless_null $P1138, vivify_376
- new $P1138, "Undef"
+ set $P1140, $P1139["method_def"]
+ unless_null $P1140, vivify_376
+ new $P1140, "Undef"
vivify_376:
- $P1139 = $P1138."ast"()
- $P1140 = $P1136."!make"($P1139)
- .return ($P1140)
- control_1133:
+ $P1141 = $P1140."ast"()
+ $P1142 = $P1138."!make"($P1141)
+ .return ($P1142)
+ control_1135:
.local pmc exception
.get_results (exception)
- getattribute $P1141, exception, "payload"
- .return ($P1141)
+ getattribute $P1143, exception, "payload"
+ .return ($P1143)
.end
.namespace ["NQP";"Actions"]
-.sub "routine_def" :subid("71_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1145
-.annotate "line", 402
- .const 'Sub' $P1156 = "72_1261064035.64813"
- capture_lex $P1156
- new $P1144, 'ExceptionHandler'
- set_addr $P1144, control_1143
- $P1144."handle_types"(58)
- push_eh $P1144
+.sub "routine_def" :subid("71_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1147
+.annotate "line", 405
+ .const 'Sub' $P1158 = "72_1267204714.47172"
+ capture_lex $P1158
+ new $P1146, 'ExceptionHandler'
+ set_addr $P1146, control_1145
+ $P1146."handle_types"(58)
+ push_eh $P1146
.lex "self", self
- .lex "$/", param_1145
-.annotate "line", 403
- new $P1146, "Undef"
- .lex "$past", $P1146
- find_lex $P1147, "$/"
- unless_null $P1147, vivify_377
- new $P1147, "Hash"
- vivify_377:
- set $P1148, $P1147["blockoid"]
- unless_null $P1148, vivify_378
+ .lex "$/", param_1147
+.annotate "line", 406
new $P1148, "Undef"
+ .lex "$past", $P1148
+ find_lex $P1149, "$/"
+ unless_null $P1149, vivify_377
+ $P1149 = root_new ['parrot';'Hash']
+ vivify_377:
+ set $P1150, $P1149["blockoid"]
+ unless_null $P1150, vivify_378
+ new $P1150, "Undef"
vivify_378:
- $P1149 = $P1148."ast"()
- store_lex "$past", $P1149
-.annotate "line", 404
- find_lex $P1150, "$past"
- $P1150."blocktype"("declaration")
-.annotate "line", 405
- find_lex $P1151, "$past"
- $P1151."control"("return_pir")
-.annotate "line", 406
- find_lex $P1153, "$/"
- unless_null $P1153, vivify_379
- new $P1153, "Hash"
+ $P1151 = $P1150."ast"()
+ store_lex "$past", $P1151
+.annotate "line", 407
+ find_lex $P1152, "$past"
+ $P1152."blocktype"("declaration")
+.annotate "line", 408
+ find_lex $P1153, "$past"
+ $P1153."control"("return_pir")
+.annotate "line", 409
+ find_lex $P1155, "$/"
+ unless_null $P1155, vivify_379
+ $P1155 = root_new ['parrot';'Hash']
vivify_379:
- set $P1154, $P1153["deflongname"]
- unless_null $P1154, vivify_380
- new $P1154, "Undef"
+ set $P1156, $P1155["deflongname"]
+ unless_null $P1156, vivify_380
+ new $P1156, "Undef"
vivify_380:
- unless $P1154, if_1152_end
- .const 'Sub' $P1156 = "72_1261064035.64813"
- capture_lex $P1156
- $P1156()
- if_1152_end:
-.annotate "line", 416
- find_lex $P1188, "$/"
- find_lex $P1189, "$past"
- $P1190 = $P1188."!make"($P1189)
-.annotate "line", 402
- .return ($P1190)
- control_1143:
+ unless $P1156, if_1154_end
+ .const 'Sub' $P1158 = "72_1267204714.47172"
+ capture_lex $P1158
+ $P1158()
+ if_1154_end:
+.annotate "line", 419
+ find_lex $P1190, "$/"
+ find_lex $P1191, "$past"
+ $P1192 = $P1190."!make"($P1191)
+.annotate "line", 405
+ .return ($P1192)
+ control_1145:
.local pmc exception
.get_results (exception)
- getattribute $P1191, exception, "payload"
- .return ($P1191)
+ getattribute $P1193, exception, "payload"
+ .return ($P1193)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1155" :anon :subid("72_1261064035.64813") :outer("71_1261064035.64813")
-.annotate "line", 407
- new $P1157, "Undef"
- .lex "$name", $P1157
- find_lex $P1158, "$/"
- unless_null $P1158, vivify_381
- new $P1158, "Hash"
+.sub "_block1157" :anon :subid("72_1267204714.47172") :outer("71_1267204714.47172")
+.annotate "line", 410
+ new $P1159, "Undef"
+ .lex "$name", $P1159
+ find_lex $P1160, "$/"
+ unless_null $P1160, vivify_381
+ $P1160 = root_new ['parrot';'Hash']
vivify_381:
- set $P1159, $P1158["sigil"]
- unless_null $P1159, vivify_382
- new $P1159, "ResizablePMCArray"
+ set $P1161, $P1160["sigil"]
+ unless_null $P1161, vivify_382
+ $P1161 = root_new ['parrot';'ResizablePMCArray']
vivify_382:
- set $P1160, $P1159[0]
- unless_null $P1160, vivify_383
- new $P1160, "Undef"
+ set $P1162, $P1161[0]
+ unless_null $P1162, vivify_383
+ new $P1162, "Undef"
vivify_383:
- set $S1161, $P1160
- new $P1162, 'String'
- set $P1162, $S1161
- find_lex $P1163, "$/"
- unless_null $P1163, vivify_384
- new $P1163, "Hash"
+ set $S1163, $P1162
+ new $P1164, 'String'
+ set $P1164, $S1163
+ find_lex $P1165, "$/"
+ unless_null $P1165, vivify_384
+ $P1165 = root_new ['parrot';'Hash']
vivify_384:
- set $P1164, $P1163["deflongname"]
- unless_null $P1164, vivify_385
- new $P1164, "ResizablePMCArray"
+ set $P1166, $P1165["deflongname"]
+ unless_null $P1166, vivify_385
+ $P1166 = root_new ['parrot';'ResizablePMCArray']
vivify_385:
- set $P1165, $P1164[0]
- unless_null $P1165, vivify_386
- new $P1165, "Undef"
+ set $P1167, $P1166[0]
+ unless_null $P1167, vivify_386
+ new $P1167, "Undef"
vivify_386:
- $S1166 = $P1165."ast"()
- concat $P1167, $P1162, $S1166
- store_lex "$name", $P1167
-.annotate "line", 408
- find_lex $P1168, "$past"
- find_lex $P1169, "$name"
- $P1168."name"($P1169)
-.annotate "line", 409
- find_dynamic_lex $P1172, "$*SCOPE"
- unless_null $P1172, vivify_387
- get_hll_global $P1172, "$SCOPE"
- unless_null $P1172, vivify_388
+ $S1168 = $P1167."ast"()
+ concat $P1169, $P1164, $S1168
+ store_lex "$name", $P1169
+.annotate "line", 411
+ find_lex $P1170, "$past"
+ find_lex $P1171, "$name"
+ $P1170."name"($P1171)
+.annotate "line", 412
+ find_dynamic_lex $P1174, "$*SCOPE"
+ unless_null $P1174, vivify_387
+ get_hll_global $P1174, "$SCOPE"
+ unless_null $P1174, vivify_388
die "Contextual $*SCOPE not found"
vivify_388:
vivify_387:
- set $S1173, $P1172
- isne $I1174, $S1173, "our"
- if $I1174, if_1171
- new $P1170, 'Integer'
- set $P1170, $I1174
- goto if_1171_end
- if_1171:
-.annotate "line", 410
- get_global $P1175, "@BLOCK"
- unless_null $P1175, vivify_389
- new $P1175, "ResizablePMCArray"
+ set $S1175, $P1174
+ isne $I1176, $S1175, "our"
+ if $I1176, if_1173
+ new $P1172, 'Integer'
+ set $P1172, $I1176
+ goto if_1173_end
+ if_1173:
+.annotate "line", 413
+ get_global $P1177, "@BLOCK"
+ unless_null $P1177, vivify_389
+ $P1177 = root_new ['parrot';'ResizablePMCArray']
vivify_389:
- set $P1176, $P1175[0]
- unless_null $P1176, vivify_390
- new $P1176, "ResizablePMCArray"
+ set $P1178, $P1177[0]
+ unless_null $P1178, vivify_390
+ $P1178 = root_new ['parrot';'ResizablePMCArray']
vivify_390:
- set $P1177, $P1176[0]
- unless_null $P1177, vivify_391
- new $P1177, "Undef"
+ set $P1179, $P1178[0]
+ unless_null $P1179, vivify_391
+ new $P1179, "Undef"
vivify_391:
- get_hll_global $P1178, ["PAST"], "Var"
- find_lex $P1179, "$name"
- find_lex $P1180, "$past"
- $P1181 = $P1178."new"($P1179 :named("name"), 1 :named("isdecl"), $P1180 :named("viviself"), "lexical" :named("scope"))
- $P1177."push"($P1181)
-.annotate "line", 412
- get_global $P1182, "@BLOCK"
- unless_null $P1182, vivify_392
- new $P1182, "ResizablePMCArray"
+ get_hll_global $P1180, ["PAST"], "Var"
+ find_lex $P1181, "$name"
+ find_lex $P1182, "$past"
+ $P1183 = $P1180."new"($P1181 :named("name"), 1 :named("isdecl"), $P1182 :named("viviself"), "lexical" :named("scope"))
+ $P1179."push"($P1183)
+.annotate "line", 415
+ get_global $P1184, "@BLOCK"
+ unless_null $P1184, vivify_392
+ $P1184 = root_new ['parrot';'ResizablePMCArray']
vivify_392:
- set $P1183, $P1182[0]
- unless_null $P1183, vivify_393
- new $P1183, "Undef"
+ set $P1185, $P1184[0]
+ unless_null $P1185, vivify_393
+ new $P1185, "Undef"
vivify_393:
- find_lex $P1184, "$name"
- $P1183."symbol"($P1184, "lexical" :named("scope"))
-.annotate "line", 413
- get_hll_global $P1185, ["PAST"], "Var"
find_lex $P1186, "$name"
- $P1187 = $P1185."new"($P1186 :named("name"))
- store_lex "$past", $P1187
+ $P1185."symbol"($P1186, "lexical" :named("scope"))
+.annotate "line", 416
+ get_hll_global $P1187, ["PAST"], "Var"
+ find_lex $P1188, "$name"
+ $P1189 = $P1187."new"($P1188 :named("name"))
+ store_lex "$past", $P1189
+.annotate "line", 412
+ set $P1172, $P1189
+ if_1173_end:
.annotate "line", 409
- set $P1170, $P1187
- if_1171_end:
-.annotate "line", 406
- .return ($P1170)
+ .return ($P1172)
.end
.namespace ["NQP";"Actions"]
-.sub "method_def" :subid("73_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1195
-.annotate "line", 420
- .const 'Sub' $P1211 = "74_1261064035.64813"
- capture_lex $P1211
- new $P1194, 'ExceptionHandler'
- set_addr $P1194, control_1193
- $P1194."handle_types"(58)
- push_eh $P1194
+.sub "method_def" :subid("73_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1197
+.annotate "line", 423
+ .const 'Sub' $P1213 = "74_1267204714.47172"
+ capture_lex $P1213
+ new $P1196, 'ExceptionHandler'
+ set_addr $P1196, control_1195
+ $P1196."handle_types"(58)
+ push_eh $P1196
.lex "self", self
- .lex "$/", param_1195
-.annotate "line", 421
- new $P1196, "Undef"
- .lex "$past", $P1196
- find_lex $P1197, "$/"
- unless_null $P1197, vivify_394
- new $P1197, "Hash"
- vivify_394:
- set $P1198, $P1197["blockoid"]
- unless_null $P1198, vivify_395
+ .lex "$/", param_1197
+.annotate "line", 424
new $P1198, "Undef"
+ .lex "$past", $P1198
+ find_lex $P1199, "$/"
+ unless_null $P1199, vivify_394
+ $P1199 = root_new ['parrot';'Hash']
+ vivify_394:
+ set $P1200, $P1199["blockoid"]
+ unless_null $P1200, vivify_395
+ new $P1200, "Undef"
vivify_395:
- $P1199 = $P1198."ast"()
- store_lex "$past", $P1199
-.annotate "line", 422
- find_lex $P1200, "$past"
- $P1200."blocktype"("method")
-.annotate "line", 423
- find_lex $P1201, "$past"
- $P1201."control"("return_pir")
-.annotate "line", 424
+ $P1201 = $P1200."ast"()
+ store_lex "$past", $P1201
+.annotate "line", 425
find_lex $P1202, "$past"
- unless_null $P1202, vivify_396
- new $P1202, "ResizablePMCArray"
+ $P1202."blocktype"("method")
+.annotate "line", 426
+ find_lex $P1203, "$past"
+ $P1203."control"("return_pir")
+.annotate "line", 427
+ find_lex $P1204, "$past"
+ unless_null $P1204, vivify_396
+ $P1204 = root_new ['parrot';'ResizablePMCArray']
vivify_396:
- set $P1203, $P1202[0]
- unless_null $P1203, vivify_397
- new $P1203, "Undef"
+ set $P1205, $P1204[0]
+ unless_null $P1205, vivify_397
+ new $P1205, "Undef"
vivify_397:
- get_hll_global $P1204, ["PAST"], "Op"
- $P1205 = $P1204."new"(" .lex \"self\", self" :named("inline"))
- $P1203."unshift"($P1205)
-.annotate "line", 425
- find_lex $P1206, "$past"
- $P1206."symbol"("self", "lexical" :named("scope"))
-.annotate "line", 426
- find_lex $P1208, "$/"
- unless_null $P1208, vivify_398
- new $P1208, "Hash"
+ get_hll_global $P1206, ["PAST"], "Op"
+ $P1207 = $P1206."new"(" .lex \"self\", self" :named("inline"))
+ $P1205."unshift"($P1207)
+.annotate "line", 428
+ find_lex $P1208, "$past"
+ $P1208."symbol"("self", "lexical" :named("scope"))
+.annotate "line", 429
+ find_lex $P1210, "$/"
+ unless_null $P1210, vivify_398
+ $P1210 = root_new ['parrot';'Hash']
vivify_398:
- set $P1209, $P1208["deflongname"]
- unless_null $P1209, vivify_399
- new $P1209, "Undef"
+ set $P1211, $P1210["deflongname"]
+ unless_null $P1211, vivify_399
+ new $P1211, "Undef"
vivify_399:
- unless $P1209, if_1207_end
- .const 'Sub' $P1211 = "74_1261064035.64813"
- capture_lex $P1211
- $P1211()
- if_1207_end:
-.annotate "line", 430
- find_lex $P1222, "$/"
- find_lex $P1223, "$past"
- $P1224 = $P1222."!make"($P1223)
-.annotate "line", 420
- .return ($P1224)
- control_1193:
+ unless $P1211, if_1209_end
+ .const 'Sub' $P1213 = "74_1267204714.47172"
+ capture_lex $P1213
+ $P1213()
+ if_1209_end:
+.annotate "line", 433
+ find_lex $P1224, "$/"
+ find_lex $P1225, "$past"
+ $P1226 = $P1224."!make"($P1225)
+.annotate "line", 423
+ .return ($P1226)
+ control_1195:
.local pmc exception
.get_results (exception)
- getattribute $P1225, exception, "payload"
- .return ($P1225)
+ getattribute $P1227, exception, "payload"
+ .return ($P1227)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1210" :anon :subid("74_1261064035.64813") :outer("73_1261064035.64813")
-.annotate "line", 427
- new $P1212, "Undef"
- .lex "$name", $P1212
- find_lex $P1213, "$/"
- unless_null $P1213, vivify_400
- new $P1213, "Hash"
+.sub "_block1212" :anon :subid("74_1267204714.47172") :outer("73_1267204714.47172")
+.annotate "line", 430
+ new $P1214, "Undef"
+ .lex "$name", $P1214
+ find_lex $P1215, "$/"
+ unless_null $P1215, vivify_400
+ $P1215 = root_new ['parrot';'Hash']
vivify_400:
- set $P1214, $P1213["deflongname"]
- unless_null $P1214, vivify_401
- new $P1214, "ResizablePMCArray"
+ set $P1216, $P1215["deflongname"]
+ unless_null $P1216, vivify_401
+ $P1216 = root_new ['parrot';'ResizablePMCArray']
vivify_401:
- set $P1215, $P1214[0]
- unless_null $P1215, vivify_402
- new $P1215, "Undef"
+ set $P1217, $P1216[0]
+ unless_null $P1217, vivify_402
+ new $P1217, "Undef"
vivify_402:
- $P1216 = $P1215."ast"()
- set $S1217, $P1216
- new $P1218, 'String'
- set $P1218, $S1217
- store_lex "$name", $P1218
-.annotate "line", 428
- find_lex $P1219, "$past"
- find_lex $P1220, "$name"
- $P1221 = $P1219."name"($P1220)
-.annotate "line", 426
- .return ($P1221)
+ $P1218 = $P1217."ast"()
+ set $S1219, $P1218
+ new $P1220, 'String'
+ set $P1220, $S1219
+ store_lex "$name", $P1220
+.annotate "line", 431
+ find_lex $P1221, "$past"
+ find_lex $P1222, "$name"
+ $P1223 = $P1221."name"($P1222)
+.annotate "line", 429
+ .return ($P1223)
.end
.namespace ["NQP";"Actions"]
-.sub "signature" :subid("75_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1229
-.annotate "line", 434
- .const 'Sub' $P1240 = "76_1261064035.64813"
- capture_lex $P1240
- new $P1228, 'ExceptionHandler'
- set_addr $P1228, control_1227
- $P1228."handle_types"(58)
- push_eh $P1228
- .lex "self", self
- .lex "$/", param_1229
-.annotate "line", 435
- new $P1230, "Undef"
- .lex "$BLOCKINIT", $P1230
- get_global $P1231, "@BLOCK"
- unless_null $P1231, vivify_403
- new $P1231, "ResizablePMCArray"
+.sub "signature" :subid("75_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1231
+.annotate "line", 437
+ .const 'Sub' $P1242 = "76_1267204714.47172"
+ capture_lex $P1242
+ new $P1230, 'ExceptionHandler'
+ set_addr $P1230, control_1229
+ $P1230."handle_types"(58)
+ push_eh $P1230
+ .lex "self", self
+ .lex "$/", param_1231
+.annotate "line", 438
+ new $P1232, "Undef"
+ .lex "$BLOCKINIT", $P1232
+ get_global $P1233, "@BLOCK"
+ unless_null $P1233, vivify_403
+ $P1233 = root_new ['parrot';'ResizablePMCArray']
vivify_403:
- set $P1232, $P1231[0]
- unless_null $P1232, vivify_404
- new $P1232, "ResizablePMCArray"
+ set $P1234, $P1233[0]
+ unless_null $P1234, vivify_404
+ $P1234 = root_new ['parrot';'ResizablePMCArray']
vivify_404:
- set $P1233, $P1232[0]
- unless_null $P1233, vivify_405
- new $P1233, "Undef"
+ set $P1235, $P1234[0]
+ unless_null $P1235, vivify_405
+ new $P1235, "Undef"
vivify_405:
- store_lex "$BLOCKINIT", $P1233
-.annotate "line", 436
- find_lex $P1235, "$/"
- unless_null $P1235, vivify_406
- new $P1235, "Hash"
+ store_lex "$BLOCKINIT", $P1235
+.annotate "line", 439
+ find_lex $P1237, "$/"
+ unless_null $P1237, vivify_406
+ $P1237 = root_new ['parrot';'Hash']
vivify_406:
- set $P1236, $P1235["parameter"]
- unless_null $P1236, vivify_407
- new $P1236, "Undef"
+ set $P1238, $P1237["parameter"]
+ unless_null $P1238, vivify_407
+ new $P1238, "Undef"
vivify_407:
- defined $I1237, $P1236
- unless $I1237, for_undef_408
- iter $P1234, $P1236
- new $P1247, 'ExceptionHandler'
- set_addr $P1247, loop1246_handler
- $P1247."handle_types"(65, 67, 66)
- push_eh $P1247
- loop1246_test:
- unless $P1234, loop1246_done
- shift $P1238, $P1234
- loop1246_redo:
- .const 'Sub' $P1240 = "76_1261064035.64813"
- capture_lex $P1240
- $P1240($P1238)
- loop1246_next:
- goto loop1246_test
- loop1246_handler:
+ defined $I1239, $P1238
+ unless $I1239, for_undef_408
+ iter $P1236, $P1238
+ new $P1249, 'ExceptionHandler'
+ set_addr $P1249, loop1248_handler
+ $P1249."handle_types"(65, 67, 66)
+ push_eh $P1249
+ loop1248_test:
+ unless $P1236, loop1248_done
+ shift $P1240, $P1236
+ loop1248_redo:
+ .const 'Sub' $P1242 = "76_1267204714.47172"
+ capture_lex $P1242
+ $P1242($P1240)
+ loop1248_next:
+ goto loop1248_test
+ loop1248_handler:
.local pmc exception
.get_results (exception)
- getattribute $P1248, exception, 'type'
- eq $P1248, 65, loop1246_next
- eq $P1248, 67, loop1246_redo
- loop1246_done:
+ getattribute $P1250, exception, 'type'
+ eq $P1250, 65, loop1248_next
+ eq $P1250, 67, loop1248_redo
+ loop1248_done:
pop_eh
for_undef_408:
-.annotate "line", 434
- .return ($P1234)
- control_1227:
+.annotate "line", 437
+ .return ($P1236)
+ control_1229:
.local pmc exception
.get_results (exception)
- getattribute $P1249, exception, "payload"
- .return ($P1249)
+ getattribute $P1251, exception, "payload"
+ .return ($P1251)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1239" :anon :subid("76_1261064035.64813") :outer("75_1261064035.64813")
- .param pmc param_1241
-.annotate "line", 436
- .lex "$_", param_1241
- find_lex $P1242, "$BLOCKINIT"
- find_lex $P1243, "$_"
- $P1244 = $P1243."ast"()
- $P1245 = $P1242."push"($P1244)
- .return ($P1245)
+.sub "_block1241" :anon :subid("76_1267204714.47172") :outer("75_1267204714.47172")
+ .param pmc param_1243
+.annotate "line", 439
+ .lex "$_", param_1243
+ find_lex $P1244, "$BLOCKINIT"
+ find_lex $P1245, "$_"
+ $P1246 = $P1245."ast"()
+ $P1247 = $P1244."push"($P1246)
+ .return ($P1247)
.end
.namespace ["NQP";"Actions"]
-.sub "parameter" :subid("77_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1253
-.annotate "line", 439
- new $P1252, 'ExceptionHandler'
- set_addr $P1252, control_1251
- $P1252."handle_types"(58)
- push_eh $P1252
+.sub "parameter" :subid("77_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1255
+.annotate "line", 442
+ new $P1254, 'ExceptionHandler'
+ set_addr $P1254, control_1253
+ $P1254."handle_types"(58)
+ push_eh $P1254
.lex "self", self
- .lex "$/", param_1253
-.annotate "line", 440
- new $P1254, "Undef"
- .lex "$quant", $P1254
-.annotate "line", 441
- new $P1255, "Undef"
- .lex "$past", $P1255
-.annotate "line", 440
- find_lex $P1256, "$/"
- unless_null $P1256, vivify_409
- new $P1256, "Hash"
- vivify_409:
- set $P1257, $P1256["quant"]
- unless_null $P1257, vivify_410
+ .lex "$/", param_1255
+.annotate "line", 443
+ new $P1256, "Undef"
+ .lex "$quant", $P1256
+.annotate "line", 444
new $P1257, "Undef"
+ .lex "$past", $P1257
+.annotate "line", 443
+ find_lex $P1258, "$/"
+ unless_null $P1258, vivify_409
+ $P1258 = root_new ['parrot';'Hash']
+ vivify_409:
+ set $P1259, $P1258["quant"]
+ unless_null $P1259, vivify_410
+ new $P1259, "Undef"
vivify_410:
- store_lex "$quant", $P1257
- find_lex $P1258, "$past"
-.annotate "line", 442
- find_lex $P1260, "$/"
- unless_null $P1260, vivify_411
- new $P1260, "Hash"
+ store_lex "$quant", $P1259
+ find_lex $P1260, "$past"
+.annotate "line", 445
+ find_lex $P1262, "$/"
+ unless_null $P1262, vivify_411
+ $P1262 = root_new ['parrot';'Hash']
vivify_411:
- set $P1261, $P1260["named_param"]
- unless_null $P1261, vivify_412
- new $P1261, "Undef"
+ set $P1263, $P1262["named_param"]
+ unless_null $P1263, vivify_412
+ new $P1263, "Undef"
vivify_412:
- if $P1261, if_1259
-.annotate "line", 449
- find_lex $P1275, "$/"
- unless_null $P1275, vivify_413
- new $P1275, "Hash"
+ if $P1263, if_1261
+.annotate "line", 452
+ find_lex $P1277, "$/"
+ unless_null $P1277, vivify_413
+ $P1277 = root_new ['parrot';'Hash']
vivify_413:
- set $P1276, $P1275["param_var"]
- unless_null $P1276, vivify_414
- new $P1276, "Undef"
+ set $P1278, $P1277["param_var"]
+ unless_null $P1278, vivify_414
+ new $P1278, "Undef"
vivify_414:
- $P1277 = $P1276."ast"()
- store_lex "$past", $P1277
-.annotate "line", 450
- find_lex $P1279, "$quant"
- set $S1280, $P1279
- iseq $I1281, $S1280, "*"
- if $I1281, if_1278
-.annotate "line", 454
- find_lex $P1290, "$quant"
- set $S1291, $P1290
- iseq $I1292, $S1291, "?"
- unless $I1292, if_1289_end
-.annotate "line", 455
- find_lex $P1293, "$past"
- find_lex $P1294, "$/"
- unless_null $P1294, vivify_415
- new $P1294, "Hash"
+ $P1279 = $P1278."ast"()
+ store_lex "$past", $P1279
+.annotate "line", 453
+ find_lex $P1281, "$quant"
+ set $S1282, $P1281
+ iseq $I1283, $S1282, "*"
+ if $I1283, if_1280
+.annotate "line", 457
+ find_lex $P1292, "$quant"
+ set $S1293, $P1292
+ iseq $I1294, $S1293, "?"
+ unless $I1294, if_1291_end
+.annotate "line", 458
+ find_lex $P1295, "$past"
+ find_lex $P1296, "$/"
+ unless_null $P1296, vivify_415
+ $P1296 = root_new ['parrot';'Hash']
vivify_415:
- set $P1295, $P1294["param_var"]
- unless_null $P1295, vivify_416
- new $P1295, "Hash"
+ set $P1297, $P1296["param_var"]
+ unless_null $P1297, vivify_416
+ $P1297 = root_new ['parrot';'Hash']
vivify_416:
- set $P1296, $P1295["sigil"]
- unless_null $P1296, vivify_417
- new $P1296, "Undef"
+ set $P1298, $P1297["sigil"]
+ unless_null $P1298, vivify_417
+ new $P1298, "Undef"
vivify_417:
- $P1297 = "sigiltype"($P1296)
- $P1293."viviself"($P1297)
- if_1289_end:
+ $P1299 = "vivitype"($P1298)
+ $P1295."viviself"($P1299)
+ if_1291_end:
+.annotate "line", 457
+ goto if_1280_end
+ if_1280:
.annotate "line", 454
- goto if_1278_end
- if_1278:
-.annotate "line", 451
- find_lex $P1282, "$past"
- $P1282."slurpy"(1)
-.annotate "line", 452
- find_lex $P1283, "$past"
- find_lex $P1284, "$/"
- unless_null $P1284, vivify_418
- new $P1284, "Hash"
+ find_lex $P1284, "$past"
+ $P1284."slurpy"(1)
+.annotate "line", 455
+ find_lex $P1285, "$past"
+ find_lex $P1286, "$/"
+ unless_null $P1286, vivify_418
+ $P1286 = root_new ['parrot';'Hash']
vivify_418:
- set $P1285, $P1284["param_var"]
- unless_null $P1285, vivify_419
- new $P1285, "Hash"
+ set $P1287, $P1286["param_var"]
+ unless_null $P1287, vivify_419
+ $P1287 = root_new ['parrot';'Hash']
vivify_419:
- set $P1286, $P1285["sigil"]
- unless_null $P1286, vivify_420
- new $P1286, "Undef"
+ set $P1288, $P1287["sigil"]
+ unless_null $P1288, vivify_420
+ new $P1288, "Undef"
vivify_420:
- set $S1287, $P1286
- iseq $I1288, $S1287, "%"
- $P1283."named"($I1288)
- if_1278_end:
-.annotate "line", 448
- goto if_1259_end
- if_1259:
-.annotate "line", 443
- find_lex $P1262, "$/"
- unless_null $P1262, vivify_421
- new $P1262, "Hash"
+ set $S1289, $P1288
+ iseq $I1290, $S1289, "%"
+ $P1285."named"($I1290)
+ if_1280_end:
+.annotate "line", 451
+ goto if_1261_end
+ if_1261:
+.annotate "line", 446
+ find_lex $P1264, "$/"
+ unless_null $P1264, vivify_421
+ $P1264 = root_new ['parrot';'Hash']
vivify_421:
- set $P1263, $P1262["named_param"]
- unless_null $P1263, vivify_422
- new $P1263, "Undef"
+ set $P1265, $P1264["named_param"]
+ unless_null $P1265, vivify_422
+ new $P1265, "Undef"
vivify_422:
- $P1264 = $P1263."ast"()
- store_lex "$past", $P1264
-.annotate "line", 444
- find_lex $P1266, "$quant"
- set $S1267, $P1266
- isne $I1268, $S1267, "!"
- unless $I1268, if_1265_end
-.annotate "line", 445
- find_lex $P1269, "$past"
- find_lex $P1270, "$/"
- unless_null $P1270, vivify_423
- new $P1270, "Hash"
+ $P1266 = $P1265."ast"()
+ store_lex "$past", $P1266
+.annotate "line", 447
+ find_lex $P1268, "$quant"
+ set $S1269, $P1268
+ isne $I1270, $S1269, "!"
+ unless $I1270, if_1267_end
+.annotate "line", 448
+ find_lex $P1271, "$past"
+ find_lex $P1272, "$/"
+ unless_null $P1272, vivify_423
+ $P1272 = root_new ['parrot';'Hash']
vivify_423:
- set $P1271, $P1270["named_param"]
- unless_null $P1271, vivify_424
- new $P1271, "Hash"
+ set $P1273, $P1272["named_param"]
+ unless_null $P1273, vivify_424
+ $P1273 = root_new ['parrot';'Hash']
vivify_424:
- set $P1272, $P1271["param_var"]
- unless_null $P1272, vivify_425
- new $P1272, "Hash"
+ set $P1274, $P1273["param_var"]
+ unless_null $P1274, vivify_425
+ $P1274 = root_new ['parrot';'Hash']
vivify_425:
- set $P1273, $P1272["sigil"]
- unless_null $P1273, vivify_426
- new $P1273, "Undef"
+ set $P1275, $P1274["sigil"]
+ unless_null $P1275, vivify_426
+ new $P1275, "Undef"
vivify_426:
- $P1274 = "sigiltype"($P1273)
- $P1269."viviself"($P1274)
- if_1265_end:
- if_1259_end:
-.annotate "line", 458
- find_lex $P1299, "$/"
- unless_null $P1299, vivify_427
- new $P1299, "Hash"
+ $P1276 = "vivitype"($P1275)
+ $P1271."viviself"($P1276)
+ if_1267_end:
+ if_1261_end:
+.annotate "line", 461
+ find_lex $P1301, "$/"
+ unless_null $P1301, vivify_427
+ $P1301 = root_new ['parrot';'Hash']
vivify_427:
- set $P1300, $P1299["default_value"]
- unless_null $P1300, vivify_428
- new $P1300, "Undef"
+ set $P1302, $P1301["default_value"]
+ unless_null $P1302, vivify_428
+ new $P1302, "Undef"
vivify_428:
- unless $P1300, if_1298_end
-.annotate "line", 459
- find_lex $P1302, "$quant"
- set $S1303, $P1302
- iseq $I1304, $S1303, "*"
- unless $I1304, if_1301_end
-.annotate "line", 460
- find_lex $P1305, "$/"
- $P1306 = $P1305."CURSOR"()
- $P1306."panic"("Can't put default on slurpy parameter")
- if_1301_end:
+ unless $P1302, if_1300_end
.annotate "line", 462
- find_lex $P1308, "$quant"
- set $S1309, $P1308
- iseq $I1310, $S1309, "!"
- unless $I1310, if_1307_end
+ find_lex $P1304, "$quant"
+ set $S1305, $P1304
+ iseq $I1306, $S1305, "*"
+ unless $I1306, if_1303_end
.annotate "line", 463
- find_lex $P1311, "$/"
- $P1312 = $P1311."CURSOR"()
- $P1312."panic"("Can't put default on required parameter")
- if_1307_end:
+ find_lex $P1307, "$/"
+ $P1308 = $P1307."CURSOR"()
+ $P1308."panic"("Can't put default on slurpy parameter")
+ if_1303_end:
.annotate "line", 465
- find_lex $P1313, "$past"
- find_lex $P1314, "$/"
- unless_null $P1314, vivify_429
- new $P1314, "Hash"
+ find_lex $P1310, "$quant"
+ set $S1311, $P1310
+ iseq $I1312, $S1311, "!"
+ unless $I1312, if_1309_end
+.annotate "line", 466
+ find_lex $P1313, "$/"
+ $P1314 = $P1313."CURSOR"()
+ $P1314."panic"("Can't put default on required parameter")
+ if_1309_end:
+.annotate "line", 468
+ find_lex $P1315, "$past"
+ find_lex $P1316, "$/"
+ unless_null $P1316, vivify_429
+ $P1316 = root_new ['parrot';'Hash']
vivify_429:
- set $P1315, $P1314["default_value"]
- unless_null $P1315, vivify_430
- new $P1315, "ResizablePMCArray"
+ set $P1317, $P1316["default_value"]
+ unless_null $P1317, vivify_430
+ $P1317 = root_new ['parrot';'ResizablePMCArray']
vivify_430:
- set $P1316, $P1315[0]
- unless_null $P1316, vivify_431
- new $P1316, "Hash"
+ set $P1318, $P1317[0]
+ unless_null $P1318, vivify_431
+ $P1318 = root_new ['parrot';'Hash']
vivify_431:
- set $P1317, $P1316["EXPR"]
- unless_null $P1317, vivify_432
- new $P1317, "Undef"
+ set $P1319, $P1318["EXPR"]
+ unless_null $P1319, vivify_432
+ new $P1319, "Undef"
vivify_432:
- $P1318 = $P1317."ast"()
- $P1313."viviself"($P1318)
- if_1298_end:
-.annotate "line", 467
- find_lex $P1320, "$past"
- $P1321 = $P1320."viviself"()
- if $P1321, unless_1319_end
- get_global $P1322, "@BLOCK"
- unless_null $P1322, vivify_433
- new $P1322, "ResizablePMCArray"
- vivify_433:
- set $P1323, $P1322[0]
- unless_null $P1323, vivify_434
- new $P1323, "Undef"
- vivify_434:
+ $P1320 = $P1319."ast"()
+ $P1315."viviself"($P1320)
+ if_1300_end:
+.annotate "line", 470
+ find_lex $P1322, "$past"
+ $P1323 = $P1322."viviself"()
+ if $P1323, unless_1321_end
get_global $P1324, "@BLOCK"
- unless_null $P1324, vivify_435
- new $P1324, "ResizablePMCArray"
- vivify_435:
+ unless_null $P1324, vivify_433
+ $P1324 = root_new ['parrot';'ResizablePMCArray']
+ vivify_433:
set $P1325, $P1324[0]
- unless_null $P1325, vivify_436
+ unless_null $P1325, vivify_434
new $P1325, "Undef"
+ vivify_434:
+ get_global $P1326, "@BLOCK"
+ unless_null $P1326, vivify_435
+ $P1326 = root_new ['parrot';'ResizablePMCArray']
+ vivify_435:
+ set $P1327, $P1326[0]
+ unless_null $P1327, vivify_436
+ new $P1327, "Undef"
vivify_436:
- $P1326 = $P1325."arity"()
- set $N1327, $P1326
- new $P1328, 'Float'
- set $P1328, $N1327
- add $P1329, $P1328, 1
- $P1323."arity"($P1329)
- unless_1319_end:
-.annotate "line", 468
- find_lex $P1330, "$/"
- find_lex $P1331, "$past"
- $P1332 = $P1330."!make"($P1331)
-.annotate "line", 439
- .return ($P1332)
- control_1251:
+ $P1328 = $P1327."arity"()
+ set $N1329, $P1328
+ new $P1330, 'Float'
+ set $P1330, $N1329
+ add $P1331, $P1330, 1
+ $P1325."arity"($P1331)
+ unless_1321_end:
+.annotate "line", 471
+ find_lex $P1332, "$/"
+ find_lex $P1333, "$past"
+ $P1334 = $P1332."!make"($P1333)
+.annotate "line", 442
+ .return ($P1334)
+ control_1253:
.local pmc exception
.get_results (exception)
- getattribute $P1333, exception, "payload"
- .return ($P1333)
+ getattribute $P1335, exception, "payload"
+ .return ($P1335)
.end
.namespace ["NQP";"Actions"]
-.sub "param_var" :subid("78_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1337
-.annotate "line", 471
- new $P1336, 'ExceptionHandler'
- set_addr $P1336, control_1335
- $P1336."handle_types"(58)
- push_eh $P1336
+.sub "param_var" :subid("78_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1339
+.annotate "line", 474
+ new $P1338, 'ExceptionHandler'
+ set_addr $P1338, control_1337
+ $P1338."handle_types"(58)
+ push_eh $P1338
.lex "self", self
- .lex "$/", param_1337
-.annotate "line", 472
- new $P1338, "Undef"
- .lex "$name", $P1338
-.annotate "line", 473
- new $P1339, "Undef"
- .lex "$past", $P1339
-.annotate "line", 472
- find_lex $P1340, "$/"
- set $S1341, $P1340
- new $P1342, 'String'
- set $P1342, $S1341
- store_lex "$name", $P1342
-.annotate "line", 473
- get_hll_global $P1343, ["PAST"], "Var"
- find_lex $P1344, "$name"
- find_lex $P1345, "$/"
- $P1346 = $P1343."new"($P1344 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1345 :named("node"))
- store_lex "$past", $P1346
+ .lex "$/", param_1339
+.annotate "line", 475
+ new $P1340, "Undef"
+ .lex "$name", $P1340
+.annotate "line", 476
+ new $P1341, "Undef"
+ .lex "$past", $P1341
.annotate "line", 475
- get_global $P1347, "@BLOCK"
- unless_null $P1347, vivify_437
- new $P1347, "ResizablePMCArray"
+ find_lex $P1342, "$/"
+ set $S1343, $P1342
+ new $P1344, 'String'
+ set $P1344, $S1343
+ store_lex "$name", $P1344
+.annotate "line", 476
+ get_hll_global $P1345, ["PAST"], "Var"
+ find_lex $P1346, "$name"
+ find_lex $P1347, "$/"
+ $P1348 = $P1345."new"($P1346 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1347 :named("node"))
+ store_lex "$past", $P1348
+.annotate "line", 478
+ get_global $P1349, "@BLOCK"
+ unless_null $P1349, vivify_437
+ $P1349 = root_new ['parrot';'ResizablePMCArray']
vivify_437:
- set $P1348, $P1347[0]
- unless_null $P1348, vivify_438
- new $P1348, "Undef"
+ set $P1350, $P1349[0]
+ unless_null $P1350, vivify_438
+ new $P1350, "Undef"
vivify_438:
- find_lex $P1349, "$name"
- $P1348."symbol"($P1349, "lexical" :named("scope"))
-.annotate "line", 476
- find_lex $P1350, "$/"
- find_lex $P1351, "$past"
- $P1352 = $P1350."!make"($P1351)
-.annotate "line", 471
- .return ($P1352)
- control_1335:
+ find_lex $P1351, "$name"
+ $P1350."symbol"($P1351, "lexical" :named("scope"))
+.annotate "line", 479
+ find_lex $P1352, "$/"
+ find_lex $P1353, "$past"
+ $P1354 = $P1352."!make"($P1353)
+.annotate "line", 474
+ .return ($P1354)
+ control_1337:
.local pmc exception
.get_results (exception)
- getattribute $P1353, exception, "payload"
- .return ($P1353)
+ getattribute $P1355, exception, "payload"
+ .return ($P1355)
.end
.namespace ["NQP";"Actions"]
-.sub "named_param" :subid("79_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1357
-.annotate "line", 479
- new $P1356, 'ExceptionHandler'
- set_addr $P1356, control_1355
- $P1356."handle_types"(58)
- push_eh $P1356
- .lex "self", self
- .lex "$/", param_1357
-.annotate "line", 480
- new $P1358, "Undef"
- .lex "$past", $P1358
- find_lex $P1359, "$/"
- unless_null $P1359, vivify_439
- new $P1359, "Hash"
- vivify_439:
- set $P1360, $P1359["param_var"]
- unless_null $P1360, vivify_440
+.sub "named_param" :subid("79_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1359
+.annotate "line", 482
+ new $P1358, 'ExceptionHandler'
+ set_addr $P1358, control_1357
+ $P1358."handle_types"(58)
+ push_eh $P1358
+ .lex "self", self
+ .lex "$/", param_1359
+.annotate "line", 483
new $P1360, "Undef"
+ .lex "$past", $P1360
+ find_lex $P1361, "$/"
+ unless_null $P1361, vivify_439
+ $P1361 = root_new ['parrot';'Hash']
+ vivify_439:
+ set $P1362, $P1361["param_var"]
+ unless_null $P1362, vivify_440
+ new $P1362, "Undef"
vivify_440:
- $P1361 = $P1360."ast"()
- store_lex "$past", $P1361
-.annotate "line", 481
- find_lex $P1362, "$past"
- find_lex $P1363, "$/"
- unless_null $P1363, vivify_441
- new $P1363, "Hash"
+ $P1363 = $P1362."ast"()
+ store_lex "$past", $P1363
+.annotate "line", 484
+ find_lex $P1364, "$past"
+ find_lex $P1365, "$/"
+ unless_null $P1365, vivify_441
+ $P1365 = root_new ['parrot';'Hash']
vivify_441:
- set $P1364, $P1363["param_var"]
- unless_null $P1364, vivify_442
- new $P1364, "Hash"
+ set $P1366, $P1365["param_var"]
+ unless_null $P1366, vivify_442
+ $P1366 = root_new ['parrot';'Hash']
vivify_442:
- set $P1365, $P1364["name"]
- unless_null $P1365, vivify_443
- new $P1365, "Undef"
+ set $P1367, $P1366["name"]
+ unless_null $P1367, vivify_443
+ new $P1367, "Undef"
vivify_443:
- set $S1366, $P1365
- $P1362."named"($S1366)
+ set $S1368, $P1367
+ $P1364."named"($S1368)
+.annotate "line", 485
+ find_lex $P1369, "$/"
+ find_lex $P1370, "$past"
+ $P1371 = $P1369."!make"($P1370)
.annotate "line", 482
- find_lex $P1367, "$/"
- find_lex $P1368, "$past"
- $P1369 = $P1367."!make"($P1368)
-.annotate "line", 479
- .return ($P1369)
- control_1355:
+ .return ($P1371)
+ control_1357:
.local pmc exception
.get_results (exception)
- getattribute $P1370, exception, "payload"
- .return ($P1370)
+ getattribute $P1372, exception, "payload"
+ .return ($P1372)
.end
.namespace ["NQP";"Actions"]
-.sub "regex_declarator" :subid("80_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1374
- .param pmc param_1375 :optional
- .param int has_param_1375 :opt_flag
-.annotate "line", 485
- .const 'Sub' $P1445 = "82_1261064035.64813"
- capture_lex $P1445
- .const 'Sub' $P1417 = "81_1261064035.64813"
- capture_lex $P1417
- new $P1373, 'ExceptionHandler'
- set_addr $P1373, control_1372
- $P1373."handle_types"(58)
- push_eh $P1373
- .lex "self", self
- .lex "$/", param_1374
- if has_param_1375, optparam_444
- new $P1376, "Undef"
- set param_1375, $P1376
+.sub "regex_declarator" :subid("80_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1376
+ .param pmc param_1377 :optional
+ .param int has_param_1377 :opt_flag
+.annotate "line", 488
+ .const 'Sub' $P1447 = "82_1267204714.47172"
+ capture_lex $P1447
+ .const 'Sub' $P1419 = "81_1267204714.47172"
+ capture_lex $P1419
+ new $P1375, 'ExceptionHandler'
+ set_addr $P1375, control_1374
+ $P1375."handle_types"(58)
+ push_eh $P1375
+ .lex "self", self
+ .lex "$/", param_1376
+ if has_param_1377, optparam_444
+ new $P1378, "Undef"
+ set param_1377, $P1378
optparam_444:
- .lex "$key", param_1375
-.annotate "line", 486
- new $P1377, "ResizablePMCArray"
- .lex "@MODIFIERS", $P1377
+ .lex "$key", param_1377
+.annotate "line", 489
+ $P1379 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@MODIFIERS", $P1379
+.annotate "line", 492
+ new $P1380, "Undef"
+ .lex "$name", $P1380
+.annotate "line", 493
+ new $P1381, "Undef"
+ .lex "$past", $P1381
.annotate "line", 489
- new $P1378, "Undef"
- .lex "$name", $P1378
-.annotate "line", 490
- new $P1379, "Undef"
- .lex "$past", $P1379
-.annotate "line", 486
- $P1380 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
+ $P1382 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
- store_lex "@MODIFIERS", $P1380
-.annotate "line", 489
- find_lex $P1381, "$/"
- unless_null $P1381, vivify_445
- new $P1381, "Hash"
+ store_lex "@MODIFIERS", $P1382
+.annotate "line", 492
+ find_lex $P1383, "$/"
+ unless_null $P1383, vivify_445
+ $P1383 = root_new ['parrot';'Hash']
vivify_445:
- set $P1382, $P1381["deflongname"]
- unless_null $P1382, vivify_446
- new $P1382, "Undef"
+ set $P1384, $P1383["deflongname"]
+ unless_null $P1384, vivify_446
+ new $P1384, "Undef"
vivify_446:
- $P1383 = $P1382."ast"()
- set $S1384, $P1383
- new $P1385, 'String'
- set $P1385, $S1384
- store_lex "$name", $P1385
- find_lex $P1386, "$past"
-.annotate "line", 491
- find_lex $P1388, "$/"
- unless_null $P1388, vivify_447
- new $P1388, "Hash"
+ $P1385 = $P1384."ast"()
+ set $S1386, $P1385
+ new $P1387, 'String'
+ set $P1387, $S1386
+ store_lex "$name", $P1387
+ find_lex $P1388, "$past"
+.annotate "line", 494
+ find_lex $P1390, "$/"
+ unless_null $P1390, vivify_447
+ $P1390 = root_new ['parrot';'Hash']
vivify_447:
- set $P1389, $P1388["proto"]
- unless_null $P1389, vivify_448
- new $P1389, "Undef"
+ set $P1391, $P1390["proto"]
+ unless_null $P1391, vivify_448
+ new $P1391, "Undef"
vivify_448:
- if $P1389, if_1387
-.annotate "line", 518
- find_lex $P1413, "$key"
- set $S1414, $P1413
- iseq $I1415, $S1414, "open"
- if $I1415, if_1412
-.annotate "line", 531
- .const 'Sub' $P1445 = "82_1261064035.64813"
- capture_lex $P1445
- $P1445()
- goto if_1412_end
- if_1412:
-.annotate "line", 518
- .const 'Sub' $P1417 = "81_1261064035.64813"
- capture_lex $P1417
- $P1417()
- if_1412_end:
- goto if_1387_end
- if_1387:
-.annotate "line", 493
- get_hll_global $P1390, ["PAST"], "Stmts"
-.annotate "line", 494
- get_hll_global $P1391, ["PAST"], "Block"
- find_lex $P1392, "$name"
-.annotate "line", 495
- get_hll_global $P1393, ["PAST"], "Op"
+ if $P1391, if_1389
+.annotate "line", 521
+ find_lex $P1415, "$key"
+ set $S1416, $P1415
+ iseq $I1417, $S1416, "open"
+ if $I1417, if_1414
+.annotate "line", 534
+ .const 'Sub' $P1447 = "82_1267204714.47172"
+ capture_lex $P1447
+ $P1447()
+ goto if_1414_end
+ if_1414:
+.annotate "line", 521
+ .const 'Sub' $P1419 = "81_1267204714.47172"
+ capture_lex $P1419
+ $P1419()
+ if_1414_end:
+ goto if_1389_end
+ if_1389:
.annotate "line", 496
- get_hll_global $P1394, ["PAST"], "Var"
- $P1395 = $P1394."new"("self" :named("name"), "register" :named("scope"))
- find_lex $P1396, "$name"
- $P1397 = $P1393."new"($P1395, $P1396, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate "line", 495
- find_lex $P1398, "$/"
- $P1399 = $P1391."new"($P1397, $P1392 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1398 :named("node"))
-.annotate "line", 505
- get_hll_global $P1400, ["PAST"], "Block"
- new $P1401, "String"
- assign $P1401, "!PREFIX__"
- find_lex $P1402, "$name"
- concat $P1403, $P1401, $P1402
-.annotate "line", 506
- get_hll_global $P1404, ["PAST"], "Op"
-.annotate "line", 507
- get_hll_global $P1405, ["PAST"], "Var"
- $P1406 = $P1405."new"("self" :named("name"), "register" :named("scope"))
- find_lex $P1407, "$name"
- $P1408 = $P1404."new"($P1406, $P1407, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate "line", 506
- find_lex $P1409, "$/"
- $P1410 = $P1400."new"($P1408, $P1403 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1409 :named("node"))
-.annotate "line", 505
- $P1411 = $P1390."new"($P1399, $P1410)
-.annotate "line", 493
- store_lex "$past", $P1411
- if_1387_end:
-.annotate "line", 545
- find_lex $P1466, "$/"
- find_lex $P1467, "$past"
- $P1468 = $P1466."!make"($P1467)
-.annotate "line", 485
- .return ($P1468)
- control_1372:
+ get_hll_global $P1392, ["PAST"], "Stmts"
+.annotate "line", 497
+ get_hll_global $P1393, ["PAST"], "Block"
+ find_lex $P1394, "$name"
+.annotate "line", 498
+ get_hll_global $P1395, ["PAST"], "Op"
+.annotate "line", 499
+ get_hll_global $P1396, ["PAST"], "Var"
+ $P1397 = $P1396."new"("self" :named("name"), "register" :named("scope"))
+ find_lex $P1398, "$name"
+ $P1399 = $P1395."new"($P1397, $P1398, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate "line", 498
+ find_lex $P1400, "$/"
+ $P1401 = $P1393."new"($P1399, $P1394 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1400 :named("node"))
+.annotate "line", 508
+ get_hll_global $P1402, ["PAST"], "Block"
+ new $P1403, "String"
+ assign $P1403, "!PREFIX__"
+ find_lex $P1404, "$name"
+ concat $P1405, $P1403, $P1404
+.annotate "line", 509
+ get_hll_global $P1406, ["PAST"], "Op"
+.annotate "line", 510
+ get_hll_global $P1407, ["PAST"], "Var"
+ $P1408 = $P1407."new"("self" :named("name"), "register" :named("scope"))
+ find_lex $P1409, "$name"
+ $P1410 = $P1406."new"($P1408, $P1409, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate "line", 509
+ find_lex $P1411, "$/"
+ $P1412 = $P1402."new"($P1410, $P1405 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1411 :named("node"))
+.annotate "line", 508
+ $P1413 = $P1392."new"($P1401, $P1412)
+.annotate "line", 496
+ store_lex "$past", $P1413
+ if_1389_end:
+.annotate "line", 548
+ find_lex $P1468, "$/"
+ find_lex $P1469, "$past"
+ $P1470 = $P1468."!make"($P1469)
+.annotate "line", 488
+ .return ($P1470)
+ control_1374:
.local pmc exception
.get_results (exception)
- getattribute $P1469, exception, "payload"
- .return ($P1469)
+ getattribute $P1471, exception, "payload"
+ .return ($P1471)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1444" :anon :subid("82_1261064035.64813") :outer("80_1261064035.64813")
-.annotate "line", 532
- new $P1446, "Undef"
- .lex "$regex", $P1446
-.annotate "line", 533
- get_hll_global $P1447, ["Regex";"P6Regex";"Actions"], "buildsub"
- find_lex $P1448, "$/"
- unless_null $P1448, vivify_449
- new $P1448, "Hash"
+.sub "_block1446" :anon :subid("82_1267204714.47172") :outer("80_1267204714.47172")
+.annotate "line", 535
+ new $P1448, "Undef"
+ .lex "$regex", $P1448
+.annotate "line", 536
+ get_hll_global $P1449, ["Regex";"P6Regex";"Actions"], "buildsub"
+ find_lex $P1450, "$/"
+ unless_null $P1450, vivify_449
+ $P1450 = root_new ['parrot';'Hash']
vivify_449:
- set $P1449, $P1448["p6regex"]
- unless_null $P1449, vivify_450
- new $P1449, "Undef"
+ set $P1451, $P1450["p6regex"]
+ unless_null $P1451, vivify_450
+ new $P1451, "Undef"
vivify_450:
- $P1450 = $P1449."ast"()
- get_global $P1451, "@BLOCK"
- $P1452 = $P1451."shift"()
- $P1453 = $P1447($P1450, $P1452)
- store_lex "$regex", $P1453
-.annotate "line", 534
- find_lex $P1454, "$regex"
- find_lex $P1455, "$name"
- $P1454."name"($P1455)
-.annotate "line", 536
- get_hll_global $P1456, ["PAST"], "Op"
-.annotate "line", 538
- get_hll_global $P1457, ["PAST"], "Var"
- new $P1458, "ResizablePMCArray"
- push $P1458, "Regex"
- $P1459 = $P1457."new"("Method" :named("name"), $P1458 :named("namespace"), "package" :named("scope"))
- find_lex $P1460, "$regex"
- $P1461 = $P1456."new"($P1459, $P1460, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate "line", 536
- store_lex "$past", $P1461
-.annotate "line", 542
+ $P1452 = $P1451."ast"()
+ get_global $P1453, "@BLOCK"
+ $P1454 = $P1453."shift"()
+ $P1455 = $P1449($P1452, $P1454)
+ store_lex "$regex", $P1455
+.annotate "line", 537
+ find_lex $P1456, "$regex"
+ find_lex $P1457, "$name"
+ $P1456."name"($P1457)
+.annotate "line", 539
+ get_hll_global $P1458, ["PAST"], "Op"
+.annotate "line", 541
+ get_hll_global $P1459, ["PAST"], "Var"
+ new $P1460, "ResizablePMCArray"
+ push $P1460, "Regex"
+ $P1461 = $P1459."new"("Method" :named("name"), $P1460 :named("namespace"), "package" :named("scope"))
find_lex $P1462, "$regex"
- find_lex $P1463, "$past"
- unless_null $P1463, vivify_451
- new $P1463, "Hash"
+ $P1463 = $P1458."new"($P1461, $P1462, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate "line", 539
store_lex "$past", $P1463
+.annotate "line", 545
+ find_lex $P1464, "$regex"
+ find_lex $P1465, "$past"
+ unless_null $P1465, vivify_451
+ $P1465 = root_new ['parrot';'Hash']
+ store_lex "$past", $P1465
vivify_451:
- set $P1463["sink"], $P1462
-.annotate "line", 543
- find_lex $P1464, "@MODIFIERS"
- $P1465 = $P1464."shift"()
-.annotate "line", 531
- .return ($P1465)
+ set $P1465["sink"], $P1464
+.annotate "line", 546
+ find_lex $P1466, "@MODIFIERS"
+ $P1467 = $P1466."shift"()
+.annotate "line", 534
+ .return ($P1467)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1416" :anon :subid("81_1261064035.64813") :outer("80_1261064035.64813")
-.annotate "line", 519
- new $P1418, "Hash"
- .lex "%h", $P1418
-.annotate "line", 518
- find_lex $P1419, "%h"
-.annotate "line", 520
- find_lex $P1421, "$/"
- unless_null $P1421, vivify_452
- new $P1421, "Hash"
+.sub "_block1418" :anon :subid("81_1267204714.47172") :outer("80_1267204714.47172")
+.annotate "line", 522
+ $P1420 = root_new ['parrot';'Hash']
+ .lex "%h", $P1420
+.annotate "line", 521
+ find_lex $P1421, "%h"
+.annotate "line", 523
+ find_lex $P1423, "$/"
+ unless_null $P1423, vivify_452
+ $P1423 = root_new ['parrot';'Hash']
vivify_452:
- set $P1422, $P1421["sym"]
- unless_null $P1422, vivify_453
- new $P1422, "Undef"
+ set $P1424, $P1423["sym"]
+ unless_null $P1424, vivify_453
+ new $P1424, "Undef"
vivify_453:
- set $S1423, $P1422
- iseq $I1424, $S1423, "token"
- unless $I1424, if_1420_end
- new $P1425, "Integer"
- assign $P1425, 1
- find_lex $P1426, "%h"
- unless_null $P1426, vivify_454
- new $P1426, "Hash"
- store_lex "%h", $P1426
+ set $S1425, $P1424
+ iseq $I1426, $S1425, "token"
+ unless $I1426, if_1422_end
+ new $P1427, "Integer"
+ assign $P1427, 1
+ find_lex $P1428, "%h"
+ unless_null $P1428, vivify_454
+ $P1428 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1428
vivify_454:
- set $P1426["r"], $P1425
- if_1420_end:
-.annotate "line", 521
- find_lex $P1428, "$/"
- unless_null $P1428, vivify_455
- new $P1428, "Hash"
+ set $P1428["r"], $P1427
+ if_1422_end:
+.annotate "line", 524
+ find_lex $P1430, "$/"
+ unless_null $P1430, vivify_455
+ $P1430 = root_new ['parrot';'Hash']
vivify_455:
- set $P1429, $P1428["sym"]
- unless_null $P1429, vivify_456
- new $P1429, "Undef"
+ set $P1431, $P1430["sym"]
+ unless_null $P1431, vivify_456
+ new $P1431, "Undef"
vivify_456:
- set $S1430, $P1429
- iseq $I1431, $S1430, "rule"
- unless $I1431, if_1427_end
- new $P1432, "Integer"
- assign $P1432, 1
- find_lex $P1433, "%h"
- unless_null $P1433, vivify_457
- new $P1433, "Hash"
- store_lex "%h", $P1433
- vivify_457:
- set $P1433["r"], $P1432
+ set $S1432, $P1431
+ iseq $I1433, $S1432, "rule"
+ unless $I1433, if_1429_end
new $P1434, "Integer"
assign $P1434, 1
find_lex $P1435, "%h"
- unless_null $P1435, vivify_458
- new $P1435, "Hash"
+ unless_null $P1435, vivify_457
+ $P1435 = root_new ['parrot';'Hash']
store_lex "%h", $P1435
- vivify_458:
- set $P1435["s"], $P1434
- if_1427_end:
-.annotate "line", 522
- find_lex $P1436, "@MODIFIERS"
+ vivify_457:
+ set $P1435["r"], $P1434
+ new $P1436, "Integer"
+ assign $P1436, 1
find_lex $P1437, "%h"
- $P1436."unshift"($P1437)
-.annotate "line", 523
+ unless_null $P1437, vivify_458
+ $P1437 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1437
+ vivify_458:
+ set $P1437["s"], $P1436
+ if_1429_end:
+.annotate "line", 525
+ find_lex $P1438, "@MODIFIERS"
+ find_lex $P1439, "%h"
+ $P1438."unshift"($P1439)
+.annotate "line", 526
$P0 = find_lex '$name'
set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-.annotate "line", 527
- get_global $P1438, "@BLOCK"
- unless_null $P1438, vivify_459
- new $P1438, "ResizablePMCArray"
- vivify_459:
- set $P1439, $P1438[0]
- unless_null $P1439, vivify_460
- new $P1439, "Undef"
- vivify_460:
- $P1439."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate "line", 528
+.annotate "line", 530
get_global $P1440, "@BLOCK"
- unless_null $P1440, vivify_461
- new $P1440, "ResizablePMCArray"
- vivify_461:
+ unless_null $P1440, vivify_459
+ $P1440 = root_new ['parrot';'ResizablePMCArray']
+ vivify_459:
set $P1441, $P1440[0]
- unless_null $P1441, vivify_462
+ unless_null $P1441, vivify_460
new $P1441, "Undef"
+ vivify_460:
+ $P1441."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate "line", 531
+ get_global $P1442, "@BLOCK"
+ unless_null $P1442, vivify_461
+ $P1442 = root_new ['parrot';'ResizablePMCArray']
+ vivify_461:
+ set $P1443, $P1442[0]
+ unless_null $P1443, vivify_462
+ new $P1443, "Undef"
vivify_462:
- $P1441."symbol"("$/", "lexical" :named("scope"))
-.annotate "line", 529
- new $P1442, "Exception"
- set $P1442['type'], 58
- new $P1443, "Integer"
- assign $P1443, 0
- setattribute $P1442, 'payload', $P1443
- throw $P1442
-.annotate "line", 518
+ $P1443."symbol"("$/", "lexical" :named("scope"))
+.annotate "line", 532
+ new $P1444, "Exception"
+ set $P1444['type'], 58
+ new $P1445, "Integer"
+ assign $P1445, 0
+ setattribute $P1444, 'payload', $P1445
+ throw $P1444
+.annotate "line", 521
.return ()
.end
.namespace ["NQP";"Actions"]
-.sub "dotty" :subid("83_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1473
-.annotate "line", 549
- new $P1472, 'ExceptionHandler'
- set_addr $P1472, control_1471
- $P1472."handle_types"(58)
- push_eh $P1472
+.sub "dotty" :subid("83_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1475
+.annotate "line", 552
+ new $P1474, 'ExceptionHandler'
+ set_addr $P1474, control_1473
+ $P1474."handle_types"(58)
+ push_eh $P1474
.lex "self", self
- .lex "$/", param_1473
-.annotate "line", 550
- new $P1474, "Undef"
- .lex "$past", $P1474
- find_lex $P1477, "$/"
- unless_null $P1477, vivify_463
- new $P1477, "Hash"
+ .lex "$/", param_1475
+.annotate "line", 553
+ new $P1476, "Undef"
+ .lex "$past", $P1476
+ find_lex $P1479, "$/"
+ unless_null $P1479, vivify_463
+ $P1479 = root_new ['parrot';'Hash']
vivify_463:
- set $P1478, $P1477["args"]
- unless_null $P1478, vivify_464
- new $P1478, "Undef"
+ set $P1480, $P1479["args"]
+ unless_null $P1480, vivify_464
+ new $P1480, "Undef"
vivify_464:
- if $P1478, if_1476
- get_hll_global $P1483, ["PAST"], "Op"
- find_lex $P1484, "$/"
- $P1485 = $P1483."new"($P1484 :named("node"))
- set $P1475, $P1485
- goto if_1476_end
- if_1476:
- find_lex $P1479, "$/"
- unless_null $P1479, vivify_465
- new $P1479, "Hash"
+ if $P1480, if_1478
+ get_hll_global $P1485, ["PAST"], "Op"
+ find_lex $P1486, "$/"
+ $P1487 = $P1485."new"($P1486 :named("node"))
+ set $P1477, $P1487
+ goto if_1478_end
+ if_1478:
+ find_lex $P1481, "$/"
+ unless_null $P1481, vivify_465
+ $P1481 = root_new ['parrot';'Hash']
vivify_465:
- set $P1480, $P1479["args"]
- unless_null $P1480, vivify_466
- new $P1480, "ResizablePMCArray"
+ set $P1482, $P1481["args"]
+ unless_null $P1482, vivify_466
+ $P1482 = root_new ['parrot';'ResizablePMCArray']
vivify_466:
- set $P1481, $P1480[0]
- unless_null $P1481, vivify_467
- new $P1481, "Undef"
+ set $P1483, $P1482[0]
+ unless_null $P1483, vivify_467
+ new $P1483, "Undef"
vivify_467:
- $P1482 = $P1481."ast"()
- set $P1475, $P1482
- if_1476_end:
- store_lex "$past", $P1475
-.annotate "line", 551
- find_lex $P1486, "$past"
- find_lex $P1489, "$/"
- unless_null $P1489, vivify_468
- new $P1489, "Hash"
+ $P1484 = $P1483."ast"()
+ set $P1477, $P1484
+ if_1478_end:
+ store_lex "$past", $P1477
+.annotate "line", 554
+ find_lex $P1488, "$past"
+ find_lex $P1491, "$/"
+ unless_null $P1491, vivify_468
+ $P1491 = root_new ['parrot';'Hash']
vivify_468:
- set $P1490, $P1489["quote"]
- unless_null $P1490, vivify_469
- new $P1490, "Undef"
+ set $P1492, $P1491["quote"]
+ unless_null $P1492, vivify_469
+ new $P1492, "Undef"
vivify_469:
- if $P1490, if_1488
- find_lex $P1494, "$/"
- unless_null $P1494, vivify_470
- new $P1494, "Hash"
+ if $P1492, if_1490
+ find_lex $P1496, "$/"
+ unless_null $P1496, vivify_470
+ $P1496 = root_new ['parrot';'Hash']
vivify_470:
- set $P1495, $P1494["longname"]
- unless_null $P1495, vivify_471
- new $P1495, "Undef"
+ set $P1497, $P1496["longname"]
+ unless_null $P1497, vivify_471
+ new $P1497, "Undef"
vivify_471:
- set $S1496, $P1495
- new $P1487, 'String'
- set $P1487, $S1496
- goto if_1488_end
- if_1488:
- find_lex $P1491, "$/"
- unless_null $P1491, vivify_472
- new $P1491, "Hash"
+ set $S1498, $P1497
+ new $P1489, 'String'
+ set $P1489, $S1498
+ goto if_1490_end
+ if_1490:
+ find_lex $P1493, "$/"
+ unless_null $P1493, vivify_472
+ $P1493 = root_new ['parrot';'Hash']
vivify_472:
- set $P1492, $P1491["quote"]
- unless_null $P1492, vivify_473
- new $P1492, "Undef"
+ set $P1494, $P1493["quote"]
+ unless_null $P1494, vivify_473
+ new $P1494, "Undef"
vivify_473:
- $P1493 = $P1492."ast"()
- set $P1487, $P1493
- if_1488_end:
- $P1486."name"($P1487)
-.annotate "line", 552
- find_lex $P1497, "$past"
- $P1497."pasttype"("callmethod")
-.annotate "line", 553
- find_lex $P1498, "$/"
+ $P1495 = $P1494."ast"()
+ set $P1489, $P1495
+ if_1490_end:
+ $P1488."name"($P1489)
+.annotate "line", 555
find_lex $P1499, "$past"
- $P1500 = $P1498."!make"($P1499)
-.annotate "line", 549
- .return ($P1500)
- control_1471:
+ $P1499."pasttype"("callmethod")
+.annotate "line", 556
+ find_lex $P1500, "$/"
+ find_lex $P1501, "$past"
+ $P1502 = $P1500."!make"($P1501)
+.annotate "line", 552
+ .return ($P1502)
+ control_1473:
.local pmc exception
.get_results (exception)
- getattribute $P1501, exception, "payload"
- .return ($P1501)
+ getattribute $P1503, exception, "payload"
+ .return ($P1503)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<self>" :subid("84_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1505
-.annotate "line", 558
- new $P1504, 'ExceptionHandler'
- set_addr $P1504, control_1503
- $P1504."handle_types"(58)
- push_eh $P1504
+.sub "term:sym<self>" :subid("84_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1507
+.annotate "line", 561
+ new $P1506, 'ExceptionHandler'
+ set_addr $P1506, control_1505
+ $P1506."handle_types"(58)
+ push_eh $P1506
.lex "self", self
- .lex "$/", param_1505
-.annotate "line", 559
- find_lex $P1506, "$/"
- get_hll_global $P1507, ["PAST"], "Var"
- $P1508 = $P1507."new"("self" :named("name"))
- $P1509 = $P1506."!make"($P1508)
-.annotate "line", 558
- .return ($P1509)
- control_1503:
+ .lex "$/", param_1507
+.annotate "line", 562
+ find_lex $P1508, "$/"
+ get_hll_global $P1509, ["PAST"], "Var"
+ $P1510 = $P1509."new"("self" :named("name"))
+ $P1511 = $P1508."!make"($P1510)
+.annotate "line", 561
+ .return ($P1511)
+ control_1505:
.local pmc exception
.get_results (exception)
- getattribute $P1510, exception, "payload"
- .return ($P1510)
+ getattribute $P1512, exception, "payload"
+ .return ($P1512)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>" :subid("85_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1514
-.annotate "line", 562
- new $P1513, 'ExceptionHandler'
- set_addr $P1513, control_1512
- $P1513."handle_types"(58)
- push_eh $P1513
- .lex "self", self
- .lex "$/", param_1514
-.annotate "line", 563
- new $P1515, "Undef"
- .lex "$past", $P1515
- find_lex $P1516, "$/"
- unless_null $P1516, vivify_474
- new $P1516, "Hash"
- vivify_474:
- set $P1517, $P1516["args"]
- unless_null $P1517, vivify_475
+.sub "term:sym<identifier>" :subid("85_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1516
+.annotate "line", 565
+ new $P1515, 'ExceptionHandler'
+ set_addr $P1515, control_1514
+ $P1515."handle_types"(58)
+ push_eh $P1515
+ .lex "self", self
+ .lex "$/", param_1516
+.annotate "line", 566
new $P1517, "Undef"
+ .lex "$past", $P1517
+ find_lex $P1518, "$/"
+ unless_null $P1518, vivify_474
+ $P1518 = root_new ['parrot';'Hash']
+ vivify_474:
+ set $P1519, $P1518["args"]
+ unless_null $P1519, vivify_475
+ new $P1519, "Undef"
vivify_475:
- $P1518 = $P1517."ast"()
- store_lex "$past", $P1518
-.annotate "line", 564
- find_lex $P1519, "$past"
- find_lex $P1520, "$/"
- unless_null $P1520, vivify_476
- new $P1520, "Hash"
+ $P1520 = $P1519."ast"()
+ store_lex "$past", $P1520
+.annotate "line", 567
+ find_lex $P1521, "$past"
+ find_lex $P1522, "$/"
+ unless_null $P1522, vivify_476
+ $P1522 = root_new ['parrot';'Hash']
vivify_476:
- set $P1521, $P1520["identifier"]
- unless_null $P1521, vivify_477
- new $P1521, "Undef"
+ set $P1523, $P1522["identifier"]
+ unless_null $P1523, vivify_477
+ new $P1523, "Undef"
vivify_477:
- set $S1522, $P1521
- $P1519."name"($S1522)
+ set $S1524, $P1523
+ $P1521."name"($S1524)
+.annotate "line", 568
+ find_lex $P1525, "$/"
+ find_lex $P1526, "$past"
+ $P1527 = $P1525."!make"($P1526)
.annotate "line", 565
- find_lex $P1523, "$/"
- find_lex $P1524, "$past"
- $P1525 = $P1523."!make"($P1524)
-.annotate "line", 562
- .return ($P1525)
- control_1512:
+ .return ($P1527)
+ control_1514:
.local pmc exception
.get_results (exception)
- getattribute $P1526, exception, "payload"
- .return ($P1526)
+ getattribute $P1528, exception, "payload"
+ .return ($P1528)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<name>" :subid("86_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1530
-.annotate "line", 568
- new $P1529, 'ExceptionHandler'
- set_addr $P1529, control_1528
- $P1529."handle_types"(58)
- push_eh $P1529
- .lex "self", self
- .lex "$/", param_1530
-.annotate "line", 569
- new $P1531, "ResizablePMCArray"
- .lex "@ns", $P1531
-.annotate "line", 570
- new $P1532, "Undef"
- .lex "$name", $P1532
+.sub "term:sym<name>" :subid("86_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1532
+.annotate "line", 571
+ new $P1531, 'ExceptionHandler'
+ set_addr $P1531, control_1530
+ $P1531."handle_types"(58)
+ push_eh $P1531
+ .lex "self", self
+ .lex "$/", param_1532
.annotate "line", 572
- new $P1533, "Undef"
- .lex "$var", $P1533
-.annotate "line", 574
+ $P1533 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@ns", $P1533
+.annotate "line", 573
new $P1534, "Undef"
- .lex "$past", $P1534
-.annotate "line", 569
- find_lex $P1535, "$/"
- unless_null $P1535, vivify_478
- new $P1535, "Hash"
+ .lex "$name", $P1534
+.annotate "line", 575
+ new $P1535, "Undef"
+ .lex "$var", $P1535
+.annotate "line", 577
+ new $P1536, "Undef"
+ .lex "$past", $P1536
+.annotate "line", 572
+ find_lex $P1537, "$/"
+ unless_null $P1537, vivify_478
+ $P1537 = root_new ['parrot';'Hash']
vivify_478:
- set $P1536, $P1535["name"]
- unless_null $P1536, vivify_479
- new $P1536, "Hash"
+ set $P1538, $P1537["name"]
+ unless_null $P1538, vivify_479
+ $P1538 = root_new ['parrot';'Hash']
vivify_479:
- set $P1537, $P1536["identifier"]
- unless_null $P1537, vivify_480
- new $P1537, "Undef"
+ set $P1539, $P1538["identifier"]
+ unless_null $P1539, vivify_480
+ new $P1539, "Undef"
vivify_480:
- clone $P1538, $P1537
- store_lex "@ns", $P1538
-.annotate "line", 570
- find_lex $P1539, "@ns"
- $P1540 = $P1539."pop"()
- store_lex "$name", $P1540
-.annotate "line", 571
- find_lex $P1544, "@ns"
- if $P1544, if_1543
- set $P1542, $P1544
- goto if_1543_end
- if_1543:
- find_lex $P1545, "@ns"
- unless_null $P1545, vivify_481
- new $P1545, "ResizablePMCArray"
+ clone $P1540, $P1539
+ store_lex "@ns", $P1540
+.annotate "line", 573
+ find_lex $P1541, "@ns"
+ $P1542 = $P1541."pop"()
+ store_lex "$name", $P1542
+.annotate "line", 574
+ find_lex $P1546, "@ns"
+ if $P1546, if_1545
+ set $P1544, $P1546
+ goto if_1545_end
+ if_1545:
+ find_lex $P1547, "@ns"
+ unless_null $P1547, vivify_481
+ $P1547 = root_new ['parrot';'ResizablePMCArray']
vivify_481:
- set $P1546, $P1545[0]
- unless_null $P1546, vivify_482
- new $P1546, "Undef"
+ set $P1548, $P1547[0]
+ unless_null $P1548, vivify_482
+ new $P1548, "Undef"
vivify_482:
- set $S1547, $P1546
- iseq $I1548, $S1547, "GLOBAL"
- new $P1542, 'Integer'
- set $P1542, $I1548
+ set $S1549, $P1548
+ iseq $I1550, $S1549, "GLOBAL"
+ new $P1544, 'Integer'
+ set $P1544, $I1550
+ if_1545_end:
+ unless $P1544, if_1543_end
+ find_lex $P1551, "@ns"
+ $P1551."shift"()
if_1543_end:
- unless $P1542, if_1541_end
- find_lex $P1549, "@ns"
- $P1549."shift"()
- if_1541_end:
-.annotate "line", 573
- get_hll_global $P1550, ["PAST"], "Var"
- find_lex $P1551, "$name"
- set $S1552, $P1551
- find_lex $P1553, "@ns"
- $P1554 = $P1550."new"($S1552 :named("name"), $P1553 :named("namespace"), "package" :named("scope"))
- store_lex "$var", $P1554
-.annotate "line", 574
- find_lex $P1555, "$var"
- store_lex "$past", $P1555
-.annotate "line", 575
- find_lex $P1557, "$/"
- unless_null $P1557, vivify_483
- new $P1557, "Hash"
- vivify_483:
- set $P1558, $P1557["args"]
- unless_null $P1558, vivify_484
- new $P1558, "Undef"
- vivify_484:
- unless $P1558, if_1556_end
.annotate "line", 576
+ get_hll_global $P1552, ["PAST"], "Var"
+ find_lex $P1553, "$name"
+ set $S1554, $P1553
+ find_lex $P1555, "@ns"
+ $P1556 = $P1552."new"($S1554 :named("name"), $P1555 :named("namespace"), "package" :named("scope"))
+ store_lex "$var", $P1556
+.annotate "line", 577
+ find_lex $P1557, "$var"
+ store_lex "$past", $P1557
+.annotate "line", 578
find_lex $P1559, "$/"
- unless_null $P1559, vivify_485
- new $P1559, "Hash"
- vivify_485:
+ unless_null $P1559, vivify_483
+ $P1559 = root_new ['parrot';'Hash']
+ vivify_483:
set $P1560, $P1559["args"]
- unless_null $P1560, vivify_486
- new $P1560, "ResizablePMCArray"
+ unless_null $P1560, vivify_484
+ new $P1560, "Undef"
+ vivify_484:
+ unless $P1560, if_1558_end
+.annotate "line", 579
+ find_lex $P1561, "$/"
+ unless_null $P1561, vivify_485
+ $P1561 = root_new ['parrot';'Hash']
+ vivify_485:
+ set $P1562, $P1561["args"]
+ unless_null $P1562, vivify_486
+ $P1562 = root_new ['parrot';'ResizablePMCArray']
vivify_486:
- set $P1561, $P1560[0]
- unless_null $P1561, vivify_487
- new $P1561, "Undef"
+ set $P1563, $P1562[0]
+ unless_null $P1563, vivify_487
+ new $P1563, "Undef"
vivify_487:
- $P1562 = $P1561."ast"()
- store_lex "$past", $P1562
-.annotate "line", 577
- find_lex $P1563, "$past"
- find_lex $P1564, "$var"
- $P1563."unshift"($P1564)
- if_1556_end:
-.annotate "line", 579
- find_lex $P1565, "$/"
- find_lex $P1566, "$past"
- $P1567 = $P1565."!make"($P1566)
-.annotate "line", 568
- .return ($P1567)
- control_1528:
+ $P1564 = $P1563."ast"()
+ store_lex "$past", $P1564
+.annotate "line", 580
+ find_lex $P1565, "$past"
+ find_lex $P1566, "$var"
+ $P1565."unshift"($P1566)
+ if_1558_end:
+.annotate "line", 582
+ find_lex $P1567, "$/"
+ find_lex $P1568, "$past"
+ $P1569 = $P1567."!make"($P1568)
+.annotate "line", 571
+ .return ($P1569)
+ control_1530:
.local pmc exception
.get_results (exception)
- getattribute $P1568, exception, "payload"
- .return ($P1568)
+ getattribute $P1570, exception, "payload"
+ .return ($P1570)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>" :subid("87_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1572
-.annotate "line", 582
- new $P1571, 'ExceptionHandler'
- set_addr $P1571, control_1570
- $P1571."handle_types"(58)
- push_eh $P1571
- .lex "self", self
- .lex "$/", param_1572
-.annotate "line", 583
- new $P1573, "Undef"
- .lex "$past", $P1573
-.annotate "line", 584
- new $P1574, "Undef"
- .lex "$pirop", $P1574
-.annotate "line", 583
- find_lex $P1577, "$/"
- unless_null $P1577, vivify_488
- new $P1577, "Hash"
+.sub "term:sym<pir::op>" :subid("87_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1574
+.annotate "line", 585
+ new $P1573, 'ExceptionHandler'
+ set_addr $P1573, control_1572
+ $P1573."handle_types"(58)
+ push_eh $P1573
+ .lex "self", self
+ .lex "$/", param_1574
+.annotate "line", 586
+ new $P1575, "Undef"
+ .lex "$past", $P1575
+.annotate "line", 587
+ new $P1576, "Undef"
+ .lex "$pirop", $P1576
+.annotate "line", 586
+ find_lex $P1579, "$/"
+ unless_null $P1579, vivify_488
+ $P1579 = root_new ['parrot';'Hash']
vivify_488:
- set $P1578, $P1577["args"]
- unless_null $P1578, vivify_489
- new $P1578, "Undef"
+ set $P1580, $P1579["args"]
+ unless_null $P1580, vivify_489
+ new $P1580, "Undef"
vivify_489:
- if $P1578, if_1576
- get_hll_global $P1583, ["PAST"], "Op"
- find_lex $P1584, "$/"
- $P1585 = $P1583."new"($P1584 :named("node"))
- set $P1575, $P1585
- goto if_1576_end
- if_1576:
- find_lex $P1579, "$/"
- unless_null $P1579, vivify_490
- new $P1579, "Hash"
+ if $P1580, if_1578
+ get_hll_global $P1585, ["PAST"], "Op"
+ find_lex $P1586, "$/"
+ $P1587 = $P1585."new"($P1586 :named("node"))
+ set $P1577, $P1587
+ goto if_1578_end
+ if_1578:
+ find_lex $P1581, "$/"
+ unless_null $P1581, vivify_490
+ $P1581 = root_new ['parrot';'Hash']
vivify_490:
- set $P1580, $P1579["args"]
- unless_null $P1580, vivify_491
- new $P1580, "ResizablePMCArray"
+ set $P1582, $P1581["args"]
+ unless_null $P1582, vivify_491
+ $P1582 = root_new ['parrot';'ResizablePMCArray']
vivify_491:
- set $P1581, $P1580[0]
- unless_null $P1581, vivify_492
- new $P1581, "Undef"
+ set $P1583, $P1582[0]
+ unless_null $P1583, vivify_492
+ new $P1583, "Undef"
vivify_492:
- $P1582 = $P1581."ast"()
- set $P1575, $P1582
- if_1576_end:
- store_lex "$past", $P1575
-.annotate "line", 584
- find_lex $P1586, "$/"
- unless_null $P1586, vivify_493
- new $P1586, "Hash"
+ $P1584 = $P1583."ast"()
+ set $P1577, $P1584
+ if_1578_end:
+ store_lex "$past", $P1577
+.annotate "line", 587
+ find_lex $P1588, "$/"
+ unless_null $P1588, vivify_493
+ $P1588 = root_new ['parrot';'Hash']
vivify_493:
- set $P1587, $P1586["op"]
- unless_null $P1587, vivify_494
- new $P1587, "Undef"
+ set $P1589, $P1588["op"]
+ unless_null $P1589, vivify_494
+ new $P1589, "Undef"
vivify_494:
- set $S1588, $P1587
- new $P1589, 'String'
- set $P1589, $S1588
- store_lex "$pirop", $P1589
-.annotate "line", 585
+ set $S1590, $P1589
+ new $P1591, 'String'
+ set $P1591, $S1590
+ store_lex "$pirop", $P1591
+.annotate "line", 588
$P0 = find_lex '$pirop'
$S0 = $P0
$P0 = split '__', $S0
$S0 = join ' ', $P0
- $P1590 = box $S0
+ $P1592 = box $S0
- store_lex "$pirop", $P1590
-.annotate "line", 592
- find_lex $P1591, "$past"
- find_lex $P1592, "$pirop"
- $P1591."pirop"($P1592)
-.annotate "line", 593
+ store_lex "$pirop", $P1592
+.annotate "line", 595
find_lex $P1593, "$past"
- $P1593."pasttype"("pirop")
-.annotate "line", 594
- find_lex $P1594, "$/"
+ find_lex $P1594, "$pirop"
+ $P1593."pirop"($P1594)
+.annotate "line", 596
find_lex $P1595, "$past"
- $P1596 = $P1594."!make"($P1595)
-.annotate "line", 582
- .return ($P1596)
- control_1570:
+ $P1595."pasttype"("pirop")
+.annotate "line", 597
+ find_lex $P1596, "$/"
+ find_lex $P1597, "$past"
+ $P1598 = $P1596."!make"($P1597)
+.annotate "line", 585
+ .return ($P1598)
+ control_1572:
.local pmc exception
.get_results (exception)
- getattribute $P1597, exception, "payload"
- .return ($P1597)
+ getattribute $P1599, exception, "payload"
+ .return ($P1599)
.end
.namespace ["NQP";"Actions"]
-.sub "args" :subid("88_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1601
-.annotate "line", 597
- new $P1600, 'ExceptionHandler'
- set_addr $P1600, control_1599
- $P1600."handle_types"(58)
- push_eh $P1600
- .lex "self", self
- .lex "$/", param_1601
- find_lex $P1602, "$/"
- find_lex $P1603, "$/"
- unless_null $P1603, vivify_495
- new $P1603, "Hash"
+.sub "args" :subid("88_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1603
+.annotate "line", 600
+ new $P1602, 'ExceptionHandler'
+ set_addr $P1602, control_1601
+ $P1602."handle_types"(58)
+ push_eh $P1602
+ .lex "self", self
+ .lex "$/", param_1603
+ find_lex $P1604, "$/"
+ find_lex $P1605, "$/"
+ unless_null $P1605, vivify_495
+ $P1605 = root_new ['parrot';'Hash']
vivify_495:
- set $P1604, $P1603["arglist"]
- unless_null $P1604, vivify_496
- new $P1604, "Undef"
+ set $P1606, $P1605["arglist"]
+ unless_null $P1606, vivify_496
+ new $P1606, "Undef"
vivify_496:
- $P1605 = $P1604."ast"()
- $P1606 = $P1602."!make"($P1605)
- .return ($P1606)
- control_1599:
+ $P1607 = $P1606."ast"()
+ $P1608 = $P1604."!make"($P1607)
+ .return ($P1608)
+ control_1601:
.local pmc exception
.get_results (exception)
- getattribute $P1607, exception, "payload"
- .return ($P1607)
+ getattribute $P1609, exception, "payload"
+ .return ($P1609)
.end
.namespace ["NQP";"Actions"]
-.sub "arglist" :subid("89_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1611
-.annotate "line", 599
- .const 'Sub' $P1622 = "90_1261064035.64813"
- capture_lex $P1622
- new $P1610, 'ExceptionHandler'
- set_addr $P1610, control_1609
- $P1610."handle_types"(58)
- push_eh $P1610
+.sub "arglist" :subid("89_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1613
+.annotate "line", 602
+ .const 'Sub' $P1624 = "90_1267204714.47172"
+ capture_lex $P1624
+ new $P1612, 'ExceptionHandler'
+ set_addr $P1612, control_1611
+ $P1612."handle_types"(58)
+ push_eh $P1612
.lex "self", self
- .lex "$/", param_1611
-.annotate "line", 600
- new $P1612, "Undef"
- .lex "$past", $P1612
-.annotate "line", 608
- new $P1613, "Undef"
- .lex "$i", $P1613
-.annotate "line", 609
+ .lex "$/", param_1613
+.annotate "line", 603
new $P1614, "Undef"
- .lex "$n", $P1614
-.annotate "line", 600
- get_hll_global $P1615, ["PAST"], "Op"
- find_lex $P1616, "$/"
- $P1617 = $P1615."new"("call" :named("pasttype"), $P1616 :named("node"))
- store_lex "$past", $P1617
-.annotate "line", 601
- find_lex $P1619, "$/"
- unless_null $P1619, vivify_497
- new $P1619, "Hash"
+ .lex "$past", $P1614
+.annotate "line", 611
+ new $P1615, "Undef"
+ .lex "$i", $P1615
+.annotate "line", 612
+ new $P1616, "Undef"
+ .lex "$n", $P1616
+.annotate "line", 603
+ get_hll_global $P1617, ["PAST"], "Op"
+ find_lex $P1618, "$/"
+ $P1619 = $P1617."new"("call" :named("pasttype"), $P1618 :named("node"))
+ store_lex "$past", $P1619
+.annotate "line", 604
+ find_lex $P1621, "$/"
+ unless_null $P1621, vivify_497
+ $P1621 = root_new ['parrot';'Hash']
vivify_497:
- set $P1620, $P1619["EXPR"]
- unless_null $P1620, vivify_498
- new $P1620, "Undef"
+ set $P1622, $P1621["EXPR"]
+ unless_null $P1622, vivify_498
+ new $P1622, "Undef"
vivify_498:
- unless $P1620, if_1618_end
- .const 'Sub' $P1622 = "90_1261064035.64813"
- capture_lex $P1622
- $P1622()
- if_1618_end:
-.annotate "line", 608
- new $P1654, "Integer"
- assign $P1654, 0
- store_lex "$i", $P1654
-.annotate "line", 609
- find_lex $P1655, "$past"
- $P1656 = $P1655."list"()
- set $N1657, $P1656
- new $P1658, 'Float'
- set $P1658, $N1657
- store_lex "$n", $P1658
-.annotate "line", 610
- new $P1686, 'ExceptionHandler'
- set_addr $P1686, loop1685_handler
- $P1686."handle_types"(65, 67, 66)
- push_eh $P1686
- loop1685_test:
- find_lex $P1659, "$i"
- set $N1660, $P1659
- find_lex $P1661, "$n"
- set $N1662, $P1661
- islt $I1663, $N1660, $N1662
- unless $I1663, loop1685_done
- loop1685_redo:
+ unless $P1622, if_1620_end
+ .const 'Sub' $P1624 = "90_1267204714.47172"
+ capture_lex $P1624
+ $P1624()
+ if_1620_end:
.annotate "line", 611
- find_lex $P1665, "$i"
- set $I1666, $P1665
- find_lex $P1667, "$past"
- unless_null $P1667, vivify_502
- new $P1667, "ResizablePMCArray"
+ new $P1656, "Integer"
+ assign $P1656, 0
+ store_lex "$i", $P1656
+.annotate "line", 612
+ find_lex $P1657, "$past"
+ $P1658 = $P1657."list"()
+ set $N1659, $P1658
+ new $P1660, 'Float'
+ set $P1660, $N1659
+ store_lex "$n", $P1660
+.annotate "line", 613
+ new $P1688, 'ExceptionHandler'
+ set_addr $P1688, loop1687_handler
+ $P1688."handle_types"(65, 67, 66)
+ push_eh $P1688
+ loop1687_test:
+ find_lex $P1661, "$i"
+ set $N1662, $P1661
+ find_lex $P1663, "$n"
+ set $N1664, $P1663
+ islt $I1665, $N1662, $N1664
+ unless $I1665, loop1687_done
+ loop1687_redo:
+.annotate "line", 614
+ find_lex $P1667, "$i"
+ set $I1668, $P1667
+ find_lex $P1669, "$past"
+ unless_null $P1669, vivify_502
+ $P1669 = root_new ['parrot';'ResizablePMCArray']
vivify_502:
- set $P1668, $P1667[$I1666]
- unless_null $P1668, vivify_503
- new $P1668, "Undef"
+ set $P1670, $P1669[$I1668]
+ unless_null $P1670, vivify_503
+ new $P1670, "Undef"
vivify_503:
- $S1669 = $P1668."name"()
- iseq $I1670, $S1669, "&prefix:<|>"
- unless $I1670, if_1664_end
-.annotate "line", 612
- find_lex $P1671, "$i"
- set $I1672, $P1671
- find_lex $P1673, "$past"
- unless_null $P1673, vivify_504
- new $P1673, "ResizablePMCArray"
+ $S1671 = $P1670."name"()
+ iseq $I1672, $S1671, "&prefix:<|>"
+ unless $I1672, if_1666_end
+.annotate "line", 615
+ find_lex $P1673, "$i"
+ set $I1674, $P1673
+ find_lex $P1675, "$past"
+ unless_null $P1675, vivify_504
+ $P1675 = root_new ['parrot';'ResizablePMCArray']
vivify_504:
- set $P1674, $P1673[$I1672]
- unless_null $P1674, vivify_505
- new $P1674, "ResizablePMCArray"
+ set $P1676, $P1675[$I1674]
+ unless_null $P1676, vivify_505
+ $P1676 = root_new ['parrot';'ResizablePMCArray']
vivify_505:
- set $P1675, $P1674[0]
- unless_null $P1675, vivify_506
- new $P1675, "Undef"
+ set $P1677, $P1676[0]
+ unless_null $P1677, vivify_506
+ new $P1677, "Undef"
vivify_506:
- find_lex $P1676, "$i"
- set $I1677, $P1676
- find_lex $P1678, "$past"
- unless_null $P1678, vivify_507
- new $P1678, "ResizablePMCArray"
- store_lex "$past", $P1678
+ find_lex $P1678, "$i"
+ set $I1679, $P1678
+ find_lex $P1680, "$past"
+ unless_null $P1680, vivify_507
+ $P1680 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$past", $P1680
vivify_507:
- set $P1678[$I1677], $P1675
-.annotate "line", 613
- find_lex $P1679, "$i"
- set $I1680, $P1679
- find_lex $P1681, "$past"
- unless_null $P1681, vivify_508
- new $P1681, "ResizablePMCArray"
+ set $P1680[$I1679], $P1677
+.annotate "line", 616
+ find_lex $P1681, "$i"
+ set $I1682, $P1681
+ find_lex $P1683, "$past"
+ unless_null $P1683, vivify_508
+ $P1683 = root_new ['parrot';'ResizablePMCArray']
vivify_508:
- set $P1682, $P1681[$I1680]
- unless_null $P1682, vivify_509
- new $P1682, "Undef"
+ set $P1684, $P1683[$I1682]
+ unless_null $P1684, vivify_509
+ new $P1684, "Undef"
vivify_509:
- $P1682."flat"(1)
- if_1664_end:
-.annotate "line", 611
- find_lex $P1683, "$i"
- clone $P1684, $P1683
- inc $P1683
- loop1685_next:
-.annotate "line", 610
- goto loop1685_test
- loop1685_handler:
+ $P1684."flat"(1)
+ if_1666_end:
+.annotate "line", 614
+ find_lex $P1685, "$i"
+ clone $P1686, $P1685
+ inc $P1685
+ loop1687_next:
+.annotate "line", 613
+ goto loop1687_test
+ loop1687_handler:
.local pmc exception
.get_results (exception)
- getattribute $P1687, exception, 'type'
- eq $P1687, 65, loop1685_next
- eq $P1687, 67, loop1685_redo
- loop1685_done:
+ getattribute $P1689, exception, 'type'
+ eq $P1689, 65, loop1687_next
+ eq $P1689, 67, loop1687_redo
+ loop1687_done:
pop_eh
-.annotate "line", 617
- find_lex $P1688, "$/"
- find_lex $P1689, "$past"
- $P1690 = $P1688."!make"($P1689)
-.annotate "line", 599
- .return ($P1690)
- control_1609:
+.annotate "line", 620
+ find_lex $P1690, "$/"
+ find_lex $P1691, "$past"
+ $P1692 = $P1690."!make"($P1691)
+.annotate "line", 602
+ .return ($P1692)
+ control_1611:
.local pmc exception
.get_results (exception)
- getattribute $P1691, exception, "payload"
- .return ($P1691)
+ getattribute $P1693, exception, "payload"
+ .return ($P1693)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1621" :anon :subid("90_1261064035.64813") :outer("89_1261064035.64813")
-.annotate "line", 601
- .const 'Sub' $P1643 = "91_1261064035.64813"
- capture_lex $P1643
-.annotate "line", 602
- new $P1623, "Undef"
- .lex "$expr", $P1623
- find_lex $P1624, "$/"
- unless_null $P1624, vivify_499
- new $P1624, "Hash"
- vivify_499:
- set $P1625, $P1624["EXPR"]
- unless_null $P1625, vivify_500
+.sub "_block1623" :anon :subid("90_1267204714.47172") :outer("89_1267204714.47172")
+.annotate "line", 604
+ .const 'Sub' $P1645 = "91_1267204714.47172"
+ capture_lex $P1645
+.annotate "line", 605
new $P1625, "Undef"
+ .lex "$expr", $P1625
+ find_lex $P1626, "$/"
+ unless_null $P1626, vivify_499
+ $P1626 = root_new ['parrot';'Hash']
+ vivify_499:
+ set $P1627, $P1626["EXPR"]
+ unless_null $P1627, vivify_500
+ new $P1627, "Undef"
vivify_500:
- $P1626 = $P1625."ast"()
- store_lex "$expr", $P1626
-.annotate "line", 603
- find_lex $P1631, "$expr"
- $S1632 = $P1631."name"()
- iseq $I1633, $S1632, "&infix:<,>"
- if $I1633, if_1630
- new $P1629, 'Integer'
- set $P1629, $I1633
+ $P1628 = $P1627."ast"()
+ store_lex "$expr", $P1628
+.annotate "line", 606
+ find_lex $P1633, "$expr"
+ $S1634 = $P1633."name"()
+ iseq $I1635, $S1634, "&infix:<,>"
+ if $I1635, if_1632
+ new $P1631, 'Integer'
+ set $P1631, $I1635
+ goto if_1632_end
+ if_1632:
+ find_lex $P1636, "$expr"
+ $P1637 = $P1636."named"()
+ isfalse $I1638, $P1637
+ new $P1631, 'Integer'
+ set $P1631, $I1638
+ if_1632_end:
+ if $P1631, if_1630
+.annotate "line", 609
+ find_lex $P1653, "$past"
+ find_lex $P1654, "$expr"
+ $P1655 = $P1653."push"($P1654)
+ set $P1629, $P1655
+.annotate "line", 606
goto if_1630_end
if_1630:
- find_lex $P1634, "$expr"
- $P1635 = $P1634."named"()
- isfalse $I1636, $P1635
- new $P1629, 'Integer'
- set $P1629, $I1636
- if_1630_end:
- if $P1629, if_1628
-.annotate "line", 606
- find_lex $P1651, "$past"
- find_lex $P1652, "$expr"
- $P1653 = $P1651."push"($P1652)
- set $P1627, $P1653
-.annotate "line", 603
- goto if_1628_end
- if_1628:
-.annotate "line", 604
- find_lex $P1638, "$expr"
- $P1639 = $P1638."list"()
- defined $I1640, $P1639
- unless $I1640, for_undef_501
- iter $P1637, $P1639
- new $P1649, 'ExceptionHandler'
- set_addr $P1649, loop1648_handler
- $P1649."handle_types"(65, 67, 66)
- push_eh $P1649
- loop1648_test:
- unless $P1637, loop1648_done
- shift $P1641, $P1637
- loop1648_redo:
- .const 'Sub' $P1643 = "91_1261064035.64813"
- capture_lex $P1643
- $P1643($P1641)
- loop1648_next:
- goto loop1648_test
- loop1648_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1650, exception, 'type'
- eq $P1650, 65, loop1648_next
- eq $P1650, 67, loop1648_redo
- loop1648_done:
+.annotate "line", 607
+ find_lex $P1640, "$expr"
+ $P1641 = $P1640."list"()
+ defined $I1642, $P1641
+ unless $I1642, for_undef_501
+ iter $P1639, $P1641
+ new $P1651, 'ExceptionHandler'
+ set_addr $P1651, loop1650_handler
+ $P1651."handle_types"(65, 67, 66)
+ push_eh $P1651
+ loop1650_test:
+ unless $P1639, loop1650_done
+ shift $P1643, $P1639
+ loop1650_redo:
+ .const 'Sub' $P1645 = "91_1267204714.47172"
+ capture_lex $P1645
+ $P1645($P1643)
+ loop1650_next:
+ goto loop1650_test
+ loop1650_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1652, exception, 'type'
+ eq $P1652, 65, loop1650_next
+ eq $P1652, 67, loop1650_redo
+ loop1650_done:
pop_eh
for_undef_501:
-.annotate "line", 603
- set $P1627, $P1637
- if_1628_end:
-.annotate "line", 601
- .return ($P1627)
+.annotate "line", 606
+ set $P1629, $P1639
+ if_1630_end:
+.annotate "line", 604
+ .return ($P1629)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1642" :anon :subid("91_1261064035.64813") :outer("90_1261064035.64813")
- .param pmc param_1644
-.annotate "line", 604
- .lex "$_", param_1644
- find_lex $P1645, "$past"
- find_lex $P1646, "$_"
- $P1647 = $P1645."push"($P1646)
- .return ($P1647)
+.sub "_block1644" :anon :subid("91_1267204714.47172") :outer("90_1267204714.47172")
+ .param pmc param_1646
+.annotate "line", 607
+ .lex "$_", param_1646
+ find_lex $P1647, "$past"
+ find_lex $P1648, "$_"
+ $P1649 = $P1647."push"($P1648)
+ .return ($P1649)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<value>" :subid("92_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1695
-.annotate "line", 621
- new $P1694, 'ExceptionHandler'
- set_addr $P1694, control_1693
- $P1694."handle_types"(58)
- push_eh $P1694
- .lex "self", self
- .lex "$/", param_1695
- find_lex $P1696, "$/"
- find_lex $P1697, "$/"
- unless_null $P1697, vivify_510
- new $P1697, "Hash"
+.sub "term:sym<value>" :subid("92_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1697
+.annotate "line", 624
+ new $P1696, 'ExceptionHandler'
+ set_addr $P1696, control_1695
+ $P1696."handle_types"(58)
+ push_eh $P1696
+ .lex "self", self
+ .lex "$/", param_1697
+ find_lex $P1698, "$/"
+ find_lex $P1699, "$/"
+ unless_null $P1699, vivify_510
+ $P1699 = root_new ['parrot';'Hash']
vivify_510:
- set $P1698, $P1697["value"]
- unless_null $P1698, vivify_511
- new $P1698, "Undef"
+ set $P1700, $P1699["value"]
+ unless_null $P1700, vivify_511
+ new $P1700, "Undef"
vivify_511:
- $P1699 = $P1698."ast"()
- $P1700 = $P1696."!make"($P1699)
- .return ($P1700)
- control_1693:
+ $P1701 = $P1700."ast"()
+ $P1702 = $P1698."!make"($P1701)
+ .return ($P1702)
+ control_1695:
.local pmc exception
.get_results (exception)
- getattribute $P1701, exception, "payload"
- .return ($P1701)
+ getattribute $P1703, exception, "payload"
+ .return ($P1703)
.end
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>" :subid("93_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1705
-.annotate "line", 623
- new $P1704, 'ExceptionHandler'
- set_addr $P1704, control_1703
- $P1704."handle_types"(58)
- push_eh $P1704
- .lex "self", self
- .lex "$/", param_1705
-.annotate "line", 624
- find_lex $P1706, "$/"
-.annotate "line", 625
- find_lex $P1709, "$/"
- unless_null $P1709, vivify_512
- new $P1709, "Hash"
- vivify_512:
- set $P1710, $P1709["EXPR"]
- unless_null $P1710, vivify_513
- new $P1710, "Undef"
- vivify_513:
- if $P1710, if_1708
+.sub "circumfix:sym<( )>" :subid("93_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1707
.annotate "line", 626
- get_hll_global $P1715, ["PAST"], "Op"
- find_lex $P1716, "$/"
- $P1717 = $P1715."new"("list" :named("pasttype"), $P1716 :named("node"))
- set $P1707, $P1717
-.annotate "line", 625
- goto if_1708_end
- if_1708:
+ new $P1706, 'ExceptionHandler'
+ set_addr $P1706, control_1705
+ $P1706."handle_types"(58)
+ push_eh $P1706
+ .lex "self", self
+ .lex "$/", param_1707
+.annotate "line", 627
+ find_lex $P1708, "$/"
+.annotate "line", 628
find_lex $P1711, "$/"
- unless_null $P1711, vivify_514
- new $P1711, "Hash"
- vivify_514:
+ unless_null $P1711, vivify_512
+ $P1711 = root_new ['parrot';'Hash']
+ vivify_512:
set $P1712, $P1711["EXPR"]
- unless_null $P1712, vivify_515
- new $P1712, "ResizablePMCArray"
+ unless_null $P1712, vivify_513
+ new $P1712, "Undef"
+ vivify_513:
+ if $P1712, if_1710
+.annotate "line", 629
+ get_hll_global $P1717, ["PAST"], "Op"
+ find_lex $P1718, "$/"
+ $P1719 = $P1717."new"("list" :named("pasttype"), $P1718 :named("node"))
+ set $P1709, $P1719
+.annotate "line", 628
+ goto if_1710_end
+ if_1710:
+ find_lex $P1713, "$/"
+ unless_null $P1713, vivify_514
+ $P1713 = root_new ['parrot';'Hash']
+ vivify_514:
+ set $P1714, $P1713["EXPR"]
+ unless_null $P1714, vivify_515
+ $P1714 = root_new ['parrot';'ResizablePMCArray']
vivify_515:
- set $P1713, $P1712[0]
- unless_null $P1713, vivify_516
- new $P1713, "Undef"
+ set $P1715, $P1714[0]
+ unless_null $P1715, vivify_516
+ new $P1715, "Undef"
vivify_516:
- $P1714 = $P1713."ast"()
- set $P1707, $P1714
- if_1708_end:
- $P1718 = $P1706."!make"($P1707)
-.annotate "line", 623
- .return ($P1718)
- control_1703:
+ $P1716 = $P1715."ast"()
+ set $P1709, $P1716
+ if_1710_end:
+ $P1720 = $P1708."!make"($P1709)
+.annotate "line", 626
+ .return ($P1720)
+ control_1705:
.local pmc exception
.get_results (exception)
- getattribute $P1719, exception, "payload"
- .return ($P1719)
+ getattribute $P1721, exception, "payload"
+ .return ($P1721)
.end
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>" :subid("94_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1723
-.annotate "line", 629
- new $P1722, 'ExceptionHandler'
- set_addr $P1722, control_1721
- $P1722."handle_types"(58)
- push_eh $P1722
- .lex "self", self
- .lex "$/", param_1723
-.annotate "line", 630
- new $P1724, "Undef"
- .lex "$past", $P1724
-.annotate "line", 629
- find_lex $P1725, "$past"
-.annotate "line", 631
- find_lex $P1727, "$/"
- unless_null $P1727, vivify_517
- new $P1727, "Hash"
- vivify_517:
- set $P1728, $P1727["EXPR"]
- unless_null $P1728, vivify_518
- new $P1728, "Undef"
- vivify_518:
- if $P1728, if_1726
-.annotate "line", 638
- get_hll_global $P1740, ["PAST"], "Op"
- $P1741 = $P1740."new"("list" :named("pasttype"))
- store_lex "$past", $P1741
-.annotate "line", 637
- goto if_1726_end
- if_1726:
+.sub "circumfix:sym<[ ]>" :subid("94_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1725
.annotate "line", 632
+ new $P1724, 'ExceptionHandler'
+ set_addr $P1724, control_1723
+ $P1724."handle_types"(58)
+ push_eh $P1724
+ .lex "self", self
+ .lex "$/", param_1725
+.annotate "line", 633
+ new $P1726, "Undef"
+ .lex "$past", $P1726
+.annotate "line", 632
+ find_lex $P1727, "$past"
+.annotate "line", 634
find_lex $P1729, "$/"
- unless_null $P1729, vivify_519
- new $P1729, "Hash"
- vivify_519:
+ unless_null $P1729, vivify_517
+ $P1729 = root_new ['parrot';'Hash']
+ vivify_517:
set $P1730, $P1729["EXPR"]
- unless_null $P1730, vivify_520
- new $P1730, "ResizablePMCArray"
+ unless_null $P1730, vivify_518
+ new $P1730, "Undef"
+ vivify_518:
+ if $P1730, if_1728
+.annotate "line", 641
+ get_hll_global $P1742, ["PAST"], "Op"
+ $P1743 = $P1742."new"("list" :named("pasttype"))
+ store_lex "$past", $P1743
+.annotate "line", 640
+ goto if_1728_end
+ if_1728:
+.annotate "line", 635
+ find_lex $P1731, "$/"
+ unless_null $P1731, vivify_519
+ $P1731 = root_new ['parrot';'Hash']
+ vivify_519:
+ set $P1732, $P1731["EXPR"]
+ unless_null $P1732, vivify_520
+ $P1732 = root_new ['parrot';'ResizablePMCArray']
vivify_520:
- set $P1731, $P1730[0]
- unless_null $P1731, vivify_521
- new $P1731, "Undef"
+ set $P1733, $P1732[0]
+ unless_null $P1733, vivify_521
+ new $P1733, "Undef"
vivify_521:
- $P1732 = $P1731."ast"()
- store_lex "$past", $P1732
-.annotate "line", 633
- find_lex $P1734, "$past"
- $S1735 = $P1734."name"()
- isne $I1736, $S1735, "&infix:<,>"
- unless $I1736, if_1733_end
-.annotate "line", 634
- get_hll_global $P1737, ["PAST"], "Op"
- find_lex $P1738, "$past"
- $P1739 = $P1737."new"($P1738, "list" :named("pasttype"))
- store_lex "$past", $P1739
- if_1733_end:
- if_1726_end:
-.annotate "line", 640
- find_lex $P1742, "$past"
- $P1742."name"("&circumfix:<[ ]>")
-.annotate "line", 641
- find_lex $P1743, "$/"
+ $P1734 = $P1733."ast"()
+ store_lex "$past", $P1734
+.annotate "line", 636
+ find_lex $P1736, "$past"
+ $S1737 = $P1736."name"()
+ isne $I1738, $S1737, "&infix:<,>"
+ unless $I1738, if_1735_end
+.annotate "line", 637
+ get_hll_global $P1739, ["PAST"], "Op"
+ find_lex $P1740, "$past"
+ $P1741 = $P1739."new"($P1740, "list" :named("pasttype"))
+ store_lex "$past", $P1741
+ if_1735_end:
+ if_1728_end:
+.annotate "line", 643
find_lex $P1744, "$past"
- $P1745 = $P1743."!make"($P1744)
-.annotate "line", 629
- .return ($P1745)
- control_1721:
+ $P1744."name"("&circumfix:<[ ]>")
+.annotate "line", 644
+ find_lex $P1745, "$/"
+ find_lex $P1746, "$past"
+ $P1747 = $P1745."!make"($P1746)
+.annotate "line", 632
+ .return ($P1747)
+ control_1723:
.local pmc exception
.get_results (exception)
- getattribute $P1746, exception, "payload"
- .return ($P1746)
+ getattribute $P1748, exception, "payload"
+ .return ($P1748)
.end
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>" :subid("95_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1750
-.annotate "line", 644
- new $P1749, 'ExceptionHandler'
- set_addr $P1749, control_1748
- $P1749."handle_types"(58)
- push_eh $P1749
- .lex "self", self
- .lex "$/", param_1750
- find_lex $P1751, "$/"
- find_lex $P1752, "$/"
- unless_null $P1752, vivify_522
- new $P1752, "Hash"
+.sub "circumfix:sym<ang>" :subid("95_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1752
+.annotate "line", 647
+ new $P1751, 'ExceptionHandler'
+ set_addr $P1751, control_1750
+ $P1751."handle_types"(58)
+ push_eh $P1751
+ .lex "self", self
+ .lex "$/", param_1752
+ find_lex $P1753, "$/"
+ find_lex $P1754, "$/"
+ unless_null $P1754, vivify_522
+ $P1754 = root_new ['parrot';'Hash']
vivify_522:
- set $P1753, $P1752["quote_EXPR"]
- unless_null $P1753, vivify_523
- new $P1753, "Undef"
+ set $P1755, $P1754["quote_EXPR"]
+ unless_null $P1755, vivify_523
+ new $P1755, "Undef"
vivify_523:
- $P1754 = $P1753."ast"()
- $P1755 = $P1751."!make"($P1754)
- .return ($P1755)
- control_1748:
+ $P1756 = $P1755."ast"()
+ $P1757 = $P1753."!make"($P1756)
+ .return ($P1757)
+ control_1750:
.local pmc exception
.get_results (exception)
- getattribute $P1756, exception, "payload"
- .return ($P1756)
+ getattribute $P1758, exception, "payload"
+ .return ($P1758)
.end
.namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("96_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1760
-.annotate "line", 645
- new $P1759, 'ExceptionHandler'
- set_addr $P1759, control_1758
- $P1759."handle_types"(58)
- push_eh $P1759
- .lex "self", self
- .lex "$/", param_1760
- find_lex $P1761, "$/"
- find_lex $P1762, "$/"
- unless_null $P1762, vivify_524
- new $P1762, "Hash"
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("96_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1762
+.annotate "line", 648
+ new $P1761, 'ExceptionHandler'
+ set_addr $P1761, control_1760
+ $P1761."handle_types"(58)
+ push_eh $P1761
+ .lex "self", self
+ .lex "$/", param_1762
+ find_lex $P1763, "$/"
+ find_lex $P1764, "$/"
+ unless_null $P1764, vivify_524
+ $P1764 = root_new ['parrot';'Hash']
vivify_524:
- set $P1763, $P1762["quote_EXPR"]
- unless_null $P1763, vivify_525
- new $P1763, "Undef"
+ set $P1765, $P1764["quote_EXPR"]
+ unless_null $P1765, vivify_525
+ new $P1765, "Undef"
vivify_525:
- $P1764 = $P1763."ast"()
- $P1765 = $P1761."!make"($P1764)
- .return ($P1765)
- control_1758:
+ $P1766 = $P1765."ast"()
+ $P1767 = $P1763."!make"($P1766)
+ .return ($P1767)
+ control_1760:
.local pmc exception
.get_results (exception)
- getattribute $P1766, exception, "payload"
- .return ($P1766)
+ getattribute $P1768, exception, "payload"
+ .return ($P1768)
.end
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>" :subid("97_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1770
-.annotate "line", 647
- new $P1769, 'ExceptionHandler'
- set_addr $P1769, control_1768
- $P1769."handle_types"(58)
- push_eh $P1769
- .lex "self", self
- .lex "$/", param_1770
-.annotate "line", 648
- find_lex $P1771, "$/"
- find_lex $P1774, "$/"
- unless_null $P1774, vivify_526
- new $P1774, "Hash"
+.sub "circumfix:sym<{ }>" :subid("97_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1772
+.annotate "line", 650
+ new $P1771, 'ExceptionHandler'
+ set_addr $P1771, control_1770
+ $P1771."handle_types"(58)
+ push_eh $P1771
+ .lex "self", self
+ .lex "$/", param_1772
+.annotate "line", 651
+ find_lex $P1773, "$/"
+ find_lex $P1776, "$/"
+ unless_null $P1776, vivify_526
+ $P1776 = root_new ['parrot';'Hash']
vivify_526:
- set $P1775, $P1774["pblock"]
- unless_null $P1775, vivify_527
- new $P1775, "Hash"
+ set $P1777, $P1776["pblock"]
+ unless_null $P1777, vivify_527
+ $P1777 = root_new ['parrot';'Hash']
vivify_527:
- set $P1776, $P1775["blockoid"]
- unless_null $P1776, vivify_528
- new $P1776, "Hash"
+ set $P1778, $P1777["blockoid"]
+ unless_null $P1778, vivify_528
+ $P1778 = root_new ['parrot';'Hash']
vivify_528:
- set $P1777, $P1776["statementlist"]
- unless_null $P1777, vivify_529
- new $P1777, "Hash"
+ set $P1779, $P1778["statementlist"]
+ unless_null $P1779, vivify_529
+ $P1779 = root_new ['parrot';'Hash']
vivify_529:
- set $P1778, $P1777["statement"]
- unless_null $P1778, vivify_530
- new $P1778, "Undef"
+ set $P1780, $P1779["statement"]
+ unless_null $P1780, vivify_530
+ new $P1780, "Undef"
vivify_530:
- set $N1779, $P1778
- isgt $I1780, $N1779, 0.0
- if $I1780, if_1773
-.annotate "line", 650
- get_hll_global $P1784, ["PAST"], "Op"
- find_lex $P1785, "$/"
- $P1786 = $P1784."new"(" %r = new [\"Hash\"]" :named("inline"), $P1785 :named("node"))
- set $P1772, $P1786
-.annotate "line", 648
- goto if_1773_end
- if_1773:
-.annotate "line", 649
- find_lex $P1781, "$/"
- unless_null $P1781, vivify_531
- new $P1781, "Hash"
+ set $N1781, $P1780
+ isgt $I1782, $N1781, 0.0
+ if $I1782, if_1775
+.annotate "line", 653
+ $P1786 = "vivitype"("%")
+ set $P1774, $P1786
+.annotate "line", 651
+ goto if_1775_end
+ if_1775:
+.annotate "line", 652
+ find_lex $P1783, "$/"
+ unless_null $P1783, vivify_531
+ $P1783 = root_new ['parrot';'Hash']
vivify_531:
- set $P1782, $P1781["pblock"]
- unless_null $P1782, vivify_532
- new $P1782, "Undef"
+ set $P1784, $P1783["pblock"]
+ unless_null $P1784, vivify_532
+ new $P1784, "Undef"
vivify_532:
- $P1783 = $P1782."ast"()
- set $P1772, $P1783
- if_1773_end:
- $P1787 = $P1771."!make"($P1772)
-.annotate "line", 647
+ $P1785 = $P1784."ast"()
+ set $P1774, $P1785
+ if_1775_end:
+ $P1787 = $P1773."!make"($P1774)
+.annotate "line", 650
.return ($P1787)
- control_1768:
+ control_1770:
.local pmc exception
.get_results (exception)
getattribute $P1788, exception, "payload"
@@ -21134,21 +21177,21 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>" :subid("98_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "circumfix:sym<sigil>" :subid("98_1267204714.47172") :method :outer("11_1267204714.47172")
.param pmc param_1792
-.annotate "line", 653
+.annotate "line", 656
new $P1791, 'ExceptionHandler'
set_addr $P1791, control_1790
$P1791."handle_types"(58)
push_eh $P1791
.lex "self", self
.lex "$/", param_1792
-.annotate "line", 654
+.annotate "line", 657
new $P1793, "Undef"
.lex "$name", $P1793
find_lex $P1796, "$/"
unless_null $P1796, vivify_533
- new $P1796, "Hash"
+ $P1796 = root_new ['parrot';'Hash']
vivify_533:
set $P1797, $P1796["sigil"]
unless_null $P1797, vivify_534
@@ -21157,10 +21200,10 @@
set $S1798, $P1797
iseq $I1799, $S1798, "@"
if $I1799, if_1795
-.annotate "line", 655
+.annotate "line", 658
find_lex $P1803, "$/"
unless_null $P1803, vivify_535
- new $P1803, "Hash"
+ $P1803 = root_new ['parrot';'Hash']
vivify_535:
set $P1804, $P1803["sigil"]
unless_null $P1804, vivify_536
@@ -21179,7 +21222,7 @@
set $P1801, $P1807
if_1802_end:
set $P1794, $P1801
-.annotate "line", 654
+.annotate "line", 657
goto if_1795_end
if_1795:
new $P1800, "String"
@@ -21187,13 +21230,13 @@
set $P1794, $P1800
if_1795_end:
store_lex "$name", $P1794
-.annotate "line", 657
+.annotate "line", 660
find_lex $P1809, "$/"
get_hll_global $P1810, ["PAST"], "Op"
find_lex $P1811, "$name"
find_lex $P1812, "$/"
unless_null $P1812, vivify_537
- new $P1812, "Hash"
+ $P1812 = root_new ['parrot';'Hash']
vivify_537:
set $P1813, $P1812["semilist"]
unless_null $P1813, vivify_538
@@ -21202,7 +21245,7 @@
$P1814 = $P1813."ast"()
$P1815 = $P1810."new"($P1814, "callmethod" :named("pasttype"), $P1811 :named("name"))
$P1816 = $P1809."!make"($P1815)
-.annotate "line", 653
+.annotate "line", 656
.return ($P1816)
control_1790:
.local pmc exception
@@ -21213,9 +21256,9 @@
.namespace ["NQP";"Actions"]
-.sub "semilist" :subid("99_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "semilist" :subid("99_1267204714.47172") :method :outer("11_1267204714.47172")
.param pmc param_1821
-.annotate "line", 660
+.annotate "line", 663
new $P1820, 'ExceptionHandler'
set_addr $P1820, control_1819
$P1820."handle_types"(58)
@@ -21225,7 +21268,7 @@
find_lex $P1822, "$/"
find_lex $P1823, "$/"
unless_null $P1823, vivify_539
- new $P1823, "Hash"
+ $P1823 = root_new ['parrot';'Hash']
vivify_539:
set $P1824, $P1823["statement"]
unless_null $P1824, vivify_540
@@ -21243,964 +21286,973 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>" :subid("100_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postcircumfix:sym<[ ]>" :subid("100_1267204714.47172") :method :outer("11_1267204714.47172")
.param pmc param_1831
-.annotate "line", 662
+.annotate "line", 665
new $P1830, 'ExceptionHandler'
set_addr $P1830, control_1829
$P1830."handle_types"(58)
push_eh $P1830
.lex "self", self
.lex "$/", param_1831
-.annotate "line", 663
+.annotate "line", 666
find_lex $P1832, "$/"
get_hll_global $P1833, ["PAST"], "Var"
find_lex $P1834, "$/"
unless_null $P1834, vivify_541
- new $P1834, "Hash"
+ $P1834 = root_new ['parrot';'Hash']
vivify_541:
set $P1835, $P1834["EXPR"]
unless_null $P1835, vivify_542
new $P1835, "Undef"
vivify_542:
$P1836 = $P1835."ast"()
- $P1837 = $P1833."new"($P1836, "keyed_int" :named("scope"), "Undef" :named("viviself"), "ResizablePMCArray" :named("vivibase"))
- $P1838 = $P1832."!make"($P1837)
-.annotate "line", 662
- .return ($P1838)
+.annotate "line", 668
+ $P1837 = "vivitype"("@")
+ $P1838 = $P1833."new"($P1836, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P1837 :named("vivibase"))
+.annotate "line", 666
+ $P1839 = $P1832."!make"($P1838)
+.annotate "line", 665
+ .return ($P1839)
control_1829:
.local pmc exception
.get_results (exception)
- getattribute $P1839, exception, "payload"
- .return ($P1839)
+ getattribute $P1840, exception, "payload"
+ .return ($P1840)
.end
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>" :subid("101_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1843
-.annotate "line", 668
- new $P1842, 'ExceptionHandler'
- set_addr $P1842, control_1841
- $P1842."handle_types"(58)
- push_eh $P1842
- .lex "self", self
- .lex "$/", param_1843
-.annotate "line", 669
- find_lex $P1844, "$/"
- get_hll_global $P1845, ["PAST"], "Var"
- find_lex $P1846, "$/"
- unless_null $P1846, vivify_543
- new $P1846, "Hash"
+.sub "postcircumfix:sym<{ }>" :subid("101_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1844
+.annotate "line", 671
+ new $P1843, 'ExceptionHandler'
+ set_addr $P1843, control_1842
+ $P1843."handle_types"(58)
+ push_eh $P1843
+ .lex "self", self
+ .lex "$/", param_1844
+.annotate "line", 672
+ find_lex $P1845, "$/"
+ get_hll_global $P1846, ["PAST"], "Var"
+ find_lex $P1847, "$/"
+ unless_null $P1847, vivify_543
+ $P1847 = root_new ['parrot';'Hash']
vivify_543:
- set $P1847, $P1846["EXPR"]
- unless_null $P1847, vivify_544
- new $P1847, "Undef"
+ set $P1848, $P1847["EXPR"]
+ unless_null $P1848, vivify_544
+ new $P1848, "Undef"
vivify_544:
- $P1848 = $P1847."ast"()
- $P1849 = $P1845."new"($P1848, "keyed" :named("scope"), "Undef" :named("viviself"), "Hash" :named("vivibase"))
- $P1850 = $P1844."!make"($P1849)
-.annotate "line", 668
- .return ($P1850)
- control_1841:
+ $P1849 = $P1848."ast"()
+.annotate "line", 674
+ $P1850 = "vivitype"("%")
+ $P1851 = $P1846."new"($P1849, "keyed" :named("scope"), "Undef" :named("viviself"), $P1850 :named("vivibase"))
+.annotate "line", 672
+ $P1852 = $P1845."!make"($P1851)
+.annotate "line", 671
+ .return ($P1852)
+ control_1842:
.local pmc exception
.get_results (exception)
- getattribute $P1851, exception, "payload"
- .return ($P1851)
+ getattribute $P1853, exception, "payload"
+ .return ($P1853)
.end
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>" :subid("102_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1855
-.annotate "line", 674
- new $P1854, 'ExceptionHandler'
- set_addr $P1854, control_1853
- $P1854."handle_types"(58)
- push_eh $P1854
- .lex "self", self
- .lex "$/", param_1855
-.annotate "line", 675
- find_lex $P1856, "$/"
- get_hll_global $P1857, ["PAST"], "Var"
+.sub "postcircumfix:sym<ang>" :subid("102_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1857
+.annotate "line", 677
+ new $P1856, 'ExceptionHandler'
+ set_addr $P1856, control_1855
+ $P1856."handle_types"(58)
+ push_eh $P1856
+ .lex "self", self
+ .lex "$/", param_1857
+.annotate "line", 678
find_lex $P1858, "$/"
- unless_null $P1858, vivify_545
- new $P1858, "Hash"
+ get_hll_global $P1859, ["PAST"], "Var"
+ find_lex $P1860, "$/"
+ unless_null $P1860, vivify_545
+ $P1860 = root_new ['parrot';'Hash']
vivify_545:
- set $P1859, $P1858["quote_EXPR"]
- unless_null $P1859, vivify_546
- new $P1859, "Undef"
+ set $P1861, $P1860["quote_EXPR"]
+ unless_null $P1861, vivify_546
+ new $P1861, "Undef"
vivify_546:
- $P1860 = $P1859."ast"()
- $P1861 = $P1857."new"($P1860, "keyed" :named("scope"), "Undef" :named("viviself"), "Hash" :named("vivibase"))
- $P1862 = $P1856."!make"($P1861)
-.annotate "line", 674
- .return ($P1862)
- control_1853:
+ $P1862 = $P1861."ast"()
+.annotate "line", 680
+ $P1863 = "vivitype"("%")
+ $P1864 = $P1859."new"($P1862, "keyed" :named("scope"), "Undef" :named("viviself"), $P1863 :named("vivibase"))
+.annotate "line", 678
+ $P1865 = $P1858."!make"($P1864)
+.annotate "line", 677
+ .return ($P1865)
+ control_1855:
.local pmc exception
.get_results (exception)
- getattribute $P1863, exception, "payload"
- .return ($P1863)
+ getattribute $P1866, exception, "payload"
+ .return ($P1866)
.end
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>" :subid("103_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1867
-.annotate "line", 680
- new $P1866, 'ExceptionHandler'
- set_addr $P1866, control_1865
- $P1866."handle_types"(58)
- push_eh $P1866
- .lex "self", self
- .lex "$/", param_1867
-.annotate "line", 681
- find_lex $P1868, "$/"
- find_lex $P1869, "$/"
- unless_null $P1869, vivify_547
- new $P1869, "Hash"
+.sub "postcircumfix:sym<( )>" :subid("103_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1870
+.annotate "line", 683
+ new $P1869, 'ExceptionHandler'
+ set_addr $P1869, control_1868
+ $P1869."handle_types"(58)
+ push_eh $P1869
+ .lex "self", self
+ .lex "$/", param_1870
+.annotate "line", 684
+ find_lex $P1871, "$/"
+ find_lex $P1872, "$/"
+ unless_null $P1872, vivify_547
+ $P1872 = root_new ['parrot';'Hash']
vivify_547:
- set $P1870, $P1869["arglist"]
- unless_null $P1870, vivify_548
- new $P1870, "Undef"
+ set $P1873, $P1872["arglist"]
+ unless_null $P1873, vivify_548
+ new $P1873, "Undef"
vivify_548:
- $P1871 = $P1870."ast"()
- $P1872 = $P1868."!make"($P1871)
-.annotate "line", 680
- .return ($P1872)
- control_1865:
+ $P1874 = $P1873."ast"()
+ $P1875 = $P1871."!make"($P1874)
+.annotate "line", 683
+ .return ($P1875)
+ control_1868:
.local pmc exception
.get_results (exception)
- getattribute $P1873, exception, "payload"
- .return ($P1873)
+ getattribute $P1876, exception, "payload"
+ .return ($P1876)
.end
.namespace ["NQP";"Actions"]
-.sub "value" :subid("104_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1877
-.annotate "line", 684
- new $P1876, 'ExceptionHandler'
- set_addr $P1876, control_1875
- $P1876."handle_types"(58)
- push_eh $P1876
- .lex "self", self
- .lex "$/", param_1877
-.annotate "line", 685
- find_lex $P1878, "$/"
+.sub "value" :subid("104_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1880
+.annotate "line", 687
+ new $P1879, 'ExceptionHandler'
+ set_addr $P1879, control_1878
+ $P1879."handle_types"(58)
+ push_eh $P1879
+ .lex "self", self
+ .lex "$/", param_1880
+.annotate "line", 688
find_lex $P1881, "$/"
- unless_null $P1881, vivify_549
- new $P1881, "Hash"
+ find_lex $P1884, "$/"
+ unless_null $P1884, vivify_549
+ $P1884 = root_new ['parrot';'Hash']
vivify_549:
- set $P1882, $P1881["quote"]
- unless_null $P1882, vivify_550
- new $P1882, "Undef"
+ set $P1885, $P1884["quote"]
+ unless_null $P1885, vivify_550
+ new $P1885, "Undef"
vivify_550:
- if $P1882, if_1880
- find_lex $P1886, "$/"
- unless_null $P1886, vivify_551
- new $P1886, "Hash"
+ if $P1885, if_1883
+ find_lex $P1889, "$/"
+ unless_null $P1889, vivify_551
+ $P1889 = root_new ['parrot';'Hash']
vivify_551:
- set $P1887, $P1886["number"]
- unless_null $P1887, vivify_552
- new $P1887, "Undef"
+ set $P1890, $P1889["number"]
+ unless_null $P1890, vivify_552
+ new $P1890, "Undef"
vivify_552:
- $P1888 = $P1887."ast"()
- set $P1879, $P1888
- goto if_1880_end
- if_1880:
- find_lex $P1883, "$/"
- unless_null $P1883, vivify_553
- new $P1883, "Hash"
+ $P1891 = $P1890."ast"()
+ set $P1882, $P1891
+ goto if_1883_end
+ if_1883:
+ find_lex $P1886, "$/"
+ unless_null $P1886, vivify_553
+ $P1886 = root_new ['parrot';'Hash']
vivify_553:
- set $P1884, $P1883["quote"]
- unless_null $P1884, vivify_554
- new $P1884, "Undef"
+ set $P1887, $P1886["quote"]
+ unless_null $P1887, vivify_554
+ new $P1887, "Undef"
vivify_554:
- $P1885 = $P1884."ast"()
- set $P1879, $P1885
- if_1880_end:
- $P1889 = $P1878."!make"($P1879)
-.annotate "line", 684
- .return ($P1889)
- control_1875:
+ $P1888 = $P1887."ast"()
+ set $P1882, $P1888
+ if_1883_end:
+ $P1892 = $P1881."!make"($P1882)
+.annotate "line", 687
+ .return ($P1892)
+ control_1878:
.local pmc exception
.get_results (exception)
- getattribute $P1890, exception, "payload"
- .return ($P1890)
+ getattribute $P1893, exception, "payload"
+ .return ($P1893)
.end
.namespace ["NQP";"Actions"]
-.sub "number" :subid("105_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1894
-.annotate "line", 688
- new $P1893, 'ExceptionHandler'
- set_addr $P1893, control_1892
- $P1893."handle_types"(58)
- push_eh $P1893
- .lex "self", self
- .lex "$/", param_1894
-.annotate "line", 689
- new $P1895, "Undef"
- .lex "$value", $P1895
- find_lex $P1898, "$/"
- unless_null $P1898, vivify_555
- new $P1898, "Hash"
+.sub "number" :subid("105_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1897
+.annotate "line", 691
+ new $P1896, 'ExceptionHandler'
+ set_addr $P1896, control_1895
+ $P1896."handle_types"(58)
+ push_eh $P1896
+ .lex "self", self
+ .lex "$/", param_1897
+.annotate "line", 692
+ new $P1898, "Undef"
+ .lex "$value", $P1898
+ find_lex $P1901, "$/"
+ unless_null $P1901, vivify_555
+ $P1901 = root_new ['parrot';'Hash']
vivify_555:
- set $P1899, $P1898["dec_number"]
- unless_null $P1899, vivify_556
- new $P1899, "Undef"
+ set $P1902, $P1901["dec_number"]
+ unless_null $P1902, vivify_556
+ new $P1902, "Undef"
vivify_556:
- if $P1899, if_1897
- find_lex $P1903, "$/"
- unless_null $P1903, vivify_557
- new $P1903, "Hash"
+ if $P1902, if_1900
+ find_lex $P1906, "$/"
+ unless_null $P1906, vivify_557
+ $P1906 = root_new ['parrot';'Hash']
vivify_557:
- set $P1904, $P1903["integer"]
- unless_null $P1904, vivify_558
- new $P1904, "Undef"
+ set $P1907, $P1906["integer"]
+ unless_null $P1907, vivify_558
+ new $P1907, "Undef"
vivify_558:
- $P1905 = $P1904."ast"()
- set $P1896, $P1905
- goto if_1897_end
- if_1897:
- find_lex $P1900, "$/"
- unless_null $P1900, vivify_559
- new $P1900, "Hash"
+ $P1908 = $P1907."ast"()
+ set $P1899, $P1908
+ goto if_1900_end
+ if_1900:
+ find_lex $P1903, "$/"
+ unless_null $P1903, vivify_559
+ $P1903 = root_new ['parrot';'Hash']
vivify_559:
- set $P1901, $P1900["dec_number"]
- unless_null $P1901, vivify_560
- new $P1901, "Undef"
+ set $P1904, $P1903["dec_number"]
+ unless_null $P1904, vivify_560
+ new $P1904, "Undef"
vivify_560:
- $P1902 = $P1901."ast"()
- set $P1896, $P1902
- if_1897_end:
- store_lex "$value", $P1896
-.annotate "line", 690
- find_lex $P1907, "$/"
- unless_null $P1907, vivify_561
- new $P1907, "Hash"
+ $P1905 = $P1904."ast"()
+ set $P1899, $P1905
+ if_1900_end:
+ store_lex "$value", $P1899
+.annotate "line", 693
+ find_lex $P1910, "$/"
+ unless_null $P1910, vivify_561
+ $P1910 = root_new ['parrot';'Hash']
vivify_561:
- set $P1908, $P1907["sign"]
- unless_null $P1908, vivify_562
- new $P1908, "Undef"
+ set $P1911, $P1910["sign"]
+ unless_null $P1911, vivify_562
+ new $P1911, "Undef"
vivify_562:
- set $S1909, $P1908
- iseq $I1910, $S1909, "-"
- unless $I1910, if_1906_end
- find_lex $P1911, "$value"
- neg $P1912, $P1911
- store_lex "$value", $P1912
- if_1906_end:
+ set $S1912, $P1911
+ iseq $I1913, $S1912, "-"
+ unless $I1913, if_1909_end
+ find_lex $P1914, "$value"
+ neg $P1915, $P1914
+ store_lex "$value", $P1915
+ if_1909_end:
+.annotate "line", 694
+ find_lex $P1916, "$/"
+ get_hll_global $P1917, ["PAST"], "Val"
+ find_lex $P1918, "$value"
+ $P1919 = $P1917."new"($P1918 :named("value"))
+ $P1920 = $P1916."!make"($P1919)
.annotate "line", 691
- find_lex $P1913, "$/"
- get_hll_global $P1914, ["PAST"], "Val"
- find_lex $P1915, "$value"
- $P1916 = $P1914."new"($P1915 :named("value"))
- $P1917 = $P1913."!make"($P1916)
-.annotate "line", 688
- .return ($P1917)
- control_1892:
+ .return ($P1920)
+ control_1895:
.local pmc exception
.get_results (exception)
- getattribute $P1918, exception, "payload"
- .return ($P1918)
+ getattribute $P1921, exception, "payload"
+ .return ($P1921)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>" :subid("106_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1922
-.annotate "line", 694
- new $P1921, 'ExceptionHandler'
- set_addr $P1921, control_1920
- $P1921."handle_types"(58)
- push_eh $P1921
- .lex "self", self
- .lex "$/", param_1922
- find_lex $P1923, "$/"
- find_lex $P1924, "$/"
- unless_null $P1924, vivify_563
- new $P1924, "Hash"
+.sub "quote:sym<apos>" :subid("106_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1925
+.annotate "line", 697
+ new $P1924, 'ExceptionHandler'
+ set_addr $P1924, control_1923
+ $P1924."handle_types"(58)
+ push_eh $P1924
+ .lex "self", self
+ .lex "$/", param_1925
+ find_lex $P1926, "$/"
+ find_lex $P1927, "$/"
+ unless_null $P1927, vivify_563
+ $P1927 = root_new ['parrot';'Hash']
vivify_563:
- set $P1925, $P1924["quote_EXPR"]
- unless_null $P1925, vivify_564
- new $P1925, "Undef"
+ set $P1928, $P1927["quote_EXPR"]
+ unless_null $P1928, vivify_564
+ new $P1928, "Undef"
vivify_564:
- $P1926 = $P1925."ast"()
- $P1927 = $P1923."!make"($P1926)
- .return ($P1927)
- control_1920:
+ $P1929 = $P1928."ast"()
+ $P1930 = $P1926."!make"($P1929)
+ .return ($P1930)
+ control_1923:
.local pmc exception
.get_results (exception)
- getattribute $P1928, exception, "payload"
- .return ($P1928)
+ getattribute $P1931, exception, "payload"
+ .return ($P1931)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>" :subid("107_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1932
-.annotate "line", 695
- new $P1931, 'ExceptionHandler'
- set_addr $P1931, control_1930
- $P1931."handle_types"(58)
- push_eh $P1931
- .lex "self", self
- .lex "$/", param_1932
- find_lex $P1933, "$/"
- find_lex $P1934, "$/"
- unless_null $P1934, vivify_565
- new $P1934, "Hash"
+.sub "quote:sym<dblq>" :subid("107_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1935
+.annotate "line", 698
+ new $P1934, 'ExceptionHandler'
+ set_addr $P1934, control_1933
+ $P1934."handle_types"(58)
+ push_eh $P1934
+ .lex "self", self
+ .lex "$/", param_1935
+ find_lex $P1936, "$/"
+ find_lex $P1937, "$/"
+ unless_null $P1937, vivify_565
+ $P1937 = root_new ['parrot';'Hash']
vivify_565:
- set $P1935, $P1934["quote_EXPR"]
- unless_null $P1935, vivify_566
- new $P1935, "Undef"
+ set $P1938, $P1937["quote_EXPR"]
+ unless_null $P1938, vivify_566
+ new $P1938, "Undef"
vivify_566:
- $P1936 = $P1935."ast"()
- $P1937 = $P1933."!make"($P1936)
- .return ($P1937)
- control_1930:
+ $P1939 = $P1938."ast"()
+ $P1940 = $P1936."!make"($P1939)
+ .return ($P1940)
+ control_1933:
.local pmc exception
.get_results (exception)
- getattribute $P1938, exception, "payload"
- .return ($P1938)
+ getattribute $P1941, exception, "payload"
+ .return ($P1941)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>" :subid("108_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1942
-.annotate "line", 696
- new $P1941, 'ExceptionHandler'
- set_addr $P1941, control_1940
- $P1941."handle_types"(58)
- push_eh $P1941
- .lex "self", self
- .lex "$/", param_1942
- find_lex $P1943, "$/"
- find_lex $P1944, "$/"
- unless_null $P1944, vivify_567
- new $P1944, "Hash"
+.sub "quote:sym<qq>" :subid("108_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1945
+.annotate "line", 699
+ new $P1944, 'ExceptionHandler'
+ set_addr $P1944, control_1943
+ $P1944."handle_types"(58)
+ push_eh $P1944
+ .lex "self", self
+ .lex "$/", param_1945
+ find_lex $P1946, "$/"
+ find_lex $P1947, "$/"
+ unless_null $P1947, vivify_567
+ $P1947 = root_new ['parrot';'Hash']
vivify_567:
- set $P1945, $P1944["quote_EXPR"]
- unless_null $P1945, vivify_568
- new $P1945, "Undef"
+ set $P1948, $P1947["quote_EXPR"]
+ unless_null $P1948, vivify_568
+ new $P1948, "Undef"
vivify_568:
- $P1946 = $P1945."ast"()
- $P1947 = $P1943."!make"($P1946)
- .return ($P1947)
- control_1940:
+ $P1949 = $P1948."ast"()
+ $P1950 = $P1946."!make"($P1949)
+ .return ($P1950)
+ control_1943:
.local pmc exception
.get_results (exception)
- getattribute $P1948, exception, "payload"
- .return ($P1948)
+ getattribute $P1951, exception, "payload"
+ .return ($P1951)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<q>" :subid("109_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1952
-.annotate "line", 697
- new $P1951, 'ExceptionHandler'
- set_addr $P1951, control_1950
- $P1951."handle_types"(58)
- push_eh $P1951
- .lex "self", self
- .lex "$/", param_1952
- find_lex $P1953, "$/"
- find_lex $P1954, "$/"
- unless_null $P1954, vivify_569
- new $P1954, "Hash"
+.sub "quote:sym<q>" :subid("109_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1955
+.annotate "line", 700
+ new $P1954, 'ExceptionHandler'
+ set_addr $P1954, control_1953
+ $P1954."handle_types"(58)
+ push_eh $P1954
+ .lex "self", self
+ .lex "$/", param_1955
+ find_lex $P1956, "$/"
+ find_lex $P1957, "$/"
+ unless_null $P1957, vivify_569
+ $P1957 = root_new ['parrot';'Hash']
vivify_569:
- set $P1955, $P1954["quote_EXPR"]
- unless_null $P1955, vivify_570
- new $P1955, "Undef"
+ set $P1958, $P1957["quote_EXPR"]
+ unless_null $P1958, vivify_570
+ new $P1958, "Undef"
vivify_570:
- $P1956 = $P1955."ast"()
- $P1957 = $P1953."!make"($P1956)
- .return ($P1957)
- control_1950:
+ $P1959 = $P1958."ast"()
+ $P1960 = $P1956."!make"($P1959)
+ .return ($P1960)
+ control_1953:
.local pmc exception
.get_results (exception)
- getattribute $P1958, exception, "payload"
- .return ($P1958)
+ getattribute $P1961, exception, "payload"
+ .return ($P1961)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>" :subid("110_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1962
-.annotate "line", 698
- new $P1961, 'ExceptionHandler'
- set_addr $P1961, control_1960
- $P1961."handle_types"(58)
- push_eh $P1961
- .lex "self", self
- .lex "$/", param_1962
- find_lex $P1963, "$/"
- find_lex $P1964, "$/"
- unless_null $P1964, vivify_571
- new $P1964, "Hash"
+.sub "quote:sym<Q>" :subid("110_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1965
+.annotate "line", 701
+ new $P1964, 'ExceptionHandler'
+ set_addr $P1964, control_1963
+ $P1964."handle_types"(58)
+ push_eh $P1964
+ .lex "self", self
+ .lex "$/", param_1965
+ find_lex $P1966, "$/"
+ find_lex $P1967, "$/"
+ unless_null $P1967, vivify_571
+ $P1967 = root_new ['parrot';'Hash']
vivify_571:
- set $P1965, $P1964["quote_EXPR"]
- unless_null $P1965, vivify_572
- new $P1965, "Undef"
+ set $P1968, $P1967["quote_EXPR"]
+ unless_null $P1968, vivify_572
+ new $P1968, "Undef"
vivify_572:
- $P1966 = $P1965."ast"()
- $P1967 = $P1963."!make"($P1966)
- .return ($P1967)
- control_1960:
+ $P1969 = $P1968."ast"()
+ $P1970 = $P1966."!make"($P1969)
+ .return ($P1970)
+ control_1963:
.local pmc exception
.get_results (exception)
- getattribute $P1968, exception, "payload"
- .return ($P1968)
+ getattribute $P1971, exception, "payload"
+ .return ($P1971)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>" :subid("111_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1972
-.annotate "line", 699
- new $P1971, 'ExceptionHandler'
- set_addr $P1971, control_1970
- $P1971."handle_types"(58)
- push_eh $P1971
+.sub "quote:sym<Q:PIR>" :subid("111_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_1975
+.annotate "line", 702
+ new $P1974, 'ExceptionHandler'
+ set_addr $P1974, control_1973
+ $P1974."handle_types"(58)
+ push_eh $P1974
.lex "self", self
- .lex "$/", param_1972
-.annotate "line", 700
- find_lex $P1973, "$/"
- get_hll_global $P1974, ["PAST"], "Op"
- find_lex $P1975, "$/"
- unless_null $P1975, vivify_573
- new $P1975, "Hash"
+ .lex "$/", param_1975
+.annotate "line", 703
+ find_lex $P1976, "$/"
+ get_hll_global $P1977, ["PAST"], "Op"
+ find_lex $P1978, "$/"
+ unless_null $P1978, vivify_573
+ $P1978 = root_new ['parrot';'Hash']
vivify_573:
- set $P1976, $P1975["quote_EXPR"]
- unless_null $P1976, vivify_574
- new $P1976, "Undef"
+ set $P1979, $P1978["quote_EXPR"]
+ unless_null $P1979, vivify_574
+ new $P1979, "Undef"
vivify_574:
- $P1977 = $P1976."ast"()
- $P1978 = $P1977."value"()
- find_lex $P1979, "$/"
- $P1980 = $P1974."new"($P1978 :named("inline"), "inline" :named("pasttype"), $P1979 :named("node"))
- $P1981 = $P1973."!make"($P1980)
-.annotate "line", 699
- .return ($P1981)
- control_1970:
- .local pmc exception
- .get_results (exception)
- getattribute $P1982, exception, "payload"
- .return ($P1982)
+ $P1980 = $P1979."ast"()
+ $P1981 = $P1980."value"()
+ find_lex $P1982, "$/"
+ $P1983 = $P1977."new"($P1981 :named("inline"), "inline" :named("pasttype"), $P1982 :named("node"))
+ $P1984 = $P1976."!make"($P1983)
+.annotate "line", 702
+ .return ($P1984)
+ control_1973:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1985, exception, "payload"
+ .return ($P1985)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym</ />" :subid("112_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_1986
- .param pmc param_1987 :optional
- .param int has_param_1987 :opt_flag
-.annotate "line", 705
- new $P1985, 'ExceptionHandler'
- set_addr $P1985, control_1984
- $P1985."handle_types"(58)
- push_eh $P1985
- .lex "self", self
- .lex "$/", param_1986
- if has_param_1987, optparam_575
- new $P1988, "Undef"
- set param_1987, $P1988
+.sub "quote:sym</ />" :subid("112_1267204714.47172") :method :outer("11_1267204714.47172")
+ .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)
+ push_eh $P1988
+ .lex "self", self
+ .lex "$/", param_1989
+ if has_param_1990, optparam_575
+ new $P1991, "Undef"
+ set param_1990, $P1991
optparam_575:
- .lex "$key", param_1987
-.annotate "line", 715
- new $P1989, "Undef"
- .lex "$regex", $P1989
-.annotate "line", 717
- new $P1990, "Undef"
- .lex "$past", $P1990
-.annotate "line", 706
- find_lex $P1992, "$key"
- set $S1993, $P1992
- iseq $I1994, $S1993, "open"
- unless $I1994, if_1991_end
-.annotate "line", 707
+ .lex "$key", param_1990
+.annotate "line", 718
+ new $P1992, "Undef"
+ .lex "$regex", $P1992
+.annotate "line", 720
+ new $P1993, "Undef"
+ .lex "$past", $P1993
+.annotate "line", 709
+ find_lex $P1995, "$key"
+ set $S1996, $P1995
+ iseq $I1997, $S1996, "open"
+ unless $I1997, if_1994_end
+.annotate "line", 710
null $P0
set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-.annotate "line", 711
- get_global $P1995, "@BLOCK"
- unless_null $P1995, vivify_576
- new $P1995, "ResizablePMCArray"
+.annotate "line", 714
+ get_global $P1998, "@BLOCK"
+ unless_null $P1998, vivify_576
+ $P1998 = root_new ['parrot';'ResizablePMCArray']
vivify_576:
- set $P1996, $P1995[0]
- unless_null $P1996, vivify_577
- new $P1996, "Undef"
+ set $P1999, $P1998[0]
+ unless_null $P1999, vivify_577
+ new $P1999, "Undef"
vivify_577:
- $P1996."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate "line", 712
- get_global $P1997, "@BLOCK"
- unless_null $P1997, vivify_578
- new $P1997, "ResizablePMCArray"
+ $P1999."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate "line", 715
+ get_global $P2000, "@BLOCK"
+ unless_null $P2000, vivify_578
+ $P2000 = root_new ['parrot';'ResizablePMCArray']
vivify_578:
- set $P1998, $P1997[0]
- unless_null $P1998, vivify_579
- new $P1998, "Undef"
+ set $P2001, $P2000[0]
+ unless_null $P2001, vivify_579
+ new $P2001, "Undef"
vivify_579:
- $P1998."symbol"("$/", "lexical" :named("scope"))
-.annotate "line", 713
- new $P1999, "Exception"
- set $P1999['type'], 58
- new $P2000, "Integer"
- assign $P2000, 0
- setattribute $P1999, 'payload', $P2000
- throw $P1999
- if_1991_end:
+ $P2001."symbol"("$/", "lexical" :named("scope"))
.annotate "line", 716
- get_hll_global $P2001, ["Regex";"P6Regex";"Actions"], "buildsub"
- find_lex $P2002, "$/"
- unless_null $P2002, vivify_580
- new $P2002, "Hash"
+ new $P2002, "Exception"
+ set $P2002['type'], 58
+ new $P2003, "Integer"
+ assign $P2003, 0
+ setattribute $P2002, 'payload', $P2003
+ throw $P2002
+ if_1994_end:
+.annotate "line", 719
+ get_hll_global $P2004, ["Regex";"P6Regex";"Actions"], "buildsub"
+ find_lex $P2005, "$/"
+ unless_null $P2005, vivify_580
+ $P2005 = root_new ['parrot';'Hash']
vivify_580:
- set $P2003, $P2002["p6regex"]
- unless_null $P2003, vivify_581
- new $P2003, "Undef"
+ set $P2006, $P2005["p6regex"]
+ unless_null $P2006, vivify_581
+ new $P2006, "Undef"
vivify_581:
- $P2004 = $P2003."ast"()
- get_global $P2005, "@BLOCK"
- $P2006 = $P2005."shift"()
- $P2007 = $P2001($P2004, $P2006)
- store_lex "$regex", $P2007
-.annotate "line", 718
- get_hll_global $P2008, ["PAST"], "Op"
-.annotate "line", 720
- get_hll_global $P2009, ["PAST"], "Var"
- new $P2010, "ResizablePMCArray"
- push $P2010, "Regex"
- $P2011 = $P2009."new"("Regex" :named("name"), $P2010 :named("namespace"), "package" :named("scope"))
- find_lex $P2012, "$regex"
- $P2013 = $P2008."new"($P2011, $P2012, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate "line", 718
- store_lex "$past", $P2013
-.annotate "line", 724
- find_lex $P2014, "$regex"
- find_lex $P2015, "$past"
- unless_null $P2015, vivify_582
- new $P2015, "Hash"
- store_lex "$past", $P2015
+ $P2007 = $P2006."ast"()
+ get_global $P2008, "@BLOCK"
+ $P2009 = $P2008."shift"()
+ $P2010 = $P2004($P2007, $P2009)
+ store_lex "$regex", $P2010
+.annotate "line", 721
+ get_hll_global $P2011, ["PAST"], "Op"
+.annotate "line", 723
+ get_hll_global $P2012, ["PAST"], "Var"
+ new $P2013, "ResizablePMCArray"
+ push $P2013, "Regex"
+ $P2014 = $P2012."new"("Regex" :named("name"), $P2013 :named("namespace"), "package" :named("scope"))
+ find_lex $P2015, "$regex"
+ $P2016 = $P2011."new"($P2014, $P2015, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate "line", 721
+ store_lex "$past", $P2016
+.annotate "line", 727
+ find_lex $P2017, "$regex"
+ find_lex $P2018, "$past"
+ unless_null $P2018, vivify_582
+ $P2018 = root_new ['parrot';'Hash']
+ store_lex "$past", $P2018
vivify_582:
- set $P2015["sink"], $P2014
-.annotate "line", 725
- find_lex $P2016, "$/"
- find_lex $P2017, "$past"
- $P2018 = $P2016."!make"($P2017)
-.annotate "line", 705
- .return ($P2018)
- control_1984:
+ set $P2018["sink"], $P2017
+.annotate "line", 728
+ find_lex $P2019, "$/"
+ find_lex $P2020, "$past"
+ $P2021 = $P2019."!make"($P2020)
+.annotate "line", 708
+ .return ($P2021)
+ control_1987:
.local pmc exception
.get_results (exception)
- getattribute $P2019, exception, "payload"
- .return ($P2019)
+ getattribute $P2022, exception, "payload"
+ .return ($P2022)
.end
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>" :subid("113_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_2023
-.annotate "line", 728
- new $P2022, 'ExceptionHandler'
- set_addr $P2022, control_2021
- $P2022."handle_types"(58)
- push_eh $P2022
- .lex "self", self
- .lex "$/", param_2023
- find_lex $P2024, "$/"
- find_lex $P2025, "$/"
- unless_null $P2025, vivify_583
- new $P2025, "Hash"
+.sub "quote_escape:sym<$>" :subid("113_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_2026
+.annotate "line", 731
+ new $P2025, 'ExceptionHandler'
+ set_addr $P2025, control_2024
+ $P2025."handle_types"(58)
+ push_eh $P2025
+ .lex "self", self
+ .lex "$/", param_2026
+ find_lex $P2027, "$/"
+ find_lex $P2028, "$/"
+ unless_null $P2028, vivify_583
+ $P2028 = root_new ['parrot';'Hash']
vivify_583:
- set $P2026, $P2025["variable"]
- unless_null $P2026, vivify_584
- new $P2026, "Undef"
+ set $P2029, $P2028["variable"]
+ unless_null $P2029, vivify_584
+ new $P2029, "Undef"
vivify_584:
- $P2027 = $P2026."ast"()
- $P2028 = $P2024."!make"($P2027)
- .return ($P2028)
- control_2021:
- .local pmc exception
- .get_results (exception)
- getattribute $P2029, exception, "payload"
- .return ($P2029)
+ $P2030 = $P2029."ast"()
+ $P2031 = $P2027."!make"($P2030)
+ .return ($P2031)
+ control_2024:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2032, exception, "payload"
+ .return ($P2032)
.end
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>" :subid("114_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_2033
-.annotate "line", 729
- new $P2032, 'ExceptionHandler'
- set_addr $P2032, control_2031
- $P2032."handle_types"(58)
- push_eh $P2032
- .lex "self", self
- .lex "$/", param_2033
-.annotate "line", 730
- find_lex $P2034, "$/"
- get_hll_global $P2035, ["PAST"], "Op"
-.annotate "line", 731
- find_lex $P2036, "$/"
- unless_null $P2036, vivify_585
- new $P2036, "Hash"
+.sub "quote_escape:sym<{ }>" :subid("114_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_2036
+.annotate "line", 732
+ new $P2035, 'ExceptionHandler'
+ set_addr $P2035, control_2034
+ $P2035."handle_types"(58)
+ push_eh $P2035
+ .lex "self", self
+ .lex "$/", param_2036
+.annotate "line", 733
+ find_lex $P2037, "$/"
+ get_hll_global $P2038, ["PAST"], "Op"
+.annotate "line", 734
+ find_lex $P2039, "$/"
+ unless_null $P2039, vivify_585
+ $P2039 = root_new ['parrot';'Hash']
vivify_585:
- set $P2037, $P2036["block"]
- unless_null $P2037, vivify_586
- new $P2037, "Undef"
+ set $P2040, $P2039["block"]
+ unless_null $P2040, vivify_586
+ new $P2040, "Undef"
vivify_586:
- $P2038 = $P2037."ast"()
- $P2039 = "block_immediate"($P2038)
- find_lex $P2040, "$/"
- $P2041 = $P2035."new"($P2039, "set S*" :named("pirop"), $P2040 :named("node"))
-.annotate "line", 730
- $P2042 = $P2034."!make"($P2041)
-.annotate "line", 729
- .return ($P2042)
- control_2031:
- .local pmc exception
- .get_results (exception)
- getattribute $P2043, exception, "payload"
- .return ($P2043)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>" :subid("115_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_2047
-.annotate "line", 737
- new $P2046, 'ExceptionHandler'
- set_addr $P2046, control_2045
- $P2046."handle_types"(58)
- push_eh $P2046
- .lex "self", self
- .lex "$/", param_2047
- find_lex $P2048, "$/"
- find_lex $P2049, "$/"
- unless_null $P2049, vivify_587
- new $P2049, "Hash"
- vivify_587:
- set $P2050, $P2049["dotty"]
- unless_null $P2050, vivify_588
- new $P2050, "Undef"
- vivify_588:
- $P2051 = $P2050."ast"()
- $P2052 = $P2048."!make"($P2051)
- .return ($P2052)
- control_2045:
+ $P2041 = $P2040."ast"()
+ $P2042 = "block_immediate"($P2041)
+ find_lex $P2043, "$/"
+ $P2044 = $P2038."new"($P2042, "set S*" :named("pirop"), $P2043 :named("node"))
+.annotate "line", 733
+ $P2045 = $P2037."!make"($P2044)
+.annotate "line", 732
+ .return ($P2045)
+ control_2034:
.local pmc exception
.get_results (exception)
- getattribute $P2053, exception, "payload"
- .return ($P2053)
+ getattribute $P2046, exception, "payload"
+ .return ($P2046)
.end
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>" :subid("116_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_2057
-.annotate "line", 739
- new $P2056, 'ExceptionHandler'
- set_addr $P2056, control_2055
- $P2056."handle_types"(58)
- push_eh $P2056
- .lex "self", self
- .lex "$/", param_2057
+.sub "postfix:sym<.>" :subid("115_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_2050
.annotate "line", 740
- find_lex $P2058, "$/"
- get_hll_global $P2059, ["PAST"], "Op"
-.annotate "line", 741
- new $P2060, "ResizablePMCArray"
- push $P2060, " clone %r, %0"
- push $P2060, " inc %0"
- $P2061 = $P2059."new"("postfix:<++>" :named("name"), $P2060 :named("inline"), "inline" :named("pasttype"))
-.annotate "line", 740
- $P2062 = $P2058."!make"($P2061)
-.annotate "line", 739
- .return ($P2062)
- control_2055:
- .local pmc exception
- .get_results (exception)
- getattribute $P2063, exception, "payload"
- .return ($P2063)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->" :subid("117_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_2067
-.annotate "line", 745
- new $P2066, 'ExceptionHandler'
- set_addr $P2066, control_2065
- $P2066."handle_types"(58)
- push_eh $P2066
- .lex "self", self
- .lex "$/", param_2067
-.annotate "line", 746
- find_lex $P2068, "$/"
- get_hll_global $P2069, ["PAST"], "Op"
-.annotate "line", 747
- new $P2070, "ResizablePMCArray"
- push $P2070, " clone %r, %0"
- push $P2070, " dec %0"
- $P2071 = $P2069."new"("postfix:<-->" :named("name"), $P2070 :named("inline"), "inline" :named("pasttype"))
-.annotate "line", 746
- $P2072 = $P2068."!make"($P2071)
-.annotate "line", 745
- .return ($P2072)
- control_2065:
- .local pmc exception
- .get_results (exception)
- getattribute $P2073, exception, "payload"
- .return ($P2073)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>" :subid("118_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_2077
-.annotate "line", 751
- new $P2076, 'ExceptionHandler'
- set_addr $P2076, control_2075
- $P2076."handle_types"(58)
- push_eh $P2076
- .lex "self", self
- .lex "$/", param_2077
-.annotate "line", 752
- find_lex $P2078, "$/"
- get_hll_global $P2079, ["PAST"], "Op"
-.annotate "line", 753
- get_hll_global $P2080, ["PAST"], "Var"
- $P2081 = $P2080."new"("$/" :named("name"), "contextual" :named("scope"))
- find_lex $P2082, "$/"
- $P2083 = $P2079."new"($P2081, "callmethod" :named("pasttype"), "!make" :named("name"), $P2082 :named("node"))
-.annotate "line", 752
- $P2084 = $P2078."!make"($P2083)
-.annotate "line", 751
- .return ($P2084)
- control_2075:
- .local pmc exception
- .get_results (exception)
- getattribute $P2085, exception, "payload"
- .return ($P2085)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>" :subid("119_1261064035.64813") :method :outer("11_1261064035.64813")
- .param pmc param_2089
-.annotate "line", 760
- new $P2088, 'ExceptionHandler'
- set_addr $P2088, control_2087
- $P2088."handle_types"(58)
- push_eh $P2088
- .lex "self", self
- .lex "$/", param_2089
-.annotate "line", 761
- find_lex $P2090, "$/"
- get_hll_global $P2091, ["PAST"], "Op"
- find_lex $P2092, "$/"
- $P2093 = $P2091."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2092 :named("node"))
- $P2094 = $P2090."!make"($P2093)
-.annotate "line", 760
- .return ($P2094)
- control_2087:
+ new $P2049, 'ExceptionHandler'
+ set_addr $P2049, control_2048
+ $P2049."handle_types"(58)
+ push_eh $P2049
+ .lex "self", self
+ .lex "$/", param_2050
+ find_lex $P2051, "$/"
+ find_lex $P2052, "$/"
+ unless_null $P2052, vivify_587
+ $P2052 = root_new ['parrot';'Hash']
+ vivify_587:
+ set $P2053, $P2052["dotty"]
+ unless_null $P2053, vivify_588
+ new $P2053, "Undef"
+ vivify_588:
+ $P2054 = $P2053."ast"()
+ $P2055 = $P2051."!make"($P2054)
+ .return ($P2055)
+ control_2048:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2056, exception, "payload"
+ .return ($P2056)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "postfix:sym<++>" :subid("116_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_2060
+.annotate "line", 742
+ new $P2059, 'ExceptionHandler'
+ set_addr $P2059, control_2058
+ $P2059."handle_types"(58)
+ push_eh $P2059
+ .lex "self", self
+ .lex "$/", param_2060
+.annotate "line", 743
+ find_lex $P2061, "$/"
+ get_hll_global $P2062, ["PAST"], "Op"
+.annotate "line", 744
+ new $P2063, "ResizablePMCArray"
+ push $P2063, " clone %r, %0"
+ push $P2063, " inc %0"
+ $P2064 = $P2062."new"("postfix:<++>" :named("name"), $P2063 :named("inline"), "inline" :named("pasttype"))
+.annotate "line", 743
+ $P2065 = $P2061."!make"($P2064)
+.annotate "line", 742
+ .return ($P2065)
+ control_2058:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2066, exception, "payload"
+ .return ($P2066)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "postfix:sym<-->" :subid("117_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_2070
+.annotate "line", 748
+ new $P2069, 'ExceptionHandler'
+ set_addr $P2069, control_2068
+ $P2069."handle_types"(58)
+ push_eh $P2069
+ .lex "self", self
+ .lex "$/", param_2070
+.annotate "line", 749
+ find_lex $P2071, "$/"
+ get_hll_global $P2072, ["PAST"], "Op"
+.annotate "line", 750
+ new $P2073, "ResizablePMCArray"
+ push $P2073, " clone %r, %0"
+ push $P2073, " dec %0"
+ $P2074 = $P2072."new"("postfix:<-->" :named("name"), $P2073 :named("inline"), "inline" :named("pasttype"))
+.annotate "line", 749
+ $P2075 = $P2071."!make"($P2074)
+.annotate "line", 748
+ .return ($P2075)
+ control_2068:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2076, exception, "payload"
+ .return ($P2076)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "prefix:sym<make>" :subid("118_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_2080
+.annotate "line", 754
+ new $P2079, 'ExceptionHandler'
+ set_addr $P2079, control_2078
+ $P2079."handle_types"(58)
+ push_eh $P2079
+ .lex "self", self
+ .lex "$/", param_2080
+.annotate "line", 755
+ find_lex $P2081, "$/"
+ get_hll_global $P2082, ["PAST"], "Op"
+.annotate "line", 756
+ get_hll_global $P2083, ["PAST"], "Var"
+ $P2084 = $P2083."new"("$/" :named("name"), "contextual" :named("scope"))
+ find_lex $P2085, "$/"
+ $P2086 = $P2082."new"($P2084, "callmethod" :named("pasttype"), "!make" :named("name"), $P2085 :named("node"))
+.annotate "line", 755
+ $P2087 = $P2081."!make"($P2086)
+.annotate "line", 754
+ .return ($P2087)
+ control_2078:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2088, exception, "payload"
+ .return ($P2088)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "infix:sym<~~>" :subid("119_1267204714.47172") :method :outer("11_1267204714.47172")
+ .param pmc param_2092
+.annotate "line", 763
+ new $P2091, 'ExceptionHandler'
+ set_addr $P2091, control_2090
+ $P2091."handle_types"(58)
+ push_eh $P2091
+ .lex "self", self
+ .lex "$/", param_2092
+.annotate "line", 764
+ find_lex $P2093, "$/"
+ get_hll_global $P2094, ["PAST"], "Op"
+ find_lex $P2095, "$/"
+ $P2096 = $P2094."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2095 :named("node"))
+ $P2097 = $P2093."!make"($P2096)
+.annotate "line", 763
+ .return ($P2097)
+ control_2090:
.local pmc exception
.get_results (exception)
- getattribute $P2095, exception, "payload"
- .return ($P2095)
+ getattribute $P2098, exception, "payload"
+ .return ($P2098)
.end
.namespace ["NQP";"RegexActions"]
-.sub "_block2096" :subid("120_1261064035.64813") :outer("11_1261064035.64813")
-.annotate "line", 765
- .const 'Sub' $P2132 = "124_1261064035.64813"
- capture_lex $P2132
- .const 'Sub' $P2122 = "123_1261064035.64813"
- capture_lex $P2122
- .const 'Sub' $P2112 = "122_1261064035.64813"
- capture_lex $P2112
- .const 'Sub' $P2098 = "121_1261064035.64813"
- capture_lex $P2098
-.annotate "line", 776
- .const 'Sub' $P2132 = "124_1261064035.64813"
- capture_lex $P2132
-.annotate "line", 765
- .return ($P2132)
+.sub "_block2099" :subid("120_1267204714.47172") :outer("11_1267204714.47172")
+.annotate "line", 768
+ .const 'Sub' $P2135 = "124_1267204714.47172"
+ capture_lex $P2135
+ .const 'Sub' $P2125 = "123_1267204714.47172"
+ capture_lex $P2125
+ .const 'Sub' $P2115 = "122_1267204714.47172"
+ capture_lex $P2115
+ .const 'Sub' $P2101 = "121_1267204714.47172"
+ capture_lex $P2101
+.annotate "line", 779
+ .const 'Sub' $P2135 = "124_1267204714.47172"
+ capture_lex $P2135
+.annotate "line", 768
+ .return ($P2135)
.end
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>" :subid("121_1261064035.64813") :method :outer("120_1261064035.64813")
- .param pmc param_2101
-.annotate "line", 767
- new $P2100, 'ExceptionHandler'
- set_addr $P2100, control_2099
- $P2100."handle_types"(58)
- push_eh $P2100
- .lex "self", self
- .lex "$/", param_2101
-.annotate "line", 768
- new $P2102, "Undef"
- .lex "$past", $P2102
- find_lex $P2103, "$/"
- unless_null $P2103, vivify_589
- new $P2103, "Hash"
+.sub "metachar:sym<:my>" :subid("121_1267204714.47172") :method :outer("120_1267204714.47172")
+ .param pmc param_2104
+.annotate "line", 770
+ new $P2103, 'ExceptionHandler'
+ set_addr $P2103, control_2102
+ $P2103."handle_types"(58)
+ push_eh $P2103
+ .lex "self", self
+ .lex "$/", param_2104
+.annotate "line", 771
+ new $P2105, "Undef"
+ .lex "$past", $P2105
+ find_lex $P2106, "$/"
+ unless_null $P2106, vivify_589
+ $P2106 = root_new ['parrot';'Hash']
vivify_589:
- set $P2104, $P2103["statement"]
- unless_null $P2104, vivify_590
- new $P2104, "Undef"
+ set $P2107, $P2106["statement"]
+ unless_null $P2107, vivify_590
+ new $P2107, "Undef"
vivify_590:
- $P2105 = $P2104."ast"()
- store_lex "$past", $P2105
-.annotate "line", 769
- find_lex $P2106, "$/"
- get_hll_global $P2107, ["PAST"], "Regex"
- find_lex $P2108, "$past"
- $P2109 = $P2107."new"($P2108, "pastnode" :named("pasttype"))
- $P2110 = $P2106."!make"($P2109)
-.annotate "line", 767
- .return ($P2110)
- control_2099:
+ $P2108 = $P2107."ast"()
+ store_lex "$past", $P2108
+.annotate "line", 772
+ find_lex $P2109, "$/"
+ get_hll_global $P2110, ["PAST"], "Regex"
+ find_lex $P2111, "$past"
+ $P2112 = $P2110."new"($P2111, "pastnode" :named("pasttype"))
+ $P2113 = $P2109."!make"($P2112)
+.annotate "line", 770
+ .return ($P2113)
+ control_2102:
.local pmc exception
.get_results (exception)
- getattribute $P2111, exception, "payload"
- .return ($P2111)
+ getattribute $P2114, exception, "payload"
+ .return ($P2114)
.end
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>" :subid("122_1261064035.64813") :method :outer("120_1261064035.64813")
- .param pmc param_2115
-.annotate "line", 772
- new $P2114, 'ExceptionHandler'
- set_addr $P2114, control_2113
- $P2114."handle_types"(58)
- push_eh $P2114
- .lex "self", self
- .lex "$/", param_2115
- find_lex $P2116, "$/"
- find_lex $P2117, "$/"
- unless_null $P2117, vivify_591
- new $P2117, "Hash"
+.sub "metachar:sym<{ }>" :subid("122_1267204714.47172") :method :outer("120_1267204714.47172")
+ .param pmc param_2118
+.annotate "line", 775
+ new $P2117, 'ExceptionHandler'
+ set_addr $P2117, control_2116
+ $P2117."handle_types"(58)
+ push_eh $P2117
+ .lex "self", self
+ .lex "$/", param_2118
+ find_lex $P2119, "$/"
+ find_lex $P2120, "$/"
+ unless_null $P2120, vivify_591
+ $P2120 = root_new ['parrot';'Hash']
vivify_591:
- set $P2118, $P2117["codeblock"]
- unless_null $P2118, vivify_592
- new $P2118, "Undef"
+ set $P2121, $P2120["codeblock"]
+ unless_null $P2121, vivify_592
+ new $P2121, "Undef"
vivify_592:
- $P2119 = $P2118."ast"()
- $P2120 = $P2116."!make"($P2119)
- .return ($P2120)
- control_2113:
+ $P2122 = $P2121."ast"()
+ $P2123 = $P2119."!make"($P2122)
+ .return ($P2123)
+ control_2116:
.local pmc exception
.get_results (exception)
- getattribute $P2121, exception, "payload"
- .return ($P2121)
+ getattribute $P2124, exception, "payload"
+ .return ($P2124)
.end
.namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>" :subid("123_1261064035.64813") :method :outer("120_1261064035.64813")
- .param pmc param_2125
-.annotate "line", 774
- new $P2124, 'ExceptionHandler'
- set_addr $P2124, control_2123
- $P2124."handle_types"(58)
- push_eh $P2124
- .lex "self", self
- .lex "$/", param_2125
- find_lex $P2126, "$/"
- find_lex $P2127, "$/"
- unless_null $P2127, vivify_593
- new $P2127, "Hash"
+.sub "assertion:sym<{ }>" :subid("123_1267204714.47172") :method :outer("120_1267204714.47172")
+ .param pmc param_2128
+.annotate "line", 777
+ new $P2127, 'ExceptionHandler'
+ set_addr $P2127, control_2126
+ $P2127."handle_types"(58)
+ push_eh $P2127
+ .lex "self", self
+ .lex "$/", param_2128
+ find_lex $P2129, "$/"
+ find_lex $P2130, "$/"
+ unless_null $P2130, vivify_593
+ $P2130 = root_new ['parrot';'Hash']
vivify_593:
- set $P2128, $P2127["codeblock"]
- unless_null $P2128, vivify_594
- new $P2128, "Undef"
+ set $P2131, $P2130["codeblock"]
+ unless_null $P2131, vivify_594
+ new $P2131, "Undef"
vivify_594:
- $P2129 = $P2128."ast"()
- $P2130 = $P2126."!make"($P2129)
- .return ($P2130)
- control_2123:
+ $P2132 = $P2131."ast"()
+ $P2133 = $P2129."!make"($P2132)
+ .return ($P2133)
+ control_2126:
.local pmc exception
.get_results (exception)
- getattribute $P2131, exception, "payload"
- .return ($P2131)
+ getattribute $P2134, exception, "payload"
+ .return ($P2134)
.end
.namespace ["NQP";"RegexActions"]
-.sub "codeblock" :subid("124_1261064035.64813") :method :outer("120_1261064035.64813")
- .param pmc param_2135
-.annotate "line", 776
- new $P2134, 'ExceptionHandler'
- set_addr $P2134, control_2133
- $P2134."handle_types"(58)
- push_eh $P2134
- .lex "self", self
- .lex "$/", param_2135
-.annotate "line", 777
- new $P2136, "Undef"
- .lex "$block", $P2136
+.sub "codeblock" :subid("124_1267204714.47172") :method :outer("120_1267204714.47172")
+ .param pmc param_2138
.annotate "line", 779
- new $P2137, "Undef"
- .lex "$past", $P2137
-.annotate "line", 777
- find_lex $P2138, "$/"
- unless_null $P2138, vivify_595
- new $P2138, "Hash"
- vivify_595:
- set $P2139, $P2138["block"]
- unless_null $P2139, vivify_596
+ new $P2137, 'ExceptionHandler'
+ set_addr $P2137, control_2136
+ $P2137."handle_types"(58)
+ push_eh $P2137
+ .lex "self", self
+ .lex "$/", param_2138
+.annotate "line", 780
new $P2139, "Undef"
- vivify_596:
- $P2140 = $P2139."ast"()
- store_lex "$block", $P2140
-.annotate "line", 778
- find_lex $P2141, "$block"
- $P2141."blocktype"("immediate")
+ .lex "$block", $P2139
+.annotate "line", 782
+ new $P2140, "Undef"
+ .lex "$past", $P2140
.annotate "line", 780
- get_hll_global $P2142, ["PAST"], "Regex"
+ find_lex $P2141, "$/"
+ unless_null $P2141, vivify_595
+ $P2141 = root_new ['parrot';'Hash']
+ vivify_595:
+ set $P2142, $P2141["block"]
+ unless_null $P2142, vivify_596
+ new $P2142, "Undef"
+ vivify_596:
+ $P2143 = $P2142."ast"()
+ store_lex "$block", $P2143
.annotate "line", 781
- get_hll_global $P2143, ["PAST"], "Stmts"
-.annotate "line", 782
- get_hll_global $P2144, ["PAST"], "Op"
+ find_lex $P2144, "$block"
+ $P2144."blocktype"("immediate")
.annotate "line", 783
- get_hll_global $P2145, ["PAST"], "Var"
- $P2146 = $P2145."new"("$/" :named("name"))
+ get_hll_global $P2145, ["PAST"], "Regex"
.annotate "line", 784
- get_hll_global $P2147, ["PAST"], "Op"
+ get_hll_global $P2146, ["PAST"], "Stmts"
.annotate "line", 785
+ get_hll_global $P2147, ["PAST"], "Op"
+.annotate "line", 786
get_hll_global $P2148, ["PAST"], "Var"
- $P2149 = $P2148."new"(unicode:"$\x{a2}" :named("name"))
- $P2150 = $P2147."new"($P2149, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+ $P2149 = $P2148."new"("$/" :named("name"))
+.annotate "line", 787
+ get_hll_global $P2150, ["PAST"], "Op"
+.annotate "line", 788
+ get_hll_global $P2151, ["PAST"], "Var"
+ $P2152 = $P2151."new"(unicode:"$\x{a2}" :named("name"))
+ $P2153 = $P2150."new"($P2152, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+.annotate "line", 787
+ $P2154 = $P2147."new"($P2149, $P2153, "bind" :named("pasttype"))
+.annotate "line", 785
+ find_lex $P2155, "$block"
+ $P2156 = $P2146."new"($P2154, $P2155)
.annotate "line", 784
- $P2151 = $P2144."new"($P2146, $P2150, "bind" :named("pasttype"))
-.annotate "line", 782
- find_lex $P2152, "$block"
- $P2153 = $P2143."new"($P2151, $P2152)
-.annotate "line", 781
- $P2154 = $P2142."new"($P2153, "pastnode" :named("pasttype"))
-.annotate "line", 780
- store_lex "$past", $P2154
-.annotate "line", 795
- find_lex $P2155, "$/"
- find_lex $P2156, "$past"
- $P2157 = $P2155."!make"($P2156)
-.annotate "line", 776
- .return ($P2157)
- control_2133:
+ $P2157 = $P2145."new"($P2156, "pastnode" :named("pasttype"))
+.annotate "line", 783
+ store_lex "$past", $P2157
+.annotate "line", 798
+ find_lex $P2158, "$/"
+ find_lex $P2159, "$past"
+ $P2160 = $P2158."!make"($P2159)
+.annotate "line", 779
+ .return ($P2160)
+ control_2136:
.local pmc exception
.get_results (exception)
- getattribute $P2158, exception, "payload"
- .return ($P2158)
+ getattribute $P2161, exception, "payload"
+ .return ($P2161)
.end
### .include 'src/cheats/nqp-builtins.pir'
Modified: branches/ops_pct/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/ops_pct/ext/nqp-rx/src/stage0/P6Regex-s0.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/ext/nqp-rx/src/stage0/P6Regex-s0.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -16,7 +16,7 @@
### .include 'gen/p6regex-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064009.3328")
+.sub "_block11" :anon :subid("10_1267204688.82934")
.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_1261064009.3328")
+.sub "" :load :init :subid("post158") :outer("10_1267204688.82934")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064009.3328"
+ .const 'Sub' $P12 = "10_1267204688.82934"
.local pmc block
set block, $P12
$P580 = get_root_global ["parrot"], "P6metaclass"
@@ -41,140 +41,140 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13" :subid("11_1261064009.3328") :outer("10_1261064009.3328")
+.sub "_block13" :subid("11_1267204688.82934") :outer("10_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P571 = "156_1261064009.3328"
+ .const 'Sub' $P571 = "156_1267204688.82934"
capture_lex $P571
- .const 'Sub' $P563 = "154_1261064009.3328"
+ .const 'Sub' $P563 = "154_1267204688.82934"
capture_lex $P563
- .const 'Sub' $P555 = "152_1261064009.3328"
+ .const 'Sub' $P555 = "152_1267204688.82934"
capture_lex $P555
- .const 'Sub' $P534 = "147_1261064009.3328"
+ .const 'Sub' $P534 = "147_1267204688.82934"
capture_lex $P534
- .const 'Sub' $P499 = "141_1261064009.3328"
+ .const 'Sub' $P499 = "141_1267204688.82934"
capture_lex $P499
- .const 'Sub' $P487 = "138_1261064009.3328"
+ .const 'Sub' $P487 = "138_1267204688.82934"
capture_lex $P487
- .const 'Sub' $P474 = "135_1261064009.3328"
+ .const 'Sub' $P474 = "135_1267204688.82934"
capture_lex $P474
- .const 'Sub' $P468 = "133_1261064009.3328"
+ .const 'Sub' $P468 = "133_1267204688.82934"
capture_lex $P468
- .const 'Sub' $P457 = "130_1261064009.3328"
+ .const 'Sub' $P457 = "130_1267204688.82934"
capture_lex $P457
- .const 'Sub' $P446 = "127_1261064009.3328"
+ .const 'Sub' $P446 = "127_1267204688.82934"
capture_lex $P446
- .const 'Sub' $P437 = "123_1261064009.3328"
+ .const 'Sub' $P437 = "123_1267204688.82934"
capture_lex $P437
- .const 'Sub' $P431 = "121_1261064009.3328"
+ .const 'Sub' $P431 = "121_1267204688.82934"
capture_lex $P431
- .const 'Sub' $P425 = "119_1261064009.3328"
+ .const 'Sub' $P425 = "119_1267204688.82934"
capture_lex $P425
- .const 'Sub' $P419 = "117_1261064009.3328"
+ .const 'Sub' $P419 = "117_1267204688.82934"
capture_lex $P419
- .const 'Sub' $P413 = "115_1261064009.3328"
+ .const 'Sub' $P413 = "115_1267204688.82934"
capture_lex $P413
- .const 'Sub' $P402 = "113_1261064009.3328"
- capture_lex $P402
- .const 'Sub' $P391 = "111_1261064009.3328"
- capture_lex $P391
- .const 'Sub' $P383 = "109_1261064009.3328"
+ .const 'Sub' $P405 = "113_1267204688.82934"
+ capture_lex $P405
+ .const 'Sub' $P394 = "111_1267204688.82934"
+ capture_lex $P394
+ .const 'Sub' $P383 = "109_1267204688.82934"
capture_lex $P383
- .const 'Sub' $P377 = "107_1261064009.3328"
+ .const 'Sub' $P377 = "107_1267204688.82934"
capture_lex $P377
- .const 'Sub' $P371 = "105_1261064009.3328"
+ .const 'Sub' $P371 = "105_1267204688.82934"
capture_lex $P371
- .const 'Sub' $P365 = "103_1261064009.3328"
+ .const 'Sub' $P365 = "103_1267204688.82934"
capture_lex $P365
- .const 'Sub' $P359 = "101_1261064009.3328"
+ .const 'Sub' $P359 = "101_1267204688.82934"
capture_lex $P359
- .const 'Sub' $P353 = "99_1261064009.3328"
+ .const 'Sub' $P353 = "99_1267204688.82934"
capture_lex $P353
- .const 'Sub' $P347 = "97_1261064009.3328"
+ .const 'Sub' $P347 = "97_1267204688.82934"
capture_lex $P347
- .const 'Sub' $P341 = "95_1261064009.3328"
+ .const 'Sub' $P341 = "95_1267204688.82934"
capture_lex $P341
- .const 'Sub' $P335 = "93_1261064009.3328"
+ .const 'Sub' $P335 = "93_1267204688.82934"
capture_lex $P335
- .const 'Sub' $P323 = "89_1261064009.3328"
+ .const 'Sub' $P323 = "89_1267204688.82934"
capture_lex $P323
- .const 'Sub' $P311 = "87_1261064009.3328"
+ .const 'Sub' $P311 = "87_1267204688.82934"
capture_lex $P311
- .const 'Sub' $P304 = "85_1261064009.3328"
+ .const 'Sub' $P304 = "85_1267204688.82934"
capture_lex $P304
- .const 'Sub' $P287 = "83_1261064009.3328"
+ .const 'Sub' $P287 = "83_1267204688.82934"
capture_lex $P287
- .const 'Sub' $P280 = "81_1261064009.3328"
+ .const 'Sub' $P280 = "81_1267204688.82934"
capture_lex $P280
- .const 'Sub' $P274 = "79_1261064009.3328"
+ .const 'Sub' $P274 = "79_1267204688.82934"
capture_lex $P274
- .const 'Sub' $P268 = "77_1261064009.3328"
+ .const 'Sub' $P268 = "77_1267204688.82934"
capture_lex $P268
- .const 'Sub' $P261 = "75_1261064009.3328"
+ .const 'Sub' $P261 = "75_1267204688.82934"
capture_lex $P261
- .const 'Sub' $P254 = "73_1261064009.3328"
+ .const 'Sub' $P254 = "73_1267204688.82934"
capture_lex $P254
- .const 'Sub' $P247 = "71_1261064009.3328"
+ .const 'Sub' $P247 = "71_1267204688.82934"
capture_lex $P247
- .const 'Sub' $P240 = "69_1261064009.3328"
+ .const 'Sub' $P240 = "69_1267204688.82934"
capture_lex $P240
- .const 'Sub' $P234 = "67_1261064009.3328"
+ .const 'Sub' $P234 = "67_1267204688.82934"
capture_lex $P234
- .const 'Sub' $P228 = "65_1261064009.3328"
+ .const 'Sub' $P228 = "65_1267204688.82934"
capture_lex $P228
- .const 'Sub' $P222 = "63_1261064009.3328"
+ .const 'Sub' $P222 = "63_1267204688.82934"
capture_lex $P222
- .const 'Sub' $P216 = "61_1261064009.3328"
+ .const 'Sub' $P216 = "61_1267204688.82934"
capture_lex $P216
- .const 'Sub' $P210 = "59_1261064009.3328"
+ .const 'Sub' $P210 = "59_1267204688.82934"
capture_lex $P210
- .const 'Sub' $P205 = "57_1261064009.3328"
+ .const 'Sub' $P205 = "57_1267204688.82934"
capture_lex $P205
- .const 'Sub' $P200 = "55_1261064009.3328"
+ .const 'Sub' $P200 = "55_1267204688.82934"
capture_lex $P200
- .const 'Sub' $P194 = "53_1261064009.3328"
+ .const 'Sub' $P194 = "53_1267204688.82934"
capture_lex $P194
- .const 'Sub' $P188 = "51_1261064009.3328"
+ .const 'Sub' $P188 = "51_1267204688.82934"
capture_lex $P188
- .const 'Sub' $P182 = "49_1261064009.3328"
+ .const 'Sub' $P182 = "49_1267204688.82934"
capture_lex $P182
- .const 'Sub' $P166 = "44_1261064009.3328"
+ .const 'Sub' $P166 = "44_1267204688.82934"
capture_lex $P166
- .const 'Sub' $P154 = "42_1261064009.3328"
+ .const 'Sub' $P154 = "42_1267204688.82934"
capture_lex $P154
- .const 'Sub' $P147 = "40_1261064009.3328"
+ .const 'Sub' $P147 = "40_1267204688.82934"
capture_lex $P147
- .const 'Sub' $P140 = "38_1261064009.3328"
+ .const 'Sub' $P140 = "38_1267204688.82934"
capture_lex $P140
- .const 'Sub' $P133 = "36_1261064009.3328"
+ .const 'Sub' $P133 = "36_1267204688.82934"
capture_lex $P133
- .const 'Sub' $P114 = "31_1261064009.3328"
+ .const 'Sub' $P114 = "31_1267204688.82934"
capture_lex $P114
- .const 'Sub' $P101 = "28_1261064009.3328"
+ .const 'Sub' $P101 = "28_1267204688.82934"
capture_lex $P101
- .const 'Sub' $P94 = "26_1261064009.3328"
+ .const 'Sub' $P94 = "26_1267204688.82934"
capture_lex $P94
- .const 'Sub' $P82 = "24_1261064009.3328"
+ .const 'Sub' $P82 = "24_1267204688.82934"
capture_lex $P82
- .const 'Sub' $P75 = "22_1261064009.3328"
+ .const 'Sub' $P75 = "22_1267204688.82934"
capture_lex $P75
- .const 'Sub' $P63 = "20_1261064009.3328"
+ .const 'Sub' $P63 = "20_1267204688.82934"
capture_lex $P63
- .const 'Sub' $P56 = "18_1261064009.3328"
+ .const 'Sub' $P56 = "18_1267204688.82934"
capture_lex $P56
- .const 'Sub' $P46 = "15_1261064009.3328"
+ .const 'Sub' $P46 = "15_1267204688.82934"
capture_lex $P46
- .const 'Sub' $P38 = "13_1261064009.3328"
+ .const 'Sub' $P38 = "13_1267204688.82934"
capture_lex $P38
- .const 'Sub' $P15 = "12_1261064009.3328"
+ .const 'Sub' $P15 = "12_1267204688.82934"
capture_lex $P15
- .const 'Sub' $P571 = "156_1261064009.3328"
+ .const 'Sub' $P571 = "156_1267204688.82934"
capture_lex $P571
.return ($P571)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs" :subid("12_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "obs" :subid("12_1267204688.82934") :method :outer("11_1267204688.82934")
.param pmc param_18
.param pmc param_19
.param pmc param_20 :optional
@@ -222,7 +222,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws" :subid("13_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "ws" :subid("13_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
.local string rx39_tgt
.local int rx39_pos
@@ -304,7 +304,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws" :subid("14_1261064009.3328") :method
+.sub "!PREFIX__ws" :subid("14_1267204688.82934") :method
.annotate "line", 3
new $P41, "ResizablePMCArray"
push $P41, ""
@@ -313,9 +313,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace" :subid("15_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "normspace" :subid("15_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P52 = "17_1261064009.3328"
+ .const 'Sub' $P52 = "17_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P52 = "17_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__normspace" :subid("16_1267204688.82934") :method
.annotate "line", 3
new $P49, "ResizablePMCArray"
push $P49, ""
@@ -386,7 +386,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51" :anon :subid("17_1261064009.3328") :method :outer("15_1261064009.3328")
+.sub "_block51" :anon :subid("17_1267204688.82934") :method :outer("15_1267204688.82934")
.annotate "line", 10
.local string rx53_tgt
.local int rx53_pos
@@ -454,7 +454,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg" :subid("18_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "arg" :subid("18_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
.local string rx57_tgt
.local int rx57_pos
@@ -565,7 +565,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg" :subid("19_1261064009.3328") :method
+.sub "!PREFIX__arg" :subid("19_1267204688.82934") :method
.annotate "line", 3
new $P59, "ResizablePMCArray"
push $P59, ""
@@ -576,7 +576,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist" :subid("20_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "arglist" :subid("20_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
.local string rx64_tgt
.local int rx64_pos
@@ -682,7 +682,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist" :subid("21_1261064009.3328") :method
+.sub "!PREFIX__arglist" :subid("21_1267204688.82934") :method
.annotate "line", 3
new $P66, "ResizablePMCArray"
push $P66, ""
@@ -691,7 +691,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP" :subid("22_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "TOP" :subid("22_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
.local string rx76_tgt
.local int rx76_pos
@@ -764,7 +764,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP" :subid("23_1261064009.3328") :method
+.sub "!PREFIX__TOP" :subid("23_1267204688.82934") :method
.annotate "line", 3
$P78 = self."!PREFIX__!subrule"("nibbler", "")
new $P79, "ResizablePMCArray"
@@ -774,7 +774,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler" :subid("24_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "nibbler" :subid("24_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
.local string rx83_tgt
.local int rx83_pos
@@ -942,7 +942,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler" :subid("25_1261064009.3328") :method
+.sub "!PREFIX__nibbler" :subid("25_1267204688.82934") :method
.annotate "line", 3
new $P85, "ResizablePMCArray"
push $P85, ""
@@ -951,7 +951,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish" :subid("26_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "termish" :subid("26_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
.local string rx95_tgt
.local int rx95_pos
@@ -1019,7 +1019,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish" :subid("27_1261064009.3328") :method
+.sub "!PREFIX__termish" :subid("27_1267204688.82934") :method
.annotate "line", 3
new $P97, "ResizablePMCArray"
push $P97, ""
@@ -1028,9 +1028,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom" :subid("28_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantified_atom" :subid("28_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P110 = "30_1261064009.3328"
+ .const 'Sub' $P110 = "30_1267204688.82934"
capture_lex $P110
.local string rx102_tgt
.local int rx102_pos
@@ -1040,7 +1040,7 @@
.local pmc rx102_cur
(rx102_cur, rx102_pos, rx102_tgt) = self."!cursor_start"()
rx102_cur."!cursor_debug"("START ", "quantified_atom")
- rx102_cur."!cursor_caparray"("backmod", "quantifier")
+ rx102_cur."!cursor_caparray"("quantifier", "backmod")
.lex unicode:"$\x{a2}", rx102_cur
.local pmc match
.lex "$/", match
@@ -1093,7 +1093,7 @@
alt108_1:
# rx subrule "before" subtype=zerowidth negate=
rx102_cur."!cursor_pos"(rx102_pos)
- .const 'Sub' $P110 = "30_1261064009.3328"
+ .const 'Sub' $P110 = "30_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__quantified_atom" :subid("29_1267204688.82934") :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_1261064009.3328") :method :outer("28_1261064009.3328")
+.sub "_block109" :anon :subid("30_1267204688.82934") :method :outer("28_1267204688.82934")
.annotate "line", 41
.local string rx111_tgt
.local int rx111_pos
@@ -1197,9 +1197,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom" :subid("31_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "atom" :subid("31_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P125 = "33_1261064009.3328"
+ .const 'Sub' $P125 = "33_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P125 = "33_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__atom" :subid("32_1267204688.82934") :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_1261064009.3328") :method :outer("31_1261064009.3328")
+.sub "_block124" :anon :subid("33_1267204688.82934") :method :outer("31_1267204688.82934")
.annotate "line", 47
.local string rx126_tgt
.local int rx126_pos
@@ -1362,7 +1362,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier" :subid("34_1261064009.3328") :method
+.sub "quantifier" :subid("34_1267204688.82934") :method
.annotate "line", 52
$P130 = self."!protoregex"("quantifier")
.return ($P130)
@@ -1370,7 +1370,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier" :subid("35_1261064009.3328") :method
+.sub "!PREFIX__quantifier" :subid("35_1267204688.82934") :method
.annotate "line", 52
$P132 = self."!PREFIX__!protoregex"("quantifier")
.return ($P132)
@@ -1378,7 +1378,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>" :subid("36_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<*>" :subid("36_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<*>" :subid("37_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<+>" :subid("38_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<+>" :subid("39_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<?>" :subid("40_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<?>" :subid("41_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<**>" :subid("42_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<**>" :subid("43_1267204688.82934") :method
.annotate "line", 3
new $P157, "ResizablePMCArray"
push $P157, "**"
@@ -1843,9 +1843,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod" :subid("44_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backmod" :subid("44_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P175 = "46_1261064009.3328"
+ .const 'Sub' $P175 = "46_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P175 = "46_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__backmod" :subid("45_1267204688.82934") :method
.annotate "line", 3
new $P169, "ResizablePMCArray"
push $P169, ""
@@ -1948,7 +1948,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174" :anon :subid("46_1261064009.3328") :method :outer("44_1261064009.3328")
+.sub "_block174" :anon :subid("46_1267204688.82934") :method :outer("44_1267204688.82934")
.annotate "line", 71
.local string rx176_tgt
.local int rx176_pos
@@ -2004,7 +2004,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar" :subid("47_1261064009.3328") :method
+.sub "metachar" :subid("47_1267204688.82934") :method
.annotate "line", 73
$P179 = self."!protoregex"("metachar")
.return ($P179)
@@ -2012,7 +2012,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar" :subid("48_1261064009.3328") :method
+.sub "!PREFIX__metachar" :subid("48_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<ws>" :subid("49_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<ws>" :subid("50_1267204688.82934") :method
.annotate "line", 3
$P185 = self."!PREFIX__!subrule"("", "")
new $P186, "ResizablePMCArray"
@@ -2086,7 +2086,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>" :subid("51_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<[ ]>" :subid("51_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<[ ]>" :subid("52_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<( )>" :subid("53_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<( )>" :subid("54_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<'>" :subid("55_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<'>" :subid("56_1267204688.82934") :method
.annotate "line", 3
new $P203, "ResizablePMCArray"
push $P203, "'"
@@ -2323,7 +2323,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">" :subid("57_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<\">" :subid("57_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<\">" :subid("58_1267204688.82934") :method
.annotate "line", 3
new $P208, "ResizablePMCArray"
push $P208, "\""
@@ -2396,7 +2396,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>" :subid("59_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<.>" :subid("59_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<.>" :subid("60_1267204688.82934") :method
.annotate "line", 3
new $P213, "ResizablePMCArray"
push $P213, "."
@@ -2477,7 +2477,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>" :subid("61_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<^>" :subid("61_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<^>" :subid("62_1267204688.82934") :method
.annotate "line", 3
new $P219, "ResizablePMCArray"
push $P219, "^"
@@ -2558,7 +2558,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>" :subid("63_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<^^>" :subid("63_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<^^>" :subid("64_1267204688.82934") :method
.annotate "line", 3
new $P225, "ResizablePMCArray"
push $P225, "^^"
@@ -2639,7 +2639,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>" :subid("65_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<$>" :subid("65_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<$>" :subid("66_1267204688.82934") :method
.annotate "line", 3
new $P231, "ResizablePMCArray"
push $P231, "$"
@@ -2720,7 +2720,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>" :subid("67_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<$$>" :subid("67_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<$$>" :subid("68_1267204688.82934") :method
.annotate "line", 3
new $P237, "ResizablePMCArray"
push $P237, "$$"
@@ -2801,7 +2801,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>" :subid("69_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<:::>" :subid("69_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<:::>" :subid("70_1267204688.82934") :method
.annotate "line", 3
$P243 = self."!PREFIX__!subrule"("", ":::")
new $P244, "ResizablePMCArray"
@@ -2888,7 +2888,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>" :subid("71_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<::>" :subid("71_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<::>" :subid("72_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<lwb>" :subid("73_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<lwb>" :subid("74_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<rwb>" :subid("75_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<rwb>" :subid("76_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<bs>" :subid("77_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<bs>" :subid("78_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<mod>" :subid("79_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<mod>" :subid("80_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<~>" :subid("81_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<~>" :subid("82_1267204688.82934") :method
.annotate "line", 3
$P283 = self."!PREFIX__!subrule"("", "~")
new $P284, "ResizablePMCArray"
@@ -3417,7 +3417,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>" :subid("83_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<{*}>" :subid("83_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<{*}>" :subid("84_1267204688.82934") :method
.annotate "line", 3
new $P290, "ResizablePMCArray"
push $P290, "{*}"
@@ -3593,7 +3593,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>" :subid("85_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<assert>" :subid("85_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<assert>" :subid("86_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<var>" :subid("87_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<var>" :subid("88_1267204688.82934") :method
.annotate "line", 3
new $P314, "ResizablePMCArray"
push $P314, "$"
@@ -3860,7 +3860,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>" :subid("89_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<PIR>" :subid("89_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<PIR>" :subid("90_1267204688.82934") :method
.annotate "line", 3
new $P326, "ResizablePMCArray"
push $P326, ":PIR{{"
@@ -3960,7 +3960,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash" :subid("91_1261064009.3328") :method
+.sub "backslash" :subid("91_1267204688.82934") :method
.annotate "line", 120
$P332 = self."!protoregex"("backslash")
.return ($P332)
@@ -3968,7 +3968,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash" :subid("92_1261064009.3328") :method
+.sub "!PREFIX__backslash" :subid("92_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<w>" :subid("93_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<w>" :subid("94_1267204688.82934") :method
.annotate "line", 3
new $P338, "ResizablePMCArray"
push $P338, "N"
@@ -4064,7 +4064,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>" :subid("95_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<b>" :subid("95_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<b>" :subid("96_1267204688.82934") :method
.annotate "line", 3
new $P344, "ResizablePMCArray"
push $P344, "B"
@@ -4146,7 +4146,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>" :subid("97_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<e>" :subid("97_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<e>" :subid("98_1267204688.82934") :method
.annotate "line", 3
new $P350, "ResizablePMCArray"
push $P350, "E"
@@ -4228,7 +4228,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>" :subid("99_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<f>" :subid("99_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<f>" :subid("100_1267204688.82934") :method
.annotate "line", 3
new $P356, "ResizablePMCArray"
push $P356, "F"
@@ -4310,7 +4310,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>" :subid("101_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<h>" :subid("101_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<h>" :subid("102_1267204688.82934") :method
.annotate "line", 3
new $P362, "ResizablePMCArray"
push $P362, "H"
@@ -4392,7 +4392,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>" :subid("103_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<r>" :subid("103_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<r>" :subid("104_1267204688.82934") :method
.annotate "line", 3
new $P368, "ResizablePMCArray"
push $P368, "R"
@@ -4474,7 +4474,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>" :subid("105_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<t>" :subid("105_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<t>" :subid("106_1267204688.82934") :method
.annotate "line", 3
new $P374, "ResizablePMCArray"
push $P374, "T"
@@ -4556,7 +4556,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>" :subid("107_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<v>" :subid("107_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<v>" :subid("108_1267204688.82934") :method
.annotate "line", 3
new $P380, "ResizablePMCArray"
push $P380, "V"
@@ -4638,7 +4638,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>" :subid("109_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<o>" :subid("109_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
.local string rx384_tgt
.local int rx384_pos
@@ -4647,7 +4647,7 @@
.local int rx384_rep
.local pmc rx384_cur
(rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
- rx384_cur."!cursor_debug"("START ", "backslash:sym<c>")
+ rx384_cur."!cursor_debug"("START ", "backslash:sym<o>")
.lex unicode:"$\x{a2}", rx384_cur
.local pmc match
.lex "$/", match
@@ -4658,49 +4658,76 @@
substr rx384_tgt, rx384_tgt, rx384_off
rx384_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan389_done
- goto rxscan389_scan
- rxscan389_loop:
+ ne $I10, -1, rxscan391_done
+ goto rxscan391_scan
+ rxscan391_loop:
($P10) = rx384_cur."from"()
inc $P10
set rx384_pos, $P10
- ge rx384_pos, rx384_eos, rxscan389_done
- rxscan389_scan:
- set_addr $I10, rxscan389_loop
+ ge rx384_pos, rx384_eos, rxscan391_done
+ rxscan391_scan:
+ set_addr $I10, rxscan391_loop
rx384_cur."!mark_push"(0, rx384_pos, $I10)
- rxscan389_done:
+ rxscan391_done:
.annotate "line", 129
# rx subcapture "sym"
- set_addr $I10, rxcap_390_fail
+ set_addr $I10, rxcap_392_fail
rx384_cur."!mark_push"(0, rx384_pos, $I10)
# rx enumcharlist negate=0
ge rx384_pos, rx384_eos, rx384_fail
sub $I10, rx384_pos, rx384_off
substr $S10, rx384_tgt, $I10, 1
- index $I11, "cC", $S10
+ index $I11, "oO", $S10
lt $I11, 0, rx384_fail
inc rx384_pos
- set_addr $I10, rxcap_390_fail
+ set_addr $I10, rxcap_392_fail
($I12, $I11) = rx384_cur."!mark_peek"($I10)
rx384_cur."!cursor_pos"($I11)
($P10) = rx384_cur."!cursor_start"()
$P10."!cursor_pass"(rx384_pos, "")
rx384_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_390_done
- rxcap_390_fail:
+ goto rxcap_392_done
+ rxcap_392_fail:
goto rx384_fail
- rxcap_390_done:
- # rx subrule "charspec" subtype=capture negate=
+ rxcap_392_done:
+ alt393_0:
+ set_addr $I10, alt393_1
+ rx384_cur."!mark_push"(0, rx384_pos, $I10)
+ # rx subrule "octint" subtype=capture negate=
rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."charspec"()
+ $P10 = rx384_cur."octint"()
unless $P10, rx384_fail
rx384_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("charspec")
+ $P10."!cursor_names"("octint")
rx384_pos = $P10."pos"()
+ goto alt393_end
+ alt393_1:
+ # rx literal "["
+ add $I11, rx384_pos, 1
+ gt $I11, rx384_eos, rx384_fail
+ sub $I11, rx384_pos, rx384_off
+ substr $S10, rx384_tgt, $I11, 1
+ ne $S10, "[", rx384_fail
+ add rx384_pos, 1
+ # rx subrule "octints" subtype=capture negate=
+ rx384_cur."!cursor_pos"(rx384_pos)
+ $P10 = rx384_cur."octints"()
+ unless $P10, rx384_fail
+ rx384_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("octints")
+ rx384_pos = $P10."pos"()
+ # rx literal "]"
+ add $I11, rx384_pos, 1
+ gt $I11, rx384_eos, rx384_fail
+ sub $I11, rx384_pos, rx384_off
+ substr $S10, rx384_tgt, $I11, 1
+ ne $S10, "]", rx384_fail
+ add rx384_pos, 1
+ alt393_end:
# rx pass
- rx384_cur."!cursor_pass"(rx384_pos, "backslash:sym<c>")
- rx384_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx384_pos)
+ rx384_cur."!cursor_pass"(rx384_pos, "backslash:sym<o>")
+ rx384_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx384_pos)
.return (rx384_cur)
rx384_fail:
.annotate "line", 3
@@ -4710,270 +4737,243 @@
jump $I10
rx384_done:
rx384_cur."!cursor_fail"()
- rx384_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
+ rx384_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
.return (rx384_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>" :subid("110_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<o>" :subid("110_1267204688.82934") :method
.annotate "line", 3
- $P386 = self."!PREFIX__!subrule"("charspec", "C")
- $P387 = self."!PREFIX__!subrule"("charspec", "c")
- new $P388, "ResizablePMCArray"
- push $P388, $P386
- push $P388, $P387
- .return ($P388)
+ $P386 = self."!PREFIX__!subrule"("octints", "O[")
+ $P387 = self."!PREFIX__!subrule"("octint", "O")
+ $P388 = self."!PREFIX__!subrule"("octints", "o[")
+ $P389 = self."!PREFIX__!subrule"("octint", "o")
+ new $P390, "ResizablePMCArray"
+ push $P390, $P386
+ push $P390, $P387
+ push $P390, $P388
+ push $P390, $P389
+ .return ($P390)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>" :subid("111_1261064009.3328") :method :outer("11_1261064009.3328")
-.annotate "line", 3
- .local string rx392_tgt
- .local int rx392_pos
- .local int rx392_off
- .local int rx392_eos
- .local int rx392_rep
- .local pmc rx392_cur
- (rx392_cur, rx392_pos, rx392_tgt) = self."!cursor_start"()
- rx392_cur."!cursor_debug"("START ", "backslash:sym<o>")
- .lex unicode:"$\x{a2}", rx392_cur
- .local pmc match
- .lex "$/", match
- length rx392_eos, rx392_tgt
- set rx392_off, 0
- lt rx392_pos, 2, rx392_start
- sub rx392_off, rx392_pos, 1
- substr rx392_tgt, rx392_tgt, rx392_off
- rx392_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan399_done
- goto rxscan399_scan
- rxscan399_loop:
- ($P10) = rx392_cur."from"()
- inc $P10
- set rx392_pos, $P10
- ge rx392_pos, rx392_eos, rxscan399_done
- rxscan399_scan:
- set_addr $I10, rxscan399_loop
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
- rxscan399_done:
+.sub "backslash:sym<x>" :subid("111_1267204688.82934") :method :outer("11_1267204688.82934")
+.annotate "line", 3
+ .local string rx395_tgt
+ .local int rx395_pos
+ .local int rx395_off
+ .local int rx395_eos
+ .local int rx395_rep
+ .local pmc rx395_cur
+ (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
+ rx395_cur."!cursor_debug"("START ", "backslash:sym<x>")
+ .lex unicode:"$\x{a2}", rx395_cur
+ .local pmc match
+ .lex "$/", match
+ length rx395_eos, rx395_tgt
+ set rx395_off, 0
+ lt rx395_pos, 2, rx395_start
+ sub rx395_off, rx395_pos, 1
+ substr rx395_tgt, rx395_tgt, rx395_off
+ rx395_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan402_done
+ goto rxscan402_scan
+ rxscan402_loop:
+ ($P10) = rx395_cur."from"()
+ inc $P10
+ set rx395_pos, $P10
+ ge rx395_pos, rx395_eos, rxscan402_done
+ rxscan402_scan:
+ set_addr $I10, rxscan402_loop
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ rxscan402_done:
.annotate "line", 130
# rx subcapture "sym"
- set_addr $I10, rxcap_400_fail
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
+ set_addr $I10, rxcap_403_fail
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
# rx enumcharlist negate=0
- ge rx392_pos, rx392_eos, rx392_fail
- sub $I10, rx392_pos, rx392_off
- substr $S10, rx392_tgt, $I10, 1
- index $I11, "oO", $S10
- lt $I11, 0, rx392_fail
- inc rx392_pos
- set_addr $I10, rxcap_400_fail
- ($I12, $I11) = rx392_cur."!mark_peek"($I10)
- rx392_cur."!cursor_pos"($I11)
- ($P10) = rx392_cur."!cursor_start"()
- $P10."!cursor_pass"(rx392_pos, "")
- rx392_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx395_pos, rx395_eos, rx395_fail
+ sub $I10, rx395_pos, rx395_off
+ substr $S10, rx395_tgt, $I10, 1
+ index $I11, "xX", $S10
+ lt $I11, 0, rx395_fail
+ inc rx395_pos
+ set_addr $I10, rxcap_403_fail
+ ($I12, $I11) = rx395_cur."!mark_peek"($I10)
+ rx395_cur."!cursor_pos"($I11)
+ ($P10) = rx395_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx395_pos, "")
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_400_done
- rxcap_400_fail:
- goto rx392_fail
- rxcap_400_done:
- alt401_0:
- set_addr $I10, alt401_1
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
- # rx subrule "octint" subtype=capture negate=
- rx392_cur."!cursor_pos"(rx392_pos)
- $P10 = rx392_cur."octint"()
- unless $P10, rx392_fail
- rx392_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octint")
- rx392_pos = $P10."pos"()
- goto alt401_end
- alt401_1:
+ goto rxcap_403_done
+ rxcap_403_fail:
+ goto rx395_fail
+ rxcap_403_done:
+ alt404_0:
+ set_addr $I10, alt404_1
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ # rx subrule "hexint" subtype=capture negate=
+ rx395_cur."!cursor_pos"(rx395_pos)
+ $P10 = rx395_cur."hexint"()
+ unless $P10, rx395_fail
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexint")
+ rx395_pos = $P10."pos"()
+ goto alt404_end
+ alt404_1:
# rx literal "["
- add $I11, rx392_pos, 1
- gt $I11, rx392_eos, rx392_fail
- sub $I11, rx392_pos, rx392_off
- substr $S10, rx392_tgt, $I11, 1
- ne $S10, "[", rx392_fail
- add rx392_pos, 1
- # rx subrule "octints" subtype=capture negate=
- rx392_cur."!cursor_pos"(rx392_pos)
- $P10 = rx392_cur."octints"()
- unless $P10, rx392_fail
- rx392_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octints")
- rx392_pos = $P10."pos"()
+ add $I11, rx395_pos, 1
+ gt $I11, rx395_eos, rx395_fail
+ sub $I11, rx395_pos, rx395_off
+ substr $S10, rx395_tgt, $I11, 1
+ ne $S10, "[", rx395_fail
+ add rx395_pos, 1
+ # rx subrule "hexints" subtype=capture negate=
+ rx395_cur."!cursor_pos"(rx395_pos)
+ $P10 = rx395_cur."hexints"()
+ unless $P10, rx395_fail
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexints")
+ rx395_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx392_pos, 1
- gt $I11, rx392_eos, rx392_fail
- sub $I11, rx392_pos, rx392_off
- substr $S10, rx392_tgt, $I11, 1
- ne $S10, "]", rx392_fail
- add rx392_pos, 1
- alt401_end:
- # rx pass
- rx392_cur."!cursor_pass"(rx392_pos, "backslash:sym<o>")
- rx392_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx392_pos)
- .return (rx392_cur)
- rx392_fail:
-.annotate "line", 3
- (rx392_rep, rx392_pos, $I10, $P10) = rx392_cur."!mark_fail"(0)
- lt rx392_pos, -1, rx392_done
- eq rx392_pos, -1, rx392_fail
- jump $I10
- rx392_done:
- rx392_cur."!cursor_fail"()
- rx392_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
- .return (rx392_cur)
+ add $I11, rx395_pos, 1
+ gt $I11, rx395_eos, rx395_fail
+ sub $I11, rx395_pos, rx395_off
+ substr $S10, rx395_tgt, $I11, 1
+ ne $S10, "]", rx395_fail
+ add rx395_pos, 1
+ alt404_end:
+ # rx pass
+ rx395_cur."!cursor_pass"(rx395_pos, "backslash:sym<x>")
+ rx395_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx395_pos)
+ .return (rx395_cur)
+ rx395_fail:
+.annotate "line", 3
+ (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
+ lt rx395_pos, -1, rx395_done
+ eq rx395_pos, -1, rx395_fail
+ jump $I10
+ rx395_done:
+ rx395_cur."!cursor_fail"()
+ rx395_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
+ .return (rx395_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>" :subid("112_1261064009.3328") :method
-.annotate "line", 3
- $P394 = self."!PREFIX__!subrule"("octints", "O[")
- $P395 = self."!PREFIX__!subrule"("octint", "O")
- $P396 = self."!PREFIX__!subrule"("octints", "o[")
- $P397 = self."!PREFIX__!subrule"("octint", "o")
- new $P398, "ResizablePMCArray"
- push $P398, $P394
- push $P398, $P395
- push $P398, $P396
- push $P398, $P397
- .return ($P398)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>" :subid("113_1261064009.3328") :method :outer("11_1261064009.3328")
-.annotate "line", 3
- .local string rx403_tgt
- .local int rx403_pos
- .local int rx403_off
- .local int rx403_eos
- .local int rx403_rep
- .local pmc rx403_cur
- (rx403_cur, rx403_pos, rx403_tgt) = self."!cursor_start"()
- rx403_cur."!cursor_debug"("START ", "backslash:sym<x>")
- .lex unicode:"$\x{a2}", rx403_cur
- .local pmc match
- .lex "$/", match
- length rx403_eos, rx403_tgt
- set rx403_off, 0
- lt rx403_pos, 2, rx403_start
- sub rx403_off, rx403_pos, 1
- substr rx403_tgt, rx403_tgt, rx403_off
- rx403_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan410_done
- goto rxscan410_scan
- rxscan410_loop:
- ($P10) = rx403_cur."from"()
- inc $P10
- set rx403_pos, $P10
- ge rx403_pos, rx403_eos, rxscan410_done
- rxscan410_scan:
- set_addr $I10, rxscan410_loop
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
- rxscan410_done:
+.sub "!PREFIX__backslash:sym<x>" :subid("112_1267204688.82934") :method
+.annotate "line", 3
+ $P397 = self."!PREFIX__!subrule"("hexints", "X[")
+ $P398 = self."!PREFIX__!subrule"("hexint", "X")
+ $P399 = self."!PREFIX__!subrule"("hexints", "x[")
+ $P400 = self."!PREFIX__!subrule"("hexint", "x")
+ new $P401, "ResizablePMCArray"
+ push $P401, $P397
+ push $P401, $P398
+ push $P401, $P399
+ push $P401, $P400
+ .return ($P401)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<c>" :subid("113_1267204688.82934") :method :outer("11_1267204688.82934")
+.annotate "line", 3
+ .local string rx406_tgt
+ .local int rx406_pos
+ .local int rx406_off
+ .local int rx406_eos
+ .local int rx406_rep
+ .local pmc rx406_cur
+ (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
+ rx406_cur."!cursor_debug"("START ", "backslash:sym<c>")
+ .lex unicode:"$\x{a2}", rx406_cur
+ .local pmc match
+ .lex "$/", match
+ length rx406_eos, rx406_tgt
+ set rx406_off, 0
+ lt rx406_pos, 2, rx406_start
+ sub rx406_off, rx406_pos, 1
+ substr rx406_tgt, rx406_tgt, rx406_off
+ rx406_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan411_done
+ goto rxscan411_scan
+ rxscan411_loop:
+ ($P10) = rx406_cur."from"()
+ inc $P10
+ set rx406_pos, $P10
+ ge rx406_pos, rx406_eos, rxscan411_done
+ rxscan411_scan:
+ set_addr $I10, rxscan411_loop
+ rx406_cur."!mark_push"(0, rx406_pos, $I10)
+ rxscan411_done:
.annotate "line", 131
# rx subcapture "sym"
- set_addr $I10, rxcap_411_fail
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
+ set_addr $I10, rxcap_412_fail
+ rx406_cur."!mark_push"(0, rx406_pos, $I10)
# rx enumcharlist negate=0
- ge rx403_pos, rx403_eos, rx403_fail
- sub $I10, rx403_pos, rx403_off
- substr $S10, rx403_tgt, $I10, 1
- index $I11, "xX", $S10
- lt $I11, 0, rx403_fail
- inc rx403_pos
- set_addr $I10, rxcap_411_fail
- ($I12, $I11) = rx403_cur."!mark_peek"($I10)
- rx403_cur."!cursor_pos"($I11)
- ($P10) = rx403_cur."!cursor_start"()
- $P10."!cursor_pass"(rx403_pos, "")
- rx403_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx406_pos, rx406_eos, rx406_fail
+ sub $I10, rx406_pos, rx406_off
+ substr $S10, rx406_tgt, $I10, 1
+ index $I11, "cC", $S10
+ lt $I11, 0, rx406_fail
+ inc rx406_pos
+ set_addr $I10, rxcap_412_fail
+ ($I12, $I11) = rx406_cur."!mark_peek"($I10)
+ rx406_cur."!cursor_pos"($I11)
+ ($P10) = rx406_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx406_pos, "")
+ rx406_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_411_done
- rxcap_411_fail:
- goto rx403_fail
- rxcap_411_done:
- alt412_0:
- set_addr $I10, alt412_1
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
- # rx subrule "hexint" subtype=capture negate=
- rx403_cur."!cursor_pos"(rx403_pos)
- $P10 = rx403_cur."hexint"()
- unless $P10, rx403_fail
- rx403_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexint")
- rx403_pos = $P10."pos"()
- goto alt412_end
- alt412_1:
- # rx literal "["
- add $I11, rx403_pos, 1
- gt $I11, rx403_eos, rx403_fail
- sub $I11, rx403_pos, rx403_off
- substr $S10, rx403_tgt, $I11, 1
- ne $S10, "[", rx403_fail
- add rx403_pos, 1
- # rx subrule "hexints" subtype=capture negate=
- rx403_cur."!cursor_pos"(rx403_pos)
- $P10 = rx403_cur."hexints"()
- unless $P10, rx403_fail
- rx403_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexints")
- rx403_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx403_pos, 1
- gt $I11, rx403_eos, rx403_fail
- sub $I11, rx403_pos, rx403_off
- substr $S10, rx403_tgt, $I11, 1
- ne $S10, "]", rx403_fail
- add rx403_pos, 1
- alt412_end:
+ goto rxcap_412_done
+ rxcap_412_fail:
+ goto rx406_fail
+ rxcap_412_done:
+ # rx subrule "charspec" subtype=capture negate=
+ rx406_cur."!cursor_pos"(rx406_pos)
+ $P10 = rx406_cur."charspec"()
+ unless $P10, rx406_fail
+ rx406_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("charspec")
+ rx406_pos = $P10."pos"()
# rx pass
- rx403_cur."!cursor_pass"(rx403_pos, "backslash:sym<x>")
- rx403_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx403_pos)
- .return (rx403_cur)
- rx403_fail:
+ rx406_cur."!cursor_pass"(rx406_pos, "backslash:sym<c>")
+ rx406_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx406_pos)
+ .return (rx406_cur)
+ rx406_fail:
.annotate "line", 3
- (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
- lt rx403_pos, -1, rx403_done
- eq rx403_pos, -1, rx403_fail
+ (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
+ lt rx406_pos, -1, rx406_done
+ eq rx406_pos, -1, rx406_fail
jump $I10
- rx403_done:
- rx403_cur."!cursor_fail"()
- rx403_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
- .return (rx403_cur)
+ rx406_done:
+ rx406_cur."!cursor_fail"()
+ rx406_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
+ .return (rx406_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>" :subid("114_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<c>" :subid("114_1267204688.82934") :method
.annotate "line", 3
- $P405 = self."!PREFIX__!subrule"("hexints", "X[")
- $P406 = self."!PREFIX__!subrule"("hexint", "X")
- $P407 = self."!PREFIX__!subrule"("hexints", "x[")
- $P408 = self."!PREFIX__!subrule"("hexint", "x")
- new $P409, "ResizablePMCArray"
- push $P409, $P405
- push $P409, $P406
- push $P409, $P407
- push $P409, $P408
- .return ($P409)
+ $P408 = self."!PREFIX__!subrule"("charspec", "C")
+ $P409 = self."!PREFIX__!subrule"("charspec", "c")
+ new $P410, "ResizablePMCArray"
+ push $P410, $P408
+ push $P410, $P409
+ .return ($P410)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>" :subid("115_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<A>" :subid("115_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<A>" :subid("116_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<z>" :subid("117_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<z>" :subid("118_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<Z>" :subid("119_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<Z>" :subid("120_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<Q>" :subid("121_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<Q>" :subid("122_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<misc>" :subid("123_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<misc>" :subid("124_1267204688.82934") :method
.annotate "line", 3
new $P440, "ResizablePMCArray"
push $P440, ""
@@ -5331,7 +5331,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion" :subid("125_1261064009.3328") :method
+.sub "assertion" :subid("125_1267204688.82934") :method
.annotate "line", 138
$P443 = self."!protoregex"("assertion")
.return ($P443)
@@ -5339,7 +5339,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion" :subid("126_1261064009.3328") :method
+.sub "!PREFIX__assertion" :subid("126_1267204688.82934") :method
.annotate "line", 138
$P445 = self."!PREFIX__!protoregex"("assertion")
.return ($P445)
@@ -5347,9 +5347,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>" :subid("127_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<?>" :subid("127_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P454 = "129_1261064009.3328"
+ .const 'Sub' $P454 = "129_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P454 = "129_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<?>" :subid("128_1267204688.82934") :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_1261064009.3328") :method :outer("127_1261064009.3328")
+.sub "_block453" :anon :subid("129_1267204688.82934") :method :outer("127_1267204688.82934")
.annotate "line", 140
.local string rx455_tgt
.local int rx455_pos
@@ -5493,9 +5493,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>" :subid("130_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<!>" :subid("130_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P465 = "132_1261064009.3328"
+ .const 'Sub' $P465 = "132_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P465 = "132_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<!>" :subid("131_1267204688.82934") :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_1261064009.3328") :method :outer("130_1261064009.3328")
+.sub "_block464" :anon :subid("132_1267204688.82934") :method :outer("130_1267204688.82934")
.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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<method>" :subid("133_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<method>" :subid("134_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<name>" :subid("135_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P483 = "137_1261064009.3328"
+ .const 'Sub' $P483 = "137_1267204688.82934"
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"("arglist", "nibbler", "assertion")
+ rx475_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
.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_1261064009.3328"
+ .const 'Sub' $P483 = "137_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("136_1267204688.82934") :method
.annotate "line", 3
new $P477, "ResizablePMCArray"
push $P477, ""
@@ -5898,7 +5898,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482" :anon :subid("137_1261064009.3328") :method :outer("135_1261064009.3328")
+.sub "_block482" :anon :subid("137_1267204688.82934") :method :outer("135_1267204688.82934")
.annotate "line", 150
.local string rx484_tgt
.local int rx484_pos
@@ -5954,9 +5954,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>" :subid("138_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<[>" :subid("138_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P493 = "140_1261064009.3328"
+ .const 'Sub' $P493 = "140_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P493 = "140_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<[>" :subid("139_1267204688.82934") :method
.annotate "line", 3
new $P490, "ResizablePMCArray"
push $P490, ""
@@ -6038,7 +6038,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492" :anon :subid("140_1261064009.3328") :method :outer("138_1261064009.3328")
+.sub "_block492" :anon :subid("140_1267204688.82934") :method :outer("138_1267204688.82934")
.annotate "line", 158
.local string rx494_tgt
.local int rx494_pos
@@ -6118,9 +6118,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem" :subid("141_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "cclass_elem" :subid("141_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P511 = "143_1261064009.3328"
+ .const 'Sub' $P511 = "143_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P511 = "143_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__cclass_elem" :subid("142_1267204688.82934") :method
.annotate "line", 3
new $P502, "ResizablePMCArray"
push $P502, ""
@@ -6315,13 +6315,13 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510" :anon :subid("143_1261064009.3328") :method :outer("141_1261064009.3328")
+.sub "_block510" :anon :subid("143_1267204688.82934") :method :outer("141_1267204688.82934")
.annotate "line", 164
- .const 'Sub' $P526 = "146_1261064009.3328"
+ .const 'Sub' $P526 = "146_1267204688.82934"
capture_lex $P526
- .const 'Sub' $P521 = "145_1261064009.3328"
+ .const 'Sub' $P521 = "145_1267204688.82934"
capture_lex $P521
- .const 'Sub' $P517 = "144_1261064009.3328"
+ .const 'Sub' $P517 = "144_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P517 = "144_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P521 = "145_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P526 = "146_1267204688.82934"
capture_lex $P526
$P10 = rx512_cur.$P526()
unless $P10, rx512_fail
@@ -6461,7 +6461,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516" :anon :subid("144_1261064009.3328") :method :outer("143_1261064009.3328")
+.sub "_block516" :anon :subid("144_1267204688.82934") :method :outer("143_1267204688.82934")
.annotate "line", 166
.local string rx518_tgt
.local int rx518_pos
@@ -6513,7 +6513,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520" :anon :subid("145_1261064009.3328") :method :outer("143_1261064009.3328")
+.sub "_block520" :anon :subid("145_1267204688.82934") :method :outer("143_1267204688.82934")
.annotate "line", 166
.local string rx522_tgt
.local int rx522_pos
@@ -6569,7 +6569,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525" :anon :subid("146_1261064009.3328") :method :outer("143_1261064009.3328")
+.sub "_block525" :anon :subid("146_1267204688.82934") :method :outer("143_1267204688.82934")
.annotate "line", 166
.local string rx527_tgt
.local int rx527_pos
@@ -6621,9 +6621,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal" :subid("147_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_internal" :subid("147_1267204688.82934") :method :outer("11_1267204688.82934")
.annotate "line", 3
- .const 'Sub' $P543 = "149_1261064009.3328"
+ .const 'Sub' $P543 = "149_1267204688.82934"
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_1261064009.3328"
+ .const 'Sub' $P543 = "149_1267204688.82934"
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_1261064009.3328") :method
+.sub "!PREFIX__mod_internal" :subid("148_1267204688.82934") :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_1261064009.3328") :method :outer("147_1261064009.3328")
+.sub "_block542" :anon :subid("149_1267204688.82934") :method :outer("147_1267204688.82934")
.annotate "line", 176
.local string rx544_tgt
.local int rx544_pos
@@ -6854,7 +6854,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident" :subid("150_1261064009.3328") :method
+.sub "mod_ident" :subid("150_1267204688.82934") :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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident" :subid("151_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_ident:sym<ignorecase>" :subid("152_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("153_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_ident:sym<ratchet>" :subid("154_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("155_1267204688.82934") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_ident:sym<sigspace>" :subid("156_1267204688.82934") :method :outer("11_1267204688.82934")
.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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("157_1267204688.82934") :method
.annotate "line", 3
new $P574, "ResizablePMCArray"
push $P574, "s"
@@ -7153,181 +7153,183 @@
### .include 'gen/p6regex-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064016.27984")
+.sub "_block11" :anon :subid("10_1267204695.47543")
.annotate "line", 0
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
.annotate "line", 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
- $P1556 = $P14()
+ $P1569 = $P14()
.annotate "line", 1
- .return ($P1556)
+ .return ($P1569)
.end
.namespace []
-.sub "" :load :init :subid("post89") :outer("10_1261064016.27984")
+.sub "" :load :init :subid("post90") :outer("10_1267204695.47543")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064016.27984"
+ .const 'Sub' $P12 = "10_1267204695.47543"
.local pmc block
set block, $P12
- $P1557 = get_root_global ["parrot"], "P6metaclass"
- $P1557."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
+ $P1570 = get_root_global ["parrot"], "P6metaclass"
+ $P1570."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13" :subid("11_1261064016.27984") :outer("10_1261064016.27984")
+.sub "_block13" :subid("11_1267204695.47543") :outer("10_1267204695.47543")
.annotate "line", 4
- .const 'Sub' $P1523 = "88_1261064016.27984"
- capture_lex $P1523
- .const 'Sub' $P1454 = "84_1261064016.27984"
- capture_lex $P1454
- .const 'Sub' $P1386 = "82_1261064016.27984"
- capture_lex $P1386
- .const 'Sub' $P1313 = "79_1261064016.27984"
- capture_lex $P1313
- .const 'Sub' $P1299 = "78_1261064016.27984"
- capture_lex $P1299
- .const 'Sub' $P1275 = "77_1261064016.27984"
- capture_lex $P1275
- .const 'Sub' $P1257 = "76_1261064016.27984"
- capture_lex $P1257
- .const 'Sub' $P1243 = "75_1261064016.27984"
+ .const 'Sub' $P1536 = "89_1267204695.47543"
+ capture_lex $P1536
+ .const 'Sub' $P1467 = "85_1267204695.47543"
+ capture_lex $P1467
+ .const 'Sub' $P1399 = "83_1267204695.47543"
+ capture_lex $P1399
+ .const 'Sub' $P1326 = "80_1267204695.47543"
+ capture_lex $P1326
+ .const 'Sub' $P1312 = "79_1267204695.47543"
+ capture_lex $P1312
+ .const 'Sub' $P1288 = "78_1267204695.47543"
+ capture_lex $P1288
+ .const 'Sub' $P1270 = "77_1267204695.47543"
+ capture_lex $P1270
+ .const 'Sub' $P1256 = "76_1267204695.47543"
+ capture_lex $P1256
+ .const 'Sub' $P1243 = "75_1267204695.47543"
capture_lex $P1243
- .const 'Sub' $P1212 = "74_1261064016.27984"
+ .const 'Sub' $P1212 = "74_1267204695.47543"
capture_lex $P1212
- .const 'Sub' $P1181 = "73_1261064016.27984"
+ .const 'Sub' $P1181 = "73_1267204695.47543"
capture_lex $P1181
- .const 'Sub' $P1165 = "72_1261064016.27984"
+ .const 'Sub' $P1165 = "72_1267204695.47543"
capture_lex $P1165
- .const 'Sub' $P1149 = "71_1261064016.27984"
+ .const 'Sub' $P1149 = "71_1267204695.47543"
capture_lex $P1149
- .const 'Sub' $P1133 = "70_1261064016.27984"
+ .const 'Sub' $P1133 = "70_1267204695.47543"
capture_lex $P1133
- .const 'Sub' $P1117 = "69_1261064016.27984"
+ .const 'Sub' $P1117 = "69_1267204695.47543"
capture_lex $P1117
- .const 'Sub' $P1101 = "68_1261064016.27984"
+ .const 'Sub' $P1101 = "68_1267204695.47543"
capture_lex $P1101
- .const 'Sub' $P1085 = "67_1261064016.27984"
+ .const 'Sub' $P1085 = "67_1267204695.47543"
capture_lex $P1085
- .const 'Sub' $P1069 = "66_1261064016.27984"
+ .const 'Sub' $P1069 = "66_1267204695.47543"
capture_lex $P1069
- .const 'Sub' $P1045 = "65_1261064016.27984"
+ .const 'Sub' $P1045 = "65_1267204695.47543"
capture_lex $P1045
- .const 'Sub' $P1030 = "64_1261064016.27984"
+ .const 'Sub' $P1030 = "64_1267204695.47543"
capture_lex $P1030
- .const 'Sub' $P974 = "63_1261064016.27984"
+ .const 'Sub' $P974 = "63_1267204695.47543"
capture_lex $P974
- .const 'Sub' $P953 = "62_1261064016.27984"
+ .const 'Sub' $P953 = "62_1267204695.47543"
capture_lex $P953
- .const 'Sub' $P931 = "61_1261064016.27984"
+ .const 'Sub' $P931 = "61_1267204695.47543"
capture_lex $P931
- .const 'Sub' $P921 = "60_1261064016.27984"
+ .const 'Sub' $P921 = "60_1267204695.47543"
capture_lex $P921
- .const 'Sub' $P911 = "59_1261064016.27984"
+ .const 'Sub' $P911 = "59_1267204695.47543"
capture_lex $P911
- .const 'Sub' $P901 = "58_1261064016.27984"
+ .const 'Sub' $P901 = "58_1267204695.47543"
capture_lex $P901
- .const 'Sub' $P889 = "57_1261064016.27984"
+ .const 'Sub' $P889 = "57_1267204695.47543"
capture_lex $P889
- .const 'Sub' $P877 = "56_1261064016.27984"
+ .const 'Sub' $P877 = "56_1267204695.47543"
capture_lex $P877
- .const 'Sub' $P865 = "55_1261064016.27984"
+ .const 'Sub' $P865 = "55_1267204695.47543"
capture_lex $P865
- .const 'Sub' $P853 = "54_1261064016.27984"
+ .const 'Sub' $P853 = "54_1267204695.47543"
capture_lex $P853
- .const 'Sub' $P841 = "53_1261064016.27984"
+ .const 'Sub' $P841 = "53_1267204695.47543"
capture_lex $P841
- .const 'Sub' $P829 = "52_1261064016.27984"
+ .const 'Sub' $P829 = "52_1267204695.47543"
capture_lex $P829
- .const 'Sub' $P817 = "51_1261064016.27984"
+ .const 'Sub' $P817 = "51_1267204695.47543"
capture_lex $P817
- .const 'Sub' $P805 = "50_1261064016.27984"
+ .const 'Sub' $P805 = "50_1267204695.47543"
capture_lex $P805
- .const 'Sub' $P782 = "49_1261064016.27984"
+ .const 'Sub' $P782 = "49_1267204695.47543"
capture_lex $P782
- .const 'Sub' $P759 = "48_1261064016.27984"
+ .const 'Sub' $P759 = "48_1267204695.47543"
capture_lex $P759
- .const 'Sub' $P741 = "47_1261064016.27984"
+ .const 'Sub' $P741 = "47_1267204695.47543"
capture_lex $P741
- .const 'Sub' $P731 = "46_1261064016.27984"
+ .const 'Sub' $P731 = "46_1267204695.47543"
capture_lex $P731
- .const 'Sub' $P713 = "45_1261064016.27984"
+ .const 'Sub' $P713 = "45_1267204695.47543"
capture_lex $P713
- .const 'Sub' $P666 = "44_1261064016.27984"
+ .const 'Sub' $P666 = "44_1267204695.47543"
capture_lex $P666
- .const 'Sub' $P649 = "43_1261064016.27984"
+ .const 'Sub' $P649 = "43_1267204695.47543"
capture_lex $P649
- .const 'Sub' $P634 = "42_1261064016.27984"
+ .const 'Sub' $P634 = "42_1267204695.47543"
capture_lex $P634
- .const 'Sub' $P619 = "41_1261064016.27984"
+ .const 'Sub' $P619 = "41_1267204695.47543"
capture_lex $P619
- .const 'Sub' $P593 = "40_1261064016.27984"
+ .const 'Sub' $P593 = "40_1267204695.47543"
capture_lex $P593
- .const 'Sub' $P543 = "38_1261064016.27984"
+ .const 'Sub' $P543 = "38_1267204695.47543"
capture_lex $P543
- .const 'Sub' $P475 = "36_1261064016.27984"
+ .const 'Sub' $P475 = "36_1267204695.47543"
capture_lex $P475
- .const 'Sub' $P420 = "33_1261064016.27984"
+ .const 'Sub' $P420 = "33_1267204695.47543"
capture_lex $P420
- .const 'Sub' $P405 = "32_1261064016.27984"
+ .const 'Sub' $P405 = "32_1267204695.47543"
capture_lex $P405
- .const 'Sub' $P379 = "30_1261064016.27984"
+ .const 'Sub' $P379 = "30_1267204695.47543"
capture_lex $P379
- .const 'Sub' $P362 = "29_1261064016.27984"
+ .const 'Sub' $P362 = "29_1267204695.47543"
capture_lex $P362
- .const 'Sub' $P340 = "28_1261064016.27984"
+ .const 'Sub' $P340 = "28_1267204695.47543"
capture_lex $P340
- .const 'Sub' $P308 = "27_1261064016.27984"
+ .const 'Sub' $P308 = "27_1267204695.47543"
capture_lex $P308
- .const 'Sub' $P54 = "14_1261064016.27984"
+ .const 'Sub' $P54 = "14_1267204695.47543"
capture_lex $P54
- .const 'Sub' $P21 = "13_1261064016.27984"
+ .const 'Sub' $P21 = "13_1267204695.47543"
capture_lex $P21
- .const 'Sub' $P16 = "12_1261064016.27984"
+ .const 'Sub' $P16 = "12_1267204695.47543"
capture_lex $P16
get_global $P15, "@MODIFIERS"
- unless_null $P15, vivify_90
- new $P15, "ResizablePMCArray"
+ unless_null $P15, vivify_91
+ $P15 = root_new ['parrot';'ResizablePMCArray']
set_global "@MODIFIERS", $P15
- vivify_90:
+ vivify_91:
.annotate "line", 6
- .const 'Sub' $P16 = "12_1261064016.27984"
+ .const 'Sub' $P16 = "12_1267204695.47543"
capture_lex $P16
.lex "INIT", $P16
-.annotate "line", 475
- .const 'Sub' $P21 = "13_1261064016.27984"
+.annotate "line", 479
+ .const 'Sub' $P21 = "13_1267204695.47543"
capture_lex $P21
.lex "buildsub", $P21
-.annotate "line", 492
- .const 'Sub' $P54 = "14_1261064016.27984"
+.annotate "line", 496
+ .const 'Sub' $P54 = "14_1267204695.47543"
capture_lex $P54
.lex "capnames", $P54
-.annotate "line", 558
- .const 'Sub' $P308 = "27_1261064016.27984"
+.annotate "line", 562
+ .const 'Sub' $P308 = "27_1267204695.47543"
capture_lex $P308
.lex "backmod", $P308
-.annotate "line", 565
- .const 'Sub' $P340 = "28_1261064016.27984"
+.annotate "line", 569
+ .const 'Sub' $P340 = "28_1267204695.47543"
capture_lex $P340
.lex "subrule_alias", $P340
.annotate "line", 4
get_global $P360, "@MODIFIERS"
find_lex $P361, "INIT"
-.annotate "line", 468
- find_lex $P1552, "buildsub"
- find_lex $P1553, "capnames"
- find_lex $P1554, "backmod"
- find_lex $P1555, "subrule_alias"
+.annotate "line", 472
+ find_lex $P1565, "buildsub"
+ find_lex $P1566, "capnames"
+ find_lex $P1567, "backmod"
+ find_lex $P1568, "subrule_alias"
.annotate "line", 4
- .return ($P1555)
+ .return ($P1568)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "INIT" :subid("12_1261064016.27984") :outer("11_1261064016.27984")
+.sub "INIT" :subid("12_1267204695.47543") :outer("11_1267204695.47543")
.annotate "line", 6
new $P18, 'ExceptionHandler'
set_addr $P18, control_17
@@ -7351,73 +7353,73 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub" :subid("13_1261064016.27984") :outer("11_1261064016.27984")
+.sub "buildsub" :subid("13_1267204695.47543") :outer("11_1267204695.47543")
.param pmc param_24
.param pmc param_25 :optional
.param int has_param_25 :opt_flag
-.annotate "line", 475
+.annotate "line", 479
new $P23, 'ExceptionHandler'
set_addr $P23, control_22
$P23."handle_types"(58)
push_eh $P23
.lex "$rpast", param_24
- if has_param_25, optparam_91
+ if has_param_25, optparam_92
get_hll_global $P26, ["PAST"], "Block"
$P27 = $P26."new"()
set param_25, $P27
- optparam_91:
+ optparam_92:
.lex "$block", param_25
-.annotate "line", 476
- new $P28, "Hash"
+.annotate "line", 480
+ $P28 = root_new ['parrot';'Hash']
.lex "%capnames", $P28
find_lex $P29, "$rpast"
$P30 = "capnames"($P29, 0)
store_lex "%capnames", $P30
-.annotate "line", 477
+.annotate "line", 481
new $P31, "Integer"
assign $P31, 0
find_lex $P32, "%capnames"
- unless_null $P32, vivify_92
- new $P32, "Hash"
+ unless_null $P32, vivify_93
+ $P32 = root_new ['parrot';'Hash']
store_lex "%capnames", $P32
- vivify_92:
+ vivify_93:
set $P32[""], $P31
-.annotate "line", 478
+.annotate "line", 482
get_hll_global $P33, ["PAST"], "Regex"
-.annotate "line", 479
+.annotate "line", 483
get_hll_global $P34, ["PAST"], "Regex"
$P35 = $P34."new"("scan" :named("pasttype"))
find_lex $P36, "$rpast"
-.annotate "line", 481
+.annotate "line", 485
get_hll_global $P37, ["PAST"], "Regex"
$P38 = $P37."new"("pass" :named("pasttype"))
find_lex $P39, "%capnames"
$P40 = $P33."new"($P35, $P36, $P38, "concat" :named("pasttype"), $P39 :named("capnames"))
-.annotate "line", 478
+.annotate "line", 482
store_lex "$rpast", $P40
-.annotate "line", 485
+.annotate "line", 489
find_lex $P42, "$block"
$P43 = $P42."symbol"(unicode:"$\x{a2}")
if $P43, unless_41_end
find_lex $P44, "$block"
$P44."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
unless_41_end:
-.annotate "line", 486
+.annotate "line", 490
find_lex $P46, "$block"
$P47 = $P46."symbol"("$/")
if $P47, unless_45_end
find_lex $P48, "$block"
$P48."symbol"("$/", "lexical" :named("scope"))
unless_45_end:
-.annotate "line", 487
+.annotate "line", 491
find_lex $P49, "$block"
find_lex $P50, "$rpast"
$P49."push"($P50)
-.annotate "line", 488
+.annotate "line", 492
find_lex $P51, "$block"
$P51."blocktype"("method")
find_lex $P52, "$block"
-.annotate "line", 475
+.annotate "line", 479
.return ($P52)
control_22:
.local pmc exception
@@ -7428,19 +7430,19 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames" :subid("14_1261064016.27984") :outer("11_1261064016.27984")
+.sub "capnames" :subid("14_1267204695.47543") :outer("11_1267204695.47543")
.param pmc param_57
.param pmc param_58
-.annotate "line", 492
- .const 'Sub' $P283 = "25_1261064016.27984"
+.annotate "line", 496
+ .const 'Sub' $P283 = "25_1267204695.47543"
capture_lex $P283
- .const 'Sub' $P220 = "22_1261064016.27984"
+ .const 'Sub' $P220 = "22_1267204695.47543"
capture_lex $P220
- .const 'Sub' $P178 = "20_1261064016.27984"
+ .const 'Sub' $P178 = "20_1267204695.47543"
capture_lex $P178
- .const 'Sub' $P136 = "18_1261064016.27984"
+ .const 'Sub' $P136 = "18_1267204695.47543"
capture_lex $P136
- .const 'Sub' $P69 = "15_1261064016.27984"
+ .const 'Sub' $P69 = "15_1267204695.47543"
capture_lex $P69
new $P56, 'ExceptionHandler'
set_addr $P56, control_55
@@ -7448,29 +7450,29 @@
push_eh $P56
.lex "$ast", param_57
.lex "$count", param_58
-.annotate "line", 493
- new $P59, "Hash"
+.annotate "line", 497
+ $P59 = root_new ['parrot';'Hash']
.lex "%capnames", $P59
-.annotate "line", 494
+.annotate "line", 498
new $P60, "Undef"
.lex "$pasttype", $P60
-.annotate "line", 492
+.annotate "line", 496
find_lex $P61, "%capnames"
-.annotate "line", 494
+.annotate "line", 498
find_lex $P62, "$ast"
$P63 = $P62."pasttype"()
store_lex "$pasttype", $P63
-.annotate "line", 495
+.annotate "line", 499
find_lex $P65, "$pasttype"
set $S66, $P65
iseq $I67, $S66, "alt"
if $I67, if_64
-.annotate "line", 508
+.annotate "line", 512
find_lex $P127, "$pasttype"
set $S128, $P127
iseq $I129, $S128, "concat"
if $I129, if_126
-.annotate "line", 517
+.annotate "line", 521
find_lex $P171, "$pasttype"
set $S172, $P171
iseq $I173, $S172, "subrule"
@@ -7486,41 +7488,41 @@
set $P169, $I176
if_170_end:
if $P169, if_168
-.annotate "line", 530
+.annotate "line", 534
find_lex $P216, "$pasttype"
set $S217, $P216
iseq $I218, $S217, "subcapture"
if $I218, if_215
-.annotate "line", 547
+.annotate "line", 551
find_lex $P279, "$pasttype"
set $S280, $P279
iseq $I281, $S280, "quant"
unless $I281, if_278_end
- .const 'Sub' $P283 = "25_1261064016.27984"
+ .const 'Sub' $P283 = "25_1267204695.47543"
capture_lex $P283
$P283()
if_278_end:
goto if_215_end
if_215:
-.annotate "line", 530
- .const 'Sub' $P220 = "22_1261064016.27984"
+.annotate "line", 534
+ .const 'Sub' $P220 = "22_1267204695.47543"
capture_lex $P220
$P220()
if_215_end:
goto if_168_end
if_168:
-.annotate "line", 517
- .const 'Sub' $P178 = "20_1261064016.27984"
+.annotate "line", 521
+ .const 'Sub' $P178 = "20_1267204695.47543"
capture_lex $P178
$P178()
if_168_end:
goto if_126_end
if_126:
-.annotate "line", 509
+.annotate "line", 513
find_lex $P131, "$ast"
$P132 = $P131."list"()
defined $I133, $P132
- unless $I133, for_undef_113
+ unless $I133, for_undef_114
iter $P130, $P132
new $P166, 'ExceptionHandler'
set_addr $P166, loop165_handler
@@ -7530,7 +7532,7 @@
unless $P130, loop165_done
shift $P134, $P130
loop165_redo:
- .const 'Sub' $P136 = "18_1261064016.27984"
+ .const 'Sub' $P136 = "18_1267204695.47543"
capture_lex $P136
$P136($P134)
loop165_next:
@@ -7543,26 +7545,26 @@
eq $P167, 67, loop165_redo
loop165_done:
pop_eh
- for_undef_113:
+ for_undef_114:
if_126_end:
-.annotate "line", 508
+.annotate "line", 512
goto if_64_end
if_64:
-.annotate "line", 495
- .const 'Sub' $P69 = "15_1261064016.27984"
+.annotate "line", 499
+ .const 'Sub' $P69 = "15_1267204695.47543"
capture_lex $P69
$P69()
if_64_end:
-.annotate "line", 554
+.annotate "line", 558
find_lex $P304, "$count"
find_lex $P305, "%capnames"
- unless_null $P305, vivify_133
- new $P305, "Hash"
+ unless_null $P305, vivify_134
+ $P305 = root_new ['parrot';'Hash']
store_lex "%capnames", $P305
- vivify_133:
+ vivify_134:
set $P305[""], $P304
find_lex $P306, "%capnames"
-.annotate "line", 492
+.annotate "line", 496
.return ($P306)
control_55:
.local pmc exception
@@ -7573,28 +7575,28 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block282" :anon :subid("25_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 547
- .const 'Sub' $P294 = "26_1261064016.27984"
+.sub "_block282" :anon :subid("25_1267204695.47543") :outer("14_1267204695.47543")
+.annotate "line", 551
+ .const 'Sub' $P294 = "26_1267204695.47543"
capture_lex $P294
-.annotate "line", 548
- new $P284, "Hash"
+.annotate "line", 552
+ $P284 = root_new ['parrot';'Hash']
.lex "%astcap", $P284
find_lex $P285, "$ast"
- unless_null $P285, vivify_93
- new $P285, "ResizablePMCArray"
- vivify_93:
+ unless_null $P285, vivify_94
+ $P285 = root_new ['parrot';'ResizablePMCArray']
+ vivify_94:
set $P286, $P285[0]
- unless_null $P286, vivify_94
+ unless_null $P286, vivify_95
new $P286, "Undef"
- vivify_94:
+ vivify_95:
find_lex $P287, "$count"
$P288 = "capnames"($P286, $P287)
store_lex "%astcap", $P288
-.annotate "line", 549
+.annotate "line", 553
find_lex $P290, "%astcap"
defined $I291, $P290
- unless $I291, for_undef_95
+ unless $I291, for_undef_96
iter $P289, $P290
new $P300, 'ExceptionHandler'
set_addr $P300, loop299_handler
@@ -7604,7 +7606,7 @@
unless $P289, loop299_done
shift $P292, $P289
loop299_redo:
- .const 'Sub' $P294 = "26_1261064016.27984"
+ .const 'Sub' $P294 = "26_1267204695.47543"
capture_lex $P294
$P294($P292)
loop299_next:
@@ -7617,73 +7619,73 @@
eq $P301, 67, loop299_redo
loop299_done:
pop_eh
- for_undef_95:
-.annotate "line", 552
+ for_undef_96:
+.annotate "line", 556
find_lex $P302, "%astcap"
- unless_null $P302, vivify_97
- new $P302, "Hash"
- vivify_97:
+ unless_null $P302, vivify_98
+ $P302 = root_new ['parrot';'Hash']
+ vivify_98:
set $P303, $P302[""]
- unless_null $P303, vivify_98
+ unless_null $P303, vivify_99
new $P303, "Undef"
- vivify_98:
+ vivify_99:
store_lex "$count", $P303
-.annotate "line", 547
+.annotate "line", 551
.return ($P303)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block293" :anon :subid("26_1261064016.27984") :outer("25_1261064016.27984")
+.sub "_block293" :anon :subid("26_1267204695.47543") :outer("25_1267204695.47543")
.param pmc param_295
-.annotate "line", 549
+.annotate "line", 553
.lex "$_", param_295
-.annotate "line", 550
+.annotate "line", 554
new $P296, "Integer"
assign $P296, 2
find_lex $P297, "$_"
find_lex $P298, "%capnames"
- unless_null $P298, vivify_96
- new $P298, "Hash"
+ unless_null $P298, vivify_97
+ $P298 = root_new ['parrot';'Hash']
store_lex "%capnames", $P298
- vivify_96:
+ vivify_97:
set $P298[$P297], $P296
-.annotate "line", 549
+.annotate "line", 553
.return ($P296)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block219" :anon :subid("22_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 530
- .const 'Sub' $P260 = "24_1261064016.27984"
+.sub "_block219" :anon :subid("22_1267204695.47543") :outer("14_1267204695.47543")
+.annotate "line", 534
+ .const 'Sub' $P260 = "24_1267204695.47543"
capture_lex $P260
- .const 'Sub' $P232 = "23_1261064016.27984"
+ .const 'Sub' $P232 = "23_1267204695.47543"
capture_lex $P232
-.annotate "line", 531
+.annotate "line", 535
new $P221, "Undef"
.lex "$name", $P221
-.annotate "line", 532
- new $P222, "ResizablePMCArray"
+.annotate "line", 536
+ $P222 = root_new ['parrot';'ResizablePMCArray']
.lex "@names", $P222
-.annotate "line", 541
- new $P223, "Hash"
+.annotate "line", 545
+ $P223 = root_new ['parrot';'Hash']
.lex "%x", $P223
-.annotate "line", 531
+.annotate "line", 535
find_lex $P224, "$ast"
$P225 = $P224."name"()
store_lex "$name", $P225
-.annotate "line", 532
+.annotate "line", 536
$P0 = find_lex '$name'
$S0 = $P0
$P226 = split '=', $S0
store_lex "@names", $P226
-.annotate "line", 537
+.annotate "line", 541
find_lex $P228, "@names"
defined $I229, $P228
- unless $I229, for_undef_99
+ unless $I229, for_undef_100
iter $P227, $P228
new $P249, 'ExceptionHandler'
set_addr $P249, loop248_handler
@@ -7693,7 +7695,7 @@
unless $P227, loop248_done
shift $P230, $P227
loop248_redo:
- .const 'Sub' $P232 = "23_1261064016.27984"
+ .const 'Sub' $P232 = "23_1267204695.47543"
capture_lex $P232
$P232($P230)
loop248_next:
@@ -7706,23 +7708,23 @@
eq $P250, 67, loop248_redo
loop248_done:
pop_eh
- for_undef_99:
-.annotate "line", 541
+ for_undef_100:
+.annotate "line", 545
find_lex $P251, "$ast"
- unless_null $P251, vivify_101
- new $P251, "ResizablePMCArray"
- vivify_101:
+ unless_null $P251, vivify_102
+ $P251 = root_new ['parrot';'ResizablePMCArray']
+ vivify_102:
set $P252, $P251[0]
- unless_null $P252, vivify_102
+ unless_null $P252, vivify_103
new $P252, "Undef"
- vivify_102:
+ vivify_103:
find_lex $P253, "$count"
$P254 = "capnames"($P252, $P253)
store_lex "%x", $P254
-.annotate "line", 542
+.annotate "line", 546
find_lex $P256, "%x"
defined $I257, $P256
- unless $I257, for_undef_103
+ unless $I257, for_undef_104
iter $P255, $P256
new $P274, 'ExceptionHandler'
set_addr $P274, loop273_handler
@@ -7732,7 +7734,7 @@
unless $P255, loop273_done
shift $P258, $P255
loop273_redo:
- .const 'Sub' $P260 = "24_1261064016.27984"
+ .const 'Sub' $P260 = "24_1267204695.47543"
capture_lex $P260
$P260($P258)
loop273_next:
@@ -7745,28 +7747,28 @@
eq $P275, 67, loop273_redo
loop273_done:
pop_eh
- for_undef_103:
-.annotate "line", 545
+ for_undef_104:
+.annotate "line", 549
find_lex $P276, "%x"
- unless_null $P276, vivify_109
- new $P276, "Hash"
- vivify_109:
+ unless_null $P276, vivify_110
+ $P276 = root_new ['parrot';'Hash']
+ vivify_110:
set $P277, $P276[""]
- unless_null $P277, vivify_110
+ unless_null $P277, vivify_111
new $P277, "Undef"
- vivify_110:
+ vivify_111:
store_lex "$count", $P277
-.annotate "line", 530
+.annotate "line", 534
.return ($P277)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block231" :anon :subid("23_1261064016.27984") :outer("22_1261064016.27984")
+.sub "_block231" :anon :subid("23_1267204695.47543") :outer("22_1267204695.47543")
.param pmc param_233
-.annotate "line", 537
+.annotate "line", 541
.lex "$_", param_233
-.annotate "line", 538
+.annotate "line", 542
find_lex $P237, "$_"
set $S238, $P237
iseq $I239, $S238, "0"
@@ -7786,77 +7788,77 @@
add $P244, $P243, 1
store_lex "$count", $P244
if_234_end:
-.annotate "line", 539
+.annotate "line", 543
new $P245, "Integer"
assign $P245, 1
find_lex $P246, "$_"
find_lex $P247, "%capnames"
- unless_null $P247, vivify_100
- new $P247, "Hash"
+ unless_null $P247, vivify_101
+ $P247 = root_new ['parrot';'Hash']
store_lex "%capnames", $P247
- vivify_100:
+ vivify_101:
set $P247[$P246], $P245
-.annotate "line", 537
+.annotate "line", 541
.return ($P245)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block259" :anon :subid("24_1261064016.27984") :outer("22_1261064016.27984")
+.sub "_block259" :anon :subid("24_1267204695.47543") :outer("22_1267204695.47543")
.param pmc param_261
-.annotate "line", 542
+.annotate "line", 546
.lex "$_", param_261
-.annotate "line", 543
+.annotate "line", 547
find_lex $P262, "$_"
find_lex $P263, "%capnames"
- unless_null $P263, vivify_104
- new $P263, "Hash"
- vivify_104:
+ unless_null $P263, vivify_105
+ $P263 = root_new ['parrot';'Hash']
+ vivify_105:
set $P264, $P263[$P262]
- unless_null $P264, vivify_105
+ unless_null $P264, vivify_106
new $P264, "Undef"
- vivify_105:
+ vivify_106:
set $N265, $P264
new $P266, 'Float'
set $P266, $N265
find_lex $P267, "$_"
find_lex $P268, "%x"
- unless_null $P268, vivify_106
- new $P268, "Hash"
- vivify_106:
+ unless_null $P268, vivify_107
+ $P268 = root_new ['parrot';'Hash']
+ vivify_107:
set $P269, $P268[$P267]
- unless_null $P269, vivify_107
+ unless_null $P269, vivify_108
new $P269, "Undef"
- vivify_107:
+ vivify_108:
add $P270, $P266, $P269
find_lex $P271, "$_"
find_lex $P272, "%capnames"
- unless_null $P272, vivify_108
- new $P272, "Hash"
+ unless_null $P272, vivify_109
+ $P272 = root_new ['parrot';'Hash']
store_lex "%capnames", $P272
- vivify_108:
+ vivify_109:
set $P272[$P271], $P270
-.annotate "line", 542
+.annotate "line", 546
.return ($P270)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block177" :anon :subid("20_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 517
- .const 'Sub' $P196 = "21_1261064016.27984"
+.sub "_block177" :anon :subid("20_1267204695.47543") :outer("14_1267204695.47543")
+.annotate "line", 521
+ .const 'Sub' $P196 = "21_1267204695.47543"
capture_lex $P196
-.annotate "line", 518
+.annotate "line", 522
new $P179, "Undef"
.lex "$name", $P179
-.annotate "line", 520
- new $P180, "ResizablePMCArray"
+.annotate "line", 524
+ $P180 = root_new ['parrot';'ResizablePMCArray']
.lex "@names", $P180
-.annotate "line", 518
+.annotate "line", 522
find_lex $P181, "$ast"
$P182 = $P181."name"()
store_lex "$name", $P182
-.annotate "line", 519
+.annotate "line", 523
find_lex $P184, "$name"
set $S185, $P184
iseq $I186, $S185, ""
@@ -7867,17 +7869,17 @@
find_lex $P189, "$name"
$P188."name"($P189)
if_183_end:
-.annotate "line", 520
+.annotate "line", 524
$P0 = find_lex '$name'
$S0 = $P0
$P190 = split '=', $S0
store_lex "@names", $P190
-.annotate "line", 525
+.annotate "line", 529
find_lex $P192, "@names"
defined $I193, $P192
- unless $I193, for_undef_111
+ unless $I193, for_undef_112
iter $P191, $P192
new $P213, 'ExceptionHandler'
set_addr $P213, loop212_handler
@@ -7887,7 +7889,7 @@
unless $P191, loop212_done
shift $P194, $P191
loop212_redo:
- .const 'Sub' $P196 = "21_1261064016.27984"
+ .const 'Sub' $P196 = "21_1267204695.47543"
capture_lex $P196
$P196($P194)
loop212_next:
@@ -7900,18 +7902,18 @@
eq $P214, 67, loop212_redo
loop212_done:
pop_eh
- for_undef_111:
-.annotate "line", 517
+ for_undef_112:
+.annotate "line", 521
.return ($P191)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block195" :anon :subid("21_1261064016.27984") :outer("20_1261064016.27984")
+.sub "_block195" :anon :subid("21_1267204695.47543") :outer("20_1267204695.47543")
.param pmc param_197
-.annotate "line", 525
+.annotate "line", 529
.lex "$_", param_197
-.annotate "line", 526
+.annotate "line", 530
find_lex $P201, "$_"
set $S202, $P201
iseq $I203, $S202, "0"
@@ -7931,39 +7933,39 @@
add $P208, $P207, 1
store_lex "$count", $P208
if_198_end:
-.annotate "line", 527
+.annotate "line", 531
new $P209, "Integer"
assign $P209, 1
find_lex $P210, "$_"
find_lex $P211, "%capnames"
- unless_null $P211, vivify_112
- new $P211, "Hash"
+ unless_null $P211, vivify_113
+ $P211 = root_new ['parrot';'Hash']
store_lex "%capnames", $P211
- vivify_112:
+ vivify_113:
set $P211[$P210], $P209
-.annotate "line", 525
+.annotate "line", 529
.return ($P209)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block135" :anon :subid("18_1261064016.27984") :outer("14_1261064016.27984")
+.sub "_block135" :anon :subid("18_1267204695.47543") :outer("14_1267204695.47543")
.param pmc param_138
-.annotate "line", 509
- .const 'Sub' $P147 = "19_1261064016.27984"
+.annotate "line", 513
+ .const 'Sub' $P147 = "19_1267204695.47543"
capture_lex $P147
-.annotate "line", 510
- new $P137, "Hash"
+.annotate "line", 514
+ $P137 = root_new ['parrot';'Hash']
.lex "%x", $P137
.lex "$_", param_138
find_lex $P139, "$_"
find_lex $P140, "$count"
$P141 = "capnames"($P139, $P140)
store_lex "%x", $P141
-.annotate "line", 511
+.annotate "line", 515
find_lex $P143, "%x"
defined $I144, $P143
- unless $I144, for_undef_114
+ unless $I144, for_undef_115
iter $P142, $P143
new $P161, 'ExceptionHandler'
set_addr $P161, loop160_handler
@@ -7973,7 +7975,7 @@
unless $P142, loop160_done
shift $P145, $P142
loop160_redo:
- .const 'Sub' $P147 = "19_1261064016.27984"
+ .const 'Sub' $P147 = "19_1267204695.47543"
capture_lex $P147
$P147($P145)
loop160_next:
@@ -7986,77 +7988,77 @@
eq $P162, 67, loop160_redo
loop160_done:
pop_eh
- for_undef_114:
-.annotate "line", 514
+ for_undef_115:
+.annotate "line", 518
find_lex $P163, "%x"
- unless_null $P163, vivify_120
- new $P163, "Hash"
- vivify_120:
+ unless_null $P163, vivify_121
+ $P163 = root_new ['parrot';'Hash']
+ vivify_121:
set $P164, $P163[""]
- unless_null $P164, vivify_121
+ unless_null $P164, vivify_122
new $P164, "Undef"
- vivify_121:
+ vivify_122:
store_lex "$count", $P164
-.annotate "line", 509
+.annotate "line", 513
.return ($P164)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block146" :anon :subid("19_1261064016.27984") :outer("18_1261064016.27984")
+.sub "_block146" :anon :subid("19_1267204695.47543") :outer("18_1267204695.47543")
.param pmc param_148
-.annotate "line", 511
+.annotate "line", 515
.lex "$_", param_148
-.annotate "line", 512
+.annotate "line", 516
find_lex $P149, "$_"
find_lex $P150, "%capnames"
- unless_null $P150, vivify_115
- new $P150, "Hash"
- vivify_115:
+ unless_null $P150, vivify_116
+ $P150 = root_new ['parrot';'Hash']
+ vivify_116:
set $P151, $P150[$P149]
- unless_null $P151, vivify_116
+ unless_null $P151, vivify_117
new $P151, "Undef"
- vivify_116:
+ vivify_117:
set $N152, $P151
new $P153, 'Float'
set $P153, $N152
find_lex $P154, "$_"
find_lex $P155, "%x"
- unless_null $P155, vivify_117
- new $P155, "Hash"
- vivify_117:
+ unless_null $P155, vivify_118
+ $P155 = root_new ['parrot';'Hash']
+ vivify_118:
set $P156, $P155[$P154]
- unless_null $P156, vivify_118
+ unless_null $P156, vivify_119
new $P156, "Undef"
- vivify_118:
+ vivify_119:
add $P157, $P153, $P156
find_lex $P158, "$_"
find_lex $P159, "%capnames"
- unless_null $P159, vivify_119
- new $P159, "Hash"
+ unless_null $P159, vivify_120
+ $P159 = root_new ['parrot';'Hash']
store_lex "%capnames", $P159
- vivify_119:
+ vivify_120:
set $P159[$P158], $P157
-.annotate "line", 511
+.annotate "line", 515
.return ($P157)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block68" :anon :subid("15_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 495
- .const 'Sub' $P78 = "16_1261064016.27984"
+.sub "_block68" :anon :subid("15_1267204695.47543") :outer("14_1267204695.47543")
+.annotate "line", 499
+ .const 'Sub' $P78 = "16_1267204695.47543"
capture_lex $P78
-.annotate "line", 496
+.annotate "line", 500
new $P70, "Undef"
.lex "$max", $P70
find_lex $P71, "$count"
store_lex "$max", $P71
-.annotate "line", 497
+.annotate "line", 501
find_lex $P73, "$ast"
$P74 = $P73."list"()
defined $I75, $P74
- unless $I75, for_undef_122
+ unless $I75, for_undef_123
iter $P72, $P74
new $P123, 'ExceptionHandler'
set_addr $P123, loop122_handler
@@ -8066,7 +8068,7 @@
unless $P72, loop122_done
shift $P76, $P72
loop122_redo:
- .const 'Sub' $P78 = "16_1261064016.27984"
+ .const 'Sub' $P78 = "16_1267204695.47543"
capture_lex $P78
$P78($P76)
loop122_next:
@@ -8079,33 +8081,33 @@
eq $P124, 67, loop122_redo
loop122_done:
pop_eh
- for_undef_122:
-.annotate "line", 506
+ for_undef_123:
+.annotate "line", 510
find_lex $P125, "$max"
store_lex "$count", $P125
-.annotate "line", 495
+.annotate "line", 499
.return ($P125)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block77" :anon :subid("16_1261064016.27984") :outer("15_1261064016.27984")
+.sub "_block77" :anon :subid("16_1267204695.47543") :outer("15_1267204695.47543")
.param pmc param_80
-.annotate "line", 497
- .const 'Sub' $P89 = "17_1261064016.27984"
+.annotate "line", 501
+ .const 'Sub' $P89 = "17_1267204695.47543"
capture_lex $P89
-.annotate "line", 498
- new $P79, "Hash"
+.annotate "line", 502
+ $P79 = root_new ['parrot';'Hash']
.lex "%x", $P79
.lex "$_", param_80
find_lex $P81, "$_"
find_lex $P82, "$count"
$P83 = "capnames"($P81, $P82)
store_lex "%x", $P83
-.annotate "line", 499
+.annotate "line", 503
find_lex $P85, "%x"
defined $I86, $P85
- unless $I86, for_undef_123
+ unless $I86, for_undef_124
iter $P84, $P85
new $P110, 'ExceptionHandler'
set_addr $P110, loop109_handler
@@ -8115,7 +8117,7 @@
unless $P84, loop109_done
shift $P87, $P84
loop109_redo:
- .const 'Sub' $P89 = "17_1261064016.27984"
+ .const 'Sub' $P89 = "17_1267204695.47543"
capture_lex $P89
$P89($P87)
loop109_next:
@@ -8128,16 +8130,16 @@
eq $P111, 67, loop109_redo
loop109_done:
pop_eh
- for_undef_123:
-.annotate "line", 504
+ for_undef_124:
+.annotate "line", 508
find_lex $P114, "%x"
- unless_null $P114, vivify_129
- new $P114, "Hash"
- vivify_129:
+ unless_null $P114, vivify_130
+ $P114 = root_new ['parrot';'Hash']
+ vivify_130:
set $P115, $P114[""]
- unless_null $P115, vivify_130
+ unless_null $P115, vivify_131
new $P115, "Undef"
- vivify_130:
+ vivify_131:
set $N116, $P115
find_lex $P117, "$max"
set $N118, $P117
@@ -8148,36 +8150,36 @@
goto if_113_end
if_113:
find_lex $P120, "%x"
- unless_null $P120, vivify_131
- new $P120, "Hash"
- vivify_131:
+ unless_null $P120, vivify_132
+ $P120 = root_new ['parrot';'Hash']
+ vivify_132:
set $P121, $P120[""]
- unless_null $P121, vivify_132
+ unless_null $P121, vivify_133
new $P121, "Undef"
- vivify_132:
+ vivify_133:
store_lex "$max", $P121
set $P112, $P121
if_113_end:
-.annotate "line", 497
+.annotate "line", 501
.return ($P112)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block88" :anon :subid("17_1261064016.27984") :outer("16_1261064016.27984")
+.sub "_block88" :anon :subid("17_1267204695.47543") :outer("16_1267204695.47543")
.param pmc param_90
-.annotate "line", 499
+.annotate "line", 503
.lex "$_", param_90
-.annotate "line", 500
+.annotate "line", 504
find_lex $P95, "$_"
find_lex $P96, "%capnames"
- unless_null $P96, vivify_124
- new $P96, "Hash"
- vivify_124:
+ unless_null $P96, vivify_125
+ $P96 = root_new ['parrot';'Hash']
+ vivify_125:
set $P97, $P96[$P95]
- unless_null $P97, vivify_125
+ unless_null $P97, vivify_126
new $P97, "Undef"
- vivify_125:
+ vivify_126:
set $N98, $P97
islt $I99, $N98, 2.0
if $I99, if_94
@@ -8187,13 +8189,13 @@
if_94:
find_lex $P100, "$_"
find_lex $P101, "%x"
- unless_null $P101, vivify_126
- new $P101, "Hash"
- vivify_126:
+ unless_null $P101, vivify_127
+ $P101 = root_new ['parrot';'Hash']
+ vivify_127:
set $P102, $P101[$P100]
- unless_null $P102, vivify_127
+ unless_null $P102, vivify_128
new $P102, "Undef"
- vivify_127:
+ vivify_128:
set $N103, $P102
iseq $I104, $N103, 1.0
new $P93, 'Integer'
@@ -8209,36 +8211,36 @@
assign $P105, 1
set $P91, $P105
if_92_end:
-.annotate "line", 501
+.annotate "line", 505
find_lex $P107, "$_"
find_lex $P108, "%capnames"
- unless_null $P108, vivify_128
- new $P108, "Hash"
+ unless_null $P108, vivify_129
+ $P108 = root_new ['parrot';'Hash']
store_lex "%capnames", $P108
- vivify_128:
+ vivify_129:
set $P108[$P107], $P91
-.annotate "line", 499
+.annotate "line", 503
.return ($P91)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod" :subid("27_1261064016.27984") :outer("11_1261064016.27984")
+.sub "backmod" :subid("27_1267204695.47543") :outer("11_1267204695.47543")
.param pmc param_311
.param pmc param_312
-.annotate "line", 558
+.annotate "line", 562
new $P310, 'ExceptionHandler'
set_addr $P310, control_309
$P310."handle_types"(58)
push_eh $P310
.lex "$ast", param_311
.lex "$backmod", param_312
-.annotate "line", 559
+.annotate "line", 563
find_lex $P314, "$backmod"
set $S315, $P314
iseq $I316, $S315, ":"
if $I316, if_313
-.annotate "line", 560
+.annotate "line", 564
find_lex $P321, "$backmod"
set $S322, $P321
iseq $I323, $S322, ":?"
@@ -8254,7 +8256,7 @@
set $P319, $I326
unless_320_end:
if $P319, if_318
-.annotate "line", 561
+.annotate "line", 565
find_lex $P331, "$backmod"
set $S332, $P331
iseq $I333, $S332, ":!"
@@ -8275,18 +8277,18 @@
if_328_end:
goto if_318_end
if_318:
-.annotate "line", 560
+.annotate "line", 564
find_lex $P327, "$ast"
$P327."backtrack"("f")
if_318_end:
goto if_313_end
if_313:
-.annotate "line", 559
+.annotate "line", 563
find_lex $P317, "$ast"
$P317."backtrack"("r")
if_313_end:
find_lex $P338, "$ast"
-.annotate "line", 558
+.annotate "line", 562
.return ($P338)
control_309:
.local pmc exception
@@ -8297,28 +8299,28 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias" :subid("28_1261064016.27984") :outer("11_1261064016.27984")
+.sub "subrule_alias" :subid("28_1267204695.47543") :outer("11_1267204695.47543")
.param pmc param_343
.param pmc param_344
-.annotate "line", 565
+.annotate "line", 569
new $P342, 'ExceptionHandler'
set_addr $P342, control_341
$P342."handle_types"(58)
push_eh $P342
.lex "$past", param_343
.lex "$name", param_344
-.annotate "line", 566
+.annotate "line", 570
find_lex $P346, "$past"
$S347 = $P346."name"()
isgt $I348, $S347, ""
if $I348, if_345
-.annotate "line", 567
+.annotate "line", 571
find_lex $P355, "$past"
find_lex $P356, "$name"
$P355."name"($P356)
goto if_345_end
if_345:
-.annotate "line", 566
+.annotate "line", 570
find_lex $P349, "$past"
find_lex $P350, "$name"
concat $P351, $P350, "="
@@ -8327,10 +8329,10 @@
concat $P354, $P351, $S353
$P349."name"($P354)
if_345_end:
-.annotate "line", 568
+.annotate "line", 572
find_lex $P357, "$past"
$P358 = $P357."subtype"("capture")
-.annotate "line", 565
+.annotate "line", 569
.return ($P358)
control_341:
.local pmc exception
@@ -8341,7 +8343,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg" :subid("29_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "arg" :subid("29_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_365
.annotate "line", 14
new $P364, 'ExceptionHandler'
@@ -8353,35 +8355,35 @@
.annotate "line", 15
find_lex $P366, "$/"
find_lex $P369, "$/"
- unless_null $P369, vivify_134
- new $P369, "Hash"
- vivify_134:
+ unless_null $P369, vivify_135
+ $P369 = root_new ['parrot';'Hash']
+ vivify_135:
set $P370, $P369["quote_EXPR"]
- unless_null $P370, vivify_135
+ unless_null $P370, vivify_136
new $P370, "Undef"
- vivify_135:
+ vivify_136:
if $P370, if_368
find_lex $P374, "$/"
- unless_null $P374, vivify_136
- new $P374, "Hash"
- vivify_136:
+ unless_null $P374, vivify_137
+ $P374 = root_new ['parrot';'Hash']
+ vivify_137:
set $P375, $P374["val"]
- unless_null $P375, vivify_137
+ unless_null $P375, vivify_138
new $P375, "Undef"
- vivify_137:
+ vivify_138:
set $N376, $P375
new $P367, 'Float'
set $P367, $N376
goto if_368_end
if_368:
find_lex $P371, "$/"
- unless_null $P371, vivify_138
- new $P371, "Hash"
- vivify_138:
+ unless_null $P371, vivify_139
+ $P371 = root_new ['parrot';'Hash']
+ vivify_139:
set $P372, $P371["quote_EXPR"]
- unless_null $P372, vivify_139
+ unless_null $P372, vivify_140
new $P372, "Undef"
- vivify_139:
+ vivify_140:
$P373 = $P372."ast"()
set $P367, $P373
if_368_end:
@@ -8397,10 +8399,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist" :subid("30_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "arglist" :subid("30_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_382
.annotate "line", 18
- .const 'Sub' $P392 = "31_1261064016.27984"
+ .const 'Sub' $P392 = "31_1267204695.47543"
capture_lex $P392
new $P381, 'ExceptionHandler'
set_addr $P381, control_380
@@ -8416,15 +8418,15 @@
store_lex "$past", $P385
.annotate "line", 20
find_lex $P387, "$/"
- unless_null $P387, vivify_140
- new $P387, "Hash"
- vivify_140:
+ unless_null $P387, vivify_141
+ $P387 = root_new ['parrot';'Hash']
+ vivify_141:
set $P388, $P387["arg"]
- unless_null $P388, vivify_141
+ unless_null $P388, vivify_142
new $P388, "Undef"
- vivify_141:
+ vivify_142:
defined $I389, $P388
- unless $I389, for_undef_142
+ unless $I389, for_undef_143
iter $P386, $P388
new $P399, 'ExceptionHandler'
set_addr $P399, loop398_handler
@@ -8434,7 +8436,7 @@
unless $P386, loop398_done
shift $P390, $P386
loop398_redo:
- .const 'Sub' $P392 = "31_1261064016.27984"
+ .const 'Sub' $P392 = "31_1267204695.47543"
capture_lex $P392
$P392($P390)
loop398_next:
@@ -8447,7 +8449,7 @@
eq $P400, 67, loop398_redo
loop398_done:
pop_eh
- for_undef_142:
+ for_undef_143:
.annotate "line", 21
find_lex $P401, "$/"
find_lex $P402, "$past"
@@ -8463,7 +8465,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block391" :anon :subid("31_1261064016.27984") :outer("30_1261064016.27984")
+.sub "_block391" :anon :subid("31_1267204695.47543") :outer("30_1267204695.47543")
.param pmc param_393
.annotate "line", 20
.lex "$_", param_393
@@ -8476,7 +8478,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP" :subid("32_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "TOP" :subid("32_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_408
.annotate "line", 24
new $P407, 'ExceptionHandler'
@@ -8489,13 +8491,13 @@
new $P409, "Undef"
.lex "$past", $P409
find_lex $P410, "$/"
- unless_null $P410, vivify_143
- new $P410, "Hash"
- vivify_143:
+ unless_null $P410, vivify_144
+ $P410 = root_new ['parrot';'Hash']
+ vivify_144:
set $P411, $P410["nibbler"]
- unless_null $P411, vivify_144
+ unless_null $P411, vivify_145
new $P411, "Undef"
- vivify_144:
+ vivify_145:
$P412 = $P411."ast"()
$P413 = "buildsub"($P412)
store_lex "$past", $P413
@@ -8518,14 +8520,14 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler" :subid("33_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "nibbler" :subid("33_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_423
.param pmc param_424 :optional
.param int has_param_424 :opt_flag
.annotate "line", 30
- .const 'Sub' $P458 = "35_1261064016.27984"
+ .const 'Sub' $P458 = "35_1267204695.47543"
capture_lex $P458
- .const 'Sub' $P432 = "34_1261064016.27984"
+ .const 'Sub' $P432 = "34_1267204695.47543"
capture_lex $P432
new $P422, 'ExceptionHandler'
set_addr $P422, control_421
@@ -8533,10 +8535,10 @@
push_eh $P422
.lex "self", self
.lex "$/", param_423
- if has_param_424, optparam_145
+ if has_param_424, optparam_146
new $P425, "Undef"
set param_424, $P425
- optparam_145:
+ optparam_146:
.lex "$key", param_424
.annotate "line", 42
new $P426, "Undef"
@@ -8546,7 +8548,7 @@
set $S429, $P428
iseq $I430, $S429, "open"
unless $I430, if_427_end
- .const 'Sub' $P432 = "34_1261064016.27984"
+ .const 'Sub' $P432 = "34_1267204695.47543"
capture_lex $P432
$P432()
if_427_end:
@@ -8556,29 +8558,29 @@
find_lex $P443, "$past"
.annotate "line", 43
find_lex $P445, "$/"
- unless_null $P445, vivify_148
- new $P445, "Hash"
- vivify_148:
+ unless_null $P445, vivify_149
+ $P445 = root_new ['parrot';'Hash']
+ vivify_149:
set $P446, $P445["termish"]
- unless_null $P446, vivify_149
+ unless_null $P446, vivify_150
new $P446, "Undef"
- vivify_149:
+ vivify_150:
set $N447, $P446
isgt $I448, $N447, 1.0
if $I448, if_444
.annotate "line", 50
find_lex $P467, "$/"
- unless_null $P467, vivify_150
- new $P467, "Hash"
- vivify_150:
- set $P468, $P467["termish"]
- unless_null $P468, vivify_151
- new $P468, "ResizablePMCArray"
+ unless_null $P467, vivify_151
+ $P467 = root_new ['parrot';'Hash']
vivify_151:
+ set $P468, $P467["termish"]
+ unless_null $P468, vivify_152
+ $P468 = root_new ['parrot';'ResizablePMCArray']
+ vivify_152:
set $P469, $P468[0]
- unless_null $P469, vivify_152
+ unless_null $P469, vivify_153
new $P469, "Undef"
- vivify_152:
+ vivify_153:
$P470 = $P469."ast"()
store_lex "$past", $P470
.annotate "line", 49
@@ -8591,15 +8593,15 @@
store_lex "$past", $P451
.annotate "line", 45
find_lex $P453, "$/"
- unless_null $P453, vivify_153
- new $P453, "Hash"
- vivify_153:
+ unless_null $P453, vivify_154
+ $P453 = root_new ['parrot';'Hash']
+ vivify_154:
set $P454, $P453["termish"]
- unless_null $P454, vivify_154
+ unless_null $P454, vivify_155
new $P454, "Undef"
- vivify_154:
+ vivify_155:
defined $I455, $P454
- unless $I455, for_undef_155
+ unless $I455, for_undef_156
iter $P452, $P454
new $P465, 'ExceptionHandler'
set_addr $P465, loop464_handler
@@ -8609,7 +8611,7 @@
unless $P452, loop464_done
shift $P456, $P452
loop464_redo:
- .const 'Sub' $P458 = "35_1261064016.27984"
+ .const 'Sub' $P458 = "35_1267204695.47543"
capture_lex $P458
$P458($P456)
loop464_next:
@@ -8622,7 +8624,7 @@
eq $P466, 67, loop464_redo
loop464_done:
pop_eh
- for_undef_155:
+ for_undef_156:
if_444_end:
.annotate "line", 52
find_lex $P471, "$/"
@@ -8639,22 +8641,22 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block431" :anon :subid("34_1261064016.27984") :outer("33_1261064016.27984")
+.sub "_block431" :anon :subid("34_1267204695.47543") :outer("33_1267204695.47543")
.annotate "line", 32
- new $P433, "Hash"
+ $P433 = root_new ['parrot';'Hash']
.lex "%old", $P433
.annotate "line", 33
- new $P434, "Hash"
+ $P434 = root_new ['parrot';'Hash']
.lex "%new", $P434
.annotate "line", 32
get_global $P435, "@MODIFIERS"
- unless_null $P435, vivify_146
- new $P435, "ResizablePMCArray"
- vivify_146:
+ unless_null $P435, vivify_147
+ $P435 = root_new ['parrot';'ResizablePMCArray']
+ vivify_147:
set $P436, $P435[0]
- unless_null $P436, vivify_147
+ unless_null $P436, vivify_148
new $P436, "Undef"
- vivify_147:
+ vivify_148:
store_lex "%old", $P436
.annotate "line", 33
@@ -8679,7 +8681,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block457" :anon :subid("35_1261064016.27984") :outer("33_1261064016.27984")
+.sub "_block457" :anon :subid("35_1267204695.47543") :outer("33_1267204695.47543")
.param pmc param_459
.annotate "line", 45
.lex "$_", param_459
@@ -8694,10 +8696,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish" :subid("36_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "termish" :subid("36_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_478
.annotate "line", 55
- .const 'Sub' $P491 = "37_1261064016.27984"
+ .const 'Sub' $P491 = "37_1267204695.47543"
capture_lex $P491
new $P477, 'ExceptionHandler'
set_addr $P477, control_476
@@ -8722,15 +8724,15 @@
store_lex "$lastlit", $P484
.annotate "line", 58
find_lex $P486, "$/"
- unless_null $P486, vivify_156
- new $P486, "Hash"
- vivify_156:
+ unless_null $P486, vivify_157
+ $P486 = root_new ['parrot';'Hash']
+ vivify_157:
set $P487, $P486["noun"]
- unless_null $P487, vivify_157
+ unless_null $P487, vivify_158
new $P487, "Undef"
- vivify_157:
+ vivify_158:
defined $I488, $P487
- unless $I488, for_undef_158
+ unless $I488, for_undef_159
iter $P485, $P487
new $P537, 'ExceptionHandler'
set_addr $P537, loop536_handler
@@ -8740,7 +8742,7 @@
unless $P485, loop536_done
shift $P489, $P485
loop536_redo:
- .const 'Sub' $P491 = "37_1261064016.27984"
+ .const 'Sub' $P491 = "37_1267204695.47543"
capture_lex $P491
$P491($P489)
loop536_next:
@@ -8753,7 +8755,7 @@
eq $P538, 67, loop536_redo
loop536_done:
pop_eh
- for_undef_158:
+ for_undef_159:
.annotate "line", 73
find_lex $P539, "$/"
find_lex $P540, "$past"
@@ -8769,7 +8771,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block490" :anon :subid("37_1261064016.27984") :outer("36_1261064016.27984")
+.sub "_block490" :anon :subid("37_1267204695.47543") :outer("36_1267204695.47543")
.param pmc param_493
.annotate "line", 59
new $P492, "Undef"
@@ -8803,13 +8805,13 @@
.annotate "line", 62
get_hll_global $P509, ["PAST"], "Node"
find_lex $P510, "$ast"
- unless_null $P510, vivify_159
- new $P510, "ResizablePMCArray"
- vivify_159:
+ unless_null $P510, vivify_160
+ $P510 = root_new ['parrot';'ResizablePMCArray']
+ vivify_160:
set $P511, $P510[0]
- unless_null $P511, vivify_160
+ unless_null $P511, vivify_161
new $P511, "Undef"
- vivify_160:
+ vivify_161:
$P512 = $P509."ACCEPTS"($P511)
isfalse $I513, $P512
new $P501, 'Integer'
@@ -8832,13 +8834,13 @@
.annotate "line", 68
get_hll_global $P529, ["PAST"], "Node"
find_lex $P530, "$ast"
- unless_null $P530, vivify_161
- new $P530, "ResizablePMCArray"
- vivify_161:
+ unless_null $P530, vivify_162
+ $P530 = root_new ['parrot';'ResizablePMCArray']
+ vivify_162:
set $P531, $P530[0]
- unless_null $P531, vivify_162
+ unless_null $P531, vivify_163
new $P531, "Undef"
- vivify_162:
+ vivify_163:
$P532 = $P529."ACCEPTS"($P531)
isfalse $I533, $P532
new $P524, 'Integer'
@@ -8862,27 +8864,27 @@
if_500:
.annotate "line", 63
find_lex $P514, "$lastlit"
- unless_null $P514, vivify_163
- new $P514, "ResizablePMCArray"
- vivify_163:
+ unless_null $P514, vivify_164
+ $P514 = root_new ['parrot';'ResizablePMCArray']
+ vivify_164:
set $P515, $P514[0]
- unless_null $P515, vivify_164
+ unless_null $P515, vivify_165
new $P515, "Undef"
- vivify_164:
- find_lex $P516, "$ast"
- unless_null $P516, vivify_165
- new $P516, "ResizablePMCArray"
vivify_165:
+ find_lex $P516, "$ast"
+ unless_null $P516, vivify_166
+ $P516 = root_new ['parrot';'ResizablePMCArray']
+ vivify_166:
set $P517, $P516[0]
- unless_null $P517, vivify_166
+ unless_null $P517, vivify_167
new $P517, "Undef"
- vivify_166:
+ vivify_167:
concat $P518, $P515, $P517
find_lex $P519, "$lastlit"
- unless_null $P519, vivify_167
- new $P519, "ResizablePMCArray"
+ unless_null $P519, vivify_168
+ $P519 = root_new ['parrot';'ResizablePMCArray']
store_lex "$lastlit", $P519
- vivify_167:
+ vivify_168:
set $P519[0], $P518
.annotate "line", 62
set $P499, $P518
@@ -8896,10 +8898,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom" :subid("38_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantified_atom" :subid("38_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_546
.annotate "line", 76
- .const 'Sub' $P555 = "39_1261064016.27984"
+ .const 'Sub' $P555 = "39_1267204695.47543"
capture_lex $P555
new $P545, 'ExceptionHandler'
set_addr $P545, control_544
@@ -8911,58 +8913,58 @@
new $P547, "Undef"
.lex "$past", $P547
find_lex $P548, "$/"
- unless_null $P548, vivify_168
- new $P548, "Hash"
- vivify_168:
+ unless_null $P548, vivify_169
+ $P548 = root_new ['parrot';'Hash']
+ vivify_169:
set $P549, $P548["atom"]
- unless_null $P549, vivify_169
+ unless_null $P549, vivify_170
new $P549, "Undef"
- vivify_169:
+ vivify_170:
$P550 = $P549."ast"()
store_lex "$past", $P550
.annotate "line", 78
find_lex $P552, "$/"
- unless_null $P552, vivify_170
- new $P552, "Hash"
- vivify_170:
+ unless_null $P552, vivify_171
+ $P552 = root_new ['parrot';'Hash']
+ vivify_171:
set $P553, $P552["quantifier"]
- unless_null $P553, vivify_171
+ unless_null $P553, vivify_172
new $P553, "Undef"
- vivify_171:
+ vivify_172:
if $P553, if_551
.annotate "line", 84
find_lex $P569, "$/"
- unless_null $P569, vivify_172
- new $P569, "Hash"
- vivify_172:
- set $P570, $P569["backmod"]
- unless_null $P570, vivify_173
- new $P570, "ResizablePMCArray"
+ unless_null $P569, vivify_173
+ $P569 = root_new ['parrot';'Hash']
vivify_173:
+ set $P570, $P569["backmod"]
+ unless_null $P570, vivify_174
+ $P570 = root_new ['parrot';'ResizablePMCArray']
+ vivify_174:
set $P571, $P570[0]
- unless_null $P571, vivify_174
+ unless_null $P571, vivify_175
new $P571, "Undef"
- vivify_174:
+ vivify_175:
unless $P571, if_568_end
find_lex $P572, "$past"
find_lex $P573, "$/"
- unless_null $P573, vivify_175
- new $P573, "Hash"
- vivify_175:
- set $P574, $P573["backmod"]
- unless_null $P574, vivify_176
- new $P574, "ResizablePMCArray"
+ unless_null $P573, vivify_176
+ $P573 = root_new ['parrot';'Hash']
vivify_176:
+ set $P574, $P573["backmod"]
+ unless_null $P574, vivify_177
+ $P574 = root_new ['parrot';'ResizablePMCArray']
+ vivify_177:
set $P575, $P574[0]
- unless_null $P575, vivify_177
+ unless_null $P575, vivify_178
new $P575, "Undef"
- vivify_177:
+ vivify_178:
"backmod"($P572, $P575)
if_568_end:
goto if_551_end
if_551:
.annotate "line", 78
- .const 'Sub' $P555 = "39_1261064016.27984"
+ .const 'Sub' $P555 = "39_1267204695.47543"
capture_lex $P555
$P555()
if_551_end:
@@ -8983,17 +8985,17 @@
goto if_578_end
if_578:
get_global $P585, "@MODIFIERS"
- unless_null $P585, vivify_181
- new $P585, "ResizablePMCArray"
- vivify_181:
- set $P586, $P585[0]
- unless_null $P586, vivify_182
- new $P586, "Hash"
+ unless_null $P585, vivify_182
+ $P585 = root_new ['parrot';'ResizablePMCArray']
vivify_182:
+ set $P586, $P585[0]
+ unless_null $P586, vivify_183
+ $P586 = root_new ['parrot';'Hash']
+ vivify_183:
set $P587, $P586["r"]
- unless_null $P587, vivify_183
+ unless_null $P587, vivify_184
new $P587, "Undef"
- vivify_183:
+ vivify_184:
set $P577, $P587
if_578_end:
unless $P577, if_576_end
@@ -9016,7 +9018,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block554" :anon :subid("39_1261064016.27984") :outer("38_1261064016.27984")
+.sub "_block554" :anon :subid("39_1267204695.47543") :outer("38_1267204695.47543")
.annotate "line", 80
new $P556, "Undef"
.lex "$qast", $P556
@@ -9029,17 +9031,17 @@
if_557_end:
.annotate "line", 80
find_lex $P561, "$/"
- unless_null $P561, vivify_178
- new $P561, "Hash"
- vivify_178:
- set $P562, $P561["quantifier"]
- unless_null $P562, vivify_179
- new $P562, "ResizablePMCArray"
+ unless_null $P561, vivify_179
+ $P561 = root_new ['parrot';'Hash']
vivify_179:
+ set $P562, $P561["quantifier"]
+ unless_null $P562, vivify_180
+ $P562 = root_new ['parrot';'ResizablePMCArray']
+ vivify_180:
set $P563, $P562[0]
- unless_null $P563, vivify_180
+ unless_null $P563, vivify_181
new $P563, "Undef"
- vivify_180:
+ vivify_181:
$P564 = $P563."ast"()
store_lex "$qast", $P564
.annotate "line", 81
@@ -9055,7 +9057,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom" :subid("40_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "atom" :subid("40_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_596
.annotate "line", 91
new $P595, 'ExceptionHandler'
@@ -9071,13 +9073,13 @@
find_lex $P598, "$past"
.annotate "line", 93
find_lex $P600, "$/"
- unless_null $P600, vivify_184
- new $P600, "Hash"
- vivify_184:
+ unless_null $P600, vivify_185
+ $P600 = root_new ['parrot';'Hash']
+ vivify_185:
set $P601, $P600["metachar"]
- unless_null $P601, vivify_185
+ unless_null $P601, vivify_186
new $P601, "Undef"
- vivify_185:
+ vivify_186:
if $P601, if_599
.annotate "line", 95
get_hll_global $P605, ["PAST"], "Regex"
@@ -9088,17 +9090,17 @@
store_lex "$past", $P609
.annotate "line", 96
get_global $P611, "@MODIFIERS"
- unless_null $P611, vivify_186
- new $P611, "ResizablePMCArray"
- vivify_186:
- set $P612, $P611[0]
- unless_null $P612, vivify_187
- new $P612, "Hash"
+ unless_null $P611, vivify_187
+ $P611 = root_new ['parrot';'ResizablePMCArray']
vivify_187:
+ set $P612, $P611[0]
+ unless_null $P612, vivify_188
+ $P612 = root_new ['parrot';'Hash']
+ vivify_188:
set $P613, $P612["i"]
- unless_null $P613, vivify_188
+ unless_null $P613, vivify_189
new $P613, "Undef"
- vivify_188:
+ vivify_189:
unless $P613, if_610_end
find_lex $P614, "$past"
$P614."subtype"("ignorecase")
@@ -9108,13 +9110,13 @@
if_599:
.annotate "line", 93
find_lex $P602, "$/"
- unless_null $P602, vivify_189
- new $P602, "Hash"
- vivify_189:
+ unless_null $P602, vivify_190
+ $P602 = root_new ['parrot';'Hash']
+ vivify_190:
set $P603, $P602["metachar"]
- unless_null $P603, vivify_190
+ unless_null $P603, vivify_191
new $P603, "Undef"
- vivify_190:
+ vivify_191:
$P604 = $P603."ast"()
store_lex "$past", $P604
if_599_end:
@@ -9133,7 +9135,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>" :subid("41_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<*>" :subid("41_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_622
.annotate "line", 101
new $P621, 'ExceptionHandler'
@@ -9153,13 +9155,13 @@
find_lex $P627, "$/"
find_lex $P628, "$past"
find_lex $P629, "$/"
- unless_null $P629, vivify_191
- new $P629, "Hash"
- vivify_191:
+ unless_null $P629, vivify_192
+ $P629 = root_new ['parrot';'Hash']
+ vivify_192:
set $P630, $P629["backmod"]
- unless_null $P630, vivify_192
+ unless_null $P630, vivify_193
new $P630, "Undef"
- vivify_192:
+ vivify_193:
$P631 = "backmod"($P628, $P630)
$P632 = $P627."!make"($P631)
.annotate "line", 101
@@ -9173,7 +9175,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>" :subid("42_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<+>" :subid("42_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_637
.annotate "line", 106
new $P636, 'ExceptionHandler'
@@ -9193,13 +9195,13 @@
find_lex $P642, "$/"
find_lex $P643, "$past"
find_lex $P644, "$/"
- unless_null $P644, vivify_193
- new $P644, "Hash"
- vivify_193:
+ unless_null $P644, vivify_194
+ $P644 = root_new ['parrot';'Hash']
+ vivify_194:
set $P645, $P644["backmod"]
- unless_null $P645, vivify_194
+ unless_null $P645, vivify_195
new $P645, "Undef"
- vivify_194:
+ vivify_195:
$P646 = "backmod"($P643, $P645)
$P647 = $P642."!make"($P646)
.annotate "line", 106
@@ -9213,7 +9215,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>" :subid("43_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<?>" :subid("43_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_652
.annotate "line", 111
new $P651, 'ExceptionHandler'
@@ -9233,13 +9235,13 @@
find_lex $P657, "$/"
find_lex $P658, "$past"
find_lex $P659, "$/"
- unless_null $P659, vivify_195
- new $P659, "Hash"
- vivify_195:
+ unless_null $P659, vivify_196
+ $P659 = root_new ['parrot';'Hash']
+ vivify_196:
set $P660, $P659["backmod"]
- unless_null $P660, vivify_196
+ unless_null $P660, vivify_197
new $P660, "Undef"
- vivify_196:
+ vivify_197:
$P661 = "backmod"($P658, $P660)
$P657."!make"($P661)
.annotate "line", 114
@@ -9257,7 +9259,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>" :subid("44_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<**>" :subid("44_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_669
.annotate "line", 117
new $P668, 'ExceptionHandler'
@@ -9273,68 +9275,68 @@
find_lex $P671, "$past"
.annotate "line", 119
find_lex $P673, "$/"
- unless_null $P673, vivify_197
- new $P673, "Hash"
- vivify_197:
+ unless_null $P673, vivify_198
+ $P673 = root_new ['parrot';'Hash']
+ vivify_198:
set $P674, $P673["quantified_atom"]
- unless_null $P674, vivify_198
+ unless_null $P674, vivify_199
new $P674, "Undef"
- vivify_198:
+ vivify_199:
if $P674, if_672
.annotate "line", 124
get_hll_global $P681, ["PAST"], "Regex"
find_lex $P682, "$/"
- unless_null $P682, vivify_199
- new $P682, "Hash"
- vivify_199:
+ unless_null $P682, vivify_200
+ $P682 = root_new ['parrot';'Hash']
+ vivify_200:
set $P683, $P682["min"]
- unless_null $P683, vivify_200
+ unless_null $P683, vivify_201
new $P683, "Undef"
- vivify_200:
+ vivify_201:
set $N684, $P683
find_lex $P685, "$/"
$P686 = $P681."new"("quant" :named("pasttype"), $N684 :named("min"), $P685 :named("node"))
store_lex "$past", $P686
.annotate "line", 125
find_lex $P688, "$/"
- unless_null $P688, vivify_201
- new $P688, "Hash"
- vivify_201:
+ unless_null $P688, vivify_202
+ $P688 = root_new ['parrot';'Hash']
+ vivify_202:
set $P689, $P688["max"]
- unless_null $P689, vivify_202
+ unless_null $P689, vivify_203
new $P689, "Undef"
- vivify_202:
+ vivify_203:
isfalse $I690, $P689
if $I690, if_687
.annotate "line", 126
find_lex $P696, "$/"
- unless_null $P696, vivify_203
- new $P696, "Hash"
- vivify_203:
- set $P697, $P696["max"]
- unless_null $P697, vivify_204
- new $P697, "ResizablePMCArray"
+ unless_null $P696, vivify_204
+ $P696 = root_new ['parrot';'Hash']
vivify_204:
+ set $P697, $P696["max"]
+ unless_null $P697, vivify_205
+ $P697 = root_new ['parrot';'ResizablePMCArray']
+ vivify_205:
set $P698, $P697[0]
- unless_null $P698, vivify_205
+ unless_null $P698, vivify_206
new $P698, "Undef"
- vivify_205:
+ vivify_206:
set $S699, $P698
isne $I700, $S699, "*"
unless $I700, if_695_end
find_lex $P701, "$past"
find_lex $P702, "$/"
- unless_null $P702, vivify_206
- new $P702, "Hash"
- vivify_206:
- set $P703, $P702["max"]
- unless_null $P703, vivify_207
- new $P703, "ResizablePMCArray"
+ unless_null $P702, vivify_207
+ $P702 = root_new ['parrot';'Hash']
vivify_207:
+ set $P703, $P702["max"]
+ unless_null $P703, vivify_208
+ $P703 = root_new ['parrot';'ResizablePMCArray']
+ vivify_208:
set $P704, $P703[0]
- unless_null $P704, vivify_208
+ unless_null $P704, vivify_209
new $P704, "Undef"
- vivify_208:
+ vivify_209:
set $N705, $P704
$P701."max"($N705)
if_695_end:
@@ -9343,13 +9345,13 @@
.annotate "line", 125
find_lex $P691, "$past"
find_lex $P692, "$/"
- unless_null $P692, vivify_209
- new $P692, "Hash"
- vivify_209:
+ unless_null $P692, vivify_210
+ $P692 = root_new ['parrot';'Hash']
+ vivify_210:
set $P693, $P692["min"]
- unless_null $P693, vivify_210
+ unless_null $P693, vivify_211
new $P693, "Undef"
- vivify_210:
+ vivify_211:
set $N694, $P693
$P691."max"($N694)
if_687_end:
@@ -9360,13 +9362,13 @@
get_hll_global $P675, ["PAST"], "Regex"
.annotate "line", 121
find_lex $P676, "$/"
- unless_null $P676, vivify_211
- new $P676, "Hash"
- vivify_211:
+ unless_null $P676, vivify_212
+ $P676 = root_new ['parrot';'Hash']
+ vivify_212:
set $P677, $P676["quantified_atom"]
- unless_null $P677, vivify_212
+ unless_null $P677, vivify_213
new $P677, "Undef"
- vivify_212:
+ vivify_213:
$P678 = $P677."ast"()
find_lex $P679, "$/"
$P680 = $P675."new"("quant" :named("pasttype"), 1 :named("min"), $P678 :named("sep"), $P679 :named("node"))
@@ -9377,13 +9379,13 @@
find_lex $P706, "$/"
find_lex $P707, "$past"
find_lex $P708, "$/"
- unless_null $P708, vivify_213
- new $P708, "Hash"
- vivify_213:
+ unless_null $P708, vivify_214
+ $P708 = root_new ['parrot';'Hash']
+ vivify_214:
set $P709, $P708["backmod"]
- unless_null $P709, vivify_214
+ unless_null $P709, vivify_215
new $P709, "Undef"
- vivify_214:
+ vivify_215:
$P710 = "backmod"($P707, $P709)
$P711 = $P706."!make"($P710)
.annotate "line", 117
@@ -9397,7 +9399,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>" :subid("45_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<ws>" :subid("45_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_716
.annotate "line", 131
new $P715, 'ExceptionHandler'
@@ -9411,17 +9413,17 @@
.lex "$past", $P717
.annotate "line", 133
get_global $P720, "@MODIFIERS"
- unless_null $P720, vivify_215
- new $P720, "ResizablePMCArray"
- vivify_215:
- set $P721, $P720[0]
- unless_null $P721, vivify_216
- new $P721, "Hash"
+ unless_null $P720, vivify_216
+ $P720 = root_new ['parrot';'ResizablePMCArray']
vivify_216:
+ set $P721, $P720[0]
+ unless_null $P721, vivify_217
+ $P721 = root_new ['parrot';'Hash']
+ vivify_217:
set $P722, $P721["s"]
- unless_null $P722, vivify_217
+ unless_null $P722, vivify_218
new $P722, "Undef"
- vivify_217:
+ vivify_218:
if $P722, if_719
new $P726, "Integer"
assign $P726, 0
@@ -9449,7 +9451,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>" :subid("46_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<[ ]>" :subid("46_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_734
.annotate "line", 140
new $P733, 'ExceptionHandler'
@@ -9461,13 +9463,13 @@
.annotate "line", 141
find_lex $P735, "$/"
find_lex $P736, "$/"
- unless_null $P736, vivify_218
- new $P736, "Hash"
- vivify_218:
+ unless_null $P736, vivify_219
+ $P736 = root_new ['parrot';'Hash']
+ vivify_219:
set $P737, $P736["nibbler"]
- unless_null $P737, vivify_219
+ unless_null $P737, vivify_220
new $P737, "Undef"
- vivify_219:
+ vivify_220:
$P738 = $P737."ast"()
$P739 = $P735."!make"($P738)
.annotate "line", 140
@@ -9481,7 +9483,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>" :subid("47_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<( )>" :subid("47_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_744
.annotate "line", 144
new $P743, 'ExceptionHandler'
@@ -9498,13 +9500,13 @@
.lex "$past", $P746
.annotate "line", 145
find_lex $P747, "$/"
- unless_null $P747, vivify_220
- new $P747, "Hash"
- vivify_220:
+ unless_null $P747, vivify_221
+ $P747 = root_new ['parrot';'Hash']
+ vivify_221:
set $P748, $P747["nibbler"]
- unless_null $P748, vivify_221
+ unless_null $P748, vivify_222
new $P748, "Undef"
- vivify_221:
+ vivify_222:
$P749 = $P748."ast"()
$P750 = "buildsub"($P749)
store_lex "$subpast", $P750
@@ -9529,7 +9531,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>" :subid("48_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<'>" :subid("48_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_762
.annotate "line", 151
new $P761, 'ExceptionHandler'
@@ -9546,13 +9548,13 @@
.lex "$past", $P764
.annotate "line", 152
find_lex $P765, "$/"
- unless_null $P765, vivify_222
- new $P765, "Hash"
- vivify_222:
+ unless_null $P765, vivify_223
+ $P765 = root_new ['parrot';'Hash']
+ vivify_223:
set $P766, $P765["quote_EXPR"]
- unless_null $P766, vivify_223
+ unless_null $P766, vivify_224
new $P766, "Undef"
- vivify_223:
+ vivify_224:
$P767 = $P766."ast"()
store_lex "$quote", $P767
.annotate "line", 153
@@ -9585,7 +9587,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">" :subid("49_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<\">" :subid("49_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_785
.annotate "line", 158
new $P784, 'ExceptionHandler'
@@ -9602,13 +9604,13 @@
.lex "$past", $P787
.annotate "line", 159
find_lex $P788, "$/"
- unless_null $P788, vivify_224
- new $P788, "Hash"
- vivify_224:
+ unless_null $P788, vivify_225
+ $P788 = root_new ['parrot';'Hash']
+ vivify_225:
set $P789, $P788["quote_EXPR"]
- unless_null $P789, vivify_225
+ unless_null $P789, vivify_226
new $P789, "Undef"
- vivify_225:
+ vivify_226:
$P790 = $P789."ast"()
store_lex "$quote", $P790
.annotate "line", 160
@@ -9641,7 +9643,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>" :subid("50_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<.>" :subid("50_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_808
.annotate "line", 165
new $P807, 'ExceptionHandler'
@@ -9672,7 +9674,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>" :subid("51_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<^>" :subid("51_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_820
.annotate "line", 170
new $P819, 'ExceptionHandler'
@@ -9703,7 +9705,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>" :subid("52_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<^^>" :subid("52_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_832
.annotate "line", 175
new $P831, 'ExceptionHandler'
@@ -9734,7 +9736,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>" :subid("53_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<$>" :subid("53_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_844
.annotate "line", 180
new $P843, 'ExceptionHandler'
@@ -9765,7 +9767,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>" :subid("54_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<$$>" :subid("54_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_856
.annotate "line", 185
new $P855, 'ExceptionHandler'
@@ -9796,7 +9798,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>" :subid("55_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<:::>" :subid("55_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_868
.annotate "line", 190
new $P867, 'ExceptionHandler'
@@ -9827,7 +9829,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>" :subid("56_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<lwb>" :subid("56_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_880
.annotate "line", 195
new $P879, 'ExceptionHandler'
@@ -9858,7 +9860,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>" :subid("57_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<rwb>" :subid("57_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_892
.annotate "line", 200
new $P891, 'ExceptionHandler'
@@ -9889,7 +9891,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>" :subid("58_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<bs>" :subid("58_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_904
.annotate "line", 205
new $P903, 'ExceptionHandler'
@@ -9901,13 +9903,13 @@
.annotate "line", 206
find_lex $P905, "$/"
find_lex $P906, "$/"
- unless_null $P906, vivify_226
- new $P906, "Hash"
- vivify_226:
+ unless_null $P906, vivify_227
+ $P906 = root_new ['parrot';'Hash']
+ vivify_227:
set $P907, $P906["backslash"]
- unless_null $P907, vivify_227
+ unless_null $P907, vivify_228
new $P907, "Undef"
- vivify_227:
+ vivify_228:
$P908 = $P907."ast"()
$P909 = $P905."!make"($P908)
.annotate "line", 205
@@ -9921,7 +9923,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>" :subid("59_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<mod>" :subid("59_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_914
.annotate "line", 209
new $P913, 'ExceptionHandler'
@@ -9933,13 +9935,13 @@
.annotate "line", 210
find_lex $P915, "$/"
find_lex $P916, "$/"
- unless_null $P916, vivify_228
- new $P916, "Hash"
- vivify_228:
+ unless_null $P916, vivify_229
+ $P916 = root_new ['parrot';'Hash']
+ vivify_229:
set $P917, $P916["mod_internal"]
- unless_null $P917, vivify_229
+ unless_null $P917, vivify_230
new $P917, "Undef"
- vivify_229:
+ vivify_230:
$P918 = $P917."ast"()
$P919 = $P915."!make"($P918)
.annotate "line", 209
@@ -9953,7 +9955,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>" :subid("60_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<assert>" :subid("60_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_924
.annotate "line", 213
new $P923, 'ExceptionHandler'
@@ -9965,13 +9967,13 @@
.annotate "line", 214
find_lex $P925, "$/"
find_lex $P926, "$/"
- unless_null $P926, vivify_230
- new $P926, "Hash"
- vivify_230:
+ unless_null $P926, vivify_231
+ $P926 = root_new ['parrot';'Hash']
+ vivify_231:
set $P927, $P926["assertion"]
- unless_null $P927, vivify_231
+ unless_null $P927, vivify_232
new $P927, "Undef"
- vivify_231:
+ vivify_232:
$P928 = $P927."ast"()
$P929 = $P925."!make"($P928)
.annotate "line", 213
@@ -9985,7 +9987,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>" :subid("61_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<~>" :subid("61_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_934
.annotate "line", 217
new $P933, 'ExceptionHandler'
@@ -9999,36 +10001,36 @@
get_hll_global $P936, ["PAST"], "Regex"
.annotate "line", 219
find_lex $P937, "$/"
- unless_null $P937, vivify_232
- new $P937, "Hash"
- vivify_232:
+ unless_null $P937, vivify_233
+ $P937 = root_new ['parrot';'Hash']
+ vivify_233:
set $P938, $P937["EXPR"]
- unless_null $P938, vivify_233
+ unless_null $P938, vivify_234
new $P938, "Undef"
- vivify_233:
+ vivify_234:
$P939 = $P938."ast"()
.annotate "line", 220
get_hll_global $P940, ["PAST"], "Regex"
.annotate "line", 221
find_lex $P941, "$/"
- unless_null $P941, vivify_234
- new $P941, "Hash"
- vivify_234:
+ unless_null $P941, vivify_235
+ $P941 = root_new ['parrot';'Hash']
+ vivify_235:
set $P942, $P941["GOAL"]
- unless_null $P942, vivify_235
+ unless_null $P942, vivify_236
new $P942, "Undef"
- vivify_235:
+ vivify_236:
$P943 = $P942."ast"()
.annotate "line", 222
get_hll_global $P944, ["PAST"], "Regex"
find_lex $P945, "$/"
- unless_null $P945, vivify_236
- new $P945, "Hash"
- vivify_236:
+ unless_null $P945, vivify_237
+ $P945 = root_new ['parrot';'Hash']
+ vivify_237:
set $P946, $P945["GOAL"]
- unless_null $P946, vivify_237
+ unless_null $P946, vivify_238
new $P946, "Undef"
- vivify_237:
+ vivify_238:
set $S947, $P946
$P948 = $P944."new"("FAILGOAL", $S947, "subrule" :named("pasttype"), "method" :named("subtype"))
$P949 = $P940."new"($P943, $P948, "alt" :named("pasttype"))
@@ -10047,7 +10049,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>" :subid("62_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<{*}>" :subid("62_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_956
.annotate "line", 230
new $P955, 'ExceptionHandler'
@@ -10061,13 +10063,13 @@
.lex "$past", $P957
.annotate "line", 232
find_lex $P960, "$/"
- unless_null $P960, vivify_238
- new $P960, "Hash"
- vivify_238:
+ unless_null $P960, vivify_239
+ $P960 = root_new ['parrot';'Hash']
+ vivify_239:
set $P961, $P960["key"]
- unless_null $P961, vivify_239
+ unless_null $P961, vivify_240
new $P961, "Undef"
- vivify_239:
+ vivify_240:
if $P961, if_959
new $P969, "Integer"
assign $P969, 0
@@ -10076,17 +10078,17 @@
if_959:
get_hll_global $P962, ["PAST"], "Regex"
find_lex $P963, "$/"
- unless_null $P963, vivify_240
- new $P963, "Hash"
- vivify_240:
- set $P964, $P963["key"]
- unless_null $P964, vivify_241
- new $P964, "ResizablePMCArray"
+ unless_null $P963, vivify_241
+ $P963 = root_new ['parrot';'Hash']
vivify_241:
+ set $P964, $P963["key"]
+ unless_null $P964, vivify_242
+ $P964 = root_new ['parrot';'ResizablePMCArray']
+ vivify_242:
set $P965, $P964[0]
- unless_null $P965, vivify_242
+ unless_null $P965, vivify_243
new $P965, "Undef"
- vivify_242:
+ vivify_243:
set $S966, $P965
find_lex $P967, "$/"
$P968 = $P962."new"($S966, "reduce" :named("pasttype"), $P967 :named("node"))
@@ -10108,7 +10110,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>" :subid("63_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<var>" :subid("63_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_977
.annotate "line", 237
new $P976, 'ExceptionHandler'
@@ -10127,35 +10129,35 @@
find_lex $P980, "$past"
.annotate "line", 239
find_lex $P983, "$/"
- unless_null $P983, vivify_243
- new $P983, "Hash"
- vivify_243:
+ unless_null $P983, vivify_244
+ $P983 = root_new ['parrot';'Hash']
+ vivify_244:
set $P984, $P983["pos"]
- unless_null $P984, vivify_244
+ unless_null $P984, vivify_245
new $P984, "Undef"
- vivify_244:
+ vivify_245:
if $P984, if_982
find_lex $P988, "$/"
- unless_null $P988, vivify_245
- new $P988, "Hash"
- vivify_245:
+ unless_null $P988, vivify_246
+ $P988 = root_new ['parrot';'Hash']
+ vivify_246:
set $P989, $P988["name"]
- unless_null $P989, vivify_246
+ unless_null $P989, vivify_247
new $P989, "Undef"
- vivify_246:
+ vivify_247:
set $S990, $P989
new $P981, 'String'
set $P981, $S990
goto if_982_end
if_982:
find_lex $P985, "$/"
- unless_null $P985, vivify_247
- new $P985, "Hash"
- vivify_247:
+ unless_null $P985, vivify_248
+ $P985 = root_new ['parrot';'Hash']
+ vivify_248:
set $P986, $P985["pos"]
- unless_null $P986, vivify_248
+ unless_null $P986, vivify_249
new $P986, "Undef"
- vivify_248:
+ vivify_249:
set $N987, $P986
new $P981, 'Float'
set $P981, $N987
@@ -10163,13 +10165,13 @@
store_lex "$name", $P981
.annotate "line", 240
find_lex $P992, "$/"
- unless_null $P992, vivify_249
- new $P992, "Hash"
- vivify_249:
+ unless_null $P992, vivify_250
+ $P992 = root_new ['parrot';'Hash']
+ vivify_250:
set $P993, $P992["quantified_atom"]
- unless_null $P993, vivify_250
+ unless_null $P993, vivify_251
new $P993, "Undef"
- vivify_250:
+ vivify_251:
if $P993, if_991
.annotate "line", 251
get_hll_global $P1022, ["PAST"], "Regex"
@@ -10182,17 +10184,17 @@
if_991:
.annotate "line", 241
find_lex $P994, "$/"
- unless_null $P994, vivify_251
- new $P994, "Hash"
- vivify_251:
- set $P995, $P994["quantified_atom"]
- unless_null $P995, vivify_252
- new $P995, "ResizablePMCArray"
+ unless_null $P994, vivify_252
+ $P994 = root_new ['parrot';'Hash']
vivify_252:
+ set $P995, $P994["quantified_atom"]
+ unless_null $P995, vivify_253
+ $P995 = root_new ['parrot';'ResizablePMCArray']
+ vivify_253:
set $P996, $P995[0]
- unless_null $P996, vivify_253
+ unless_null $P996, vivify_254
new $P996, "Undef"
- vivify_253:
+ vivify_254:
$P997 = $P996."ast"()
store_lex "$past", $P997
.annotate "line", 242
@@ -10205,13 +10207,13 @@
goto if_1000_end
if_1000:
find_lex $P1004, "$past"
- unless_null $P1004, vivify_254
- new $P1004, "ResizablePMCArray"
- vivify_254:
+ unless_null $P1004, vivify_255
+ $P1004 = root_new ['parrot';'ResizablePMCArray']
+ vivify_255:
set $P1005, $P1004[0]
- unless_null $P1005, vivify_255
+ unless_null $P1005, vivify_256
new $P1005, "Undef"
- vivify_255:
+ vivify_256:
$S1006 = $P1005."pasttype"()
iseq $I1007, $S1006, "subrule"
new $P999, 'Integer'
@@ -10242,13 +10244,13 @@
if_998:
.annotate "line", 243
find_lex $P1008, "$past"
- unless_null $P1008, vivify_256
- new $P1008, "ResizablePMCArray"
- vivify_256:
+ unless_null $P1008, vivify_257
+ $P1008 = root_new ['parrot';'ResizablePMCArray']
+ vivify_257:
set $P1009, $P1008[0]
- unless_null $P1009, vivify_257
+ unless_null $P1009, vivify_258
new $P1009, "Undef"
- vivify_257:
+ vivify_258:
find_lex $P1010, "$name"
"subrule_alias"($P1009, $P1010)
if_998_end:
@@ -10268,7 +10270,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>" :subid("64_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<PIR>" :subid("64_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1033
.annotate "line", 257
new $P1032, 'ExceptionHandler'
@@ -10283,13 +10285,13 @@
.annotate "line", 259
get_hll_global $P1036, ["PAST"], "Op"
find_lex $P1037, "$/"
- unless_null $P1037, vivify_258
- new $P1037, "Hash"
- vivify_258:
+ unless_null $P1037, vivify_259
+ $P1037 = root_new ['parrot';'Hash']
+ vivify_259:
set $P1038, $P1037["pir"]
- unless_null $P1038, vivify_259
+ unless_null $P1038, vivify_260
new $P1038, "Undef"
- vivify_259:
+ vivify_260:
set $S1039, $P1038
$P1040 = $P1036."new"($S1039 :named("inline"), "inline" :named("pasttype"))
find_lex $P1041, "$/"
@@ -10307,7 +10309,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>" :subid("65_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<w>" :subid("65_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1048
.annotate "line", 265
new $P1047, 'ExceptionHandler'
@@ -10324,24 +10326,24 @@
.lex "$past", $P1050
.annotate "line", 266
find_lex $P1053, "$/"
- unless_null $P1053, vivify_260
- new $P1053, "Hash"
- vivify_260:
+ unless_null $P1053, vivify_261
+ $P1053 = root_new ['parrot';'Hash']
+ vivify_261:
set $P1054, $P1053["sym"]
- unless_null $P1054, vivify_261
+ unless_null $P1054, vivify_262
new $P1054, "Undef"
- vivify_261:
+ vivify_262:
set $S1055, $P1054
iseq $I1056, $S1055, "n"
if $I1056, if_1052
find_lex $P1058, "$/"
- unless_null $P1058, vivify_262
- new $P1058, "Hash"
- vivify_262:
+ unless_null $P1058, vivify_263
+ $P1058 = root_new ['parrot';'Hash']
+ vivify_263:
set $P1059, $P1058["sym"]
- unless_null $P1059, vivify_263
+ unless_null $P1059, vivify_264
new $P1059, "Undef"
- vivify_263:
+ vivify_264:
set $S1060, $P1059
new $P1051, 'String'
set $P1051, $S1060
@@ -10373,7 +10375,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>" :subid("66_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<b>" :subid("66_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1072
.annotate "line", 271
new $P1071, 'ExceptionHandler'
@@ -10388,13 +10390,13 @@
get_hll_global $P1074, ["PAST"], "Regex"
.annotate "line", 273
find_lex $P1075, "$/"
- unless_null $P1075, vivify_264
- new $P1075, "Hash"
- vivify_264:
+ unless_null $P1075, vivify_265
+ $P1075 = root_new ['parrot';'Hash']
+ vivify_265:
set $P1076, $P1075["sym"]
- unless_null $P1076, vivify_265
+ unless_null $P1076, vivify_266
new $P1076, "Undef"
- vivify_265:
+ vivify_266:
set $S1077, $P1076
iseq $I1078, $S1077, "B"
find_lex $P1079, "$/"
@@ -10416,7 +10418,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>" :subid("67_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<e>" :subid("67_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1088
.annotate "line", 277
new $P1087, 'ExceptionHandler'
@@ -10431,13 +10433,13 @@
get_hll_global $P1090, ["PAST"], "Regex"
.annotate "line", 279
find_lex $P1091, "$/"
- unless_null $P1091, vivify_266
- new $P1091, "Hash"
- vivify_266:
+ unless_null $P1091, vivify_267
+ $P1091 = root_new ['parrot';'Hash']
+ vivify_267:
set $P1092, $P1091["sym"]
- unless_null $P1092, vivify_267
+ unless_null $P1092, vivify_268
new $P1092, "Undef"
- vivify_267:
+ vivify_268:
set $S1093, $P1092
iseq $I1094, $S1093, "E"
find_lex $P1095, "$/"
@@ -10459,7 +10461,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>" :subid("68_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<f>" :subid("68_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1104
.annotate "line", 283
new $P1103, 'ExceptionHandler'
@@ -10474,13 +10476,13 @@
get_hll_global $P1106, ["PAST"], "Regex"
.annotate "line", 285
find_lex $P1107, "$/"
- unless_null $P1107, vivify_268
- new $P1107, "Hash"
- vivify_268:
+ unless_null $P1107, vivify_269
+ $P1107 = root_new ['parrot';'Hash']
+ vivify_269:
set $P1108, $P1107["sym"]
- unless_null $P1108, vivify_269
+ unless_null $P1108, vivify_270
new $P1108, "Undef"
- vivify_269:
+ vivify_270:
set $S1109, $P1108
iseq $I1110, $S1109, "F"
find_lex $P1111, "$/"
@@ -10502,7 +10504,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>" :subid("69_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<h>" :subid("69_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1120
.annotate "line", 289
new $P1119, 'ExceptionHandler'
@@ -10517,13 +10519,13 @@
get_hll_global $P1122, ["PAST"], "Regex"
.annotate "line", 291
find_lex $P1123, "$/"
- unless_null $P1123, vivify_270
- new $P1123, "Hash"
- vivify_270:
+ unless_null $P1123, vivify_271
+ $P1123 = root_new ['parrot';'Hash']
+ vivify_271:
set $P1124, $P1123["sym"]
- unless_null $P1124, vivify_271
+ unless_null $P1124, vivify_272
new $P1124, "Undef"
- vivify_271:
+ vivify_272:
set $S1125, $P1124
iseq $I1126, $S1125, "H"
find_lex $P1127, "$/"
@@ -10545,7 +10547,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>" :subid("70_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<r>" :subid("70_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1136
.annotate "line", 295
new $P1135, 'ExceptionHandler'
@@ -10560,13 +10562,13 @@
get_hll_global $P1138, ["PAST"], "Regex"
.annotate "line", 297
find_lex $P1139, "$/"
- unless_null $P1139, vivify_272
- new $P1139, "Hash"
- vivify_272:
+ unless_null $P1139, vivify_273
+ $P1139 = root_new ['parrot';'Hash']
+ vivify_273:
set $P1140, $P1139["sym"]
- unless_null $P1140, vivify_273
+ unless_null $P1140, vivify_274
new $P1140, "Undef"
- vivify_273:
+ vivify_274:
set $S1141, $P1140
iseq $I1142, $S1141, "R"
find_lex $P1143, "$/"
@@ -10588,7 +10590,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>" :subid("71_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<t>" :subid("71_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1152
.annotate "line", 301
new $P1151, 'ExceptionHandler'
@@ -10603,13 +10605,13 @@
get_hll_global $P1154, ["PAST"], "Regex"
.annotate "line", 303
find_lex $P1155, "$/"
- unless_null $P1155, vivify_274
- new $P1155, "Hash"
- vivify_274:
+ unless_null $P1155, vivify_275
+ $P1155 = root_new ['parrot';'Hash']
+ vivify_275:
set $P1156, $P1155["sym"]
- unless_null $P1156, vivify_275
+ unless_null $P1156, vivify_276
new $P1156, "Undef"
- vivify_275:
+ vivify_276:
set $S1157, $P1156
iseq $I1158, $S1157, "T"
find_lex $P1159, "$/"
@@ -10631,7 +10633,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>" :subid("72_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<v>" :subid("72_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1168
.annotate "line", 307
new $P1167, 'ExceptionHandler'
@@ -10646,13 +10648,13 @@
get_hll_global $P1170, ["PAST"], "Regex"
.annotate "line", 310
find_lex $P1171, "$/"
- unless_null $P1171, vivify_276
- new $P1171, "Hash"
- vivify_276:
+ unless_null $P1171, vivify_277
+ $P1171 = root_new ['parrot';'Hash']
+ vivify_277:
set $P1172, $P1171["sym"]
- unless_null $P1172, vivify_277
+ unless_null $P1172, vivify_278
new $P1172, "Undef"
- vivify_277:
+ vivify_278:
set $S1173, $P1172
iseq $I1174, $S1173, "V"
find_lex $P1175, "$/"
@@ -10674,7 +10676,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>" :subid("73_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<o>" :subid("73_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1184
.annotate "line", 314
new $P1183, 'ExceptionHandler'
@@ -10689,29 +10691,29 @@
.annotate "line", 316
get_hll_global $P1186, ["HLL";"Actions"], "ints_to_string"
find_lex $P1189, "$/"
- unless_null $P1189, vivify_278
- new $P1189, "Hash"
- vivify_278:
+ unless_null $P1189, vivify_279
+ $P1189 = root_new ['parrot';'Hash']
+ vivify_279:
set $P1190, $P1189["octint"]
- unless_null $P1190, vivify_279
+ unless_null $P1190, vivify_280
new $P1190, "Undef"
- vivify_279:
+ vivify_280:
unless $P1190, unless_1188
set $P1187, $P1190
goto unless_1188_end
unless_1188:
find_lex $P1191, "$/"
- unless_null $P1191, vivify_280
- new $P1191, "Hash"
- vivify_280:
- set $P1192, $P1191["octints"]
- unless_null $P1192, vivify_281
- new $P1192, "Hash"
+ unless_null $P1191, vivify_281
+ $P1191 = root_new ['parrot';'Hash']
vivify_281:
+ set $P1192, $P1191["octints"]
+ unless_null $P1192, vivify_282
+ $P1192 = root_new ['parrot';'Hash']
+ vivify_282:
set $P1193, $P1192["octint"]
- unless_null $P1193, vivify_282
+ unless_null $P1193, vivify_283
new $P1193, "Undef"
- vivify_282:
+ vivify_283:
set $P1187, $P1193
unless_1188_end:
$P1194 = $P1186($P1187)
@@ -10719,13 +10721,13 @@
.annotate "line", 317
find_lex $P1195, "$/"
find_lex $P1198, "$/"
- unless_null $P1198, vivify_283
- new $P1198, "Hash"
- vivify_283:
+ unless_null $P1198, vivify_284
+ $P1198 = root_new ['parrot';'Hash']
+ vivify_284:
set $P1199, $P1198["sym"]
- unless_null $P1199, vivify_284
+ unless_null $P1199, vivify_285
new $P1199, "Undef"
- vivify_284:
+ vivify_285:
set $S1200, $P1199
iseq $I1201, $S1200, "O"
if $I1201, if_1197
@@ -10757,7 +10759,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>" :subid("74_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<x>" :subid("74_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1215
.annotate "line", 323
new $P1214, 'ExceptionHandler'
@@ -10772,29 +10774,29 @@
.annotate "line", 325
get_hll_global $P1217, ["HLL";"Actions"], "ints_to_string"
find_lex $P1220, "$/"
- unless_null $P1220, vivify_285
- new $P1220, "Hash"
- vivify_285:
+ unless_null $P1220, vivify_286
+ $P1220 = root_new ['parrot';'Hash']
+ vivify_286:
set $P1221, $P1220["hexint"]
- unless_null $P1221, vivify_286
+ unless_null $P1221, vivify_287
new $P1221, "Undef"
- vivify_286:
+ vivify_287:
unless $P1221, unless_1219
set $P1218, $P1221
goto unless_1219_end
unless_1219:
find_lex $P1222, "$/"
- unless_null $P1222, vivify_287
- new $P1222, "Hash"
- vivify_287:
- set $P1223, $P1222["hexints"]
- unless_null $P1223, vivify_288
- new $P1223, "Hash"
+ unless_null $P1222, vivify_288
+ $P1222 = root_new ['parrot';'Hash']
vivify_288:
+ set $P1223, $P1222["hexints"]
+ unless_null $P1223, vivify_289
+ $P1223 = root_new ['parrot';'Hash']
+ vivify_289:
set $P1224, $P1223["hexint"]
- unless_null $P1224, vivify_289
+ unless_null $P1224, vivify_290
new $P1224, "Undef"
- vivify_289:
+ vivify_290:
set $P1218, $P1224
unless_1219_end:
$P1225 = $P1217($P1218)
@@ -10802,13 +10804,13 @@
.annotate "line", 326
find_lex $P1226, "$/"
find_lex $P1229, "$/"
- unless_null $P1229, vivify_290
- new $P1229, "Hash"
- vivify_290:
+ unless_null $P1229, vivify_291
+ $P1229 = root_new ['parrot';'Hash']
+ vivify_291:
set $P1230, $P1229["sym"]
- unless_null $P1230, vivify_291
+ unless_null $P1230, vivify_292
new $P1230, "Undef"
- vivify_291:
+ vivify_292:
set $S1231, $P1230
iseq $I1232, $S1231, "X"
if $I1232, if_1228
@@ -10840,7 +10842,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>" :subid("75_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<c>" :subid("75_1267204695.47543") :method :outer("11_1267204695.47543")
.param pmc param_1246
.annotate "line", 332
new $P1245, 'ExceptionHandler'
@@ -10850,398 +10852,433 @@
.lex "self", self
.lex "$/", param_1246
.annotate "line", 333
- new $P1247, "Undef"
- .lex "$past", $P1247
+ find_lex $P1247, "$/"
get_hll_global $P1248, ["PAST"], "Regex"
find_lex $P1249, "$/"
- set $S1250, $P1249
- find_lex $P1251, "$/"
- $P1252 = $P1248."new"($S1250, "literal" :named("pasttype"), $P1251 :named("node"))
- store_lex "$past", $P1252
-.annotate "line", 334
- find_lex $P1253, "$/"
- find_lex $P1254, "$past"
- $P1255 = $P1253."!make"($P1254)
+ unless_null $P1249, vivify_293
+ $P1249 = root_new ['parrot';'Hash']
+ vivify_293:
+ set $P1250, $P1249["charspec"]
+ unless_null $P1250, vivify_294
+ new $P1250, "Undef"
+ vivify_294:
+ $P1251 = $P1250."ast"()
+ find_lex $P1252, "$/"
+ $P1253 = $P1248."new"($P1251, "literal" :named("pasttype"), $P1252 :named("node"))
+ $P1254 = $P1247."!make"($P1253)
.annotate "line", 332
- .return ($P1255)
+ .return ($P1254)
control_1244:
.local pmc exception
.get_results (exception)
- getattribute $P1256, exception, "payload"
- .return ($P1256)
+ getattribute $P1255, exception, "payload"
+ .return ($P1255)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>" :subid("76_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1260
-.annotate "line", 338
- new $P1259, 'ExceptionHandler'
- set_addr $P1259, control_1258
- $P1259."handle_types"(58)
- push_eh $P1259
- .lex "self", self
- .lex "$/", param_1260
-.annotate "line", 339
- new $P1261, "Undef"
- .lex "$past", $P1261
-.annotate "line", 338
- find_lex $P1262, "$past"
-.annotate "line", 340
+.sub "backslash:sym<misc>" :subid("76_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1259
+.annotate "line", 336
+ new $P1258, 'ExceptionHandler'
+ set_addr $P1258, control_1257
+ $P1258."handle_types"(58)
+ push_eh $P1258
+ .lex "self", self
+ .lex "$/", param_1259
+.annotate "line", 337
+ new $P1260, "Undef"
+ .lex "$past", $P1260
+ get_hll_global $P1261, ["PAST"], "Regex"
+ find_lex $P1262, "$/"
+ set $S1263, $P1262
find_lex $P1264, "$/"
- unless_null $P1264, vivify_292
- new $P1264, "Hash"
- vivify_292:
- set $P1265, $P1264["assertion"]
- unless_null $P1265, vivify_293
- new $P1265, "Undef"
- vivify_293:
- if $P1265, if_1263
-.annotate "line", 344
- new $P1270, "Integer"
- assign $P1270, 0
- store_lex "$past", $P1270
- goto if_1263_end
- if_1263:
-.annotate "line", 341
- find_lex $P1266, "$/"
- unless_null $P1266, vivify_294
- new $P1266, "Hash"
- vivify_294:
- set $P1267, $P1266["assertion"]
- unless_null $P1267, vivify_295
- new $P1267, "Undef"
- vivify_295:
- $P1268 = $P1267."ast"()
- store_lex "$past", $P1268
-.annotate "line", 342
- find_lex $P1269, "$past"
- $P1269."subtype"("zerowidth")
- if_1263_end:
-.annotate "line", 345
- find_lex $P1271, "$/"
- find_lex $P1272, "$past"
- $P1273 = $P1271."!make"($P1272)
+ $P1265 = $P1261."new"($S1263, "literal" :named("pasttype"), $P1264 :named("node"))
+ store_lex "$past", $P1265
.annotate "line", 338
- .return ($P1273)
- control_1258:
+ find_lex $P1266, "$/"
+ find_lex $P1267, "$past"
+ $P1268 = $P1266."!make"($P1267)
+.annotate "line", 336
+ .return ($P1268)
+ control_1257:
.local pmc exception
.get_results (exception)
- getattribute $P1274, exception, "payload"
- .return ($P1274)
+ getattribute $P1269, exception, "payload"
+ .return ($P1269)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>" :subid("77_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1278
-.annotate "line", 348
- new $P1277, 'ExceptionHandler'
- set_addr $P1277, control_1276
- $P1277."handle_types"(58)
- push_eh $P1277
- .lex "self", self
- .lex "$/", param_1278
-.annotate "line", 349
- new $P1279, "Undef"
- .lex "$past", $P1279
-.annotate "line", 348
- find_lex $P1280, "$past"
-.annotate "line", 350
- find_lex $P1282, "$/"
- unless_null $P1282, vivify_296
- new $P1282, "Hash"
+.sub "assertion:sym<?>" :subid("77_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1273
+.annotate "line", 342
+ new $P1272, 'ExceptionHandler'
+ set_addr $P1272, control_1271
+ $P1272."handle_types"(58)
+ push_eh $P1272
+ .lex "self", self
+ .lex "$/", param_1273
+.annotate "line", 343
+ new $P1274, "Undef"
+ .lex "$past", $P1274
+.annotate "line", 342
+ find_lex $P1275, "$past"
+.annotate "line", 344
+ find_lex $P1277, "$/"
+ unless_null $P1277, vivify_295
+ $P1277 = root_new ['parrot';'Hash']
+ vivify_295:
+ set $P1278, $P1277["assertion"]
+ unless_null $P1278, vivify_296
+ new $P1278, "Undef"
vivify_296:
- set $P1283, $P1282["assertion"]
- unless_null $P1283, vivify_297
- new $P1283, "Undef"
+ if $P1278, if_1276
+.annotate "line", 348
+ new $P1283, "Integer"
+ assign $P1283, 0
+ store_lex "$past", $P1283
+ goto if_1276_end
+ if_1276:
+.annotate "line", 345
+ find_lex $P1279, "$/"
+ unless_null $P1279, vivify_297
+ $P1279 = root_new ['parrot';'Hash']
vivify_297:
- if $P1283, if_1281
-.annotate "line", 356
- get_hll_global $P1292, ["PAST"], "Regex"
- find_lex $P1293, "$/"
- $P1294 = $P1292."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1293 :named("node"))
- store_lex "$past", $P1294
-.annotate "line", 355
- goto if_1281_end
- if_1281:
-.annotate "line", 351
- find_lex $P1284, "$/"
- unless_null $P1284, vivify_298
- new $P1284, "Hash"
+ set $P1280, $P1279["assertion"]
+ unless_null $P1280, vivify_298
+ new $P1280, "Undef"
vivify_298:
- set $P1285, $P1284["assertion"]
- unless_null $P1285, vivify_299
- new $P1285, "Undef"
- vivify_299:
- $P1286 = $P1285."ast"()
- store_lex "$past", $P1286
-.annotate "line", 352
- find_lex $P1287, "$past"
- find_lex $P1288, "$past"
- $P1289 = $P1288."negate"()
- isfalse $I1290, $P1289
- $P1287."negate"($I1290)
-.annotate "line", 353
- find_lex $P1291, "$past"
- $P1291."subtype"("zerowidth")
- if_1281_end:
-.annotate "line", 358
- find_lex $P1295, "$/"
- find_lex $P1296, "$past"
- $P1297 = $P1295."!make"($P1296)
-.annotate "line", 348
- .return ($P1297)
- control_1276:
+ $P1281 = $P1280."ast"()
+ store_lex "$past", $P1281
+.annotate "line", 346
+ find_lex $P1282, "$past"
+ $P1282."subtype"("zerowidth")
+ if_1276_end:
+.annotate "line", 349
+ find_lex $P1284, "$/"
+ find_lex $P1285, "$past"
+ $P1286 = $P1284."!make"($P1285)
+.annotate "line", 342
+ .return ($P1286)
+ control_1271:
.local pmc exception
.get_results (exception)
- getattribute $P1298, exception, "payload"
- .return ($P1298)
+ getattribute $P1287, exception, "payload"
+ .return ($P1287)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>" :subid("78_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1302
-.annotate "line", 361
- new $P1301, 'ExceptionHandler'
- set_addr $P1301, control_1300
- $P1301."handle_types"(58)
- push_eh $P1301
+.sub "assertion:sym<!>" :subid("78_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1291
+.annotate "line", 352
+ new $P1290, 'ExceptionHandler'
+ set_addr $P1290, control_1289
+ $P1290."handle_types"(58)
+ push_eh $P1290
.lex "self", self
- .lex "$/", param_1302
-.annotate "line", 362
- new $P1303, "Undef"
- .lex "$past", $P1303
- find_lex $P1304, "$/"
- unless_null $P1304, vivify_300
- new $P1304, "Hash"
+ .lex "$/", param_1291
+.annotate "line", 353
+ new $P1292, "Undef"
+ .lex "$past", $P1292
+.annotate "line", 352
+ find_lex $P1293, "$past"
+.annotate "line", 354
+ find_lex $P1295, "$/"
+ unless_null $P1295, vivify_299
+ $P1295 = root_new ['parrot';'Hash']
+ vivify_299:
+ set $P1296, $P1295["assertion"]
+ unless_null $P1296, vivify_300
+ new $P1296, "Undef"
vivify_300:
- set $P1305, $P1304["assertion"]
- unless_null $P1305, vivify_301
- new $P1305, "Undef"
+ if $P1296, if_1294
+.annotate "line", 360
+ get_hll_global $P1305, ["PAST"], "Regex"
+ find_lex $P1306, "$/"
+ $P1307 = $P1305."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1306 :named("node"))
+ store_lex "$past", $P1307
+.annotate "line", 359
+ goto if_1294_end
+ if_1294:
+.annotate "line", 355
+ find_lex $P1297, "$/"
+ unless_null $P1297, vivify_301
+ $P1297 = root_new ['parrot';'Hash']
vivify_301:
- $P1306 = $P1305."ast"()
- store_lex "$past", $P1306
-.annotate "line", 363
- find_lex $P1307, "$past"
- $P1307."subtype"("method")
-.annotate "line", 364
- find_lex $P1308, "$past"
- $P1308."name"("")
-.annotate "line", 365
- find_lex $P1309, "$/"
- find_lex $P1310, "$past"
- $P1311 = $P1309."!make"($P1310)
-.annotate "line", 361
- .return ($P1311)
- control_1300:
+ set $P1298, $P1297["assertion"]
+ unless_null $P1298, vivify_302
+ new $P1298, "Undef"
+ vivify_302:
+ $P1299 = $P1298."ast"()
+ store_lex "$past", $P1299
+.annotate "line", 356
+ find_lex $P1300, "$past"
+ find_lex $P1301, "$past"
+ $P1302 = $P1301."negate"()
+ isfalse $I1303, $P1302
+ $P1300."negate"($I1303)
+.annotate "line", 357
+ find_lex $P1304, "$past"
+ $P1304."subtype"("zerowidth")
+ if_1294_end:
+.annotate "line", 362
+ find_lex $P1308, "$/"
+ find_lex $P1309, "$past"
+ $P1310 = $P1308."!make"($P1309)
+.annotate "line", 352
+ .return ($P1310)
+ control_1289:
.local pmc exception
.get_results (exception)
- getattribute $P1312, exception, "payload"
- .return ($P1312)
+ getattribute $P1311, exception, "payload"
+ .return ($P1311)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>" :subid("79_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1316
-.annotate "line", 368
- .const 'Sub' $P1374 = "81_1261064016.27984"
- capture_lex $P1374
- .const 'Sub' $P1338 = "80_1261064016.27984"
- capture_lex $P1338
- new $P1315, 'ExceptionHandler'
- set_addr $P1315, control_1314
- $P1315."handle_types"(58)
- push_eh $P1315
- .lex "self", self
- .lex "$/", param_1316
-.annotate "line", 369
- new $P1317, "Undef"
- .lex "$name", $P1317
-.annotate "line", 370
+.sub "assertion:sym<method>" :subid("79_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1315
+.annotate "line", 365
+ new $P1314, 'ExceptionHandler'
+ set_addr $P1314, control_1313
+ $P1314."handle_types"(58)
+ push_eh $P1314
+ .lex "self", self
+ .lex "$/", param_1315
+.annotate "line", 366
+ new $P1316, "Undef"
+ .lex "$past", $P1316
+ find_lex $P1317, "$/"
+ unless_null $P1317, vivify_303
+ $P1317 = root_new ['parrot';'Hash']
+ vivify_303:
+ set $P1318, $P1317["assertion"]
+ unless_null $P1318, vivify_304
new $P1318, "Undef"
- .lex "$past", $P1318
+ vivify_304:
+ $P1319 = $P1318."ast"()
+ store_lex "$past", $P1319
+.annotate "line", 367
+ find_lex $P1320, "$past"
+ $P1320."subtype"("method")
+.annotate "line", 368
+ find_lex $P1321, "$past"
+ $P1321."name"("")
.annotate "line", 369
- find_lex $P1319, "$/"
- unless_null $P1319, vivify_302
- new $P1319, "Hash"
- vivify_302:
- set $P1320, $P1319["longname"]
- unless_null $P1320, vivify_303
- new $P1320, "Undef"
- vivify_303:
- set $S1321, $P1320
- new $P1322, 'String'
- set $P1322, $S1321
- store_lex "$name", $P1322
+ find_lex $P1322, "$/"
find_lex $P1323, "$past"
-.annotate "line", 371
- find_lex $P1325, "$/"
- unless_null $P1325, vivify_304
- new $P1325, "Hash"
- vivify_304:
- set $P1326, $P1325["assertion"]
- unless_null $P1326, vivify_305
- new $P1326, "Undef"
+ $P1324 = $P1322."!make"($P1323)
+.annotate "line", 365
+ .return ($P1324)
+ control_1313:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1325, exception, "payload"
+ .return ($P1325)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "assertion:sym<name>" :subid("80_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1329
+.annotate "line", 372
+ .const 'Sub' $P1387 = "82_1267204695.47543"
+ capture_lex $P1387
+ .const 'Sub' $P1351 = "81_1267204695.47543"
+ capture_lex $P1351
+ new $P1328, 'ExceptionHandler'
+ set_addr $P1328, control_1327
+ $P1328."handle_types"(58)
+ push_eh $P1328
+ .lex "self", self
+ .lex "$/", param_1329
+.annotate "line", 373
+ new $P1330, "Undef"
+ .lex "$name", $P1330
+.annotate "line", 374
+ new $P1331, "Undef"
+ .lex "$past", $P1331
+.annotate "line", 373
+ find_lex $P1332, "$/"
+ unless_null $P1332, vivify_305
+ $P1332 = root_new ['parrot';'Hash']
vivify_305:
- if $P1326, if_1324
-.annotate "line", 375
- find_lex $P1334, "$name"
- set $S1335, $P1334
- iseq $I1336, $S1335, "sym"
- if $I1336, if_1333
-.annotate "line", 391
- get_hll_global $P1348, ["PAST"], "Regex"
- find_lex $P1349, "$name"
- find_lex $P1350, "$name"
- find_lex $P1351, "$/"
- $P1352 = $P1348."new"($P1349, $P1350 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1351 :named("node"))
- store_lex "$past", $P1352
-.annotate "line", 393
- find_lex $P1354, "$/"
- unless_null $P1354, vivify_306
- new $P1354, "Hash"
+ set $P1333, $P1332["longname"]
+ unless_null $P1333, vivify_306
+ new $P1333, "Undef"
vivify_306:
- set $P1355, $P1354["nibbler"]
- unless_null $P1355, vivify_307
- new $P1355, "Undef"
+ set $S1334, $P1333
+ new $P1335, 'String'
+ set $P1335, $S1334
+ store_lex "$name", $P1335
+ find_lex $P1336, "$past"
+.annotate "line", 375
+ find_lex $P1338, "$/"
+ unless_null $P1338, vivify_307
+ $P1338 = root_new ['parrot';'Hash']
vivify_307:
- if $P1355, if_1353
-.annotate "line", 396
- find_lex $P1363, "$/"
- unless_null $P1363, vivify_308
- new $P1363, "Hash"
+ set $P1339, $P1338["assertion"]
+ unless_null $P1339, vivify_308
+ new $P1339, "Undef"
vivify_308:
- set $P1364, $P1363["arglist"]
- unless_null $P1364, vivify_309
- new $P1364, "Undef"
- vivify_309:
- unless $P1364, if_1362_end
+ if $P1339, if_1337
+.annotate "line", 379
+ find_lex $P1347, "$name"
+ set $S1348, $P1347
+ iseq $I1349, $S1348, "sym"
+ if $I1349, if_1346
+.annotate "line", 395
+ get_hll_global $P1361, ["PAST"], "Regex"
+ find_lex $P1362, "$name"
+ find_lex $P1363, "$name"
+ find_lex $P1364, "$/"
+ $P1365 = $P1361."new"($P1362, $P1363 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1364 :named("node"))
+ store_lex "$past", $P1365
.annotate "line", 397
- find_lex $P1366, "$/"
- unless_null $P1366, vivify_310
- new $P1366, "Hash"
+ find_lex $P1367, "$/"
+ unless_null $P1367, vivify_309
+ $P1367 = root_new ['parrot';'Hash']
+ vivify_309:
+ set $P1368, $P1367["nibbler"]
+ unless_null $P1368, vivify_310
+ new $P1368, "Undef"
vivify_310:
- set $P1367, $P1366["arglist"]
- unless_null $P1367, vivify_311
- new $P1367, "ResizablePMCArray"
+ if $P1368, if_1366
+.annotate "line", 400
+ find_lex $P1376, "$/"
+ unless_null $P1376, vivify_311
+ $P1376 = root_new ['parrot';'Hash']
vivify_311:
- set $P1368, $P1367[0]
- unless_null $P1368, vivify_312
- new $P1368, "Undef"
+ set $P1377, $P1376["arglist"]
+ unless_null $P1377, vivify_312
+ new $P1377, "Undef"
vivify_312:
- $P1369 = $P1368."ast"()
- $P1370 = $P1369."list"()
- defined $I1371, $P1370
- unless $I1371, for_undef_313
- iter $P1365, $P1370
- new $P1380, 'ExceptionHandler'
- set_addr $P1380, loop1379_handler
- $P1380."handle_types"(65, 67, 66)
- push_eh $P1380
- loop1379_test:
- unless $P1365, loop1379_done
- shift $P1372, $P1365
- loop1379_redo:
- .const 'Sub' $P1374 = "81_1261064016.27984"
- capture_lex $P1374
- $P1374($P1372)
- loop1379_next:
- goto loop1379_test
- loop1379_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1381, exception, 'type'
- eq $P1381, 65, loop1379_next
- eq $P1381, 67, loop1379_redo
- loop1379_done:
- pop_eh
- for_undef_313:
- if_1362_end:
-.annotate "line", 396
- goto if_1353_end
- if_1353:
-.annotate "line", 394
- find_lex $P1356, "$past"
- find_lex $P1357, "$/"
- unless_null $P1357, vivify_314
- new $P1357, "Hash"
+ unless $P1377, if_1375_end
+.annotate "line", 401
+ find_lex $P1379, "$/"
+ unless_null $P1379, vivify_313
+ $P1379 = root_new ['parrot';'Hash']
+ vivify_313:
+ set $P1380, $P1379["arglist"]
+ unless_null $P1380, vivify_314
+ $P1380 = root_new ['parrot';'ResizablePMCArray']
vivify_314:
- set $P1358, $P1357["nibbler"]
- unless_null $P1358, vivify_315
- new $P1358, "ResizablePMCArray"
+ set $P1381, $P1380[0]
+ unless_null $P1381, vivify_315
+ new $P1381, "Undef"
vivify_315:
- set $P1359, $P1358[0]
- unless_null $P1359, vivify_316
- new $P1359, "Undef"
- vivify_316:
- $P1360 = $P1359."ast"()
- $P1361 = "buildsub"($P1360)
- $P1356."push"($P1361)
- if_1353_end:
-.annotate "line", 390
- goto if_1333_end
- if_1333:
-.annotate "line", 375
- .const 'Sub' $P1338 = "80_1261064016.27984"
- capture_lex $P1338
- $P1338()
- if_1333_end:
- goto if_1324_end
- if_1324:
-.annotate "line", 372
- find_lex $P1327, "$/"
- unless_null $P1327, vivify_317
- new $P1327, "Hash"
+ $P1382 = $P1381."ast"()
+ $P1383 = $P1382."list"()
+ defined $I1384, $P1383
+ unless $I1384, for_undef_316
+ iter $P1378, $P1383
+ new $P1393, 'ExceptionHandler'
+ set_addr $P1393, loop1392_handler
+ $P1393."handle_types"(65, 67, 66)
+ push_eh $P1393
+ loop1392_test:
+ unless $P1378, loop1392_done
+ shift $P1385, $P1378
+ loop1392_redo:
+ .const 'Sub' $P1387 = "82_1267204695.47543"
+ capture_lex $P1387
+ $P1387($P1385)
+ loop1392_next:
+ goto loop1392_test
+ loop1392_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1394, exception, 'type'
+ eq $P1394, 65, loop1392_next
+ eq $P1394, 67, loop1392_redo
+ loop1392_done:
+ pop_eh
+ for_undef_316:
+ if_1375_end:
+.annotate "line", 400
+ goto if_1366_end
+ if_1366:
+.annotate "line", 398
+ find_lex $P1369, "$past"
+ find_lex $P1370, "$/"
+ unless_null $P1370, vivify_317
+ $P1370 = root_new ['parrot';'Hash']
vivify_317:
- set $P1328, $P1327["assertion"]
- unless_null $P1328, vivify_318
- new $P1328, "ResizablePMCArray"
+ set $P1371, $P1370["nibbler"]
+ unless_null $P1371, vivify_318
+ $P1371 = root_new ['parrot';'ResizablePMCArray']
vivify_318:
- set $P1329, $P1328[0]
- unless_null $P1329, vivify_319
- new $P1329, "Undef"
+ set $P1372, $P1371[0]
+ unless_null $P1372, vivify_319
+ new $P1372, "Undef"
vivify_319:
- $P1330 = $P1329."ast"()
- store_lex "$past", $P1330
-.annotate "line", 373
- find_lex $P1331, "$past"
- find_lex $P1332, "$name"
- "subrule_alias"($P1331, $P1332)
- if_1324_end:
-.annotate "line", 400
- find_lex $P1382, "$/"
- find_lex $P1383, "$past"
- $P1384 = $P1382."!make"($P1383)
-.annotate "line", 368
- .return ($P1384)
- control_1314:
+ $P1373 = $P1372."ast"()
+ $P1374 = "buildsub"($P1373)
+ $P1369."push"($P1374)
+ if_1366_end:
+.annotate "line", 394
+ goto if_1346_end
+ if_1346:
+.annotate "line", 379
+ .const 'Sub' $P1351 = "81_1267204695.47543"
+ capture_lex $P1351
+ $P1351()
+ if_1346_end:
+ goto if_1337_end
+ if_1337:
+.annotate "line", 376
+ find_lex $P1340, "$/"
+ unless_null $P1340, vivify_320
+ $P1340 = root_new ['parrot';'Hash']
+ vivify_320:
+ set $P1341, $P1340["assertion"]
+ unless_null $P1341, vivify_321
+ $P1341 = root_new ['parrot';'ResizablePMCArray']
+ vivify_321:
+ set $P1342, $P1341[0]
+ unless_null $P1342, vivify_322
+ new $P1342, "Undef"
+ vivify_322:
+ $P1343 = $P1342."ast"()
+ store_lex "$past", $P1343
+.annotate "line", 377
+ find_lex $P1344, "$past"
+ find_lex $P1345, "$name"
+ "subrule_alias"($P1344, $P1345)
+ if_1337_end:
+.annotate "line", 404
+ find_lex $P1395, "$/"
+ find_lex $P1396, "$past"
+ $P1397 = $P1395."!make"($P1396)
+.annotate "line", 372
+ .return ($P1397)
+ control_1327:
.local pmc exception
.get_results (exception)
- getattribute $P1385, exception, "payload"
- .return ($P1385)
+ getattribute $P1398, exception, "payload"
+ .return ($P1398)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1373" :anon :subid("81_1261064016.27984") :outer("79_1261064016.27984")
- .param pmc param_1375
-.annotate "line", 397
- .lex "$_", param_1375
- find_lex $P1376, "$past"
- find_lex $P1377, "$_"
- $P1378 = $P1376."push"($P1377)
- .return ($P1378)
+.sub "_block1386" :anon :subid("82_1267204695.47543") :outer("80_1267204695.47543")
+ .param pmc param_1388
+.annotate "line", 401
+ .lex "$_", param_1388
+ find_lex $P1389, "$past"
+ find_lex $P1390, "$_"
+ $P1391 = $P1389."push"($P1390)
+ .return ($P1391)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1337" :anon :subid("80_1261064016.27984") :outer("79_1261064016.27984")
-.annotate "line", 376
- new $P1339, "Undef"
- .lex "$regexsym", $P1339
+.sub "_block1350" :anon :subid("81_1267204695.47543") :outer("80_1267204695.47543")
+.annotate "line", 380
+ new $P1352, "Undef"
+ .lex "$regexsym", $P1352
$P0 = get_global '$REGEXNAME'
$S0 = $P0
@@ -11249,388 +11286,388 @@
add $I0, 5
$S0 = substr $S0, $I0
chopn $S0, 1
- $P1340 = box $S0
+ $P1353 = box $S0
- store_lex "$regexsym", $P1340
-.annotate "line", 385
- get_hll_global $P1341, ["PAST"], "Regex"
-.annotate "line", 386
- get_hll_global $P1342, ["PAST"], "Regex"
- find_lex $P1343, "$regexsym"
- $P1344 = $P1342."new"($P1343, "literal" :named("pasttype"))
- find_lex $P1345, "$name"
- find_lex $P1346, "$/"
- $P1347 = $P1341."new"($P1344, $P1345 :named("name"), "subcapture" :named("pasttype"), $P1346 :named("node"))
-.annotate "line", 385
- store_lex "$past", $P1347
-.annotate "line", 375
- .return ($P1347)
+ store_lex "$regexsym", $P1353
+.annotate "line", 389
+ get_hll_global $P1354, ["PAST"], "Regex"
+.annotate "line", 390
+ get_hll_global $P1355, ["PAST"], "Regex"
+ find_lex $P1356, "$regexsym"
+ $P1357 = $P1355."new"($P1356, "literal" :named("pasttype"))
+ find_lex $P1358, "$name"
+ find_lex $P1359, "$/"
+ $P1360 = $P1354."new"($P1357, $P1358 :named("name"), "subcapture" :named("pasttype"), $P1359 :named("node"))
+.annotate "line", 389
+ store_lex "$past", $P1360
+.annotate "line", 379
+ .return ($P1360)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>" :subid("82_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1389
-.annotate "line", 403
- .const 'Sub' $P1424 = "83_1261064016.27984"
- capture_lex $P1424
- new $P1388, 'ExceptionHandler'
- set_addr $P1388, control_1387
- $P1388."handle_types"(58)
- push_eh $P1388
- .lex "self", self
- .lex "$/", param_1389
-.annotate "line", 404
- new $P1390, "Undef"
- .lex "$clist", $P1390
-.annotate "line", 405
- new $P1391, "Undef"
- .lex "$past", $P1391
-.annotate "line", 414
- new $P1392, "Undef"
- .lex "$i", $P1392
-.annotate "line", 415
- new $P1393, "Undef"
- .lex "$n", $P1393
-.annotate "line", 404
- find_lex $P1394, "$/"
- unless_null $P1394, vivify_320
- new $P1394, "Hash"
- vivify_320:
- set $P1395, $P1394["cclass_elem"]
- unless_null $P1395, vivify_321
- new $P1395, "Undef"
- vivify_321:
- store_lex "$clist", $P1395
-.annotate "line", 405
- find_lex $P1396, "$clist"
- unless_null $P1396, vivify_322
- new $P1396, "ResizablePMCArray"
- vivify_322:
- set $P1397, $P1396[0]
- unless_null $P1397, vivify_323
- new $P1397, "Undef"
- vivify_323:
- $P1398 = $P1397."ast"()
- store_lex "$past", $P1398
-.annotate "line", 406
- find_lex $P1402, "$past"
- $P1403 = $P1402."negate"()
- if $P1403, if_1401
- set $P1400, $P1403
- goto if_1401_end
- if_1401:
- find_lex $P1404, "$past"
- $S1405 = $P1404."pasttype"()
- iseq $I1406, $S1405, "subrule"
- new $P1400, 'Integer'
- set $P1400, $I1406
- if_1401_end:
- unless $P1400, if_1399_end
+.sub "assertion:sym<[>" :subid("83_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1402
.annotate "line", 407
- find_lex $P1407, "$past"
- $P1407."subtype"("zerowidth")
+ .const 'Sub' $P1437 = "84_1267204695.47543"
+ capture_lex $P1437
+ new $P1401, 'ExceptionHandler'
+ set_addr $P1401, control_1400
+ $P1401."handle_types"(58)
+ push_eh $P1401
+ .lex "self", self
+ .lex "$/", param_1402
.annotate "line", 408
- get_hll_global $P1408, ["PAST"], "Regex"
- find_lex $P1409, "$past"
-.annotate "line", 410
- get_hll_global $P1410, ["PAST"], "Regex"
- $P1411 = $P1410."new"("charclass" :named("pasttype"), "." :named("subtype"))
- find_lex $P1412, "$/"
- $P1413 = $P1408."new"($P1409, $P1411, $P1412 :named("node"))
+ new $P1403, "Undef"
+ .lex "$clist", $P1403
+.annotate "line", 409
+ new $P1404, "Undef"
+ .lex "$past", $P1404
+.annotate "line", 418
+ new $P1405, "Undef"
+ .lex "$i", $P1405
+.annotate "line", 419
+ new $P1406, "Undef"
+ .lex "$n", $P1406
.annotate "line", 408
- store_lex "$past", $P1413
- if_1399_end:
+ find_lex $P1407, "$/"
+ unless_null $P1407, vivify_323
+ $P1407 = root_new ['parrot';'Hash']
+ vivify_323:
+ set $P1408, $P1407["cclass_elem"]
+ unless_null $P1408, vivify_324
+ new $P1408, "Undef"
+ vivify_324:
+ store_lex "$clist", $P1408
+.annotate "line", 409
+ find_lex $P1409, "$clist"
+ unless_null $P1409, vivify_325
+ $P1409 = root_new ['parrot';'ResizablePMCArray']
+ vivify_325:
+ set $P1410, $P1409[0]
+ unless_null $P1410, vivify_326
+ new $P1410, "Undef"
+ vivify_326:
+ $P1411 = $P1410."ast"()
+ store_lex "$past", $P1411
+.annotate "line", 410
+ find_lex $P1415, "$past"
+ $P1416 = $P1415."negate"()
+ if $P1416, if_1414
+ set $P1413, $P1416
+ goto if_1414_end
+ if_1414:
+ find_lex $P1417, "$past"
+ $S1418 = $P1417."pasttype"()
+ iseq $I1419, $S1418, "subrule"
+ new $P1413, 'Integer'
+ set $P1413, $I1419
+ if_1414_end:
+ unless $P1413, if_1412_end
+.annotate "line", 411
+ find_lex $P1420, "$past"
+ $P1420."subtype"("zerowidth")
+.annotate "line", 412
+ get_hll_global $P1421, ["PAST"], "Regex"
+ find_lex $P1422, "$past"
.annotate "line", 414
- new $P1414, "Integer"
- assign $P1414, 1
- store_lex "$i", $P1414
-.annotate "line", 415
- find_lex $P1415, "$clist"
- set $N1416, $P1415
- new $P1417, 'Float'
- set $P1417, $N1416
- store_lex "$n", $P1417
-.annotate "line", 416
- new $P1448, 'ExceptionHandler'
- set_addr $P1448, loop1447_handler
- $P1448."handle_types"(65, 67, 66)
- push_eh $P1448
- loop1447_test:
- find_lex $P1418, "$i"
- set $N1419, $P1418
- find_lex $P1420, "$n"
- set $N1421, $P1420
- islt $I1422, $N1419, $N1421
- unless $I1422, loop1447_done
- loop1447_redo:
- .const 'Sub' $P1424 = "83_1261064016.27984"
- capture_lex $P1424
- $P1424()
- loop1447_next:
- goto loop1447_test
- loop1447_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1449, exception, 'type'
- eq $P1449, 65, loop1447_next
- eq $P1449, 67, loop1447_redo
- loop1447_done:
+ get_hll_global $P1423, ["PAST"], "Regex"
+ $P1424 = $P1423."new"("charclass" :named("pasttype"), "." :named("subtype"))
+ find_lex $P1425, "$/"
+ $P1426 = $P1421."new"($P1422, $P1424, $P1425 :named("node"))
+.annotate "line", 412
+ store_lex "$past", $P1426
+ if_1412_end:
+.annotate "line", 418
+ new $P1427, "Integer"
+ assign $P1427, 1
+ store_lex "$i", $P1427
+.annotate "line", 419
+ find_lex $P1428, "$clist"
+ set $N1429, $P1428
+ new $P1430, 'Float'
+ set $P1430, $N1429
+ store_lex "$n", $P1430
+.annotate "line", 420
+ new $P1461, 'ExceptionHandler'
+ set_addr $P1461, loop1460_handler
+ $P1461."handle_types"(65, 67, 66)
+ push_eh $P1461
+ loop1460_test:
+ find_lex $P1431, "$i"
+ set $N1432, $P1431
+ find_lex $P1433, "$n"
+ set $N1434, $P1433
+ islt $I1435, $N1432, $N1434
+ unless $I1435, loop1460_done
+ loop1460_redo:
+ .const 'Sub' $P1437 = "84_1267204695.47543"
+ capture_lex $P1437
+ $P1437()
+ loop1460_next:
+ goto loop1460_test
+ loop1460_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1462, exception, 'type'
+ eq $P1462, 65, loop1460_next
+ eq $P1462, 67, loop1460_redo
+ loop1460_done:
pop_eh
-.annotate "line", 427
- find_lex $P1450, "$/"
- find_lex $P1451, "$past"
- $P1452 = $P1450."!make"($P1451)
-.annotate "line", 403
- .return ($P1452)
- control_1387:
+.annotate "line", 431
+ find_lex $P1463, "$/"
+ find_lex $P1464, "$past"
+ $P1465 = $P1463."!make"($P1464)
+.annotate "line", 407
+ .return ($P1465)
+ control_1400:
.local pmc exception
.get_results (exception)
- getattribute $P1453, exception, "payload"
- .return ($P1453)
+ getattribute $P1466, exception, "payload"
+ .return ($P1466)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1423" :anon :subid("83_1261064016.27984") :outer("82_1261064016.27984")
-.annotate "line", 417
- new $P1425, "Undef"
- .lex "$ast", $P1425
- find_lex $P1426, "$i"
- set $I1427, $P1426
- find_lex $P1428, "$clist"
- unless_null $P1428, vivify_324
- new $P1428, "ResizablePMCArray"
- vivify_324:
- set $P1429, $P1428[$I1427]
- unless_null $P1429, vivify_325
- new $P1429, "Undef"
- vivify_325:
- $P1430 = $P1429."ast"()
- store_lex "$ast", $P1430
-.annotate "line", 418
- find_lex $P1432, "$ast"
- $P1433 = $P1432."negate"()
- if $P1433, if_1431
-.annotate "line", 423
- get_hll_global $P1440, ["PAST"], "Regex"
- find_lex $P1441, "$past"
- find_lex $P1442, "$ast"
- find_lex $P1443, "$/"
- $P1444 = $P1440."new"($P1441, $P1442, "alt" :named("pasttype"), $P1443 :named("node"))
- store_lex "$past", $P1444
+.sub "_block1436" :anon :subid("84_1267204695.47543") :outer("83_1267204695.47543")
+.annotate "line", 421
+ new $P1438, "Undef"
+ .lex "$ast", $P1438
+ find_lex $P1439, "$i"
+ set $I1440, $P1439
+ find_lex $P1441, "$clist"
+ unless_null $P1441, vivify_327
+ $P1441 = root_new ['parrot';'ResizablePMCArray']
+ vivify_327:
+ set $P1442, $P1441[$I1440]
+ unless_null $P1442, vivify_328
+ new $P1442, "Undef"
+ vivify_328:
+ $P1443 = $P1442."ast"()
+ store_lex "$ast", $P1443
.annotate "line", 422
- goto if_1431_end
- if_1431:
-.annotate "line", 419
- find_lex $P1434, "$ast"
- $P1434."subtype"("zerowidth")
+ find_lex $P1445, "$ast"
+ $P1446 = $P1445."negate"()
+ if $P1446, if_1444
+.annotate "line", 427
+ get_hll_global $P1453, ["PAST"], "Regex"
+ find_lex $P1454, "$past"
+ find_lex $P1455, "$ast"
+ find_lex $P1456, "$/"
+ $P1457 = $P1453."new"($P1454, $P1455, "alt" :named("pasttype"), $P1456 :named("node"))
+ store_lex "$past", $P1457
+.annotate "line", 426
+ goto if_1444_end
+ if_1444:
+.annotate "line", 423
+ find_lex $P1447, "$ast"
+ $P1447."subtype"("zerowidth")
+.annotate "line", 424
+ get_hll_global $P1448, ["PAST"], "Regex"
+ find_lex $P1449, "$ast"
+ find_lex $P1450, "$past"
+ find_lex $P1451, "$/"
+ $P1452 = $P1448."new"($P1449, $P1450, "concat" :named("pasttype"), $P1451 :named("node"))
+ store_lex "$past", $P1452
+ if_1444_end:
+.annotate "line", 429
+ find_lex $P1458, "$i"
+ add $P1459, $P1458, 1
+ store_lex "$i", $P1459
.annotate "line", 420
- get_hll_global $P1435, ["PAST"], "Regex"
- find_lex $P1436, "$ast"
- find_lex $P1437, "$past"
- find_lex $P1438, "$/"
- $P1439 = $P1435."new"($P1436, $P1437, "concat" :named("pasttype"), $P1438 :named("node"))
- store_lex "$past", $P1439
- if_1431_end:
-.annotate "line", 425
- find_lex $P1445, "$i"
- add $P1446, $P1445, 1
- store_lex "$i", $P1446
-.annotate "line", 416
- .return ($P1446)
+ .return ($P1459)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem" :subid("84_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1457
-.annotate "line", 430
- .const 'Sub' $P1482 = "86_1261064016.27984"
- capture_lex $P1482
- .const 'Sub' $P1466 = "85_1261064016.27984"
- capture_lex $P1466
- new $P1456, 'ExceptionHandler'
- set_addr $P1456, control_1455
- $P1456."handle_types"(58)
- push_eh $P1456
+.sub "cclass_elem" :subid("85_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1470
+.annotate "line", 434
+ .const 'Sub' $P1495 = "87_1267204695.47543"
+ capture_lex $P1495
+ .const 'Sub' $P1479 = "86_1267204695.47543"
+ capture_lex $P1479
+ new $P1469, 'ExceptionHandler'
+ set_addr $P1469, control_1468
+ $P1469."handle_types"(58)
+ push_eh $P1469
.lex "self", self
- .lex "$/", param_1457
-.annotate "line", 431
- new $P1458, "Undef"
- .lex "$str", $P1458
-.annotate "line", 432
- new $P1459, "Undef"
- .lex "$past", $P1459
-.annotate "line", 431
- new $P1460, "String"
- assign $P1460, ""
- store_lex "$str", $P1460
- find_lex $P1461, "$past"
-.annotate "line", 433
- find_lex $P1463, "$/"
- unless_null $P1463, vivify_326
- new $P1463, "Hash"
- vivify_326:
- set $P1464, $P1463["name"]
- unless_null $P1464, vivify_327
- new $P1464, "Undef"
- vivify_327:
- if $P1464, if_1462
+ .lex "$/", param_1470
+.annotate "line", 435
+ new $P1471, "Undef"
+ .lex "$str", $P1471
+.annotate "line", 436
+ new $P1472, "Undef"
+ .lex "$past", $P1472
+.annotate "line", 435
+ new $P1473, "String"
+ assign $P1473, ""
+ store_lex "$str", $P1473
+ find_lex $P1474, "$past"
.annotate "line", 437
- find_lex $P1477, "$/"
- unless_null $P1477, vivify_328
- new $P1477, "Hash"
- vivify_328:
- set $P1478, $P1477["charspec"]
- unless_null $P1478, vivify_329
- new $P1478, "Undef"
+ find_lex $P1476, "$/"
+ unless_null $P1476, vivify_329
+ $P1476 = root_new ['parrot';'Hash']
vivify_329:
- defined $I1479, $P1478
- unless $I1479, for_undef_330
- iter $P1476, $P1478
- new $P1508, 'ExceptionHandler'
- set_addr $P1508, loop1507_handler
- $P1508."handle_types"(65, 67, 66)
- push_eh $P1508
- loop1507_test:
- unless $P1476, loop1507_done
- shift $P1480, $P1476
- loop1507_redo:
- .const 'Sub' $P1482 = "86_1261064016.27984"
- capture_lex $P1482
- $P1482($P1480)
- loop1507_next:
- goto loop1507_test
- loop1507_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1509, exception, 'type'
- eq $P1509, 65, loop1507_next
- eq $P1509, 67, loop1507_redo
- loop1507_done:
+ set $P1477, $P1476["name"]
+ unless_null $P1477, vivify_330
+ new $P1477, "Undef"
+ vivify_330:
+ if $P1477, if_1475
+.annotate "line", 441
+ find_lex $P1490, "$/"
+ unless_null $P1490, vivify_331
+ $P1490 = root_new ['parrot';'Hash']
+ vivify_331:
+ set $P1491, $P1490["charspec"]
+ unless_null $P1491, vivify_332
+ new $P1491, "Undef"
+ vivify_332:
+ defined $I1492, $P1491
+ unless $I1492, for_undef_333
+ iter $P1489, $P1491
+ new $P1521, 'ExceptionHandler'
+ set_addr $P1521, loop1520_handler
+ $P1521."handle_types"(65, 67, 66)
+ push_eh $P1521
+ loop1520_test:
+ unless $P1489, loop1520_done
+ shift $P1493, $P1489
+ loop1520_redo:
+ .const 'Sub' $P1495 = "87_1267204695.47543"
+ capture_lex $P1495
+ $P1495($P1493)
+ loop1520_next:
+ goto loop1520_test
+ loop1520_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1522, exception, 'type'
+ eq $P1522, 65, loop1520_next
+ eq $P1522, 67, loop1520_redo
+ loop1520_done:
pop_eh
- for_undef_330:
-.annotate "line", 462
- get_hll_global $P1510, ["PAST"], "Regex"
- find_lex $P1511, "$str"
- find_lex $P1512, "$/"
- $P1513 = $P1510."new"($P1511, "enumcharlist" :named("pasttype"), $P1512 :named("node"))
- store_lex "$past", $P1513
-.annotate "line", 436
- goto if_1462_end
- if_1462:
-.annotate "line", 433
- .const 'Sub' $P1466 = "85_1261064016.27984"
- capture_lex $P1466
- $P1466()
- if_1462_end:
-.annotate "line", 464
- find_lex $P1514, "$past"
- find_lex $P1515, "$/"
- unless_null $P1515, vivify_342
- new $P1515, "Hash"
- vivify_342:
- set $P1516, $P1515["sign"]
- unless_null $P1516, vivify_343
- new $P1516, "Undef"
- vivify_343:
- set $S1517, $P1516
- iseq $I1518, $S1517, "-"
- $P1514."negate"($I1518)
-.annotate "line", 465
- find_lex $P1519, "$/"
- find_lex $P1520, "$past"
- $P1521 = $P1519."!make"($P1520)
-.annotate "line", 430
- .return ($P1521)
- control_1455:
+ for_undef_333:
+.annotate "line", 466
+ get_hll_global $P1523, ["PAST"], "Regex"
+ find_lex $P1524, "$str"
+ find_lex $P1525, "$/"
+ $P1526 = $P1523."new"($P1524, "enumcharlist" :named("pasttype"), $P1525 :named("node"))
+ store_lex "$past", $P1526
+.annotate "line", 440
+ goto if_1475_end
+ if_1475:
+.annotate "line", 437
+ .const 'Sub' $P1479 = "86_1267204695.47543"
+ capture_lex $P1479
+ $P1479()
+ if_1475_end:
+.annotate "line", 468
+ find_lex $P1527, "$past"
+ find_lex $P1528, "$/"
+ unless_null $P1528, vivify_345
+ $P1528 = root_new ['parrot';'Hash']
+ vivify_345:
+ set $P1529, $P1528["sign"]
+ unless_null $P1529, vivify_346
+ new $P1529, "Undef"
+ vivify_346:
+ set $S1530, $P1529
+ iseq $I1531, $S1530, "-"
+ $P1527."negate"($I1531)
+.annotate "line", 469
+ find_lex $P1532, "$/"
+ find_lex $P1533, "$past"
+ $P1534 = $P1532."!make"($P1533)
+.annotate "line", 434
+ .return ($P1534)
+ control_1468:
.local pmc exception
.get_results (exception)
- getattribute $P1522, exception, "payload"
- .return ($P1522)
+ getattribute $P1535, exception, "payload"
+ .return ($P1535)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1481" :anon :subid("86_1261064016.27984") :outer("84_1261064016.27984")
- .param pmc param_1483
-.annotate "line", 437
- .const 'Sub' $P1489 = "87_1261064016.27984"
- capture_lex $P1489
- .lex "$_", param_1483
-.annotate "line", 438
- find_lex $P1486, "$_"
- unless_null $P1486, vivify_331
- new $P1486, "ResizablePMCArray"
- vivify_331:
- set $P1487, $P1486[1]
- unless_null $P1487, vivify_332
- new $P1487, "Undef"
- vivify_332:
- if $P1487, if_1485
-.annotate "line", 460
- find_lex $P1503, "$str"
- find_lex $P1504, "$_"
- unless_null $P1504, vivify_333
- new $P1504, "ResizablePMCArray"
- vivify_333:
- set $P1505, $P1504[0]
- unless_null $P1505, vivify_334
- new $P1505, "Undef"
+.sub "_block1494" :anon :subid("87_1267204695.47543") :outer("85_1267204695.47543")
+ .param pmc param_1496
+.annotate "line", 441
+ .const 'Sub' $P1502 = "88_1267204695.47543"
+ capture_lex $P1502
+ .lex "$_", param_1496
+.annotate "line", 442
+ find_lex $P1499, "$_"
+ unless_null $P1499, vivify_334
+ $P1499 = root_new ['parrot';'ResizablePMCArray']
vivify_334:
- concat $P1506, $P1503, $P1505
- store_lex "$str", $P1506
- set $P1484, $P1506
-.annotate "line", 438
- goto if_1485_end
- if_1485:
- .const 'Sub' $P1489 = "87_1261064016.27984"
- capture_lex $P1489
- $P1502 = $P1489()
- set $P1484, $P1502
- if_1485_end:
-.annotate "line", 437
- .return ($P1484)
+ set $P1500, $P1499[1]
+ unless_null $P1500, vivify_335
+ new $P1500, "Undef"
+ vivify_335:
+ if $P1500, if_1498
+.annotate "line", 464
+ find_lex $P1516, "$str"
+ find_lex $P1517, "$_"
+ unless_null $P1517, vivify_336
+ $P1517 = root_new ['parrot';'ResizablePMCArray']
+ vivify_336:
+ set $P1518, $P1517[0]
+ unless_null $P1518, vivify_337
+ new $P1518, "Undef"
+ vivify_337:
+ concat $P1519, $P1516, $P1518
+ store_lex "$str", $P1519
+ set $P1497, $P1519
+.annotate "line", 442
+ goto if_1498_end
+ if_1498:
+ .const 'Sub' $P1502 = "88_1267204695.47543"
+ capture_lex $P1502
+ $P1515 = $P1502()
+ set $P1497, $P1515
+ if_1498_end:
+.annotate "line", 441
+ .return ($P1497)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1488" :anon :subid("87_1261064016.27984") :outer("86_1261064016.27984")
-.annotate "line", 439
- new $P1490, "Undef"
- .lex "$a", $P1490
-.annotate "line", 440
- new $P1491, "Undef"
- .lex "$b", $P1491
-.annotate "line", 441
- new $P1492, "Undef"
- .lex "$c", $P1492
-.annotate "line", 439
- find_lex $P1493, "$_"
- unless_null $P1493, vivify_335
- new $P1493, "ResizablePMCArray"
- vivify_335:
- set $P1494, $P1493[0]
- unless_null $P1494, vivify_336
- new $P1494, "Undef"
- vivify_336:
- store_lex "$a", $P1494
-.annotate "line", 440
- find_lex $P1495, "$_"
- unless_null $P1495, vivify_337
- new $P1495, "ResizablePMCArray"
- vivify_337:
- set $P1496, $P1495[1]
- unless_null $P1496, vivify_338
- new $P1496, "ResizablePMCArray"
+.sub "_block1501" :anon :subid("88_1267204695.47543") :outer("87_1267204695.47543")
+.annotate "line", 443
+ new $P1503, "Undef"
+ .lex "$a", $P1503
+.annotate "line", 444
+ new $P1504, "Undef"
+ .lex "$b", $P1504
+.annotate "line", 445
+ new $P1505, "Undef"
+ .lex "$c", $P1505
+.annotate "line", 443
+ find_lex $P1506, "$_"
+ unless_null $P1506, vivify_338
+ $P1506 = root_new ['parrot';'ResizablePMCArray']
vivify_338:
- set $P1497, $P1496[0]
- unless_null $P1497, vivify_339
- new $P1497, "Undef"
+ set $P1507, $P1506[0]
+ unless_null $P1507, vivify_339
+ new $P1507, "Undef"
vivify_339:
- store_lex "$b", $P1497
-.annotate "line", 441
+ store_lex "$a", $P1507
+.annotate "line", 444
+ find_lex $P1508, "$_"
+ unless_null $P1508, vivify_340
+ $P1508 = root_new ['parrot';'ResizablePMCArray']
+ vivify_340:
+ set $P1509, $P1508[1]
+ unless_null $P1509, vivify_341
+ $P1509 = root_new ['parrot';'ResizablePMCArray']
+ vivify_341:
+ set $P1510, $P1509[0]
+ unless_null $P1510, vivify_342
+ new $P1510, "Undef"
+ vivify_342:
+ store_lex "$b", $P1510
+.annotate "line", 445
$P0 = find_lex '$a'
$S0 = $P0
@@ -11646,142 +11683,142 @@
inc $I0
goto cclass_loop
cclass_done:
- $P1498 = box $S2
+ $P1511 = box $S2
- store_lex "$c", $P1498
-.annotate "line", 458
- find_lex $P1499, "$str"
- find_lex $P1500, "$c"
- concat $P1501, $P1499, $P1500
- store_lex "$str", $P1501
-.annotate "line", 438
- .return ($P1501)
+ store_lex "$c", $P1511
+.annotate "line", 462
+ find_lex $P1512, "$str"
+ find_lex $P1513, "$c"
+ concat $P1514, $P1512, $P1513
+ store_lex "$str", $P1514
+.annotate "line", 442
+ .return ($P1514)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1465" :anon :subid("85_1261064016.27984") :outer("84_1261064016.27984")
-.annotate "line", 434
- new $P1467, "Undef"
- .lex "$name", $P1467
- find_lex $P1468, "$/"
- unless_null $P1468, vivify_340
- new $P1468, "Hash"
- vivify_340:
- set $P1469, $P1468["name"]
- unless_null $P1469, vivify_341
- new $P1469, "Undef"
- vivify_341:
- set $S1470, $P1469
- new $P1471, 'String'
- set $P1471, $S1470
- store_lex "$name", $P1471
-.annotate "line", 435
- get_hll_global $P1472, ["PAST"], "Regex"
- find_lex $P1473, "$name"
- find_lex $P1474, "$/"
- $P1475 = $P1472."new"($P1473, "subrule" :named("pasttype"), "method" :named("subtype"), $P1474 :named("node"))
- store_lex "$past", $P1475
-.annotate "line", 433
- .return ($P1475)
+.sub "_block1478" :anon :subid("86_1267204695.47543") :outer("85_1267204695.47543")
+.annotate "line", 438
+ new $P1480, "Undef"
+ .lex "$name", $P1480
+ find_lex $P1481, "$/"
+ unless_null $P1481, vivify_343
+ $P1481 = root_new ['parrot';'Hash']
+ vivify_343:
+ set $P1482, $P1481["name"]
+ unless_null $P1482, vivify_344
+ new $P1482, "Undef"
+ vivify_344:
+ set $S1483, $P1482
+ new $P1484, 'String'
+ set $P1484, $S1483
+ store_lex "$name", $P1484
+.annotate "line", 439
+ get_hll_global $P1485, ["PAST"], "Regex"
+ find_lex $P1486, "$name"
+ find_lex $P1487, "$/"
+ $P1488 = $P1485."new"($P1486, "subrule" :named("pasttype"), "method" :named("subtype"), $P1487 :named("node"))
+ store_lex "$past", $P1488
+.annotate "line", 437
+ .return ($P1488)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal" :subid("88_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1526
-.annotate "line", 468
- new $P1525, 'ExceptionHandler'
- set_addr $P1525, control_1524
- $P1525."handle_types"(58)
- push_eh $P1525
- .lex "self", self
- .lex "$/", param_1526
-.annotate "line", 469
- new $P1527, "Hash"
- .lex "%mods", $P1527
-.annotate "line", 470
- new $P1528, "Undef"
- .lex "$n", $P1528
-.annotate "line", 469
- get_global $P1529, "@MODIFIERS"
- unless_null $P1529, vivify_344
- new $P1529, "ResizablePMCArray"
- vivify_344:
- set $P1530, $P1529[0]
- unless_null $P1530, vivify_345
- new $P1530, "Undef"
- vivify_345:
- store_lex "%mods", $P1530
-.annotate "line", 470
- find_lex $P1533, "$/"
- unless_null $P1533, vivify_346
- new $P1533, "Hash"
- vivify_346:
- set $P1534, $P1533["n"]
- unless_null $P1534, vivify_347
- new $P1534, "ResizablePMCArray"
+.sub "mod_internal" :subid("89_1267204695.47543") :method :outer("11_1267204695.47543")
+ .param pmc param_1539
+.annotate "line", 472
+ new $P1538, 'ExceptionHandler'
+ set_addr $P1538, control_1537
+ $P1538."handle_types"(58)
+ push_eh $P1538
+ .lex "self", self
+ .lex "$/", param_1539
+.annotate "line", 473
+ $P1540 = root_new ['parrot';'Hash']
+ .lex "%mods", $P1540
+.annotate "line", 474
+ new $P1541, "Undef"
+ .lex "$n", $P1541
+.annotate "line", 473
+ get_global $P1542, "@MODIFIERS"
+ unless_null $P1542, vivify_347
+ $P1542 = root_new ['parrot';'ResizablePMCArray']
vivify_347:
- set $P1535, $P1534[0]
- unless_null $P1535, vivify_348
- new $P1535, "Undef"
+ set $P1543, $P1542[0]
+ unless_null $P1543, vivify_348
+ new $P1543, "Undef"
vivify_348:
- set $S1536, $P1535
- isgt $I1537, $S1536, ""
- if $I1537, if_1532
- new $P1542, "Integer"
- assign $P1542, 1
- set $P1531, $P1542
- goto if_1532_end
- if_1532:
- find_lex $P1538, "$/"
- unless_null $P1538, vivify_349
- new $P1538, "Hash"
+ store_lex "%mods", $P1543
+.annotate "line", 474
+ find_lex $P1546, "$/"
+ unless_null $P1546, vivify_349
+ $P1546 = root_new ['parrot';'Hash']
vivify_349:
- set $P1539, $P1538["n"]
- unless_null $P1539, vivify_350
- new $P1539, "ResizablePMCArray"
+ set $P1547, $P1546["n"]
+ unless_null $P1547, vivify_350
+ $P1547 = root_new ['parrot';'ResizablePMCArray']
vivify_350:
- set $P1540, $P1539[0]
- unless_null $P1540, vivify_351
- new $P1540, "Undef"
+ set $P1548, $P1547[0]
+ unless_null $P1548, vivify_351
+ new $P1548, "Undef"
vivify_351:
- set $N1541, $P1540
- new $P1531, 'Float'
- set $P1531, $N1541
- if_1532_end:
- store_lex "$n", $P1531
-.annotate "line", 471
- find_lex $P1543, "$n"
- find_lex $P1544, "$/"
- unless_null $P1544, vivify_352
- new $P1544, "Hash"
+ set $S1549, $P1548
+ isgt $I1550, $S1549, ""
+ if $I1550, if_1545
+ new $P1555, "Integer"
+ assign $P1555, 1
+ set $P1544, $P1555
+ goto if_1545_end
+ if_1545:
+ find_lex $P1551, "$/"
+ unless_null $P1551, vivify_352
+ $P1551 = root_new ['parrot';'Hash']
vivify_352:
- set $P1545, $P1544["mod_ident"]
- unless_null $P1545, vivify_353
- new $P1545, "Hash"
+ set $P1552, $P1551["n"]
+ unless_null $P1552, vivify_353
+ $P1552 = root_new ['parrot';'ResizablePMCArray']
vivify_353:
- set $P1546, $P1545["sym"]
- unless_null $P1546, vivify_354
- new $P1546, "Undef"
+ set $P1553, $P1552[0]
+ unless_null $P1553, vivify_354
+ new $P1553, "Undef"
vivify_354:
- set $S1547, $P1546
- find_lex $P1548, "%mods"
- unless_null $P1548, vivify_355
- new $P1548, "Hash"
- store_lex "%mods", $P1548
+ set $N1554, $P1553
+ new $P1544, 'Float'
+ set $P1544, $N1554
+ if_1545_end:
+ store_lex "$n", $P1544
+.annotate "line", 475
+ find_lex $P1556, "$n"
+ find_lex $P1557, "$/"
+ unless_null $P1557, vivify_355
+ $P1557 = root_new ['parrot';'Hash']
vivify_355:
- set $P1548[$S1547], $P1543
+ set $P1558, $P1557["mod_ident"]
+ unless_null $P1558, vivify_356
+ $P1558 = root_new ['parrot';'Hash']
+ vivify_356:
+ set $P1559, $P1558["sym"]
+ unless_null $P1559, vivify_357
+ new $P1559, "Undef"
+ vivify_357:
+ set $S1560, $P1559
+ find_lex $P1561, "%mods"
+ unless_null $P1561, vivify_358
+ $P1561 = root_new ['parrot';'Hash']
+ store_lex "%mods", $P1561
+ vivify_358:
+ set $P1561[$S1560], $P1556
+.annotate "line", 476
+ find_lex $P1562, "$/"
+ $P1563 = $P1562."!make"(0)
.annotate "line", 472
- find_lex $P1549, "$/"
- $P1550 = $P1549."!make"(0)
-.annotate "line", 468
- .return ($P1550)
- control_1524:
+ .return ($P1563)
+ control_1537:
.local pmc exception
.get_results (exception)
- getattribute $P1551, exception, "payload"
- .return ($P1551)
+ getattribute $P1564, exception, "payload"
+ .return ($P1564)
.end
# .include 'src/cheats/p6regex-grammar.pir'
Modified: branches/ops_pct/include/parrot/atomic/gcc_pcc.h
==============================================================================
--- branches/ops_pct/include/parrot/atomic/gcc_pcc.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/atomic/gcc_pcc.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/* atomic/gcc_pcc.h
- * Copyright (C) 2006-2008, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -23,6 +23,18 @@
# define PARROT_ATOMIC_PTR_SET(a, b) (a).val = (void *) (b)
+/*
+
+=over 4
+
+=item C<inline static void *parrot_ppc_cmpset(void * volatile *ptr, void
+*expect, void *update)>
+
+Generate ppc cmpset
+
+=cut
+
+*/
inline static void *parrot_ppc_cmpset(void * volatile *ptr,
void *expect, void *update)
{
@@ -47,6 +59,18 @@
return tmp;
}
+/*
+
+=item C<inline static long parrot_ppc_add(volatile long *val, long what)>
+
+Generate ppc add
+
+=back
+
+=cut
+
+*/
+
inline static long parrot_ppc_add(volatile long *val, long what)
{
long tmp;
Modified: branches/ops_pct/include/parrot/call.h
==============================================================================
--- branches/ops_pct/include/parrot/call.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/call.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -139,9 +139,6 @@
void destroy_runloop_jump_points(PARROT_INTERP)
__attribute__nonnull__(1);
-void really_destroy_runloop_jump_points(
- ARGIN_NULLOK(Parrot_runloop *jump_point));
-
void runops(PARROT_INTERP, size_t offs)
__attribute__nonnull__(1);
@@ -151,8 +148,6 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_destroy_runloop_jump_points __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_really_destroy_runloop_jump_points \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_runops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
Modified: branches/ops_pct/include/parrot/charset.h
==============================================================================
--- branches/ops_pct/include/parrot/charset.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/charset.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -101,7 +101,8 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_charsets_encodings_deinit(SHIM_INTERP);
+void Parrot_charsets_encodings_deinit(PARROT_INTERP)
+ __attribute__nonnull__(1);
PARROT_EXPORT
void Parrot_charsets_encodings_init(PARROT_INTERP)
@@ -149,20 +150,23 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
PARROT_MALLOC
-CHARSET * Parrot_new_charset(SHIM_INTERP);
+CHARSET * Parrot_new_charset(PARROT_INTERP)
+ __attribute__nonnull__(1);
PARROT_EXPORT
-INTVAL Parrot_register_charset(SHIM_INTERP,
+INTVAL Parrot_register_charset(PARROT_INTERP,
ARGIN(const char *charsetname),
ARGIN(CHARSET *charset))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_register_charset_converter(SHIM_INTERP,
+void Parrot_register_charset_converter(PARROT_INTERP,
ARGIN(const CHARSET *lhs),
ARGIN(CHARSET *rhs),
ARGIN(charset_converter_t func))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
__attribute__nonnull__(4);
@@ -175,7 +179,8 @@
#define ASSERT_ARGS_Parrot_charset_number_of_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_Parrot_charsets_encodings_deinit \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_charsets_encodings_init \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
@@ -191,13 +196,16 @@
, PARROT_ASSERT_ARG(charsetname))
#define ASSERT_ARGS_Parrot_make_default_charset __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(charset))
-#define ASSERT_ARGS_Parrot_new_charset __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_new_charset __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_register_charset __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(charsetname) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(charsetname) \
, PARROT_ASSERT_ARG(charset))
#define ASSERT_ARGS_Parrot_register_charset_converter \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(lhs) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(lhs) \
, PARROT_ASSERT_ARG(rhs) \
, PARROT_ASSERT_ARG(func))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
Modified: branches/ops_pct/include/parrot/context.h
==============================================================================
--- branches/ops_pct/include/parrot/context.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/context.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/* context.h
- * Copyright (C) 2009, Parrot Foundation.
+ * Copyright (C) 2009-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -225,12 +225,6 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
-opcode_t* Parrot_pcc_get_results_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
PMC* Parrot_pcc_get_results_signature_func(PARROT_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -335,13 +329,6 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_results_func(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(opcode_t *pc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
void Parrot_pcc_set_results_signature_func(PARROT_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(PMC *sig))
@@ -465,9 +452,6 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ctx))
-#define ASSERT_ARGS_Parrot_pcc_get_results_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_results_signature_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -523,9 +507,6 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ctx))
-#define ASSERT_ARGS_Parrot_pcc_set_results_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_results_signature_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -567,9 +548,6 @@
# define Parrot_pcc_get_continuation(i, c) (__C(c)->current_cont)
# define Parrot_pcc_set_continuation(i, c, value) (__C(c)->current_cont = (value))
-# define Parrot_pcc_get_results(i, c) (__C(c)->current_results)
-# define Parrot_pcc_set_results(i, c, value) (__C(c)->current_results = (value))
-
# define Parrot_pcc_get_caller_ctx(i, c) (__C(c)->caller_ctx)
# define Parrot_pcc_set_caller_ctx(i, c, value) (__C(c)->caller_ctx = (value))
@@ -634,9 +612,6 @@
# define Parrot_pcc_get_continuation(i, c) Parrot_pcc_get_continuation_func((i), (c))
# define Parrot_pcc_set_continuation(i, c, value) Parrot_pcc_set_continuation_func((i), (c), (value))
-# define Parrot_pcc_get_results(i, c) Parrot_pcc_get_results_func((i), (c))
-# define Parrot_pcc_set_results(i, c, value) Parrot_pcc_set_results_func((i), (c), (value))
-
# define Parrot_pcc_get_caller_ctx(i, c) Parrot_pcc_get_caller_ctx_func((i), (c))
# define Parrot_pcc_set_caller_ctx(i, c, value) Parrot_pcc_set_caller_ctx_func((i), (c), (value))
Modified: branches/ops_pct/include/parrot/debugger.h
==============================================================================
--- branches/ops_pct/include/parrot/debugger.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/debugger.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -214,12 +214,13 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-long PDB_add_label(
+long PDB_add_label(PARROT_INTERP,
ARGMOD(PDB_file_t *file),
ARGIN(const opcode_t *cur_opcode),
opcode_t offset)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*file);
void PDB_assign(PARROT_INTERP, ARGIN(const char *command))
@@ -240,11 +241,6 @@
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
-opcode_t * PDB_compile(PARROT_INTERP, ARGIN(const char *command))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_CAN_RETURN_NULL
PDB_condition_t * PDB_cond(PARROT_INTERP, ARGIN(const char *command))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -256,7 +252,9 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void PDB_delete_condition(SHIM_INTERP, ARGMOD(PDB_breakpoint_t *breakpoint))
+void PDB_delete_condition(PARROT_INTERP,
+ ARGMOD(PDB_breakpoint_t *breakpoint))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*breakpoint);
@@ -289,8 +287,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PARROT_MALLOC
-char * PDB_escape(ARGIN(const char *string), UINTVAL length)
- __attribute__nonnull__(1);
+char * PDB_escape(PARROT_INTERP, ARGIN(const char *string), UINTVAL length)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
void PDB_eval(PARROT_INTERP, ARGIN(const char *command))
__attribute__nonnull__(1)
@@ -303,7 +302,9 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void PDB_free_file(SHIM_INTERP, ARGIN_NULLOK(PDB_file_t *file));
+void PDB_free_file(PARROT_INTERP, ARGIN_NULLOK(PDB_file_t *file))
+ __attribute__nonnull__(1);
+
void PDB_get_command(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -379,7 +380,8 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_add_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(file) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(file) \
, PARROT_ASSERT_ARG(cur_opcode))
#define ASSERT_ARGS_PDB_assign __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -391,9 +393,6 @@
#define ASSERT_ARGS_PDB_check_condition __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(condition))
-#define ASSERT_ARGS_PDB_compile __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_cond __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
@@ -403,7 +402,8 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_delete_condition __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(breakpoint))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(breakpoint))
#define ASSERT_ARGS_PDB_disable_breakpoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
@@ -418,14 +418,16 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_escape __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(string))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(string))
#define ASSERT_ARGS_PDB_eval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_find_breakpoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
-#define ASSERT_ARGS_PDB_free_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_PDB_free_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PDB_get_command __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PDB_hasinstruction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/ops_pct/include/parrot/encoding.h
==============================================================================
--- branches/ops_pct/include/parrot/encoding.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/encoding.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -143,7 +143,8 @@
PARROT_EXPORT
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-ENCODING * Parrot_new_encoding(SHIM_INTERP);
+ENCODING * Parrot_new_encoding(PARROT_INTERP)
+ __attribute__nonnull__(1);
PARROT_EXPORT
INTVAL Parrot_register_encoding(PARROT_INTERP,
@@ -153,7 +154,9 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-void parrot_deinit_encodings(void);
+void parrot_deinit_encodings(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
void Parrot_str_internal_register_encoding_names(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -178,12 +181,14 @@
, PARROT_ASSERT_ARG(encodingname))
#define ASSERT_ARGS_Parrot_make_default_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(encoding))
-#define ASSERT_ARGS_Parrot_new_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_new_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_register_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(encodingname) \
, PARROT_ASSERT_ARG(encoding))
-#define ASSERT_ARGS_parrot_deinit_encodings __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_parrot_deinit_encodings __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_internal_register_encoding_names \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
Deleted: branches/ops_pct/include/parrot/events.h
==============================================================================
--- branches/ops_pct/include/parrot/events.h Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,226 +0,0 @@
-/* events.h
- * Copyright (C) 2001-2008, Parrot Foundation.
- * SVN Info
- * $Id$
- * Overview:
- * This api will handle parrot events
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * References:
- */
-
-#ifndef PARROT_EVENTS_H_GUARD
-#define PARROT_EVENTS_H_GUARD
-
-#include "parrot/compiler.h"
-
-typedef void* (*event_func_t)(Parrot_Interp, void*);
-
-typedef enum {
- EVENT_TYPE_NONE,
- EVENT_TYPE_EVENT,
- EVENT_TYPE_IO,
- EVENT_TYPE_MSG,
- EVENT_TYPE_TIMER,
- EVENT_TYPE_CALL_BACK,
- EVENT_TYPE_SLEEP,
- EVENT_TYPE_TERMINATE,
- EVENT_TYPE_EVENT_TERMINATE,
- EVENT_TYPE_CLASS_CHANGED,
- EVENT_TYPE_SIGNAL,
- EVENT_TYPE_SUSPEND_FOR_GC
-} parrot_event_type_enum;
-
-/*
- * any timer event has 2 time fields in front
- */
-typedef struct parrot_timer_event {
- FLOATVAL abs_time;
- FLOATVAL interval;
- int repeat; /* 0 = once, -1 = forever */
- PMC* sub; /* handler sub */
- PMC* timer; /* a .Timer PMC */
-} parrot_timer_event;
-
-/* TODO export to pasm */
-typedef enum {
- EV_IO_NONE, /* invalidated */
- EV_IO_SELECT_RD, /* rd is ready for read */
- EV_IO_SELECT_WR /* rd is ready for write */
-} parrot_io_event_enum;
-
-typedef struct parrot_io_event {
- parrot_io_event_enum action; /* read, write, ... */
- PMC* pio;
- PMC* handler;
- PMC* user_data;
-} parrot_io_event;
-
-typedef struct _call_back_info {
- PMC* cbi; /* callback info */
- char* external_data;
-} _call_back_info;
-
-typedef struct parrot_event {
- parrot_event_type_enum type;
- Parrot_Interp interp;
- /* event_func_t event_func; unused */
- union {
- STRING* msg; /* for testing only */
- int signal; /* for EVENT_TYPE_SIGNAL */
- parrot_timer_event timer_event; /* for EVENT_TYPE_TIMER */
- _call_back_info call_back; /* CALL_BACKs */
- parrot_io_event io_event; /* EVENT_TYPE_IO */
- } u;
-} parrot_event;
-
-struct QUEUE_ENTRY;
-
-#define CHECK_EVENTS(i, n) (opcode_t *)Parrot_do_check_events((i), (n))
-#define HANDLE_EVENTS(i, n) (opcode_t *)Parrot_do_handle_events((i), 1, (n))
-
-/* HEADERIZER BEGIN: src/events.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-PARROT_EXPORT
-void Parrot_del_timer_event(PARROT_INTERP, ARGIN(const PMC *timer))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-opcode_t * Parrot_do_check_events(PARROT_INTERP,
- ARGIN_NULLOK(opcode_t *next))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-opcode_t * Parrot_do_handle_events(PARROT_INTERP,
- int restore,
- ARGIN_NULLOK(opcode_t *next))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_event_add_io_event(PARROT_INTERP,
- ARGIN_NULLOK(PMC *pio),
- ARGIN_NULLOK(PMC *sub),
- ARGIN_NULLOK(PMC *data),
- INTVAL which)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_init_events(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_init_signals(void);
-
-PARROT_EXPORT
-void Parrot_kill_event_loop(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_new_cb_event(PARROT_INTERP, ARGIN(PMC *cbi), ARGIN(char *ext))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-void Parrot_new_suspend_for_gc_event(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_new_terminate_event(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_new_timer_event(PARROT_INTERP,
- ARGIN_NULLOK(PMC *timer),
- FLOATVAL diff,
- FLOATVAL interval,
- int repeat,
- ARGIN_NULLOK(PMC *sub),
- parrot_event_type_enum typ)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_schedule_event(PARROT_INTERP, ARGMOD(parrot_event* ev))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(* ev);
-
-PARROT_EXPORT
-void Parrot_schedule_interp_qentry(PARROT_INTERP,
- ARGIN(struct QUEUE_ENTRY *entry))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-opcode_t * Parrot_sleep_on_event(PARROT_INTERP,
- FLOATVAL t,
- ARGIN_NULLOK(opcode_t *next))
- __attribute__nonnull__(1);
-
-void Parrot_schedule_broadcast_qentry(ARGIN(struct QUEUE_ENTRY *entry))
- __attribute__nonnull__(1);
-
-#define ASSERT_ARGS_Parrot_del_timer_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(timer))
-#define ASSERT_ARGS_Parrot_do_check_events __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_do_handle_events __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_event_add_io_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_init_events __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_init_signals __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_Parrot_kill_event_loop __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_new_cb_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(cbi) \
- , PARROT_ASSERT_ARG(ext))
-#define ASSERT_ARGS_Parrot_new_suspend_for_gc_event \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_new_terminate_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_new_timer_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_schedule_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ev))
-#define ASSERT_ARGS_Parrot_schedule_interp_qentry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(entry))
-#define ASSERT_ARGS_Parrot_sleep_on_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_schedule_broadcast_qentry \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(entry))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/events.c */
-
-/* &gen_from_enum(io_thr_msg.pasm) */
-typedef enum {
- IO_THR_MSG_NONE,
- IO_THR_MSG_TERMINATE,
- IO_THR_MSG_ADD_SELECT_RD
-} io_thread_msg_type;
-/* &end_gen */
-
-#endif /* PARROT_EVENTS_H_GUARD */
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/ops_pct/include/parrot/extend.h
==============================================================================
--- branches/ops_pct/include/parrot/extend.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/extend.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -62,24 +62,6 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-void * Parrot_call_sub(PARROT_INTERP,
- Parrot_PMC sub_pmc,
- ARGIN(const char *signature),
- ...)
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-Parrot_Int Parrot_call_sub_ret_int(PARROT_INTERP,
- Parrot_PMC sub_pmc,
- ARGIN(const char *signature),
- ...)
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
int Parrot_eprintf(NULLOK_INTERP, ARGIN(const char *s), ...)
__attribute__nonnull__(2);
@@ -412,12 +394,6 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-#define ASSERT_ARGS_Parrot_call_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(signature))
-#define ASSERT_ARGS_Parrot_call_sub_ret_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(signature))
#define ASSERT_ARGS_Parrot_eprintf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_ext_call __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/ops_pct/include/parrot/gc_api.h
==============================================================================
--- branches/ops_pct/include/parrot/gc_api.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/gc_api.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -51,11 +51,11 @@
GC_TRACE_SYSTEM_ONLY = 3
} Parrot_gc_trace_type;
-typedef int (*pool_iter_fn)(PARROT_INTERP, struct Fixed_Size_Pool *, int, void*);
-typedef void (*add_free_object_fn_type)(PARROT_INTERP, struct Fixed_Size_Pool *, void *);
-typedef void * (*get_free_object_fn_type)(PARROT_INTERP, struct Fixed_Size_Pool *);
-typedef void (*alloc_objects_fn_type)(PARROT_INTERP, struct Fixed_Size_Pool *);
-typedef void (*gc_object_fn_type)(PARROT_INTERP, struct Fixed_Size_Pool *, PObj *);
+typedef int (*pool_iter_fn)(PARROT_INTERP, struct Memory_Pools *, struct Fixed_Size_Pool *, int, void*);
+typedef void (*add_free_object_fn_type)(PARROT_INTERP, struct Memory_Pools *, struct Fixed_Size_Pool *, void *);
+typedef void * (*get_free_object_fn_type)(PARROT_INTERP, struct Memory_Pools *, struct Fixed_Size_Pool *);
+typedef void (*alloc_objects_fn_type)(PARROT_INTERP, struct Memory_Pools *, struct Fixed_Size_Pool *);
+typedef void (*gc_object_fn_type)(PARROT_INTERP, struct Memory_Pools *, struct Fixed_Size_Pool *, PObj *);
/* &gen_from_enum(interpinfo.pasm) prefix(INTERPINFO_) */
@@ -85,7 +85,8 @@
/* interpinfo_s constants */
EXECUTABLE_FULLNAME,
EXECUTABLE_BASENAME,
- RUNTIME_PREFIX
+ RUNTIME_PREFIX,
+ GC_SYS_NAME
} Interpinfo_enum;
/* &end_gen */
@@ -108,6 +109,22 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void * Parrot_gc_allocate_memory_chunk(PARROT_INTERP, size_t size)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void * Parrot_gc_allocate_memory_chunk_with_interior_pointers(PARROT_INTERP,
+ size_t size)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void Parrot_gc_free_memory_chunk(PARROT_INTERP, ARGIN_NULLOK(void *data))
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
void Parrot_gc_mark_PMC_alive_fun(PARROT_INTERP, ARGMOD_NULLOK(PMC *obj))
__attribute__nonnull__(1)
FUNC_MODIFIES(*obj);
@@ -125,6 +142,21 @@
FUNC_MODIFIES(*obj);
PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void * Parrot_gc_reallocate_memory_chunk(PARROT_INTERP,
+ ARGFREE(void *data),
+ size_t newsize)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void * Parrot_gc_reallocate_memory_chunk_with_interior_pointers(PARROT_INTERP,
+ ARGFREE(void *data),
+ size_t newsize,
+ size_t oldsize)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
unsigned int Parrot_is_blocked_GC_mark(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -190,11 +222,12 @@
size_t Parrot_gc_count_mark_runs(PARROT_INTERP)
__attribute__nonnull__(1);
-void Parrot_gc_destroy_header_pools(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-void Parrot_gc_destroy_memory_pools(PARROT_INTERP)
- __attribute__nonnull__(1);
+void Parrot_gc_destroy_child_interp(
+ ARGMOD(Interp *dest_interp),
+ ARGIN(Interp *source_interp))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*dest_interp);
void Parrot_gc_finalize(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -233,10 +266,6 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*s);
-int Parrot_gc_get_pmc_index(PARROT_INTERP, ARGIN(PMC* pmc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
size_t Parrot_gc_headers_alloc_since_last_collect(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -253,16 +282,9 @@
size_t Parrot_gc_mem_alloc_since_last_collect(PARROT_INTERP)
__attribute__nonnull__(1);
-void Parrot_gc_merge_header_pools(
- ARGMOD(Interp *dest_interp),
- ARGIN(Interp *source_interp))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*dest_interp);
-
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-void * Parrot_gc_new_bufferlike_header(PARROT_INTERP, size_t size)
+Buffer * Parrot_gc_new_bufferlike_header(PARROT_INTERP, size_t size)
__attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
@@ -280,15 +302,6 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*pmc);
-PARROT_WARN_UNUSED_RESULT
-int Parrot_gc_ptr_in_memory_pool(PARROT_INTERP, ARGIN(void *bufstart))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-int Parrot_gc_ptr_is_pmc(PARROT_INTERP, ARGIN(void *ptr))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
void Parrot_gc_reallocate_buffer_storage(PARROT_INTERP,
ARGMOD(Buffer *buffer),
size_t newsize)
@@ -303,6 +316,10 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*str);
+PARROT_CANNOT_RETURN_NULL
+STRING * Parrot_gc_sys_name(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
UINTVAL Parrot_gc_total_copied(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -319,6 +336,14 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_block_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_gc_allocate_memory_chunk \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_gc_allocate_memory_chunk_with_interior_pointers \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_gc_free_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_gc_mark_PMC_alive_fun __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_gc_mark_PObj_alive __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -327,6 +352,12 @@
#define ASSERT_ARGS_Parrot_gc_mark_STRING_alive_fun \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_gc_reallocate_memory_chunk \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_gc_reallocate_memory_chunk_with_interior_pointers \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_is_blocked_GC_mark __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_is_blocked_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -369,12 +400,10 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_gc_count_mark_runs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_gc_destroy_header_pools \
+#define ASSERT_ARGS_Parrot_gc_destroy_child_interp \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_gc_destroy_memory_pools \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(dest_interp) \
+ , PARROT_ASSERT_ARG(source_interp))
#define ASSERT_ARGS_Parrot_gc_finalize __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_gc_free_bufferlike_header \
@@ -397,9 +426,6 @@
#define ASSERT_ARGS_Parrot_gc_free_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_Parrot_gc_get_pmc_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pmc))
#define ASSERT_ARGS_Parrot_gc_headers_alloc_since_last_collect \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
@@ -413,9 +439,6 @@
#define ASSERT_ARGS_Parrot_gc_mem_alloc_since_last_collect \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_gc_merge_header_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(dest_interp) \
- , PARROT_ASSERT_ARG(source_interp))
#define ASSERT_ARGS_Parrot_gc_new_bufferlike_header \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
@@ -427,12 +450,6 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_Parrot_gc_ptr_in_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(bufstart))
-#define ASSERT_ARGS_Parrot_gc_ptr_is_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ptr))
#define ASSERT_ARGS_Parrot_gc_reallocate_buffer_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -441,6 +458,8 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(str))
+#define ASSERT_ARGS_Parrot_gc_sys_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_gc_total_copied __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_gc_total_memory_allocated \
Modified: branches/ops_pct/include/parrot/hash.h
==============================================================================
--- branches/ops_pct/include/parrot/hash.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/hash.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -113,7 +113,8 @@
FUNC_MODIFIES(*hash);
PARROT_EXPORT
-void parrot_hash_destroy(SHIM_INTERP, ARGMOD(Hash *hash))
+void parrot_hash_destroy(PARROT_INTERP, ARGMOD(Hash *hash))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*hash);
@@ -400,7 +401,8 @@
, PARROT_ASSERT_ARG(hash) \
, PARROT_ASSERT_ARG(key))
#define ASSERT_ARGS_parrot_hash_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(hash))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hash))
#define ASSERT_ARGS_parrot_hash_exists __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash) \
Modified: branches/ops_pct/include/parrot/imcc.h
==============================================================================
--- branches/ops_pct/include/parrot/imcc.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/imcc.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2008, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
* $Id$
*/
@@ -7,7 +7,8 @@
#define PARROT_IMCC_H_GUARD
PARROT_EXPORT void imcc_initialize(PARROT_INTERP);
-PARROT_EXPORT const char * parseflags(PARROT_INTERP, int *argc, char **argv[]);
+PARROT_EXPORT void imcc_start_handling_flags(PARROT_INTERP);
+PARROT_EXPORT int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt, Parrot_Run_core_t *core);
PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, char **argv);
#endif /* PARROT_IMCC_H_GUARD */
Modified: branches/ops_pct/include/parrot/interpreter.h
==============================================================================
--- branches/ops_pct/include/parrot/interpreter.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/interpreter.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/* interpreter.h
- * Copyright (C) 2001-2009, Parrot Foundation.
+ * Copyright (C) 2001-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -164,9 +164,7 @@
size_t n_allocated; /* allocated size of it */
} Prederef;
-/*
- * Get Context from interpeter.
- */
+/* Get Context from interpreter */
#define CONTEXT(interp) Parrot_pcc_get_context_struct((interp), (interp)->ctx)
/*
@@ -387,6 +385,18 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
+Parrot_Interp allocate_interpreter(
+ ARGIN_NULLOK(Interp *parent),
+ INTVAL flags);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+Parrot_Interp initialize_interpreter(PARROT_INTERP, ARGIN(void *stacktop))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
Parrot_Interp make_interpreter(ARGIN_NULLOK(Interp *parent), INTVAL flags);
PARROT_EXPORT
@@ -398,6 +408,10 @@
SHIM(void *arg))
__attribute__nonnull__(1);
+#define ASSERT_ARGS_allocate_interpreter __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_initialize_interpreter __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(stacktop))
#define ASSERT_ARGS_make_interpreter __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_Parrot_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
@@ -592,7 +606,7 @@
#endif /* PARROT_IN_CORE */
#ifndef PMC_IS_NULL
-# define PMC_IS_NULL(pmc) PMC_is_null(NULL, (pmc))
+# define PMC_IS_NULL(pmc) Parrot_pmc_is_null(NULL, (pmc))
#endif
#ifndef STRING_IS_NULL
# define STRING_IS_NULL(s) ((s) == NULL || STRING_is_null(NULL, (s))
Modified: branches/ops_pct/include/parrot/io.h
==============================================================================
--- branches/ops_pct/include/parrot/io.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/io.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -665,7 +665,8 @@
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
-void Parrot_io_clear_buffer(SHIM_INTERP, ARGIN(PMC *filehandle))
+void Parrot_io_clear_buffer(PARROT_INTERP, ARGIN(PMC *filehandle))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
@@ -751,7 +752,8 @@
#define ASSERT_ARGS_Parrot_io_set_os_handle __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(filehandle))
#define ASSERT_ARGS_Parrot_io_clear_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(filehandle))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(filehandle))
#define ASSERT_ARGS_Parrot_io_get_buffer_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(filehandle))
#define ASSERT_ARGS_Parrot_io_get_buffer_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/ops_pct/include/parrot/memory.h
==============================================================================
--- branches/ops_pct/include/parrot/memory.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/memory.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/* memory.h
- * Copyright (C) 2001-2008, Parrot Foundation.
+ * Copyright (C) 2001-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -24,22 +24,39 @@
__FILE__, __LINE__)
#define mem_internal_allocate_zeroed_typed(type) \
(type *)mem__internal_allocate_zeroed(sizeof (type), __FILE__, __LINE__)
+#define mem_internal_allocate_n_zeroed_typed(n, type) \
+ (type *)mem__internal_allocate_zeroed((n) * sizeof (type), __FILE__, __LINE__)
#define mem_internal_realloc(x, y) mem__internal_realloc((x), (y), __FILE__, __LINE__)
#define mem_internal_realloc_zeroed(p, x, y) mem__internal_realloc_zeroed((p), (x), (y), __FILE__, __LINE__)
+#define mem_internal_realloc_n_zeroed_typed(p, x, y, type) (type *)mem__internal_realloc_zeroed((p), (x) * sizeof (type), (y) * sizeof (type), __FILE__, __LINE__)
#define mem_internal_free(x) mem__internal_free((x), __FILE__, __LINE__)
-#define mem_allocate_new_stash() NULL
-#define mem_allocate_new_stack() NULL
#define mem_sys_memcopy memcpy
#define mem_sys_memmove memmove
#define mem_allocate_typed(type) (type *)mem_sys_allocate(sizeof (type))
-#define mem_allocate_n_typed(n, type) (type *)mem_sys_allocate((n) * sizeof(type))
+#define mem_allocate_n_typed(n, type) (type *)mem_sys_allocate((n) * sizeof (type))
#define mem_allocate_zeroed_typed(type) (type *)mem_sys_allocate_zeroed(sizeof (type))
-#define mem_allocate_n_zeroed_typed(n, type) (type *)mem_sys_allocate_zeroed((n) * sizeof(type))
-#define mem_realloc_n_typed(p, n, type) (p) = (type *)mem_sys_realloc((p), (n)*sizeof(type))
-#define mem_copy_n_typed(dest, src, n, type) memcpy((dest), (src), (n)*sizeof(type))
+#define mem_allocate_n_zeroed_typed(n, type) (type *)mem_sys_allocate_zeroed((n) * sizeof (type))
+#define mem_realloc_n_typed(p, n, type) (p) = (type *)mem_sys_realloc((p), (n) * sizeof (type))
+
+#define mem_gc_allocate_typed(i, type) \
+ (type *)Parrot_gc_allocate_memory_chunk((i), sizeof (type))
+#define mem_gc_allocate_n_typed(i, n, type) \
+ (type *)Parrot_gc_allocate_memory_chunk((i), (n) * sizeof (type))
+#define mem_gc_realloc_n_typed(i, p, n, type) \
+ (type *)Parrot_gc_reallocate_memory_chunk((i), (p), (n) * sizeof (type))
+#define mem_gc_allocate_zeroed_typed(i, type) \
+ (type *)Parrot_gc_allocate_memory_chunk_with_interior_pointers((i), sizeof (type))
+#define mem_gc_allocate_n_zeroed_typed(i, n, type) \
+ (type *)Parrot_gc_allocate_memory_chunk_with_interior_pointers((i), (n) * sizeof (type))
+#define mem_gc_realloc_n_typed_zeroed(i, p, n, o, type) \
+ (type *)Parrot_gc_reallocate_memory_chunk_with_interior_pointers((i), (p), (n) * sizeof (type), (o) * sizeof (type))
+#define mem_gc_free(i, p) \
+ Parrot_gc_free_memory_chunk((i), (p))
+
+#define mem_copy_n_typed(dest, src, n, type) memcpy((dest), (src), (n)*sizeof (type))
/* HEADERIZER BEGIN: src/gc/alloc_memory.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
Modified: branches/ops_pct/include/parrot/nci.h
==============================================================================
--- branches/ops_pct/include/parrot/nci.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/nci.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -17,6 +17,10 @@
void *build_call_func(PARROT_INTERP, SHIM(PMC *pmc_nci), NOTNULL(STRING *signature), NOTNULL(int *jitted));
+void Parrot_nci_load_core_thunks(PARROT_INTERP);
+
+void Parrot_nci_load_extra_thunks(PARROT_INTERP);
+
#endif /* PARROT_NCI_H_GUARD */
/*
Modified: branches/ops_pct/include/parrot/oo.h
==============================================================================
--- branches/ops_pct/include/parrot/oo.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/oo.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -164,11 +164,6 @@
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-PMC * Parrot_oo_get_namespace(SHIM_INTERP, ARGIN(const PMC *classobj))
- __attribute__nonnull__(2);
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
PMC * Parrot_oo_newclass_from_str(PARROT_INTERP, ARGIN(STRING *name))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -235,8 +230,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self) \
, PARROT_ASSERT_ARG(ns))
-#define ASSERT_ARGS_Parrot_oo_get_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(classobj))
#define ASSERT_ARGS_Parrot_oo_newclass_from_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
Modified: branches/ops_pct/include/parrot/op.h
==============================================================================
--- branches/ops_pct/include/parrot/op.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/op.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -23,22 +23,22 @@
} op_type_t;
typedef enum {
- PARROT_ARG_IC = PARROT_ARG_INTVAL | PARROT_ARG_CONSTANT,
- PARROT_ARG_NC = PARROT_ARG_FLOATVAL | PARROT_ARG_CONSTANT,
- PARROT_ARG_PC = PARROT_ARG_PMC | PARROT_ARG_CONSTANT,
- PARROT_ARG_SC = PARROT_ARG_STRING | PARROT_ARG_CONSTANT,
- PARROT_ARG_NAME_SC = PARROT_ARG_NAME | PARROT_ARG_STRING | PARROT_ARG_CONSTANT,
-
- PARROT_ARG_KEYED = 0x20,
- PARROT_ARG_KC = PARROT_ARG_PC | PARROT_ARG_KEYED,
- PARROT_ARG_KIC= PARROT_ARG_IC | PARROT_ARG_KEYED,
-
- PARROT_ARG_I = PARROT_ARG_INTVAL,
- PARROT_ARG_N = PARROT_ARG_FLOATVAL,
- PARROT_ARG_P = PARROT_ARG_PMC,
- PARROT_ARG_S = PARROT_ARG_STRING,
- PARROT_ARG_K = PARROT_ARG_P | PARROT_ARG_KEYED,
- PARROT_ARG_KI= PARROT_ARG_I | PARROT_ARG_KEYED
+ PARROT_ARG_IC = PARROT_ARG_INTVAL | PARROT_ARG_CONSTANT,
+ PARROT_ARG_NC = PARROT_ARG_FLOATVAL | PARROT_ARG_CONSTANT,
+ PARROT_ARG_PC = PARROT_ARG_PMC | PARROT_ARG_CONSTANT,
+ PARROT_ARG_SC = PARROT_ARG_STRING | PARROT_ARG_CONSTANT,
+ PARROT_ARG_NAME_SC = PARROT_ARG_NAME | PARROT_ARG_STRING | PARROT_ARG_CONSTANT,
+
+ PARROT_ARG_KEYED = 0x20,
+ PARROT_ARG_KC = PARROT_ARG_PC | PARROT_ARG_KEYED,
+ PARROT_ARG_KIC = PARROT_ARG_IC | PARROT_ARG_KEYED,
+
+ PARROT_ARG_I = PARROT_ARG_INTVAL,
+ PARROT_ARG_N = PARROT_ARG_FLOATVAL,
+ PARROT_ARG_P = PARROT_ARG_PMC,
+ PARROT_ARG_S = PARROT_ARG_STRING,
+ PARROT_ARG_K = PARROT_ARG_P | PARROT_ARG_KEYED,
+ PARROT_ARG_KI = PARROT_ARG_I | PARROT_ARG_KEYED
} arg_type_t;
typedef enum {
@@ -51,13 +51,7 @@
/* See lib/Parrot/OpsFile.pm if the names of these values change */
typedef enum {
- PARROT_JUMP_RELATIVE = 1,
- PARROT_JUMP_ADDRESS = 2,
- PARROT_JUMP_POP = 4,
- PARROT_JUMP_ENEXT = 8,
- PARROT_JUMP_GNEXT = 16,
- PARROT_JUMP_UNPREDICTABLE = 32,
- PARROT_JUMP_RESTART = 64
+ PARROT_JUMP_RELATIVE = 1
} op_jump_t;
/* NOTE: Sure wish we could put the types here... */
@@ -74,16 +68,14 @@
*/
typedef struct op_info_t {
- /* op_type_t type; unused */
- const char *name;
- const char *full_name;
- const char *func_name;
- /* const char *body; unused */
- unsigned short jump; /* s. above */
- short op_count; /* Includes opcode as one arg */
- char types[PARROT_MAX_ARGS]; /* arg_type_t, 0 = 1st arg */
- char dirs[PARROT_MAX_ARGS]; /* arg_dir_t 0 = 1st arg */
- char labels[PARROT_MAX_ARGS]; /* 0/1 0 = 1st arg */
+ const char *name;
+ const char *full_name;
+ const char *func_name;
+ unsigned short jump;
+ short op_count; /* Includes opcode as one arg */
+ arg_type_t types[PARROT_MAX_ARGS]; /* arg_type_t, 0 = 1st arg */
+ arg_dir_t dirs[PARROT_MAX_ARGS]; /* arg_dir_t 0 = 1st arg */
+ char labels[PARROT_MAX_ARGS]; /* 0/1 0 = 1st arg */
} op_info_t;
Modified: branches/ops_pct/include/parrot/oplib.h
==============================================================================
--- branches/ops_pct/include/parrot/oplib.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/oplib.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -32,7 +32,7 @@
size_t op_count;
op_info_t * op_info_table;
op_func_t * op_func_table;
- int (*op_code)(const char * name, int full);
+ int (*op_code)(PARROT_INTERP, const char * name, int full);
} op_lib_t;
typedef enum {
@@ -41,7 +41,7 @@
} op_lib_flags_enum;
/* when init = true initialize, else de_initialize */
-typedef op_lib_t *(*oplib_init_f)(long init);
+typedef op_lib_t *(*oplib_init_f)(PARROT_INTERP, long init);
/* core.ops special opcode numbers */
typedef enum {
Modified: branches/ops_pct/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/ops_pct/include/parrot/oplib/core_ops.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/oplib/core_ops.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -14,7 +14,7 @@
#include "parrot/parrot.h"
#include "parrot/oplib.h"
- op_lib_t *Parrot_DynOp_core_2_0_0(long init);
+ op_lib_t *Parrot_DynOp_core_2_1_0(PARROT_INTERP, long init);
opcode_t * Parrot_end (opcode_t *, PARROT_INTERP);
opcode_t * Parrot_noop (opcode_t *, PARROT_INTERP);
@@ -22,8 +22,6 @@
opcode_t * Parrot_check_events (opcode_t *, PARROT_INTERP);
opcode_t * Parrot_check_events__ (opcode_t *, PARROT_INTERP);
opcode_t * Parrot_wrapper__ (opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_prederef__ (opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_reserved_ic (opcode_t *, PARROT_INTERP);
opcode_t * Parrot_load_bytecode_s (opcode_t *, PARROT_INTERP);
opcode_t * Parrot_load_bytecode_sc (opcode_t *, PARROT_INTERP);
opcode_t * Parrot_load_language_s (opcode_t *, PARROT_INTERP);
Modified: branches/ops_pct/include/parrot/packfile.h
==============================================================================
--- branches/ops_pct/include/parrot/packfile.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/packfile.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -451,9 +451,10 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-void PackFile_add_segment(SHIM_INTERP,
+void PackFile_add_segment(PARROT_INTERP,
ARGMOD(PackFile_Directory *dir),
ARGIN(PackFile_Segment *seg))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
FUNC_MODIFIES(*dir);
@@ -470,28 +471,32 @@
FUNC_MODIFIES(*self);
PARROT_EXPORT
-void PackFile_Annotations_add_group(SHIM_INTERP,
+void PackFile_Annotations_add_group(PARROT_INTERP,
ARGMOD(PackFile_Annotations *self),
opcode_t offset)
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*self);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-PackFile_Segment * PackFile_Annotations_new(SHIM_INTERP,
+PackFile_Segment * PackFile_Annotations_new(PARROT_INTERP,
SHIM(struct PackFile *pf),
SHIM(STRING *name),
- NULLOK(int add));
+ NULLOK(int add))
+ __attribute__nonnull__(1);
PARROT_EXPORT
-void PackFile_Constant_destroy(SHIM_INTERP,
+void PackFile_Constant_destroy(PARROT_INTERP,
ARGMOD_NULLOK(PackFile_Constant *self))
+ __attribute__nonnull__(1)
FUNC_MODIFIES(*self);
PARROT_EXPORT
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-PackFile_Constant * PackFile_Constant_new(SHIM_INTERP);
+PackFile_Constant * PackFile_Constant_new(PARROT_INTERP)
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -655,10 +660,11 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-PackFile_Segment * PackFile_Segment_new(SHIM_INTERP,
+PackFile_Segment * PackFile_Segment_new(PARROT_INTERP,
SHIM(PackFile *pf),
SHIM(STRING *name),
- NULLOK(int add));
+ NULLOK(int add))
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -781,8 +787,9 @@
void mark_const_subs(PARROT_INTERP)
__attribute__nonnull__(1);
-void PackFile_Annotations_destroy(SHIM_INTERP,
+void PackFile_Annotations_destroy(PARROT_INTERP,
ARGMOD(PackFile_Segment *seg))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*seg);
@@ -830,7 +837,8 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_PackFile_add_segment __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(dir) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(dir) \
, PARROT_ASSERT_ARG(seg))
#define ASSERT_ARGS_PackFile_Annotations_add_entry \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -838,10 +846,14 @@
, PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_PackFile_Annotations_add_group \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(self))
-#define ASSERT_ARGS_PackFile_Annotations_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_PackFile_Constant_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_PackFile_Constant_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(self))
+#define ASSERT_ARGS_PackFile_Annotations_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_PackFile_Constant_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_PackFile_Constant_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PackFile_Constant_pack_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
@@ -904,7 +916,8 @@
#define ASSERT_ARGS_PackFile_Segment_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
-#define ASSERT_ARGS_PackFile_Segment_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_PackFile_Segment_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PackFile_Segment_new_seg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(dir) \
@@ -954,7 +967,8 @@
#define ASSERT_ARGS_mark_const_subs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PackFile_Annotations_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(seg))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(seg))
#define ASSERT_ARGS_PackFile_Annotations_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(seg))
@@ -1025,9 +1039,12 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-char * PF_fetch_cstring(ARGIN(PackFile *pf), ARGIN(const opcode_t **cursor))
+char * PF_fetch_cstring(PARROT_INTERP,
+ ARGIN(PackFile *pf),
+ ARGIN(const opcode_t **cursor))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
INTVAL PF_fetch_integer(
@@ -1074,6 +1091,9 @@
size_t PF_size_string(ARGIN(const STRING *s))
__attribute__nonnull__(1);
+PARROT_PURE_FUNCTION
+size_t PF_size_strlen(const UINTVAL len);
+
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
opcode_t* PF_store_cstring(ARGOUT(opcode_t *cursor), ARGIN(const char *s))
@@ -1112,7 +1132,8 @@
#define ASSERT_ARGS_PackFile_assign_transforms __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pf))
#define ASSERT_ARGS_PF_fetch_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pf) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pf) \
, PARROT_ASSERT_ARG(cursor))
#define ASSERT_ARGS_PF_fetch_integer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(stream))
@@ -1130,6 +1151,7 @@
#define ASSERT_ARGS_PF_size_opcode __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_PF_size_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s))
+#define ASSERT_ARGS_PF_size_strlen __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_PF_store_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(cursor) \
, PARROT_ASSERT_ARG(s))
Modified: branches/ops_pct/include/parrot/parrot.h
==============================================================================
--- branches/ops_pct/include/parrot/parrot.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/parrot.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -269,7 +269,6 @@
#include "parrot/io.h"
#include "parrot/op.h"
#include "parrot/pmc.h"
-#include "parrot/events.h"
#include "parrot/gc_api.h"
#include "parrot/string_funcs.h"
#include "parrot/misc.h"
@@ -280,7 +279,6 @@
#include "parrot/nci.h"
#include "parrot/thread.h"
#include "parrot/scheduler.h"
-#include "parrot/tsq.h"
#include "parrot/longopt.h"
#include "parrot/oo.h"
#include "parrot/vtables.h"
Modified: branches/ops_pct/include/parrot/pmc.h
==============================================================================
--- branches/ops_pct/include/parrot/pmc.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/pmc.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -23,72 +23,84 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PMC * constant_pmc_new(PARROT_INTERP, INTVAL base_type)
+void Parrot_pmc_create_mro(PARROT_INTERP, INTVAL type)
__attribute__nonnull__(1);
PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PMC * constant_pmc_new_init(PARROT_INTERP,
- INTVAL base_type,
- ARGIN_NULLOK(PMC *init))
- __attribute__nonnull__(1);
+void Parrot_pmc_destroy(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PMC * constant_pmc_new_noinit(PARROT_INTERP, INTVAL base_type)
- __attribute__nonnull__(1);
+void Parrot_pmc_gc_register(PARROT_INTERP, ARGIN(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_EXPORT
-void gc_register_pmc(PARROT_INTERP, ARGIN(PMC *pmc))
+void Parrot_pmc_gc_unregister(PARROT_INTERP, ARGIN(PMC *pmc))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void gc_unregister_pmc(PARROT_INTERP, ARGIN(PMC *pmc))
+INTVAL Parrot_pmc_get_type(PARROT_INTERP, ARGIN(PMC *name))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_create_mro(PARROT_INTERP, INTVAL type)
+PARROT_WARN_UNUSED_RESULT
+INTVAL Parrot_pmc_get_type_str(PARROT_INTERP, ARGIN_NULLOK(STRING *name))
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_pmc_destroy(PARROT_INTERP, ARGMOD(PMC *pmc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*pmc);
+INTVAL Parrot_pmc_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc));
PARROT_EXPORT
-INTVAL PMC_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc));
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PMC * Parrot_pmc_new(PARROT_INTERP, INTVAL base_type)
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-PMC * pmc_new(PARROT_INTERP, INTVAL base_type)
+PMC * Parrot_pmc_new_constant(PARROT_INTERP, INTVAL base_type)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PMC * Parrot_pmc_new_constant_init(PARROT_INTERP,
+ INTVAL base_type,
+ ARGIN_NULLOK(PMC *init))
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PMC * Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-PMC * pmc_new_init(PARROT_INTERP, INTVAL base_type, ARGOUT(PMC *init))
+PMC * Parrot_pmc_new_init(PARROT_INTERP,
+ INTVAL base_type,
+ ARGOUT(PMC *init))
__attribute__nonnull__(1)
__attribute__nonnull__(3)
FUNC_MODIFIES(*init);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-PMC * pmc_new_noinit(PARROT_INTERP, INTVAL base_type)
+PMC * Parrot_pmc_new_noinit(PARROT_INTERP, INTVAL base_type)
__attribute__nonnull__(1);
PARROT_EXPORT
-INTVAL pmc_register(PARROT_INTERP, ARGIN(STRING *name))
+INTVAL Parrot_pmc_register_new_type(PARROT_INTERP, ARGIN(STRING *name))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
-PMC * pmc_reuse(PARROT_INTERP,
+PMC * Parrot_pmc_reuse(PARROT_INTERP,
ARGIN(PMC *pmc),
INTVAL new_type,
UINTVAL flags)
@@ -98,7 +110,7 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
-PMC * pmc_reuse_by_class(PARROT_INTERP,
+PMC * Parrot_pmc_reuse_by_class(PARROT_INTERP,
ARGMOD(PMC *pmc),
ARGIN(PMC *class_),
UINTVAL flags)
@@ -110,7 +122,7 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
-PMC * pmc_reuse_init(PARROT_INTERP,
+PMC * Parrot_pmc_reuse_init(PARROT_INTERP,
ARGIN(PMC *pmc),
INTVAL new_type,
ARGIN(PMC *init),
@@ -119,82 +131,92 @@
__attribute__nonnull__(2)
__attribute__nonnull__(4);
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-INTVAL pmc_type(PARROT_INTERP, ARGIN_NULLOK(STRING *name))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-INTVAL pmc_type_p(PARROT_INTERP, ARGIN(PMC *name))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-INTVAL get_new_vtable_index(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-void temporary_pmc_free(PARROT_INTERP, ARGMOD(PMC *pmc))
+void Parrot_pmc_free_temporary(PARROT_INTERP, ARGMOD(PMC *pmc))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*pmc);
+INTVAL Parrot_pmc_get_new_vtable_index(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
PARROT_CANNOT_RETURN_NULL
-PMC * temporary_pmc_new(PARROT_INTERP, INTVAL base_type)
+PMC * Parrot_pmc_new_temporary(PARROT_INTERP, INTVAL base_type)
__attribute__nonnull__(1);
-#define ASSERT_ARGS_constant_pmc_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_constant_pmc_new_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_constant_pmc_new_noinit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_create_mro __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_gc_register_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_gc_unregister_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_gc_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_Parrot_create_mro __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_pmc_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_gc_unregister __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_PMC_is_null __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_pmc_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_get_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_Parrot_pmc_get_type_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_pmc_is_null __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_pmc_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_pmc_new_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_pmc_new_constant_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_pmc_new_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_new_constant_noinit \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_pmc_new_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(init))
-#define ASSERT_ARGS_pmc_new_noinit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_new_noinit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_pmc_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_register_new_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_pmc_reuse __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_reuse __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_pmc_reuse_by_class __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_reuse_by_class __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc) \
, PARROT_ASSERT_ARG(class_))
-#define ASSERT_ARGS_pmc_reuse_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_reuse_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc) \
, PARROT_ASSERT_ARG(init))
-#define ASSERT_ARGS_pmc_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_pmc_type_p __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_get_new_vtable_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_temporary_pmc_free __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_free_temporary __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_temporary_pmc_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_get_new_vtable_index \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_pmc_new_temporary __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/pmc.c */
+/* Allows compatibility with old name (see r44190) */
+#define Parrot_create_mro Parrot_pmc_create_mro
+#define PMC_is_null Parrot_pmc_is_null
+#define constant_pmc_new Parrot_pmc_new_constant
+#define constant_pmc_new_init Parrot_pmc_new_constant_init
+#define gc_register_pmc Parrot_pmc_gc_register
+#define gc_unregister_pmc Parrot_pmc_gc_unregister
+#define pmc_new Parrot_pmc_new
+#define pmc_new_init Parrot_pmc_new_init
+#define pmc_new_noinit Parrot_pmc_new_noinit
+#define pmc_register Parrot_pmc_register_new_type
+#define pmc_reuse Parrot_pmc_reuse
+#define pmc_reuse_by_class Parrot_pmc_reuse_by_class
+#define pmc_reuse_init Parrot_pmc_reuse_init
+#define pmc_reuse_no_init Parrot_pmc_reuse_noinit
+#define pmc_type Parrot_pmc_get_type_str
+#define pmc_type_p Parrot_pmc_get_type
+
#endif /* PARROT_PMC_H_GUARD */
/*
Modified: branches/ops_pct/include/parrot/pmc_freeze.h
==============================================================================
--- branches/ops_pct/include/parrot/pmc_freeze.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/pmc_freeze.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -13,9 +13,6 @@
#ifndef PARROT_PMC_FREEZE_H_GUARD
#define PARROT_PMC_FREEZE_H_GUARD
-struct _visit_info;
-typedef void (*visit_f)(PARROT_INTERP, ARGIN_NULLOK(PMC*), ARGIN(PMC*));
-
typedef enum {
VISIT_HOW_PMC_TO_VISITOR = 0x00, /* push to visitor */
VISIT_HOW_VISITOR_TO_PMC = 0x01, /* shift from visitor */
@@ -124,6 +121,13 @@
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
PMC* Parrot_thaw(PARROT_INTERP, ARGIN(STRING *image))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -135,18 +139,35 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+void Parrot_visit_loop_thawfinish(PARROT_INTERP, ARGIN(PMC *info))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void Parrot_visit_loop_visit(PARROT_INTERP, ARGIN(PMC *info))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
#define ASSERT_ARGS_Parrot_clone __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
#define ASSERT_ARGS_Parrot_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_Parrot_freeze_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pmc))
#define ASSERT_ARGS_Parrot_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(image))
#define ASSERT_ARGS_Parrot_thaw_constants __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(image))
+#define ASSERT_ARGS_Parrot_visit_loop_thawfinish __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(info))
+#define ASSERT_ARGS_Parrot_visit_loop_visit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(info))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/pmc_freeze.c */
Modified: branches/ops_pct/include/parrot/pobj.h
==============================================================================
--- branches/ops_pct/include/parrot/pobj.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/pobj.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -331,15 +331,6 @@
| ~PObj_custom_mark_FLAG \
| ~PObj_live_FLAG)
-/*******************************************************
- * DEPRECATED -- use PObj_custom_destroy_FOO() instead *
- *******************************************************/
-#define PObj_active_destroy_FLAG PObj_custom_destroy_FLAG
-#define PObj_active_destroy_SET(o) PObj_flag_SET(custom_destroy, o)
-#define PObj_active_destroy_TEST(o) PObj_flag_TEST(custom_destroy, o)
-#define PObj_active_destroy_CLEAR(o) PObj_flag_CLEAR(custom_destroy, o)
-
-
#endif /* PARROT_POBJ_H_GUARD */
/*
Modified: branches/ops_pct/include/parrot/runcore_api.h
==============================================================================
--- branches/ops_pct/include/parrot/runcore_api.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/runcore_api.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -97,14 +97,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void do_prederef(
- ARGIN(void **pc_prederef),
- PARROT_INTERP,
- ARGIN(Parrot_runcore_t *runcore))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
void dynop_register(PARROT_INTERP, ARGIN(PMC *lib_pmc))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -134,10 +126,6 @@
#define ASSERT_ARGS_Parrot_runcore_switch __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_do_prederef __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pc_prederef) \
- , PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore))
#define ASSERT_ARGS_dynop_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(lib_pmc))
Modified: branches/ops_pct/include/parrot/runcore_profiling.h
==============================================================================
--- branches/ops_pct/include/parrot/runcore_profiling.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/include/parrot/runcore_profiling.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -40,7 +40,7 @@
PPROF_LINE_END_OF_RUNLOOP
} Parrot_profiling_line;
-typedef void (*profiling_output_fn)(ARGIN(Parrot_profiling_runcore_t*), ARGIN_NULLOK(Parrot_profiling_line));
+typedef void (*profiling_output_fn)(ARGIN(Parrot_profiling_runcore_t*), ARGIN(PPROF_DATA*), ARGIN_NULLOK(Parrot_profiling_line));
typedef profiling_output_fn Parrot_profiling_output_fn;
typedef enum Parrot_profiling_datatype {
@@ -92,7 +92,6 @@
UINTVAL time_size; /* how big is the following array */
UHUGEINTVAL *time; /* time spent between DO_OP and start/end of a runcore */
Hash *line_cache; /* hash for caching pc -> line mapping */
- PPROF_DATA pprof_data[PPROF_DATA_MAX+1]; /* array for storage of one line of profiling data */
};
#define Profiling_flag_SET(runcore, flag) \
Deleted: branches/ops_pct/include/parrot/tsq.h
==============================================================================
--- branches/ops_pct/include/parrot/tsq.h Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,167 +0,0 @@
-/* tsq.h
- * Copyright (C) 2001-2007, Parrot Foundation.
- * SVN Info
- * $Id$
- * Overview:
- * Defines the thread-safe queue system
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * References:
- */
-
-#ifndef PARROT_TSQ_H_GUARD
-#define PARROT_TSQ_H_GUARD
-
-#include "parrot/config.h"
-#include "parrot/thread.h"
-
-
-typedef struct QUEUE_ENTRY QUEUE_ENTRY;
-typedef struct QUEUE QUEUE;
-
-typedef enum {
- QUEUE_ENTRY_TYPE_NONE,
- QUEUE_ENTRY_TYPE_EVENT,
- QUEUE_ENTRY_TYPE_TIMED_EVENT
-} queue_entry_type_enum;
-
-struct QUEUE_ENTRY {
- void *data;
- queue_entry_type_enum type;
- QUEUE_ENTRY *next;
-};
-
-struct QUEUE {
- QUEUE_ENTRY *head;
- QUEUE_ENTRY *tail;
- UINTVAL max_prio;
- Parrot_mutex queue_mutex;
- Parrot_cond queue_condition;
-};
-
-/* HEADERIZER BEGIN: src/tsq.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-void insert_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*queue);
-
-void nosync_insert_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*queue);
-
-PARROT_CANNOT_RETURN_NULL
-QUEUE_ENTRY * nosync_pop_entry(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-QUEUE_ENTRY * peek_entry(ARGIN(const QUEUE *queue))
- __attribute__nonnull__(1);
-
-PARROT_CAN_RETURN_NULL
-QUEUE_ENTRY * pop_entry(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-void push_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*queue);
-
-void queue_broadcast(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-void queue_destroy(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-PARROT_CAN_RETURN_NULL
-PARROT_MALLOC
-QUEUE* queue_init(UINTVAL prio);
-
-void queue_lock(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-void queue_signal(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-void queue_timedwait(
- ARGMOD(QUEUE *queue),
- ARGIN(const struct timespec *abs_time))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*queue);
-
-void queue_unlock(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-void queue_wait(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-void unshift_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*queue);
-
-PARROT_CAN_RETURN_NULL
-QUEUE_ENTRY * wait_for_entry(ARGMOD(QUEUE *queue))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*queue);
-
-#define ASSERT_ARGS_insert_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue) \
- , PARROT_ASSERT_ARG(entry))
-#define ASSERT_ARGS_nosync_insert_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue) \
- , PARROT_ASSERT_ARG(entry))
-#define ASSERT_ARGS_nosync_pop_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_peek_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_pop_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_push_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue) \
- , PARROT_ASSERT_ARG(entry))
-#define ASSERT_ARGS_queue_broadcast __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_queue_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_queue_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_queue_lock __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_queue_signal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_queue_timedwait __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue) \
- , PARROT_ASSERT_ARG(abs_time))
-#define ASSERT_ARGS_queue_unlock __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_queue_wait __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-#define ASSERT_ARGS_unshift_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue) \
- , PARROT_ASSERT_ARG(entry))
-#define ASSERT_ARGS_wait_for_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(queue))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/tsq.c */
-
-#endif /* PARROT_TSQ_H_GUARD */
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/ops_pct/lib/Parrot/Configure/Compiler.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Configure/Compiler.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Configure/Compiler.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -197,10 +197,15 @@
$conf->genfile($source, $target, %options);
-Takes the specified source file, replacing entries like C<@FOO@> with
-C<FOO>'s value from the configuration system's data, and writes the results
+Takes the specified source file, replacing entries like C<@key@> with
+C<key>'s value from the configuration system's data, and writes the results
to specified target file.
+If a C<::> is present in the C<@key@>, the replaced value will first try to
+use the full key, but if that is not present, the key up to the C<::> is used.
+For example, if C<@cc_warn::src/embed.c@> is used, and that key doesn't
+exist, the fallback key would be C<@cc_warn@>.
+
Respects the following options when manipulating files (Note: most of the
replacement syntax assumes the source text is on a single line.)
@@ -210,8 +215,8 @@
If set to a C<makefile>, C<c> or C<perl> value, C<comment_type> will be set
to corresponding value.
-Moreover, when set to a C<makefile> value, it will set C<replace_slashes> to
-enabled, and C<conditioned_lines> to enabled.
+Moreover, when set to a C<makefile> value, it will enable
+C<conditioned_lines>.
Its value will be detected automatically by target file name unless you set
it to a special value C<none>.
@@ -270,11 +275,6 @@
will be used on "win32" and if "glut" is defined, but not on "cygwin".
-B<Legacy Syntax:>
-
-The old syntax #CONDITIONED_LINE(var): and
-#INVERSE_CONDITIONED_LINE(var): is still supported, but is deprecated.
-
=item comment_type
This option takes has two possible values, C<#> or C</*>. If present and
@@ -294,12 +294,6 @@
this evaluation occurs, any substitution of @@ values is performed on the
original text.
-=item replace_slashes
-
-If set to a true value, this causes any C</>s in the file to automatically
-be replaced with an architecture appropriate slash. C</> or C<\>. This is
-a very helpful option when writing Makefiles.
-
=item expand_gmake_syntax
If set to a true value, then certain types of I<gmake> syntax will be expanded
@@ -350,7 +344,7 @@
open my $out, '>', "$target.tmp" or die "Can't open $target.tmp: $!";
if ( !exists $options{file_type}) {
- if ( $target =~ m/makefile$/i ) {
+ if ( $target =~ m/makefile$/i || $target =~ m/\.mak/) {
$options{file_type} = 'makefile';
}
elsif ($target =~ m/\.p[lm]$/i ) {
@@ -378,7 +372,6 @@
$file_types_info{$options{file_type}}{comment_type};
}
if ( $options{file_type} eq 'makefile' ) {
- $options{replace_slashes} = 1;
$options{conditioned_lines} = 1;
}
}
@@ -461,16 +454,6 @@
next LINE if $former_truth;
$line = $1;
}
- # Legacy, DEPRECATED.
- elsif (($expr,$rest)=($line =~ m/^#CONDITIONED_LINE\(([^)]+)\):(.*)/s)) {
- next LINE unless cond_eval($conf, $expr);
- $line = $rest;
- }
- elsif (($expr,$rest)=($line =~ m/^#INVERSE_CONDITIONED_LINE\(([^)]+)\):(.*)/s )) {
- next LINE if cond_eval($conf, $expr);
- $line = $rest;
- }
-
else { # reset
$former_truth = -1; # ELSE must immediately follow a conditional.
}
@@ -539,29 +522,29 @@
# interpolate @foo@ values
$line =~ s{ \@ (\w+) \@ }{
if(defined(my $val=$conf->data->get($1))) {
- #use Data::Dumper;warn Dumper("val for $1 is ",$val);
$val;
}
else {
- warn "value for '$1' in $source is undef";
+ warn "value for '\@$1\@' in $source is undef";
'';
}
}egx;
- if ( $options{replace_slashes} ) {
- if ( $line =~ m{/$} ) {
- croak "$source:$.: line ends in a slash\n";
+ # interpolate @foo::bar@ values
+ $line =~ s{ \@ (\w+) :: ([^\@]+) \@ }{
+ my $full = $1 . '::' . $2;
+ my $base = $1;
+ if(defined(my $val=$conf->data->get($full))) {
+ $val;
}
-
- $line =~ s{(/+)}{
- my $len = length $1;
- my $slash = $conf->data->get('slash');
- '/' x ($len/2) . ($len%2 ? $slash : '');
- }eg;
-
- # replace \* with \\*, so make will not eat the \
- $line =~ s{(\\\*)}{\\$1}g;
- }
+ elsif(defined($val=$conf->data->get($base))) {
+ $val;
+ }
+ else {
+ warn "value for '\@$full\@' in $source is undef, no fallback";
+ '';
+ }
+ }egx;
print $out $line;
}
@@ -620,8 +603,6 @@
}
}
-sub truth { $_[0] ? "true" : "false"; }
-
# Recursively evaluate boolean expressions with multiple keys and | & ! ops.
# Order of precedence: Just "!" and "NOT" binds tighter than AND and OR.
# There's no precedence for AND over OR defined, just left to right.
Modified: branches/ops_pct/lib/Parrot/Configure/Messages.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Configure/Messages.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Configure/Messages.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
package Parrot::Configure::Messages;
@@ -17,7 +17,7 @@
my $parrot_version = shift;
print <<"END";
Parrot Version $parrot_version Configure 2.0
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you passed in
Modified: branches/ops_pct/lib/Parrot/Configure/Step/List.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Configure/Step/List.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Configure/Step/List.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
package Parrot::Configure::Step::List;
use strict;
@@ -23,6 +23,8 @@
auto::msvc
auto::attributes
auto::warnings
+ auto::arch
+ auto::cpu
init::optimize
inter::shlibs
inter::libparrot
@@ -37,10 +39,8 @@
auto::va_ptr
auto::format
auto::isreg
- auto::arch
auto::jit
auto::frames
- auto::cpu
auto::cgoto
auto::inline
auto::gc
@@ -67,7 +67,6 @@
gen::core_pmcs
gen::crypto
gen::opengl
- gen::call_list
gen::makefiles
gen::platform
gen::config_pm
Modified: branches/ops_pct/lib/Parrot/Distribution.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Distribution.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Distribution.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -537,7 +537,7 @@
# test files (.t) might need testing.
# ignore everything else.
- return 0 unless $filename !~ /\.t$/;
+ return 0 if $filename !~ /\.t$/;
# Now let's check to see if there's a perl shebang.
@@ -608,7 +608,7 @@
# test files (.t) files might need testing.
# ignore everything else.
- return 0 unless $filename !~ /\.t$/;
+ return 0 if $filename !~ /\.t$/;
# Now let's check to see if there's a plain parrot shebang.
open my $file_handle, '<', $filename
Modified: branches/ops_pct/lib/Parrot/Docs/File.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Docs/File.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Docs/File.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -109,7 +109,6 @@
my %type_for_name = (
'Artistic' => 'Licence file',
'BUGS' => 'Project info',
- 'CFLAGS' => 'CFLAGS file',
'ChangeLog' => 'Project info',
'Changes' => 'Project info',
'CREDITS' => 'Project info',
Modified: branches/ops_pct/lib/Parrot/Docs/Section/C.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Docs/Section/C.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Docs/Section/C.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -218,11 +218,10 @@
'Threads', '',
$self->c_pair_item( '', 'thread' ),
$self->c_header_item( '', 'thr_pthread' ),
- $self->c_pair_item( '', 'tsq' ),
),
$self->new_group(
'Exceptions', '',
- $self->c_pair_item( '', 'exceptions' ), $self->c_pair_item( '', 'events' ),
+ $self->c_pair_item( '', 'exceptions' )
),
$self->new_group(
'Memory', '',
Modified: branches/ops_pct/lib/Parrot/Docs/Section/Tools.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Docs/Section/Tools.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Docs/Section/Tools.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -45,8 +45,6 @@
'Configuration',
'',
$self->new_item( '', 'tools/dev/as2c.pl' ),
- $self->new_item( '', 'tools/build/cc_flags.pl' ),
- $self->new_item( '', 'tools/build/nativecall.pl' ),
$self->new_item( '', 'tools/build/vtable_h.pl' ),
$self->new_item( '', 'tools/build/vtable_extend.pl' ),
),
Modified: branches/ops_pct/lib/Parrot/Harness/DefaultTests.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Harness/DefaultTests.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Harness/DefaultTests.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -72,8 +72,8 @@
# core tests are run unless --runcore-tests is present. Typically
# this list and the list above are run in response to --core-tests
@core_tests = qw(
- t/run/*.t
t/src/*.t
+ t/run/*.t
t/perl/*.t
);
Modified: branches/ops_pct/lib/Parrot/Op.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Op.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Op.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -300,23 +300,6 @@
return $self->{JUMP};
}
-=item C<full_body()>
-
-For manual ops, C<full_body()> is the same as C<body()>. For auto ops
-this method adds a final C<goto NEXT()> line to the code to represent
-the auto-computed return value. See the note on op types above.
-
-=cut
-
-sub full_body {
- my $self = shift;
- my $body = $self->body;
-
- $body .= sprintf( " {{+=%d}};\n", $self->size ) if $self->type eq 'auto';
-
- return $body;
-}
-
# Called from rewrite_body() to perform the actual substitutions.
sub _substitute {
my $self = shift;
@@ -360,15 +343,6 @@
sub rewrite_body {
my ( $self, $body, $trans, $preamble_only ) = @_;
- # use vtable macros
- $body =~ s!
- (?:
- {{\@\d+\}}
- |
- \b\w+(?:->\w+)*
- )->vtable->\s*(\w+)\(
- !VTABLE_$1(!sgx;
-
while (1) {
my $new_body = $self->_substitute( $body, $trans, !!$preamble_only );
@@ -382,7 +356,7 @@
=item C<source($trans)>
-Returns the L<C<full_body()>> of the op with substitutions made by
+Returns the L<C<body()>> of the op with substitutions made by
C<$trans> (a subclass of C<Parrot::OpTrans>).
=cut
@@ -402,7 +376,7 @@
? $trans->add_body_prelude()
: '';
- return $self->rewrite_body( $prelude . $self->full_body, $trans );
+ return $self->rewrite_body( $prelude . $self->body, $trans );
}
=item C<size()>
Modified: branches/ops_pct/lib/Parrot/OpTrans.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/OpTrans.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/OpTrans.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -76,22 +76,6 @@
return '';
}
-=item C<defines()>
-
-Implemented in subclasses to return the C C<#define> macros required.
-
-=item C<opsarraytype()>
-
-Returns the type for the array of opcodes. By default here it's an array
-C<opcode_t>, but the prederef runops core uses an array of C<void*> to
-do its clever tricks.
-
-=cut
-
-sub opsarraytype {
- return 'opcode_t';
-}
-
=item C<core_type()>
Implemented in subclasses to return the type of core created by the
Modified: branches/ops_pct/lib/Parrot/OpTrans/CGoto.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/OpTrans/CGoto.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/OpTrans/CGoto.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -283,7 +283,6 @@
sub run_core_after_addr_table {
my ( $self, $bs ) = @_;
- my $t = $self->opsarraytype;
return <<END_C;
if (!${bs}ops_addr)
Modified: branches/ops_pct/lib/Parrot/Ops2c/Utils.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Ops2c/Utils.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Ops2c/Utils.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
package Parrot::Ops2c::Utils;
use strict;
@@ -186,7 +186,6 @@
$argsref->{preamble} = $preamble;
$argsref->{init_func} = $init_func;
$argsref->{bs} = "$argsref->{base}$argsref->{suffix}_";
- $argsref->{opsarraytype} = $argsref->{trans}->opsarraytype();
# Invoked as: ${defines}
$argsref->{defines} = $argsref->{trans}->defines();
@@ -197,7 +196,7 @@
my ( $op_info, $op_func, $getop );
$op_info = $op_func = 'NULL';
- $getop = '( int (*)(const char *, int) )NULL';
+ $getop = '( int (*)(PARROT_INTERP, const char *, int) )NULL';
if ($self->{suffix} eq '') {
$op_func = $self->{bs} . "op_func_table";
@@ -477,7 +476,7 @@
#include "parrot/parrot.h"
#include "parrot/oplib.h"
-$self->{sym_export} op_lib_t *$self->{init_func}(long init);
+$self->{sym_export} op_lib_t *$self->{init_func}(PARROT_INTERP, long init);
END_C
return 1;
@@ -559,7 +558,7 @@
if ( $self->{suffix} eq '' && !$self->{flag}->{dynamic} ) {
print $fh <<END_C_2;
-static int get_op(const char * name, int full);
+static int get_op(PARROT_INTERP, const char * name, int full);
END_C_2
}
@@ -606,9 +605,8 @@
$prev_src = '';
foreach my $op ( $self->{ops}->ops ) {
my $func_name = $op->func_name( $self->{trans} );
- my $arg_types = "$self->{opsarraytype} *, PARROT_INTERP";
- my $prototype = "$self->{sym_export} $self->{opsarraytype} * $func_name ($arg_types)";
- my $args = "$self->{opsarraytype} *cur_opcode, PARROT_INTERP";
+ my $prototype =
+ "$self->{sym_export} opcode_t * $func_name (opcode_t *, PARROT_INTERP)";
my $definition;
my $comment = '';
my $one_op = "";
@@ -622,7 +620,7 @@
$comment = "/* " . $op->full_name() . " */";
}
else {
- $definition = "$self->{opsarraytype} *\n$func_name ($args)";
+ $definition = "opcode_t *\n$func_name (opcode_t *cur_opcode, PARROT_INTERP)";
}
my $src = $op->source( $self->{trans} );
@@ -814,13 +812,13 @@
. join( ", ",
scalar $op->arg_types
? map { sprintf( "PARROT_ARG_%s", uc $_ ) } $op->arg_types
- : 0 )
- . " }";
+ : '(arg_type_t) 0'
+ ) . " }";
my $arg_dirs = "{ "
. join(
", ", scalar $op->arg_dirs
? map { $arg_dir_mapping{$_} } $op->arg_dirs
- : 0
+ : '(arg_dir_t) 0'
) . " }";
my $labels = "{ "
. join(
@@ -828,7 +826,6 @@
? $op->labels
: 0
) . " }";
- my $flags = 0;
print $fh <<END_C;
{ /* $self->{index} */
@@ -841,8 +838,7 @@
$arg_count,
$arg_types,
$arg_dirs,
- $labels,
- $flags
+ $labels
},
END_C
@@ -892,14 +888,14 @@
} HOP;
static HOP **hop;
-static void hop_init(void);
+static void hop_init(PARROT_INTERP);
static size_t hash_str(const char *str);
-static void store_op(op_info_t *info, int full);
+static void store_op(PARROT_INTERP, op_info_t *info, int full);
/* XXX on changing interpreters, this should be called,
through a hook */
-static void hop_deinit(void);
+static void hop_deinit(PARROT_INTERP);
/*
* find a short or full opcode
@@ -923,8 +919,8 @@
return key;
}
-static void store_op(op_info_t *info, int full) {
- HOP * const p = mem_allocate_typed(HOP);
+static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+ HOP * const p = mem_gc_allocate_zeroed_typed(interp, HOP);
const size_t hidx =
hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
@@ -932,12 +928,12 @@
p->next = hop[hidx];
hop[hidx] = p;
}
-static int get_op(const char * name, int full) {
+static int get_op(PARROT_INTERP, const char * name, int full) {
const HOP * p;
const size_t hidx = hash_str(name) % OP_HASH_SIZE;
if (!hop) {
- hop = mem_allocate_n_zeroed_typed(OP_HASH_SIZE,HOP *);
- hop_init();
+ hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE,HOP *);
+ hop_init(interp);
}
for (p = hop[hidx]; p; p = p->next) {
if(STREQ(name, full ? p->info->full_name : p->info->name))
@@ -945,18 +941,18 @@
}
return -1;
}
-static void hop_init(void) {
+static void hop_init(PARROT_INTERP) {
size_t i;
op_info_t * const info = $self->{bs}op_lib.op_info_table;
/* store full names */
for (i = 0; i < $self->{bs}op_lib.op_count; i++)
- store_op(info + i, 1);
+ store_op(interp, info + i, 1);
/* plus one short name */
for (i = 0; i < $self->{bs}op_lib.op_count; i++)
- if (get_op(info[i].name, 0) == -1)
- store_op(info + i, 0);
+ if (get_op(interp, info[i].name, 0) == -1)
+ store_op(interp, info + i, 0);
}
-static void hop_deinit(void)
+static void hop_deinit(PARROT_INTERP)
{
if (hop) {
size_t i;
@@ -964,7 +960,7 @@
HOP *p = hop[i];
while (p) {
HOP * const next = p->next;
- mem_sys_free(p);
+ mem_gc_free(interp, p);
p = next;
}
}
@@ -977,7 +973,7 @@
}
else {
print $fh <<END_C;
-static void hop_deinit(void) {}
+static void hop_deinit(SHIM_INTERP) {}
END_C
}
return 1;
@@ -1026,11 +1022,11 @@
print $fh <<END_C;
op_lib_t *
-$self->{init_func}(long init) {
+$self->{init_func}(PARROT_INTERP, long init) {
/* initialize and return op_lib ptr */
if (init == 1) {
$init1_code
- return &$self->{bs}op_lib;
+ return &$self->{bs}op_lib;
}
/* set op_lib to the passed ptr (in init) */
else if (init) {
@@ -1038,7 +1034,7 @@
}
/* deinit - free resources */
else {
- hop_deinit();
+ hop_deinit(interp);
}
return NULL;
}
@@ -1063,7 +1059,7 @@
$self->{sym_export} PMC*
$load_func(PARROT_INTERP)
{
- PMC *const lib = pmc_new(interp, enum_class_ParrotLibrary);
+ PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) $self->{init_func};
dynop_register(interp, lib);
return lib;
Modified: branches/ops_pct/lib/Parrot/OpsFile.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/OpsFile.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/OpsFile.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -126,15 +126,6 @@
Transforms to C<X>, an absolute address.
-=item C<OP_SIZE>
-
-Transforms to C<S>, the size of an op.
-
-=item C<HALT()>
-
-Transforms to C<PC' = 0>. Halts run loop, and resets the current
-position to the start of the Parrot code, without resuming.
-
=item C<restart OFFSET(X)>
Transforms to C<PC' = 0> and restarts at C<PC + X>.
@@ -462,11 +453,8 @@
$argdirs, $line, $file, $labels, $flags, $nolines
) = @_;
my $counter = 0;
- my $absolute = 0;
my $branch = 0;
my $pop = 0;
- my $next = 0;
- my $restart = 0;
if (exists($$flags{deprecated})) {
$body = <<"END_CODE" . $body;
@@ -499,9 +487,6 @@
# expr OFFSET(X) {{^+X}} PC + X Relative address
# expr NEXT() {{^+S}} PC + S Where S is op size
# expr ADDRESS(X) {{^X}} X Absolute address
- # OP_SIZE {{^S}} S op size
- #
- # HALT() {{=0}} PC' = 0 Halts run_ops loop, no resume
#
# restart OFFSET(X) {{=0,+=X}} PC' = 0 Restarts at PC + X
# restart NEXT() {{=0,+=S}} PC' = 0 Restarts at PC + S
@@ -519,38 +504,27 @@
# on the mode of operation (function calls, switch statements, gotos
# with labels, etc.).
#
-
- $absolute ||= $body =~ s/\bgoto\s+ADDRESS\(\( (.*?) \)\)/{{=$1}}/mg;
- $body =~ s/\bexpr\s+ADDRESS\(\( (.*?) \)\)/{{^$1}}/mg;
- $absolute ||= $body =~ s/\bgoto\s+ADDRESS\((.*?)\)/{{=$1}}/mg;
- $body =~ s/\bexpr\s+ADDRESS\((.*?)\)/{{^$1}}/mg;
-
- $branch ||= $short_name =~ /runinterp/;
- $branch ||= $body =~ s/\bgoto\s+OFFSET\(\( (.*?) \)\)/{{+=$1}}/mg;
- $body =~ s/\bexpr\s+OFFSET\(\( (.*?) \)\)/{{^+$1}}/mg;
- $branch ||= $body =~ s/\bgoto\s+OFFSET\((.*?)\)/{{+=$1}}/mg;
- $body =~ s/\bexpr\s+OFFSET\((.*?)\)/{{^+$1}}/mg;
-
- $next ||= $short_name =~ /runinterp/;
- $next ||= $body =~ s/\bexpr\s+NEXT\(\)/{{^+$op_size}}/mg;
- $body =~ s/\bgoto\s+NEXT\(\)/{{+=$op_size}}/mg;
-
- $body =~ s/\bHALT\(\)/{{=0}}/mg;
- $body =~ s/\bOP_SIZE\b/{{^$op_size}}/mg;
-
- if ( $body =~ s/\brestart\s+OFFSET\((.*?)\)/{{=0,+=$1}}/mg ) {
- $branch = 1;
- $restart = 1;
- }
- elsif ( $body =~ s/\brestart\s+NEXT\(\)/{{=0,+=$op_size}}/mg ) {
- $restart = 1;
- $next = 1;
- }
- elsif ( $body =~ s/\brestart\s+ADDRESS\((.*?)\)/{{=$1}}/mg ) {
- $next = 0;
- $restart = 1;
+ if ($body =~ /(goto|restart)\s+OFFSET\(.*?\)/ || $short_name =~ /runinterp/) {
+ $branch = 1;
}
+ $body =~ s/\bgoto\s+ADDRESS\(\( (.*?) \)\)/{{=$1}}/mg;
+ $body =~ s/\bexpr\s+ADDRESS\(\( (.*?) \)\)/{{^$1}}/mg;
+ $body =~ s/\bgoto\s+ADDRESS\((.*?)\)/{{=$1}}/mg;
+ $body =~ s/\bexpr\s+ADDRESS\((.*?)\)/{{^$1}}/mg;
+
+ $body =~ s/\bgoto\s+OFFSET\(\( (.*?) \)\)/{{+=$1}}/mg;
+ $body =~ s/\bexpr\s+OFFSET\(\( (.*?) \)\)/{{^+$1}}/mg;
+ $body =~ s/\bgoto\s+OFFSET\((.*?)\)/{{+=$1}}/mg;
+ $body =~ s/\bexpr\s+OFFSET\((.*?)\)/{{^+$1}}/mg;
+
+ $body =~ s/\bexpr\s+NEXT\(\)/{{^+$op_size}}/mg;
+ $body =~ s/\bgoto\s+NEXT\(\)/{{+=$op_size}}/mg;
+
+ $body =~ s/\brestart\s+OFFSET\((.*?)\)/{{=0,+=$1}}/mg;
+ $body =~ s/\brestart\s+NEXT\(\)/{{=0,+=$op_size}}/mg;
+ $body =~ s/\brestart\s+ADDRESS\((.*?)\)/{{=$1}}/mg;
+
$body =~ s/\$(\d+)/{{\@$1}}/mg;
# We can only reference as many parameters as we declare
@@ -566,17 +540,7 @@
$op->body( $nolines ? $body : qq{#line $line "$file_escaped"\n$body} );
# Constants here are defined in include/parrot/op.h
- or_flag( \$jumps, "PARROT_JUMP_ADDRESS" ) if $absolute;
or_flag( \$jumps, "PARROT_JUMP_RELATIVE" ) if $branch;
- or_flag( \$jumps, "PARROT_JUMP_ENEXT" ) if $next;
- or_flag( \$jumps, "PARROT_JUMP_RESTART" ) if $restart;
-
- # I'm assuming the op branches to the value in the last argument.
- if ( ($jumps)
- && ( $fixedargs[ @fixedargs - 1 ] )
- && ( $fixedargs[ @fixedargs - 1 ] eq 'i' ) ) {
- or_flag( \$jumps, "PARROT_JUMP_GNEXT" );
- }
$op->jump($jumps);
$self->push_op($op);
@@ -663,7 +627,6 @@
#s/goto\s+NEXT\(\)/{{+=$op_size}}/mg; #not supported--dependent on op size
s/goto\s+ADDRESS\((.*)\)/{{=$1}}/mg;
- s/HALT\(\)/{{=0}}/mg;
$_ = Parrot::Op->rewrite_body( $_, $trans, 'preamble' );
}
Modified: branches/ops_pct/lib/Parrot/Pmc2c/Attribute.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Pmc2c/Attribute.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Pmc2c/Attribute.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -207,7 +207,7 @@
}
elsif ($attrtype eq "INTVAL") {
$decl .= <<"EOA";
- PMC * const attr_value = pmc_new(interp, enum_class_Integer); \\
+ PMC * const attr_value = Parrot_pmc_new(interp, enum_class_Integer); \\
VTABLE_set_integer_native(interp, attr_value, value); \\
VTABLE_set_attr_str(interp, pmc, \\
Parrot_str_new_constant(interp, "$attrname"), attr_value); \\
@@ -215,7 +215,7 @@
}
elsif ($attrtype eq "FLOATVAL") {
$decl .= <<"EOA";
- PMC * const attr_value = pmc_new(interp, enum_class_Float); \\
+ PMC * const attr_value = Parrot_pmc_new(interp, enum_class_Float); \\
VTABLE_set_number_native(interp, attr_value, value); \\
VTABLE_set_attr_str(interp, pmc, \\
Parrot_str_new_constant(interp, "$attrname"), attr_value); \\
@@ -223,7 +223,7 @@
}
elsif ($attrtype =~ $isptrtostring) {
$decl .= <<"EOA";
- PMC * const attr_value = pmc_new(interp, enum_class_String); \\
+ PMC * const attr_value = Parrot_pmc_new(interp, enum_class_String); \\
VTABLE_set_string_native(interp, attr_value, value); \\
VTABLE_set_attr_str(interp, pmc, \\
Parrot_str_new_constant(interp, "$attrname"), attr_value); \\
Modified: branches/ops_pct/lib/Parrot/Pmc2c/MethodEmitter.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Pmc2c/MethodEmitter.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Pmc2c/MethodEmitter.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -115,58 +115,6 @@
EOC
}
-=item C<proto($type,$parameters)>
-
-Determines the prototype (argument signature) for a method body
-(see F<src/call_list>).
-
-=cut
-
-my %calltype = (
- 'char' => 'c',
- 'short' => 's',
- 'char' => 'c',
- 'short' => 's',
- 'int' => 'i',
- 'INTVAL' => 'I',
- 'float' => 'f',
- 'FLOATVAL' => 'N',
- 'double' => 'd',
- 'STRING*' => 'S',
- 'STRING *' => 'S',
- 'char*' => 't',
- 'char *' => 't',
- 'PMC*' => 'P',
- 'PMC *' => 'P',
- 'short*' => '2',
- 'short *' => '2',
- 'int*' => '3',
- 'int *' => '3',
- 'long*' => '4',
- 'long *' => '4',
- 'void' => 'v',
- 'void*' => 'b',
- 'void *' => 'b',
- 'void**' => 'B',
- 'void **' => 'B',
-);
-
-sub proto {
- my ( $type, $parameters ) = @_;
-
- # reduce to a comma separated set of types
- $parameters =~ s/\w+(,|$)/,/g;
- $parameters =~ s/ //g;
-
- # type method(interp, self, parameters...)
- my $ret = $calltype{ $type or "void" };
- $ret .= "JO" . join( '',
- map { $calltype{$_} or die "Unknown signature type '$_'" }
- split( /,/, $parameters ) );
-
- return $ret;
-}
-
=item C<rewrite_nci_method($self, $pmc )>
Rewrites the method body performing the various macro substitutions for
Modified: branches/ops_pct/lib/Parrot/Pmc2c/PCCMETHOD.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Pmc2c/PCCMETHOD.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Pmc2c/PCCMETHOD.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -437,7 +437,6 @@
} /* END PMETHOD BODY */
} /* END PARAMS SCOPE */
- no_return:
return;
END
$self->return_type('void');
Modified: branches/ops_pct/lib/Parrot/Pmc2c/PMC.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Pmc2c/PMC.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Pmc2c/PMC.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2008, Parrot Foundation.
+# Copyright (C) 2004-2010, Parrot Foundation.
# $Id$
#
@@ -340,7 +340,6 @@
my ( $self, $methodname ) = @_;
return 1 if ($methodname =~ m/^
- (?:i_)?
(?:add|subtract|multiply|divide|floor_divide|modulus)
(?:_int|_float)?
$/x);
Modified: branches/ops_pct/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Pmc2c/PMCEmitter.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Pmc2c/PMCEmitter.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -251,54 +251,6 @@
unless $self->is_dynamic;
}
-=item C<proto($type,$parameters)>
-
-Determines the prototype (argument signature) for a method body
-(see F<src/call_list>).
-
-=cut
-
-my %calltype = (
- "char" => "c",
- "short" => "s",
- "char" => "c",
- "short" => "s",
- "int" => "i",
- "INTVAL" => "I",
- "float" => "f",
- "FLOATVAL" => "N",
- "double" => "d",
- "STRING*" => "S",
- "char*" => "t",
- "PMC*" => "P",
- "short*" => "2",
- "int*" => "3",
- "long*" => "4",
- "void" => "v",
- "void*" => "b",
- "void**" => "B",
-);
-
-sub proto {
- my ( $type, $parameters ) = @_;
-
- # reduce to a comma separated set of types
- $parameters =~ s/\w+(,|$)/,/g;
- $parameters =~ s/ //g;
-
- # flatten whitespace before "*" in return value
- $type =~ s/\s+\*$/\*/ if defined $type;
-
- # type method(interp, self, parameters...)
- my $ret = $calltype{ $type or "void" }
- . "JO"
- . join( '',
- map { $calltype{$_} or die "Unknown signature type '$_'" }
- split( /,/, $parameters ) );
-
- return $ret;
-}
-
=item C<pre_method_gen>
Generate switch-bases VTABLE for MULTI
@@ -703,7 +655,7 @@
}
/* set up MRO and _namespace */
- Parrot_create_mro(interp, entry);
+ Parrot_pmc_create_mro(interp, entry);
EOC
# declare each nci method for this class
@@ -778,16 +730,25 @@
my $export = $self->is_dynamic ? 'PARROT_DYNEXT_EXPORT ' : 'PARROT_EXPORT';
# Sets the attr_size field:
- # If the auto_attrs flag is set, use the current data,
- # else check if this PMC has init or init_pmc vtable functions,
+ # - If the auto_attrs flag is set, use the current data.
+ # - If manual_attrs is set, set to 0.
+ # - If none is set, check if this PMC has init or init_pmc vtable functions,
# setting it to 0 in that case, and keeping the value from the
# parent otherwise.
my $set_attr_size = '';
- if ( @{$self->attributes} && $self->{flags}{auto_attrs} ) {
+ my $flag_auto_attrs = $self->{flags}{auto_attrs};
+ my $flag_manual_attrs = $self->{flags}{manual_attrs};
+ die 'manual_attrs and auto_attrs can not be used together'
+ if ($flag_auto_attrs && $flag_manual_attrs);
+ warn 'PMC has attributes but no auto_attrs or manual_attrs'
+ if (@{$self->attributes} && ! ($flag_auto_attrs || $flag_manual_attrs));
+
+ if ( @{$self->attributes} && $flag_auto_attrs) {
$set_attr_size .= "sizeof(Parrot_${classname}_attributes)";
}
else {
- $set_attr_size .= "0" if exists($self->{has_method}{init}) ||
+ $set_attr_size .= "0" if $flag_manual_attrs ||
+ exists($self->{has_method}{init}) ||
exists($self->{has_method}{init_pmc});
}
$set_attr_size = " vt->attr_size = " . $set_attr_size . ";\n"
@@ -870,7 +831,7 @@
PARROT_WARN_UNUSED_RESULT
PMC* Parrot_${classname}_get_mro(PARROT_INTERP, PMC* mro) {
if (PMC_IS_NULL(mro)) {
- mro = pmc_new(interp, enum_class_ResizableStringArray);
+ mro = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
}
$get_mro
VTABLE_unshift_string(interp, mro,
Modified: branches/ops_pct/lib/Parrot/Pmc2c/UtilFunctions.pm
==============================================================================
--- branches/ops_pct/lib/Parrot/Pmc2c/UtilFunctions.pm Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/lib/Parrot/Pmc2c/UtilFunctions.pm Sun Mar 7 19:33:20 2010 (r44743)
@@ -163,7 +163,7 @@
int pass;
/* create a library PMC */
- pmc = constant_pmc_new(interp, enum_class_ParrotLibrary);
+ pmc = Parrot_pmc_new_constant(interp, enum_class_ParrotLibrary);
/* TODO: stuff some info into this PMC's props */
@@ -173,7 +173,7 @@
my $lhs = $info->{flags}{no_init} ? "" : "type$class = ";
$cout .= <<"EOC";
whoami = CONST_STRING_GEN(interp, "$class");
- ${lhs}pmc_register(interp, whoami);
+ ${lhs}Parrot_pmc_register_new_type(interp, whoami);
EOC
}
$cout .= <<"EOC";
Modified: branches/ops_pct/runtime/parrot/include/test_more.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/include/test_more.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/include/test_more.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -20,7 +20,7 @@
.local pmc exports, curr_namespace, test_namespace
curr_namespace = get_namespace
test_namespace = get_root_namespace [ 'parrot'; 'Test'; 'More' ]
- exports = split ' ', 'plan diag ok nok is is_deeply like substring isa_ok skip isnt todo throws_like lives_ok dies_ok throws_substring'
+ exports = split ' ', 'plan diag ok nok is is_deeply is_null like substring isa_ok skip isnt todo throws_like lives_ok dies_ok throws_substring'
test_namespace.'export_to'(curr_namespace, exports)
Modified: branches/ops_pct/runtime/parrot/library/Configure/genfile.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Configure/genfile.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Configure/genfile.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -44,15 +44,30 @@
.param string tmpl
.param string outfile
.param pmc config
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ .local int flag_replace_slash
+ flag_replace_slash = 1
+ $I0 = index outfile, '.'
+ if $I0 < 0 goto L1
+ $S0 = substr outfile, $I0
+ $I0 = index '.c .h .pir .pmc .t', $S0
+ if $I0 < 0 goto L1
+ flag_replace_slash = 0
+ L1:
$S0 = slurp(tmpl)
$S0 = conditioned_line($S0, config)
$S0 = interpolate_var($S0, config)
$S1 = sysinfo .SYSINFO_PARROT_OS
+ unless flag_replace_slash goto L2
$S0 = replace_slash($S0, $S1)
+ L2:
spew(outfile, $S0)
- printerr "\n\tGenerating '"
- printerr outfile
- printerr "'\n\n"
+ unless has_verbose goto L3
+ unless verbose goto L3
+ print "generate "
+ say outfile
+ L3:
.end
.sub 'slurp' :anon
Modified: branches/ops_pct/runtime/parrot/library/Data/Dumper.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Data/Dumper.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Data/Dumper.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -3,19 +3,19 @@
.sub __library_data_dumper_onload :load
.local pmc dd_class
- dd_class = get_class "Data::Dumper"
+ dd_class = get_class ['Data'; 'Dumper']
if null dd_class goto load_library
goto END
load_library:
load_bytecode "Data/Dumper/Default.pbc"
- newclass $P0, "Data::Dumper"
+ newclass $P0, ['Data'; 'Dumper']
END:
.return ()
.end
-.namespace ["Data::Dumper"]
+.namespace ['Data'; 'Dumper']
.sub dumper :method
.param pmc dump
@@ -36,7 +36,7 @@
.local pmc ddd_class
push_eh ERROR2
- ddd_class = get_class "Data::Dumper::Default"
+ ddd_class = get_class ['Data'; 'Dumper'; 'Default']
style = ddd_class."new"()
pop_eh
@@ -49,14 +49,14 @@
ERROR2:
pop_eh
- print "can not find class Data::Dumper::Default!\n"
+ print "can not find class ['Data'; 'Dumper'; 'Default']!\n"
end
.return ( 0 )
ERROR:
print "Syntax:\n"
- print "Data::Dumper::dumper( pmc )\n"
- print "Data::Dumper::dumper( pmc, name )\n"
- print "Data::Dumper::dumper( pmc, name, indent )\n"
+ print "dumper( pmc )\n"
+ print "dumper( pmc, name )\n"
+ print "dumper( pmc, name, indent )\n"
.return ( 0 )
.end
Modified: branches/ops_pct/runtime/parrot/library/Data/Dumper/Base.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Data/Dumper/Base.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Data/Dumper/Base.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -28,12 +28,12 @@
.sub __library_data_dumper_base_onload :load
.local pmc ddb_class
- ddb_class = get_class "Data::Dumper::Base"
+ ddb_class = get_class ['Data'; 'Dumper'; 'Base']
if null ddb_class goto create_ddb
goto END
create_ddb:
- newclass $P0, "Data::Dumper::Base"
+ newclass $P0, ['Data'; 'Dumper'; 'Base']
addattribute $P0, "dumper"
addattribute $P0, "level"
addattribute $P0, "indention"
@@ -43,7 +43,7 @@
.return ()
.end
-.namespace ["Data::Dumper::Base"]
+.namespace ['Data'; 'Dumper'; 'Base']
=item style."prepare"( dumper, indent )
Modified: branches/ops_pct/runtime/parrot/library/Data/Dumper/Default.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Data/Dumper/Default.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Data/Dumper/Default.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -20,19 +20,19 @@
.sub __library_data_dumper_default_onload :load
.local pmc ddb_class
- ddb_class = get_class "Data::Dumper::Default"
+ ddb_class = get_class ['Data'; 'Dumper'; 'Default']
if null ddb_class goto create_ddb
goto END
create_ddb:
load_bytecode 'Data/Dumper/Base.pbc'
- get_class $P0, "Data::Dumper::Base"
- subclass $P0, $P0, "Data::Dumper::Default"
+ get_class $P0, ['Data'; 'Dumper'; 'Base']
+ subclass $P0, $P0, ['Data'; 'Dumper'; 'Default']
END:
.return ()
.end
-.namespace ["Data::Dumper::Default"]
+.namespace ['Data'; 'Dumper'; 'Default']
=head1 METHODS
Modified: branches/ops_pct/runtime/parrot/library/HTTP/Daemon.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/HTTP/Daemon.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/HTTP/Daemon.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -433,7 +433,7 @@
.end
# close all sockets
-# this needs enabling of SIGHUP in src/events.c but still doesn't
+# this needs enabling of SIGHUP but still doesn't
# help against FIN_WAIT2 / TIME_WAIT state of connections
.sub 'shutdown' :method
.local pmc active, sock
Modified: branches/ops_pct/runtime/parrot/library/Math/Rand.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Math/Rand.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Math/Rand.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -52,9 +52,7 @@
.namespace [ 'Math'; 'Rand' ]
.sub '__onload' :anon :load
-# print "__onload Math::Rand\n"
- new $P0, 'Integer'
- set $P0, 1
+ $P0 = box 1
set_global 'next', $P0
.end
Modified: branches/ops_pct/runtime/parrot/library/OpenGL.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/OpenGL.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/OpenGL.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -91,6 +91,7 @@
load_bytecode 'OpenGL_funcs.pbc'
_load_opengl_libs()
_wrap_opengl_entry_points()
+ _load_nci_thunks()
_export_opengl_functions()
.end
@@ -241,6 +242,25 @@
=back
+=head2 Thunk Loading
+
+These routines ensure that all NCI thunks necessary for calling OpenGL functions are
+available to Parrot.
+
+=cut
+
+.sub _load_nci_thunks
+ # load the nci thunks
+ .local pmc ns, loader
+ ns = get_namespace
+ loader = ns['Parrot_glut_nci_loader']
+ loader()
+
+ # delete loader the function, it isn't for public consumption
+ $P0 = new ['Undef']
+ set_global 'Parrot_glut_nci_loader', $P0
+.end
+
=head2 Symbol Export
These routines allow OpenGL symbols to exported to other namespaces to more
Modified: branches/ops_pct/runtime/parrot/library/P6object.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/P6object.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/P6object.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -819,7 +819,7 @@
# If this fails, and we want Any, and it's something form outside
# of the Perl 6 world, we'd best just accept it.
unless $S0 == 'Any' goto end
- $I0 = isa topicwhat, 'Perl6Object'
+ $I0 = isa topicwhat, 'Mu'
unless $I0 goto accept_anyway
$I0 = 0
goto end
Modified: branches/ops_pct/runtime/parrot/library/Parrot/Coroutine.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Parrot/Coroutine.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Parrot/Coroutine.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -59,7 +59,7 @@
.local int coro_class, idx
.local pmc coro
.const 'Sub' coro_sub = "enumerate_tree"
- coro = new 'Parrot::Coroutine', coro_sub
+ coro = new ['Parrot'; 'Coroutine'], coro_sub
($P0 :optional, $I0 :opt_flag) = coro.'resume'(coro, tree)
idx = 0
@@ -83,9 +83,9 @@
=cut
.sub onload_create_class :load
- $P0 = get_class "Parrot::Coroutine"
+ $P0 = get_class ['Parrot'; 'Coroutine']
unless null $P0 goto END
- $P0 = newclass "Parrot::Coroutine"
+ $P0 = newclass ['Parrot'; 'Coroutine']
addattribute $P0, "state" ## State: 1 is new/valid, 0 is dead.
addattribute $P0, "initial_sub" ## Initial sub.
addattribute $P0, "yield_cont" ## Continuation to for yielding.
@@ -94,7 +94,7 @@
.return ()
.end
-.namespace ["Parrot::Coroutine"]
+.namespace ['Parrot'; 'Coroutine']
.include "interpinfo.pasm"
@@ -106,7 +106,7 @@
.local pmc coro
.const 'Sub' coro_sub = "enumerate_tree"
- coro_class = get_class 'Parrot::Coroutine'
+ coro_class = get_class ['Parrot'; 'Coroutine']
coro = coro_class.'new'('initial_sub' => coro_sub)
Given a sub, it initializes a new C<Parrot::Coroutine> object.
@@ -125,8 +125,7 @@
## [it would be nice to include a pointer value. -- rgr, 8-Oct-06.]
.sub get_string :vtable :method
- $S0 = '<Parrot::Coroutine ?>'
- .return ($S0)
+ .return ('<Parrot::Coroutine ?>')
.end
=head3 B<coro.resume(args...)>
Modified: branches/ops_pct/runtime/parrot/library/SDL.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -53,9 +53,9 @@
.include 'datatypes.pasm'
.macro store_nci_func( func_name, signature )
- c_func_name = prefix . .func_name
+ c_func_name = 'SDL_' . .func_name
dlfunc c_function, libsdl, c_func_name, .signature
- set_hll_global ['SDL::NCI'], .func_name, c_function
+ set_hll_global ['SDL'; 'NCI'], .func_name, c_function
.endm
.sub _sdl_init :load
@@ -63,7 +63,7 @@
.local pmc layouts
layouts = new 'OrderedHash'
- set_hll_global ['SDL::NCI'], 'layouts', layouts
+ set_hll_global ['SDL'; 'NCI'], 'layouts', layouts
# this order matters; trust me!
_set_Event_layout( layouts )
@@ -88,6 +88,18 @@
.local pmc libsdl
.local pmc sdl_function
+ .local pmc env
+ env = new 'Env'
+ .local string sdlpath
+ say'Hu'
+ sdlpath = env['SDLLIBPATH']
+ if sdlpath == '' goto default_locations
+ say sdlpath
+ loadlib libsdl, sdlpath
+ if libsdl goto OK
+ goto failed
+
+default_locations:
loadlib libsdl, 'libSDL'
if libsdl goto OK
@@ -103,6 +115,7 @@
loadlib libsdl, 'cygSDL-1-2-0'
if libsdl goto OK
+failed:
# failed to load libSDL
$P0 = new 'Exception'
$P0 = "libSDL not found!"
@@ -114,11 +127,6 @@
OK_HINT2:
printerr "Hint: create a link from libSDL-1.2.so.0 to libSDL_image.so to disable the error messages.\n"
OK:
- .local string namespace
- namespace = 'SDL::NCI'
-
- .local string prefix
- prefix = 'SDL_'
.local string c_func_name
.local pmc c_function
@@ -126,43 +134,43 @@
.store_nci_func( 'Init', 'ii' )
# dlfunc sdl_function, libsdl, 'SDL_Init', 'ii'
-# set_hll_global ['SDL::NCI'], 'Init', sdl_function
+# set_hll_global ['SDL'; 'NCI'], 'Init', sdl_function
dlfunc sdl_function, libsdl, 'SDL_SetVideoMode', 'piiil'
- set_hll_global ['SDL::NCI'], 'SetVideoMode', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'SetVideoMode', sdl_function
dlfunc sdl_function, libsdl, 'SDL_Quit', 'v'
- set_hll_global ['SDL::NCI'], 'Quit', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'Quit', sdl_function
dlfunc sdl_function, libsdl, 'SDL_FillRect', 'ippi'
- set_hll_global ['SDL::NCI'], 'FillRect', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'FillRect', sdl_function
dlfunc sdl_function, libsdl, 'SDL_UpdateRect', 'vpiiii'
- set_hll_global ['SDL::NCI'], 'UpdateRect', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'UpdateRect', sdl_function
dlfunc sdl_function, libsdl, 'SDL_UpdateRects', 'vpip'
- set_hll_global ['SDL::NCI'], 'UpdateRects', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'UpdateRects', sdl_function
dlfunc sdl_function, libsdl, 'SDL_Flip', 'ip'
- set_hll_global ['SDL::NCI'], 'Flip', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'Flip', sdl_function
dlfunc sdl_function, libsdl, 'SDL_FreeSurface', 'vp'
- set_hll_global ['SDL::NCI'], 'FreeSurface', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'FreeSurface', sdl_function
dlfunc sdl_function, libsdl, 'SDL_LoadBMP_RW', 'ppi'
- set_hll_global ['SDL::NCI'], 'LoadBMP_RW', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'LoadBMP_RW', sdl_function
dlfunc sdl_function, libsdl, 'SDL_DisplayFormat', 'pp'
- set_hll_global ['SDL::NCI'], 'DisplayFormat', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'DisplayFormat', sdl_function
dlfunc sdl_function, libsdl, 'SDL_UpperBlit', 'ipppp'
- set_hll_global ['SDL::NCI'], 'BlitSurface', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'BlitSurface', sdl_function
dlfunc sdl_function, libsdl, 'SDL_WaitEvent', 'ip'
- set_hll_global ['SDL::NCI'], 'WaitEvent', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'WaitEvent', sdl_function
dlfunc sdl_function, libsdl, 'SDL_PollEvent', 'ip'
- set_hll_global ['SDL::NCI'], 'PollEvent', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'PollEvent', sdl_function
dlfunc sdl_function, libsdl, 'SDL_GetKeyName', 'ti'
- set_hll_global ['SDL::NCI'], 'GetKeyName', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'GetKeyName', sdl_function
dlfunc sdl_function, libsdl, 'SDL_GetError', 'tv'
- set_hll_global ['SDL::NCI'], 'GetError', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'GetError', sdl_function
dlfunc sdl_function, libsdl, 'SDL_SetColorKey', 'ipii'
- set_hll_global ['SDL::NCI'], 'SetColorKey', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'SetColorKey', sdl_function
dlfunc sdl_function, libsdl, 'SDL_LockSurface', 'ip'
- set_hll_global ['SDL::NCI'], 'LockSurface', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'LockSurface', sdl_function
dlfunc sdl_function, libsdl, 'SDL_UnlockSurface', 'vp'
- set_hll_global ['SDL::NCI'], 'UnlockSurface', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'UnlockSurface', sdl_function
dlfunc sdl_function, libsdl, 'SDL_CreateRGBSurface', 'piiiiiiii'
- set_hll_global ['SDL::NCI'], 'CreateRGBSurface', sdl_function
+ set_hll_global ['SDL'; 'NCI'], 'CreateRGBSurface', sdl_function
.end
=item _init_image()
@@ -201,7 +209,7 @@
printerr "Hint: create a link from libSDL_image-1.2.so.0 to libSDL_image.so to disable the error messages.\n"
OK:
dlfunc nci_sub, image_lib, 'IMG_Load', 'pt'
- set_hll_global ['SDL::NCI'], 'IMG_Load', nci_sub
+ set_hll_global ['SDL'; 'NCI'], 'IMG_Load', nci_sub
.end
=item _init_ttf()
@@ -224,10 +232,10 @@
initialize:
.local pmc nci_sub
- dlfunc nci_sub, ttf_lib, 'TTF_Init', 'iv'
+ dlfunc nci_sub, ttf_lib, 'TTF_Init', 'i'
unless nci_sub goto error
- set_hll_global ['SDL::NCI::TTF'], 'Init', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'Init', nci_sub
# TTF_init() returns 0 if successful, -1 on error
.local int initialized
@@ -238,41 +246,41 @@
error:
.local pmc e
e = new 'Exception'
- e[0] = "SDL_ttf not initialized\n"
+ e['message'] = "SDL_ttf not initialized\n"
throw e
success:
dlfunc nci_sub, ttf_lib, 'TTF_OpenFont', 'pti'
- set_hll_global ['SDL::NCI::TTF'], 'OpenFont', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'OpenFont', nci_sub
#RNH changes: all text routines expect an integer, not a pmc, for color parameter
dlfunc nci_sub, ttf_lib, 'TTF_RenderText_Solid', 'ppti'
- set_hll_global ['SDL::NCI::TTF'], 'RenderText_Solid', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderText_Solid', nci_sub
dlfunc nci_sub, ttf_lib, 'TTF_RenderUTF8_Solid', 'ppti'
- set_hll_global ['SDL::NCI::TTF'], 'RenderUTF8_Solid', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderUTF8_Solid', nci_sub
# this one could be wrong
dlfunc nci_sub, ttf_lib, 'TTF_RenderUNICODE_Solid', 'ppti'
- set_hll_global ['SDL::NCI::TTF'], 'RenderUNICODE_Solid', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderUNICODE_Solid', nci_sub
# RNH Additions. Add UTF8_Shaded and FontLine skip
dlfunc nci_sub, ttf_lib, 'TTF_RenderUTF8_Shaded', 'pptii'
- set_hll_global ['SDL::NCI::TTF'], 'RenderUTF8_Shaded', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderUTF8_Shaded', nci_sub
dlfunc nci_sub, ttf_lib, 'TTF_FontLineSkip', 'ip'
- set_hll_global ['SDL::NCI::TTF'], 'FontLineSkip', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'FontLineSkip', nci_sub
#end additions
dlfunc nci_sub, ttf_lib, 'TTF_SizeText', 'ipt33'
- set_hll_global ['SDL::NCI::TTF'], 'SizeText', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'SizeText', nci_sub
dlfunc nci_sub, ttf_lib, 'TTF_SizeUTF8', 'ipt33'
- set_hll_global ['SDL::NCI::TTF'], 'SizeUTF8', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'SizeUTF8', nci_sub
dlfunc nci_sub, ttf_lib, 'TTF_SizeUNICODE', 'ipt33'
- set_hll_global ['SDL::NCI::TTF'], 'SizeUNICODE', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'SizeUNICODE', nci_sub
dlfunc nci_sub, ttf_lib, 'TTF_CloseFont', 'vp'
- set_hll_global ['SDL::NCI::TTF'], 'CloseFont', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'CloseFont', nci_sub
dlfunc nci_sub, ttf_lib, 'TTF_Quit', 'vv'
- set_hll_global ['SDL::NCI::TTF'], 'Quit', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'Quit', nci_sub
dlfunc nci_sub, ttf_lib, 'TTF_WasInit', 'iv'
- set_hll_global ['SDL::NCI::TTF'], 'WasInit', nci_sub
+ set_hll_global ['SDL'; 'NCI'; 'TTF'], 'WasInit', nci_sub
.end
.sub _set_Event_layout
@@ -416,7 +424,7 @@
.param pmc layouts
.local pmc fetch_struct
- fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+ fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
.local pmc rect
rect = fetch_struct( 'Rect', 0 )
@@ -440,7 +448,7 @@
.param pmc layouts
.local pmc fetch_struct
- fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+ fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
# SDL_PixelFormat struct pointer
.local pmc pixelformat
@@ -540,7 +548,7 @@
.param pmc layouts
.local pmc fetch_struct
- fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+ fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
.local pmc palette
palette = fetch_struct( 'Palette', 0 )
@@ -612,7 +620,7 @@
.param pmc layouts
.local pmc fetch_struct
- fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+ fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
.local pmc color
color = fetch_struct( 'Color', 0 )
@@ -703,7 +711,7 @@
=cut
-.namespace [ 'SDL::NCI' ]
+.namespace [ 'SDL'; 'NCI' ]
.sub fetch_struct
.param string struct_name
@@ -713,7 +721,7 @@
.local pmc struct
# .local pmc fetch_layout
-# fetch_layout = get_hll_global ['SDL::NCI'], 'fetch_layout'
+# fetch_layout = get_hll_global ['SDL'; 'NCI'], 'fetch_layout'
initializer = fetch_layout( struct_name )
if managed == 1 goto build_managed
@@ -733,7 +741,7 @@
.local pmc layouts
.local pmc layout
- layouts = get_hll_global ['SDL::NCI'], 'layouts'
+ layouts = get_hll_global ['SDL'; 'NCI'], 'layouts'
exists $I0, layouts[ layout_name ]
if $I0 goto found
Modified: branches/ops_pct/runtime/parrot/library/SDL/App.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/App.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/App.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -13,7 +13,7 @@
# create a new SDL::App object
.local pmc app
- app = new 'SDL::App'
+ app = new ['SDL'; 'App']
# set the app's arguments
.local pmc app_args
@@ -62,7 +62,7 @@
=cut
-.namespace [ 'SDL::App' ]
+.namespace [ 'SDL'; 'App' ]
.sub _initialize :load
@@ -73,7 +73,7 @@
.local pmc app_class
- newclass app_class, 'SDL::App'
+ newclass app_class, ['SDL'; 'App']
addattribute app_class, 'height'
addattribute app_class, 'width'
addattribute app_class, 'bpp'
@@ -121,7 +121,7 @@
.param int flags :named('flags')
.local pmc SetVideoMode
- SetVideoMode = get_hll_global ['SDL::NCI'], 'SetVideoMode'
+ SetVideoMode = get_hll_global ['SDL'; 'NCI'], 'SetVideoMode'
.local pmc screen
screen = SetVideoMode( width, height, bpp, flags )
@@ -129,7 +129,7 @@
# defined $I0, screen
.local pmc main_surface
- new main_surface, 'SDL::Surface'
+ new main_surface, ['SDL'; 'Surface']
main_surface.'wrap_surface'( screen )
@@ -178,7 +178,7 @@
.sub quit :method
.local pmc SDL_Quit
- SDL_Quit = get_hll_global ['SDL::NCI'], 'Quit'
+ SDL_Quit = get_hll_global ['SDL'; 'NCI'], 'Quit'
SDL_Quit()
.end
Modified: branches/ops_pct/runtime/parrot/library/SDL/Button.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Button.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Button.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -11,7 +11,7 @@
$P0 = "filename/to/image.png"
# create the button
- button = new 'SDL::Button', $P0
+ button = new ['SDL'; 'Button'], $P0
# set the position
button.'xpos'( 10 )
@@ -41,16 +41,16 @@
=cut
-.namespace ['SDL::Button']
+.namespace ['SDL'; 'Button']
.sub __onload :load
.local pmc class
- class = get_class 'SDL::Button'
+ class = get_class ['SDL'; 'Button']
if_null class, define_class
.return()
define_class:
- newclass class, 'SDL::Button'
+ newclass class, ['SDL'; 'Button']
addattribute class, 'image'
addattribute class, 'status'
addattribute class, 'states'
@@ -66,7 +66,7 @@
.sub init_pmc :vtable :method
.param pmc name
- $P0 = new 'SDL::Image', name
+ $P0 = new ['SDL'; 'Image'], name
setattribute self, 'image', $P0
$P0 = new 'Integer'
@@ -77,7 +77,7 @@
$P0 = 1
setattribute self, 'states', $P0
- $P0 = new 'SDL::Rect'
+ $P0 = new ['SDL'; 'Rect']
setattribute self, 'rect', $P0
$P0 = new 'Integer'
@@ -173,7 +173,7 @@
drect = getattribute self, 'rect'
clicked = getattribute self, 'clicked'
- srect = new 'SDL::Rect'
+ srect = new ['SDL'; 'Rect']
$I1 = drect.'height'()
srect.'height'( $I1 )
Modified: branches/ops_pct/runtime/parrot/library/SDL/Color.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Color.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Color.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -11,7 +11,7 @@
# create a new SDL::Color object
.local pmc color
- color = new 'SDL::Color'
+ color = new ['SDL'; 'Color']
# set the color values; this one's blue
color.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
@@ -41,13 +41,13 @@
=cut
-.namespace [ 'SDL::Color' ]
+.namespace [ 'SDL'; 'Color' ]
.sub _initialize :load
.local pmc color_class
- newclass color_class, 'SDL::Color'
+ newclass color_class, ['SDL'; 'Color']
addattribute color_class, 'color'
addattribute color_class, 'r'
@@ -86,7 +86,7 @@
.param int blue :named( 'b' )
.local pmc fetch_layout
- get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+ get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
.local pmc layout
layout = fetch_layout( 'Color' )
Modified: branches/ops_pct/runtime/parrot/library/SDL/Constants.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Constants.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Constants.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -24,7 +24,7 @@
=cut
-.namespace [ 'SDL::Constants' ]
+.namespace [ 'SDL'; 'Constants' ]
.sub _initialize :load
@@ -47,7 +47,7 @@
key_names = new 'FixedPMCArray'
key_names = 323
- set_hll_global ['SDL::Constants'], 'key_names', key_names
+ set_hll_global ['SDL'; 'Constants'], 'key_names', key_names
# list created with:
# $ cat /usr/include/SDL/SDL_keysym.h |
Modified: branches/ops_pct/runtime/parrot/library/SDL/Event.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Event.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Event.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -12,7 +12,7 @@
# create a new SDL::Event object
.local pmc event
- event = new 'SDL::Event'
+ event = new ['SDL'; 'Event']
# ... create a new event_handler and its hander_args
@@ -39,12 +39,12 @@
=cut
-.namespace [ 'SDL::Event' ]
+.namespace [ 'SDL'; 'Event' ]
.sub _initialize :load
.local pmc event_class
- newclass event_class, 'SDL::Event'
+ newclass event_class, ['SDL'; 'Event']
addattribute event_class, 'event'
.end
@@ -60,7 +60,7 @@
.sub 'init' :method
.local pmc fetch_layout
- get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+ get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
.local pmc layout
layout = fetch_layout( 'Event::Generic' )
@@ -92,7 +92,7 @@
assign_event:
.local pmc fetch_layout
- get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+ get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
.local pmc layout
.local string ename
@@ -189,7 +189,7 @@
key_sym = event['sym']
.local pmc key_names
- get_hll_global key_names, ['SDL::Constants'], 'key_names'
+ get_hll_global key_names, ['SDL'; 'Constants'], 'key_names'
.local string key_name
key_name = key_names[ key_sym ]
@@ -241,13 +241,13 @@
if check_interval < 0.0001 goto use_wait
polling = 1
- GetEvent = get_hll_global ['SDL::NCI'], 'PollEvent'
+ GetEvent = get_hll_global ['SDL'; 'NCI'], 'PollEvent'
branch loop
use_wait:
polling = 0
- GetEvent = get_hll_global ['SDL::NCI'], 'WaitEvent'
+ GetEvent = get_hll_global ['SDL'; 'NCI'], 'WaitEvent'
loop:
event = self.'event'( 'Generic' )
@@ -288,7 +288,7 @@
event = self.'event'()
.local pmc PollEvent
- get_hll_global PollEvent, ['SDL::NCI'], 'PollEvent'
+ get_hll_global PollEvent, ['SDL'; 'NCI'], 'PollEvent'
.local int event_waiting
event_waiting = PollEvent( event )
Modified: branches/ops_pct/runtime/parrot/library/SDL/EventHandler.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/EventHandler.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/EventHandler.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -15,8 +15,8 @@
.local pmc parent_class
.local pmc class_type
- get_class parent_class, 'SDL::EventHandler'
- subclass class_type, parent_class, 'My::Event::Handler'
+ get_class parent_class, ['SDL'; 'EventHandler']
+ subclass class_type, parent_class, ['My'; 'Event'; 'Handler']
# define your overridden methods
.sub key_down_down :method
@@ -40,7 +40,7 @@
# create a new event object
.local pmc event
- event = new 'SDL::Event'
+ event = new ['SDL'; 'Event']
# ... and process events
event.'process_events'( event_handler, handler_args )
@@ -59,12 +59,12 @@
=cut
-.namespace [ 'SDL::EventHandler' ]
+.namespace [ 'SDL'; 'EventHandler' ]
.sub _initialize :load
.local pmc handler_class
- newclass handler_class, 'SDL::EventHandler'
+ newclass handler_class, ['SDL'; 'EventHandler']
addattribute handler_class, 'args'
.return()
Modified: branches/ops_pct/runtime/parrot/library/SDL/Font.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Font.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Font.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -12,7 +12,7 @@
# create a new SDL::Font object
.local pmc font
- font = new 'SDL::Font'
+ font = new ['SDL'; 'Font']
font.'init'( 'font_file' => 'myfont.ttf', 'point_size' => 48 )
@@ -35,7 +35,7 @@
=cut
-.namespace [ 'SDL::Font' ]
+.namespace [ 'SDL'; 'Font' ]
.sub _sdl_init :load
.local pmc init_ttf
@@ -44,7 +44,7 @@
.local pmc font_class
- newclass font_class, 'SDL::Font'
+ newclass font_class, ['SDL'; 'Font']
addattribute font_class, 'font'
addattribute font_class, 'size'
@@ -65,7 +65,7 @@
.param int font_size :named( 'point_size' )
.local pmc OpenFont
- OpenFont = get_hll_global ['SDL::NCI::TTF'], 'OpenFont'
+ OpenFont = get_hll_global ['SDL'; 'NCI'; 'TTF'], 'OpenFont'
.local pmc font
font = OpenFont( font_name, font_size )
@@ -106,7 +106,7 @@
h = font_surface.'height'()
.local pmc rect
- rect = new 'SDL::Rect'
+ rect = new ['SDL'; 'Rect']
rect.'init'( 'x' => 0, 'y' => 0, 'height' => h, 'width' => w )
@@ -133,12 +133,12 @@
font = self.'font'()
.local pmc font_surface
- font_surface = new 'SDL::Surface'
+ font_surface = new ['SDL'; 'Surface']
font_surface.'init'( 'height' => 0, 'width' => 0 )
# RNH use RenderUTF8 in preference to RenderText by default
.local pmc RenderUTF8_Solid
- get_hll_global RenderUTF8_Solid, ['SDL::NCI::TTF'], 'RenderUTF8_Solid'
+ get_hll_global RenderUTF8_Solid, ['SDL'; 'NCI'; 'TTF'], 'RenderUTF8_Solid'
.local int color
# RNH font routine takes color in the order rgb rather than bgr used by surface.pir hence cannot rely on color.get_integer
Modified: branches/ops_pct/runtime/parrot/library/SDL/Image.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Image.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Image.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -12,7 +12,7 @@
# create a new SDL::Image object
.local pmc image
- image = new 'SDL::Image'
+ image = new ['SDL'; 'Image']
image.'init'( file => 'examples/sdl/parrot_small.png' )
# blit and update this object as you like!
@@ -33,12 +33,12 @@
=cut
-.namespace [ 'SDL::Image' ]
+.namespace [ 'SDL'; 'Image' ]
.sub _initialize :load
.local pmc image_class
- image_class = get_class 'SDL::Image'
+ image_class = get_class ['SDL'; 'Image']
if_null image_class, create_class
.return()
@@ -47,7 +47,7 @@
init_image = get_hll_global ['SDL'], '_init_image'
init_image()
- subclass image_class, 'SDL::Surface', 'SDL::Image'
+ subclass image_class, ['SDL'; 'Surface'], ['SDL'; 'Image']
.return()
.end
@@ -62,7 +62,7 @@
.param string filename :named( 'file' )
.local pmc IMG_Load
- IMG_Load = get_hll_global ['SDL::NCI'], 'IMG_Load'
+ IMG_Load = get_hll_global ['SDL'; 'NCI'], 'IMG_Load'
.local pmc image
Modified: branches/ops_pct/runtime/parrot/library/SDL/LCD.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/LCD.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/LCD.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -8,7 +8,7 @@
=head1 SYNOPSIS
# create an LCD
- lcd = new 'SDL::LCD'
+ lcd = new ['SDL'; 'LCD']
# set the LCD position
lcd."xpos"( 10 )
@@ -36,11 +36,11 @@
=cut
-.namespace ["SDL::LCD"]
+.namespace ['SDL'; 'LCD']
.sub __onload :load
.local pmc class
- class = get_class 'SDL::LCD'
+ class = get_class ['SDL'; 'LCD']
if_null class, create_class
.return()
@@ -49,11 +49,11 @@
load_bytecode 'SDL/Rect.pir'
.local pmc digits
- digits = new 'SDL::Image'
+ digits = new ['SDL'; 'Image']
digits.'init'( 'runtime/parrot/library/SDL/LCD.png' )
set_global 'digits', digits
- newclass class, 'SDL::LCD'
+ newclass class, ['SDL'; 'LCD']
addattribute class, 'value'
addattribute class, 'numdigits'
addattribute class, 'xpos'
@@ -162,14 +162,14 @@
val = $S0
LEN_OK:
- rect = new 'SDL::Rect'
+ rect = new ['SDL'; 'Rect']
rect.'init'()
rect.'width'( 21 )
rect.'height'( 21 )
rect.'x'( 0 )
rect.'y'( 0 )
- drect = new 'SDL::Rect'
+ drect = new ['SDL'; 'Rect']
drect.'init'()
drect.'width'( 10 )
drect.'height'( 21 )
Modified: branches/ops_pct/runtime/parrot/library/SDL/Rect.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Rect.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Rect.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -12,7 +12,7 @@
# create a new SDL::Rect object
.local pmc rect
- rect = new 'SDL::Rect'
+ rect = new ['SDL'; 'Rect']
# now set the arguments on the object
rect.'init'( 'x' => 270, 'y' => 190, 'height' => 100, 'width'=> 100 )
@@ -33,16 +33,16 @@
=cut
-.namespace [ 'SDL::Rect' ]
+.namespace [ 'SDL'; 'Rect' ]
.sub _initialize :load
.local pmc class
- class = get_class 'SDL::Rect'
+ class = get_class ['SDL'; 'Rect']
if_null class, create_class
.return()
create_class:
- newclass class, 'SDL::Rect'
+ newclass class, ['SDL'; 'Rect']
addattribute class, '_rect'
.return ()
.end
@@ -105,7 +105,7 @@
check_done:
.local pmc fetch_layout
- get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+ get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
.local pmc layout
layout = fetch_layout( 'Rect' )
Modified: branches/ops_pct/runtime/parrot/library/SDL/Sprite.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Sprite.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Sprite.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -14,7 +14,7 @@
# create a new SDL::Sprite object
.local pmc sprite
- sprite = new 'SDL::Sprite'
+ sprite = new ['SDL'; 'Sprite']
# set the sprite's arguments
sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 270, 'dest_y' => 212, 'bgcolor' => black )
@@ -43,12 +43,12 @@
=cut
-.namespace [ 'SDL::Sprite' ]
+.namespace [ 'SDL'; 'Sprite' ]
.sub _initialize :load
.local pmc sprite_class
- newclass sprite_class, 'SDL::Sprite'
+ newclass sprite_class, ['SDL'; 'Sprite']
addattribute sprite_class, 'surface'
addattribute sprite_class, 'source_rect'
@@ -143,14 +143,14 @@
done:
# first the source rectangle
.local pmc source_rect
- source_rect = new 'SDL::Rect'
+ source_rect = new ['SDL'; 'Rect']
source_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
setattribute self, 'source_rect', source_rect
# now the dest rectangle
.local pmc rect
- rect = new 'SDL::Rect'
+ rect = new ['SDL'; 'Rect']
rect.'init'( 'x' => dest_x, 'y' => dest_y )
setattribute self, 'rect', rect
@@ -158,7 +158,7 @@
# and now the previous rect
.local pmc prev_rect
- prev_rect = new 'SDL::Rect'
+ prev_rect = new ['SDL'; 'Rect']
prev_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
setattribute self, 'prev_rect', prev_rect
@@ -170,13 +170,13 @@
# the drawn rect
.local pmc drawn_rect
- drawn_rect = new 'SDL::Rect'
+ drawn_rect = new ['SDL'; 'Rect']
drawn_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
setattribute self, 'drawn_rect', drawn_rect
# the undrawn rect
.local pmc undrawn_rect
- undrawn_rect = new 'SDL::Rect'
+ undrawn_rect = new ['SDL'; 'Rect']
undrawn_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
setattribute self, 'undrawn_rect', undrawn_rect
Modified: branches/ops_pct/runtime/parrot/library/SDL/StopWatch.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/StopWatch.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/StopWatch.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -8,7 +8,7 @@
=head1 SYNOPSIS
# create the stopwatch
- watch = new 'SDL::StopWatch', screen
+ watch = new ['SDL'; 'StopWatch'], screen
# set its position
watch.'xpos'( 5 )
@@ -33,18 +33,18 @@
.include "timer.pasm"
.include "iterator.pasm"
-.namespace ['SDL::StopWatch']
+.namespace ['SDL'; 'StopWatch']
.sub __onload :load
.local pmc class
- class = get_class 'SDL::StopWatch'
+ class = get_class ['SDL'; 'StopWatch']
if_null class, create_class
.return()
create_class:
load_bytecode "SDL/LCD.pir"
- class = get_class 'SDL::LCD'
- class = subclass class, 'SDL::StopWatch'
+ class = get_class ['SDL'; 'LCD']
+ class = subclass class, ['SDL'; 'StopWatch']
addattribute $P0, 'time'
addattribute $P0, 'precision'
addattribute $P0, 'start'
@@ -125,7 +125,7 @@
time $N0
start = $N0
- $P0 = find_global "SDL::StopWatch::Timer", "addWatch"
+ $P0 = find_global ['SDL'; 'StopWatch'; 'Timer'], "addWatch"
$P0( self )
END:
.end
@@ -161,7 +161,7 @@
total = $N0
start = 0
- $P0 = find_global "SDL::StopWatch::Timer", "removeWatch"
+ $P0 = find_global ['SDL'; 'StopWatch'; 'Timer'], "removeWatch"
$P0( self )
END:
.end
@@ -244,20 +244,20 @@
.local pmc screen
screen = getattribute self, 'screen'
- $P0 = find_global "SDL::LCD", "draw"
+ $P0 = find_global ['SDL'; 'LCD'], "draw"
$P0( screen )
.end
-.namespace ["SDL::StopWatch::Timer"]
+.namespace ['SDL'; 'StopWatch'; 'Timer']
.sub __onload :load
# XXX: an old array will be overwritten when loading this file again
$P0 = new 'ResizablePMCArray'
- store_global "SDL::StopWatch::Timer", "array", $P0
+ store_global ['SDL'; 'StopWatch'; 'Timer'], "array", $P0
$P0 = new 'FixedPMCArray'
- $P1 = find_global "SDL::StopWatch::Timer", "tick"
+ $P1 = find_global ['SDL'; 'StopWatch'; 'Timer'], "tick"
$P0 = 8
$P0[0] = .PARROT_TIMER_NSEC
$P0[1] = 0.1
@@ -269,15 +269,15 @@
$P0[7] = 0
$P0 = new 'Timer', $P0
- store_global "SDL::StopWatch::Timer", "timer", $P0
+ store_global ['SDL'; 'StopWatch'; 'Timer'], "timer", $P0
.end
.sub tick
.local pmc timer
.local pmc array
- timer = find_global "SDL::StopWatch::Timer", "timer"
- array = find_global "SDL::StopWatch::Timer", "array"
+ timer = find_global ['SDL'; 'StopWatch'; 'Timer'], "timer"
+ array = find_global ['SDL'; 'StopWatch'; 'Timer'], "array"
$I0 = array
if $I0 == 0 goto DISABLE
@@ -303,8 +303,8 @@
.local pmc timer
.local pmc array
- timer = find_global "SDL::StopWatch::Timer", "timer"
- array = find_global "SDL::StopWatch::Timer", "array"
+ timer = find_global ['SDL'; 'StopWatch'; 'Timer'], "timer"
+ array = find_global ['SDL'; 'StopWatch'; 'Timer'], "array"
push array, obj
timer[.PARROT_TIMER_RUNNING] = 1
@@ -315,8 +315,8 @@
.local pmc timer
.local pmc array
- timer = find_global "SDL::StopWatch::Timer", "timer"
- array = find_global "SDL::StopWatch::Timer", "array"
+ timer = find_global ['SDL'; 'StopWatch'; 'Timer'], "timer"
+ array = find_global ['SDL'; 'StopWatch'; 'Timer'], "array"
# XXX: stops all watches ATM; just remove the timer from the array
timer[.PARROT_TIMER_RUNNING] = 0
Modified: branches/ops_pct/runtime/parrot/library/SDL/Surface.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/SDL/Surface.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/SDL/Surface.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -11,7 +11,7 @@
load_bytecode 'SDL/Surface.pir'
# create a new SDL::Surface object
- surface = new 'SDL::Surface'
+ surface = new ['SDL'; 'Surface']
surface.'init'( 'height' => 480, 'width' => 640 )
# ... blit to, fill, update, and flip this surface as necessary
@@ -32,16 +32,16 @@
=cut
-.namespace [ 'SDL::Surface' ]
+.namespace [ 'SDL'; 'Surface' ]
.sub _initialize :load
.local pmc class
- class = get_class 'SDL::Surface'
+ class = get_class ['SDL'; 'Surface']
if_null class, create_class
.return()
create_class:
- newclass class, 'SDL::Surface'
+ newclass class, ['SDL'; 'Surface']
addattribute class, 'surface'
.end
@@ -92,7 +92,7 @@
alpha = 0
create_surface:
- SDL_CreateRGBSurface = get_hll_global ['SDL::NCI'], 'CreateRGBSurface'
+ SDL_CreateRGBSurface = get_hll_global ['SDL'; 'NCI'], 'CreateRGBSurface'
.local pmc surface
surface = SDL_CreateRGBSurface( flags, width, height, depth, red, green, blue, alpha )
@@ -115,7 +115,7 @@
.param pmc surface_struct
.local pmc fetch_layout
- get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+ get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
.local pmc layout
layout = fetch_layout( 'Surface' )
@@ -207,7 +207,7 @@
.param pmc color_object
.local pmc SDL_FillRect
- SDL_FillRect = get_hll_global ['SDL::NCI'], 'FillRect'
+ SDL_FillRect = get_hll_global ['SDL'; 'NCI'], 'FillRect'
.local pmc surface
getattribute surface, self, 'surface'
@@ -248,7 +248,7 @@
width = rect.'width'()
.local pmc SDL_UpdateRect
- SDL_UpdateRect = get_hll_global ['SDL::NCI'], 'UpdateRect'
+ SDL_UpdateRect = get_hll_global ['SDL'; 'NCI'], 'UpdateRect'
SDL_UpdateRect( surface, x, y, width, height )
.end
@@ -267,7 +267,7 @@
set count, rects
.local pmc fetch_layout
- get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+ get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
.local pmc rect_array_layout
@@ -309,7 +309,7 @@
getattribute surface, self, 'surface'
.local pmc UpdateRects
- UpdateRects = get_hll_global ['SDL::NCI'], 'UpdateRects'
+ UpdateRects = get_hll_global ['SDL'; 'NCI'], 'UpdateRects'
UpdateRects( surface, count, rect_array )
.end
@@ -327,7 +327,7 @@
getattribute surface, self, 'surface'
.local pmc SDL_Flip
- SDL_Flip = get_hll_global ['SDL::NCI'], 'Flip'
+ SDL_Flip = get_hll_global ['SDL'; 'NCI'], 'Flip'
SDL_Flip( surface )
@@ -351,7 +351,7 @@
.param pmc dest
.local pmc SDL_BlitSurface
- SDL_BlitSurface = get_hll_global ['SDL::NCI'], 'BlitSurface'
+ SDL_BlitSurface = get_hll_global ['SDL'; 'NCI'], 'BlitSurface'
.local pmc source_surface
.local pmc dest_surface
@@ -400,7 +400,7 @@
getattribute surface, self, 'surface'
.local pmc SetColorKey
- SetColorKey = get_hll_global ['SDL::NCI'], 'SetColorKey'
+ SetColorKey = get_hll_global ['SDL'; 'NCI'], 'SetColorKey'
SetColorKey( surface, 8, color_value )
.end
@@ -435,7 +435,7 @@
surface = self.'surface'()
.local pmc LockSurface
- get_hll_global LockSurface, ['SDL::NCI'], 'LockSurface'
+ get_hll_global LockSurface, ['SDL'; 'NCI'], 'LockSurface'
LockSurface( surface )
@@ -453,7 +453,7 @@
surface = self.'surface'()
.local pmc UnlockSurface
- get_hll_global UnlockSurface, ['SDL::NCI'], 'UnlockSurface'
+ get_hll_global UnlockSurface, ['SDL'; 'NCI'], 'UnlockSurface'
UnlockSurface( surface )
Modified: branches/ops_pct/runtime/parrot/library/Test/Builder/Test.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Test/Builder/Test.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Test/Builder/Test.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -30,20 +30,20 @@
addattribute tbtb_class, 'todo'
.local pmc tbtp_class
- subclass tbtp_class, tbtb_class, 'Test::Builder::Test::Pass'
+ subclass tbtp_class, tbtb_class, ['Test'; 'Builder'; 'Test'; 'Pass']
.local pmc tbtf_class
- subclass tbtf_class, tbtb_class, 'Test::Builder::Test::Fail'
+ subclass tbtf_class, tbtb_class, ['Test'; 'Builder'; 'Test'; 'Fail']
.local pmc tbtwr_class
- subclass tbtwr_class, tbtb_class, 'Test::Builder::Test::WithReason'
+ subclass tbtwr_class, tbtb_class, ['Test'; 'Builder'; 'Test'; 'WithReason']
addattribute tbtwr_class, 'reason'
.local pmc tbts_class
- subclass tbts_class, tbtwr_class, 'Test::Builder::Test::Skip'
+ subclass tbts_class, tbtwr_class, ['Test'; 'Builder'; 'Test'; 'Skip']
.local pmc tbtt_class
- subclass tbtt_class, tbtwr_class, 'Test::Builder::Test::TODO'
+ subclass tbtt_class, tbtwr_class, ['Test'; 'Builder'; 'Test'; 'TODO']
.end
=item C<create( args_hash )>
@@ -86,37 +86,32 @@
.sub create
.param pmc args
- .local string test_class
+ .local pmc test
.local int type_flag
CHECK_TODO:
type_flag = args['todo']
unless type_flag goto CHECK_SKIP
- test_class = 'Test::Builder::Test::TODO'
- goto CREATE_TEST
+ test = new ['Test'; 'Builder'; 'Test'; 'TODO'], args
+ .return( test )
CHECK_SKIP:
type_flag = args['skip']
unless type_flag goto CHECK_PASS
- test_class = 'Test::Builder::Test::Skip'
- goto CREATE_TEST
+ test = new ['Test'; 'Builder'; 'Test'; 'Skip'], args
+ .return( test )
CHECK_PASS:
type_flag = args['passed']
unless type_flag goto CHECK_FAIL
- test_class = 'Test::Builder::Test::Pass'
- goto CREATE_TEST
+ test = new ['Test'; 'Builder'; 'Test'; 'Pass'], args
+ .return( test )
CHECK_FAIL:
- test_class = 'Test::Builder::Test::Fail'
- goto CREATE_TEST
-
- CREATE_TEST:
- .local pmc test
- test = new test_class, args
+ test = new ['Test'; 'Builder'; 'Test'; 'Fail'], args
.return( test )
.end
@@ -246,12 +241,12 @@
.end
# no code here
-.namespace [ 'Test::Builder::Test::Pass' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'Pass' ]
# no code here either
-.namespace [ 'Test::Builder::Test::Fail' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'Fail' ]
-.namespace [ 'Test::Builder::Test::WithReason' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'WithReason' ]
.sub init_pmc :vtable :method
.param pmc args
@@ -282,7 +277,7 @@
.local pmc status
.local pmc parent_status
- parent_status = get_hll_global ['Test::Builder::Test::WithReason'], 'status'
+ parent_status = get_hll_global ['Test'; 'Builder'; 'Test'; 'WithReason'], 'status'
status = parent_status()
reason = self.'reason'()
@@ -291,7 +286,7 @@
.return( status )
.end
-.namespace [ 'Test::Builder::Test::Skip' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'Skip' ]
.sub report :method
.local pmc reason
@@ -317,14 +312,14 @@
.local pmc status
.local pmc parent_status
- parent_status = get_hll_global ['Test::Builder::Test::WithReason'], 'status'
+ parent_status = get_hll_global ['Test'; 'Builder'; 'Test'; 'WithReason'], 'status'
status = parent_status()
set status['skip'], 1
.return( status )
.end
-.namespace [ 'Test::Builder::Test::TODO' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'TODO' ]
.sub report :method
.local pmc passed
@@ -362,7 +357,7 @@
.local pmc status
.local pmc parent_status
- parent_status = get_hll_global ['Test::Builder::Test::WithReason'], 'status'
+ parent_status = get_hll_global ['Test'; 'Builder'; 'Test'; 'WithReason'], 'status'
status = parent_status()
passed = self.'passed'()
@@ -384,7 +379,7 @@
=head1 COPYRIGHT
-Copyright (C) 2005-2008, Parrot Foundation.
+Copyright (C) 2005-2010, Parrot Foundation.
=cut
Modified: branches/ops_pct/runtime/parrot/library/Test/More.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/Test/More.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/Test/More.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -35,6 +35,8 @@
is( some_pmc, another_pmc, 'pmc comparison uses "eq" op' )
+ is_null( some_pmc, 'pmc was null' )
+
diag( 'this may take a while' )
is_deeply( some_deep_pmc, another_deep_pmc, 'deep structure comparison' )
@@ -155,6 +157,20 @@
=cut
+.sub one_or_both_null
+ .param pmc left
+ .param pmc right
+
+ .local int one
+ .local int both
+
+ $I0 = isnull left
+ $I1 = isnull right
+ or one, $I0, $I1
+ and both, $I0, $I1
+ .return (one, both)
+.end
+
.sub is :multi(PMC, Integer)
.param pmc left
.param pmc right
@@ -164,11 +180,17 @@
.local pmc test
get_hll_global test, [ 'Test'; 'More' ], '_test'
- .local int l, r, pass
+ .local int pass
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto report
+
+ .local int l, r
l = left
r = right
+
pass = iseq l, r
+report:
test.'ok'( pass, description )
if pass goto done
@@ -176,17 +198,27 @@
.local string l_string
.local string r_string
+ l_string = 'null'
+ if null left goto r_str
l_string = left
+
+r_str:
+ r_string = 'null'
+ if null right goto diag
r_string = right
+diag:
diagnostic = _make_diagnostic( l_string, r_string )
test.'diag'( diagnostic )
done:
.end
-.sub is :multi(_, Float)
- .param num left
- .param num right
+#.sub is :multi(_, Float)
+# .param num left
+# .param num right
+.sub is :multi(PMC, Float)
+ .param pmc left
+ .param pmc right
.param string description :optional
.param int have_desc :opt_flag
.param num precision :optional
@@ -195,15 +227,23 @@
.local pmc test
get_hll_global test, [ 'Test'; 'More' ], '_test'
+ .local int pass
+
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto report
+
+ .local num l, r
+ l = left
+ r = right
+
if have_prec goto check_precision
- .local int pass
- pass = iseq left, right
+ pass = iseq l, r
goto report
check_precision:
.local num diff
- diff = left - right
+ diff = l - r
diff = abs diff
pass = isle diff, precision
@@ -215,10 +255,17 @@
.local string l_string
.local string r_string
+ l_string = 'null'
+ if null left goto r_str
l_string = left
+
+r_str:
+ r_string = 'null'
+ if null right goto diag
r_string = right
- diagnostic = _make_diagnostic( left, right )
+diag:
+ diagnostic = _make_diagnostic( l_string, r_string )
test.'diag'( diagnostic )
done:
.end
@@ -232,12 +279,16 @@
.local pmc test
get_hll_global test, [ 'Test'; 'More' ], '_test'
- .local string l, r
.local int pass
- l = left
- r = right
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto report
+
+ .local string l, r
+ l = left
+ r = right
pass = iseq l, r
+report:
test.'ok'( pass, description )
if pass goto done
@@ -245,9 +296,16 @@
.local string l_string
.local string r_string
+ l_string = 'null'
+ if null left goto r_str
l_string = left
+
+r_str:
+ r_string = 'null'
+ if null right goto diag
r_string = right
+diag:
diagnostic = _make_diagnostic( l_string, r_string )
test.'diag'( diagnostic )
done:
@@ -263,8 +321,11 @@
get_hll_global test, [ 'Test'; 'More' ], '_test'
.local int pass
- .local int does_type
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto result
+
+ .local int does_type
does_type = does right, 'String'
if does_type goto check_string
@@ -300,9 +361,16 @@
.local string l_string
.local string r_string
+ l_string = 'null'
+ if null left goto r_str
l_string = left
+
+r_str:
+ r_string = 'null'
+ if null right goto diag
r_string = right
+diag:
diagnostic = _make_diagnostic( l_string, r_string )
test.'diag'( diagnostic )
done:
@@ -324,7 +392,9 @@
get_hll_global test, [ 'Test'; 'More' ], '_test'
.local int pass
- pass = 0
+
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto report
if left != right goto pass_it
goto report
@@ -359,7 +429,9 @@
get_hll_global test, [ 'Test'; 'More' ], '_test'
.local int pass
- pass = 0
+
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto report
ne left, right, pass_it
goto report
@@ -394,7 +466,9 @@
get_hll_global test, [ 'Test'; 'More' ], '_test'
.local int pass
- pass = 0
+
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto report
ne left, right, pass_it
goto report
@@ -428,8 +502,12 @@
.local pmc test
get_hll_global test, [ 'Test'; 'More' ], '_test'
- # this comparison may not work in general, but it's worth trying
.local int pass
+
+ ($I0, pass) = one_or_both_null(left, right)
+ if $I0 goto report
+
+ # this comparison may not work in general, but it's worth trying
pass = isne left, right
report:
@@ -848,6 +926,37 @@
.return( equal )
.end
+=item C<is_null( pmc, description )>
+
+Records a passing test if the PMC passed in is null, fails otherwise.
+
+=cut
+
+.sub is_null
+ .param pmc victim
+ .param string description :optional
+
+ .local pmc test
+ get_hll_global test, [ 'Test'; 'More' ], '_test'
+
+ .local int passed
+ passed = isnull victim
+
+ test.'ok'( passed, description )
+ if passed goto done
+
+ .local string v_string
+ v_string = 'null'
+ if null victim goto diag
+ v_string = victim
+
+ diag:
+ .local string diagnostic
+ diagnostic = _make_diagnostic( v_string, 'null')
+ test.'diag'( diagnostic )
+ done:
+.end
+
=item C<dies_ok( codestring, description )>
Takes PIR code in C<codestring> and an optional message in C<description>.
Modified: branches/ops_pct/runtime/parrot/library/YAML/Dumper.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/YAML/Dumper.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/YAML/Dumper.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -3,19 +3,19 @@
.sub __library_data_dumper_onload :load
.local pmc yd_class
- yd_class = get_class "YAML::Dumper"
+ yd_class = get_class ['YAML'; 'Dumper']
if null yd_class goto load_library
goto END
load_library:
load_bytecode 'YAML/Dumper/Default.pbc'
- newclass $P0, "YAML::Dumper"
+ newclass $P0, ['YAML'; 'Dumper']
END:
.return ()
.end
-.namespace ["YAML::Dumper"]
+.namespace ['YAML'; 'Dumper']
.sub yaml :method
.param pmc dump
@@ -36,7 +36,7 @@
.local pmc ydd_class
push_eh ERROR2
- ydd_class = get_class "YAML::Dumper::Default"
+ ydd_class = get_class ['YAML'; 'Dumper'; 'Default']
style = ydd_class."new"()
pop_eh
@@ -52,14 +52,14 @@
ERROR2:
pop_eh
- print "can not find class YAML::Dumper::Default!\n"
+ print "can not find class ['YAML'; 'Dumper'; 'Default']!\n"
end
.return ( 0 )
ERROR:
print "Syntax:\n"
- print "YAML::Dumper::yaml( pmc )\n"
- print "YAML::Dumper::yaml( pmc, name )\n"
- print "YAML::Dumper::yaml( pmc, name, indent )\n"
+ print "yaml( pmc )\n"
+ print "yaml( pmc, name )\n"
+ print "yaml( pmc, name, indent )\n"
.return ( 0 )
.end
Modified: branches/ops_pct/runtime/parrot/library/YAML/Dumper/Base.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/YAML/Dumper/Base.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/YAML/Dumper/Base.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -28,12 +28,12 @@
.sub __library_data_dumper_base_onload :load
.local pmc ydb_class
- ydb_class = get_class "YAML::Dumper::Base"
+ ydb_class = get_class ['YAML'; 'Dumper'; 'Base']
if null ydb_class goto create_ydb
goto END
create_ydb:
- newclass $P0, "YAML::Dumper::Base"
+ newclass $P0, ['YAML'; 'Dumper'; 'Base']
addattribute $P0, "yaml"
addattribute $P0, "level"
addattribute $P0, "indention"
@@ -43,7 +43,7 @@
.return ()
.end
-.namespace ["YAML::Dumper::Base"]
+.namespace ['YAML'; 'Dumper'; 'Base']
=item style."prepare"( yaml, indent )
Modified: branches/ops_pct/runtime/parrot/library/YAML/Dumper/Default.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/YAML/Dumper/Default.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/YAML/Dumper/Default.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -20,19 +20,19 @@
.sub __library_data_dumper_default_onload :load
.local pmc ydb_class
- ydb_class = get_class "YAML::Dumper::Default"
+ ydb_class = get_class ['YAML'; 'Dumper'; 'Default']
if null ydb_class goto create_ydb
goto END
create_ydb:
load_bytecode 'YAML/Dumper/Base.pbc'
- get_class $P0, "YAML::Dumper::Base"
- subclass $P0, $P0, "YAML::Dumper::Default"
+ get_class $P0, ['YAML'; 'Dumper'; 'Base']
+ subclass $P0, $P0, ['YAML'; 'Dumper'; 'Default']
END:
.return ()
.end
-.namespace ["YAML::Dumper::Default"]
+.namespace ['YAML'; 'Dumper'; 'Default']
=head1 METHODS
Modified: branches/ops_pct/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/distutils.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/distutils.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,4 @@
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -14,7 +14,7 @@
to a wider audience with very little overhead for build/release/install mechanics.
All the rules needed (dynops, dynpmc, pbc_to_exe, nqp, ...) are coded in this module distutils.
-A module author just must write a script C<setup.pir> (or C<setup.nqp> in future).
+A module author just must write a script C<setup.pir> or C<setup.nqp>.
A setup script can be as simple as this:
@@ -194,6 +194,8 @@
L<http://bitbucket.org/riffraff/shakespeare-parrot/src/tip/setup.pir>
+L<http://gitorious.org/kakapo/kakapo/blobs/master/setup.nqp>
+
=cut
.sub '__onload' :load :init :anon
@@ -212,6 +214,8 @@
register_step_after('build', _build_pir_nqp)
.const 'Sub' _build_pir_nqp_rx = '_build_pir_nqp_rx'
register_step_after('build', _build_pir_nqp_rx)
+ .const 'Sub' _build_pir_pir = '_build_pir_pir'
+ register_step_after('build', _build_pir_pir)
.const 'Sub' _build_pbc_pir = '_build_pbc_pir'
register_step_after('build', _build_pbc_pir)
.const 'Sub' _build_pbc_pbc = '_build_pbc_pbc'
@@ -235,6 +239,8 @@
register_step_after('clean', _clean_pir_nqp)
.const 'Sub' _clean_pir_nqp_rx = '_clean_pir_nqp_rx'
register_step_after('clean', _clean_pir_nqp_rx)
+ .const 'Sub' _clean_pir_pir = '_clean_pir_pir'
+ register_step_after('clean', _clean_pir_pir)
.const 'Sub' _clean_pbc_pir = '_clean_pbc_pir'
register_step_after('clean', _clean_pbc_pir)
.const 'Sub' _clean_pbc_pbc = '_clean_pbc_pbc'
@@ -322,7 +328,7 @@
=cut
-.sub 'setup'
+.sub 'setup' :multi()
.param pmc args :slurpy
.param pmc kv :slurpy :named
.local pmc steps
@@ -358,7 +364,7 @@
if $I0 goto L11
print "unknown target : "
say $S0
- run_step('usage')
+ run_step('usage', kv :flat :named)
L12:
pop_eh
end
@@ -368,6 +374,12 @@
rethrow ex
.end
+.sub 'setup' :multi(ResizableStringArray,Hash)
+ .param pmc array
+ .param pmc hash
+ .tailcall setup(array :flat, hash :flat :named)
+.end
+
=item run_step
Call a step by its name.
@@ -450,15 +462,27 @@
Overload the default message
+=item setup
+
+the default value is setup.pir
+
=back
=cut
.sub '_usage' :anon
.param pmc kv :slurpy :named
- .local string msg
- msg = <<'USAGE'
-usage: parrot setup.pir [target|--key value]*
+ .local string setup
+ setup = get_value('setup', "setup.pir" :named('default'), kv :flat :named)
+ .local string command
+ command = _command_setup(setup)
+
+ $P0 = new 'FixedStringArray'
+ set $P0, 1
+ $P0[0] = command
+
+ $S0 = <<'USAGE'
+usage: %s [target|--key value]*
Default targets are :
@@ -482,7 +506,8 @@
help: Print this help message.
USAGE
- $S0 = get_value('usage', msg :named('default'), kv :flat :named)
+ $S0 = sprintf $S0, $P0
+ $S0 = get_value('usage', $S0 :named('default'), kv :flat :named)
say $S0
.end
@@ -695,7 +720,7 @@
L2:
.end
-=item pir_nqp-rx
+=item pir_nqp-rx / pir_nqprx
hash
@@ -712,6 +737,11 @@
$P0 = kv['pir_nqp-rx']
build_pir_nqp_rx($P0)
L1:
+ $I0 = exists kv['pir_nqprx']
+ unless $I0 goto L2
+ $P0 = kv['pir_nqprx']
+ build_pir_nqp_rx($P0)
+ L2:
.end
.sub 'build_pir_nqp_rx'
@@ -735,6 +765,50 @@
L2:
.end
+=item pir_pir (concat)
+
+hash
+
+the key is the PIR pathname
+
+the value is an array of PIR pathname
+
+=cut
+
+.sub '_build_pir_pir' :anon
+ .param pmc kv :slurpy :named
+ $I0 = exists kv['pir_pir']
+ unless $I0 goto L1
+ $P0 = kv['pir_pir']
+ build_pir_pir($P0)
+ L1:
+.end
+
+.sub 'build_pir_pir'
+ .param pmc hash
+ $P0 = iter hash
+ L1:
+ unless $P0 goto L2
+ .local string pir, src
+ pir = shift $P0
+ .local pmc srcs
+ srcs = hash[pir]
+ $I0 = newer(pir, srcs)
+ if $I0 goto L1
+ spew(pir, '', 1 :named('verbose'))
+ $P1 = iter srcs
+ L3:
+ unless $P1 goto L4
+ .local string src
+ src = shift $P1
+ $S0 = slurp(src)
+ append(pir, $S0)
+ goto L3
+ L4:
+ goto L1
+ L2:
+.end
+
=item pbc_pbc
hash
@@ -1075,9 +1149,11 @@
hash
-the key is the group name
+the key is the PMC name
-the value is an array of PMC pathname
+the value is an array of PMC pathname or a single PPC pathname
+
+an array creates a PMC group
=item dynpmc_cflags
@@ -1108,10 +1184,12 @@
$P0 = iter hash
L1:
unless $P0 goto L2
- .local string group
- group = shift $P0
+ .local string name
+ name = shift $P0
.local pmc srcs
- srcs = hash[group]
+ srcs = hash[name]
+ $I0 = does srcs, 'array'
+ unless $I0 goto L5
$P1 = iter srcs
L3:
unless $P1 goto L4
@@ -1123,11 +1201,18 @@
__build_dynpmc(src, cflags)
goto L3
L4:
- if group == '' goto L1
- $S0 = _mk_path_dynpmc(group, load_ext)
+ $S0 = _mk_path_dynpmc(name, load_ext)
$I0 = newer($S0, srcs)
if $I0 goto L1
- __build_dynpmc_group(srcs, group, cflags, ldflags)
+ __build_dynpmc_group(srcs, name, cflags, ldflags)
+ goto L1
+ L5:
+ src = srcs
+ $S0 = _mk_path_dynpmc(name, load_ext)
+ $I0 = newer($S0, src)
+ if $I0 goto L1
+ __build_dynpmc(src, cflags)
+ __build_dynpmc_alone(src, name, cflags, ldflags)
goto L1
L2:
.end
@@ -1269,6 +1354,50 @@
L6:
.end
+.sub '__build_dynpmc_alone' :anon
+ .param string src
+ .param string name
+ .param string cflags
+ .param string ldflags
+ .local pmc config
+ config = get_config()
+
+ .local string dynext
+ $S0 = config['load_ext']
+ dynext = _mk_path_dynpmc(name, $S0)
+ .local string cmd
+ cmd = config['ld']
+ cmd .= " "
+ $S0 = config['ld_out']
+ cmd .= $S0
+ cmd .= dynext
+ cmd .= " "
+ $S0 = config['o']
+ $S0 = _mk_path_gen_dynpmc(src, $S0)
+ cmd .= $S0
+ cmd .= " "
+ $S0 = get_ldflags()
+ cmd .= $S0
+ cmd .= " "
+ $S0 = config['ld_load_flags']
+ cmd .= $S0
+ cmd .= " "
+ $I0 = config['parrot_is_shared']
+ unless $I0 goto L5
+ $S0 = config['inst_libparrot_ldflags']
+ cmd .= $S0
+ cmd .= " "
+ L5:
+ cmd .= ldflags
+ system(cmd, 1 :named('verbose'))
+
+ $I0 = _has_strip(cflags)
+ unless $I0 goto L6
+ cmd = "strip " . dynext
+ system(cmd, 1 :named('verbose'))
+ L6:
+.end
+
.sub '_mk_path_dynpmc' :anon
.param string group
.param string load_ext
@@ -1375,6 +1504,19 @@
L2:
.end
+=item pir_pir
+
+=cut
+
+.sub '_clean_pir_pir' :anon
+ .param pmc kv :slurpy :named
+ $I0 = exists kv['pir_pir']
+ unless $I0 goto L1
+ $P0 = kv['pir_pir']
+ clean_key($P0)
+ L1:
+.end
+
=item pir_pge
=cut
@@ -1414,7 +1556,7 @@
L1:
.end
-=item pir_nqp-rx
+=item pir_nqp-rx / pir_nqprx
=cut
@@ -1425,6 +1567,11 @@
$P0 = kv['pir_nqp-rx']
clean_key($P0)
L1:
+ $I0 = exists kv['pir_nqprx']
+ unless $I0 goto L2
+ $P0 = kv['pir_nqprx']
+ clean_key($P0)
+ L2:
.end
=item pbc_pbc
@@ -1580,12 +1727,14 @@
$P0 = iter hash
L1:
unless $P0 goto L2
- .local string group
- group = shift $P0
+ .local string name
+ name = shift $P0
.local pmc srcs
- srcs = hash[group]
- $S0 = _mk_path_dynpmc(group, load_ext)
+ srcs = hash[name]
+ $S0 = _mk_path_dynpmc(name, load_ext)
unlink($S0, 1 :named('verbose'))
+ $I0 = does srcs, 'array'
+ unless $I0 goto L5
$P1 = iter srcs
L3:
unless $P1 goto L4
@@ -1602,11 +1751,22 @@
goto L3
L4:
src = srcs[0]
- $S0 = _mk_path_gen_dynpmc_group(src, group, '.c')
+ $S0 = _mk_path_gen_dynpmc_group(src, name, '.c')
unlink($S0, 1 :named('verbose'))
- $S0 = _mk_path_gen_dynpmc_group(src, group, '.h')
+ $S0 = _mk_path_gen_dynpmc_group(src, name, '.h')
unlink($S0, 1 :named('verbose'))
- $S0 = _mk_path_gen_dynpmc_group(src, group, obj)
+ $S0 = _mk_path_gen_dynpmc_group(src, name, obj)
+ unlink($S0, 1 :named('verbose'))
+ goto L1
+ L5:
+ src = srcs
+ $S0 = _mk_path_gen_dynpmc(src, '.c')
+ unlink($S0, 1 :named('verbose'))
+ $S0 = _mk_path_gen_dynpmc(src, '.h')
+ unlink($S0, 1 :named('verbose'))
+ $S0 = _mk_path_gen_dynpmc(src, '.dump')
+ unlink($S0, 1 :named('verbose'))
+ $S0 = _mk_path_gen_dynpmc(src, obj)
unlink($S0, 1 :named('verbose'))
goto L1
L2:
@@ -2348,6 +2508,10 @@
=item project_uri
+=item setup
+
+the default value is setup.pir
+
=back
=cut
@@ -2421,6 +2585,11 @@
keywords .= "\""
L10:
+ .local string setup
+ setup = get_value('setup', "setup.pir" :named('default'), kv :flat :named)
+ .local string instruction
+ instruction = _plumage_instruction(setup)
+
.local string vcs
vcs = get_vcs()
@@ -2434,7 +2603,7 @@
project_uri =get_value('project_uri', kv :flat :named)
$P0 = new 'FixedStringArray'
- set $P0, 16
+ set $P0, 23
$P0[0] = name
$P0[1] = abstract
$P0[2] = authority
@@ -2445,12 +2614,19 @@
$P0[7] = packager
$P0[8] = keywords
$P0[9] = description
- $P0[10] = name
- $P0[11] = vcs
- $P0[12] = vcs
- $P0[13] = checkout_uri
- $P0[14] = browser_uri
- $P0[15] = project_uri
+ $P0[10] = instruction
+ $P0[11] = instruction
+ $P0[12] = instruction
+ $P0[13] = instruction
+ $P0[14] = instruction
+ $P0[15] = instruction
+ $P0[16] = instruction
+ $P0[17] = name
+ $P0[18] = vcs
+ $P0[19] = vcs
+ $P0[20] = checkout_uri
+ $P0[21] = browser_uri
+ $P0[22] = project_uri
$S0 = <<'TEMPLATE'
{
@@ -2477,25 +2653,25 @@
"type" : "repository"
},
"update" : {
- "type" : "parrot_setup"
+ "type" : "%s"
},
"build" : {
- "type" : "parrot_setup"
+ "type" : "%s"
},
"test" : {
- "type" : "parrot_setup"
+ "type" : "%s"
},
"smoke" : {
- "type" : "parrot_setup"
+ "type" : "%s"
},
"install" : {
- "type" : "parrot_setup"
+ "type" : "%s"
},
"uninstall": {
- "type" : "parrot_setup"
+ "type" : "%s"
},
"clean" : {
- "type" : "parrot_setup"
+ "type" : "%s"
}
},
"dependency-info" : {
@@ -2531,6 +2707,18 @@
.return (str)
.end
+.sub '_plumage_instruction' :anon
+ .param string setup
+ .local string instruction
+ instruction = "parrot_setup"
+ $I0 = index setup, "."
+ $S0 = substr setup, $I0
+ unless $S0 == '.nqp' goto L1
+ instruction = "nqp_setup"
+ L1:
+ .return (instruction)
+.end
+
=head3 Step manifest
=over 4
@@ -2547,13 +2735,17 @@
array of pathname or a single pathname
-=item pbc_pir, pir_pge, pir_tge, pir_nqp, pir_nqp-rx, pbc_pbc, exe_pbc,
-installable_pbc, dynops, dynpmc, html_pod
+=item pbc_pir, pir_pge, pir_tge, pir_nqp, pir_nqp-rx, pir_nqprx, pir_pir
+pbc_pbc, exe_pbc, installable_pbc, dynops, dynpmc, html_pod
=item inst_bin, inst_dynext, inst_inc, inst_lang, inst_lib
=item harness_files, prove_files
+=item setup
+
+the default value is setup.pir
+
=back
=cut
@@ -2579,7 +2771,7 @@
needed = new 'Hash'
generated = new 'Hash'
- $P0 = split ' ', 'pbc_pir pir_pge pir_tge pir_nqp pir_nqp-rx pbc_pbc exe_pbc installable_pbc dynops dynpmc html_pod'
+ $P0 = split ' ', 'pbc_pir pir_pge pir_tge pir_nqp pir_nqp-rx pir_nqprx pir_pir pbc_pbc exe_pbc installable_pbc dynops dynpmc html_pod'
L1:
unless $P0 goto L2
$S0 = shift $P0
@@ -2617,7 +2809,9 @@
_manifest_add_glob(needed, 't/*.t')
L7:
- $P0 = split ' ', 'setup.pir setup.nqp t/harness'
+ $P0 = split ' ', 't/harness'
+ $S0 = get_value('setup', 'setup.pir' :named('default'), kv :flat :named)
+ push $P0, $S0
L8:
unless $P0 goto L9
$S0 = shift $P0
@@ -2984,6 +3178,10 @@
=item inst_bin, inst_dynext, inst_inc, inst_lang, inst_lib
+=item setup
+
+the default value is setup.pir
+
=back
=cut
@@ -3059,8 +3257,13 @@
.local string packager
packager = get_value('packager', "you <you at you.org>" :named('default'), kv :flat :named)
+ .local string setup
+ setup = get_value('setup', "setup.pir" :named('default'), kv :flat :named)
+ .local string command
+ command = _command_setup(setup)
+
$P0 = new 'FixedStringArray'
- set $P0, 9
+ set $P0, 12
$P0[0] = parrot_version
$P0[1] = name
$P0[2] = version
@@ -3070,6 +3273,9 @@
$P0[6] = project_uri
$P0[7] = tarball
$P0[8] = description
+ $P0[9] = command
+ $P0[10] = command
+ $P0[11] = command
$S0 = <<'TEMPLATE'
%%define parrot_version %s
@@ -3093,14 +3299,14 @@
%%setup -n %%{name}-%%{version}
%%build
-parrot setup.pir
+%s
%%install
rm -rf $RPM_BUILD_ROOT
-parrot setup.pir --root $RPM_BUILD_ROOT install
+%s --root $RPM_BUILD_ROOT install
%%check
-parrot setup.pir test
+%s test
%%clean
rm -rf $RPM_BUILD_ROOT
@@ -3142,6 +3348,19 @@
.return (spec)
.end
+.sub '_command_setup' :anon
+ .param string setup
+ .local string command
+ command = "parrot "
+ $I0 = index setup, '.'
+ $S0 = substr setup, $I0
+ unless $S0 == '.nqp' goto L1
+ command = "parrot-nqp "
+ L1:
+ command .= setup
+ .return (command)
+.end
+
=head3 Step bdist_rpm
=cut
@@ -3202,6 +3421,10 @@
=item inst_bin, inst_dynext, inst_inc, inst_lang, inst_lib
+=item setup
+
+the default value is setup.pir
+
=back
=cut
@@ -3417,6 +3640,17 @@
.sub 'mk_deb_rules' :anon
.param pmc kv :slurpy :named
+ .local string setup
+ setup = get_value('setup', "setup.pir" :named('default'), kv :flat :named)
+ .local string command
+ command = _command_setup(setup)
+
+ $P0 = new 'FixedStringArray'
+ set $P0, 3
+ $P0[0] = command
+ $P0[1] = command
+ $P0[2] = command
+
$S0 = <<'TEMPLATE'
#!/usr/bin/make -f
# -*- makefile -*-
@@ -3431,14 +3665,14 @@
build: build-stamp
build-stamp: configure-stamp
dh_testdir
- parrot setup.pir build
+ %s build
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
- parrot setup.pir clean
+ %s clean
dh_clean
install: build
@@ -3446,7 +3680,7 @@
dh_testroot
dh_prep
dh_installdirs
- parrot setup.pir --root $(CURDIR)/debian/tmp install
+ %s --root $(CURDIR)/debian/tmp install
dh_install --sourcedir=$(CURDIR)/debian/tmp --list-missing
# Build architecture-independent files here.
@@ -3475,6 +3709,7 @@
.PHONY: build clean binary-indep binary-arch binary install configure
TEMPLATE
+ $S0 = sprintf $S0, $P0
.return ($S0)
.end
@@ -3544,6 +3779,10 @@
=item doc_files
+=item setup
+
+the default value is setup.pir
+
=back
=cut
@@ -3590,6 +3829,11 @@
.local string license_type
license_type = get_value('license_type', kv :flat :named)
+ .local string setup
+ setup = get_value('setup', "setup.pir" :named('default'), kv :flat :named)
+ .local string command
+ command = _command_setup(setup)
+
.local string doc
doc = ''
$I0 = exists kv['doc_files']
@@ -3608,11 +3852,14 @@
L1:
$P0 = new 'FixedStringArray'
- set $P0, 4
+ set $P0, 7
$P0[0] = description
$P0[1] = project_uri
$P0[2] = license_type
- $P0[3] = doc
+ $P0[3] = command
+ $P0[4] = command
+ $P0[5] = doc
+ $P0[6] = command
$S0 = <<'TEMPLATE'
@@ -3629,16 +3876,16 @@
#RDEPEND=""
src_compile() {
- parrot setup.pir build || die "build failed"
+ %s build || die "build failed"
}
src_install() {
- parrot setup.pir --root ${D} install || die "install failed"
+ %s --root ${D} install || die "install failed"
%s
}
src_test() {
- parrot setup.pir test || die "test failed"
+ %s test || die "test failed"
}
TEMPLATE
$S0 = sprintf $S0, $P0
@@ -4264,39 +4511,29 @@
.return ($S0)
.end
-=item probe_include
+=item cc_run
=cut
-.sub 'probe_include'
- .param string include
- .param int verbose :named('verbose') :optional
+.sub 'cc_run'
+ .param string source
.param string cflags :named('cflags') :optional
.param int has_cflags :opt_flag
-
- $S0 = <<'SOURCE_C'
-#include <%s>
-#include <stdio.h>
-
-int
-main(int argc, char* argv[])
-{
- printf("%s OK\n");
- return 0;
-}
-SOURCE_C
- $P0 = new 'FixedStringArray'
- set $P0, 2
- $P0[0] = include
- $P0[1] = include
- $S0 = sprintf $S0, $P0
- spew('probe.c', $S0)
-
- .local string probe
- $S0 = get_exe()
- probe = "probe" . $S0
+ .param string ldflags :named('ldflags') :optional
+ .param int has_ldflags :opt_flag
+ .param int verbose :named('verbose') :optional
+ .const string srcname = 'tmp.c'
+ spew(srcname, source)
+ .local string exename
+ exename = 'tmp'
.local pmc config
config = get_config()
+ $S0 = config['osname']
+ if $S0 == 'MSWin32' goto L0
+ exename = './' . exename
+ L0:
+ $S0 = get_exe()
+ exename .= $S0
.local string cmd
cmd = config['cc']
cmd .= " "
@@ -4306,15 +4543,54 @@
cmd .= " "
cmd .= cflags
L1:
- cmd .= " probe.c -o "
- cmd .= probe
+ cmd .= " "
+ cmd .= srcname
+ cmd .= " "
+ $S0 = get_ldflags()
+ cmd .= $S0
+ unless has_ldflags goto L2
+ cmd .= " "
+ cmd .= ldflags
+ L2:
+ cmd .= " -o "
+ cmd .= exename
system(cmd, verbose :named('verbose'), 1 :named('ignore_error'))
+ unlink(srcname, verbose :named('verbose'))
+
+ $P0 = open exename, 'rp'
+ $S0 = $P0.'readall'()
+ $P0.'close'()
+
+ unlink(exename, verbose :named('verbose'))
+ .return ($S0)
+.end
+
+
+=item probe_include
- cmd = "./" . probe
- $I0 = system(cmd, verbose :named('verbose'), 1 :named('ignore_error'))
+=cut
- unlink('probe.c', verbose :named('verbose'))
- unlink(probe, verbose :named('verbose'))
+.sub 'probe_include'
+ .param string include
+ .param string cflags :named('cflags') :optional
+ .param int verbose :named('verbose') :optional
+ $P0 = new 'FixedStringArray'
+ set $P0, 2
+ $P0[0] = include
+ $P0[1] = include
+ $S0 = sprintf <<'SOURCE_C', $P0
+#include <%s>
+#include <stdio.h>
+
+int
+main(int argc, char* argv[])
+{
+ printf("OK %s\n");
+ return 0;
+}
+SOURCE_C
+ $S0 = cc_run($S0, cflags :named('cflags'), verbose :named('verbose'))
+ $I0 = index $S0, 'OK '
.return ($I0)
.end
@@ -4412,6 +4688,13 @@
.return ($I0)
.end
+.sub 'newer' :multi(pmc, pmc)
+ .param pmc target
+ .param pmc depend
+ $S0 = target
+ .tailcall newer($S0, depend)
+.end
+
=item mkpath
=cut
Modified: branches/ops_pct/runtime/parrot/library/dumper.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/dumper.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/dumper.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -34,7 +34,7 @@
say ''
say " .local pmc foo, dumper"
say " foo = new 'ResizablePMCArray'"
- say " dumper = new 'Data::Dumper'"
+ say " dumper = new ['Data'; 'Dumper']"
say ''
say " dumper.'dumper'( foo, 'foo' )"
say ".end"
@@ -148,13 +148,13 @@
.local pmc dd_class
.local int is_defined
- get_class dd_class, "Data::Dumper"
+ get_class dd_class, ['Data'; 'Dumper']
if null dd_class goto load_dd_pir
goto TYPE_OK
load_dd_pir:
load_bytecode "Data/Dumper.pbc"
- get_class dd_class, "Data::Dumper"
+ get_class dd_class, ['Data'; 'Dumper']
if null dd_class goto no_class
goto TYPE_OK
@@ -164,13 +164,13 @@
TYPE_OK:
errorsoff .PARROT_ERRORS_GLOBALS_FLAG
- self = get_hll_global ['Data::Dumper'], 'global'
+ self = get_hll_global ['Data'; 'Dumper'], 'global'
errorson .PARROT_ERRORS_GLOBALS_FLAG
if null self goto create_type
create_type:
- new self, "Data::Dumper"
- set_hll_global ['Data::Dumper'], 'global', self
+ new self, ['Data'; 'Dumper']
+ set_hll_global ['Data'; 'Dumper'], 'global', self
END:
.return( self )
Modified: branches/ops_pct/runtime/parrot/library/libpcre.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/libpcre.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/libpcre.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -12,7 +12,7 @@
=cut
-.namespace ['PCRE::NCI']
+.namespace ['PCRE'; 'NCI']
.sub compile
@@ -35,7 +35,7 @@
## allocate space in string for error message
repeat error, " ", error_size
- PCRE_NCI_compile = get_hll_global ['PCRE::NCI'], 'PCRE_compile'
+ PCRE_NCI_compile = get_hll_global ['PCRE'; 'NCI'], 'PCRE_compile'
.local pmc code
@@ -81,7 +81,7 @@
## on 32 bit systems
.local pmc PCRE_NCI_exec
- PCRE_NCI_exec = get_hll_global ['PCRE::NCI'], 'PCRE_exec'
+ PCRE_NCI_exec = get_hll_global ['PCRE'; 'NCI'], 'PCRE_exec'
.local int ok
Modified: branches/ops_pct/runtime/parrot/library/pcre.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/pcre.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/pcre.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -105,23 +105,23 @@
# const char **errptr, int *erroffset,
# const unsigned char *tableptr
dlfunc pcre_function, libpcre, 'pcre_compile', 'ptiB3P'
- set_hll_global ['PCRE::NCI'], 'PCRE_compile', pcre_function
+ set_hll_global ['PCRE'; 'NCI'], 'PCRE_compile', pcre_function
#int pcre_exec(const pcre *code, const pcre_extra *extra,
# const char *subject, int length, int startoffset,
# int options, int *ovector, int ovecsize);
dlfunc pcre_function, libpcre, 'pcre_exec', 'ipPtiiipi'
- set_hll_global ['PCRE::NCI'], 'PCRE_exec', pcre_function
+ set_hll_global ['PCRE'; 'NCI'], 'PCRE_exec', pcre_function
#int pcre_copy_substring(const char *subject, int *ovector,
# int stringcount, int stringnumber, char *buffer,
# int buffersize);
dlfunc pcre_function, libpcre, 'pcre_copy_substring', 'itpiibi'
- set_hll_global ['PCRE::NCI'], 'PCRE_copy_substring', pcre_function
+ set_hll_global ['PCRE'; 'NCI'], 'PCRE_copy_substring', pcre_function
# const char *pcre_version(void);
dlfunc pcre_function, libpcre, 'pcre_version', 't'
- set_hll_global ['PCRE::NCI'], 'PCRE_version', pcre_function
+ set_hll_global ['PCRE'; 'NCI'], 'PCRE_version', pcre_function
.return( libpcre )
@@ -142,7 +142,7 @@
.param int options
.local pmc pcre_function
- pcre_function= get_hll_global ['PCRE::NCI'], 'compile'
+ pcre_function= get_hll_global ['PCRE'; 'NCI'], 'compile'
.local pmc regex
.local string error
@@ -170,7 +170,7 @@
.param int options
.local pmc pcre_function
- pcre_function= get_hll_global ['PCRE::NCI'], 'exec'
+ pcre_function= get_hll_global ['PCRE'; 'NCI'], 'exec'
.local int ok
.local pmc res
@@ -195,7 +195,7 @@
.param int n
.local pmc pcre_function
- pcre_function= get_hll_global ['PCRE::NCI'], 'result'
+ pcre_function= get_hll_global ['PCRE'; 'NCI'], 'result'
.local string matched
@@ -212,7 +212,7 @@
.sub version
.local pmc pcre_function
- pcre_function = get_hll_global ['PCRE::NCI'], 'PCRE_version'
+ pcre_function = get_hll_global ['PCRE'; 'NCI'], 'PCRE_version'
.local string ver
Modified: branches/ops_pct/runtime/parrot/library/yaml_dumper.pir
==============================================================================
--- branches/ops_pct/runtime/parrot/library/yaml_dumper.pir Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/runtime/parrot/library/yaml_dumper.pir Sun Mar 7 19:33:20 2010 (r44743)
@@ -34,7 +34,7 @@
say ''
say " .local pmc foo, yaml_dumper"
say " foo = new 'ResizablePMCArray'"
- say " yaml_dumper = new 'YAML::Dumper'"
+ say " yaml_dumper = new ['YAML'; 'Dumper']"
say ''
say " yaml_dumper.'yaml'( foo, 'foo' )"
say ".end"
@@ -148,13 +148,13 @@
.local pmc yd_class
.local int is_defined
- get_class yd_class, "YAML::Dumper"
+ get_class yd_class, ['YAML'; 'Dumper']
if null yd_class goto load_yd_pir
goto TYPE_OK
load_yd_pir:
load_bytecode "YAML/Dumper.pbc"
- get_class yd_class, "YAML::Dumper"
+ get_class yd_class, ['YAML'; 'Dumper']
if null yd_class goto no_class
goto TYPE_OK
@@ -164,13 +164,13 @@
TYPE_OK:
errorsoff .PARROT_ERRORS_GLOBALS_FLAG
- self = get_global ['YAML::Dumper'], 'global'
+ self = get_global ['YAML'; 'Dumper'], 'global'
errorson .PARROT_ERRORS_GLOBALS_FLAG
if null self goto create_type
create_type:
- new self, "YAML::Dumper"
- set_global ['YAML::Dumper'], 'global', self
+ new self, ['YAML'; 'Dumper']
+ set_global ['YAML'; 'Dumper'], 'global', self
END:
.return( self )
Modified: branches/ops_pct/src/atomic/gcc_x86.c
==============================================================================
--- branches/ops_pct/src/atomic/gcc_x86.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/atomic/gcc_x86.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/* atomic/gcc_x86.c
- * Copyright (C) 2006, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
* SVN Info
* $Id$
*/
@@ -34,7 +34,8 @@
*/
/*
-=item C<void * parrot_i386_cmpxchg>
+=item C<void * parrot_i386_cmpxchg(void *volatile *ptr, void *expect, void
+*update)>
The CMPXCHG assembly instruction is a single cycle x86 instruction
that compares C<expect> and C<*ptr>. If they are equal, sets
@@ -68,7 +69,7 @@
/*
-=item C<long parrot_i386_xadd>
+=item C<long parrot_i386_xadd(volatile long *l, long amount)>
C<xadd> is an x86 instruction that performs the following operation:
Temporary = C<result>;
Modified: branches/ops_pct/src/call/args.c
==============================================================================
--- branches/ops_pct/src/call/args.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/call/args.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -567,13 +567,13 @@
{
ASSERT_ARGS(Parrot_pcc_build_sig_object_from_op)
PMC *call_object;
- PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
INTVAL *int_array;
INTVAL arg_count;
INTVAL arg_index;
if (PMC_IS_NULL(signature))
- call_object = pmc_new(interp, enum_class_CallContext);
+ call_object = Parrot_pmc_new(interp, enum_class_CallContext);
else
call_object = signature;
@@ -583,8 +583,7 @@
GETATTR_FixedIntegerArray_int_array(interp, raw_sig, int_array);
for (arg_index = 0; arg_index < arg_count; arg_index++) {
- INTVAL arg_flags = int_array[arg_index];
-
+ const INTVAL arg_flags = int_array[arg_index];
const INTVAL constant = PARROT_ARG_CONSTANT_ISSET(arg_flags);
const INTVAL raw_index = raw_args[arg_index + 2];
@@ -676,10 +675,8 @@
INTVAL arg_index)
{
ASSERT_ARGS(extract_named_arg_from_op)
- PMC *ctx = CURRENT_CONTEXT(interp);
- INTVAL arg_flags = VTABLE_get_integer_keyed_int(interp,
- raw_sig, arg_index);
-
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+ const INTVAL arg_flags = VTABLE_get_integer_keyed_int(interp, raw_sig, arg_index);
const INTVAL constant = PARROT_ARG_CONSTANT_ISSET(arg_flags);
const INTVAL raw_index = raw_args[arg_index + 2];
@@ -742,7 +739,7 @@
{
ASSERT_ARGS(dissect_aggregate_arg)
if (VTABLE_does(interp, aggregate, CONST_STRING(interp, "array"))) {
- INTVAL elements = VTABLE_elements(interp, aggregate);
+ const INTVAL elements = VTABLE_elements(interp, aggregate);
INTVAL index;
for (index = 0; index < elements; index++) {
VTABLE_push_pmc(interp, call_object,
@@ -750,16 +747,16 @@
}
}
else if (VTABLE_does(interp, aggregate, CONST_STRING(interp, "hash"))) {
- INTVAL elements = VTABLE_elements(interp, aggregate);
+ const INTVAL elements = VTABLE_elements(interp, aggregate);
INTVAL index;
- PMC *key = pmc_new(interp, enum_class_Key);
+ PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
VTABLE_set_integer_native(interp, key, 0);
SETATTR_Key_next_key(interp, key, (PMC *)INITBucketIndex);
/* Low-level hash iteration. */
for (index = 0; index < elements; index++) {
if (!PMC_IS_NULL(key)) {
- STRING *name = (STRING *)parrot_hash_get_idx(interp,
+ STRING * const name = (STRING *)parrot_hash_get_idx(interp,
(Hash *)VTABLE_get_pointer(interp, aggregate), key);
PARROT_ASSERT(name);
VTABLE_set_pmc_keyed_str(interp, call_object, name,
@@ -796,13 +793,12 @@
ASSERT_ARGS(Parrot_pcc_build_sig_object_returns_from_op)
PMC *call_object;
INTVAL *int_array;
- PMC *ctx = CURRENT_CONTEXT(interp);
- INTVAL returns_pos = 0;
+ PMC * const ctx = CURRENT_CONTEXT(interp);
INTVAL arg_index;
INTVAL arg_count;
if (PMC_IS_NULL(signature))
- call_object = pmc_new(interp, enum_class_CallContext);
+ call_object = Parrot_pmc_new(interp, enum_class_CallContext);
/* A hack to support 'get_results' as the way of fetching the
* exception object inside an exception handler. The first argument
* in the call object is the exception, stick it directly into the
@@ -823,7 +819,6 @@
GETATTR_FixedIntegerArray_int_array(interp, raw_sig, int_array);
for (arg_index = 0; arg_index < arg_count; arg_index++) {
- STRING * const signature = CONST_STRING(interp, "signature");
const INTVAL arg_flags = int_array[arg_index];
const INTVAL raw_index = raw_args[arg_index + 2];
@@ -884,10 +879,9 @@
ARGIN(const char *sig), va_list args)
{
ASSERT_ARGS(Parrot_pcc_build_sig_object_from_varargs)
- PMC *type_tuple = PMCNULL;
PMC *arg_flags = PMCNULL;
PMC *return_flags = PMCNULL;
- PMC * const call_object = pmc_new(interp, enum_class_CallContext);
+ PMC * const call_object = Parrot_pmc_new(interp, enum_class_CallContext);
const INTVAL sig_len = strlen(sig);
INTVAL in_return_sig = 0;
INTVAL i;
@@ -905,7 +899,6 @@
const INTVAL type = sig[i];
if (in_return_sig) {
- STRING * const signature = CONST_STRING(interp, "signature");
/* Returns store the original passed-in pointer so they can pass
* the result back to the caller. */
switch (type) {
@@ -945,7 +938,7 @@
break;
case 'P':
{
- INTVAL type_lookahead = sig[i+1];
+ const INTVAL type_lookahead = sig[i+1];
PMC * const pmc_arg = va_arg(args, PMC *);
if (type_lookahead == 'f') {
dissect_aggregate_arg(interp, call_object, pmc_arg);
@@ -1003,15 +996,17 @@
ARGIN(PMC *raw_sig), ARGIN(void *arg_info), ARGIN(struct pcc_set_funcs *accessor))
{
ASSERT_ARGS(fill_params)
- PMC *named_used_list = PMCNULL;
INTVAL *raw_params;
- INTVAL param_count = VTABLE_elements(interp, raw_sig);
+ PMC *named_used_list = PMCNULL;
+ INTVAL param_count = 0;
INTVAL param_index = 0;
INTVAL arg_index = 0;
INTVAL named_count = 0;
INTVAL err_check = 0;
INTVAL positional_args;
+ GETATTR_FixedIntegerArray_size(interp, raw_sig, param_count);
+
/* Check if we should be throwing errors. This is configured separately
* for parameters and return values. */
if (PARROT_ERRORS_test(interp, PARROT_ERRORS_PARAM_COUNT_FLAG))
@@ -1090,7 +1085,7 @@
EXCEPTION_INVALID_OPERATION,
"named parameters must follow all positional parameters");
- collect_positional = pmc_new(interp,
+ collect_positional = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_ResizablePMCArray));
for (; arg_index < positional_args; arg_index++) {
VTABLE_push_pmc(interp, collect_positional,
@@ -1122,7 +1117,7 @@
/* Mark the name as used, cannot be filled again. */
if (PMC_IS_NULL(named_used_list)) /* Only created if needed. */
- named_used_list = pmc_new(interp, enum_class_Hash);
+ named_used_list = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_integer_keyed_str(interp, named_used_list, param_name, 1);
}
@@ -1159,10 +1154,8 @@
/* Mark the option flag for the filled parameter. */
if (param_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_param_flags;
-
if (param_index + 1 < param_count) {
- next_param_flags = raw_params[param_index + 1];
+ const int next_param_flags = raw_params[param_index + 1];
if (next_param_flags & PARROT_ARG_OPT_FLAG) {
param_index++;
@@ -1174,8 +1167,6 @@
/* We have no more positional arguments, fill the optional parameter
* with a default value. */
else if (param_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_param_flags;
-
/* We don't handle optional named params here, handle them in the
* next loop. */
if (param_flags & PARROT_ARG_NAME)
@@ -1187,7 +1178,7 @@
/* Mark the option flag for the parameter to FALSE, it was filled
* with a default value. */
if (param_index + 1 < param_count) {
- next_param_flags = raw_params[param_index + 1];
+ const INTVAL next_param_flags = raw_params[param_index + 1];
if (next_param_flags & PARROT_ARG_OPT_FLAG) {
param_index++;
@@ -1249,16 +1240,16 @@
/* Collected ("slurpy") named parameter */
if (param_flags & PARROT_ARG_SLURPY_ARRAY) {
- PMC * const collect_named = pmc_new(interp,
+ PMC * const collect_named = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_Hash));
- PMC *named_arg_list = VTABLE_get_attr_str(interp, call_object, CONST_STRING(interp, "named"));
+ PMC * const named_arg_list = VTABLE_get_attr_str(interp, call_object, CONST_STRING(interp, "named"));
if (!PMC_IS_NULL(named_arg_list)) {
INTVAL named_arg_count = VTABLE_elements(interp, named_arg_list);
INTVAL named_arg_index;
/* Named argument iteration. */
for (named_arg_index = 0; named_arg_index < named_arg_count; named_arg_index++) {
- STRING *name = VTABLE_get_string_keyed_int(interp,
+ STRING * const name = VTABLE_get_string_keyed_int(interp,
named_arg_list, named_arg_index);
if ((PMC_IS_NULL(named_used_list)) ||
@@ -1267,7 +1258,7 @@
VTABLE_get_pmc_keyed_str(interp, call_object, name));
/* Mark the name as used, cannot be filled again. */
if (PMC_IS_NULL(named_used_list)) /* Only created if needed. */
- named_used_list = pmc_new(interp, enum_class_Hash);
+ named_used_list = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_integer_keyed_str(interp, named_used_list, name, 1);
named_count++;
}
@@ -1298,7 +1289,7 @@
/* Mark the name as used, cannot be filled again. */
if (PMC_IS_NULL(named_used_list)) /* Only created if needed. */
- named_used_list = pmc_new(interp, enum_class_Hash);
+ named_used_list = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_integer_keyed_str(interp, named_used_list, param_name, 1);
named_count++;
@@ -1328,10 +1319,8 @@
/* Mark the option flag for the filled parameter. */
if (param_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_param_flags;
-
if (param_index + 1 < param_count) {
- next_param_flags = raw_params[param_index + 1];
+ const INTVAL next_param_flags = raw_params[param_index + 1];
if (next_param_flags & PARROT_ARG_OPT_FLAG) {
param_index++;
@@ -1341,15 +1330,13 @@
}
}
else if (param_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_param_flags;
-
assign_default_param_value(interp, param_index, param_flags,
arg_info, accessor);
/* Mark the option flag for the parameter to FALSE, it was filled
* with a default value. */
if (param_index + 1 < param_count) {
- next_param_flags = raw_params[param_index + 1];
+ const INTVAL next_param_flags = raw_params[param_index + 1];
if (next_param_flags & PARROT_ARG_OPT_FLAG) {
param_index++;
@@ -1381,7 +1368,7 @@
named_arg_list = VTABLE_get_attr_str(interp, call_object, CONST_STRING(interp, "named"));
if (!PMC_IS_NULL(named_arg_list)) {
- INTVAL named_arg_count = VTABLE_elements(interp, named_arg_list);
+ const INTVAL named_arg_count = VTABLE_elements(interp, named_arg_list);
if (PMC_IS_NULL(named_used_list))
return;
/* The 'return' above is a temporary hack to duplicate an old bug,
@@ -1593,16 +1580,14 @@
ARGIN(PMC *raw_sig), ARGIN(void *return_info), ARGIN(struct pcc_get_funcs *accessor))
{
ASSERT_ARGS(fill_results)
- INTVAL *return_array;
- INTVAL *result_array;
+ INTVAL *return_array = NULL;
+ INTVAL *result_array = NULL;
PMC *result_sig = NULL;
- PMC *ctx = CURRENT_CONTEXT(interp);
PMC *named_used_list = PMCNULL;
PMC *named_return_list = PMCNULL;
INTVAL return_index = 0;
INTVAL return_subindex = 0;
INTVAL result_index = 0;
- INTVAL positional_index = 0;
INTVAL named_count = 0;
INTVAL err_check = 0;
INTVAL positional_returns = 0; /* initialized by a loop later */
@@ -1621,7 +1606,7 @@
if (PMC_IS_NULL(call_object)) {
/* If the return_count is 0, then there are no return values waiting to
* fill the results, so no error. */
- if (return_count > 0 && (err_check))
+ if (return_count > 0 && err_check)
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_INVALID_OPERATION,
"too few returns: 0 passed, %d expected", return_count);
@@ -1641,7 +1626,7 @@
/* the call obj doesn't have the returns as positionals.
* instead count number of returns before first named return */
for (i = 0; i < return_count; i++) {
- INTVAL flags = return_array[i];
+ const INTVAL flags = return_array[i];
if (flags & PARROT_ARG_NAME)
break;
@@ -1691,7 +1676,7 @@
EXCEPTION_INVALID_OPERATION,
"named results must follow all positional results");
- collect_positional = pmc_new(interp,
+ collect_positional = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_ResizablePMCArray));
/* Iterate over all positional returns in the list. */
@@ -1779,7 +1764,7 @@
/* Mark the name as used, cannot be filled again. */
if (PMC_IS_NULL(named_used_list)) /* Only created if needed. */
- named_used_list = pmc_new(interp,
+ named_used_list = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_Hash));
VTABLE_set_integer_keyed_str(interp, named_used_list, result_name, 1);
}
@@ -1857,10 +1842,8 @@
/* Mark the option flag for the filled result. */
if (result_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_result_flags;
-
if (result_index + 1 < result_count) {
- next_result_flags = result_array[result_index + 1];
+ const INTVAL next_result_flags = result_array[result_index + 1];
if (next_result_flags & PARROT_ARG_OPT_FLAG) {
result_index++;
csr_fill_integer(interp, call_object, result_index, 1);
@@ -1871,8 +1854,6 @@
/* We have no more positional returns, fill the optional result
* with a default value. */
else if (result_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_result_flags;
-
/* We don't handle optional named results here, handle them in the
* next loop. */
if (result_flags & PARROT_ARG_NAME)
@@ -1883,7 +1864,7 @@
/* Mark the option flag for the result to FALSE, it was filled
* with a default value. */
if (result_index + 1 < result_count) {
- next_result_flags = result_array[result_index + 1];
+ const INTVAL next_result_flags = result_array[result_index + 1];
if (next_result_flags & PARROT_ARG_OPT_FLAG) {
result_index++;
csr_fill_integer(interp, call_object, result_index, 0);
@@ -1936,7 +1917,7 @@
return_flags = return_array[return_index];
if (PMC_IS_NULL(named_return_list)) /* Only created if needed. */
- named_return_list = pmc_new(interp,
+ named_return_list = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_Hash));
if (VTABLE_exists_keyed_str(interp, named_return_list, return_name))
@@ -1964,7 +1945,7 @@
break;
case PARROT_ARG_PMC:
if (0) {
- PMC *return_item = (constant)
+ PMC * const return_item = (constant)
? accessor->pmc_constant(interp, return_info, return_index)
: accessor->pmc(interp, return_info, return_index);
if (return_flags & PARROT_ARG_FLATTEN) {
@@ -2002,7 +1983,7 @@
/* Collected ("slurpy") named result */
if (result_flags & PARROT_ARG_SLURPY_ARRAY) {
if (PMC_IS_NULL(named_return_list))
- named_return_list = pmc_new(interp,
+ named_return_list = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_Hash));
csr_fill_pmc(interp, call_object, result_index, named_return_list);
@@ -2053,10 +2034,8 @@
/* Mark the option flag for the filled result. */
if (result_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_result_flags;
-
if (result_index + 1 < result_count) {
- next_result_flags = return_array[result_index + 1];
+ const INTVAL next_result_flags = return_array[result_index + 1];
if (next_result_flags & PARROT_ARG_OPT_FLAG) {
result_index++;
csr_fill_integer(interp, call_object, result_index, 1);
@@ -2065,14 +2044,12 @@
}
}
else if (result_flags & PARROT_ARG_OPTIONAL) {
- INTVAL next_result_flags;
-
assign_default_result_value(interp, call_object, result_index, result_flags);
/* Mark the option flag for the result to FALSE, it was filled
* with a default value. */
if (result_index + 1 < result_count) {
- next_result_flags = result_array[result_index + 1];
+ const INTVAL next_result_flags = result_array[result_index + 1];
if (next_result_flags & PARROT_ARG_OPT_FLAG) {
result_index++;
csr_fill_integer(interp, call_object, result_index, 1);
@@ -2095,7 +2072,7 @@
/* Double check that all named returns were assigned to results. */
if (err_check) {
if (!PMC_IS_NULL(named_return_list)) {
- INTVAL named_return_count = VTABLE_elements(interp, named_return_list);
+ const INTVAL named_return_count = VTABLE_elements(interp, named_return_list);
if (named_return_count > 0)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"too many named returns: %d passed, %d used",
@@ -2123,8 +2100,7 @@
ARGIN(PMC *raw_sig), ARGIN(opcode_t *raw_returns))
{
ASSERT_ARGS(Parrot_pcc_fill_returns_from_op)
- INTVAL raw_return_count = VTABLE_elements(interp, raw_sig);
- INTVAL err_check = 0;
+
static pcc_get_funcs function_pointers = {
(intval_func_t)intval_arg_from_op,
(numval_func_t)numval_arg_from_op,
@@ -2137,20 +2113,21 @@
(pmc_func_t)pmc_constant_from_op,
};
+ INTVAL raw_return_count = 0;
- /* Check if we should be throwing errors. This is configured separately
- * for parameters and return values. */
- if (PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
- err_check = 1;
+ GETATTR_FixedIntegerArray_size(interp, raw_sig, raw_return_count);
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
- if (raw_return_count > 0) {
- if (err_check)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
- "too many return values: %d passed, 0 expected",
- raw_return_count);
- }
+
+ /* Check if we should be throwing errors. This is configured separately
+ * for parameters and return values. */
+ if (raw_return_count > 0
+ && PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "too many return values: %d passed, 0 expected",
+ raw_return_count);
return;
}
@@ -2158,6 +2135,8 @@
return;
}
+
+
/*
=item C<void Parrot_pcc_fill_returns_from_continuation(PARROT_INTERP, PMC
@@ -2176,8 +2155,8 @@
ARGIN(PMC *raw_sig), ARGIN(PMC *from_call_obj))
{
ASSERT_ARGS(Parrot_pcc_fill_returns_from_continuation)
- INTVAL raw_return_count = VTABLE_elements(interp, raw_sig);
- INTVAL err_check = 0;
+ const INTVAL raw_return_count = VTABLE_elements(interp, raw_sig);
+
static pcc_get_funcs function_pointers = {
(intval_func_t)intval_arg_from_continuation,
(numval_func_t)numval_arg_from_continuation,
@@ -2190,20 +2169,17 @@
(pmc_func_t)pmc_arg_from_continuation,
};
-
- /* Check if we should be throwing errors. This is configured separately
- * for parameters and return values. */
- if (PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
- err_check = 1;
-
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
- if (raw_return_count > 0) {
- if (err_check)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
- "too many return values: %d passed, 0 expected",
- raw_return_count);
- }
+
+ /* Check if we should be throwing errors. This is configured separately
+ * for parameters and return values. */
+ if (raw_return_count > 0
+ && PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "too many return values: %d passed, 0 expected",
+ raw_return_count);
return;
}
@@ -2212,6 +2188,7 @@
return;
}
+
/*
=item C<void Parrot_pcc_fill_returns_from_c_args(PARROT_INTERP, PMC
@@ -2238,7 +2215,6 @@
ASSERT_ARGS(Parrot_pcc_fill_returns_from_c_args)
va_list args;
INTVAL raw_return_count = 0;
- INTVAL err_check = 0;
PMC *raw_sig = PMCNULL;
PMC *invalid_sig = PMCNULL;
@@ -2255,21 +2231,20 @@
};
parse_signature_string(interp, signature, &raw_sig, &invalid_sig);
+
if (!PMC_IS_NULL(invalid_sig))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"parameters should not be included in the return signature");
raw_return_count = VTABLE_elements(interp, raw_sig);
- /* Check if we should be throwing errors. This is configured separately
- * for parameters and return values. */
- if (PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
- err_check = 1;
-
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
- if (raw_return_count > 0)
- if (err_check)
+
+ /* Check if we should be throwing errors. This is configured separately
+ * for parameters and return values. */
+ if (raw_return_count > 0
+ && PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_INVALID_OPERATION,
"too many return values: %d passed, 0 expected",
@@ -2282,6 +2257,7 @@
va_end(args);
}
+
/*
=item C<static void parse_signature_string(PARROT_INTERP, const char *signature,
@@ -2307,7 +2283,7 @@
INTVAL set = 0;
if (PMC_IS_NULL(*arg_flags))
- *arg_flags = pmc_new(interp, enum_class_ResizableIntegerArray);
+ *arg_flags = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
current_array = *arg_flags;
for (x = signature; *x != '\0'; x++) {
@@ -2326,7 +2302,7 @@
/* Switch to the return argument flags. */
if (PMC_IS_NULL(*return_flags))
- *return_flags = pmc_new(interp, enum_class_ResizableIntegerArray);
+ *return_flags = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
current_array = *return_flags;
}
/* parse arg type */
@@ -2393,7 +2369,7 @@
ARGMOD(PMC **arg_flags), ARGMOD(PMC **return_flags))
{
ASSERT_ARGS(Parrot_pcc_parse_signature_string)
- char *s = Parrot_str_to_cstring(interp, signature);
+ char * const s = Parrot_str_to_cstring(interp, signature);
*arg_flags = PMCNULL;
*return_flags = PMCNULL;
parse_signature_string(interp, s, arg_flags, return_flags);
@@ -2571,7 +2547,7 @@
string_arg_from_continuation(PARROT_INTERP, ARGIN(PMC *cs), INTVAL arg_index)
{
ASSERT_ARGS(string_arg_from_continuation)
- STRING *ret = VTABLE_get_string_keyed_int(interp, cs, arg_index);
+ STRING * const ret = VTABLE_get_string_keyed_int(interp, cs, arg_index);
return ret;
}
@@ -2580,7 +2556,7 @@
pmc_arg_from_continuation(PARROT_INTERP, ARGIN(PMC *cs), INTVAL arg_index)
{
ASSERT_ARGS(pmc_arg_from_continuation)
- PMC *ret = VTABLE_get_pmc_keyed_int(interp, cs, arg_index);
+ PMC * const ret = VTABLE_get_pmc_keyed_int(interp, cs, arg_index);
return ret;
}
@@ -2758,6 +2734,7 @@
intval_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
{
ASSERT_ARGS(intval_constant_from_varargs)
+ UNUSED(index);
PARROT_ASSERT(!"Wrong call");
return 0;
}
@@ -2766,6 +2743,7 @@
numval_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
{
ASSERT_ARGS(numval_constant_from_varargs)
+ UNUSED(index);
PARROT_ASSERT(!"Wrong call");
return 0.0;
}
@@ -2775,6 +2753,7 @@
string_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
{
ASSERT_ARGS(string_constant_from_varargs)
+ UNUSED(index);
PARROT_ASSERT(!"Wrong call");
return NULL;
}
@@ -2784,6 +2763,7 @@
pmc_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
{
ASSERT_ARGS(pmc_constant_from_varargs)
+ UNUSED(index);
PARROT_ASSERT(!"Wrong call");
return PMCNULL;
}
@@ -2873,13 +2853,13 @@
SETATTR_CallContext_returns_size(interp, self, size);
}
else {
- void *old_values;
INTVAL cur = resize_threshold;
/* Switch to system allocator */
if (cur == 8) {
- old_values = values;
- values = mem_allocate_n_typed(8, void *);
+ void * const old_values = values;
+
+ values = mem_gc_allocate_n_typed(interp, 8, void *);
memcpy(values, old_values, 8 * sizeof (void *));
Parrot_gc_free_fixed_size_storage(interp,
8 * sizeof (void *), old_values);
@@ -2888,12 +2868,13 @@
if (cur < 8192)
cur = size < 2 * cur ? 2 * cur : size;
else {
- INTVAL needed = size - cur;
+ const INTVAL needed = size - cur;
cur += needed + 4096;
cur &= ~0xfff;
}
- mem_realloc_n_typed(values, cur, void *);
+ values = mem_gc_realloc_n_typed_zeroed(interp, values,
+ cur, resize_threshold, void *);
SETATTR_CallContext_returns_values(interp, self, values);
SETATTR_CallContext_returns_size(interp, self, size);
@@ -2979,8 +2960,8 @@
csr_fill_integer(PARROT_INTERP, ARGIN(PMC *self), INTVAL key, INTVAL value)
{
ASSERT_ARGS(csr_fill_integer)
- void *cell = csr_get_pointer_keyed_int(interp, self, key);
- void *ptr = UNTAG_CELL(cell);
+ void * const cell = csr_get_pointer_keyed_int(interp, self, key);
+ void * const ptr = UNTAG_CELL(cell);
switch ((Call_bits_enum_t)CELL_TYPE_MASK(cell)) {
case PARROT_ARG_INTVAL:
@@ -3004,8 +2985,8 @@
csr_fill_number(PARROT_INTERP, ARGIN(PMC *self), INTVAL key, FLOATVAL value)
{
ASSERT_ARGS(csr_fill_number)
- void *cell = csr_get_pointer_keyed_int(interp, self, key);
- void *ptr = UNTAG_CELL(cell);
+ void * const cell = csr_get_pointer_keyed_int(interp, self, key);
+ void * const ptr = UNTAG_CELL(cell);
switch ((Call_bits_enum_t)CELL_TYPE_MASK(cell)) {
case PARROT_ARG_INTVAL:
@@ -3029,8 +3010,8 @@
csr_fill_string(PARROT_INTERP, ARGIN(PMC *self), INTVAL key, ARGIN_NULLOK(STRING *value))
{
ASSERT_ARGS(csr_fill_string)
- void *cell = csr_get_pointer_keyed_int(interp, self, key);
- void *ptr = UNTAG_CELL(cell);
+ void * const cell = csr_get_pointer_keyed_int(interp, self, key);
+ void * const ptr = UNTAG_CELL(cell);
switch ((Call_bits_enum_t)CELL_TYPE_MASK(cell)) {
case PARROT_ARG_INTVAL:
@@ -3056,8 +3037,8 @@
csr_fill_pmc(PARROT_INTERP, ARGIN(PMC *self), INTVAL key, ARGIN_NULLOK(PMC *value))
{
ASSERT_ARGS(csr_fill_pmc)
- void *cell = csr_get_pointer_keyed_int(interp, self, key);
- void *ptr = UNTAG_CELL(cell);
+ void * const cell = csr_get_pointer_keyed_int(interp, self, key);
+ void * const ptr = UNTAG_CELL(cell);
switch ((Call_bits_enum_t)CELL_TYPE_MASK(cell)) {
case PARROT_ARG_INTVAL:
@@ -3093,8 +3074,8 @@
csr_get_string_keyed_int(PARROT_INTERP, ARGIN(PMC *self), INTVAL key)
{
ASSERT_ARGS(csr_get_string_keyed_int)
- void *cell = csr_get_pointer_keyed_int(interp, self, key);
- void *ptr = UNTAG_CELL(cell);
+ void * const cell = csr_get_pointer_keyed_int(interp, self, key);
+ void * const ptr = UNTAG_CELL(cell);
return (STRING *)ptr;
}
@@ -3150,7 +3131,6 @@
INTVAL int_type;
Parrot_String return_flags_name = Parrot_str_new_constant(interp, "return_flags");
- Parrot_String sig_name = Parrot_str_new_constant(interp, "signature");
full_sig = VTABLE_get_string(interp, sig_object);
/* Append ->[T] */
@@ -3161,7 +3141,7 @@
return_flags = VTABLE_get_attr_str(interp, sig_object, return_flags_name);
if (PMC_IS_NULL(return_flags)) {
/* Create return_flags for single element */
- return_flags = pmc_new(interp, enum_class_FixedIntegerArray);
+ return_flags = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
return_flags_size = 0;
VTABLE_set_integer_native(interp, return_flags, 1);
VTABLE_set_attr_str(interp, sig_object, return_flags_name, return_flags);
Modified: branches/ops_pct/src/call/context.c
==============================================================================
--- branches/ops_pct/src/call/context.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/call/context.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -315,7 +315,6 @@
if (!PMC_IS_NULL(ctx->current_sub))
return;
- ctx->current_results = NULL;
ctx->results_signature = NULL;
ctx->lex_pad = PMCNULL;
ctx->outer_ctx = NULL;
@@ -567,7 +566,7 @@
ARGIN_NULLOK(PMC *old))
{
ASSERT_ARGS(Parrot_alloc_context)
- PMC *pmcctx = pmc_new(interp, enum_class_CallContext);
+ PMC *pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
allocate_registers(interp, pmcctx, number_regs_used);
init_context(interp, pmcctx, old);
@@ -593,7 +592,7 @@
Parrot_pcc_allocate_empty_context(PARROT_INTERP, ARGIN_NULLOK(PMC *old))
{
ASSERT_ARGS(Parrot_pcc_allocate_empty_context)
- PMC *pmcctx = pmc_new(interp, enum_class_CallContext);
+ PMC *pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
init_context(interp, pmcctx, old);
Modified: branches/ops_pct/src/call/context_accessors.c
==============================================================================
--- branches/ops_pct/src/call/context_accessors.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/call/context_accessors.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -471,37 +471,6 @@
/*
-=item C<opcode_t* Parrot_pcc_get_results_func(PARROT_INTERP, PMC *ctx)>
-
-=item C<void Parrot_pcc_set_results_func(PARROT_INTERP, PMC *ctx, opcode_t *pc)>
-
-Get/set ptr into code with get_results opcode.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-opcode_t*
-Parrot_pcc_get_results_func(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_pcc_get_results_func)
- Parrot_Context const *c = get_context_struct_fast(interp, ctx);
- return c->current_results;
-}
-
-PARROT_EXPORT
-void
-Parrot_pcc_set_results_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
-{
- ASSERT_ARGS(Parrot_pcc_set_results_func)
- Parrot_Context *c = get_context_struct_fast(interp, ctx);
- c->current_results = pc;
-}
-
-/*
-
=item C<PMC* Parrot_pcc_get_results_signature_func(PARROT_INTERP, PMC *ctx)>
=item C<void Parrot_pcc_set_results_signature_func(PARROT_INTERP, PMC *ctx, PMC
Modified: branches/ops_pct/src/call/ops.c
==============================================================================
--- branches/ops_pct/src/call/ops.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/call/ops.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -31,6 +31,19 @@
static int
runloop_id_counter = 0; /* for synthesizing runloop ids. */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void really_destroy_runloop_jump_points(PARROT_INTERP,
+ ARGFREE(Parrot_runloop *jump_point))
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_really_destroy_runloop_jump_points \
+ __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 */
+
/*
=item C<void runops(PARROT_INTERP, size_t offs)>
@@ -142,7 +155,7 @@
interp->runloop_jmp_free_list = jump_point->prev;
}
else
- jump_point = mem_allocate_typed(Parrot_runloop);
+ jump_point = mem_gc_allocate_zeroed_typed(interp, Parrot_runloop);
jump_point->prev = interp->current_runloop;
interp->current_runloop = jump_point;
@@ -184,13 +197,14 @@
destroy_runloop_jump_points(PARROT_INTERP)
{
ASSERT_ARGS(destroy_runloop_jump_points)
- really_destroy_runloop_jump_points(interp->current_runloop);
- really_destroy_runloop_jump_points(interp->runloop_jmp_free_list);
+ really_destroy_runloop_jump_points(interp, interp->current_runloop);
+ really_destroy_runloop_jump_points(interp, interp->runloop_jmp_free_list);
}
/*
-=item C<void really_destroy_runloop_jump_points(Parrot_runloop *jump_point)>
+=item C<static void really_destroy_runloop_jump_points(PARROT_INTERP,
+Parrot_runloop *jump_point)>
Takes a pointer to a runloop jump point (which had better be the last one in
the list). Walks back through the list, freeing the memory of each one, until
@@ -200,13 +214,14 @@
*/
-void
-really_destroy_runloop_jump_points(ARGIN_NULLOK(Parrot_runloop *jump_point))
+static void
+really_destroy_runloop_jump_points(PARROT_INTERP,
+ ARGFREE(Parrot_runloop *jump_point))
{
ASSERT_ARGS(really_destroy_runloop_jump_points)
while (jump_point) {
Parrot_runloop * const prev = jump_point->prev;
- mem_sys_free(jump_point);
+ mem_gc_free(interp, jump_point);
jump_point = prev;
}
}
Modified: branches/ops_pct/src/debug.c
==============================================================================
--- branches/ops_pct/src/debug.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/debug.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -111,46 +111,11 @@
static void list_breakpoints(ARGIN(PDB_t *pdb))
__attribute__nonnull__(1);
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char * nextarg(ARGIN_NULLOK(const char *command));
-
static void no_such_register(PARROT_INTERP,
char register_type,
UINTVAL register_num)
__attribute__nonnull__(1);
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char * parse_int(ARGIN(const char *str), ARGOUT(int *intP))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*intP);
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char* parse_key(PARROT_INTERP,
- ARGIN(const char *str),
- ARGOUT(PMC **keyP))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*keyP);
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char * parse_string(PARROT_INTERP,
- ARGIN(const char *str),
- ARGOUT(STRING **strP))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*strP);
-
-PARROT_CANNOT_RETURN_NULL
-static const char * skip_command(ARGIN(const char *str))
- __attribute__nonnull__(1);
-
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static const char * skip_whitespace(ARGIN(const char *cmd))
@@ -178,22 +143,8 @@
PARROT_ASSERT_ARG(cmd))
#define ASSERT_ARGS_list_breakpoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pdb))
-#define ASSERT_ARGS_nextarg __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_no_such_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_parse_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(str) \
- , PARROT_ASSERT_ARG(intP))
-#define ASSERT_ARGS_parse_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(str) \
- , PARROT_ASSERT_ARG(keyP))
-#define ASSERT_ARGS_parse_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(str) \
- , PARROT_ASSERT_ARG(strP))
-#define ASSERT_ARGS_skip_command __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(str))
#define ASSERT_ARGS_skip_whitespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(cmd))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -603,6 +554,9 @@
=item C<static const DebuggerCmd * get_cmd(const char **cmd)>
+Parse the debuggger command indicated by C<**cmd>. Return a pointer to the
+matching function for known commands, or a NULL pointer otherwise.
+
=cut
*/
@@ -658,6 +612,8 @@
=item C<static const char * skip_whitespace(const char *cmd)>
+Return a pointer to the first non-whitespace character in C<cmd>.
+
=cut
*/
@@ -677,6 +633,8 @@
=item C<static unsigned long get_uint(const char **cmd, unsigned int def)>
+Get an unsigned int from C<**cmd>.
+
=cut
*/
@@ -700,6 +658,8 @@
=item C<static unsigned long get_ulong(const char **cmd, unsigned long def)>
+Get an unsigned long from C<**cmd>.
+
=cut
*/
@@ -741,193 +701,6 @@
/*
-=item C<static const char * nextarg(const char *command)>
-
-Returns the position just past the current argument in the PASM instruction
-C<command>. This is not the same as C<skip_command()>, which is intended for
-debugger commands. This function is used for C<eval>.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char *
-nextarg(ARGIN_NULLOK(const char *command))
-{
- ASSERT_ARGS(nextarg)
- /* as long as the character pointed to by command is not NULL,
- * and it is either alphanumeric, a comma or a closing bracket,
- * continue looking for the next argument.
- */
- if (command) {
- while (isalnum((unsigned char) *command) || *command == ',' || *command == ']')
- command++;
-
- /* eat as much space as possible */
- command = skip_whitespace(command);
- }
-
- return command;
-}
-
-/*
-
-=item C<static const char * skip_command(const char *str)>
-
-Returns the pointer past the current debugger command. (This is an
-alternative to the C<skip_command()> macro above.)
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-static const char *
-skip_command(ARGIN(const char *str))
-{
- ASSERT_ARGS(skip_command)
- /* while str is not null and it contains a command (no spaces),
- * skip the character
- */
- while (*str && !isspace((unsigned char) *str))
- str++;
-
- /* eat all space after that */
- return skip_whitespace(str);
-}
-
-/*
-
-=item C<static const char * parse_int(const char *str, int *intP)>
-
-Parse an C<int> out of a string and return a pointer to just after the C<int>.
-The output parameter C<intP> contains the parsed value.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char *
-parse_int(ARGIN(const char *str), ARGOUT(int *intP))
-{
- ASSERT_ARGS(parse_int)
- char *end;
-
- *intP = strtol(str, &end, 0);
-
- return end;
-}
-
-/*
-
-=item C<static const char * parse_string(PARROT_INTERP, const char *str, STRING
-**strP)>
-
-Parse a double-quoted string out of a C string and return a pointer to
-just after the string. The parsed string is converted to a Parrot
-C<STRING> and placed in the output parameter C<strP>.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char *
-parse_string(PARROT_INTERP, ARGIN(const char *str), ARGOUT(STRING **strP))
-{
- ASSERT_ARGS(parse_string)
- const char *string_start;
-
- /* if this is not a quoted string, there's nothing to parse */
- if (*str != '"')
- return NULL;
-
- /* skip the quote */
- str++;
-
- string_start = str;
-
- /* parse while there's no closing quote */
- while (*str && *str != '"') {
- /* skip any potentially escaped quotes */
- if (*str == '\\' && str[1])
- str += 2;
- else
- str++;
- }
-
- /* create the output STRING */
- *strP = string_make(interp, string_start, (UINTVAL)(str - string_start),
- NULL, 0);
-
- /* skip the closing quote */
- if (*str)
- str++;
-
- return str;
-}
-
-/*
-
-=item C<static const char* parse_key(PARROT_INTERP, const char *str, PMC
-**keyP)>
-
-Parse an aggregate key out of a string and return a pointer to just
-after the key. Currently only string and integer keys are allowed.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static const char*
-parse_key(PARROT_INTERP, ARGIN(const char *str), ARGOUT(PMC **keyP))
-{
- ASSERT_ARGS(parse_key)
- /* clear output parameter */
- *keyP = NULL;
-
- /* make sure it's a key */
- if (*str != '[')
- return NULL;
-
- /* Skip [ */
- str++;
-
- /* if this is a string key, create a Parrot STRING */
- if (*str == '"') {
- STRING *parrot_string;
- str = parse_string(interp, str, &parrot_string);
- *keyP = key_new_string(interp, parrot_string);
- }
- /* if this is a numeric key */
- else if (isdigit((unsigned char) *str)) {
- int value;
- str = parse_int(str, &value);
- *keyP = key_new_integer(interp, (INTVAL) value);
- }
- /* unsupported case; neither a string nor a numeric key */
- else {
- return NULL;
- }
-
- /* hm, but if this doesn't match, it's probably an error */
- /* XXX str can be NULL from parse_string() */
- if (*str != ']')
- return NULL;
-
- /* skip the closing brace on the key */
- return ++str;
-}
-
-/*
-
=item C<static void debugger_cmdline(PARROT_INTERP)>
Debugger command line.
@@ -1001,7 +774,7 @@
TRACEDEB_MSG("Parrot_debugger_init");
if (! interp->pdb) {
- PDB_t *pdb = mem_allocate_zeroed_typed(PDB_t);
+ PDB_t *pdb = mem_gc_allocate_zeroed_typed(interp, PDB_t);
Parrot_Interp debugger = Parrot_new(interp);
interp->pdb = pdb;
debugger->pdb = pdb;
@@ -1009,9 +782,9 @@
pdb->debugger = debugger;
/* Allocate space for command line buffers, NUL terminated c strings */
- pdb->cur_command = (char *)mem_sys_allocate_zeroed(DEBUG_CMD_BUFFER_LENGTH + 1);
- pdb->last_command = (char *)mem_sys_allocate_zeroed(DEBUG_CMD_BUFFER_LENGTH + 1);
- pdb->file = mem_allocate_zeroed_typed(PDB_file_t);
+ pdb->cur_command = mem_gc_allocate_n_typed(interp, DEBUG_CMD_BUFFER_LENGTH + 1, char);
+ pdb->last_command = mem_gc_allocate_n_typed(interp, DEBUG_CMD_BUFFER_LENGTH + 1, char);
+ pdb->file = mem_gc_allocate_zeroed_typed(interp, PDB_file_t);
}
/* PDB_disassemble(interp, NULL); */
@@ -1044,10 +817,10 @@
PARROT_ASSERT(pdb);
PARROT_ASSERT(pdb->debugee == interp);
- mem_sys_free(pdb->last_command);
- mem_sys_free(pdb->cur_command);
+ mem_gc_free(interp, pdb->last_command);
+ mem_gc_free(interp, pdb->cur_command);
- mem_sys_free(pdb);
+ mem_gc_free(interp, pdb);
interp->pdb = NULL;
}
@@ -1245,7 +1018,6 @@
strcpy(pdb->cur_command, buf);
}
else {
-
/* update the last command */
if (pdb->cur_command[0] != '\0')
strcpy(pdb->last_command, pdb->cur_command);
@@ -1254,44 +1026,26 @@
c = pdb->cur_command;
- /*Parrot_io_eprintf(pdb->debugger, "\n(pdb) ");*/
Parrot_io_eprintf(pdb->debugger, "\n");
- /* skip leading whitespace */
-/*
- do {
- ch = fgetc(stdin);
- } while (isspace((unsigned char)ch) && ch != '\n');
-*/
{
- Interp * interpdeb = interp->pdb->debugger;
- STRING * readline = CONST_STRING(interpdeb, "readline_interactive");
- STRING * prompt = CONST_STRING(interpdeb, "(pdb) ");
- STRING *s= Parrot_str_new(interpdeb, NULL, 0);
- PMC *tmp_stdin = Parrot_io_stdhandle(interpdeb, 0, NULL);
-
- Parrot_pcc_invoke_method_from_c_args(interpdeb,
- tmp_stdin, readline,
- "S->S", prompt, & s);
- {
- char * const aux = Parrot_str_to_cstring(interpdeb, s);
- strcpy(c, aux);
- Parrot_str_free_cstring(aux);
- }
- ch = '\n';
- }
+ Interp *interpdeb = interp->pdb->debugger;
+ STRING *readline = CONST_STRING(interpdeb, "readline_interactive");
+ STRING *prompt = CONST_STRING(interpdeb, "(pdb) ");
+ STRING *s = Parrot_str_new(interpdeb, NULL, 0);
+ PMC *tmp_stdin = Parrot_io_stdhandle(interpdeb, 0, NULL);
+
+ Parrot_pcc_invoke_method_from_c_args(interpdeb,
+ tmp_stdin, readline,
+ "S->S", prompt, & s);
+ {
+ char * const aux = Parrot_str_to_cstring(interpdeb, s);
+ strcpy(c, aux);
+ Parrot_str_free_cstring(aux);
+ }
- /* generate string (no more than buffer length) */
-/*
- while (ch != EOF && ch != '\n' && (i < DEBUG_CMD_BUFFER_LENGTH)) {
- c[i++] = (char)ch;
- ch = fgetc(tmp_stdin);
+ ch = '\n';
}
-
- c[i] = '\0';
-*/
- if (ch == -1)
- strcpy(c, "quit");
}
}
@@ -1500,6 +1254,8 @@
=item C<static unsigned short condition_regtype(const char *cmd)>
+Return the type of the register represented by C<*cmd>.
+
=cut
*/
@@ -1627,7 +1383,7 @@
}
/* Allocate new condition */
- condition = mem_allocate_zeroed_typed(PDB_condition_t);
+ condition = mem_gc_allocate_zeroed_typed(interp, PDB_condition_t);
condition->type = cond_argleft | cond_type;
@@ -1640,7 +1396,7 @@
if (cond_argright != cond_argleft) {
Parrot_io_eprintf(interp->pdb->debugger, "Register types don't agree\n");
- mem_sys_free(condition);
+ mem_gc_free(interp, condition);
return NULL;
}
@@ -1649,28 +1405,28 @@
reg_number = (int)get_uint(&command, 0);
if (auxcmd == command) {
Parrot_io_eprintf(interp->pdb->debugger, "Invalid register\n");
- mem_sys_free(condition);
+ mem_gc_free(interp, condition);
return NULL;
}
if (reg_number < 0) {
Parrot_io_eprintf(interp->pdb->debugger, "Out-of-bounds register\n");
- mem_sys_free(condition);
+ mem_gc_free(interp, condition);
return NULL;
}
- condition->value = mem_allocate_typed(int);
+ condition->value = mem_gc_allocate_typed(interp, int);
*(int *)condition->value = reg_number;
}
/* If the first argument was an integer */
else if (condition->type & PDB_cond_int) {
/* This must be either an integer constant or register */
- condition->value = mem_allocate_typed(INTVAL);
+ condition->value = mem_gc_allocate_typed(interp, INTVAL);
*(INTVAL *)condition->value = (INTVAL)atoi(command);
condition->type |= PDB_cond_const;
}
else if (condition->type & PDB_cond_num) {
- condition->value = mem_allocate_typed(FLOATVAL);
+ condition->value = mem_gc_allocate_typed(interp, FLOATVAL);
*(FLOATVAL *)condition->value = (FLOATVAL)atof(command);
condition->type |= PDB_cond_const;
}
@@ -1690,7 +1446,7 @@
/* TT #1259: Need to figure out what to do in this case.
* For the time being, we just bail. */
Parrot_io_eprintf(interp->pdb->debugger, "Can't compare PMC with constant\n");
- mem_sys_free(condition);
+ mem_gc_free(interp, condition);
return NULL;
}
@@ -1753,16 +1509,9 @@
/* If there is a source file use line number, else opcode position */
-
- if (pdb->file) {
+ if (pdb->file && pdb->file->size) {
TRACEDEB_MSG("PDB_set_break file");
- if (!pdb->file->size) {
- Parrot_io_eprintf(pdb->debugger,
- "Can't set a breakpoint in empty file\n");
- return;
- }
-
/* If no line number was specified, set it at the current line */
if (ln != 0) {
unsigned long i;
@@ -1813,12 +1562,9 @@
TRACEDEB_MSG("PDB_set_break allocate breakpoint");
/* Allocate the new break point */
- newbreak = mem_allocate_zeroed_typed(PDB_breakpoint_t);
+ newbreak = mem_gc_allocate_zeroed_typed(interp, PDB_breakpoint_t);
- if (command) {
- /*command = skip_command(command);*/
- }
- else {
+ if (! command) {
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"NULL command passed to PDB_set_break");
}
@@ -1865,6 +1611,8 @@
=item C<static void list_breakpoints(PDB_t *pdb)>
+Print all breakpoints for this debugger session to C<pdb->debugger>.
+
=cut
*/
@@ -2104,7 +1852,7 @@
}
bp_id = breakpoint->id;
/* Kill the breakpoint */
- mem_sys_free(breakpoint);
+ mem_gc_free(interp, breakpoint);
Parrot_io_eprintf(interp->pdb->debugger, "Breakpoint %li deleted\n", bp_id);
}
@@ -2121,7 +1869,7 @@
*/
void
-PDB_delete_condition(SHIM_INTERP, ARGMOD(PDB_breakpoint_t *breakpoint))
+PDB_delete_condition(PARROT_INTERP, ARGMOD(PDB_breakpoint_t *breakpoint))
{
ASSERT_ARGS(PDB_delete_condition)
if (breakpoint->condition->value) {
@@ -2134,12 +1882,12 @@
}
else {
/* 'value' is a float or an int, so we can just free it */
- mem_sys_free(breakpoint->condition->value);
+ mem_gc_free(interp, breakpoint->condition->value);
breakpoint->condition->value = NULL;
}
}
- mem_sys_free(breakpoint->condition);
+ mem_gc_free(interp, breakpoint->condition);
breakpoint->condition = NULL;
}
@@ -2397,7 +2145,7 @@
/*
-=item C<char * PDB_escape(const char *string, UINTVAL length)>
+=item C<char * PDB_escape(PARROT_INTERP, const char *string, UINTVAL length)>
Escapes C<">, C<\r>, C<\n>, C<\t>, C<\a> and C<\\>.
@@ -2411,7 +2159,7 @@
PARROT_CAN_RETURN_NULL
PARROT_MALLOC
char *
-PDB_escape(ARGIN(const char *string), UINTVAL length)
+PDB_escape(PARROT_INTERP, ARGIN(const char *string), UINTVAL length)
{
ASSERT_ARGS(PDB_escape)
const char *end;
@@ -2424,7 +2172,7 @@
if (!string)
return NULL;
- fill = _new = (char *)mem_sys_allocate(length * 2 + 1);
+ fill = _new = mem_gc_allocate_n_typed(interp, length * 2 + 1, char);
for (; string < end; string++) {
switch (*string) {
@@ -2584,7 +2332,7 @@
(info->jump & PARROT_JUMP_RELATIVE)) {
if (file) {
dest[size++] = 'L';
- i = PDB_add_label(file, op, op[j]);
+ i = PDB_add_label(interp, file, op, op[j]);
}
else if (code_start) {
dest[size++] = 'O';
@@ -2624,12 +2372,12 @@
Parrot_str_to_cstring(interp, interp->code->
const_table->constants[op[j]]->u.string);
char * const escaped =
- PDB_escape(unescaped, interp->code->const_table->
+ PDB_escape(interp, unescaped, interp->code->const_table->
constants[op[j]]->u.string->strlen);
if (escaped) {
strcpy(&dest[size], escaped);
size += strlen(escaped);
- mem_sys_free(escaped);
+ mem_gc_free(interp, escaped);
}
Parrot_str_free_cstring(unescaped);
}
@@ -2855,8 +2603,8 @@
TRACEDEB_MSG("PDB_disassemble");
- pfile = mem_allocate_zeroed_typed(PDB_file_t);
- pline = mem_allocate_zeroed_typed(PDB_line_t);
+ pfile = mem_gc_allocate_zeroed_typed(interp, PDB_file_t);
+ pline = mem_gc_allocate_zeroed_typed(interp, PDB_line_t);
/* If we already got a source, free it */
if (pdb->file) {
@@ -2866,7 +2614,7 @@
pfile->line = pline;
pline->number = 1;
- pfile->source = (char *)mem_sys_allocate(default_size);
+ pfile->source = mem_gc_allocate_n_typed(interp, default_size, char);
alloced = space = default_size;
code_end = pc + interp->code->base.size;
@@ -2876,7 +2624,7 @@
if (space < default_size) {
alloced += default_size;
space += default_size;
- pfile->source = (char *)mem_sys_realloc(pfile->source, alloced);
+ pfile->source = mem_gc_realloc_n_typed(interp, pfile->source, alloced, char);
}
size = PDB_disassemble_op(interp, pfile->source + pfile->size,
@@ -2893,7 +2641,7 @@
pc += n;
/* Prepare for next line */
- newline = mem_allocate_typed(PDB_line_t);
+ newline = mem_gc_allocate_zeroed_typed(interp, PDB_line_t);
newline->label = NULL;
newline->next = NULL;
newline->number = pline->number + 1;
@@ -2931,8 +2679,8 @@
/*
-=item C<long PDB_add_label(PDB_file_t *file, const opcode_t *cur_opcode,
-opcode_t offset)>
+=item C<long PDB_add_label(PARROT_INTERP, PDB_file_t *file, const opcode_t
+*cur_opcode, opcode_t offset)>
Add a label to the label list.
@@ -2941,7 +2689,8 @@
*/
long
-PDB_add_label(ARGMOD(PDB_file_t *file), ARGIN(const opcode_t *cur_opcode),
+PDB_add_label(PARROT_INTERP, ARGMOD(PDB_file_t *file),
+ ARGIN(const opcode_t *cur_opcode),
opcode_t offset)
{
ASSERT_ARGS(PDB_add_label)
@@ -2957,7 +2706,7 @@
/* Allocate a new label */
label = file->label;
- _new = mem_allocate_typed(PDB_label_t);
+ _new = mem_gc_allocate_zeroed_typed(interp, PDB_label_t);
_new->opcode = cur_opcode + offset;
_new->next = NULL;
@@ -2987,7 +2736,7 @@
*/
void
-PDB_free_file(SHIM_INTERP, ARGIN_NULLOK(PDB_file_t *file))
+PDB_free_file(PARROT_INTERP, ARGIN_NULLOK(PDB_file_t *file))
{
ASSERT_ARGS(PDB_free_file)
while (file) {
@@ -2998,7 +2747,7 @@
while (line) {
PDB_line_t * const nline = line->next;
- mem_sys_free(line);
+ mem_gc_free(interp, line);
line = nline;
}
@@ -3008,19 +2757,19 @@
while (label) {
PDB_label_t * const nlabel = label->next;
- mem_sys_free(label);
+ mem_gc_free(interp, label);
label = nlabel;
}
/* Free the remaining allocated portions of the file structure */
if (file->sourcefilename)
- mem_sys_free(file->sourcefilename);
+ mem_gc_free(interp, file->sourcefilename);
if (file->source)
- mem_sys_free(file->source);
+ mem_gc_free(interp, file->source);
nfile = file->next;
- mem_sys_free(file);
+ mem_gc_free(interp, file);
file = nfile;
}
}
@@ -3076,10 +2825,10 @@
return;
}
- pfile = mem_allocate_zeroed_typed(PDB_file_t);
- pline = mem_allocate_zeroed_typed(PDB_line_t);
+ pfile = mem_gc_allocate_zeroed_typed(interp, PDB_file_t);
+ pline = mem_gc_allocate_zeroed_typed(interp, PDB_line_t);
- pfile->source = (char *)mem_sys_allocate(1024);
+ pfile->source = mem_gc_allocate_n_typed(interp, 1024, char);
pfile->line = pline;
pline->number = 1;
@@ -3089,8 +2838,8 @@
while ((c = fgetc(file)) != EOF) {
/* Grow it */
if (++size == 1024) {
- pfile->source = (char *)mem_sys_realloc(pfile->source,
- (size_t)pfile->size + 1024);
+ pfile->source = mem_gc_realloc_n_typed(interp, pfile->source,
+ (size_t)pfile->size + 1024, char);
size = 0;
}
pfile->source[pfile->size] = (char)c;
@@ -3100,7 +2849,7 @@
if (c == '\n') {
/* If the line has an opcode move to the next one,
otherwise leave it with NULL to skip it. */
- PDB_line_t *newline = mem_allocate_zeroed_typed(PDB_line_t);
+ PDB_line_t *newline = mem_gc_allocate_zeroed_typed(interp, PDB_line_t);
if (PDB_hasinstruction(pfile->source + pline->source_offset)) {
size_t n = interp->op_info_table[*pc].op_count;
@@ -3340,7 +3089,6 @@
{
ASSERT_ARGS(PDB_eval)
- PDB_t *pdb = interp->pdb;
Interp *warninterp = (interp->pdb && interp->pdb->debugger) ?
interp->pdb->debugger : interp;
TRACEDEB_MSG("PDB_eval");
@@ -3350,33 +3098,6 @@
/*
-=item C<opcode_t * PDB_compile(PARROT_INTERP, const char *command)>
-
-Compiles instructions with the PASM compiler.
-
-Appends an C<end> op.
-
-This may be called from C<PDB_eval> above or from the compile opcode
-which generates a malloced string.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-opcode_t *
-PDB_compile(PARROT_INTERP, ARGIN(const char *command))
-{
- ASSERT_ARGS(PDB_compile)
-
- UNUSED(command);
- Parrot_ex_throw_from_c_args(interp, NULL,
- EXCEPTION_UNIMPLEMENTED,
- "PDB_compile ('PASM1' compiler) has been deprecated");
-}
-
-/*
-
=item C<void PDB_print(PARROT_INTERP, const char *command)>
Print interp registers.
Modified: branches/ops_pct/src/dynext.c
==============================================================================
--- branches/ops_pct/src/dynext.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/dynext.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -155,7 +155,7 @@
{
ASSERT_ARGS(set_cstring_prop)
STRING * const key = Parrot_str_new_constant(interp, what);
- PMC * const prop = constant_pmc_new(interp, enum_class_String);
+ PMC * const prop = Parrot_pmc_new_constant(interp, enum_class_String);
VTABLE_set_string_native(interp, prop, name);
VTABLE_setprop(interp, lib_pmc, key, prop);
@@ -396,7 +396,7 @@
/* seems to be a native/NCI lib */
if (!load_func || !lib_pmc)
- lib_pmc = constant_pmc_new(interp, enum_class_ParrotLibrary);
+ lib_pmc = Parrot_pmc_new_constant(interp, enum_class_ParrotLibrary);
/* Call init, if it exists */
if (init_func)
@@ -532,7 +532,7 @@
make_string_pmc(PARROT_INTERP, ARGIN(STRING *string))
{
ASSERT_ARGS(make_string_pmc)
- PMC * const ret = constant_pmc_new(interp, enum_class_String);
+ PMC * const ret = Parrot_pmc_new_constant(interp, enum_class_String);
VTABLE_set_string_native(interp, ret, string);
return ret;
@@ -576,7 +576,7 @@
* Anyways, if we hope to share bytecode at runtime, we need to have
* them have identical opcodes anyways.
*/
- PMC * const new_lib_pmc = constant_pmc_new(d, enum_class_ParrotLibrary);
+ PMC * const new_lib_pmc = Parrot_pmc_new_constant(d, enum_class_ParrotLibrary);
PMC_data(new_lib_pmc) = handle;
VTABLE_setprop(d, new_lib_pmc, CONST_STRING(s, "_filename"), make_string_pmc(d, wo_ext));
@@ -587,10 +587,10 @@
if (d->n_libs != s->n_libs) {
INTVAL i;
if (d->all_op_libs)
- d->all_op_libs = (op_lib_t **)mem_sys_realloc(d->all_op_libs,
+ d->all_op_libs = (op_lib_t **)mem_internal_realloc(d->all_op_libs,
sizeof (op_lib_t *) * s->n_libs);
else
- d->all_op_libs = (op_lib_t **)mem_sys_allocate(sizeof (op_lib_t *) *
+ d->all_op_libs = (op_lib_t **)mem_internal_allocate(sizeof (op_lib_t *) *
s->n_libs);
for (i = d->n_libs; i < s->n_libs; ++i)
d->all_op_libs[i] = s->all_op_libs[i];
@@ -668,7 +668,7 @@
* XXX Parrot_ex_throw_from_c_args? return PMCNULL?
* PMC Undef seems convenient, because it can be queried with get_bool()
*/
- return pmc_new(interp, enum_class_Undef);
+ return Parrot_pmc_new(interp, enum_class_Undef);
}
return run_init_lib(interp, handle, lib_name, wo_ext);
Modified: branches/ops_pct/src/dynpmc/dynlexpad.pmc
==============================================================================
--- branches/ops_pct/src/dynpmc/dynlexpad.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/dynpmc/dynlexpad.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -45,7 +45,7 @@
(Parrot_DynLexPad_attributes *) PMC_data(SELF);
if (VTABLE_elements(interp, lexinfo)) {
- attrs->init = pmc_new_init(interp, enum_class_LexPad, lexinfo);
+ attrs->init = Parrot_pmc_new_init(interp, enum_class_LexPad, lexinfo);
}
else
attrs->init = NULL;
Modified: branches/ops_pct/src/dynpmc/foo.pmc
==============================================================================
--- branches/ops_pct/src/dynpmc/foo.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/dynpmc/foo.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -16,14 +16,14 @@
MULTI PMC* subtract(Integer value, PMC *dest) {
if (!dest)
- dest = pmc_new(interp, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(interp, SELF->vtable->base_type);
VTABLE_set_integer_native(interp, dest, 144);
return dest;
}
MULTI PMC* subtract(DEFAULT value, PMC *dest) {
if (!dest)
- dest = pmc_new(interp, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(interp, SELF->vtable->base_type);
VTABLE_set_integer_native(interp, dest, 244);
return dest;
}
Modified: branches/ops_pct/src/dynpmc/gdbmhash.pmc
==============================================================================
--- branches/ops_pct/src/dynpmc/gdbmhash.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/dynpmc/gdbmhash.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -73,7 +73,7 @@
}
-pmclass GDBMHash provides hash dynpmc lib gdbm {
+pmclass GDBMHash provides hash dynpmc lib gdbm auto_attrs {
ATTR struct GDBM_FH *db_handle;
/*
@@ -100,18 +100,14 @@
}
VTABLE void init() {
- Parrot_GDBMHash_attributes *attrs =
- mem_allocate_zeroed_typed(Parrot_GDBMHash_attributes);
-
- attrs->db_handle = mem_allocate_zeroed_typed(GDBM_FH);
- PMC_data(SELF) = attrs;
+ Parrot_GDBMHash_attributes *attrs = PARROT_GDBMHASH(SELF);
+ attrs->db_handle = mem_gc_allocate_zeroed_typed(INTERP, GDBM_FH);
PObj_custom_destroy_SET(SELF);
}
VTABLE void destroy() {
- mem_sys_free(
- ((Parrot_GDBMHash_attributes *)PMC_data(SELF))->db_handle);
- mem_sys_free(PMC_data(SELF));
+ Parrot_GDBMHash_attributes *attrs = PARROT_GDBMHASH(SELF);
+ mem_gc_free(INTERP, attrs->db_handle);
PMC_data(SELF) = NULL;
}
@@ -291,7 +287,7 @@
VTABLE PMC* get_pmc_keyed(PMC* key) {
STRING * ret_string = SELF.get_string_keyed(key);
- PMC *ret_pmc = pmc_new(interp, enum_class_String);
+ PMC *ret_pmc = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, ret_pmc, ret_string);
@@ -311,7 +307,7 @@
VTABLE void set_integer_keyed(PMC* key, INTVAL value) {
PMC *temp;
- temp = pmc_new(interp, enum_class_String);
+ temp = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_integer_native(interp, temp, value);
SELF.set_pmc_keyed(key, temp);
}
@@ -330,7 +326,7 @@
VTABLE void set_number_keyed(PMC* key, FLOATVAL value) {
PMC *temp;
- temp = pmc_new(interp, enum_class_String);
+ temp = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_number_native(interp, temp, value);
SELF.set_pmc_keyed(key, temp);
}
@@ -394,6 +390,40 @@
return;
}
+
+/*
+
+=back
+
+=head2 Specific Methods
+
+=over 4
+
+=item C<void open(STRING* value)>
+
+Open a or create a new dbm file.
+
+=cut
+
+*/
+
+ METHOD void open(STRING* value) {
+ VTABLE_set_string_native(interp, SELF, value);
+ }
+
+/*
+
+=item C<void close()>
+
+Close current dbm file.
+
+=cut
+
+*/
+
+ METHOD void close() {
+ gdbm_close(PMC_dbfh(SELF));
+ }
}
/*
Modified: branches/ops_pct/src/dynpmc/rational.pmc
==============================================================================
--- branches/ops_pct/src/dynpmc/rational.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/dynpmc/rational.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -193,41 +193,13 @@
/*
-=item * static void rat_power_int(PARROT_INTERP, PMC *self, int value)
-
-Calculates the power of a Rational-PMC to an exponent value in-place.
-
-=cut
-
-*/
-static void rat_power_int(PARROT_INTERP, PMC *self, int value) {
- #ifdef PARROT_HAS_GMP
- mpz_t num, den;
-
- mpq_get_num(num, RT(self));
- mpq_get_den(den, RT(self));
-
- mpz_pow_ui(num, num, (unsigned int) value);
- mpq_set_num(RT(self), num);
- mpz_clear(num);
-
- mpz_pow_ui(den, den, (unsigned int) value);
- mpq_set_den(RT(self), den);
- mpz_clear(den);
- #else
- RAISE_EXCEPTION
- #endif
-}
-
-/*
-
=back
=cut
*/
-pmclass Rational dynpmc provides scalar {
+pmclass Rational dynpmc provides scalar auto_attrs {
ATTR struct RATIONAL *rational;
/*
@@ -265,9 +237,8 @@
VTABLE void init() {
#ifdef PARROT_HAS_GMP
Parrot_Rational_attributes *attrs =
- mem_allocate_zeroed_typed(Parrot_Rational_attributes);
- PMC_data(SELF) = attrs;
- PMC_rational(SELF) = (RATIONAL *)malloc(sizeof (RATIONAL));
+ PARROT_RATIONAL(SELF);
+ attrs->rational = mem_gc_allocate_zeroed_typed(INTERP, RATIONAL);
mpq_init(RT(SELF));
PObj_custom_destroy_SET(SELF);
#endif
@@ -282,7 +253,7 @@
*/
VTABLE PMC *clone() {
#ifdef PARROT_HAS_GMP
- PMC * const ret = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const ret = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
mpq_set(RT(ret), RT(SELF));
return ret;
#else
@@ -300,9 +271,7 @@
VTABLE void destroy() {
#ifdef PARROT_HAS_GMP
mpq_clear(RT(SELF));
- mem_sys_free(RT(SELF));
- mem_sys_free(PMC_data(SELF));
- PMC_data(SELF) = NULL;
+ mem_gc_free(INTERP, RT(SELF));
#else
RAISE_EXCEPTION
#endif
@@ -522,7 +491,7 @@
MULTI PMC *add(Rational value, PMC* dest) {
#ifdef PARROT_HAS_GMP
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
mpq_add(RT(dest), RT(SELF), RT(value));
return dest;
@@ -633,7 +602,7 @@
MULTI PMC *subtract(Rational value, PMC* dest) {
#ifdef PARROT_HAS_GMP
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
mpq_sub(RT(dest), RT(SELF), RT(value));
return dest;
#else
@@ -743,7 +712,7 @@
MULTI PMC *multiply(Rational value, PMC* dest) {
#ifdef PARROT_HAS_GMP
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
mpq_mul(RT(dest), RT(SELF), RT(value));
return dest;
#else
@@ -853,7 +822,7 @@
MULTI PMC *divide(Rational value, PMC* dest) {
#ifdef PARROT_HAS_GMP
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
mpq_div(RT(dest), RT(SELF), RT(value));
return dest;
#else
@@ -951,7 +920,7 @@
*/
VTABLE PMC *neg(PMC* dest) {
#ifdef PARROT_HAS_GMP
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
mpq_neg(RT(dest), RT(SELF));
return dest;
@@ -984,7 +953,7 @@
*/
VTABLE PMC *absolute(PMC* dest) {
#ifdef PARROT_HAS_GMP
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
mpq_abs(RT(dest), RT(SELF));
return dest;
Modified: branches/ops_pct/src/embed.c
==============================================================================
--- branches/ops_pct/src/embed.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/embed.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -32,13 +32,9 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-PARROT_OBSERVER
-static const char * op_name(PARROT_INTERP, int k)
- __attribute__nonnull__(1);
-
-static void print_constant_table(PARROT_INTERP)
- __attribute__nonnull__(1);
+static void print_constant_table(PARROT_INTERP, ARGIN(PMC *output))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void print_debug(PARROT_INTERP, SHIM(int status), SHIM(void *p))
__attribute__nonnull__(1);
@@ -52,10 +48,9 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-#define ASSERT_ARGS_op_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_print_constant_table __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(output))
#define ASSERT_ARGS_print_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_set_current_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -186,7 +181,7 @@
void
Parrot_set_executable_name(PARROT_INTERP, Parrot_String name)
{
- PMC * const name_pmc = pmc_new(interp, enum_class_String);
+ PMC * const name_pmc = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, name_pmc, name);
VTABLE_set_pmc_keyed_int(interp, interp->iglobals, IGLOBALS_EXECUTABLE,
name_pmc);
@@ -463,7 +458,7 @@
INTVAL wanted = program_size;
size_t read_result;
- program_code = mem_allocate_n_typed(chunk_size, char);
+ program_code = mem_gc_allocate_n_typed(interp, chunk_size, char);
cursor = program_code;
program_size = 0;
@@ -474,7 +469,8 @@
break;
chunk_size = 1024;
- mem_realloc_n_typed(program_code, program_size + chunk_size, char);
+ program_code = mem_gc_realloc_n_typed(interp, program_code,
+ program_size + chunk_size, char);
if (!program_code) {
Parrot_io_eprintf(interp,
@@ -492,7 +488,7 @@
"Parrot VM: Problem reading packfile from PIO: code %d.\n",
ferror(io));
fclose(io);
- mem_sys_free(program_code);
+ mem_gc_free(interp, program_code);
return NULL;
}
@@ -635,7 +631,7 @@
setup_argv(PARROT_INTERP, int argc, ARGIN(char **argv))
{
ASSERT_ARGS(setup_argv)
- PMC *userargv = pmc_new(interp, enum_class_ResizableStringArray);
+ PMC *userargv = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
INTVAL i;
if (Interp_debug_TEST(interp, PARROT_START_DEBUG_FLAG)) {
@@ -666,26 +662,6 @@
/*
-=item C<static const char * op_name(PARROT_INTERP, int k)>
-
-Returns the name of the opcode.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_OBSERVER
-static const char *
-op_name(PARROT_INTERP, int k)
-{
- ASSERT_ARGS(op_name)
- return interp->op_info_table[k].full_name;
-}
-
-
-/*
-
=item C<static void print_debug(PARROT_INTERP, int status, void *p)>
Prints GC info.
@@ -763,7 +739,7 @@
/* If we didn't find anything, put a dummy PMC into current_sub.
The default values set by SUb.init are appropiate for the
dummy, don't need additional settings. */
- sub_pmc = pmc_new(interp, enum_class_Sub);
+ sub_pmc = Parrot_pmc_new(interp, enum_class_Sub);
Parrot_pcc_set_sub(interp, CURRENT_CONTEXT(interp), sub_pmc);
return sub_pmc;
@@ -868,7 +844,7 @@
/*
-=item C<static void print_constant_table(PARROT_INTERP)>
+=item C<static void print_constant_table(PARROT_INTERP, PMC *output)>
Prints the contents of the constants table.
@@ -876,41 +852,41 @@
*/
static void
-print_constant_table(PARROT_INTERP)
+print_constant_table(PARROT_INTERP, ARGIN(PMC *output))
{
ASSERT_ARGS(print_constant_table)
const INTVAL numconstants = interp->code->const_table->const_count;
INTVAL i;
/* TODO: would be nice to print the name of the file as well */
- Parrot_io_printf(interp, "=head1 Constant-table\n\n");
+ Parrot_io_fprintf(interp, output, "=head1 Constant-table\n\n");
for (i = 0; i < numconstants; ++i) {
const PackFile_Constant * const c = interp->code->const_table->constants[i];
switch (c->type) {
case PFC_NUMBER:
- Parrot_io_printf(interp, "PMC_CONST(%d): %f\n", i, c->u.number);
+ Parrot_io_fprintf(interp, output, "PMC_CONST(%d): %f\n", i, c->u.number);
break;
case PFC_STRING:
- Parrot_io_printf(interp, "PMC_CONST(%d): %S\n", i, c->u.string);
+ Parrot_io_fprintf(interp, output, "PMC_CONST(%d): %S\n", i, c->u.string);
break;
case PFC_KEY:
- Parrot_io_printf(interp, "PMC_CONST(%d): ", i);
+ Parrot_io_fprintf(interp, output, "PMC_CONST(%d): ", i);
/* XXX */
/* Parrot_print_p(interp, c->u.key); */
- Parrot_io_printf(interp, "(PMC constant)");
- Parrot_io_printf(interp, "\n");
+ Parrot_io_fprintf(interp, output, "(PMC constant)");
+ Parrot_io_fprintf(interp, output, "\n");
break;
case PFC_PMC:
{
- Parrot_io_printf(interp, "PMC_CONST(%d): ", i);
+ Parrot_io_fprintf(interp, output, "PMC_CONST(%d): ", i);
switch (c->u.key->vtable->base_type) {
/* each PBC file has a ParrotInterpreter, but it can't
* stringify by itself */
case enum_class_ParrotInterpreter:
- Parrot_io_printf(interp, "'ParrotInterpreter'");
+ Parrot_io_fprintf(interp, output, "'ParrotInterpreter'");
break;
/* FixedIntegerArrays used for signatures, handy to print */
@@ -918,15 +894,15 @@
{
INTVAL n = VTABLE_elements(interp, c->u.key);
INTVAL i;
- Parrot_io_printf(interp, "[");
+ Parrot_io_fprintf(interp, output, "[");
for (i = 0; i < n; ++i) {
INTVAL val = VTABLE_get_integer_keyed_int(interp, c->u.key, i);
- Parrot_io_printf(interp, "%d", val);
+ Parrot_io_fprintf(interp, output, "%d", val);
if (i < n - 1)
- Parrot_io_printf(interp, ",");
+ Parrot_io_fprintf(interp, output, ",");
}
- Parrot_io_printf(interp, "]");
+ Parrot_io_fprintf(interp, output, "]");
break;
}
case enum_class_NameSpace:
@@ -937,28 +913,28 @@
/*Parrot_print_p(interp, c->u.key);*/
STRING * const s = VTABLE_get_string(interp, c->u.key);
if (s)
- Parrot_io_printf(interp, "%Ss", s);
+ Parrot_io_fprintf(interp, output, "%Ss", s);
break;
}
case enum_class_Sub:
- Parrot_io_printf(interp, "%S", VTABLE_get_string(interp, c->u.key));
+ Parrot_io_fprintf(interp, output, "%S", VTABLE_get_string(interp, c->u.key));
break;
default:
- Parrot_io_printf(interp, "(PMC constant)");
+ Parrot_io_fprintf(interp, output, "(PMC constant)");
break;
}
- Parrot_io_printf(interp, "\n");
+ Parrot_io_fprintf(interp, output, "\n");
break;
}
default:
- Parrot_io_printf(interp, "wrong constant type in constant table!\n");
+ Parrot_io_fprintf(interp, output, "wrong constant type in constant table!\n");
/* XXX throw an exception? Is it worth the trouble? */
break;
}
}
- Parrot_io_printf(interp, "\n=cut\n\n");
+ Parrot_io_fprintf(interp, output, "\n=cut\n\n");
}
@@ -977,14 +953,23 @@
PARROT_EXPORT
void
-Parrot_disassemble(PARROT_INTERP, SHIM(const char *outfile), Parrot_disassemble_options options)
+Parrot_disassemble(PARROT_INTERP, ARGIN(const char *outfile), Parrot_disassemble_options options)
{
PDB_line_t *line;
- PDB_t * const pdb = mem_allocate_zeroed_typed(PDB_t);
+ PDB_t * const pdb = mem_gc_allocate_typed(interp, PDB_t);
int num_mappings = 0;
int curr_mapping = 0;
int op_code_seq_num = 0;
int debugs;
+ PMC *output;
+
+ if (outfile != NULL) {
+ output = Parrot_io_open(interp, PMCNULL,
+ Parrot_str_new(interp, outfile, 0),
+ Parrot_str_new_constant(interp, "tw"));
+ }
+ else
+ output = Parrot_io_stdhandle(interp, PIO_STDOUT_FILENO, PMCNULL);
interp->pdb = pdb;
pdb->cur_opcode = interp->code->base.data;
@@ -994,26 +979,26 @@
line = pdb->file->line;
debugs = (interp->code->debugs != NULL);
- print_constant_table(interp);
+ print_constant_table(interp, output);
if (options & enum_DIS_HEADER)
return;
if (!(options & enum_DIS_BARE))
- Parrot_io_printf(interp, "# %12s-%12s", "Seq_Op_Num", "Relative-PC");
+ Parrot_io_fprintf(interp, output, "# %12s-%12s", "Seq_Op_Num", "Relative-PC");
if (debugs) {
if (!(options & enum_DIS_BARE))
- Parrot_io_printf(interp, " %6s:\n", "SrcLn#");
+ Parrot_io_fprintf(interp, output, " %6s:\n", "SrcLn#");
num_mappings = interp->code->debugs->num_mappings;
}
else {
- Parrot_io_printf(interp, "\n");
+ Parrot_io_fprintf(interp, output, "\n");
}
while (line->next) {
const char *c;
- /* Parrot_io_printf(interp, "%i < %i %i == %i \n", curr_mapping,
+ /* 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); */
@@ -1021,35 +1006,37 @@
if (op_code_seq_num == interp->code->debugs->mappings[curr_mapping]->offset) {
const int filename_const_offset =
interp->code->debugs->mappings[curr_mapping]->filename;
- Parrot_io_printf(interp, "# Current Source Filename '%Ss'\n",
+ Parrot_io_fprintf(interp, output, "# Current Source Filename '%Ss'\n",
interp->code->const_table->constants[filename_const_offset]->u.string);
curr_mapping++;
}
}
if (!(options & enum_DIS_BARE))
- Parrot_io_printf(interp, "%012i-%012i",
+ Parrot_io_fprintf(interp, output, "%012i-%012i",
op_code_seq_num, line->opcode - interp->code->base.data);
if (debugs && !(options & enum_DIS_BARE))
- Parrot_io_printf(interp, " %06i: ",
+ Parrot_io_fprintf(interp, output, " %06i: ",
interp->code->debugs->base.data[op_code_seq_num]);
/* If it has a label print it */
if (line->label)
- Parrot_io_printf(interp, "L%li:\t", line->label->number);
+ Parrot_io_fprintf(interp, output, "L%li:\t", line->label->number);
else
- Parrot_io_printf(interp, "\t");
+ Parrot_io_fprintf(interp, output, "\t");
c = pdb->file->source + line->source_offset;
while (c && *c != '\n')
- Parrot_io_printf(interp, "%c", *(c++));
+ Parrot_io_fprintf(interp, output, "%c", *(c++));
- Parrot_io_printf(interp, "\n");
+ Parrot_io_fprintf(interp, output, "\n");
line = line->next;
op_code_seq_num++;
}
+ if (outfile != NULL)
+ Parrot_io_close(interp, output);
return;
}
@@ -1076,7 +1063,7 @@
PackFile * const pf = PackFile_new(interp, 0);
static opcode_t program_code[2];
- program_code[0] = interp->op_lib->op_code("enternative", 0);
+ program_code[0] = interp->op_lib->op_code(interp, "enternative", 0);
program_code[1] = 0; /* end */
pf->cur_cs = (PackFile_ByteCode *)
Deleted: branches/ops_pct/src/events.c
==============================================================================
--- branches/ops_pct/src/events.c Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,1561 +0,0 @@
-/*
-Copyright (C) 2001-2008, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/events.c - Event handling stuff
-
-=head1 DESCRIPTION
-
-An event_thread handles async events for all interpreters. When events
-are due, they are placed in per interpreter task_queues, where they are
-handled then by the C<check_event*> opcodes.
-
-IO events and signals are caught in the io_thread, which again
-dispatches these to one or all interpreters.
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/parrot.h"
-#include "parrot/events.h"
-#include "events.str"
-
-typedef struct pending_io_events {
- parrot_event **events;
- size_t n;
- size_t alloced;
-} pending_io_events;
-
-/* HEADERIZER HFILE: include/parrot/events.h */
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static opcode_t * do_event(PARROT_INTERP,
- ARGIN(parrot_event* event),
- ARGIN_NULLOK(opcode_t *next))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_MALLOC
-PARROT_CANNOT_RETURN_NULL
-static QUEUE_ENTRY* dup_entry(ARGIN(const QUEUE_ENTRY *entry))
- __attribute__nonnull__(1);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static QUEUE_ENTRY* dup_entry_interval(
- ARGIN(QUEUE_ENTRY *entry),
- FLOATVAL now)
- __attribute__nonnull__(1);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static void* event_thread(ARGMOD(void *data))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*data);
-
-static void event_to_exception(PARROT_INTERP,
- ARGIN(const parrot_event* event))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void init_events_all(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-static void init_events_first(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_CAN_RETURN_NULL
-static void* io_thread(SHIM(void *data));
-
-static void io_thread_ready_rd(ARGMOD(pending_io_events *ios), int ready_rd)
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*ios);
-
-static void Parrot_sigaction(int sig, ARGIN(void (*handler)(int)))
- __attribute__nonnull__(2);
-
-static void Parrot_unblock_signal(int sig);
-static int process_events(ARGMOD(QUEUE *event_q))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*event_q);
-
-static void schedule_signal_event(int signum);
-static void sig_handler(int signum);
-static void stop_io_thread(void);
-static void store_io_event(
- ARGMOD(pending_io_events *ios),
- ARGIN(parrot_event *ev))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*ios);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static opcode_t * wait_for_wakeup(PARROT_INTERP,
- ARGIN_NULLOK(opcode_t *next))
- __attribute__nonnull__(1);
-
-#define ASSERT_ARGS_do_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(event))
-#define ASSERT_ARGS_dup_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(entry))
-#define ASSERT_ARGS_dup_entry_interval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(entry))
-#define ASSERT_ARGS_event_thread __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(data))
-#define ASSERT_ARGS_event_to_exception __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(event))
-#define ASSERT_ARGS_init_events_all __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_init_events_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_io_thread __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_io_thread_ready_rd __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(ios))
-#define ASSERT_ARGS_Parrot_sigaction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(handler))
-#define ASSERT_ARGS_Parrot_unblock_signal __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_process_events __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(event_q))
-#define ASSERT_ARGS_schedule_signal_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_sig_handler __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_stop_io_thread __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_store_io_event __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(ios) \
- , PARROT_ASSERT_ARG(ev))
-#define ASSERT_ARGS_wait_for_wakeup __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 */
-
-/*
- * event debugging stuff - turn it off before running tests
- */
-#define EVENT_DEBUG 0
-/*
- * not yet - need to sort out platform code and fix exceptions first
- * TODO get some config for POSIX compliant
- * TODO create API for extenders like ponie - events disabled for now
- */
-#if defined(linux) || defined(darwin)
-# define INSTALL_EVENT_HANDLER 0
-#else
-# define INSTALL_EVENT_HANDLER 0
-#endif
-
-#if EVENT_DEBUG
-# define edebug(x) fprintf (x)
-static const char *ev_names[] = {
- "EVENT_TYPE_NONE",
- "EVENT_TYPE_EVENT",
- "EVENT_TYPE_IO",
- "EVENT_TYPE_MSG",
- "EVENT_TYPE_TIMER",
- "EVENT_TYPE_CALL_BACK",
- "EVENT_TYPE_SLEEP",
- "EVENT_TYPE_TERMINATE",
- "EVENT_TYPE_EVENT_TERMINATE",
- "EVENT_TYPE_CLASS_CHANGED",
- "EVENT_TYPE_SIGNAL",
- "EVENT_TYPE_SUSPEND_FOR_GC"
-};
-static const char*
-et(const parrot_event* const e)
-{
- return ev_names[e->type];
-}
-
-#else
-# define edebug(x)
-#endif
-
-
-/* forward defs */
-
-/*
- * we have exactly one global event_queue
- * TODO task prio handling
- */
-static QUEUE *event_queue;
-#define TASK_PRIO 10
-
-/*
- * user accessible signals like SIGINT
- */
-#ifndef SIGINT
-# define SIGINT -4711
-#endif
-#ifndef SIGHUP
-# define SIGHUP -4712
-#endif
-
-/*
- * XXX need a configure test
- * should be sig_atomic_t
- */
-static int sig_int, sig_hup;
-
-/*
- * a pipe is used to send messages to the IO thread
- */
-static int pipe_fds[2];
-#define PIPE_READ_FD pipe_fds[0]
-#define PIPE_WRITE_FD pipe_fds[1]
-
-/*
- * a structure to communicate with the io_thread
- */
-typedef struct io_thread_msg {
- INTVAL command;
- parrot_event *ev;
-} io_thread_msg;
-
-
-/*
-
-=back
-
-=head2 Signal Handling
-
-=over 4
-
-=item C<static void sig_handler(int signum)>
-
-Handle signal C<signum>.
-
-TODO - Only C<SIGHUP> is handled at the moment for testing
-
-=cut
-
-*/
-
-static void
-sig_handler(int signum)
-{
- ASSERT_ARGS(sig_handler)
- switch (signum) {
- case SIGINT:
- sig_int = 1;
- break;
- case SIGHUP:
- sig_hup = 1;
- break;
- default:
- break;
- }
-}
-
-/*
-
-=item C<static void Parrot_sigaction(int sig, void (*handler(int)))>
-
-Signal handlers are common to all threads, signal block masks are
-specific, so we install one handler then block that signal and unblock
-it in the thread, that will receive that signal.
-
-=cut
-
-*/
-
-static void
-Parrot_sigaction(int sig, ARGIN(void (*handler)(int)))
-{
- ASSERT_ARGS(Parrot_sigaction)
-#ifdef PARROT_HAS_SIGACTION
- struct sigaction action;
- sigset_t block_mask;
-
- /* install handler */
- action.sa_handler = handler;
- sigemptyset(&action.sa_mask);
- action.sa_flags = 0;
- sigaction(sig, &action, NULL);
-
- /* block that signal */
- sigemptyset(&block_mask);
- sigaddset(&block_mask, sig);
- sigprocmask(SIG_BLOCK, &block_mask, NULL);
-#else
- UNUSED(sig);
- UNUSED(handler);
-#endif
-}
-
-
-/*
-
-=item C<static void Parrot_unblock_signal(int sig)>
-
-unblock a signal
-
-=cut
-
-*/
-
-static void
-Parrot_unblock_signal(int sig)
-{
- ASSERT_ARGS(Parrot_unblock_signal)
-#ifdef PARROT_HAS_SIGACTION
- sigset_t block_mask;
-
- sigemptyset(&block_mask);
- sigaddset(&block_mask, sig);
- sigprocmask(SIG_UNBLOCK, &block_mask, NULL);
-#else
- UNUSED(sig);
-#endif
-}
-
-
-/*
-
-=item C<void Parrot_init_signals(void)>
-
-Set up actions to handle signals.
-Only SIGHUP handled at the moment.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_init_signals(void)
-{
- ASSERT_ARGS(Parrot_init_signals)
- /*
- * SIGFPE is architecture specific - some signal an error,
- * some don't, so we have to use direct checks if we are dividing
- * by zero.
- */
- Parrot_sigaction(SIGHUP, sig_handler);
-}
-
-/*
-
-=back
-
-=head2 Initialization
-
-=over 4
-
-=item C<static void init_events_first(PARROT_INTERP)>
-
-Init event system for first interpreter.
-
-=cut
-
-*/
-
-static void
-init_events_first(PARROT_INTERP)
-{
- ASSERT_ARGS(init_events_first)
- Parrot_thread ev_handle;
-#ifndef WIN32
- Parrot_thread io_handle;
-#endif
-
- /*
- * be sure all init is done only once
- * we could use pthread_once for that too
- */
- if (event_queue)
- PANIC(interp, "event queue already exists - missing parent_interp?");
- /*
- * create event queue
- */
- event_queue = queue_init(TASK_PRIO);
- /*
- * we use a message pipe to send IO related stuff to the
- * IO thread
- */
-#ifndef WIN32
- /*
- * pipes on WIN32 don't support select
- * s. p6i: "event.c - of signals and pipes"
- */
- if (pipe(pipe_fds))
- Parrot_ex_throw_from_c_args(interp, NULL, 1, "Couldn't create message pipe");
-#endif
- /*
- * now set some sig handlers before any thread is started, so
- * that all threads inherit the signal block mask
- */
-#if INSTALL_EVENT_HANDLER
- Parrot_init_signals();
-#endif
- /*
- * we start an event_handler thread
- */
- THREAD_CREATE_DETACHED(ev_handle, event_thread, event_queue);
- /*
- * and a signal and IO handler thread
- */
-#ifndef WIN32
- THREAD_CREATE_DETACHED(io_handle, io_thread, event_queue);
-#endif
-}
-
-/*
-
-=item C<static void init_events_all(PARROT_INTERP)>
-
-Init events for all interpreters.
-
-=cut
-
-*/
-
-static void
-init_events_all(PARROT_INTERP)
-{
- ASSERT_ARGS(init_events_all)
- /*
- * create per interpreter task queue
- */
- interp->task_queue = queue_init(0);
-}
-
-/*
-
-=item C<void Parrot_init_events(PARROT_INTERP)>
-
-Initialize the event system.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_init_events(PARROT_INTERP)
-{
- ASSERT_ARGS(Parrot_init_events)
- if (!interp->parent_interpreter) {
- /* add the very first interpreter to the list of interps. */
- pt_add_to_interpreters(interp, NULL);
- init_events_first(interp);
- }
- init_events_all(interp);
-}
-
-/*
-
-=back
-
-=head2 Event Handler Functions
-
-=over 4
-
-=item C<void Parrot_schedule_event(PARROT_INTERP, parrot_event* ev)>
-
-Create queue entry and insert event into task queue.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_schedule_event(PARROT_INTERP, ARGMOD(parrot_event* ev))
-{
- ASSERT_ARGS(Parrot_schedule_event)
- QUEUE_ENTRY * const entry = mem_allocate_typed(QUEUE_ENTRY);
- entry->next = NULL;
- ev->interp = interp;
- entry->data = ev;
- switch (ev->type) {
- case EVENT_TYPE_TIMER:
- case EVENT_TYPE_SLEEP:
- entry->type = QUEUE_ENTRY_TYPE_TIMED_EVENT;
- insert_entry(event_queue, entry);
- break;
- case EVENT_TYPE_CALL_BACK:
- case EVENT_TYPE_SIGNAL:
- case EVENT_TYPE_IO:
- entry->type = QUEUE_ENTRY_TYPE_EVENT;
- unshift_entry(event_queue, entry);
- break;
- default:
- entry->type = QUEUE_ENTRY_TYPE_EVENT;
- push_entry(event_queue, entry);
- break;
- }
-}
-
-/*
-
-=item C<static void schedule_signal_event(int signum)>
-
-create and schedule a signal event
-
-=cut
-
-*/
-
-static void
-schedule_signal_event(int signum)
-{
- ASSERT_ARGS(schedule_signal_event)
- parrot_event* const ev = mem_allocate_typed(parrot_event);
- QUEUE_ENTRY * const entry = mem_allocate_typed(QUEUE_ENTRY);
-
- entry->next = NULL;
- entry->type = QUEUE_ENTRY_TYPE_EVENT;
- ev->type = EVENT_TYPE_SIGNAL;
- ev->u.signal = signum;
- entry->data = ev;
- /*
- * deliver to all interpreters
- */
- Parrot_schedule_broadcast_qentry(entry);
-}
-
-/*
-
-=item C<void Parrot_new_timer_event(PARROT_INTERP, PMC *timer, FLOATVAL diff,
-FLOATVAL interval, int repeat, PMC *sub, parrot_event_type_enum typ)>
-
-Create a new timer event due at C<diff> from now, repeated at C<interval>
-and running the passed C<sub>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_new_timer_event(PARROT_INTERP, ARGIN_NULLOK(PMC *timer), FLOATVAL diff,
- FLOATVAL interval, int repeat, ARGIN_NULLOK(PMC *sub), parrot_event_type_enum typ)
-{
- ASSERT_ARGS(Parrot_new_timer_event)
- parrot_event* const ev = mem_allocate_typed(parrot_event);
-
- const FLOATVAL now = Parrot_floatval_time();
-
- ev->type = typ;
- ev->u.timer_event.timer = timer;
- ev->u.timer_event.abs_time = now + diff;
- ev->u.timer_event.interval = interval;
- ev->u.timer_event.repeat = repeat;
- ev->u.timer_event.sub = sub;
-
- if (repeat && FLOAT_IS_ZERO(interval))
- ev->u.timer_event.interval = diff;
-
- Parrot_schedule_event(interp, ev);
-}
-
-/*
-
-=item C<void Parrot_new_cb_event(PARROT_INTERP, PMC *cbi, char *ext)>
-
-Prepare and schedule a callback event.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_new_cb_event(PARROT_INTERP, ARGIN(PMC *cbi), ARGIN(char *ext))
-{
- ASSERT_ARGS(Parrot_new_cb_event)
- parrot_event* const ev = mem_allocate_typed(parrot_event);
- QUEUE_ENTRY* const entry = mem_allocate_typed(QUEUE_ENTRY);
-
- entry->next = NULL;
- entry->data = ev;
- ev->interp = interp;
- ev->type = EVENT_TYPE_CALL_BACK;
- ev->u.call_back.cbi = cbi;
- ev->u.call_back.external_data = ext;
- Parrot_schedule_interp_qentry(interp, entry);
-}
-
-/*
-
-=item C<void Parrot_del_timer_event(PARROT_INTERP, const PMC *timer)>
-
-Deactivate the timer identified by C<timer>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_del_timer_event(PARROT_INTERP, ARGIN(const PMC *timer))
-{
- ASSERT_ARGS(Parrot_del_timer_event)
- QUEUE_ENTRY *entry;
-
- LOCK(event_queue->queue_mutex);
-
- for (entry = event_queue->head; entry; entry = entry->next) {
- if (entry->type == QUEUE_ENTRY_TYPE_TIMED_EVENT) {
-
- parrot_event * const event = (parrot_event *)entry->data;
-
- if (event->interp == interp
- && event->u.timer_event.timer == timer) {
- event->u.timer_event.interval = 0.0;
- event->type = EVENT_TYPE_NONE;
- break;
- }
- }
- }
- UNLOCK(event_queue->queue_mutex);
-}
-
-/*
-
-=item C<void Parrot_new_terminate_event(PARROT_INTERP)>
-
-Create a terminate event, interpreter will leave the run-loop when this
-event arrives.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_new_terminate_event(PARROT_INTERP)
-{
- ASSERT_ARGS(Parrot_new_terminate_event)
- parrot_event* const ev = mem_allocate_typed(parrot_event);
- ev->type = EVENT_TYPE_TERMINATE;
- Parrot_schedule_event(interp, ev);
-}
-
-/*
-
-=item C<void Parrot_new_suspend_for_gc_event(PARROT_INTERP)>
-
-Create a suspend-for-GC event, interpreter will wait on a condition
-variable for GC to finish when the event arrives.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_new_suspend_for_gc_event(PARROT_INTERP)
-{
- ASSERT_ARGS(Parrot_new_suspend_for_gc_event)
- QUEUE_ENTRY *qe;
- parrot_event* const ev = mem_allocate_typed(parrot_event);
- ev->type = EVENT_TYPE_SUSPEND_FOR_GC;
- qe = mem_allocate_typed(QUEUE_ENTRY);
- qe->next = NULL;
- qe->data = ev;
- qe->type = QUEUE_ENTRY_TYPE_EVENT;
- /* we don't use schedule_event because we must modify its
- * task queue immediately
- */
- Parrot_schedule_interp_qentry(interp, qe);
-}
-
-/*
-
-=item C<void Parrot_kill_event_loop(PARROT_INTERP)>
-
-Schedule event-loop terminate event. This shuts down the event thread.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_kill_event_loop(PARROT_INTERP)
-{
- ASSERT_ARGS(Parrot_kill_event_loop)
- parrot_event* const ev = mem_allocate_typed(parrot_event);
- ev->type = EVENT_TYPE_EVENT_TERMINATE;
- Parrot_schedule_event(interp, ev);
-}
-
-/*
-
-=item C<void Parrot_schedule_interp_qentry(PARROT_INTERP, struct QUEUE_ENTRY
-*entry)>
-
-Put a queue entry into the interpreters task queue and enable event
-checking for the interpreter.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_schedule_interp_qentry(PARROT_INTERP, ARGIN(struct QUEUE_ENTRY *entry))
-{
- ASSERT_ARGS(Parrot_schedule_interp_qentry)
- parrot_event * const event = (parrot_event *)entry->data;
- /*
- * sleep checks events when it awakes
- */
- edebug((stderr, "got entry - schedule_inter_qentry %s\n", et(event)));
- if (event->type != EVENT_TYPE_SLEEP)
- enable_event_checking(interp);
- /*
- * do push_entry last - this signales the queue condition so the
- * interpreter might starting process that event immediately
- *
- * we should better use a priority for placing the event
- * in front or at the end of the queue
- */
- switch (event->type) {
- case EVENT_TYPE_CALL_BACK:
- case EVENT_TYPE_SIGNAL:
- unshift_entry(interp->task_queue, entry);
- break;
- default:
- push_entry(interp->task_queue, entry);
- break;
- }
-}
-
-/*
-
-=item C<void Parrot_schedule_broadcast_qentry(struct QUEUE_ENTRY *entry)>
-
-Broadcast an event.
-
-=cut
-
-*/
-
-void
-Parrot_schedule_broadcast_qentry(ARGIN(struct QUEUE_ENTRY *entry))
-{
- ASSERT_ARGS(Parrot_schedule_broadcast_qentry)
- parrot_event * const event = (parrot_event *)entry->data;
-
- switch (event->type) {
- case EVENT_TYPE_SIGNAL:
- edebug((stderr, "broadcast signal\n"));
- /*
- * we don't have special signal handlers in usercode yet
- * e.g.:
- * install handler like exception handler *and*
- * set a interpreter flag, that a handler exists
- * we then could examine that flag (after LOCKing it)
- * and dispatch the exception to all interpreters that
- * handle it
- * Finally, we send the first (main) interpreter that signal
- *
- * For now just send to all.
- *
- */
- switch (event->u.signal) {
- case SIGHUP:
- case SIGINT:
- {
- if (n_interpreters) {
- size_t i;
- LOCK(interpreter_array_mutex);
- for (i = 1; i < n_interpreters; ++i) {
- Interp *interp;
- edebug((stderr, "deliver SIGINT to %d\n", i));
- interp = interpreter_array[i];
- if (interp)
- Parrot_schedule_interp_qentry(interp,
- dup_entry(entry));
- }
- UNLOCK(interpreter_array_mutex);
- }
- Parrot_schedule_interp_qentry(interpreter_array[0], entry);
- edebug((stderr, "deliver SIGINT to 0\n"));
- }
- break;
- default:
- mem_sys_free(entry);
- mem_sys_free(event);
- }
- break;
- default:
- mem_sys_free(entry);
- mem_sys_free(event);
- exit_fatal(1, "Unknown event to broadcast");
- break;
- }
-}
-
-/*
-
-=back
-
-=head2 IO Thread Handling
-
-=over 4
-
-=cut
-
-*/
-
-#ifndef WIN32
-
-/*
-
-=item C<static void store_io_event(pending_io_events *ios, parrot_event *ev)>
-
-Stores an event in the event stack. Allocates memory if necessary.
-
-=cut
-
-*/
-
-static void
-store_io_event(ARGMOD(pending_io_events *ios), ARGIN(parrot_event *ev))
-{
- ASSERT_ARGS(store_io_event)
- if (!ios->alloced) {
- ios->alloced = 16;
- ios->events = mem_allocate_n_zeroed_typed(ios->alloced, parrot_event *);
- }
- else if (ios->n >= ios->alloced) {
- ios->alloced *= 2;
- mem_realloc_n_typed(ios->events, ios->alloced, parrot_event *);
- }
- ios->events[ios->n++] = ev;
-}
-
-/*
-
-=item C<static void io_thread_ready_rd(pending_io_events *ios, int ready_rd)>
-
-Takes a list of pending i/o events and a file descriptor.
-If the fd is ready to read, the event is removed from the
-"pending" list and moved to the "scheduled" task queue.
-
-=cut
-
-*/
-
-static void
-io_thread_ready_rd(ARGMOD(pending_io_events *ios), int ready_rd)
-{
- ASSERT_ARGS(io_thread_ready_rd)
- size_t i;
-
- for (i = 0; i < ios->n; ++i) {
- parrot_event * const ev = ios->events[i];
- PMC * const pio = ev->u.io_event.pio;
- const int fd = Parrot_io_getfd(ev->interp, pio);
-
- if (fd == ready_rd) {
- /* remove from event list */
- --ios->n;
-
- for (; i < ios->n; ++i)
- ios->events[i] = ios->events[i+1];
-
- Parrot_schedule_event(ev->interp, ev);
- break;
- }
- }
-}
-
-/*
-
-=item C<static void* io_thread(void *data)>
-
-The IO thread uses select/poll to handle IO events and signals.
-
-It waits on input from the message pipe to insert file descriptors in
-the wait sets.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-static void*
-io_thread(SHIM(void *data))
-{
- ASSERT_ARGS(io_thread)
- fd_set act_rfds, act_wfds;
- int n_highest, i;
- int running = 1;
- pending_io_events ios;
-
- ios.n = 0;
- ios.alloced = 0;
- ios.events = 0;
- /* remember pending io events */
-
- FD_ZERO(&act_rfds);
- FD_ZERO(&act_wfds);
- /*
- * Watch the reader end of the pipe for messages
- */
- FD_SET(PIPE_READ_FD, &act_rfds);
- n_highest = PIPE_READ_FD + 1;
- /*
- * all signals that we shall handle here have to be unblocked
- * in this and only in this thread
- */
- Parrot_unblock_signal(SIGHUP);
- while (running) {
- fd_set rfds = act_rfds;
- fd_set wfds = act_wfds;
- const int retval = select(n_highest, &rfds, &wfds, NULL, NULL);
-
- switch (retval) {
- case -1:
- if (errno == EINTR) {
- edebug((stderr, "select EINTR\n"));
- if (sig_int) {
- edebug((stderr, "int arrived\n"));
- sig_int = 0;
- /*
- * signal the event thread
- */
- schedule_signal_event(SIGINT);
- }
- if (sig_hup) {
- edebug((stderr, "int arrived\n"));
- sig_hup = 0;
- /*
- * signal the event thread
- */
- schedule_signal_event(SIGHUP);
- }
-
- }
- break;
- case 0: /* timeout - can't happen */
- break;
- default:
- edebug((stderr, "IO ready\n"));
- for (i = 0; i < n_highest; ++i) {
- if (FD_ISSET(i, &rfds)) {
- if (i == PIPE_READ_FD) {
- io_thread_msg buf;
- /*
- * a command arrived
- */
- edebug((stderr, "msg arrived\n"));
- if (read(PIPE_READ_FD, &buf, sizeof (buf)) != sizeof (buf))
- exit_fatal(1,
- "read error from msg pipe");
- switch (buf.command) {
- case IO_THR_MSG_TERMINATE:
- running = 0;
- break;
- case IO_THR_MSG_ADD_SELECT_RD:
- {
- PMC * const pio = buf.ev->u.io_event.pio;
- const int fd = Parrot_io_getfd(buf.ev->interp, pio);
- if (FD_ISSET(fd, &act_rfds)) {
- mem_sys_free(buf.ev);
- break;
- }
- FD_SET(fd, &act_rfds);
- if (fd >= n_highest)
- n_highest = fd + 1;
- store_io_event(&ios, buf.ev);
- }
- break;
- default:
- /* TODO */
- exit_fatal(1, "unhandled msg in pipe");
- break;
- }
-
- }
- else {
- /*
- * one of the io_event fds is ready
- * remove from active set, as we don't
- * want to fire again during io_handler
- * invocation
- */
- FD_CLR(i, &act_rfds);
- io_thread_ready_rd(&ios, i);
- }
- }
- }
- /* TODO check fds */
- break;
- }
- }
- edebug((stderr, "IO thread terminated\n"));
- close(PIPE_READ_FD);
- close(PIPE_WRITE_FD);
- return NULL;
-}
-#endif
-
-/*
-
-=item C<static void stop_io_thread(void)>
-
-Tell the IO thread to stop.
-
-=cut
-
-*/
-
-static void
-stop_io_thread(void)
-{
- ASSERT_ARGS(stop_io_thread)
-#ifndef WIN32
- io_thread_msg buf;
- /*
- * tell IO thread to stop
- */
- memset(&buf, 0, sizeof (buf));
- buf.command = IO_THR_MSG_TERMINATE;
- if (write(PIPE_WRITE_FD, &buf, sizeof (buf)) != sizeof (buf))
- exit_fatal(1, "msg pipe write failed");
-#endif
-}
-
-/*
-
-=item C<void Parrot_event_add_io_event(PARROT_INTERP, PMC *pio, PMC *sub, PMC
-*data, INTVAL which)>
-
-Create new i/o event.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_event_add_io_event(PARROT_INTERP,
- ARGIN_NULLOK(PMC *pio), ARGIN_NULLOK(PMC *sub), ARGIN_NULLOK(PMC *data), INTVAL which)
-{
- ASSERT_ARGS(Parrot_event_add_io_event)
- io_thread_msg buf;
- parrot_event * const event = mem_allocate_typed(parrot_event);
-
- event->type = EVENT_TYPE_IO;
- event->interp = interp;
- /*
- * TODO gc_register these PMCs as long as the event system
- * owns these 3
- * unregister, when event is passed to interp again
- */
- event->u.io_event.pio = pio;
- event->u.io_event.handler = sub;
- event->u.io_event.user_data = data;
-
- buf.command = which;
- buf.ev = event;
- /* XXX Why isn't this entire function inside an ifndef WIN32? */
-#ifndef WIN32
- if (write(PIPE_WRITE_FD, &buf, sizeof (buf)) != sizeof (buf))
- Parrot_ex_throw_from_c_args(interp, NULL, 1, "msg pipe write failed");
-#endif
-}
-
-
-/*
-
-=back
-
-=head2 Event Handler Thread Functions
-
-=over 4
-
-=item C<static QUEUE_ENTRY* dup_entry(const QUEUE_ENTRY *entry)>
-
-Duplicate queue entry.
-
-=cut
-
-*/
-
-PARROT_MALLOC
-PARROT_CANNOT_RETURN_NULL
-static QUEUE_ENTRY*
-dup_entry(ARGIN(const QUEUE_ENTRY *entry))
-{
- ASSERT_ARGS(dup_entry)
- QUEUE_ENTRY * const new_entry = mem_allocate_typed(QUEUE_ENTRY);
-
- new_entry->next = NULL;
- new_entry->type = entry->type;
- new_entry->data = mem_allocate_typed(parrot_event);
-
- mem_sys_memcopy(new_entry->data, entry->data, sizeof (parrot_event));
- return new_entry;
-}
-
-/*
-
-=item C<static QUEUE_ENTRY* dup_entry_interval(QUEUE_ENTRY *entry, FLOATVAL
-now)>
-
-Duplicate timed entry and add interval to C<abs_time>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static QUEUE_ENTRY*
-dup_entry_interval(ARGIN(QUEUE_ENTRY *entry), FLOATVAL now)
-{
- ASSERT_ARGS(dup_entry_interval)
- QUEUE_ENTRY * const new_entry = dup_entry(entry);
- parrot_event * const event = (parrot_event *)new_entry->data;
-
- event->u.timer_event.abs_time = now + event->u.timer_event.interval;
-
- return new_entry;
-}
-
-/*
-
-=item C<static int process_events(QUEUE *event_q)>
-
-Do something, when an event arrived caller has locked the mutex returns
-0 if event thread terminates.
-
-=cut
-
-*/
-
-static int
-process_events(ARGMOD(QUEUE *event_q))
-{
- ASSERT_ARGS(process_events)
- FLOATVAL now;
- QUEUE_ENTRY *entry;
-
- while ((entry = peek_entry(event_q)) != NULL) {
- /*
- * one or more entries arrived - we hold the mutex again
- * so we have to use the nonsyc_pop_entry to pop off event entries
- */
- parrot_event *event = NULL;
-
- switch (entry->type) {
- case QUEUE_ENTRY_TYPE_EVENT:
- entry = nosync_pop_entry(event_q);
- event = (parrot_event *)entry->data;
- break;
-
- case QUEUE_ENTRY_TYPE_TIMED_EVENT:
- event = (parrot_event *)entry->data;
- now = Parrot_floatval_time();
-
- /*
- * if the timer_event isn't due yet, ignore the event
- * (we were signalled on insert of the event)
- * wait until we get at it again when time has elapsed
- */
- if (now < event->u.timer_event.abs_time)
- return 1;
- entry = nosync_pop_entry(event_q);
-
- /* if event is repeated dup and reinsert it */
-
- if (event->u.timer_event.interval) {
- if (event->u.timer_event.repeat) {
- if (event->u.timer_event.repeat != -1)
- event->u.timer_event.repeat--;
- nosync_insert_entry(event_q,
- dup_entry_interval(entry, now));
- }
- }
- break;
- default:
- exit_fatal(1, "Unknown queue entry");
- }
- PARROT_ASSERT(event);
- if (event->type == EVENT_TYPE_NONE) {
- mem_sys_free(entry);
- mem_sys_free(event);
- continue;
- }
- else if (event->type == EVENT_TYPE_EVENT_TERMINATE) {
- mem_sys_free(entry);
- mem_sys_free(event);
-
- return 0;
- }
- /*
- * now insert entry in interpreter task queue
- */
- if (event->interp) {
- Parrot_schedule_interp_qentry(event->interp, entry);
- }
- else {
- Parrot_schedule_broadcast_qentry(entry);
- }
- } /* while events */
- return 1;
-}
-
-/*
-
-=item C<static void* event_thread(void *data)>
-
-The event thread is started by the first interpreter. It handles all
-events for all interpreters.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static void*
-event_thread(ARGMOD(void *data))
-{
- ASSERT_ARGS(event_thread)
- QUEUE * const event_q = (QUEUE *) data;
- int running = 1;
-
- LOCK(event_q->queue_mutex);
- /*
- * we might already have an event in the queue
- */
- if (peek_entry(event_q))
- running = process_events(event_q);
- while (running) {
- QUEUE_ENTRY * const entry = peek_entry(event_q);
-
- if (!entry) {
- /* wait infinite until entry arrives */
- queue_wait(event_q);
- }
- else if (entry->type == QUEUE_ENTRY_TYPE_TIMED_EVENT) {
- /* do a_timedwait for entry */
- struct timespec abs_time;
- parrot_event * const event = (parrot_event*)entry->data;
- const FLOATVAL when = event->u.timer_event.abs_time;
-
- abs_time.tv_sec = (time_t) when;
- abs_time.tv_nsec = (long)((when - abs_time.tv_sec)*1000.0f)
- *1000L*1000L;
- queue_timedwait(event_q, &abs_time);
- }
- else {
- /* we shouldn't get here probably
- */
- exit_fatal(1, "Spurious event");
-
- }
- /*
- * one or more entries arrived - we hold the mutex again
- * so we have to use the nonsync_pop_entry to pop off event entries
- */
- running = process_events(event_q);
- } /* event loop */
- /*
- * the main interpreter is dying
- * TODO empty the queue
- */
- UNLOCK(event_q->queue_mutex);
- queue_destroy(event_q);
- stop_io_thread();
- edebug((stderr, "event thread stopped\n"));
- return NULL;
-}
-
-/*
-
-=back
-
-=head2 Sleep Handling
-
-=over 4
-
-=item C<static opcode_t * wait_for_wakeup(PARROT_INTERP, opcode_t *next)>
-
-Sleep on the event queue condition. If an event arrives, the event
-is processed. Terminate the loop if sleeping is finished.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static opcode_t *
-wait_for_wakeup(PARROT_INTERP, ARGIN_NULLOK(opcode_t *next))
-{
- ASSERT_ARGS(wait_for_wakeup)
- QUEUE * const tq = interp->task_queue;
-
- interp->sleeping = 1;
-
- /*
- * event handler like callbacks or timers are run as normal code
- * so inside such an event handler function, another event might get
- * handled, which is good (higher priority events can interrupt
- * other event handler). OTOH we must ensure that all state changes
- * are done in do_event and we should probably suspend nested
- * event handlers sometimes
- *
- * FIXME: the same is true for the *next param:
- * get rid of that, instead mangle the resume flags
- * and offset to stop the runloop
- *
- */
-
- while (interp->sleeping) {
- QUEUE_ENTRY * const entry = wait_for_entry(tq);
- parrot_event * const event = (parrot_event*)entry->data;
-
- mem_sys_free(entry);
- edebug((stderr, "got ev %s head : %p\n", et(event), tq->head));
- next = do_event(interp, event, next);
- }
-
- edebug((stderr, "woke up\n"));
- return next;
-}
-
-/*
-
-=item C<opcode_t * Parrot_sleep_on_event(PARROT_INTERP, FLOATVAL t, opcode_t
-*next)>
-
-Go to sleep. This is called from the C<sleep> opcode.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-opcode_t *
-Parrot_sleep_on_event(PARROT_INTERP, FLOATVAL t, ARGIN_NULLOK(opcode_t *next))
-{
- ASSERT_ARGS(Parrot_sleep_on_event)
-#ifdef PARROT_HAS_THREADS
-
- if (interp->sleeping)
- fprintf(stderr, "nested sleep might not work\n");
- /*
- * place the opcode_t* next arg in the event data, so that
- * we can identify this event in wakeup
- */
- Parrot_new_timer_event(interp, (PMC *) next, t, 0.0, 0,
- NULL, EVENT_TYPE_SLEEP);
- next = wait_for_wakeup(interp, next);
-#else
- /*
- * TODO check for nanosleep or such
- */
- Parrot_sleep((UINTVAL) ceil(t));
-#endif
- return next;
-}
-
-/*
-
-=back
-
-=head2 Event Handling for Run-Loops
-
-=over 4
-
-=item C<opcode_t * Parrot_do_check_events(PARROT_INTERP, opcode_t *next)>
-
-Explicitly C<sync> called by the check_event opcode from run loops.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-opcode_t *
-Parrot_do_check_events(PARROT_INTERP, ARGIN_NULLOK(opcode_t *next))
-{
- ASSERT_ARGS(Parrot_do_check_events)
- if (peek_entry(interp->task_queue))
- return Parrot_do_handle_events(interp, 0, next);
-
- return next;
-}
-
-/*
-
-=item C<static void event_to_exception(PARROT_INTERP, const parrot_event*
-event)>
-
-Convert event to exception and throw it.
-
-=cut
-
-*/
-
-static void
-event_to_exception(PARROT_INTERP, ARGIN(const parrot_event* event))
-{
- ASSERT_ARGS(event_to_exception)
- const int exit_code = -event->u.signal;
-
- switch (event->u.signal) {
- case SIGINT:
- case SIGHUP:
- /*
- * SIGINT is silent, if no exception handler is
- * installed: set severity to EXCEPT_exit
- */
- {
- STRING * const message = CONST_STRING(interp, "Caught signal.");
- PMC *exception = Parrot_ex_build_exception(interp,
- EXCEPT_exit, exit_code, message);
-
- Parrot_ex_throw_from_c(interp, exception);
- }
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, exit_code,
- "Caught signal.");
- break;
- }
-}
-
-/*
-
-=item C<static opcode_t * do_event(PARROT_INTERP, parrot_event* event, opcode_t
-*next)>
-
-Run user code or such. The C<event> argument is freed after execution.
-
-TODO: Instrument with splint args so splint knows event gets released.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static opcode_t *
-do_event(PARROT_INTERP, ARGIN(parrot_event* event), ARGIN_NULLOK(opcode_t *next))
-{
- ASSERT_ARGS(do_event)
- edebug((stderr, "do_event %s\n", et(event)));
- switch (event->type) {
- case EVENT_TYPE_TERMINATE:
- next = NULL; /* this will terminate the run loop */
- break;
- case EVENT_TYPE_SIGNAL:
- interp->sleeping = 0;
- /* generate exception */
- event_to_exception(interp, event);
- /* not reached - will longjmp */
- break;
- case EVENT_TYPE_TIMER:
- /* run ops, save registers */
- Parrot_pcc_invoke_sub_from_c_args(interp,
- event->u.timer_event.sub, "->");
- break;
- case EVENT_TYPE_CALL_BACK:
- edebug((stderr, "starting user cb\n"));
- Parrot_run_callback(interp, event->u.call_back.cbi,
- event->u.call_back.external_data);
- break;
- case EVENT_TYPE_IO:
- edebug((stderr, "starting io handler\n"));
- Parrot_pcc_invoke_sub_from_c_args(interp,
- event->u.io_event.handler,
- "PP->",
- event->u.io_event.pio,
- event->u.io_event.user_data);
- break;
- case EVENT_TYPE_SLEEP:
- interp->sleeping = 0;
- break;
- case EVENT_TYPE_SUSPEND_FOR_GC:
- edebug((stderr, "suspend for gc\n"));
- pt_suspend_self_for_gc(interp);
- break;
- default:
- fprintf(stderr, "Unhandled event type %d\n", (int)event->type);
- break;
- }
- mem_sys_free(event);
- return next;
-}
-
-/*
-
-=item C<opcode_t * Parrot_do_handle_events(PARROT_INTERP, int restore, opcode_t
-*next)>
-
-Called by the C<check_event__> opcode from run loops or from above. When
-called from the C<check_events__> opcode, we have to restore the
-C<op_func_table>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-opcode_t *
-Parrot_do_handle_events(PARROT_INTERP, int restore, ARGIN_NULLOK(opcode_t *next))
-{
- ASSERT_ARGS(Parrot_do_handle_events)
- QUEUE * const tq = interp->task_queue;
-
- if (restore)
- disable_event_checking(interp);
-
- if (!peek_entry(tq))
- return next;
-
- while (peek_entry(tq)) {
- QUEUE_ENTRY * const entry = pop_entry(tq);
- parrot_event * const event = (parrot_event*)entry->data;
-
- mem_sys_free(entry);
- next = do_event(interp, event, next);
- }
-
- return next;
-}
-
-/*
-
-=back
-
-=head1 SEE ALSO
-
-F<include/parrot/events.h> and F<docs/dev/events.pod>.
-
-=cut
-
-*/
-
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/ops_pct/src/exceptions.c
==============================================================================
--- branches/ops_pct/src/exceptions.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/exceptions.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -68,7 +68,7 @@
long error, ARGIN_NULLOK(STRING *msg))
{
ASSERT_ARGS(Parrot_ex_build_exception)
- PMC *exception = pmc_new(interp, enum_class_Exception);
+ PMC *exception = Parrot_pmc_new(interp, enum_class_Exception);
VTABLE_set_integer_keyed_str(interp, exception, CONST_STRING(interp, "severity"), severity);
VTABLE_set_integer_keyed_str(interp, exception, CONST_STRING(interp, "type"), error);
@@ -176,7 +176,7 @@
Parrot_ex_add_c_handler(PARROT_INTERP, ARGIN(Parrot_runloop *jp))
{
ASSERT_ARGS(Parrot_ex_add_c_handler)
- PMC * const handler = pmc_new(interp, enum_class_ExceptionHandler);
+ PMC * const handler = Parrot_pmc_new(interp, enum_class_ExceptionHandler);
/* Flag to mark a C exception handler */
PObj_get_FLAGS(handler) |= SUB_FLAG_C_HANDLER;
VTABLE_set_pointer(interp, handler, jp);
Modified: branches/ops_pct/src/exit.c
==============================================================================
--- branches/ops_pct/src/exit.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/exit.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -42,7 +42,7 @@
{
ASSERT_ARGS(Parrot_on_exit)
- handler_node_t * const new_node = mem_allocate_typed(handler_node_t);
+ handler_node_t * const new_node = mem_internal_allocate_typed(handler_node_t);
new_node->function = function;
new_node->arg = arg;
@@ -88,7 +88,7 @@
handler_node_t * const next = node->next;
(node->function)(interp, status, node->arg);
- mem_sys_free(node);
+ mem_internal_free(node);
node = next;
}
Modified: branches/ops_pct/src/extend.c
==============================================================================
--- branches/ops_pct/src/extend.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/extend.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -945,7 +945,7 @@
ASSERT_ARGS(Parrot_PMC_new)
Parrot_PMC newpmc;
PARROT_CALLIN_START(interp);
- newpmc = pmc_new_noinit(interp, type);
+ newpmc = Parrot_pmc_new_noinit(interp, type);
VTABLE_init(interp, newpmc);
PARROT_CALLIN_END(interp);
return newpmc;
@@ -968,7 +968,7 @@
ASSERT_ARGS(Parrot_PMC_typenum)
Parrot_Int retval;
PARROT_CALLIN_START(interp);
- retval = pmc_type(interp, Parrot_str_new(interp, _class, 0));
+ retval = Parrot_pmc_get_type_str(interp, Parrot_str_new(interp, _class, 0));
PARROT_CALLIN_END(interp);
return retval;
}
@@ -1058,120 +1058,6 @@
/*
-=item C<void * Parrot_call_sub(PARROT_INTERP, Parrot_PMC sub_pmc, const char
-*signature, ...)>
-
-Call a parrot subroutine with the given function signature. The first char in
-C<signature> denotes the return value. Next chars are arguments.
-
-The return value of this function can be void or a pointer type.
-
-Signature chars are:
-
- v ... void return
- I ... Parrot_Int
- N ... Parrot_Float
- S ... Parrot_String
- P ... Parrot_PMC
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-void *
-Parrot_call_sub(PARROT_INTERP, Parrot_PMC sub_pmc,
- ARGIN(const char *signature), ...)
-{
- ASSERT_ARGS(Parrot_call_sub)
- va_list args;
- PMC *sig_object;
- Parrot_sub *sub;
- void *result = NULL;
- const char *arg_sig = signature;
- char return_sig = signature[0];
-
- arg_sig++;
- va_start(args, signature);
- sig_object = Parrot_pcc_build_sig_object_from_varargs(interp, PMCNULL,
- arg_sig, args);
- va_end(args);
-
- /* Add the return argument onto the call signature object (a bit
- * hackish, added for backward compatibility in deprecated API function,
- * see TT #1145). */
- switch (return_sig) {
- case 'v':
- {
- Parrot_String full_sig = VTABLE_get_string(interp, sig_object);
- Parrot_str_concat(interp, full_sig,
- Parrot_str_new_constant(interp, "->"), 0);
- break;
- }
- case 'V':
- case 'P':
- {
- Parrot_pcc_append_result(interp, sig_object, Parrot_str_new_constant(interp, "P"),
- &result);
- break;
- }
- default:
- Parrot_ex_throw_from_c_args(interp, NULL,
- EXCEPTION_INVALID_OPERATION,
- "Dispatch: invalid return type %c!", return_sig);
- }
-
- PMC_get_sub(interp, sub_pmc, sub);
- Parrot_pcc_set_constants(interp, CURRENT_CONTEXT(interp),
- sub->seg->const_table->constants);
- Parrot_pcc_invoke_from_sig_object(interp, sub_pmc, sig_object);
-
- return result;
-}
-
-
-/*
-
-=item C<Parrot_Int Parrot_call_sub_ret_int(PARROT_INTERP, Parrot_PMC sub_pmc,
-const char *signature, ...)>
-
-Like C<Parrot_call_sub>, with Parrot_Int return result.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-Parrot_Int
-Parrot_call_sub_ret_int(PARROT_INTERP, Parrot_PMC sub_pmc,
- ARGIN(const char *signature), ...)
-{
- ASSERT_ARGS(Parrot_call_sub_ret_int)
- va_list args;
- PMC *sig_object;
- Parrot_Int result;
- char return_sig = signature[0];
- const char *arg_sig = signature;
- Parrot_sub *sub;
-
- arg_sig++;
- va_start(args, signature);
- sig_object = Parrot_pcc_build_sig_object_from_varargs(interp, PMCNULL, arg_sig, args);
- va_end(args);
-
- /* Add the return argument onto the call signature object (a bit
- * hackish, added for backward compatibility in deprecated API function,
- * see TT #1145). */
- Parrot_pcc_append_result(interp, sig_object, Parrot_str_new_constant(interp, "I"), &result);
- Parrot_pcc_invoke_from_sig_object(interp, sub_pmc, sig_object);
-
- return result;
-}
-
-/*
-
=item C<Parrot_Int Parrot_get_intreg(PARROT_INTERP, Parrot_Int regnum)>
Return the value of an integer register.
@@ -1391,7 +1277,7 @@
{
ASSERT_ARGS(Parrot_register_pmc)
PARROT_CALLIN_START(interp);
- gc_register_pmc(interp, pmc);
+ Parrot_pmc_gc_register(interp, pmc);
PARROT_CALLIN_END(interp);
}
@@ -1412,7 +1298,7 @@
{
ASSERT_ARGS(Parrot_unregister_pmc)
PARROT_CALLIN_START(interp);
- gc_unregister_pmc(interp, pmc);
+ Parrot_pmc_gc_unregister(interp, pmc);
PARROT_CALLIN_END(interp);
}
@@ -1473,7 +1359,7 @@
ASSERT_ARGS(Parrot_sub_new_from_c_func)
Parrot_String sig = Parrot_new_string(interp, signature, strlen(signature),
(char *) NULL, 0);
- Parrot_PMC sub = pmc_new(interp, enum_class_NCI);
+ Parrot_PMC sub = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, sub, sig, F2DPTR(func));
PObj_get_FLAGS(sub) |= PObj_private1_FLAG;
return sub;
@@ -1497,7 +1383,7 @@
Parrot_PMC result;
PARROT_CALLIN_START(interp);
- result = pmc_new_init(interp, enum_class_Class, classtype);
+ result = Parrot_pmc_new_init(interp, enum_class_Class, classtype);
PARROT_CALLIN_END(interp);
return result;
Modified: branches/ops_pct/src/frame_builder.c
==============================================================================
--- branches/ops_pct/src/frame_builder.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/frame_builder.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -39,7 +39,7 @@
*/
void
-Parrot_jit_free_buffer(PARROT_INTERP, void *ptr, void *priv)
+Parrot_jit_free_buffer(SHIM_INTERP, void *ptr, void *priv)
{
const struct jit_buffer_private_data * const jit = (struct jit_buffer_private_data*)priv;
mem_free_executable(ptr, jit->size);
@@ -62,7 +62,7 @@
PMC *
Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv)
{
- PMC * const rv = pmc_new(interp, pmc->vtable->base_type);
+ PMC * const rv = Parrot_pmc_new(interp, pmc->vtable->base_type);
VTABLE_init(interp, rv);
/* copy the attributes */
@@ -82,7 +82,7 @@
GETATTR_ManagedStruct_custom_free_priv(interp , pmc, freepriv);
GETATTR_ManagedStruct_custom_clone_priv(interp, pmc, clonepriv);
if (freepriv) {
- void *tmp = mem_sys_allocate(sizeof (struct jit_buffer_private_data));
+ void *tmp = mem_gc_allocate_zeroed_typed(interp, struct jit_buffer_private_data);
memcpy(tmp, freepriv, sizeof (struct jit_buffer_private_data));
SETATTR_ManagedStruct_custom_free_priv(interp, rv , tmp);
if (clonepriv == freepriv) {
@@ -92,7 +92,7 @@
}
}
if (clonepriv) {
- void *tmp = mem_sys_allocate(sizeof (struct jit_buffer_private_data));
+ void *tmp = mem_gc_allocate_zeroed_typed(interp, struct jit_buffer_private_data);
memcpy(tmp, clonepriv, sizeof (struct jit_buffer_private_data));
SETATTR_ManagedStruct_custom_clone_priv(interp, rv , tmp);
}
@@ -312,6 +312,8 @@
int temp_calls_offset = args_offset - 16;
int total_stack_needed = -temp_calls_offset;
+ UNUSED(pmc_nci);
+
/*
* ESP
* 0-15, 16 bytes for utility calls
@@ -550,7 +552,7 @@
/* make new pmc */
emitm_movl_i_m(pc, enum_class_UnManagedStruct, emit_EBP, 0, 1, temp_calls_offset + 4);
- emitm_call_cfunc(pc, pmc_new);
+ emitm_call_cfunc(pc, Parrot_pmc_new);
/* restore pointer p to EDX */
emitm_movl_m_r(interp, pc, emit_EDX, emit_EBP, 0, 1, temp_calls_offset + 12);
Modified: branches/ops_pct/src/gc/alloc_memory.c
==============================================================================
--- branches/ops_pct/src/gc/alloc_memory.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/alloc_memory.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -260,8 +260,6 @@
return ptr;
}
-#if 0
-
/*
=item C<void * mem__internal_realloc_zeroed(void *from, size_t size, size_t
@@ -284,15 +282,15 @@
{
ASSERT_ARGS(mem__internal_realloc_zeroed)
void * const ptr = realloc(from, size);
-# ifdef DETAIL_MEMORY_DEBUG
+#ifdef DETAIL_MEMORY_DEBUG
fprintf(stderr, "internal free of %p (realloc -- %i bytes) (%s/%d)\n",
from, size, file, line);
fprintf(stderr, "Internal malloc %i at %p (%s/%d)\n",
size, ptr, file, line);
-# else
+#else
UNUSED(file);
UNUSED(line);
-# endif
+#endif
if (!ptr)
PANIC_OUT_OF_MEM(size);
if (size > old_size)
@@ -301,8 +299,6 @@
return ptr;
}
-#endif
-
/*
=item C<void mem_sys_free(void *from)>
Modified: branches/ops_pct/src/gc/alloc_resources.c
==============================================================================
--- branches/ops_pct/src/gc/alloc_resources.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/alloc_resources.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -32,7 +32,7 @@
#define POOL_SIZE 65536 * 2
-typedef void (*compact_f) (Interp *, Variable_Size_Pool *);
+typedef void (*compact_f) (Interp *, Memory_Pools * const, Variable_Size_Pool *);
/* HEADERIZER HFILE: src/gc/gc_private.h */
@@ -40,12 +40,14 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
static void alloc_new_block(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
size_t size,
ARGMOD(Variable_Size_Pool *pool),
ARGIN(const char *why))
__attribute__nonnull__(1)
- __attribute__nonnull__(3)
+ __attribute__nonnull__(2)
__attribute__nonnull__(4)
+ __attribute__nonnull__(5)
FUNC_MODIFIES(*pool);
PARROT_CANNOT_RETURN_NULL
@@ -58,8 +60,10 @@
__attribute__nonnull__(1)
FUNC_MODIFIES(* pool);
-static void check_memory_system(PARROT_INTERP)
- __attribute__nonnull__(1);
+static void check_memory_system(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void check_var_size_obj_pool(ARGMOD(Variable_Size_Pool *pool))
__attribute__nonnull__(1)
@@ -69,14 +73,59 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+static void fix_pmc_syncs(
+ ARGMOD(Interp *dest_interp),
+ ARGIN(Fixed_Size_Pool *pool))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*dest_interp);
+
+static void free_memory_pool(Variable_Size_Pool *pool);
+static void free_pool(ARGMOD(Fixed_Size_Pool *pool))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(*pool);
+
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
static Variable_Size_Pool * new_memory_pool(
size_t min_block,
NULLOK(compact_f compact));
+static void Parrot_gc_merge_buffer_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGMOD(Fixed_Size_Pool *dest),
+ ARGMOD(Fixed_Size_Pool *source))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ FUNC_MODIFIES(*dest)
+ FUNC_MODIFIES(*source);
+
+static int sweep_cb_buf(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ SHIM(int flag),
+ ARGIN(void *arg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(5)
+ FUNC_MODIFIES(*pool);
+
+static int sweep_cb_pmc(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ SHIM(int flag),
+ SHIM(void *arg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*pool);
+
#define ASSERT_ARGS_alloc_new_block __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(why))
#define ASSERT_ARGS_buffer_location __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -85,21 +134,42 @@
#define ASSERT_ARGS_check_fixed_size_obj_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_check_memory_system __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_check_var_size_obj_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_debug_print_buf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(b))
+#define ASSERT_ARGS_fix_pmc_syncs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(dest_interp) \
+ , PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_free_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_free_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_new_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_gc_merge_buffer_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(dest) \
+ , PARROT_ASSERT_ARG(source))
+#define ASSERT_ARGS_sweep_cb_buf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool) \
+ , PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_sweep_cb_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
/*
-=item C<static void alloc_new_block(PARROT_INTERP, size_t size,
-Variable_Size_Pool *pool, const char *why)>
+=item C<static void alloc_new_block(PARROT_INTERP, Memory_Pools * const
+mem_pools, size_t size, Variable_Size_Pool *pool, const char *why)>
Allocate a new memory block. We allocate either the requested size or the
default size, whichever is larger. Add the new block to the given memory
@@ -110,7 +180,9 @@
*/
static void
-alloc_new_block(PARROT_INTERP, size_t size, ARGMOD(Variable_Size_Pool *pool),
+alloc_new_block(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t size, ARGMOD(Variable_Size_Pool *pool),
ARGIN(const char *why))
{
ASSERT_ARGS(alloc_new_block)
@@ -143,7 +215,7 @@
new_block->top = new_block->start;
/* Note that we've allocated it */
- interp->mem_pools->memory_allocated += alloc_size;
+ mem_pools->memory_allocated += alloc_size;
/* If this is for a public pool, add it to the list */
new_block->prev = pool->top_block;
@@ -158,8 +230,8 @@
/*
-=item C<void * mem_allocate(PARROT_INTERP, size_t size, Variable_Size_Pool
-*pool)>
+=item C<void * mem_allocate(PARROT_INTERP, Memory_Pools * const mem_pools,
+size_t size, Variable_Size_Pool *pool)>
Allocates memory for headers.
@@ -197,7 +269,9 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
void *
-mem_allocate(PARROT_INTERP, size_t size, ARGMOD(Variable_Size_Pool *pool))
+mem_allocate(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t size, ARGMOD(Variable_Size_Pool *pool))
{
ASSERT_ARGS(mem_allocate)
void *return_val;
@@ -214,8 +288,8 @@
* TODO pass required allocation size to the GC system,
* so that collection can be skipped if needed
*/
- if (!interp->mem_pools->gc_mark_block_level
- && interp->mem_pools->mem_allocs_since_last_collect) {
+ if (!mem_pools->gc_mark_block_level
+ && mem_pools->mem_allocs_since_last_collect) {
Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
if (interp->gc_sys->sys_type != INF) {
@@ -224,7 +298,7 @@
/* don't bother reclaiming if it's only a small amount */
if ((pool->possibly_reclaimable * pool->reclaim_factor +
pool->guaranteed_reclaimable) > size) {
- (*pool->compact) (interp, pool);
+ (*pool->compact) (interp, mem_pools, pool);
}
}
}
@@ -238,9 +312,9 @@
* Mark the block as big block (it has just one item)
* And don't set big blocks as the top_block.
*/
- alloc_new_block(interp, size, pool, "compact failed");
+ alloc_new_block(interp, mem_pools, size, pool, "compact failed");
- interp->mem_pools->mem_allocs_since_last_collect++;
+ mem_pools->mem_allocs_since_last_collect++;
if (pool->top_block->free < size) {
fprintf(stderr, "out of mem\n");
@@ -320,7 +394,8 @@
=over 4
-=item C<void compact_pool(PARROT_INTERP, Variable_Size_Pool *pool)>
+=item C<void compact_pool(PARROT_INTERP, Memory_Pools * const mem_pools,
+Variable_Size_Pool *pool)>
Compact the string buffer pool. Does not perform a GC scan, or mark items
as being alive in any way.
@@ -330,7 +405,9 @@
*/
void
-compact_pool(PARROT_INTERP, ARGMOD(Variable_Size_Pool *pool))
+compact_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGMOD(Variable_Size_Pool *pool))
{
ASSERT_ARGS(compact_pool)
INTVAL j;
@@ -340,7 +417,6 @@
char *cur_spot; /* Where we're currently copying to */
Fixed_Size_Arena *cur_buffer_arena;
- Memory_Pools * const mem_pools = interp->mem_pools;
/* Bail if we're blocked */
if (mem_pools->gc_sweep_block_level)
@@ -395,7 +471,7 @@
#endif
/* Snag a block big enough for everything */
- alloc_new_block(interp, total_size, pool, "inside compact");
+ alloc_new_block(interp, mem_pools, total_size, pool, "inside compact");
new_block = pool->top_block;
@@ -553,33 +629,6 @@
/*
-=item C<size_t aligned_size(const Buffer *buffer, size_t len)>
-
-Determines the size of Buffer C<buffer> which has nominal length C<len>.
-The actual size in RAM of the Buffer might be different because of
-alignment issues.
-
-=cut
-
-*/
-
-PARROT_PURE_FUNCTION
-PARROT_WARN_UNUSED_RESULT
-size_t
-aligned_size(ARGIN(const Buffer *buffer), size_t len)
-{
- ASSERT_ARGS(aligned_size)
- if (PObj_is_COWable_TEST(buffer))
- len += sizeof (void*);
- if (PObj_aligned_TEST(buffer))
- len = (len + BUFFER_ALIGN_1) & BUFFER_ALIGN_MASK;
- else
- len = (len + WORD_ALIGN_1) & WORD_ALIGN_MASK;
- return len;
-}
-
-/*
-
=item C<char * aligned_mem(const Buffer *buffer, char *mem)>
Returns a pointer to the aligned allocated storage for Buffer C<buffer>,
@@ -596,6 +645,10 @@
aligned_mem(ARGIN(const Buffer *buffer), ARGIN(char *mem))
{
ASSERT_ARGS(aligned_mem)
+#if 0
+ This code causing assert in compact_pool. Looks like STRINGs have
+ aligned flag set, but allocated less memory.
+ See C<aligned_string_size>.
if (PObj_is_COWable_TEST(buffer))
mem += sizeof (void*);
if (PObj_aligned_TEST(buffer))
@@ -603,6 +656,9 @@
BUFFER_ALIGN_MASK);
else
mem = (char*)(((unsigned long)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
+#endif
+ mem += sizeof (void*);
+ mem = (char*)(((unsigned long)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
return mem;
}
@@ -668,7 +724,8 @@
/*
-=item C<void initialize_var_size_pools(PARROT_INTERP)>
+=item C<void initialize_var_size_pools(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
Initialize the managed memory pools. Parrot maintains two C<Variable_Size_Pool>
structures, the general memory pool and the constant string pool. Create
@@ -680,17 +737,17 @@
*/
void
-initialize_var_size_pools(PARROT_INTERP)
+initialize_var_size_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(initialize_var_size_pools)
- Memory_Pools * const mem_pools = interp->mem_pools;
mem_pools->memory_pool = new_memory_pool(POOL_SIZE, &compact_pool);
- alloc_new_block(interp, POOL_SIZE, mem_pools->memory_pool, "init");
+ alloc_new_block(interp, mem_pools, POOL_SIZE, mem_pools->memory_pool, "init");
/* Constant strings - not compacted */
mem_pools->constant_string_pool = new_memory_pool(POOL_SIZE, NULL);
- alloc_new_block(interp, POOL_SIZE, mem_pools->constant_string_pool, "init");
+ alloc_new_block(interp, mem_pools, POOL_SIZE, mem_pools->constant_string_pool, "init");
}
@@ -740,7 +797,8 @@
/*
-=item C<static void check_memory_system(PARROT_INTERP)>
+=item C<static void check_memory_system(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
Checks the memory system of parrot on any corruptions, including
the string system.
@@ -750,11 +808,11 @@
*/
static void
-check_memory_system(PARROT_INTERP)
+check_memory_system(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(check_memory_system)
size_t i;
- Memory_Pools * const mem_pools = interp->mem_pools;
check_var_size_obj_pool(mem_pools->memory_pool);
check_var_size_obj_pool(mem_pools->constant_string_pool);
@@ -937,6 +995,362 @@
PARROT_ASSERT(0);
}
+
+/*
+
+=item C<void Parrot_gc_destroy_header_pools(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
+
+Performs a garbage collection sweep on all pools, then frees them. Calls
+C<header_pools_iterate_callback> to loop over all the pools, passing
+C<sweep_cb_pmc> and C<sweep_cb_buf> callback routines. Frees the array of sized
+header pointers in the C<Memory_Pools> structure too.
+
+=cut
+
+*/
+
+void
+Parrot_gc_destroy_header_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+{
+ ASSERT_ARGS(Parrot_gc_destroy_header_pools)
+ INTVAL pass;
+
+ /* const/non const COW strings life in different pools
+ * so in first pass
+ * COW refcount is done, in 2. refcounting
+ * in 3rd freeing
+ */
+ const INTVAL start = 2;
+
+ header_pools_iterate_callback(interp, mem_pools, POOL_PMC, NULL, sweep_cb_pmc);
+ header_pools_iterate_callback(interp, mem_pools, POOL_PMC | POOL_CONST, NULL,
+ sweep_cb_pmc);
+
+ for (pass = start; pass <= 2; pass++) {
+ header_pools_iterate_callback(interp, mem_pools, POOL_BUFFER | POOL_CONST,
+ (void *)pass, sweep_cb_buf);
+ }
+
+ mem_internal_free(mem_pools->sized_header_pools);
+
+ if (mem_pools->attrib_pools) {
+ unsigned int i;
+ for (i = 0; i < mem_pools->num_attribs; i++) {
+ PMC_Attribute_Pool *pool = mem_pools->attrib_pools[i];
+ PMC_Attribute_Arena *arena;
+
+ if (!pool)
+ continue;
+
+ arena = pool->top_arena;
+
+ while (arena) {
+ PMC_Attribute_Arena *next = arena->next;
+ mem_internal_free(arena);
+ arena = next;
+ }
+ mem_internal_free(pool);
+ }
+
+ mem_internal_free(mem_pools->attrib_pools);
+ }
+
+ mem_pools->attrib_pools = NULL;
+ mem_pools->sized_header_pools = NULL;
+}
+
+/*
+
+=item C<static int sweep_cb_pmc(PARROT_INTERP, Memory_Pools *mem_pools,
+Fixed_Size_Pool *pool, int flag, void *arg)>
+
+Performs a garbage collection sweep of the given pmc pool, then frees it. Calls
+C<Parrot_gc_sweep_pool> to perform the sweep, and C<free_pool> to free the pool and
+all its arenas. Always returns C<0>.
+
+=cut
+
+*/
+
+static int
+sweep_cb_pmc(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ SHIM(int flag), SHIM(void *arg))
+{
+ ASSERT_ARGS(sweep_cb_pmc)
+ Parrot_gc_sweep_pool(interp, mem_pools, pool);
+ free_pool(pool);
+ return 0;
+}
+
+/*
+
+=item C<static int sweep_cb_buf(PARROT_INTERP, Memory_Pools *mem_pools,
+Fixed_Size_Pool *pool, int flag, void *arg)>
+
+Performs a final garbage collection sweep, then frees the pool. Calls
+C<Parrot_gc_sweep_pool> to perform the sweep, and C<free_pool> to free the pool and
+all its arenas.
+
+=cut
+
+*/
+
+static int
+sweep_cb_buf(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ SHIM(int flag), ARGIN(void *arg))
+{
+ ASSERT_ARGS(sweep_cb_buf)
+ UNUSED(arg);
+ Parrot_gc_sweep_pool(interp, mem_pools, pool);
+ free_pool(pool);
+
+ return 0;
+}
+
+/*
+
+=item C<static void free_pool(Fixed_Size_Pool *pool)>
+
+Frees a pool and all of its arenas. Loops through the list of arenas backwards
+and returns each to the memory manager. Then, frees the pool structure itself.
+
+=cut
+
+*/
+
+static void
+free_pool(ARGMOD(Fixed_Size_Pool *pool))
+{
+ ASSERT_ARGS(free_pool)
+ Fixed_Size_Arena *cur_arena;
+
+ for (cur_arena = pool->last_Arena; cur_arena;) {
+ Fixed_Size_Arena * const next = cur_arena->prev;
+ mem_internal_free(cur_arena->start_objects);
+ mem_internal_free(cur_arena);
+ cur_arena = next;
+ }
+ mem_internal_free(pool);
+}
+
+
+/*
+
+=item C<static void free_memory_pool(Variable_Size_Pool *pool)>
+
+Frees a memory pool; helper function for C<Parrot_gc_destroy_memory_pools>.
+
+=cut
+
+*/
+
+static void
+free_memory_pool(Variable_Size_Pool *pool)
+{
+ ASSERT_ARGS(free_memory_pool)
+
+ Memory_Block *cur_block = pool->top_block;
+
+ while (cur_block) {
+ Memory_Block * const next_block = cur_block->prev;
+ mem_internal_free(cur_block);
+ cur_block = next_block;
+ }
+
+ mem_internal_free(pool);
+}
+
+
+/*
+
+=item C<void Parrot_gc_destroy_memory_pools(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
+
+Destroys the memory pool and the constant string pool. Loop through both
+pools and destroy all memory blocks contained in them. Once all the
+blocks are freed, free the pools themselves.
+
+=cut
+
+*/
+
+void
+Parrot_gc_destroy_memory_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+{
+ ASSERT_ARGS(Parrot_gc_destroy_memory_pools)
+
+ free_memory_pool(mem_pools->constant_string_pool);
+ free_memory_pool(mem_pools->memory_pool);
+}
+
+/*
+
+=item C<void Parrot_gc_merge_memory_pools(Interp *dest_interp, Memory_Pools *
+const dest_arena, Memory_Pools * const source_arena)>
+
+Merges the header pools of C<source_interp> into those of C<dest_interp>.
+(Used to deal with shared objects left after interpreter destruction.)
+
+=cut
+
+*/
+
+void
+Parrot_gc_merge_memory_pools(ARGMOD(Interp *dest_interp),
+ ARGIN(Memory_Pools * const dest_arena),
+ ARGIN(Memory_Pools * const source_arena))
+{
+ ASSERT_ARGS(Parrot_gc_merge_memory_pools)
+
+ UINTVAL i;
+
+ /* heavily borrowed from forall_header_pools */
+ fix_pmc_syncs(dest_interp, source_arena->constant_pmc_pool);
+ Parrot_gc_merge_buffer_pools(dest_interp, dest_arena,
+ dest_arena->constant_pmc_pool, source_arena->constant_pmc_pool);
+
+ fix_pmc_syncs(dest_interp, source_arena->pmc_pool);
+ Parrot_gc_merge_buffer_pools(dest_interp, dest_arena,
+ dest_arena->pmc_pool, source_arena->pmc_pool);
+
+ Parrot_gc_merge_buffer_pools(dest_interp, dest_arena,
+ dest_arena->constant_string_header_pool,
+ source_arena->constant_string_header_pool);
+
+ for (i = 0; i < source_arena->num_sized; ++i) {
+ if (!source_arena->sized_header_pools[i])
+ continue;
+
+ if (i >= dest_arena->num_sized
+ || !dest_arena->sized_header_pools[i]) {
+ Fixed_Size_Pool *ignored = get_bufferlike_pool(dest_interp,
+ dest_arena, i * sizeof (void *));
+ UNUSED(ignored);
+ PARROT_ASSERT(dest_arena->sized_header_pools[i]);
+ }
+
+ Parrot_gc_merge_buffer_pools(dest_interp, dest_arena,
+ dest_arena->sized_header_pools[i],
+ source_arena->sized_header_pools[i]);
+ }
+}
+
+/*
+
+=item C<static void Parrot_gc_merge_buffer_pools(PARROT_INTERP, Memory_Pools *
+const mem_pools, Fixed_Size_Pool *dest, Fixed_Size_Pool *source)>
+
+Merge pool C<source> into pool C<dest>. Combines the free lists directly,
+moves all arenas to the new pool, and remove the old pool. To merge, the
+two pools must have the same object size, and the same name (if they have
+names).
+
+=cut
+
+*/
+
+static void
+Parrot_gc_merge_buffer_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGMOD(Fixed_Size_Pool *dest), ARGMOD(Fixed_Size_Pool *source))
+{
+ ASSERT_ARGS(Parrot_gc_merge_buffer_pools)
+ Fixed_Size_Arena *cur_arena;
+ GC_MS_PObj_Wrapper *free_list_end;
+
+ PARROT_ASSERT(dest->object_size == source->object_size);
+ PARROT_ASSERT((dest->name == NULL && source->name == NULL)
+ || STREQ(dest->name, source->name));
+
+ dest->total_objects += source->total_objects;
+
+ /* append new free_list to old */
+ /* XXX this won't work with, e.g., gc_gms */
+ free_list_end = dest->free_list;
+
+ if (free_list_end == NULL)
+ dest->free_list = source->free_list;
+ else {
+ while (free_list_end->next_ptr)
+ free_list_end = free_list_end->next_ptr;
+
+ free_list_end->next_ptr = source->free_list;
+ }
+
+ /* now append source arenas */
+ cur_arena = source->last_Arena;
+
+ while (cur_arena) {
+ size_t total_objects;
+ Fixed_Size_Arena * const next_arena = cur_arena->prev;
+
+ cur_arena->next = cur_arena->prev = NULL;
+
+ total_objects = cur_arena->total_objects;
+
+ Parrot_append_arena_in_pool(interp, mem_pools, dest, cur_arena,
+ cur_arena->total_objects);
+
+ /* XXX needed? */
+ cur_arena->total_objects = total_objects;
+
+ cur_arena = next_arena;
+ }
+
+ /* remove things from source */
+ source->last_Arena = NULL;
+ source->free_list = NULL;
+ source->total_objects = 0;
+ source->num_free_objects = 0;
+}
+
+/*
+
+=item C<static void fix_pmc_syncs(Interp *dest_interp, Fixed_Size_Pool *pool)>
+
+Walks through the given arena, looking for all live and shared PMCs,
+transferring their sync values to the destination interpreter.
+
+=cut
+
+*/
+
+static void
+fix_pmc_syncs(ARGMOD(Interp *dest_interp), ARGIN(Fixed_Size_Pool *pool))
+{
+ ASSERT_ARGS(fix_pmc_syncs)
+ Fixed_Size_Arena *cur_arena;
+ const UINTVAL object_size = pool->object_size;
+
+ for (cur_arena = pool->last_Arena; cur_arena; cur_arena = cur_arena->prev) {
+ PMC *p = (PMC *)((char*)cur_arena->start_objects);
+ size_t i;
+
+ for (i = 0; i < cur_arena->used; i++) {
+ if (!PObj_on_free_list_TEST(p) && PObj_is_PMC_TEST(p)) {
+ if (PObj_is_PMC_shared_TEST(p))
+ PMC_sync(p)->owner = dest_interp;
+ else
+ Parrot_ex_throw_from_c_args(dest_interp, NULL,
+ EXCEPTION_INTERP_ERROR,
+ "Unshared PMC still alive after interpreter"
+ "destruction. address=%p, base_type=%d\n",
+ p, p->vtable->base_type);
+ }
+
+ p = (PMC *)((char *)p + object_size);
+ }
+ }
+}
+
+
/*
=back
Modified: branches/ops_pct/src/gc/api.c
==============================================================================
--- branches/ops_pct/src/gc/api.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/api.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -106,25 +106,6 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*dest_interp);
-static void free_pool(ARGMOD(Fixed_Size_Pool *pool))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*pool);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static void * get_free_buffer(PARROT_INTERP, ARGIN(Fixed_Size_Pool *pool))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void Parrot_gc_free_attributes_from_pool(PARROT_INTERP,
- ARGMOD(PMC_Attribute_Pool *pool),
- ARGMOD(void *data))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*pool)
- FUNC_MODIFIES(*data);
-
static void Parrot_gc_merge_buffer_pools(PARROT_INTERP,
ARGMOD(Fixed_Size_Pool *dest),
ARGMOD(Fixed_Size_Pool *source))
@@ -134,47 +115,13 @@
FUNC_MODIFIES(*dest)
FUNC_MODIFIES(*source);
-static int sweep_cb_buf(PARROT_INTERP,
- ARGMOD(Fixed_Size_Pool *pool),
- SHIM(int flag),
- ARGIN(void *arg))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(4)
- FUNC_MODIFIES(*pool);
-
-static int sweep_cb_pmc(PARROT_INTERP,
- ARGMOD(Fixed_Size_Pool *pool),
- SHIM(int flag),
- SHIM(void *arg))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*pool);
-
#define ASSERT_ARGS_fix_pmc_syncs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(dest_interp) \
, PARROT_ASSERT_ARG(pool))
-#define ASSERT_ARGS_free_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pool))
-#define ASSERT_ARGS_get_free_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pool))
-#define ASSERT_ARGS_Parrot_gc_free_attributes_from_pool \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pool) \
- , PARROT_ASSERT_ARG(data))
#define ASSERT_ARGS_Parrot_gc_merge_buffer_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(dest) \
, PARROT_ASSERT_ARG(source))
-#define ASSERT_ARGS_sweep_cb_buf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pool) \
- , PARROT_ASSERT_ARG(arg))
-#define ASSERT_ARGS_sweep_cb_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pool))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -219,7 +166,7 @@
PMC * const p = (PMC *)obj;
if (PObj_is_special_PMC_TEST(obj))
- mark_special(interp, p);
+ interp->gc_sys->mark_special(interp, p);
else if (PMC_metadata(p))
Parrot_gc_mark_PMC_alive(interp, PMC_metadata(p));
@@ -312,23 +259,8 @@
{
ASSERT_ARGS(Parrot_gc_initialize)
- interp->mem_pools = mem_allocate_zeroed_typed(Memory_Pools);
- interp->gc_sys = mem_allocate_zeroed_typed(GC_Subsystem);
-
- interp->mem_pools->num_sized = 0;
- interp->mem_pools->num_attribs = 0;
- interp->mem_pools->attrib_pools = NULL;
- interp->mem_pools->sized_header_pools = NULL;
-
interp->lo_var_ptr = stacktop;
-
- /*TODO: add ability to specify GC core at command line w/ --gc= */
- if (0) /*If they chose sys_type with the --gc command line switch,*/
- ; /* set sys_type to value they gave */
- else
- interp->gc_sys->sys_type = PARROT_GC_DEFAULT_TYPE;
-
/*Call appropriate initialization function for GC subsystem*/
switch (interp->gc_sys->sys_type) {
case MS:
@@ -340,11 +272,54 @@
default:
/*die horribly because of invalid GC core specified*/
break;
- }
+ };
+
+ /* Assertions that GC subsystem has complete API */
+ PARROT_ASSERT(interp->gc_sys->finalize_gc_system);
+ PARROT_ASSERT(interp->gc_sys->destroy_child_interp);
+
+ PARROT_ASSERT(interp->gc_sys->do_gc_mark);
+ PARROT_ASSERT(interp->gc_sys->compact_string_pool);
+
+ PARROT_ASSERT(interp->gc_sys->mark_special);
+ PARROT_ASSERT(interp->gc_sys->pmc_needs_early_collection);
+
+ PARROT_ASSERT(interp->gc_sys->allocate_pmc_header);
+ PARROT_ASSERT(interp->gc_sys->free_pmc_header);
+
+ PARROT_ASSERT(interp->gc_sys->allocate_string_header);
+ PARROT_ASSERT(interp->gc_sys->free_string_header);
+
+ PARROT_ASSERT(interp->gc_sys->allocate_bufferlike_header);
+ PARROT_ASSERT(interp->gc_sys->free_bufferlike_header);
- initialize_var_size_pools(interp);
- initialize_fixed_size_pools(interp);
- Parrot_gc_initialize_fixed_size_pools(interp, GC_NUM_INITIAL_FIXED_SIZE_POOLS);
+ PARROT_ASSERT(interp->gc_sys->allocate_pmc_attributes);
+ PARROT_ASSERT(interp->gc_sys->free_pmc_attributes);
+
+ PARROT_ASSERT(interp->gc_sys->allocate_string_storage);
+ PARROT_ASSERT(interp->gc_sys->reallocate_string_storage);
+
+ PARROT_ASSERT(interp->gc_sys->allocate_buffer_storage);
+ PARROT_ASSERT(interp->gc_sys->reallocate_buffer_storage);
+
+ PARROT_ASSERT(interp->gc_sys->allocate_fixed_size_storage);
+ PARROT_ASSERT(interp->gc_sys->free_fixed_size_storage);
+
+ PARROT_ASSERT(interp->gc_sys->allocate_memory_chunk);
+ PARROT_ASSERT(interp->gc_sys->reallocate_memory_chunk);
+ PARROT_ASSERT(interp->gc_sys->allocate_memory_chunk_with_interior_pointers);
+ PARROT_ASSERT(interp->gc_sys->reallocate_memory_chunk_with_interior_pointers);
+ PARROT_ASSERT(interp->gc_sys->free_memory_chunk);
+
+ PARROT_ASSERT(interp->gc_sys->block_mark);
+ PARROT_ASSERT(interp->gc_sys->unblock_mark);
+ PARROT_ASSERT(interp->gc_sys->is_blocked_mark);
+
+ PARROT_ASSERT(interp->gc_sys->block_sweep);
+ PARROT_ASSERT(interp->gc_sys->unblock_sweep);
+ PARROT_ASSERT(interp->gc_sys->is_blocked_sweep);
+
+ PARROT_ASSERT(interp->gc_sys->get_gc_info);
}
/*
@@ -364,6 +339,9 @@
ASSERT_ARGS(Parrot_gc_finalize)
if (interp->gc_sys->finalize_gc_system)
interp->gc_sys->finalize_gc_system(interp);
+
+ mem_internal_free(interp->gc_sys);
+ interp->gc_sys = NULL;
}
@@ -385,10 +363,7 @@
Parrot_gc_new_pmc_header(PARROT_INTERP, UINTVAL flags)
{
ASSERT_ARGS(Parrot_gc_new_pmc_header)
- Fixed_Size_Pool * const pool = flags & PObj_constant_FLAG
- ? interp->mem_pools->constant_pmc_pool
- : interp->mem_pools->pmc_pool;
- PMC * const pmc = (PMC *)pool->get_free_object(interp, pool);
+ PMC * const pmc = interp->gc_sys->allocate_pmc_header(interp, flags);
if (!pmc)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ALLOCATION_ERROR,
@@ -418,14 +393,7 @@
Parrot_gc_free_pmc_header(PARROT_INTERP, ARGMOD(PMC *pmc))
{
ASSERT_ARGS(Parrot_gc_free_pmc_header)
- Fixed_Size_Pool * const pool = (PObj_constant_TEST(pmc)) ?
- interp->mem_pools->constant_pmc_pool : interp->mem_pools->pmc_pool;
-
- Parrot_pmc_destroy(interp, pmc);
-
- PObj_flags_SETTO((PObj *)pmc, PObj_on_free_list_FLAG);
- pool->add_free_object(interp, pool, (PObj *)pmc);
- pool->num_free_objects++;
+ interp->gc_sys->free_pmc_header(interp, pmc);
}
/*
@@ -471,7 +439,7 @@
if (PMC_sync(pmc))
return;
- PMC_sync(pmc) = mem_allocate_typed(Sync);
+ PMC_sync(pmc) = mem_gc_allocate_zeroed_typed(interp, Sync);
if (!PMC_sync(pmc))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ALLOCATION_ERROR,
@@ -501,10 +469,7 @@
{
ASSERT_ARGS(Parrot_gc_new_string_header)
- STRING * const string = (STRING *)get_free_buffer(interp,
- (flags & PObj_constant_FLAG)
- ? interp->mem_pools->constant_string_header_pool
- : interp->mem_pools->string_header_pool);
+ STRING * const string = interp->gc_sys->allocate_string_header(interp, flags);
if (!string)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ALLOCATION_ERROR,
"Parrot VM: STRING allocation failed!\n");
@@ -530,15 +495,12 @@
Parrot_gc_free_string_header(PARROT_INTERP, ARGMOD(STRING *s))
{
ASSERT_ARGS(Parrot_gc_free_string_header)
- if (!PObj_constant_TEST(s)) {
- Fixed_Size_Pool * const pool = interp->mem_pools->string_header_pool;
- pool->add_free_object(interp, pool, s);
- }
+ interp->gc_sys->free_string_header(interp, s);
}
/*
-=item C<void * Parrot_gc_new_bufferlike_header(PARROT_INTERP, size_t size)>
+=item C<Buffer * Parrot_gc_new_bufferlike_header(PARROT_INTERP, size_t size)>
Returns a new buffer-like header from the appropriate sized pool.
A "bufferlike object" is an object that is considered to be isomorphic to the
@@ -551,35 +513,11 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-void *
+Buffer *
Parrot_gc_new_bufferlike_header(PARROT_INTERP, size_t size)
{
ASSERT_ARGS(Parrot_gc_new_bufferlike_header)
-
- Fixed_Size_Pool * const pool = get_bufferlike_pool(interp, size);
-
- return get_free_buffer(interp, pool);
-}
-
-/*
-
-=item C<static void * get_free_buffer(PARROT_INTERP, Fixed_Size_Pool *pool)>
-
-Gets a free object or buffer from the given C<pool> and returns it. If the
-object is larger then a standard C<PObj> structure, all additional memory is
-cleared.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static void *
-get_free_buffer(PARROT_INTERP, ARGIN(Fixed_Size_Pool *pool))
-{
- ASSERT_ARGS(get_free_buffer)
- return pool->get_free_object(interp, pool);
+ return interp->gc_sys->allocate_bufferlike_header(interp, size);
}
/*
@@ -599,8 +537,7 @@
size_t size)
{
ASSERT_ARGS(Parrot_gc_free_bufferlike_header)
- Fixed_Size_Pool * const pool = get_bufferlike_pool(interp, size);
- pool->add_free_object(interp, pool, obj);
+ interp->gc_sys->free_bufferlike_header(interp, obj, size);
}
/*
@@ -621,19 +558,7 @@
ARGOUT(Buffer *buffer), size_t size)
{
ASSERT_ARGS(Parrot_gc_allocate_buffer_storage_aligned)
- size_t new_size;
- char *mem;
-
- Buffer_buflen(buffer) = 0;
- Buffer_bufstart(buffer) = NULL;
- new_size = aligned_size(buffer, size);
- mem = (char *)mem_allocate(interp, new_size,
- interp->mem_pools->memory_pool);
- mem = aligned_mem(buffer, mem);
- Buffer_bufstart(buffer) = mem;
- if (PObj_is_COWable_TEST(buffer))
- new_size -= sizeof (void*);
- Buffer_buflen(buffer) = new_size;
+ interp->gc_sys->allocate_buffer_storage(interp, buffer, size);
}
/*
@@ -656,58 +581,7 @@
size_t newsize)
{
ASSERT_ARGS(Parrot_gc_reallocate_buffer_storage)
- size_t copysize;
- char *mem;
- Variable_Size_Pool * const pool = interp->mem_pools->memory_pool;
- size_t new_size, needed, old_size;
-
- /*
- * we don't shrink buffers
- */
- if (newsize <= Buffer_buflen(buffer))
- return;
-
- /*
- * same as below but barely used and tested - only 3 list related
- * tests do use true reallocation
- *
- * list.c, which does _reallocate, has 2 reallocations
- * normally, which play ping pong with buffers.
- * The normal case is therefore always to allocate a new block
- */
- new_size = aligned_size(buffer, newsize);
- old_size = aligned_size(buffer, Buffer_buflen(buffer));
- needed = new_size - old_size;
-
- if ((pool->top_block->free >= needed)
- && (pool->top_block->top == (char *)Buffer_bufstart(buffer) + old_size)) {
- pool->top_block->free -= needed;
- pool->top_block->top += needed;
- Buffer_buflen(buffer) = newsize;
- return;
- }
-
- copysize = Buffer_buflen(buffer);
-
- if (!PObj_COW_TEST(buffer))
- pool->guaranteed_reclaimable += copysize;
- else
- pool->possibly_reclaimable += copysize;
-
- mem = (char *)mem_allocate(interp, new_size, pool);
- mem = aligned_mem(buffer, mem);
-
- /* We shouldn't ever have a 0 from size, but we do. If we can track down
- * those bugs, this can be removed which would make things cheaper */
- if (copysize)
- memcpy(mem, Buffer_bufstart(buffer), copysize);
-
- Buffer_bufstart(buffer) = mem;
-
- if (PObj_is_COWable_TEST(buffer))
- new_size -= sizeof (void *);
-
- Buffer_buflen(buffer) = new_size;
+ interp->gc_sys->reallocate_buffer_storage(interp, buffer, newsize);
}
/*
@@ -729,26 +603,7 @@
size_t size)
{
ASSERT_ARGS(Parrot_gc_allocate_string_storage)
- size_t new_size;
- Variable_Size_Pool *pool;
- char *mem;
-
- Buffer_buflen(str) = 0;
- Buffer_bufstart(str) = NULL;
-
- if (size == 0)
- return;
-
- pool = PObj_constant_TEST(str)
- ? interp->mem_pools->constant_string_pool
- : interp->mem_pools->memory_pool;
-
- new_size = aligned_string_size(size);
- mem = (char *)mem_allocate(interp, new_size, pool);
- mem += sizeof (void*);
-
- Buffer_bufstart(str) = str->strstart = mem;
- Buffer_buflen(str) = new_size - sizeof (void*);
+ interp->gc_sys->allocate_string_storage(interp, str, size);
}
/*
@@ -769,524 +624,202 @@
size_t newsize)
{
ASSERT_ARGS(Parrot_gc_reallocate_string_storage)
- size_t copysize;
- char *mem, *oldmem;
- size_t new_size, needed, old_size;
-
- Variable_Size_Pool * const pool =
- PObj_constant_TEST(str)
- ? interp->mem_pools->constant_string_pool
- : interp->mem_pools->memory_pool;
-
- /* if the requested size is smaller then buflen, we are done */
- if (newsize <= Buffer_buflen(str))
- return;
-
- /*
- * first check, if we can reallocate:
- * - 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));
- needed = new_size - old_size;
-
- if (pool->top_block->free >= needed
- && pool->top_block->top == (char *)Buffer_bufstart(str) + old_size) {
- pool->top_block->free -= needed;
- pool->top_block->top += needed;
- Buffer_buflen(str) = new_size - sizeof (void*);
- return;
- }
-
- PARROT_ASSERT(str->bufused <= newsize);
-
- /* 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, new_size, pool);
- mem += sizeof (void *);
-
- /* copy mem from strstart, *not* bufstart */
- oldmem = str->strstart;
- Buffer_bufstart(str) = (void *)mem;
- str->strstart = mem;
- Buffer_buflen(str) = new_size - sizeof (void*);
-
- /* We shouldn't ever have a 0 from size, but we do. If we can track down
- * those bugs, this can be removed which would make things cheaper */
- if (copysize)
- memcpy(mem, oldmem, copysize);
+ interp->gc_sys->reallocate_string_storage(interp, str, newsize);
}
/*
-=item C<void Parrot_gc_mark_and_sweep(PARROT_INTERP, UINTVAL flags)>
+=item C<void * Parrot_gc_allocate_pmc_attributes(PARROT_INTERP, PMC *pmc)>
-Calls the configured garbage collector to find and reclaim unused
-headers. Performs a complete mark & sweep run of the GC.
+Allocates a new attribute structure for a PMC if it has the auto_attrs flag
+set.
=cut
*/
-void
-Parrot_gc_mark_and_sweep(PARROT_INTERP, UINTVAL flags)
+PARROT_CANNOT_RETURN_NULL
+void *
+Parrot_gc_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
{
- ASSERT_ARGS(Parrot_gc_mark_and_sweep)
- interp->gc_sys->do_gc_mark(interp, flags);
+ ASSERT_ARGS(Parrot_gc_allocate_pmc_attributes)
+ return interp->gc_sys->allocate_pmc_attributes(interp, pmc);
}
/*
-=item C<void Parrot_gc_compact_memory_pool(PARROT_INTERP)>
-
-Scan the string pools and compact them. This does not perform a GC mark or
-sweep run, and does not check whether string buffers are still alive.
-Redirects to C<compact_pool>.
+=item C<void Parrot_gc_free_pmc_attributes(PARROT_INTERP, PMC *pmc)>
-=cut
+Deallocates an attibutes structure from a PMC if it has the auto_attrs
+flag set.
*/
void
-Parrot_gc_compact_memory_pool(PARROT_INTERP)
+Parrot_gc_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
{
- ASSERT_ARGS(Parrot_gc_compact_memory_pool)
- compact_pool(interp, interp->mem_pools->memory_pool);
+ ASSERT_ARGS(Parrot_gc_free_pmc_attributes)
+ interp->gc_sys->free_pmc_attributes(interp, pmc);
}
/*
-=item C<void Parrot_gc_merge_header_pools(Interp *dest_interp, Interp
-*source_interp)>
-
-Merges the header pools of C<source_interp> into those of C<dest_interp>.
-(Used to deal with shared objects left after interpreter destruction.)
+=item C<void * Parrot_gc_allocate_fixed_size_storage(PARROT_INTERP, size_t
+size)>
-=cut
+Allocates a fixed-size chunk of memory for use. This memory is not manually
+managed and needs to be freed with C<Parrot_gc_free_fixed_size_storage>
*/
-void
-Parrot_gc_merge_header_pools(ARGMOD(Interp *dest_interp),
- ARGIN(Interp *source_interp))
+PARROT_CANNOT_RETURN_NULL
+void *
+Parrot_gc_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
{
- ASSERT_ARGS(Parrot_gc_merge_header_pools)
-
- Memory_Pools * const dest_arena = dest_interp->mem_pools;
- Memory_Pools * const source_arena = source_interp->mem_pools;
- UINTVAL i;
-
- /* heavily borrowed from forall_header_pools */
- fix_pmc_syncs(dest_interp, source_arena->constant_pmc_pool);
- Parrot_gc_merge_buffer_pools(dest_interp, dest_arena->constant_pmc_pool,
- source_arena->constant_pmc_pool);
-
- fix_pmc_syncs(dest_interp, source_arena->pmc_pool);
- Parrot_gc_merge_buffer_pools(dest_interp, dest_arena->pmc_pool,
- source_arena->pmc_pool);
-
- Parrot_gc_merge_buffer_pools(dest_interp,
- dest_arena->constant_string_header_pool,
- source_arena->constant_string_header_pool);
-
- for (i = 0; i < source_arena->num_sized; ++i) {
- if (!source_arena->sized_header_pools[i])
- continue;
-
- if (i >= dest_arena->num_sized
- || !dest_arena->sized_header_pools[i]) {
- Fixed_Size_Pool *ignored = get_bufferlike_pool(dest_interp,
- i * sizeof (void *));
- UNUSED(ignored);
- PARROT_ASSERT(dest_arena->sized_header_pools[i]);
- }
-
- Parrot_gc_merge_buffer_pools(dest_interp,
- dest_arena->sized_header_pools[i],
- source_arena->sized_header_pools[i]);
- }
+ ASSERT_ARGS(Parrot_gc_allocate_fixed_size_storage)
+ return interp->gc_sys->allocate_fixed_size_storage(interp, size);
}
/*
-=item C<static void Parrot_gc_merge_buffer_pools(PARROT_INTERP, Fixed_Size_Pool
-*dest, Fixed_Size_Pool *source)>
-
-Merge pool C<source> into pool C<dest>. Combines the free lists directly,
-moves all arenas to the new pool, and remove the old pool. To merge, the
-two pools must have the same object size, and the same name (if they have
-names).
+=item C<void Parrot_gc_free_fixed_size_storage(PARROT_INTERP, size_t size, void
+*data)>
-=cut
+Manually deallocates fixed size storage allocated with
+C<Parrot_gc_allocate_fixed_size_storage>
*/
-static void
-Parrot_gc_merge_buffer_pools(PARROT_INTERP,
- ARGMOD(Fixed_Size_Pool *dest), ARGMOD(Fixed_Size_Pool *source))
+void
+Parrot_gc_free_fixed_size_storage(PARROT_INTERP, size_t size, ARGMOD(void *data))
{
- ASSERT_ARGS(Parrot_gc_merge_buffer_pools)
- Fixed_Size_Arena *cur_arena;
- GC_MS_PObj_Wrapper *free_list_end;
-
- PARROT_ASSERT(dest->object_size == source->object_size);
- PARROT_ASSERT((dest->name == NULL && source->name == NULL)
- || STREQ(dest->name, source->name));
-
- dest->total_objects += source->total_objects;
-
- /* append new free_list to old */
- /* XXX this won't work with, e.g., gc_gms */
- free_list_end = dest->free_list;
-
- if (free_list_end == NULL)
- dest->free_list = source->free_list;
- else {
- while (free_list_end->next_ptr)
- free_list_end = free_list_end->next_ptr;
-
- free_list_end->next_ptr = source->free_list;
- }
-
- /* now append source arenas */
- cur_arena = source->last_Arena;
-
- while (cur_arena) {
- size_t total_objects;
- Fixed_Size_Arena * const next_arena = cur_arena->prev;
-
- cur_arena->next = cur_arena->prev = NULL;
-
- total_objects = cur_arena->total_objects;
-
- Parrot_append_arena_in_pool(interp, dest, cur_arena,
- cur_arena->total_objects);
-
- /* XXX needed? */
- cur_arena->total_objects = total_objects;
-
- cur_arena = next_arena;
- }
-
- /* remove things from source */
- source->last_Arena = NULL;
- source->free_list = NULL;
- source->total_objects = 0;
- source->num_free_objects = 0;
+ ASSERT_ARGS(Parrot_gc_free_fixed_size_storage)
+ interp->gc_sys->free_fixed_size_storage(interp, size, data);
}
/*
-=item C<static void fix_pmc_syncs(Interp *dest_interp, Fixed_Size_Pool *pool)>
-
-Walks through the given arena, looking for all live and shared PMCs,
-transferring their sync values to the destination interpreter.
-
-=cut
-
-*/
-
-static void
-fix_pmc_syncs(ARGMOD(Interp *dest_interp), ARGIN(Fixed_Size_Pool *pool))
-{
- ASSERT_ARGS(fix_pmc_syncs)
- Fixed_Size_Arena *cur_arena;
- const UINTVAL object_size = pool->object_size;
-
- for (cur_arena = pool->last_Arena; cur_arena; cur_arena = cur_arena->prev) {
- PMC *p = (PMC *)((char*)cur_arena->start_objects);
- size_t i;
-
- for (i = 0; i < cur_arena->used; i++) {
- if (!PObj_on_free_list_TEST(p) && PObj_is_PMC_TEST(p)) {
- if (PObj_is_PMC_shared_TEST(p))
- PMC_sync(p)->owner = dest_interp;
- else
- Parrot_ex_throw_from_c_args(dest_interp, NULL,
- EXCEPTION_INTERP_ERROR,
- "Unshared PMC still alive after interpreter"
- "destruction. address=%p, base_type=%d\n",
- p, p->vtable->base_type);
- }
+=item C<void * Parrot_gc_allocate_memory_chunk(PARROT_INTERP, size_t size)>
- p = (PMC *)((char *)p + object_size);
- }
- }
-}
+=item C<void * Parrot_gc_reallocate_memory_chunk(PARROT_INTERP, void *data,
+size_t newsize)>
-/*
+=item C<void Parrot_gc_free_memory_chunk(PARROT_INTERP, void *data)>
-=item C<void Parrot_gc_destroy_header_pools(PARROT_INTERP)>
+=item C<void *
+Parrot_gc_allocate_memory_chunk_with_interior_pointers(PARROT_INTERP, size_t
+size)>
-Performs a garbage collection sweep on all pools, then frees them. Calls
-C<header_pools_iterate_callback> to loop over all the pools, passing
-C<sweep_cb_pmc> and C<sweep_cb_buf> callback routines. Frees the array of sized
-header pointers in the C<Memory_Pools> structure too.
+=item C<void *
+Parrot_gc_reallocate_memory_chunk_with_interior_pointers(PARROT_INTERP, void
+*data, size_t newsize, size_t oldsize)>
-=cut
+TODO Write docu.
*/
-void
-Parrot_gc_destroy_header_pools(PARROT_INTERP)
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void *
+Parrot_gc_allocate_memory_chunk(PARROT_INTERP, size_t size)
{
- ASSERT_ARGS(Parrot_gc_destroy_header_pools)
- INTVAL pass;
-
- /* const/non const COW strings life in different pools
- * so in first pass
- * COW refcount is done, in 2. refcounting
- * in 3rd freeing
- */
- const INTVAL start = 2;
-
- header_pools_iterate_callback(interp, POOL_PMC, NULL, sweep_cb_pmc);
- header_pools_iterate_callback(interp, POOL_PMC | POOL_CONST, NULL,
- sweep_cb_pmc);
-
- for (pass = start; pass <= 2; pass++) {
- header_pools_iterate_callback(interp, POOL_BUFFER | POOL_CONST,
- (void *)pass, sweep_cb_buf);
- }
-
- mem_internal_free(interp->mem_pools->sized_header_pools);
-
- if (interp->mem_pools->attrib_pools) {
- unsigned int i;
- for (i = 0; i < interp->mem_pools->num_attribs; i++) {
- PMC_Attribute_Pool *pool = interp->mem_pools->attrib_pools[i];
- PMC_Attribute_Arena *arena;
-
- if (!pool)
- continue;
-
- arena = pool->top_arena;
-
- while (arena) {
- PMC_Attribute_Arena *next = arena->next;
- mem_internal_free(arena);
- arena = next;
- }
- mem_internal_free(pool);
- }
-
- mem_internal_free(interp->mem_pools->attrib_pools);
- }
-
- interp->mem_pools->attrib_pools = NULL;
- interp->mem_pools->sized_header_pools = NULL;
+ ASSERT_ARGS(Parrot_gc_allocate_memory_chunk)
+ return interp->gc_sys->allocate_memory_chunk(interp, size);
}
-/*
-
-=item C<static int sweep_cb_pmc(PARROT_INTERP, Fixed_Size_Pool *pool, int flag,
-void *arg)>
-
-Performs a garbage collection sweep of the given pmc pool, then frees it. Calls
-C<Parrot_gc_sweep_pool> to perform the sweep, and C<free_pool> to free the pool and
-all its arenas. Always returns C<0>.
-
-=cut
-
-*/
-
-static int
-sweep_cb_pmc(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool),
- SHIM(int flag), SHIM(void *arg))
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void *
+Parrot_gc_reallocate_memory_chunk(PARROT_INTERP, ARGFREE(void *data), size_t newsize)
{
- ASSERT_ARGS(sweep_cb_pmc)
- Parrot_gc_sweep_pool(interp, pool);
- free_pool(pool);
- return 0;
+ ASSERT_ARGS(Parrot_gc_reallocate_memory_chunk)
+ return interp->gc_sys->reallocate_memory_chunk(interp, data, newsize);
}
-/*
-
-=item C<static int sweep_cb_buf(PARROT_INTERP, Fixed_Size_Pool *pool, int flag,
-void *arg)>
-
-Performs a final garbage collection sweep, then frees the pool. Calls
-C<Parrot_gc_sweep_pool> to perform the sweep, and C<free_pool> to free the pool and
-all its arenas.
-
-=cut
-
-*/
-
-static int
-sweep_cb_buf(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool), SHIM(int flag),
- ARGIN(void *arg))
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void
+Parrot_gc_free_memory_chunk(PARROT_INTERP, ARGIN_NULLOK(void *data))
{
- ASSERT_ARGS(sweep_cb_buf)
- UNUSED(arg);
- Parrot_gc_sweep_pool(interp, pool);
- free_pool(pool);
-
- return 0;
+ ASSERT_ARGS(Parrot_gc_free_memory_chunk)
+ interp->gc_sys->free_memory_chunk(interp, data);
}
-/*
-
-=item C<static void free_pool(Fixed_Size_Pool *pool)>
-
-Frees a pool and all of its arenas. Loops through the list of arenas backwards
-and returns each to the memory manager. Then, frees the pool structure itself.
-=cut
-
-*/
-
-static void
-free_pool(ARGMOD(Fixed_Size_Pool *pool))
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void *
+Parrot_gc_allocate_memory_chunk_with_interior_pointers(PARROT_INTERP, size_t size)
{
- ASSERT_ARGS(free_pool)
- Fixed_Size_Arena *cur_arena;
-
- for (cur_arena = pool->last_Arena; cur_arena;) {
- Fixed_Size_Arena * const next = cur_arena->prev;
- mem_internal_free(cur_arena->start_objects);
- mem_internal_free(cur_arena);
- cur_arena = next;
- }
- mem_internal_free(pool);
+ ASSERT_ARGS(Parrot_gc_allocate_memory_chunk_with_interior_pointers)
+ return interp->gc_sys->allocate_memory_chunk_with_interior_pointers(interp, size);
}
-
-/*
-
-=item C<void Parrot_gc_destroy_memory_pools(PARROT_INTERP)>
-
-Destroys the memory pool and the constant string pool. Loop through both
-pools and destroy all memory blocks contained in them. Once all the
-blocks are freed, free the pools themselves.
-
-=cut
-
-*/
-
-void
-Parrot_gc_destroy_memory_pools(PARROT_INTERP)
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void *
+Parrot_gc_reallocate_memory_chunk_with_interior_pointers(PARROT_INTERP,
+ ARGFREE(void *data), size_t newsize, size_t oldsize)
{
- ASSERT_ARGS(Parrot_gc_destroy_memory_pools)
- int i;
-
- for (i = 0; i < 2; i++) {
- Variable_Size_Pool * const pool = i ?
- interp->mem_pools->constant_string_pool :
- interp->mem_pools->memory_pool;
- Memory_Block *cur_block;
-
- cur_block = pool->top_block;
-
- while (cur_block) {
- Memory_Block * const next_block = cur_block->prev;
- mem_internal_free(cur_block);
- cur_block = next_block;
- }
-
- mem_internal_free(pool);
- }
+ ASSERT_ARGS(Parrot_gc_reallocate_memory_chunk_with_interior_pointers)
+ return interp->gc_sys->reallocate_memory_chunk_with_interior_pointers(interp,
+ data, newsize, oldsize);
}
+
/*
-=item C<int Parrot_gc_ptr_in_memory_pool(PARROT_INTERP, void *bufstart)>
+=item C<void Parrot_gc_mark_and_sweep(PARROT_INTERP, UINTVAL flags)>
-Determines if the given C<bufstart> pointer points to a location inside the
-memory pool. Returns 1 if the pointer is in the memory pool, 0 otherwise.
+Calls the configured garbage collector to find and reclaim unused
+headers. Performs a complete mark & sweep run of the GC.
=cut
*/
-PARROT_WARN_UNUSED_RESULT
-int
-Parrot_gc_ptr_in_memory_pool(PARROT_INTERP, ARGIN(void *bufstart))
+void
+Parrot_gc_mark_and_sweep(PARROT_INTERP, UINTVAL flags)
{
- ASSERT_ARGS(Parrot_gc_ptr_in_memory_pool)
- Variable_Size_Pool * const pool = interp->mem_pools->memory_pool;
- Memory_Block * cur_block = pool->top_block;
-
- while (cur_block) {
- if ((char *)bufstart >= cur_block->start &&
- (char *) bufstart < cur_block->start + cur_block->size) {
- return 1;
- }
- cur_block = cur_block->prev;
- }
- return 0;
+ ASSERT_ARGS(Parrot_gc_mark_and_sweep)
+ interp->gc_sys->do_gc_mark(interp, flags);
}
/*
-=item C<int Parrot_gc_ptr_is_pmc(PARROT_INTERP, void *ptr)>
+=item C<void Parrot_gc_compact_memory_pool(PARROT_INTERP)>
-Determines if a given pointer is a PMC or not. It is a PMC if it is properly
-contained in one of this interpreters PMC pools.
+Compact string pool if supported by GC.
=cut
*/
-int
-Parrot_gc_ptr_is_pmc(PARROT_INTERP, ARGIN(void *ptr))
+void
+Parrot_gc_compact_memory_pool(PARROT_INTERP)
{
- ASSERT_ARGS(Parrot_gc_ptr_is_pmc)
- return contained_in_pool(interp, interp->mem_pools->pmc_pool, ptr) ||
- contained_in_pool(interp, interp->mem_pools->constant_pmc_pool, ptr);
+ ASSERT_ARGS(Parrot_gc_compact_memory_pool)
+ interp->gc_sys->compact_string_pool(interp);
}
/*
-=item C<int Parrot_gc_get_pmc_index(PARROT_INTERP, PMC* pmc)>
+=item C<void Parrot_gc_destroy_child_interp(Interp *dest_interp, Interp
+*source_interp)>
-Gets the index of the PMC in the pool. The first PMC in the first pool is 1,
-the second is 2, etc.
+Merges the header pools of C<source_interp> into those of C<dest_interp>.
+(Used to deal with shared objects left after interpreter destruction.)
=cut
*/
-int
-Parrot_gc_get_pmc_index(PARROT_INTERP, ARGIN(PMC* pmc))
+void
+Parrot_gc_destroy_child_interp(ARGMOD(Interp *dest_interp),
+ ARGIN(Interp *source_interp))
{
- ASSERT_ARGS(Parrot_gc_get_pmc_index)
- UINTVAL id = 1; /* first PMC in first arena */
- Fixed_Size_Arena *arena;
- Fixed_Size_Pool *pool;
-
- pool = interp->mem_pools->pmc_pool;
- for (arena = pool->last_Arena; arena; arena = arena->prev) {
- const ptrdiff_t ptr_diff = (ptrdiff_t)pmc - (ptrdiff_t)arena->start_objects;
- if (ptr_diff >= 0 && ptr_diff <
- (ptrdiff_t)(arena->used * pool->object_size)) {
- PARROT_ASSERT(ptr_diff % pool->object_size == 0);
- id += ptr_diff / pool->object_size;
- return id;
- }
- id += arena->total_objects;
- }
-
- pool = interp->mem_pools->constant_pmc_pool;
- for (arena = pool->last_Arena; arena; arena = arena->prev) {
- const ptrdiff_t ptr_diff = (ptrdiff_t)pmc - (ptrdiff_t)arena->start_objects;
- if (ptr_diff >= 0 && ptr_diff <
- (ptrdiff_t)(arena->used * pool->object_size)) {
- PARROT_ASSERT(ptr_diff % pool->object_size == 0);
- id += ptr_diff / pool->object_size;
- return id;
- }
- id += arena->total_objects;
- }
-
- Parrot_ex_throw_from_c_args(interp, NULL, 1, "Couldn't find PMC in arenas");
+ ASSERT_ARGS(Parrot_gc_destroy_child_interp)
+ dest_interp->gc_sys->destroy_child_interp(dest_interp, source_interp);
}
/*
@@ -1303,16 +836,7 @@
Parrot_gc_active_sized_buffers(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_active_sized_buffers)
- int j, ret = 0;
- const Memory_Pools * const mem_pools = interp->mem_pools;
- for (j = 0; j < (INTVAL)mem_pools->num_sized; j++) {
- Fixed_Size_Pool * const header_pool =
- mem_pools->sized_header_pools[j];
- if (header_pool)
- ret += header_pool->total_objects -
- header_pool->num_free_objects;
- }
- return ret;
+ return interp->gc_sys->get_gc_info(interp, ACTIVE_BUFFERS);
}
/*
@@ -1329,15 +853,7 @@
Parrot_gc_total_sized_buffers(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_total_sized_buffers)
- int j, ret = 0;
- const Memory_Pools * const mem_pools = interp->mem_pools;
- for (j = 0; j < (INTVAL)mem_pools->num_sized; j++) {
- Fixed_Size_Pool * const header_pool =
- mem_pools->sized_header_pools[j];
- if (header_pool)
- ret += header_pool->total_objects;
- }
- return ret;
+ return interp->gc_sys->get_gc_info(interp, TOTAL_BUFFERS);
}
/*
@@ -1354,9 +870,7 @@
Parrot_gc_active_pmcs(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_active_pmcs)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->pmc_pool->total_objects -
- mem_pools->pmc_pool->num_free_objects;
+ return interp->gc_sys->get_gc_info(interp, ACTIVE_PMCS);
}
/*
@@ -1373,8 +887,7 @@
Parrot_gc_total_pmcs(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_total_pmcs)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->pmc_pool->total_objects;
+ return interp->gc_sys->get_gc_info(interp, TOTAL_PMCS);
}
/*
@@ -1415,64 +928,56 @@
Parrot_gc_count_mark_runs(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_count_mark_runs)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->gc_mark_runs;
+ return interp->gc_sys->get_gc_info(interp, GC_MARK_RUNS);
}
size_t
Parrot_gc_count_collect_runs(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_count_collect_runs)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->gc_collect_runs;
+ return interp->gc_sys->get_gc_info(interp, GC_COLLECT_RUNS);
}
size_t
Parrot_gc_count_lazy_mark_runs(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_count_lazy_mark_runs)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->gc_lazy_mark_runs;;
+ return interp->gc_sys->get_gc_info(interp, GC_LAZY_MARK_RUNS);
}
size_t
Parrot_gc_total_memory_allocated(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_total_memory_allocated)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->memory_allocated;
+ return interp->gc_sys->get_gc_info(interp, TOTAL_MEM_ALLOC);
}
size_t
Parrot_gc_headers_alloc_since_last_collect(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_headers_alloc_since_last_collect)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->header_allocs_since_last_collect;
+ return interp->gc_sys->get_gc_info(interp, HEADER_ALLOCS_SINCE_COLLECT);
}
size_t
Parrot_gc_mem_alloc_since_last_collect(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_mem_alloc_since_last_collect)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->mem_allocs_since_last_collect;
+ return interp->gc_sys->get_gc_info(interp, MEM_ALLOCS_SINCE_COLLECT);
}
UINTVAL
Parrot_gc_total_copied(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_total_copied)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->memory_collected;
+ return interp->gc_sys->get_gc_info(interp, TOTAL_COPIED);
}
UINTVAL
Parrot_gc_impatient_pmcs(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_impatient_pmcs)
- const Memory_Pools * const mem_pools = interp->mem_pools;
- return mem_pools->num_early_gc_PMCs;
+ return interp->gc_sys->get_gc_info(interp, IMPATIENT_PMCS);
}
/*
@@ -1515,8 +1020,8 @@
Parrot_block_GC_mark(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_block_GC_mark)
- interp->mem_pools->gc_mark_block_level++;
- Parrot_shared_gc_block(interp);
+ if (interp->gc_sys->block_mark)
+ interp->gc_sys->block_mark(interp);
}
PARROT_EXPORT
@@ -1524,10 +1029,8 @@
Parrot_unblock_GC_mark(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_unblock_GC_mark)
- if (interp->mem_pools->gc_mark_block_level) {
- interp->mem_pools->gc_mark_block_level--;
- Parrot_shared_gc_unblock(interp);
- }
+ if (interp->gc_sys->unblock_mark)
+ interp->gc_sys->unblock_mark(interp);
}
PARROT_EXPORT
@@ -1535,7 +1038,8 @@
Parrot_block_GC_sweep(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_block_GC_sweep)
- interp->mem_pools->gc_sweep_block_level++;
+ if (interp->gc_sys->block_sweep)
+ interp->gc_sys->block_sweep(interp);
}
PARROT_EXPORT
@@ -1543,8 +1047,8 @@
Parrot_unblock_GC_sweep(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_unblock_GC_sweep)
- if (interp->mem_pools->gc_sweep_block_level)
- interp->mem_pools->gc_sweep_block_level--;
+ if (interp->gc_sys->unblock_sweep)
+ interp->gc_sys->unblock_sweep(interp);
}
PARROT_EXPORT
@@ -1552,7 +1056,10 @@
Parrot_is_blocked_GC_mark(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_is_blocked_GC_mark)
- return interp->mem_pools->gc_mark_block_level;
+ if (interp->gc_sys->is_blocked_mark)
+ return interp->gc_sys->is_blocked_mark(interp);
+ else
+ return 0;
}
PARROT_EXPORT
@@ -1560,15 +1067,20 @@
Parrot_is_blocked_GC_sweep(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_is_blocked_GC_sweep)
- return interp->mem_pools->gc_sweep_block_level;
+ if (interp->gc_sys->is_blocked_sweep)
+ return interp->gc_sys->is_blocked_mark(interp);
+ else
+ return 0;
}
void
Parrot_gc_completely_unblock(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_gc_completely_unblock)
- interp->mem_pools->gc_mark_block_level = 0;
- interp->mem_pools->gc_sweep_block_level = 0;
+ while (Parrot_is_blocked_GC_mark(interp))
+ Parrot_unblock_GC_mark(interp);
+ while (Parrot_is_blocked_GC_sweep(interp))
+ Parrot_unblock_GC_sweep(interp);
}
/*
@@ -1585,145 +1097,39 @@
Parrot_gc_pmc_needs_early_collection(PARROT_INTERP, ARGMOD(PMC *pmc))
{
ASSERT_ARGS(Parrot_gc_pmc_needs_early_collection)
- PObj_needs_early_gc_SET(pmc);
- ++interp->mem_pools->num_early_gc_PMCs;
+ if (interp->gc_sys->pmc_needs_early_collection)
+ interp->gc_sys->pmc_needs_early_collection(interp, pmc);
}
-
/*
-=item C<void * Parrot_gc_allocate_pmc_attributes(PARROT_INTERP, PMC *pmc)>
+=item C<STRING * Parrot_gc_sys_name(PARROT_INTERP)>
-Allocates a new attribute structure for a PMC if it has the auto_attrs flag
-set.
+Retrieve the name of the currently active GC system.
=cut
*/
PARROT_CANNOT_RETURN_NULL
-void *
-Parrot_gc_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
-{
- ASSERT_ARGS(Parrot_gc_allocate_pmc_attributes)
- const size_t attr_size = pmc->vtable->attr_size;
-#if GC_USE_FIXED_SIZE_ALLOCATOR
- PMC_Attribute_Pool * const pool = Parrot_gc_get_attribute_pool(interp,
- attr_size);
- void * const attrs = Parrot_gc_get_attributes_from_pool(interp, pool);
- memset(attrs, 0, attr_size);
- PMC_data(pmc) = attrs;
- return attrs;
-#else
- void * const data = mem_sys_allocate_zeroed(attr_size);
- PMC_data(pmc) = data;
- return data;
-#endif
-}
-
-/*
-
-=item C<void Parrot_gc_free_pmc_attributes(PARROT_INTERP, PMC *pmc)>
-
-Deallocates an attibutes structure from a PMC if it has the auto_attrs
-flag set.
-
-*/
-
-void
-Parrot_gc_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+STRING *
+Parrot_gc_sys_name(PARROT_INTERP)
{
- ASSERT_ARGS(Parrot_gc_free_pmc_attributes)
- void * const data = PMC_data(pmc);
-
- if (data) {
-
-#if GC_USE_FIXED_SIZE_ALLOCATOR
- const size_t attr_size = pmc->vtable->attr_size;
- const size_t item_size = attr_size < sizeof (void *) ? sizeof (void *) : attr_size;
- PMC_Attribute_Pool ** const pools = interp->mem_pools->attrib_pools;
- const size_t idx = item_size - sizeof (void *);
- Parrot_gc_free_attributes_from_pool(interp, pools[idx], data);
-#else
- mem_sys_free(PMC_data(pmc));
- PMC_data(pmc) = NULL;
-#endif
+ ASSERT_ARGS(Parrot_gc_sys_name)
+ STRING *name = NULL;
+ switch (interp->gc_sys->sys_type) {
+ case MS:
+ name = Parrot_str_new(interp, "ms", 2);
+ break;
+ case INF:
+ name = Parrot_str_new(interp, "inf", 3);
+ break;
+ default:
+ name = Parrot_str_new(interp, "unknown", 7);
+ break;
}
-}
-
-/*
-
-=item C<void * Parrot_gc_allocate_fixed_size_storage(PARROT_INTERP, size_t
-size)>
-
-Allocates a fixed-size chunk of memory for use. This memory is not manually
-managed and needs to be freed with C<Parrot_gc_free_fixed_size_storage>
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-void *
-Parrot_gc_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
-{
- ASSERT_ARGS(Parrot_gc_allocate_fixed_size_storage)
- PMC_Attribute_Pool *pool = NULL;
- const size_t idx = (size < sizeof (void *)) ? 0 : (size - sizeof (void *));
-
- /* get the pool directly, if possible, for great speed */
- if (interp->mem_pools->num_attribs > idx)
- pool = interp->mem_pools->attrib_pools[idx];
-
- /* otherwise create it */
- if (!pool)
- pool = Parrot_gc_get_attribute_pool(interp, size);
-
- return Parrot_gc_get_attributes_from_pool(interp, pool);
-}
-
-/*
-
-=item C<void Parrot_gc_free_fixed_size_storage(PARROT_INTERP, size_t size, void
-*data)>
-
-Manually deallocates fixed size storage allocated with
-C<Parrot_gc_allocate_fixed_size_storage>
-
-*/
-
-void
-Parrot_gc_free_fixed_size_storage(PARROT_INTERP, size_t size, ARGMOD(void *data))
-{
- ASSERT_ARGS(Parrot_gc_free_fixed_size_storage)
-
- const size_t item_size = size < sizeof (void *) ? sizeof (void *) : size;
- const size_t idx = size - sizeof (void *);
- PMC_Attribute_Pool ** const pools = interp->mem_pools->attrib_pools;
- Parrot_gc_free_attributes_from_pool(interp, pools[idx], data);
-}
-
-
-/*
-
-=item C<static void Parrot_gc_free_attributes_from_pool(PARROT_INTERP,
-PMC_Attribute_Pool *pool, void *data)>
-
-Frees a fixed-size data item back to the pool for later reallocation. Private
-to this file.
-
-*/
-
-static void
-Parrot_gc_free_attributes_from_pool(PARROT_INTERP,
- ARGMOD(PMC_Attribute_Pool *pool),
- ARGMOD(void *data))
-{
- ASSERT_ARGS(Parrot_gc_free_attributes_from_pool)
- PMC_Attribute_Free_List * const item = (PMC_Attribute_Free_List *)data;
-
- item->next = pool->free_list;
- pool->free_list = item;
-
- pool->num_free_objects++;
+ PARROT_ASSERT(name != NULL);
+ return name;
}
/*
Modified: branches/ops_pct/src/gc/gc_inf.c
==============================================================================
--- branches/ops_pct/src/gc/gc_inf.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/gc_inf.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -38,44 +38,184 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
static void gc_inf_add_free_object(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool),
ARGIN(void *to_add))
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*pool);
-static void gc_inf_alloc_objects(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+static void gc_inf_alloc_objects(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
+static void gc_inf_allocate_buffer_storage(PARROT_INTERP,
+ ARGMOD(Buffer *buffer),
+ size_t size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*buffer);
+
+PARROT_CAN_RETURN_NULL
+static Buffer* gc_inf_allocate_bufferlike_header(PARROT_INTERP, size_t size)
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+static void* gc_inf_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+static void* gc_inf_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
+
+PARROT_CAN_RETURN_NULL
+static PMC* gc_inf_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+static STRING* gc_inf_allocate_string_header(PARROT_INTERP, UINTVAL flags)
+ __attribute__nonnull__(1);
+
+static void gc_inf_allocate_string_storage(PARROT_INTERP,
+ ARGMOD(STRING *str),
+ size_t size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*str);
+
+static void gc_inf_compact_memory_pool(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+static void gc_inf_free_bufferlike_header(PARROT_INTERP,
+ ARGIN_NULLOK(Buffer *b),
+ size_t size)
+ __attribute__nonnull__(1);
+
+static void gc_inf_free_fixed_size_storage(PARROT_INTERP,
+ size_t size,
+ ARGMOD(void *data))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*data);
+
+static void gc_inf_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
+
+static void gc_inf_free_pmc_header(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
+ __attribute__nonnull__(1);
+
+static void gc_inf_free_string_header(PARROT_INTERP,
+ ARGIN_NULLOK(STRING *s))
+ __attribute__nonnull__(1);
+
PARROT_CANNOT_RETURN_NULL
static void * gc_inf_get_free_object(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
+static size_t gc_inf_get_gc_info(PARROT_INTERP, Interpinfo_enum what)
+ __attribute__nonnull__(1);
+
static void gc_inf_mark_and_sweep(SHIM_INTERP, UINTVAL flags);
static void gc_inf_more_traceable_objects(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
static void gc_inf_pool_init(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(2)
FUNC_MODIFIES(*pool);
+static void gc_inf_reallocate_buffer_storage(PARROT_INTERP,
+ ARGMOD(Buffer *buffer),
+ size_t size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*buffer);
+
+static void gc_inf_reallocate_string_storage(PARROT_INTERP,
+ ARGMOD(STRING *str),
+ size_t size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*str);
+
#define ASSERT_ARGS_gc_inf_add_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pool) \
+ PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(to_add))
#define ASSERT_ARGS_gc_inf_alloc_objects __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pool))
+ PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_gc_inf_allocate_buffer_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(buffer))
+#define ASSERT_ARGS_gc_inf_allocate_bufferlike_header \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_inf_allocate_fixed_size_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_inf_allocate_pmc_attributes \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_gc_inf_allocate_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_inf_allocate_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_inf_allocate_string_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str))
+#define ASSERT_ARGS_gc_inf_compact_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_inf_free_bufferlike_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_inf_free_fixed_size_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(data))
+#define ASSERT_ARGS_gc_inf_free_pmc_attributes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_gc_inf_free_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_inf_free_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_inf_get_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pool))
+ PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_gc_inf_get_gc_info __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_inf_mark_and_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_more_traceable_objects __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pool))
+ PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_gc_inf_pool_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_gc_inf_reallocate_buffer_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(buffer))
+#define ASSERT_ARGS_gc_inf_reallocate_string_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -111,8 +251,8 @@
/*
-=item C<static void gc_inf_add_free_object(PARROT_INTERP, Fixed_Size_Pool *pool,
-void *to_add)>
+=item C<static void gc_inf_add_free_object(PARROT_INTERP, Memory_Pools
+*mem_pools, Fixed_Size_Pool *pool, void *to_add)>
Manually frees a chunk of memory. Normally this would return the memory
to the free list of the pool, but in this case we just return it to the
@@ -127,8 +267,10 @@
*/
static void
-gc_inf_add_free_object(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool),
- ARGIN(void *to_add))
+gc_inf_add_free_object(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ ARGIN(void *to_add))
{
ASSERT_ARGS(gc_inf_add_free_object)
if (to_add)
@@ -137,8 +279,8 @@
/*
-=item C<static void * gc_inf_get_free_object(PARROT_INTERP, Fixed_Size_Pool
-*pool)>
+=item C<static void * gc_inf_get_free_object(PARROT_INTERP, Memory_Pools
+*mem_pools, Fixed_Size_Pool *pool)>
Gets a new object from the pool. Each pool specifies an object size in
C<pool->object_size> so we can use that number to make the allocation. For
@@ -160,7 +302,9 @@
PARROT_CANNOT_RETURN_NULL
static void *
-gc_inf_get_free_object(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+gc_inf_get_free_object(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
{
ASSERT_ARGS(gc_inf_get_free_object)
return calloc(pool->object_size, 1);
@@ -168,7 +312,8 @@
/*
-=item C<static void gc_inf_alloc_objects(PARROT_INTERP, Fixed_Size_Pool *pool)>
+=item C<static void gc_inf_alloc_objects(PARROT_INTERP, Memory_Pools *mem_pools,
+Fixed_Size_Pool *pool)>
Allocates a new arena of objects from the system. This function is only
really used internally by the core, the API functions don't need to call
@@ -182,7 +327,9 @@
*/
static void
-gc_inf_alloc_objects(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+gc_inf_alloc_objects(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
{
ASSERT_ARGS(gc_inf_alloc_objects)
UNUSED(pool);
@@ -190,8 +337,8 @@
/*
-=item C<static void gc_inf_more_traceable_objects(PARROT_INTERP, Fixed_Size_Pool
-*pool)>
+=item C<static void gc_inf_more_traceable_objects(PARROT_INTERP, Memory_Pools
+*mem_pools, Fixed_Size_Pool *pool)>
Would normally try to find new traceable objects by first running a GC sweep
and then allocating a new arena from the system. Neither of these are
@@ -206,7 +353,9 @@
*/
static void
-gc_inf_more_traceable_objects(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+gc_inf_more_traceable_objects(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
{
ASSERT_ARGS(gc_inf_more_traceable_objects)
UNUSED(pool);
@@ -240,6 +389,225 @@
/*
+=item C<static void gc_inf_compact_memory_pool(PARROT_INTERP)>
+
+Stub for compacting memory pools.
+
+=cut
+
+*/
+static void
+gc_inf_compact_memory_pool(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_inf_compact_memory_pool)
+}
+
+/*
+
+=item C<static PMC* gc_inf_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)>
+
+=item C<static void gc_inf_free_pmc_header(PARROT_INTERP, PMC *pmc)>
+
+=item C<static STRING* gc_inf_allocate_string_header(PARROT_INTERP, UINTVAL
+flags)>
+
+=item C<static void gc_inf_free_string_header(PARROT_INTERP, STRING *s)>
+
+=item C<static Buffer* gc_inf_allocate_bufferlike_header(PARROT_INTERP, size_t
+size)>
+
+=item C<static void gc_inf_free_bufferlike_header(PARROT_INTERP, Buffer *b,
+size_t size)>
+
+=item C<static void* gc_inf_allocate_pmc_attributes(PARROT_INTERP, PMC *pmc)>
+
+=item C<static void gc_inf_free_pmc_attributes(PARROT_INTERP, PMC *pmc)>
+
+=item C<static void gc_inf_allocate_string_storage(PARROT_INTERP, STRING *str,
+size_t size)>
+
+=item C<static void gc_inf_reallocate_string_storage(PARROT_INTERP, STRING *str,
+size_t size)>
+
+=item C<static void gc_inf_allocate_buffer_storage(PARROT_INTERP, Buffer
+*buffer, size_t size)>
+
+=item C<static void gc_inf_reallocate_buffer_storage(PARROT_INTERP, Buffer
+*buffer, size_t size)>
+
+=item C<static void* gc_inf_allocate_fixed_size_storage(PARROT_INTERP, size_t
+size)>
+
+=item C<static void gc_inf_free_fixed_size_storage(PARROT_INTERP, size_t size,
+void *data)>
+
+Functions for allocating/deallocating various objects.
+
+*/
+
+PARROT_CAN_RETURN_NULL
+static PMC*
+gc_inf_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
+{
+ ASSERT_ARGS(gc_inf_allocate_pmc_header)
+ return (PMC*)calloc(sizeof (PMC), 1);
+}
+
+static void
+gc_inf_free_pmc_header(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
+{
+ ASSERT_ARGS(gc_inf_free_pmc_header)
+ if (pmc)
+ free(pmc);
+}
+
+PARROT_CAN_RETURN_NULL
+static STRING*
+gc_inf_allocate_string_header(PARROT_INTERP, UINTVAL flags)
+{
+ ASSERT_ARGS(gc_inf_allocate_string_header)
+ return (STRING*)calloc(sizeof (STRING), 1);
+}
+
+static void
+gc_inf_free_string_header(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
+{
+ ASSERT_ARGS(gc_inf_free_string_header)
+ if (s)
+ free(s);
+}
+
+PARROT_CAN_RETURN_NULL
+static Buffer*
+gc_inf_allocate_bufferlike_header(PARROT_INTERP, size_t size)
+{
+ ASSERT_ARGS(gc_inf_allocate_bufferlike_header)
+ return (Buffer*)calloc(sizeof (Buffer), 1);
+}
+
+static void
+gc_inf_free_bufferlike_header(PARROT_INTERP, ARGIN_NULLOK(Buffer *b), size_t size)
+{
+ ASSERT_ARGS(gc_inf_free_bufferlike_header)
+ if (b)
+ free(b);
+}
+
+PARROT_CAN_RETURN_NULL
+static void*
+gc_inf_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+{
+ ASSERT_ARGS(gc_inf_allocate_pmc_attributes)
+ const size_t attr_size = pmc->vtable->attr_size;
+ PMC_data(pmc) = calloc(attr_size, 1);
+ return PMC_data(pmc);
+}
+
+static void
+gc_inf_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+{
+ ASSERT_ARGS(gc_inf_free_pmc_attributes)
+ if (PMC_data(pmc))
+ free(PMC_data(pmc));
+}
+
+
+static void
+gc_inf_allocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str), size_t size)
+{
+ ASSERT_ARGS(gc_inf_allocate_string_storage)
+ char *mem;
+
+ Buffer_buflen(str) = 0;
+ Buffer_bufstart(str) = NULL;
+
+ if (size == 0)
+ return;
+
+ mem = (char *)mem_internal_allocate(size);
+
+ Buffer_bufstart(str) = str->strstart = mem;
+ Buffer_buflen(str) = size;
+}
+
+static void
+gc_inf_reallocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str), size_t size)
+{
+ ASSERT_ARGS(gc_inf_reallocate_string_storage)
+ char *mem;
+
+ mem = (char *)mem_internal_realloc(Buffer_bufstart(str), size);
+
+ Buffer_bufstart(str) = str->strstart = mem;
+ Buffer_buflen(str) = size;
+}
+
+
+static void
+gc_inf_allocate_buffer_storage(PARROT_INTERP, ARGMOD(Buffer *buffer), size_t size)
+{
+ ASSERT_ARGS(gc_inf_allocate_buffer_storage)
+ char *mem;
+
+ Buffer_buflen(buffer) = 0;
+ Buffer_bufstart(buffer) = NULL;
+
+ if (size == 0)
+ return;
+
+ mem = (char *)mem_internal_allocate(size);
+
+ Buffer_bufstart(buffer) = mem;
+ Buffer_buflen(buffer) = size;
+}
+
+static void
+gc_inf_reallocate_buffer_storage(PARROT_INTERP, ARGMOD(Buffer *buffer), size_t size)
+{
+ ASSERT_ARGS(gc_inf_reallocate_buffer_storage)
+ char *mem;
+
+ mem = (char *)mem_internal_realloc(Buffer_bufstart(buffer), size);
+
+ Buffer_bufstart(buffer) = mem;
+ Buffer_buflen(buffer) = size;
+}
+
+PARROT_CAN_RETURN_NULL
+static void*
+gc_inf_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
+{
+ ASSERT_ARGS(gc_inf_allocate_fixed_size_storage)
+ return calloc(size, 1);
+}
+
+static void
+gc_inf_free_fixed_size_storage(PARROT_INTERP, size_t size, ARGMOD(void *data))
+{
+ ASSERT_ARGS(gc_inf_free_fixed_size_storage)
+ if (data)
+ mem_internal_free(data);
+}
+
+/*
+
+=item C<static size_t gc_inf_get_gc_info(PARROT_INTERP, Interpinfo_enum what)>
+
+Stub for GC introspection function.
+
+=cut
+
+*/
+static size_t
+gc_inf_get_gc_info(PARROT_INTERP, Interpinfo_enum what)
+{
+ ASSERT_ARGS(gc_inf_get_gc_info)
+ return 0;
+}
+
+
+/*
+
=item C<void Parrot_gc_inf_init(PARROT_INTERP)>
Initializes the infinite memory collector. Installs the necessary function
@@ -260,7 +628,38 @@
interp->gc_sys->do_gc_mark = gc_inf_mark_and_sweep;
interp->gc_sys->finalize_gc_system = NULL;
- interp->gc_sys->init_pool = gc_inf_pool_init;
+
+ interp->gc_sys->do_gc_mark = gc_inf_mark_and_sweep;
+ interp->gc_sys->compact_string_pool = gc_inf_compact_memory_pool;
+
+ /*
+ interp->gc_sys->mark_special = gc_inf_mark_special;
+ interp->gc_sys->pmc_needs_early_collection = gc_inf_pmc_needs_early_collection;
+ */
+
+ interp->gc_sys->allocate_pmc_header = gc_inf_allocate_pmc_header;
+ interp->gc_sys->free_pmc_header = gc_inf_free_pmc_header;
+
+ interp->gc_sys->allocate_string_header = gc_inf_allocate_string_header;
+ interp->gc_sys->free_string_header = gc_inf_free_string_header;
+
+ interp->gc_sys->allocate_bufferlike_header = gc_inf_allocate_bufferlike_header;
+ interp->gc_sys->free_bufferlike_header = gc_inf_free_bufferlike_header;
+
+ interp->gc_sys->allocate_pmc_attributes = gc_inf_allocate_pmc_attributes;
+ interp->gc_sys->free_pmc_attributes = gc_inf_free_pmc_attributes;
+
+ interp->gc_sys->allocate_string_storage = gc_inf_allocate_string_storage;
+ interp->gc_sys->reallocate_string_storage = gc_inf_reallocate_string_storage;
+
+ interp->gc_sys->allocate_buffer_storage = gc_inf_allocate_buffer_storage;
+ interp->gc_sys->reallocate_buffer_storage = gc_inf_reallocate_buffer_storage;
+
+ interp->gc_sys->allocate_fixed_size_storage = gc_inf_allocate_fixed_size_storage;
+ interp->gc_sys->free_fixed_size_storage = gc_inf_free_fixed_size_storage;
+
+ interp->gc_sys->get_gc_info = gc_inf_get_gc_info;
+
}
Modified: branches/ops_pct/src/gc/gc_ms.c
==============================================================================
--- branches/ops_pct/src/gc/gc_ms.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/gc_ms.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -17,89 +17,310 @@
#include "parrot/parrot.h"
#include "gc_private.h"
+PARROT_DOES_NOT_RETURN
+static void failed_allocation(unsigned int line, unsigned long size) /* HEADERIZER SKIP */
+{
+ fprintf(stderr, "Failed allocation of %lu bytes\n", size);
+ do_panic(NULL, "Out of mem", __FILE__, line);
+}
+
+#define PANIC_OUT_OF_MEM(size) failed_allocation(__LINE__, (size))
+
/* HEADERIZER HFILE: src/gc/gc_private.h */
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+static int gc_ms_active_sized_buffers(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
static void gc_ms_add_free_object(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool),
ARGIN(void *to_add))
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*pool);
static void gc_ms_alloc_objects(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
-static void gc_ms_finalize(PARROT_INTERP,
+static void gc_ms_allocate_buffer_storage(PARROT_INTERP,
+ ARGOUT(Buffer *buffer),
+ size_t size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*buffer);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static Buffer * gc_ms_allocate_bufferlike_header(PARROT_INTERP, size_t size)
+ __attribute__nonnull__(1);
+
+static void * gc_ms_allocate_memory_chunk(PARROT_INTERP, size_t size)
+ __attribute__nonnull__(1);
+
+static void * gc_ms_allocate_memory_chunk_zeroed(PARROT_INTERP, size_t size)
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+static PMC* gc_ms_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+static STRING* gc_ms_allocate_string_header(PARROT_INTERP, UINTVAL flags)
+ __attribute__nonnull__(1);
+
+static void gc_ms_block_GC_mark(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+static void gc_ms_block_GC_sweep(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+static void gc_ms_destroy_child_interp(
+ ARGMOD(Interp *dest_interp),
+ ARGIN(Interp *source_interp))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*dest_interp);
+
+static void gc_ms_finalize(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+static void gc_ms_finalize_memory_pools(PARROT_INTERP,
ARGIN(Memory_Pools * const mem_pools))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+static void gc_ms_free_attributes_from_pool(PARROT_INTERP,
+ ARGMOD(PMC_Attribute_Pool *pool),
+ ARGMOD(void *data))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*pool)
+ FUNC_MODIFIES(*data);
+
+static void gc_ms_free_bufferlike_header(PARROT_INTERP,
+ ARGMOD(Buffer *obj),
+ size_t size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*obj);
+
+static void gc_ms_free_memory_chunk(PARROT_INTERP, ARGFREE(void *data))
+ __attribute__nonnull__(1);
+
+static void gc_ms_free_pmc_header(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
+
+static void gc_ms_free_string_header(PARROT_INTERP, ARGMOD(STRING *s))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*s);
+
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
static void * gc_ms_get_free_object(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
+static size_t gc_ms_get_gc_info(PARROT_INTERP, Interpinfo_enum which)
+ __attribute__nonnull__(1);
+
+static unsigned int gc_ms_is_blocked_GC_mark(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+static unsigned int gc_ms_is_blocked_GC_sweep(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
static void gc_ms_mark_and_sweep(PARROT_INTERP, UINTVAL flags)
__attribute__nonnull__(1);
+static void gc_ms_mark_special(PARROT_INTERP, ARGIN(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
static void gc_ms_more_traceable_objects(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
static void gc_ms_pool_init(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(2)
FUNC_MODIFIES(*pool);
+static void gc_ms_reallocate_buffer_storage(PARROT_INTERP,
+ ARGMOD(Buffer *buffer),
+ size_t newsize)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*buffer);
+
+static void * gc_ms_reallocate_memory_chunk(PARROT_INTERP,
+ ARGFREE(void *from),
+ size_t size)
+ __attribute__nonnull__(1);
+
+static void * gc_ms_reallocate_memory_chunk_zeroed(PARROT_INTERP,
+ ARGFREE(void *data),
+ size_t newsize,
+ size_t oldsize)
+ __attribute__nonnull__(1);
+
+static void gc_ms_reallocate_string_storage(PARROT_INTERP,
+ ARGMOD(STRING *str),
+ size_t newsize)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*str);
+
static int gc_ms_sweep_cb(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool),
int flag,
ARGMOD(void *arg))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- __attribute__nonnull__(4)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(5)
FUNC_MODIFIES(*pool)
FUNC_MODIFIES(*arg);
+static int gc_ms_total_sized_buffers(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
static int gc_ms_trace_active_PMCs(PARROT_INTERP,
Parrot_gc_trace_type trace)
__attribute__nonnull__(1);
+static void gc_ms_unblock_GC_mark(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+static void gc_ms_unblock_GC_sweep(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_gc_ms_active_sized_buffers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_gc_ms_add_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pool) \
+ PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(to_add))
#define ASSERT_ARGS_gc_ms_alloc_objects __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_gc_ms_allocate_buffer_storage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(buffer))
+#define ASSERT_ARGS_gc_ms_allocate_bufferlike_header \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_allocate_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_allocate_memory_chunk_zeroed \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#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 = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_block_GC_mark __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_block_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_destroy_child_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(dest_interp) \
+ , PARROT_ASSERT_ARG(source_interp))
#define ASSERT_ARGS_gc_ms_finalize __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_finalize_memory_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(mem_pools))
+#define ASSERT_ARGS_gc_ms_free_attributes_from_pool \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pool) \
+ , PARROT_ASSERT_ARG(data))
+#define ASSERT_ARGS_gc_ms_free_bufferlike_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(obj))
+#define ASSERT_ARGS_gc_ms_free_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_free_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_gc_ms_free_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_gc_ms_get_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_gc_ms_get_gc_info __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_is_blocked_GC_mark __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_is_blocked_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_ms_mark_and_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_mark_special __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pmc))
#define ASSERT_ARGS_gc_ms_more_traceable_objects __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_gc_ms_pool_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pool))
+#define ASSERT_ARGS_gc_ms_reallocate_buffer_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(buffer))
+#define ASSERT_ARGS_gc_ms_reallocate_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_reallocate_memory_chunk_zeroed \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_reallocate_string_storage \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str))
#define ASSERT_ARGS_gc_ms_sweep_cb __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_gc_ms_total_sized_buffers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_gc_ms_trace_active_PMCs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_unblock_GC_mark __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_unblock_GC_sweep __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 */
@@ -125,14 +346,117 @@
{
ASSERT_ARGS(Parrot_gc_ms_init)
- interp->gc_sys->do_gc_mark = gc_ms_mark_and_sweep;
- interp->gc_sys->finalize_gc_system = NULL;
- interp->gc_sys->init_pool = gc_ms_pool_init;
+ interp->mem_pools = mem_internal_allocate_zeroed_typed(Memory_Pools);
+ interp->mem_pools->num_sized = 0;
+ interp->mem_pools->num_attribs = 0;
+ interp->mem_pools->attrib_pools = NULL;
+ interp->mem_pools->sized_header_pools = NULL;
+
+ interp->gc_sys->finalize_gc_system = gc_ms_finalize;
+ interp->gc_sys->destroy_child_interp = gc_ms_destroy_child_interp;
+ interp->gc_sys->init_pool = gc_ms_pool_init;
+
+ interp->gc_sys->do_gc_mark = gc_ms_mark_and_sweep;
+ interp->gc_sys->compact_string_pool = gc_ms_compact_memory_pool;
+
+ interp->gc_sys->mark_special = gc_ms_mark_special;
+ interp->gc_sys->pmc_needs_early_collection = gc_ms_pmc_needs_early_collection;
+
+ interp->gc_sys->allocate_pmc_header = gc_ms_allocate_pmc_header;
+ interp->gc_sys->free_pmc_header = gc_ms_free_pmc_header;
+
+ interp->gc_sys->allocate_string_header = gc_ms_allocate_string_header;
+ interp->gc_sys->free_string_header = gc_ms_free_string_header;
+
+ interp->gc_sys->allocate_bufferlike_header = gc_ms_allocate_bufferlike_header;
+ interp->gc_sys->free_bufferlike_header = gc_ms_free_bufferlike_header;
+
+ interp->gc_sys->allocate_pmc_attributes = gc_ms_allocate_pmc_attributes;
+ interp->gc_sys->free_pmc_attributes = gc_ms_free_pmc_attributes;
+
+ interp->gc_sys->allocate_string_storage = gc_ms_allocate_string_storage;
+ interp->gc_sys->reallocate_string_storage = gc_ms_reallocate_string_storage;
+
+ interp->gc_sys->allocate_buffer_storage = gc_ms_allocate_buffer_storage;
+ interp->gc_sys->reallocate_buffer_storage = gc_ms_reallocate_buffer_storage;
+
+ interp->gc_sys->allocate_fixed_size_storage = gc_ms_allocate_fixed_size_storage;
+ interp->gc_sys->free_fixed_size_storage = gc_ms_free_fixed_size_storage;
+
+ /* We don't distinguish between chunk and chunk_with_pointers */
+ interp->gc_sys->allocate_memory_chunk = gc_ms_allocate_memory_chunk;
+ interp->gc_sys->reallocate_memory_chunk = gc_ms_reallocate_memory_chunk;
+ interp->gc_sys->allocate_memory_chunk_with_interior_pointers
+ = gc_ms_allocate_memory_chunk_zeroed;
+ interp->gc_sys->reallocate_memory_chunk_with_interior_pointers
+ = gc_ms_reallocate_memory_chunk_zeroed;
+ interp->gc_sys->free_memory_chunk = gc_ms_free_memory_chunk;
+
+ interp->gc_sys->block_mark = gc_ms_block_GC_mark;
+ interp->gc_sys->unblock_mark = gc_ms_unblock_GC_mark;
+ interp->gc_sys->is_blocked_mark = gc_ms_is_blocked_GC_mark;
+
+ interp->gc_sys->block_sweep = gc_ms_block_GC_sweep;
+ interp->gc_sys->unblock_sweep = gc_ms_unblock_GC_sweep;
+ interp->gc_sys->is_blocked_sweep = gc_ms_is_blocked_GC_sweep;
+
+ interp->gc_sys->get_gc_info = gc_ms_get_gc_info;
+
+ initialize_var_size_pools(interp, interp->mem_pools);
+ initialize_fixed_size_pools(interp, interp->mem_pools);
+ Parrot_gc_initialize_fixed_size_pools(interp, interp->mem_pools,
+ GC_NUM_INITIAL_FIXED_SIZE_POOLS);
+}
+
+/*
+
+=item C<static void gc_ms_finalize(PARROT_INTERP)>
+
+Finalyze MS GC subsystem. Destroy everything.
+
+=cut
+
+*/
+static void
+gc_ms_finalize(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_finalize)
+
+ /* buffer headers, PMCs */
+ Parrot_gc_destroy_header_pools(interp, interp->mem_pools);
+ /* memory pools in resources */
+ Parrot_gc_destroy_memory_pools(interp, interp->mem_pools);
+
+ /* mem subsystem is dead now */
+ mem_internal_free(interp->mem_pools);
+ interp->mem_pools = NULL;
}
/*
+=item C<static void gc_ms_destroy_child_interp(Interp *dest_interp, Interp
+*source_interp)>
+
+Merges the header pools of C<source_interp> into those of C<dest_interp>.
+(Used to deal with shared objects left after interpreter destruction.)
+
+=cut
+
+*/
+
+static void
+gc_ms_destroy_child_interp(ARGMOD(Interp *dest_interp),
+ ARGIN(Interp *source_interp))
+{
+ ASSERT_ARGS(gc_ms_destroy_child_interp)
+
+ Memory_Pools * const dest_arena = dest_interp->mem_pools;
+ Memory_Pools * const source_arena = source_interp->mem_pools;
+ Parrot_gc_merge_memory_pools(dest_interp, dest_arena, source_arena);
+}
+/*
+
=item C<static void gc_ms_mark_and_sweep(PARROT_INTERP, UINTVAL flags)>
Runs the stop-the-world mark & sweep (MS) collector.
@@ -158,7 +482,7 @@
}
if (flags & GC_finish_FLAG) {
- gc_ms_finalize(interp, mem_pools);
+ gc_ms_finalize_memory_pools(interp, mem_pools);
return;
}
@@ -167,7 +491,7 @@
/* tell the threading system that we're doing GC mark */
pt_gc_start_mark(interp);
- Parrot_gc_run_init(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);
@@ -182,7 +506,7 @@
/* We've done the mark, now do the sweep. Pass the sweep callback
function to the PMC pool and all the sized pools. */
- header_pools_iterate_callback(interp, POOL_BUFFER | POOL_PMC,
+ header_pools_iterate_callback(interp, interp->mem_pools, POOL_BUFFER | POOL_PMC,
(void*)&total_free, gc_ms_sweep_cb);
}
@@ -197,25 +521,78 @@
/* Note it */
mem_pools->gc_mark_runs++;
--mem_pools->gc_mark_block_level;
+ mem_pools->header_allocs_since_last_collect = 0;
return;
}
/*
-=item C<static void gc_ms_finalize(PARROT_INTERP, Memory_Pools * const
-mem_pools)>
+=item C<void gc_ms_compact_memory_pool(PARROT_INTERP)>
-Perform the finalization run, freeing all PMCs.
+Scan the string pools and compact them. This does not perform a GC mark or
+sweep run, and does not check whether string buffers are still alive.
+Redirects to C<compact_pool>.
=cut
*/
+void
+gc_ms_compact_memory_pool(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_compact_memory_pool)
+ compact_pool(interp, interp->mem_pools, interp->mem_pools->memory_pool);
+}
+
+/*
+
+=item C<static void gc_ms_mark_special(PARROT_INTERP, PMC *pmc)>
+
+Mark PMC special.
+
+=cut
+*/
static void
-gc_ms_finalize(PARROT_INTERP, ARGIN(Memory_Pools * const mem_pools))
+gc_ms_mark_special(PARROT_INTERP, ARGIN(PMC *pmc))
{
- ASSERT_ARGS(gc_ms_finalize)
+ ASSERT_ARGS(gc_ms_mark_special)
+ mark_special(interp, interp->mem_pools, pmc);
+}
+
+/*
+
+=item C<void gc_ms_pmc_needs_early_collection(PARROT_INTERP, PMC *pmc)>
+
+Mark a PMC as needing timely destruction
+
+=cut
+
+*/
+
+void
+gc_ms_pmc_needs_early_collection(PARROT_INTERP, ARGMOD(PMC *pmc))
+{
+ ASSERT_ARGS(gc_ms_pmc_needs_early_collection)
+ PObj_needs_early_gc_SET(pmc);
+ ++interp->mem_pools->num_early_gc_PMCs;
+}
+
+/*
+
+=item C<static void gc_ms_finalize_memory_pools(PARROT_INTERP, Memory_Pools *
+const mem_pools)>
+
+Perform the finalization run, freeing all PMCs in Memory_Pools.
+
+=cut
+
+*/
+
+static void
+gc_ms_finalize_memory_pools(PARROT_INTERP, ARGIN(Memory_Pools * const mem_pools))
+{
+ ASSERT_ARGS(gc_ms_finalize_memory_pools)
Parrot_gc_clear_live_bits(interp, mem_pools->pmc_pool);
Parrot_gc_clear_live_bits(interp, mem_pools->constant_pmc_pool);
@@ -224,12 +601,589 @@
if (interp->scheduler) {
Parrot_gc_mark_PMC_alive(interp, interp->scheduler);
VTABLE_mark(interp, interp->scheduler);
- Parrot_gc_sweep_pool(interp, interp->mem_pools->pmc_pool);
+ Parrot_gc_sweep_pool(interp, mem_pools, mem_pools->pmc_pool);
}
/* now sweep everything that's left */
- Parrot_gc_sweep_pool(interp, interp->mem_pools->pmc_pool);
- Parrot_gc_sweep_pool(interp, interp->mem_pools->constant_pmc_pool);
+ Parrot_gc_sweep_pool(interp, mem_pools, mem_pools->pmc_pool);
+ Parrot_gc_sweep_pool(interp, mem_pools, mem_pools->constant_pmc_pool);
+}
+
+/*
+
+=item C<static PMC* gc_ms_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)>
+
+Allocate new PMC header from pool.
+
+=cut
+
+*/
+PARROT_CAN_RETURN_NULL
+static PMC*
+gc_ms_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
+{
+ ASSERT_ARGS(gc_ms_allocate_pmc_header)
+
+ Fixed_Size_Pool * const pool = flags & PObj_constant_FLAG
+ ? interp->mem_pools->constant_pmc_pool
+ : interp->mem_pools->pmc_pool;
+
+ return (PMC*)pool->get_free_object(interp, interp->mem_pools, pool);
+}
+
+/*
+
+=item C<static void gc_ms_free_pmc_header(PARROT_INTERP, PMC *pmc)>
+
+Return PMC header into pool.
+
+=cut
+
+*/
+static void
+gc_ms_free_pmc_header(PARROT_INTERP, ARGMOD(PMC *pmc))
+{
+ ASSERT_ARGS(gc_ms_free_pmc_header)
+ Fixed_Size_Pool * const pool = (PObj_constant_TEST(pmc)) ?
+ interp->mem_pools->constant_pmc_pool : interp->mem_pools->pmc_pool;
+
+ Parrot_pmc_destroy(interp, pmc);
+
+ PObj_flags_SETTO((PObj *)pmc, PObj_on_free_list_FLAG);
+ pool->add_free_object(interp, interp->mem_pools, pool, (PObj *)pmc);
+ pool->num_free_objects++;
+}
+
+/*
+
+=item C<static STRING* gc_ms_allocate_string_header(PARROT_INTERP, UINTVAL
+flags)>
+
+Allocate new STRING header from pool.
+
+=cut
+
+*/
+PARROT_CAN_RETURN_NULL
+static STRING*
+gc_ms_allocate_string_header(PARROT_INTERP, UINTVAL flags)
+{
+ ASSERT_ARGS(gc_ms_allocate_string_header)
+
+ Fixed_Size_Pool * const pool = flags & PObj_constant_FLAG
+ ? interp->mem_pools->constant_string_header_pool
+ : interp->mem_pools->string_header_pool;
+
+ return (STRING*)pool->get_free_object(interp, interp->mem_pools, pool);
+}
+
+
+/*
+
+=item C<static void gc_ms_free_string_header(PARROT_INTERP, STRING *s)>
+
+Return STRING header into pool.
+
+=cut
+
+*/
+static void
+gc_ms_free_string_header(PARROT_INTERP, ARGMOD(STRING *s))
+{
+ ASSERT_ARGS(gc_ms_free_string_header)
+ if (!PObj_constant_TEST(s)) {
+ Fixed_Size_Pool * const pool = interp->mem_pools->string_header_pool;
+ PObj_flags_SETTO((PObj *)s, PObj_on_free_list_FLAG);
+ pool->add_free_object(interp, interp->mem_pools, pool, s);
+ pool->num_free_objects++;
+ }
+}
+
+/*
+
+=item C<static Buffer * gc_ms_allocate_bufferlike_header(PARROT_INTERP, size_t
+size)>
+
+Returns a new buffer-like header from the appropriate sized pool.
+A "bufferlike object" is an object that is considered to be isomorphic to the
+PObj, so it will participate in normal GC. At the moment these are only used
+to create ListChunk objects in src/list.c.
+
+=cut
+
+*/
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static Buffer *
+gc_ms_allocate_bufferlike_header(PARROT_INTERP, size_t size)
+{
+ ASSERT_ARGS(gc_ms_allocate_bufferlike_header)
+
+ Fixed_Size_Pool * const pool = get_bufferlike_pool(interp, interp->mem_pools, size);
+
+ return (Buffer *)pool->get_free_object(interp, interp->mem_pools, pool);
+}
+
+/*
+
+=item C<static void gc_ms_free_bufferlike_header(PARROT_INTERP, Buffer *obj,
+size_t size)>
+
+Free a bufferlike header that is not being used, so that Parrot can recycle
+it and use it again.
+
+=cut
+
+*/
+
+static void
+gc_ms_free_bufferlike_header(PARROT_INTERP, ARGMOD(Buffer *obj),
+ size_t size)
+{
+ ASSERT_ARGS(gc_ms_free_bufferlike_header)
+ Fixed_Size_Pool * const pool = get_bufferlike_pool(interp, interp->mem_pools, size);
+ pool->add_free_object(interp, interp->mem_pools, pool, obj);
+}
+
+/*
+
+=item C<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.
+
+=cut
+
+*/
+
+PARROT_CANNOT_RETURN_NULL
+void *
+gc_ms_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+{
+ ASSERT_ARGS(gc_ms_allocate_pmc_attributes)
+ const size_t attr_size = pmc->vtable->attr_size;
+#if GC_USE_FIXED_SIZE_ALLOCATOR
+ PMC_Attribute_Pool * const pool = Parrot_gc_get_attribute_pool(interp,
+ interp->mem_pools, attr_size);
+ void * const attrs = Parrot_gc_get_attributes_from_pool(interp, pool);
+ memset(attrs, 0, attr_size);
+ PMC_data(pmc) = attrs;
+ return attrs;
+#else
+ void * const data = gc_ms_allocate_memory_chunk(attr_size);
+ PMC_data(pmc) = data;
+ return data;
+#endif
+}
+
+/*
+
+=item C<void gc_ms_free_pmc_attributes(PARROT_INTERP, PMC *pmc)>
+
+Deallocates an attibutes structure from a PMC if it has the auto_attrs
+flag set.
+
+*/
+
+void
+gc_ms_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+{
+ ASSERT_ARGS(gc_ms_free_pmc_attributes)
+ void * const data = PMC_data(pmc);
+
+ if (data) {
+
+#if GC_USE_FIXED_SIZE_ALLOCATOR
+ const size_t attr_size = pmc->vtable->attr_size;
+ const size_t item_size = attr_size < sizeof (void *) ? sizeof (void *) : attr_size;
+ PMC_Attribute_Pool ** const pools = interp->mem_pools->attrib_pools;
+ const size_t idx = item_size - sizeof (void *);
+ gc_ms_free_attributes_from_pool(interp, pools[idx], data);
+#else
+ gc_ms_free_memory_chunk(PMC_data(pmc));
+ PMC_data(pmc) = NULL;
+#endif
+ }
+}
+
+/*
+
+=item C<static void gc_ms_free_attributes_from_pool(PARROT_INTERP,
+PMC_Attribute_Pool *pool, void *data)>
+
+Frees a fixed-size data item back to the pool for later reallocation. Private
+to this file.
+
+*/
+
+static void
+gc_ms_free_attributes_from_pool(PARROT_INTERP,
+ ARGMOD(PMC_Attribute_Pool *pool),
+ ARGMOD(void *data))
+{
+ ASSERT_ARGS(gc_ms_free_attributes_from_pool)
+ PMC_Attribute_Free_List * const item = (PMC_Attribute_Free_List *)data;
+
+ item->next = pool->free_list;
+ pool->free_list = item;
+
+ pool->num_free_objects++;
+}
+
+/*
+
+=item C<static void gc_ms_allocate_buffer_storage(PARROT_INTERP, Buffer *buffer,
+size_t size)>
+
+Allocates a chunk of memory of at least size C<size> for the given Buffer.
+buffer is guaranteed to be properly aligned for things like C<FLOATVALS>,
+so the size may be rounded up or down to guarantee that this alignment holds.
+
+=cut
+
+*/
+
+static void
+gc_ms_allocate_buffer_storage(PARROT_INTERP,
+ ARGOUT(Buffer *buffer), size_t size)
+{
+ ASSERT_ARGS(gc_ms_allocate_buffer_storage)
+ size_t new_size;
+ char *mem;
+
+ Buffer_buflen(buffer) = 0;
+ Buffer_bufstart(buffer) = NULL;
+ new_size = aligned_string_size(size);
+ mem = (char *)mem_allocate(interp, interp->mem_pools, new_size,
+ interp->mem_pools->memory_pool);
+ mem = aligned_mem(buffer, mem);
+ Buffer_bufstart(buffer) = mem;
+ new_size -= sizeof (void*);
+ Buffer_buflen(buffer) = new_size;
+}
+
+/*
+
+=item C<static void gc_ms_reallocate_buffer_storage(PARROT_INTERP, Buffer
+*buffer, size_t newsize)>
+
+Reallocate the Buffer's buffer memory to the given size. The
+allocated buffer will not shrink. If the buffer was allocated with
+L<Parrot_allocate_aligned> the new buffer will also be aligned. As with
+all reallocation, the new buffer might have moved and the additional
+memory is not cleared.
+
+=cut
+
+*/
+
+static void
+gc_ms_reallocate_buffer_storage(PARROT_INTERP, ARGMOD(Buffer *buffer),
+ size_t newsize)
+{
+ ASSERT_ARGS(gc_ms_reallocate_buffer_storage)
+ size_t copysize;
+ char *mem;
+ Variable_Size_Pool * const pool = interp->mem_pools->memory_pool;
+ size_t new_size, needed, old_size;
+
+ /*
+ * we don't shrink buffers
+ */
+ if (newsize <= Buffer_buflen(buffer))
+ return;
+
+ /*
+ * same as below but barely used and tested - only 3 list related
+ * tests do use true reallocation
+ *
+ * list.c, which does _reallocate, has 2 reallocations
+ * 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));
+ needed = new_size - old_size;
+
+ if ((pool->top_block->free >= needed)
+ && (pool->top_block->top == (char *)Buffer_bufstart(buffer) + old_size)) {
+ pool->top_block->free -= needed;
+ pool->top_block->top += needed;
+ Buffer_buflen(buffer) = newsize;
+ return;
+ }
+
+ 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);
+
+ /* We shouldn't ever have a 0 from size, but we do. If we can track down
+ * those bugs, this can be removed which would make things cheaper */
+ if (copysize)
+ memcpy(mem, Buffer_bufstart(buffer), copysize);
+
+ Buffer_bufstart(buffer) = mem;
+
+ new_size -= sizeof (void *);
+
+ Buffer_buflen(buffer) = new_size;
+}
+
+/*
+
+=item C<void gc_ms_allocate_string_storage(PARROT_INTERP, STRING *str, size_t
+size)>
+
+Allocate the STRING's buffer memory to the given size. The allocated
+buffer maybe slightly bigger than the given C<size>. This function
+sets also C<< str->strstart >> to the new buffer location, C<< str->bufused >>
+is B<not> changed.
+
+=cut
+
+*/
+
+void
+gc_ms_allocate_string_storage(PARROT_INTERP, ARGOUT(STRING *str),
+ size_t size)
+{
+ ASSERT_ARGS(gc_ms_allocate_string_storage)
+ size_t new_size;
+ Variable_Size_Pool *pool;
+ char *mem;
+
+ Buffer_buflen(str) = 0;
+ Buffer_bufstart(str) = NULL;
+
+ if (size == 0)
+ return;
+
+ pool = PObj_constant_TEST(str)
+ ? interp->mem_pools->constant_string_pool
+ : interp->mem_pools->memory_pool;
+
+ 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*);
+}
+
+/*
+
+=item C<static void gc_ms_reallocate_string_storage(PARROT_INTERP, STRING *str,
+size_t newsize)>
+
+Reallocate the STRING's buffer memory to the given size. The allocated
+buffer will not shrink. This function sets also C<str-E<gt>strstart> to the
+new buffer location, C<str-E<gt>bufused> is B<not> changed.
+
+=cut
+
+*/
+
+static void
+gc_ms_reallocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str),
+ size_t newsize)
+{
+ ASSERT_ARGS(gc_ms_reallocate_string_storage)
+ size_t copysize;
+ char *mem, *oldmem;
+ size_t new_size, needed, old_size;
+
+ Variable_Size_Pool * const pool =
+ PObj_constant_TEST(str)
+ ? interp->mem_pools->constant_string_pool
+ : interp->mem_pools->memory_pool;
+
+ /* if the requested size is smaller then buflen, we are done */
+ if (newsize <= Buffer_buflen(str))
+ return;
+
+ /*
+ * first check, if we can reallocate:
+ * - 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));
+ needed = new_size - old_size;
+
+ if (pool->top_block->free >= needed
+ && pool->top_block->top == (char *)Buffer_bufstart(str) + old_size) {
+ pool->top_block->free -= needed;
+ pool->top_block->top += needed;
+ Buffer_buflen(str) = new_size - sizeof (void*);
+ return;
+ }
+
+ PARROT_ASSERT(str->bufused <= newsize);
+
+ /* 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 *);
+
+ /* copy mem from strstart, *not* bufstart */
+ oldmem = str->strstart;
+ Buffer_bufstart(str) = (void *)mem;
+ str->strstart = mem;
+ Buffer_buflen(str) = new_size - sizeof (void*);
+
+ /* We shouldn't ever have a 0 from size, but we do. If we can track down
+ * those bugs, this can be removed which would make things cheaper */
+ if (copysize)
+ memcpy(mem, oldmem, copysize);
+}
+
+/*
+
+=item C<void * gc_ms_allocate_fixed_size_storage(PARROT_INTERP, size_t size)>
+
+Allocates a fixed-size chunk of memory for use. This memory is not manually
+managed and needs to be freed with C<gc_ms_free_fixed_size_storage>
+
+*/
+
+PARROT_CANNOT_RETURN_NULL
+void *
+gc_ms_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
+{
+ ASSERT_ARGS(gc_ms_allocate_fixed_size_storage)
+ PMC_Attribute_Pool *pool = NULL;
+ const size_t idx = (size < sizeof (void *)) ? 0 : (size - sizeof (void *));
+
+ /* get the pool directly, if possible, for great speed */
+ if (interp->mem_pools->num_attribs > idx)
+ pool = interp->mem_pools->attrib_pools[idx];
+
+ /* otherwise create it */
+ if (!pool)
+ pool = Parrot_gc_get_attribute_pool(interp, interp->mem_pools, size);
+
+ return Parrot_gc_get_attributes_from_pool(interp, pool);
+}
+
+/*
+
+=item C<void gc_ms_free_fixed_size_storage(PARROT_INTERP, size_t size, void
+*data)>
+
+Manually deallocates fixed size storage allocated with
+C<gc_ms_allocate_fixed_size_storage>
+
+*/
+
+void
+gc_ms_free_fixed_size_storage(PARROT_INTERP, size_t size, ARGMOD(void *data))
+{
+ ASSERT_ARGS(gc_ms_free_fixed_size_storage)
+
+ const size_t item_size = size < sizeof (void *) ? sizeof (void *) : size;
+ const size_t idx = size - sizeof (void *);
+ PMC_Attribute_Pool ** const pools = interp->mem_pools->attrib_pools;
+ gc_ms_free_attributes_from_pool(interp, pools[idx], data);
+}
+
+/*
+
+=item C<static void * gc_ms_allocate_memory_chunk(PARROT_INTERP, size_t size)>
+
+=item C<static void * gc_ms_reallocate_memory_chunk(PARROT_INTERP, void *from,
+size_t size)>
+
+=item C<static void * gc_ms_allocate_memory_chunk_zeroed(PARROT_INTERP, size_t
+size)>
+
+=item C<static void * gc_ms_reallocate_memory_chunk_zeroed(PARROT_INTERP, void
+*data, size_t newsize, size_t oldsize)>
+
+=item C<static void gc_ms_free_memory_chunk(PARROT_INTERP, void *data)>
+
+TODO Write docu.
+
+*/
+
+static void *
+gc_ms_allocate_memory_chunk(PARROT_INTERP, size_t size)
+{
+ ASSERT_ARGS(gc_ms_allocate_memory_chunk)
+ void * const ptr = malloc(size);
+#ifdef DETAIL_MEMORY_DEBUG
+ fprintf(stderr, "Allocated %i at %p\n", size, ptr);
+#endif
+ if (!ptr)
+ PANIC_OUT_OF_MEM(size);
+ return ptr;
+}
+
+static void *
+gc_ms_reallocate_memory_chunk(PARROT_INTERP, ARGFREE(void *from), size_t size)
+{
+ ASSERT_ARGS(gc_ms_reallocate_memory_chunk)
+ void *ptr;
+#ifdef DETAIL_MEMORY_DEBUG
+ fprintf(stderr, "Freed %p (realloc -- %i bytes)\n", from, size);
+#endif
+ if (from)
+ ptr = realloc(from, size);
+ else
+ ptr = calloc(1, size);
+#ifdef DETAIL_MEMORY_DEBUG
+ fprintf(stderr, "Allocated %i at %p\n", size, ptr);
+#endif
+ if (!ptr)
+ PANIC_OUT_OF_MEM(size);
+ return ptr;
+}
+
+static void *
+gc_ms_allocate_memory_chunk_zeroed(PARROT_INTERP, size_t size)
+{
+ ASSERT_ARGS(gc_ms_allocate_memory_chunk_zeroed)
+ void * const ptr = calloc(1, (size_t)size);
+#ifdef DETAIL_MEMORY_DEBUG
+ fprintf(stderr, "Allocated %i at %p\n", size, ptr);
+#endif
+ if (!ptr)
+ PANIC_OUT_OF_MEM(size);
+ return ptr;
+}
+
+static void *
+gc_ms_reallocate_memory_chunk_zeroed(PARROT_INTERP, ARGFREE(void *data),
+ size_t newsize, size_t oldsize)
+{
+ ASSERT_ARGS(gc_ms_reallocate_memory_chunk_zeroed)
+ void * const ptr = realloc(data, newsize);
+ if (newsize > oldsize)
+ memset((char*)ptr + oldsize, 0, newsize - oldsize);
+ return ptr;
+}
+
+static void
+gc_ms_free_memory_chunk(PARROT_INTERP, ARGFREE(void *data))
+{
+ ASSERT_ARGS(gc_ms_free_memory_chunk)
+#ifdef DETAIL_MEMORY_DEBUG
+ fprintf(stderr, "Freed %p\n", data);
+#endif
+ if (data)
+ free(data);
}
@@ -251,7 +1205,7 @@
{
ASSERT_ARGS(gc_ms_trace_active_PMCs)
- if (!Parrot_gc_trace_root(interp, trace))
+ if (!Parrot_gc_trace_root(interp, interp->mem_pools, trace))
return 0;
pt_gc_mark_root_finished(interp);
@@ -262,8 +1216,8 @@
/*
-=item C<static int gc_ms_sweep_cb(PARROT_INTERP, Fixed_Size_Pool *pool, int
-flag, void *arg)>
+=item C<static int gc_ms_sweep_cb(PARROT_INTERP, Memory_Pools *mem_pools,
+Fixed_Size_Pool *pool, int flag, void *arg)>
Sweeps the given pool for the MS collector. This function also ends
the profiling timer, if profiling is enabled. Returns the total number
@@ -274,13 +1228,15 @@
*/
static int
-gc_ms_sweep_cb(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool), int flag,
- ARGMOD(void *arg))
+gc_ms_sweep_cb(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ int flag, ARGMOD(void *arg))
{
ASSERT_ARGS(gc_ms_sweep_cb)
int * const total_free = (int *) arg;
- Parrot_gc_sweep_pool(interp, pool);
+ Parrot_gc_sweep_pool(interp, mem_pools, pool);
*total_free += pool->num_free_objects;
@@ -317,8 +1273,8 @@
/*
-=item C<static void gc_ms_more_traceable_objects(PARROT_INTERP, Fixed_Size_Pool
-*pool)>
+=item C<static void gc_ms_more_traceable_objects(PARROT_INTERP, Memory_Pools
+*mem_pools, Fixed_Size_Pool *pool)>
We're out of traceable objects. First we try a GC run to free some up. If
that doesn't work, allocate a new arena.
@@ -328,35 +1284,35 @@
*/
static void
-gc_ms_more_traceable_objects(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+gc_ms_more_traceable_objects(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
{
ASSERT_ARGS(gc_ms_more_traceable_objects)
if (pool->skip == GC_ONE_SKIP)
pool->skip = GC_NO_SKIP;
- else if (pool->skip == GC_NO_SKIP) {
- Fixed_Size_Arena * const arena = pool->last_Arena;
- if (arena
- && arena->used == arena->total_objects)
- Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
- }
+ else if (pool->skip == GC_NEVER_SKIP
+ || (pool->skip == GC_NO_SKIP
+ && mem_pools->header_allocs_since_last_collect >= GC_SIZE_THRESHOLD))
+ Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
/* requires that num_free_objects be updated in Parrot_gc_mark_and_sweep.
If gc is disabled, then we must check the free list directly. */
#if GC_USE_LAZY_ALLOCATOR
if ((!pool->free_list || pool->num_free_objects < pool->replenish_level)
&& !pool->newfree)
- (*pool->alloc_objects) (interp, pool);
+ (*pool->alloc_objects) (interp, interp->mem_pools, pool);
#else
if (!pool->free_list || pool->num_free_objects < pool->replenish_level)
- (*pool->alloc_objects) (interp, pool);
+ (*pool->alloc_objects) (interp, interp->mem_pools, pool);
#endif
}
/*
-=item C<static void gc_ms_add_free_object(PARROT_INTERP, Fixed_Size_Pool *pool,
-void *to_add)>
+=item C<static void gc_ms_add_free_object(PARROT_INTERP, Memory_Pools
+*mem_pools, Fixed_Size_Pool *pool, void *to_add)>
Add an unused object back to the pool's free list for later reuse. Set
the PObj flags to indicate that the item is free.
@@ -366,8 +1322,10 @@
*/
static void
-gc_ms_add_free_object(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool),
- ARGIN(void *to_add))
+gc_ms_add_free_object(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ ARGIN(void *to_add))
{
ASSERT_ARGS(gc_ms_add_free_object)
GC_MS_PObj_Wrapper *object = (GC_MS_PObj_Wrapper *)to_add;
@@ -380,8 +1338,8 @@
/*
-=item C<static void * gc_ms_get_free_object(PARROT_INTERP, Fixed_Size_Pool
-*pool)>
+=item C<static void * gc_ms_get_free_object(PARROT_INTERP, Memory_Pools
+*mem_pools, Fixed_Size_Pool *pool)>
Free object allocator for the MS garbage collector system. If there are no
free objects, call C<gc_ms_add_free_object> to either free them up with a
@@ -395,7 +1353,9 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
static void *
-gc_ms_get_free_object(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+gc_ms_get_free_object(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
{
ASSERT_ARGS(gc_ms_get_free_object)
PObj *ptr;
@@ -403,7 +1363,7 @@
#if GC_USE_LAZY_ALLOCATOR
if (!free_list && !pool->newfree) {
- (*pool->more_objects)(interp, pool);
+ (*pool->more_objects)(interp, mem_pools, pool);
free_list = (PObj *)pool->free_list;
}
@@ -425,7 +1385,7 @@
#else
/* if we don't have any objects */
if (!free_list) {
- (*pool->more_objects)(interp, pool);
+ (*pool->more_objects)(interp, mem_pools, pool);
free_list = (PObj *)pool->free_list;
}
@@ -444,7 +1404,8 @@
/*
-=item C<static void gc_ms_alloc_objects(PARROT_INTERP, Fixed_Size_Pool *pool)>
+=item C<static void gc_ms_alloc_objects(PARROT_INTERP, Memory_Pools *mem_pools,
+Fixed_Size_Pool *pool)>
New arena allocator function for the MS garbage collector system. Allocates
and initializes a new memory arena in the given pool. Adds all the new
@@ -455,7 +1416,9 @@
*/
static void
-gc_ms_alloc_objects(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+gc_ms_alloc_objects(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
{
ASSERT_ARGS(gc_ms_alloc_objects)
/* Setup memory for the new objects */
@@ -469,7 +1432,7 @@
/* could be mem_internal_allocate too, but calloc is fast */
new_arena->start_objects = mem_internal_allocate_zeroed(size);
- Parrot_append_arena_in_pool(interp, pool, new_arena, size);
+ Parrot_append_arena_in_pool(interp, mem_pools, pool, new_arena, size);
PARROT_ASSERT(pool->last_Arena);
@@ -494,6 +1457,189 @@
if (alloc_size > POOL_MAX_BYTES)
pool->objects_per_alloc = POOL_MAX_BYTES / pool->object_size;
+
+ if (alloc_size > GC_SIZE_THRESHOLD)
+ pool->skip = GC_NEVER_SKIP;
+}
+
+
+/*
+
+=item C<static void gc_ms_block_GC_mark(PARROT_INTERP)>
+
+Blocks the GC from performing its mark phase.
+
+=item C<static void gc_ms_unblock_GC_mark(PARROT_INTERP)>
+
+Unblocks the GC mark.
+
+=item C<static void gc_ms_block_GC_sweep(PARROT_INTERP)>
+
+Blocks the GC from performing its sweep phase.
+
+=item C<static void gc_ms_unblock_GC_sweep(PARROT_INTERP)>
+
+Unblocks GC sweep.
+
+=item C<static unsigned int gc_ms_is_blocked_GC_mark(PARROT_INTERP)>
+
+Determines if the GC mark is currently blocked.
+
+=item C<static unsigned int gc_ms_is_blocked_GC_sweep(PARROT_INTERP)>
+
+Determines if the GC sweep is currently blocked.
+
+=cut
+
+*/
+
+static void
+gc_ms_block_GC_mark(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_block_GC_mark)
+ interp->mem_pools->gc_mark_block_level++;
+ Parrot_shared_gc_block(interp);
+}
+
+static void
+gc_ms_unblock_GC_mark(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_unblock_GC_mark)
+ if (interp->mem_pools->gc_mark_block_level) {
+ interp->mem_pools->gc_mark_block_level--;
+ Parrot_shared_gc_unblock(interp);
+ }
+}
+
+static void
+gc_ms_block_GC_sweep(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_block_GC_sweep)
+ interp->mem_pools->gc_sweep_block_level++;
+}
+
+static void
+gc_ms_unblock_GC_sweep(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_unblock_GC_sweep)
+ if (interp->mem_pools->gc_sweep_block_level)
+ interp->mem_pools->gc_sweep_block_level--;
+}
+
+static unsigned int
+gc_ms_is_blocked_GC_mark(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_is_blocked_GC_mark)
+ return interp->mem_pools->gc_mark_block_level;
+}
+
+static unsigned int
+gc_ms_is_blocked_GC_sweep(PARROT_INTERP)
+{
+ ASSERT_ARGS(gc_ms_is_blocked_GC_sweep)
+ return interp->mem_pools->gc_sweep_block_level;
+}
+
+/*
+
+=item C<static size_t gc_ms_get_gc_info(PARROT_INTERP, Interpinfo_enum which)>
+
+Get information about MS GC.
+
+=cut
+
+*/
+
+static size_t
+gc_ms_get_gc_info(PARROT_INTERP, Interpinfo_enum which)
+{
+ ASSERT_ARGS(gc_ms_get_gc_info)
+
+ Memory_Pools * const mem_pools = interp->mem_pools;
+ switch (which) {
+ case TOTAL_MEM_ALLOC:
+ return mem_pools->memory_allocated;
+ case GC_MARK_RUNS:
+ return mem_pools->gc_mark_runs;
+ case GC_COLLECT_RUNS:
+ return mem_pools->gc_collect_runs;
+ case ACTIVE_PMCS:
+ return mem_pools->pmc_pool->total_objects -
+ mem_pools->pmc_pool->num_free_objects;
+ case ACTIVE_BUFFERS:
+ return gc_ms_active_sized_buffers(interp, mem_pools);
+ case TOTAL_PMCS:
+ return mem_pools->pmc_pool->total_objects;
+ case TOTAL_BUFFERS:
+ return gc_ms_total_sized_buffers(interp, mem_pools);
+ case HEADER_ALLOCS_SINCE_COLLECT:
+ return mem_pools->header_allocs_since_last_collect;
+ case MEM_ALLOCS_SINCE_COLLECT:
+ return mem_pools->mem_allocs_since_last_collect;
+ case TOTAL_COPIED:
+ return mem_pools->memory_collected;
+ case IMPATIENT_PMCS:
+ return mem_pools->num_early_gc_PMCs;
+ case GC_LAZY_MARK_RUNS:
+ return mem_pools->gc_lazy_mark_runs;
+ case EXTENDED_PMCS:
+ default:
+ break;
+ }
+ return 0;
+}
+
+/*
+
+=item C<static int gc_ms_active_sized_buffers(PARROT_INTERP, Memory_Pools *
+const mem_pools)>
+
+Returns the number of actively used sized buffers.
+
+=cut
+
+*/
+
+static int
+gc_ms_active_sized_buffers(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+{
+ ASSERT_ARGS(gc_ms_active_sized_buffers)
+ int j, ret = 0;
+ for (j = 0; j < (INTVAL)mem_pools->num_sized; j++) {
+ Fixed_Size_Pool * const header_pool =
+ mem_pools->sized_header_pools[j];
+ if (header_pool)
+ ret += header_pool->total_objects -
+ header_pool->num_free_objects;
+ }
+ return ret;
+}
+
+/*
+
+=item C<static int gc_ms_total_sized_buffers(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
+
+Returns the total number of sized buffers that we are managing.
+
+=cut
+
+*/
+
+static int
+gc_ms_total_sized_buffers(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+{
+ ASSERT_ARGS(gc_ms_total_sized_buffers)
+ int j, ret = 0;
+ for (j = 0; j < (INTVAL)mem_pools->num_sized; j++) {
+ Fixed_Size_Pool * const header_pool =
+ mem_pools->sized_header_pools[j];
+ if (header_pool)
+ ret += header_pool->total_objects;
+ }
+ return ret;
}
/*
Modified: branches/ops_pct/src/gc/gc_private.h
==============================================================================
--- branches/ops_pct/src/gc/gc_private.h Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/gc_private.h Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -45,6 +45,7 @@
#define UNITS_PER_ALLOC_GROWTH_FACTOR 1.75
#define POOL_MAX_BYTES 65536 * 128
+#define GC_SIZE_THRESHOLD 1024 * 1024
#define PMC_HEADERS_PER_ALLOC 4096 * 10 / sizeof (PMC)
#define BUFFER_HEADERS_PER_ALLOC 4096 / sizeof (Buffer)
@@ -91,7 +92,8 @@
typedef enum _gc_skip_type_enum {
GC_NO_SKIP = 0,
GC_ONE_SKIP,
- GC_ALWAYS_SKIP
+ GC_ALWAYS_SKIP,
+ GC_NEVER_SKIP
} gc_skip_type_enum;
typedef struct GC_Subsystem {
@@ -100,10 +102,57 @@
gc_sys_type_enum sys_type;
/** Function hooks that each subsystem MUST provide */
- void (*do_gc_mark)(PARROT_INTERP, UINTVAL flags);
void (*finalize_gc_system) (PARROT_INTERP);
+ void (*destroy_child_interp)(Interp *dest_interp, Interp *child_interp);
+
+ void (*do_gc_mark)(PARROT_INTERP, UINTVAL flags);
+ void (*compact_string_pool)(PARROT_INTERP);
+
+ void (*mark_special)(PARROT_INTERP, PMC *);
+ void (*pmc_needs_early_collection)(PARROT_INTERP, PMC *);
+
void (*init_pool)(PARROT_INTERP, struct Fixed_Size_Pool *);
+ PMC* (*allocate_pmc_header)(PARROT_INTERP, UINTVAL flags);
+ void (*free_pmc_header)(PARROT_INTERP, PMC *);
+
+ STRING* (*allocate_string_header)(PARROT_INTERP, UINTVAL flags);
+ void (*free_string_header)(PARROT_INTERP, STRING*);
+
+ Buffer* (*allocate_bufferlike_header)(PARROT_INTERP, size_t size);
+ void (*free_bufferlike_header)(PARROT_INTERP, Buffer*, size_t size);
+
+ void* (*allocate_pmc_attributes)(PARROT_INTERP, PMC *);
+ void (*free_pmc_attributes)(PARROT_INTERP, PMC *);
+
+ void (*allocate_string_storage)(PARROT_INTERP, STRING *str, size_t size);
+ void (*reallocate_string_storage)(PARROT_INTERP, STRING *str, size_t size);
+
+ void (*allocate_buffer_storage)(PARROT_INTERP, ARGMOD(Buffer *buffer), size_t nsize);
+ void (*reallocate_buffer_storage)(PARROT_INTERP, ARGMOD(Buffer *buffer), size_t newsize);
+
+ void* (*allocate_fixed_size_storage)(PARROT_INTERP, size_t size);
+ void (*free_fixed_size_storage)(PARROT_INTERP, size_t size, void *);
+
+ void* (*allocate_memory_chunk)(PARROT_INTERP, size_t size);
+ void* (*reallocate_memory_chunk)(PARROT_INTERP, void *data, size_t newsize);
+ void* (*allocate_memory_chunk_with_interior_pointers)(PARROT_INTERP, size_t size);
+ void* (*reallocate_memory_chunk_with_interior_pointers)(PARROT_INTERP, void *data,
+ size_t oldsize, size_t newsize);
+ void (*free_memory_chunk)(PARROT_INTERP, void *data);
+
+ void (*block_mark)(PARROT_INTERP);
+ void (*unblock_mark)(PARROT_INTERP);
+ unsigned int (*is_blocked_mark)(PARROT_INTERP);
+
+ void (*block_sweep)(PARROT_INTERP);
+ void (*unblock_sweep)(PARROT_INTERP);
+ unsigned int (*is_blocked_sweep)(PARROT_INTERP);
+
+ /* Introspection. Each GC must provide this function. Even with fake data */
+ /* Return by value to simplify memory management */
+ size_t (*get_gc_info)(PARROT_INTERP, Interpinfo_enum);
+
/*Function hooks that GC systems can CHOOSE to provide if they need them
*These will be called via the GC API functions Parrot_gc_func_name
*e.g. read barrier && write barrier hooks can go here later ...*/
@@ -126,7 +175,7 @@
typedef struct Variable_Size_Pool {
Memory_Block *top_block;
- void (*compact)(PARROT_INTERP, struct Variable_Size_Pool *);
+ void (*compact)(PARROT_INTERP, struct Memory_Pools *const, struct Variable_Size_Pool *);
size_t minimum_block_size;
size_t total_allocated; /* total bytes allocated to this pool */
size_t guaranteed_reclaimable; /* bytes that can definitely be reclaimed*/
@@ -211,21 +260,20 @@
} Fixed_Size_Pool;
typedef struct Memory_Pools {
- Variable_Size_Pool *memory_pool;
- Variable_Size_Pool *constant_string_pool;
- struct Fixed_Size_Pool *string_header_pool;
- struct Fixed_Size_Pool *pmc_pool;
- struct Fixed_Size_Pool *constant_pmc_pool;
- struct Fixed_Size_Pool *constant_string_header_pool;
- struct Fixed_Size_Pool **sized_header_pools;
- size_t num_sized;
+ Variable_Size_Pool *memory_pool;
+ Variable_Size_Pool *constant_string_pool;
+ Fixed_Size_Pool *string_header_pool;
+ Fixed_Size_Pool *pmc_pool;
+ Fixed_Size_Pool *constant_pmc_pool;
+ Fixed_Size_Pool *constant_string_header_pool;
+ Fixed_Size_Pool **sized_header_pools;
+ size_t num_sized;
PMC_Attribute_Pool **attrib_pools;
- size_t num_attribs;
-
+ size_t num_attribs;
/** statistics for GC **/
- size_t gc_mark_runs; /* Number of times we've done a mark run*/
+ size_t gc_mark_runs; /* Number of times we've done a mark run */
size_t gc_lazy_mark_runs; /* Number of successful lazy mark runs */
size_t gc_collect_runs; /* Number of times we've done a memory
compaction */
@@ -233,7 +281,7 @@
* allocations from the
* system since the last
* compaction run */
- size_t header_allocs_since_last_collect; /* The number of header
+ size_t header_allocs_since_last_collect; /* The size of header
* blocks allocated from
* the system since the last
* GC run */
@@ -247,33 +295,33 @@
during collection */
UINTVAL num_early_gc_PMCs; /* how many PMCs want immediate destruction */
UINTVAL num_early_PMCs_seen; /* how many such PMCs has GC seen */
- PMC* gc_mark_start; /* first PMC marked during a GC run */
- PMC* gc_mark_ptr; /* last PMC marked during a GC run */
- PMC* gc_trace_ptr; /* last PMC trace_children was called on */
- int lazy_gc; /* flag that indicates whether we should stop
+ PMC *gc_mark_start; /* first PMC marked during a GC run */
+ PMC *gc_mark_ptr; /* last PMC marked during a GC run */
+ PMC *gc_trace_ptr; /* last PMC trace_children was called on */
+ int lazy_gc; /* flag that indicates whether we should stop
when we've seen all impatient PMCs */
- /*
- * GC blocking
- */
+
+ /* GC blocking */
UINTVAL gc_mark_block_level; /* How many outstanding GC block
requests are there? */
UINTVAL gc_sweep_block_level; /* How many outstanding GC block
requests are there? */
- /*
- * private data for the GC subsystem
- */
- void * gc_private; /* gc subsystem data */
-} Memory_Pools;
+ /* private data for the GC subsystem */
+ void *gc_private; /* gc subsystem data */
+} Memory_Pools;
/* HEADERIZER BEGIN: src/gc/system.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-void trace_system_areas(PARROT_INTERP)
- __attribute__nonnull__(1);
+void trace_system_areas(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
#define ASSERT_ARGS_trace_system_areas __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/gc/system.c */
@@ -290,25 +338,35 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-Fixed_Size_Pool * get_bufferlike_pool(PARROT_INTERP, size_t buffer_size)
- __attribute__nonnull__(1);
+Fixed_Size_Pool * get_bufferlike_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t buffer_size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_IGNORABLE_RESULT
int /*@alt void@*/
header_pools_iterate_callback(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
int flag,
ARGIN_NULLOK(void *arg),
NOTNULL(pool_iter_fn func))
__attribute__nonnull__(1)
- __attribute__nonnull__(4);
-
-void initialize_fixed_size_pools(PARROT_INTERP)
- __attribute__nonnull__(1);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(5);
-void mark_special(PARROT_INTERP, ARGIN(PMC *obj))
+void initialize_fixed_size_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+void mark_special(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGIN(PMC *obj))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
void Parrot_add_to_free_list(PARROT_INTERP,
ARGMOD(Fixed_Size_Pool *pool),
ARGMOD(Fixed_Size_Arena *arena))
@@ -319,12 +377,14 @@
FUNC_MODIFIES(*arena);
void Parrot_append_arena_in_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
ARGMOD(Fixed_Size_Pool *pool),
ARGMOD(Fixed_Size_Arena *new_arena),
size_t size)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*pool)
FUNC_MODIFIES(*new_arena);
@@ -335,8 +395,10 @@
PARROT_CANNOT_RETURN_NULL
PMC_Attribute_Pool * Parrot_gc_get_attribute_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
size_t attrib_size)
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
void * Parrot_gc_get_attributes_from_pool(PARROT_INTERP,
@@ -346,33 +408,47 @@
FUNC_MODIFIES(* pool);
void Parrot_gc_initialize_fixed_size_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
size_t init_num_pools)
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-void Parrot_gc_run_init(PARROT_INTERP)
- __attribute__nonnull__(1);
+void Parrot_gc_run_init(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-void Parrot_gc_sweep_pool(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+void Parrot_gc_sweep_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
-int Parrot_gc_trace_root(PARROT_INTERP, Parrot_gc_trace_type trace)
- __attribute__nonnull__(1);
+int Parrot_gc_trace_root(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ Parrot_gc_trace_type trace)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
#define ASSERT_ARGS_contained_in_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(ptr))
#define ASSERT_ARGS_get_bufferlike_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_header_pools_iterate_callback __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(func))
#define ASSERT_ARGS_initialize_fixed_size_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_mark_special __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(obj))
#define ASSERT_ARGS_Parrot_add_to_free_list __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -380,52 +456,36 @@
, PARROT_ASSERT_ARG(arena))
#define ASSERT_ARGS_Parrot_append_arena_in_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(new_arena))
#define ASSERT_ARGS_Parrot_gc_clear_live_bits __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_Parrot_gc_get_attribute_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , 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(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_Parrot_gc_run_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_Parrot_gc_sweep_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_Parrot_gc_trace_root __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/gc/mark_sweep.c */
-/* HEADERIZER BEGIN: src/gc/pools.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-Fixed_Size_Pool * get_bufferlike_pool(PARROT_INTERP, size_t buffer_size)
- __attribute__nonnull__(1);
-
-PARROT_IGNORABLE_RESULT
-int /*@alt void@*/
-header_pools_iterate_callback(PARROT_INTERP,
- int flag,
- ARGIN_NULLOK(void *arg),
- NOTNULL(pool_iter_fn func))
- __attribute__nonnull__(1)
- __attribute__nonnull__(4);
-
-void initialize_fixed_size_pools(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/gc/pools.c */
/* HEADERIZER BEGIN: src/gc/alloc_resources.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -436,11 +496,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_PURE_FUNCTION
-PARROT_WARN_UNUSED_RESULT
-size_t aligned_size(ARGIN(const Buffer *buffer), size_t len)
- __attribute__nonnull__(1);
-
PARROT_CONST_FUNCTION
PARROT_WARN_UNUSED_RESULT
size_t aligned_string_size(size_t len);
@@ -453,21 +508,28 @@
FUNC_MODIFIES(* pobj)
FUNC_MODIFIES(* pool);
-void compact_pool(PARROT_INTERP, ARGMOD(Variable_Size_Pool *pool))
+void compact_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGMOD(Variable_Size_Pool *pool))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*pool);
-void initialize_var_size_pools(PARROT_INTERP)
- __attribute__nonnull__(1);
+void initialize_var_size_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
void * mem_allocate(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
size_t size,
ARGMOD(Variable_Size_Pool *pool))
__attribute__nonnull__(1)
- __attribute__nonnull__(3)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*pool);
void merge_pools(
@@ -478,26 +540,58 @@
FUNC_MODIFIES(*dest)
FUNC_MODIFIES(*source);
+void Parrot_gc_destroy_header_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void Parrot_gc_destroy_memory_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void Parrot_gc_merge_memory_pools(
+ ARGMOD(Interp *dest_interp),
+ ARGIN(Memory_Pools * const dest_arena),
+ ARGIN(Memory_Pools * const source_arena))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*dest_interp);
+
#define ASSERT_ARGS_aligned_mem __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(buffer) \
, PARROT_ASSERT_ARG(mem))
-#define ASSERT_ARGS_aligned_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(buffer))
#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))
#define ASSERT_ARGS_compact_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_initialize_var_size_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_mem_allocate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_merge_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(dest) \
, PARROT_ASSERT_ARG(source))
+#define ASSERT_ARGS_Parrot_gc_destroy_header_pools \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
+#define ASSERT_ARGS_Parrot_gc_destroy_memory_pools \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
+#define ASSERT_ARGS_Parrot_gc_merge_memory_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(dest_interp) \
+ , PARROT_ASSERT_ARG(dest_arena) \
+ , PARROT_ASSERT_ARG(source_arena))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/gc/alloc_resources.c */
@@ -505,9 +599,67 @@
/* HEADERIZER BEGIN: src/gc/gc_ms.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+PARROT_CANNOT_RETURN_NULL
+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)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*str);
+
+void gc_ms_compact_memory_pool(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+void gc_ms_free_fixed_size_storage(PARROT_INTERP,
+ size_t size,
+ ARGMOD(void *data))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*data);
+
+void gc_ms_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
+
+void gc_ms_pmc_needs_early_collection(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
+
void Parrot_gc_ms_init(PARROT_INTERP)
__attribute__nonnull__(1);
+#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))
+#define ASSERT_ARGS_gc_ms_compact_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_free_fixed_size_storage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(data))
+#define ASSERT_ARGS_gc_ms_free_pmc_attributes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_gc_ms_pmc_needs_early_collection \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pmc))
#define ASSERT_ARGS_Parrot_gc_ms_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -526,8 +678,6 @@
#endif /* PARROT_GC_PRIVATE_H_GUARD */
-
-
/*
* Local variables:
* c-file-style: "parrot"
Modified: branches/ops_pct/src/gc/mark_sweep.c
==============================================================================
--- branches/ops_pct/src/gc/mark_sweep.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/mark_sweep.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -32,31 +32,31 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
static void free_buffer(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool),
ARGMOD(Buffer *b))
__attribute__nonnull__(2)
__attribute__nonnull__(3)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*pool)
FUNC_MODIFIES(*b);
-static void free_buffer_malloc(SHIM_INTERP,
- SHIM(Fixed_Size_Pool *pool),
- ARGMOD(Buffer *b))
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*b);
-
static void free_pmc_in_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
SHIM(Fixed_Size_Pool *pool),
ARGMOD(PObj *p))
__attribute__nonnull__(1)
- __attribute__nonnull__(3)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4)
FUNC_MODIFIES(*p);
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static Fixed_Size_Pool * new_bufferlike_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
size_t actual_buffer_size)
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
@@ -71,8 +71,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static Fixed_Size_Pool * new_string_pool(PARROT_INTERP, INTVAL constant)
- __attribute__nonnull__(1);
+static Fixed_Size_Pool * new_string_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ INTVAL constant)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void Parrot_gc_allocate_new_attributes_arena(PARROT_INTERP,
ARGMOD(PMC_Attribute_Pool *pool))
@@ -86,20 +89,22 @@
__attribute__nonnull__(1);
#define ASSERT_ARGS_free_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pool) \
+ PARROT_ASSERT_ARG(mem_pools) \
+ , PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_free_buffer_malloc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(b))
#define ASSERT_ARGS_free_pmc_in_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(p))
#define ASSERT_ARGS_new_bufferlike_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_new_fixed_size_obj_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_new_pmc_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_new_string_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ 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(interp) \
@@ -114,7 +119,7 @@
/*
-=item C<void Parrot_gc_run_init(PARROT_INTERP)>
+=item C<void Parrot_gc_run_init(PARROT_INTERP, Memory_Pools * const mem_pools)>
Prepares the collector for a mark & sweep GC run. Initializes the various
fields in the Memory_Pools structure that need to be zeroed out prior to the
@@ -125,10 +130,10 @@
*/
void
-Parrot_gc_run_init(PARROT_INTERP)
+Parrot_gc_run_init(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(Parrot_gc_run_init)
- Memory_Pools * const mem_pools = interp->mem_pools;
mem_pools->gc_trace_ptr = NULL;
mem_pools->gc_mark_start = NULL;
@@ -137,7 +142,8 @@
/*
-=item C<int Parrot_gc_trace_root(PARROT_INTERP, Parrot_gc_trace_type trace)>
+=item C<int Parrot_gc_trace_root(PARROT_INTERP, Memory_Pools * const mem_pools,
+Parrot_gc_trace_type trace)>
Traces the root set with behavior that's dependent on the flags passed.
Returns 0 if it's a lazy GC run and all objects that need timely destruction
@@ -166,17 +172,18 @@
*/
int
-Parrot_gc_trace_root(PARROT_INTERP, Parrot_gc_trace_type trace)
+Parrot_gc_trace_root(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ Parrot_gc_trace_type trace)
{
ASSERT_ARGS(Parrot_gc_trace_root)
- Memory_Pools * const mem_pools = interp->mem_pools;
PObj *obj;
/* note: adding locals here did cause increased GC runs */
mark_context_start();
if (trace == GC_TRACE_SYSTEM_ONLY) {
- trace_system_areas(interp);
+ trace_system_areas(interp, mem_pools);
return 0;
}
@@ -235,7 +242,7 @@
Parrot_IOData_mark(interp, interp->piodata);
if (trace == GC_TRACE_FULL)
- trace_system_areas(interp);
+ trace_system_areas(interp, mem_pools);
/* quick check to see if we have already marked all impatient PMCs. If we
have, return 0 and exit here. This will alert other parts of the GC
@@ -250,7 +257,8 @@
/*
-=item C<void Parrot_gc_sweep_pool(PARROT_INTERP, Fixed_Size_Pool *pool)>
+=item C<void Parrot_gc_sweep_pool(PARROT_INTERP, Memory_Pools * const mem_pools,
+Fixed_Size_Pool *pool)>
Puts any buffers/PMCs that are marked as "dead" or "black" onto the pool
free list.
@@ -260,7 +268,9 @@
*/
void
-Parrot_gc_sweep_pool(PARROT_INTERP, ARGMOD(Fixed_Size_Pool *pool))
+Parrot_gc_sweep_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool))
{
ASSERT_ARGS(Parrot_gc_sweep_pool)
@@ -269,8 +279,6 @@
gc_object_fn_type gc_object = pool->gc_object;
UINTVAL total_used = 0;
const UINTVAL object_size = pool->object_size;
- UINTVAL i;
-
/* Run through all the PObj header pools and mark */
for (cur_arena = pool->last_Arena; cur_arena; cur_arena = cur_arena->prev) {
@@ -306,9 +314,9 @@
}
if (gc_object)
- gc_object(interp, pool, b);
+ gc_object(interp, mem_pools, pool, b);
- pool->add_free_object(interp, pool, b);
+ pool->add_free_object(interp, mem_pools, pool, b);
}
next:
b = (PObj *)((char *)b + object_size);
@@ -353,7 +361,8 @@
/*
-=item C<void mark_special(PARROT_INTERP, PMC *obj)>
+=item C<void mark_special(PARROT_INTERP, Memory_Pools * const mem_pools, PMC
+*obj)>
Handles marking a PMC. Specifically, calls the VTABLE_mark for that PMC
if one is present. Also handles marking shared PMCs.
@@ -363,7 +372,9 @@
*/
void
-mark_special(PARROT_INTERP, ARGIN(PMC *obj))
+mark_special(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGIN(PMC *obj))
{
ASSERT_ARGS(mark_special)
@@ -382,8 +393,8 @@
interp = PMC_sync(obj)->owner;
PARROT_ASSERT(interp);
- if (!interp->mem_pools->gc_mark_ptr)
- interp->mem_pools->gc_mark_ptr = obj;
+ if (!mem_pools->gc_mark_ptr)
+ mem_pools->gc_mark_ptr = obj;
}
PObj_get_FLAGS(obj) |= PObj_custom_GC_FLAG;
@@ -451,7 +462,6 @@
ARGMOD(Fixed_Size_Arena *arena))
{
ASSERT_ARGS(Parrot_add_to_free_list)
- UINTVAL i;
void *object;
const UINTVAL num_objects = pool->objects_per_alloc;
@@ -480,8 +490,8 @@
/*
-=item C<void Parrot_append_arena_in_pool(PARROT_INTERP, Fixed_Size_Pool *pool,
-Fixed_Size_Arena *new_arena, size_t size)>
+=item C<void Parrot_append_arena_in_pool(PARROT_INTERP, Memory_Pools * const
+mem_pools, Fixed_Size_Pool *pool, Fixed_Size_Arena *new_arena, size_t size)>
Insert the new arena into the pool's structure. Arenas are stored in a
linked list, so add the new arena to the list. Set information in the
@@ -493,8 +503,9 @@
void
Parrot_append_arena_in_pool(PARROT_INTERP,
- ARGMOD(Fixed_Size_Pool *pool),
- ARGMOD(Fixed_Size_Arena *new_arena), size_t size)
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ ARGMOD(Fixed_Size_Arena *new_arena), size_t size)
{
ASSERT_ARGS(Parrot_append_arena_in_pool)
@@ -516,7 +527,7 @@
new_arena->prev->next = new_arena;
pool->last_Arena = new_arena;
- interp->mem_pools->header_allocs_since_last_collect++;
+ mem_pools->header_allocs_since_last_collect += size;
}
/*
@@ -554,8 +565,8 @@
/*
-=item C<static void free_pmc_in_pool(PARROT_INTERP, Fixed_Size_Pool *pool, PObj
-*p)>
+=item C<static void free_pmc_in_pool(PARROT_INTERP, Memory_Pools *mem_pools,
+Fixed_Size_Pool *pool, PObj *p)>
Frees a PMC that is no longer being used. Calls a custom C<destroy> VTABLE
method if one is available.
@@ -565,7 +576,9 @@
*/
static void
-free_pmc_in_pool(PARROT_INTERP, SHIM(Fixed_Size_Pool *pool),
+free_pmc_in_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ SHIM(Fixed_Size_Pool *pool),
ARGMOD(PObj *p))
{
ASSERT_ARGS(free_pmc_in_pool)
@@ -573,7 +586,6 @@
/* TODO collect objects with finalizers */
if (PObj_needs_early_gc_TEST(p)) {
- Memory_Pools * const mem_pools = interp->mem_pools;
--mem_pools->num_early_gc_PMCs;
}
@@ -583,8 +595,8 @@
/*
-=item C<static Fixed_Size_Pool * new_bufferlike_pool(PARROT_INTERP, size_t
-actual_buffer_size)>
+=item C<static Fixed_Size_Pool * new_bufferlike_pool(PARROT_INTERP, Memory_Pools
+* const mem_pools, size_t actual_buffer_size)>
Creates a new pool for buffer-like structures. This is called from
C<get_bufferlike_pool()>, and should probably not be called directly.
@@ -596,7 +608,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static Fixed_Size_Pool *
-new_bufferlike_pool(PARROT_INTERP, size_t actual_buffer_size)
+new_bufferlike_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t actual_buffer_size)
{
ASSERT_ARGS(new_bufferlike_pool)
const int num_headers = BUFFER_HEADERS_PER_ALLOC;
@@ -607,7 +621,7 @@
pool->gc_object = (gc_object_fn_type)free_buffer;
- pool->mem_pool = interp->mem_pools->memory_pool;
+ pool->mem_pool = mem_pools->memory_pool;
(interp->gc_sys->init_pool)(interp, pool);
return pool;
}
@@ -649,8 +663,8 @@
/*
-=item C<static Fixed_Size_Pool * new_string_pool(PARROT_INTERP, INTVAL
-constant)>
+=item C<static Fixed_Size_Pool * new_string_pool(PARROT_INTERP, Memory_Pools *
+const mem_pools, INTVAL constant)>
Creates a new pool for C<STRING>s and returns it. This calls
C<get_bufferlike_pool> internally, which in turn calls C<new_bufferlike_pool>.
@@ -662,17 +676,19 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static Fixed_Size_Pool *
-new_string_pool(PARROT_INTERP, INTVAL constant)
+new_string_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ INTVAL constant)
{
ASSERT_ARGS(new_string_pool)
Fixed_Size_Pool *pool;
if (constant) {
- pool = new_bufferlike_pool(interp, sizeof (STRING));
+ pool = new_bufferlike_pool(interp, mem_pools, sizeof (STRING));
pool->gc_object = NULL;
- pool->mem_pool = interp->mem_pools->constant_string_pool;
+ pool->mem_pool = mem_pools->constant_string_pool;
}
else
- pool = get_bufferlike_pool(interp, sizeof (STRING));
+ pool = get_bufferlike_pool(interp, mem_pools, sizeof (STRING));
pool->objects_per_alloc = STRING_HEADERS_PER_ALLOC;
@@ -681,44 +697,8 @@
/*
-=item C<static void free_buffer_malloc(PARROT_INTERP, Fixed_Size_Pool *pool,
-Buffer *b)>
-
-Frees the given buffer, returning the storage space to the operating system
-and removing it from Parrot's memory management system. If the buffer is COW,
-The buffer is not freed if the reference count is greater then 1.
-
-=cut
-
-*/
-
-static void
-free_buffer_malloc(SHIM_INTERP, SHIM(Fixed_Size_Pool *pool),
- ARGMOD(Buffer *b))
-{
- ASSERT_ARGS(free_buffer_malloc)
- /* free allocated space at (int *)bufstart - 1, but not if it used COW or is
- * external */
- Buffer_buflen(b) = 0;
-
- if (!Buffer_bufstart(b) || PObj_is_external_or_free_TESTALL(b))
- return;
-
- if (PObj_COW_TEST(b)) {
- INTVAL * const refcount = Buffer_bufrefcountptr(b);
-
- if (--(*refcount) == 0) {
- mem_sys_free(refcount); /* the actual bufstart */
- }
- }
- else
- mem_sys_free(Buffer_bufrefcountptr(b));
-}
-
-/*
-
-=item C<static void free_buffer(PARROT_INTERP, Fixed_Size_Pool *pool, Buffer
-*b)>
+=item C<static void free_buffer(PARROT_INTERP, Memory_Pools *mem_pools,
+Fixed_Size_Pool *pool, Buffer *b)>
Frees a buffer, returning it to the memory pool for Parrot to possibly
reuse later.
@@ -728,7 +708,10 @@
*/
static void
-free_buffer(SHIM_INTERP, ARGMOD(Fixed_Size_Pool *pool), ARGMOD(Buffer *b))
+free_buffer(SHIM_INTERP,
+ ARGIN(Memory_Pools *mem_pools),
+ ARGMOD(Fixed_Size_Pool *pool),
+ ARGMOD(Buffer *b))
{
ASSERT_ARGS(free_buffer)
Variable_Size_Pool * const mem_pool = (Variable_Size_Pool *)pool->mem_pool;
@@ -748,8 +731,8 @@
/*
-=item C<Fixed_Size_Pool * get_bufferlike_pool(PARROT_INTERP, size_t
-buffer_size)>
+=item C<Fixed_Size_Pool * get_bufferlike_pool(PARROT_INTERP, Memory_Pools *
+const mem_pools, size_t buffer_size)>
Makes and return a bufferlike header pool for objects of a given size. If a
pool for objects of that size already exists, no new pool will be created and
@@ -762,11 +745,13 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
Fixed_Size_Pool *
-get_bufferlike_pool(PARROT_INTERP, size_t buffer_size)
+get_bufferlike_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t buffer_size)
{
ASSERT_ARGS(get_bufferlike_pool)
- Fixed_Size_Pool **sized_pools = interp->mem_pools->sized_header_pools;
- const UINTVAL num_old = interp->mem_pools->num_sized;
+ Fixed_Size_Pool **sized_pools = mem_pools->sized_header_pools;
+ const UINTVAL num_old = mem_pools->num_sized;
const UINTVAL idx = GET_SIZED_POOL_IDX(buffer_size);
/* Expands the array of sized resource pools, if necessary */
@@ -780,19 +765,20 @@
num_new * sizeof (void *));
memset(sized_pools + num_old, 0, sizeof (void *) * (num_new - num_old));
- interp->mem_pools->sized_header_pools = sized_pools;
- interp->mem_pools->num_sized = num_new;
+ mem_pools->sized_header_pools = sized_pools;
+ mem_pools->num_sized = num_new;
}
if (sized_pools[idx] == NULL)
- sized_pools[idx] = new_bufferlike_pool(interp, buffer_size);
+ sized_pools[idx] = new_bufferlike_pool(interp, mem_pools, buffer_size);
return sized_pools[idx];
}
/*
-=item C<void initialize_fixed_size_pools(PARROT_INTERP)>
+=item C<void initialize_fixed_size_pools(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
The initialization routine for the interpreter's header pools. Initializes
pools for string headers, constant string headers, buffers, PMCs and
@@ -806,13 +792,13 @@
*/
void
-initialize_fixed_size_pools(PARROT_INTERP)
+initialize_fixed_size_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(initialize_fixed_size_pools)
- Memory_Pools * const mem_pools = interp->mem_pools;
/* Init the constant string header pool */
- mem_pools->constant_string_header_pool = new_string_pool(interp, 1);
+ mem_pools->constant_string_header_pool = new_string_pool(interp, mem_pools, 1);
mem_pools->constant_string_header_pool->name = "constant_string_header";
mem_pools->constant_string_header_pool->skip = GC_ALWAYS_SKIP;
@@ -823,7 +809,7 @@
* new_*_header */
/* Init the string header pool */
- mem_pools->string_header_pool = new_string_pool(interp, 0);
+ mem_pools->string_header_pool = new_string_pool(interp, mem_pools, 0);
mem_pools->string_header_pool->name = "string_header";
/* Init the PMC header pool */
@@ -841,8 +827,8 @@
/*
-=item C<int header_pools_iterate_callback(PARROT_INTERP, int flag, void *arg,
-pool_iter_fn func)>
+=item C<int header_pools_iterate_callback(PARROT_INTERP, Memory_Pools * const
+mem_pools, int flag, void *arg, pool_iter_fn func)>
Iterates through header pools, invoking the given callback function on each
pool in the list matching the given criteria. Determines which pools to iterate
@@ -881,18 +867,19 @@
PARROT_IGNORABLE_RESULT
int
-header_pools_iterate_callback(PARROT_INTERP, int flag, ARGIN_NULLOK(void *arg),
+header_pools_iterate_callback(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ int flag, ARGIN_NULLOK(void *arg),
NOTNULL(pool_iter_fn func))
{
ASSERT_ARGS(header_pools_iterate_callback)
- Memory_Pools * const mem_pools = interp->mem_pools;
if (flag & POOL_PMC) {
Fixed_Size_Pool *pool = flag & POOL_CONST
? mem_pools->constant_pmc_pool
: mem_pools->pmc_pool;
- const int ret_val = (func)(interp, pool,
+ const int ret_val = (func)(interp, mem_pools, pool,
flag & (POOL_PMC | POOL_CONST) , arg);
if (ret_val)
@@ -903,7 +890,7 @@
INTVAL i;
if (flag & POOL_CONST) {
- const int ret_val = (func)(interp,
+ const int ret_val = (func)(interp, mem_pools,
mem_pools->constant_string_header_pool,
POOL_BUFFER | POOL_CONST, arg);
@@ -911,11 +898,11 @@
return ret_val;
}
- for (i = interp->mem_pools->num_sized - 1; i >= 0; --i) {
+ for (i = mem_pools->num_sized - 1; i >= 0; --i) {
Fixed_Size_Pool * const pool = mem_pools->sized_header_pools[i];
if (pool) {
- const int ret_val = (func)(interp, pool, POOL_BUFFER, arg);
+ const int ret_val = (func)(interp, mem_pools, pool, POOL_BUFFER, arg);
if (ret_val)
return ret_val;
}
@@ -940,13 +927,13 @@
Allocate a new arena of fixed-sized data structures for the given pool.
-=item C<void Parrot_gc_initialize_fixed_size_pools(PARROT_INTERP, size_t
-init_num_pools)>
+=item C<void Parrot_gc_initialize_fixed_size_pools(PARROT_INTERP, Memory_Pools *
+const mem_pools, size_t init_num_pools)>
Initialize the pools (zeroize)
-=item C<PMC_Attribute_Pool * Parrot_gc_get_attribute_pool(PARROT_INTERP, size_t
-attrib_size)>
+=item C<PMC_Attribute_Pool * Parrot_gc_get_attribute_pool(PARROT_INTERP,
+Memory_Pools * const 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.
@@ -1001,9 +988,8 @@
Parrot_gc_allocate_new_attributes_arena(PARROT_INTERP, ARGMOD(PMC_Attribute_Pool *pool))
{
ASSERT_ARGS(Parrot_gc_allocate_new_attributes_arena)
- PMC_Attribute_Free_List *list, *next, *first;
+ PMC_Attribute_Free_List *next;
- size_t i;
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;
@@ -1035,10 +1021,11 @@
}
void
-Parrot_gc_initialize_fixed_size_pools(PARROT_INTERP, size_t init_num_pools)
+Parrot_gc_initialize_fixed_size_pools(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t init_num_pools)
{
ASSERT_ARGS(Parrot_gc_initialize_fixed_size_pools)
- Memory_Pools * const mem_pools = interp->mem_pools;
PMC_Attribute_Pool **pools;
const size_t total_size = (init_num_pools + 1) * sizeof (void *);
@@ -1052,11 +1039,12 @@
PARROT_CANNOT_RETURN_NULL
PMC_Attribute_Pool *
-Parrot_gc_get_attribute_pool(PARROT_INTERP, size_t attrib_size)
+Parrot_gc_get_attribute_pool(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t attrib_size)
{
ASSERT_ARGS(Parrot_gc_get_attribute_pool)
- Memory_Pools * const mem_pools = interp->mem_pools;
PMC_Attribute_Pool **pools = mem_pools->attrib_pools;
const size_t idx = (attrib_size < sizeof (void *))
? 0
Modified: branches/ops_pct/src/gc/system.c
==============================================================================
--- branches/ops_pct/src/gc/system.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/gc/system.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -39,65 +39,91 @@
__attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
-static size_t get_max_buffer_address(PARROT_INTERP)
- __attribute__nonnull__(1);
+static size_t get_max_buffer_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-static size_t get_max_pmc_address(PARROT_INTERP)
- __attribute__nonnull__(1);
+static size_t get_max_pmc_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-static size_t get_min_buffer_address(PARROT_INTERP)
- __attribute__nonnull__(1);
+static size_t get_min_buffer_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-static size_t get_min_pmc_address(PARROT_INTERP)
- __attribute__nonnull__(1);
+static size_t get_min_pmc_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-static int is_buffer_ptr(PARROT_INTERP, ARGIN(const void *ptr))
+static int is_buffer_ptr(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGIN(const void *ptr))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
-static int is_pmc_ptr(PARROT_INTERP, ARGIN(const void *ptr))
+static int is_pmc_ptr(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGIN(const void *ptr))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void trace_mem_block(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
size_t lo_var_ptr,
size_t hi_var_ptr)
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-static void trace_system_stack(PARROT_INTERP)
- __attribute__nonnull__(1);
+static void trace_system_stack(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
#define ASSERT_ARGS_find_common_mask __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_get_max_buffer_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_get_max_pmc_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_get_min_buffer_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_get_min_pmc_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_is_buffer_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(ptr))
#define ASSERT_ARGS_is_pmc_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(ptr))
#define ASSERT_ARGS_trace_mem_block __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_trace_system_stack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(mem_pools))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
/*
-=item C<void trace_system_areas(PARROT_INTERP)>
+=item C<void trace_system_areas(PARROT_INTERP, Memory_Pools * const mem_pools)>
Initiates a trace of the system stack, looking for pointers which are being
used by functions in the call chain, but which might not be marked as alive
@@ -110,7 +136,8 @@
*/
void
-trace_system_areas(PARROT_INTERP)
+trace_system_areas(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(trace_system_areas)
{
@@ -213,12 +240,13 @@
/* With the processor context accounted for above, we can trace the
system stack here. */
- trace_system_stack(interp);
+ trace_system_stack(interp, mem_pools);
}
/*
-=item C<static void trace_system_stack(PARROT_INTERP)>
+=item C<static void trace_system_stack(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
Traces the memory block starting at C<< interp->lo_var_ptr >>. This should be
the address of a local variable which has been created on the stack early in
@@ -230,7 +258,8 @@
*/
static void
-trace_system_stack(PARROT_INTERP)
+trace_system_stack(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(trace_system_stack)
/* Create a local variable on the system stack. This represents the
@@ -240,13 +269,14 @@
const size_t lo_var_ptr = (size_t)interp->lo_var_ptr;
PARROT_ASSERT(lo_var_ptr);
- trace_mem_block(interp, (size_t)lo_var_ptr,
+ trace_mem_block(interp, mem_pools, (size_t)lo_var_ptr,
(size_t)&lo_var_ptr);
}
/*
-=item C<static size_t get_max_buffer_address(PARROT_INTERP)>
+=item C<static size_t get_max_buffer_address(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
Calculates the maximum buffer address and returns it. This is done by looping
through all the sized pools, and finding the pool whose C<end_arena_memory>
@@ -260,10 +290,10 @@
PARROT_WARN_UNUSED_RESULT
static size_t
-get_max_buffer_address(PARROT_INTERP)
+get_max_buffer_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(get_max_buffer_address)
- Memory_Pools * const mem_pools = interp->mem_pools;
size_t max = 0;
UINTVAL i;
@@ -280,7 +310,8 @@
/*
-=item C<static size_t get_min_buffer_address(PARROT_INTERP)>
+=item C<static size_t get_min_buffer_address(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
Calculates the minimum buffer address and returns it. Loops through all sized
pools, and finds the one with the smallest C<start_arena_memory> field. Notice
@@ -295,10 +326,10 @@
PARROT_WARN_UNUSED_RESULT
static size_t
-get_min_buffer_address(PARROT_INTERP)
+get_min_buffer_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(get_min_buffer_address)
- Memory_Pools * const mem_pools = interp->mem_pools;
size_t min = (size_t) -1;
UINTVAL i;
@@ -316,7 +347,8 @@
/*
-=item C<static size_t get_max_pmc_address(PARROT_INTERP)>
+=item C<static size_t get_max_pmc_address(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
Returns the maximum memory address used by the C<pmc_pool>.
@@ -326,16 +358,18 @@
PARROT_WARN_UNUSED_RESULT
static size_t
-get_max_pmc_address(PARROT_INTERP)
+get_max_pmc_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(get_max_pmc_address)
- return interp->mem_pools->pmc_pool->end_arena_memory;
+ return mem_pools->pmc_pool->end_arena_memory;
}
/*
-=item C<static size_t get_min_pmc_address(PARROT_INTERP)>
+=item C<static size_t get_min_pmc_address(PARROT_INTERP, Memory_Pools * const
+mem_pools)>
Returns the minimum memory address used by the C<pmc_pool>. Notice that the
memory region between C<get_min_pmc_address> and C<get_max_pmc_address> may be
@@ -347,10 +381,11 @@
PARROT_WARN_UNUSED_RESULT
static size_t
-get_min_pmc_address(PARROT_INTERP)
+get_min_pmc_address(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(get_min_pmc_address)
- return interp->mem_pools->pmc_pool->start_arena_memory;
+ return mem_pools->pmc_pool->start_arena_memory;
}
@@ -397,8 +432,8 @@
/*
-=item C<static void trace_mem_block(PARROT_INTERP, size_t lo_var_ptr, size_t
-hi_var_ptr)>
+=item C<static void trace_mem_block(PARROT_INTERP, Memory_Pools * const
+mem_pools, size_t lo_var_ptr, size_t hi_var_ptr)>
Traces the memory block between C<lo_var_ptr> and C<hi_var_ptr>.
Attempt to find pointers to PObjs or buffers, and mark them as "alive"
@@ -410,16 +445,18 @@
*/
static void
-trace_mem_block(PARROT_INTERP, size_t lo_var_ptr, size_t hi_var_ptr)
+trace_mem_block(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ size_t lo_var_ptr, size_t hi_var_ptr)
{
ASSERT_ARGS(trace_mem_block)
size_t prefix;
ptrdiff_t cur_var_ptr;
- const size_t buffer_min = get_min_buffer_address(interp);
- const size_t buffer_max = get_max_buffer_address(interp);
- const size_t pmc_min = get_min_pmc_address(interp);
- const size_t pmc_max = get_max_pmc_address(interp);
+ const size_t buffer_min = get_min_buffer_address(interp, mem_pools);
+ const size_t buffer_max = get_max_buffer_address(interp, mem_pools);
+ const size_t pmc_min = get_min_pmc_address(interp, mem_pools);
+ const size_t pmc_max = get_max_pmc_address(interp, mem_pools);
const size_t mask =
find_common_mask(interp,
@@ -450,11 +487,11 @@
* had their bufstart/vtable destroyed due to the linked list of
* free headers... */
if (pmc_min <= ptr && ptr < pmc_max &&
- is_pmc_ptr(interp, (void *)ptr)) {
+ is_pmc_ptr(interp, mem_pools, (void *)ptr)) {
Parrot_gc_mark_PObj_alive(interp, (PObj *)ptr);
}
else if (buffer_min <= ptr && ptr < buffer_max &&
- is_buffer_ptr(interp, (void *)ptr)) {
+ is_buffer_ptr(interp, mem_pools, (void *)ptr)) {
/* ...and since Parrot_gc_mark_PObj_alive doesn't care about bufstart, it
* doesn't really matter if it sets a flag */
Parrot_gc_mark_PObj_alive(interp, (PObj *)ptr);
@@ -467,7 +504,8 @@
/*
-=item C<static int is_buffer_ptr(PARROT_INTERP, const void *ptr)>
+=item C<static int is_buffer_ptr(PARROT_INTERP, Memory_Pools * const mem_pools,
+const void *ptr)>
Checks whether the given C<ptr> is located within one of the sized
header pools. Returns C<1> if it is, and C<0> if not.
@@ -478,10 +516,11 @@
PARROT_WARN_UNUSED_RESULT
static int
-is_buffer_ptr(PARROT_INTERP, ARGIN(const void *ptr))
+is_buffer_ptr(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGIN(const void *ptr))
{
ASSERT_ARGS(is_buffer_ptr)
- Memory_Pools * const mem_pools = interp->mem_pools;
UINTVAL i;
for (i = 0; i < mem_pools->num_sized; i++) {
@@ -495,7 +534,8 @@
/*
-=item C<static int is_pmc_ptr(PARROT_INTERP, const void *ptr)>
+=item C<static int is_pmc_ptr(PARROT_INTERP, Memory_Pools * const mem_pools,
+const void *ptr)>
Checks that C<ptr> is actually a PMC pointer. Returns C<1> if it is, C<0>
otherwise.
@@ -506,10 +546,12 @@
PARROT_WARN_UNUSED_RESULT
static int
-is_pmc_ptr(PARROT_INTERP, ARGIN(const void *ptr))
+is_pmc_ptr(PARROT_INTERP,
+ ARGIN(Memory_Pools * const mem_pools),
+ ARGIN(const void *ptr))
{
ASSERT_ARGS(is_pmc_ptr)
- return contained_in_pool(interp, interp->mem_pools->pmc_pool, ptr);
+ return contained_in_pool(interp, mem_pools->pmc_pool, ptr);
}
Modified: branches/ops_pct/src/global.c
==============================================================================
--- branches/ops_pct/src/global.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/global.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -249,7 +249,7 @@
return PMCNULL;
/* TT #1221 - match HLL of enclosing namespace? */
- sub_ns = pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
+ sub_ns = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
enum_class_NameSpace));
if (PMC_IS_NULL(sub_ns))
@@ -765,7 +765,7 @@
/* is there an existing MultiSub PMC? or do we need to create one? */
if (PMC_IS_NULL(multisub)) {
- multisub = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_MultiSub));
+ multisub = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_MultiSub));
/* we have to push the sub onto the MultiSub before we try to store
it because storing requires information from the sub */
VTABLE_push_pmc(interp, multisub, sub_pmc);
Modified: branches/ops_pct/src/global_setup.c
==============================================================================
--- branches/ops_pct/src/global_setup.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/global_setup.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -104,7 +104,7 @@
config_hash = Parrot_thaw(interp, config_string);
}
else {
- config_hash = pmc_new(interp, enum_class_Hash);
+ config_hash = Parrot_pmc_new(interp, enum_class_Hash);
}
VTABLE_set_pmc_keyed_int(interp, iglobals,
@@ -172,7 +172,7 @@
VTABLE_set_pmc_keyed_int(interp, iglobals,
(INTVAL)IGLOBALS_CLASSNAME_HASH, interp->class_hash);
- self = pmc_new_noinit(interp, enum_class_ParrotInterpreter);
+ self = Parrot_pmc_new_noinit(interp, enum_class_ParrotInterpreter);
VTABLE_set_pointer(interp, self, interp);
/* PMC_data(self) = interp; */
@@ -185,11 +185,16 @@
parrot_init_library_paths(interp);
/* load_bytecode and dynlib loaded hash */
- pmc = pmc_new(interp, enum_class_Hash);
+ pmc = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_pmc_keyed_int(interp, iglobals, IGLOBALS_PBC_LIBS, pmc);
- pmc = pmc_new(interp, enum_class_Hash);
+ pmc = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_pmc_keyed_int(interp, iglobals, IGLOBALS_DYN_LIBS, pmc);
+
+ pmc = Parrot_pmc_new(interp, enum_class_Hash);
+ VTABLE_set_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FUNCS, pmc);
+ Parrot_nci_load_core_thunks(interp);
+ Parrot_nci_load_extra_thunks(interp);
}
/*
@@ -212,18 +217,18 @@
create_initial_context(interp);
/* create the namespace root stash */
- interp->root_namespace = pmc_new(interp, enum_class_NameSpace);
+ interp->root_namespace = Parrot_pmc_new(interp, enum_class_NameSpace);
Parrot_init_HLL(interp);
Parrot_pcc_set_namespace(interp, CURRENT_CONTEXT(interp),
VTABLE_get_pmc_keyed_int(interp, interp->HLL_namespace, 0));
/* We need a class hash */
- interp->class_hash = classname_hash = pmc_new(interp, enum_class_NameSpace);
+ interp->class_hash = classname_hash = Parrot_pmc_new(interp, enum_class_NameSpace);
Parrot_register_core_pmcs(interp, classname_hash);
/* init the interpreter globals array */
- iglobals = pmc_new(interp, enum_class_FixedPMCArray);
+ iglobals = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
interp->iglobals = iglobals;
VTABLE_set_integer_native(interp, iglobals, (INTVAL)IGLOBALS_SIZE);
Modified: branches/ops_pct/src/hash.c
==============================================================================
--- branches/ops_pct/src/hash.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/hash.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -61,9 +61,7 @@
__attribute__nonnull__(3)
FUNC_MODIFIES(*info);
-static void hash_thaw(PARROT_INTERP,
- ARGMOD(Hash *hash),
- ARGMOD(PMC *info))
+static void hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
@@ -752,11 +750,13 @@
/* resize mem */
if (old_offset != old_mem) {
/* This buffer has been reallocated at least once before. */
- new_mem = (HashBucket *)mem_sys_realloc(old_mem, HASH_ALLOC_SIZE(new_size));
+ new_mem = (HashBucket *)Parrot_gc_reallocate_memory_chunk_with_interior_pointers(
+ interp, old_mem, HASH_ALLOC_SIZE(new_size), HASH_ALLOC_SIZE(old_size));
}
else {
/* Allocate a new buffer. */
- new_mem = (HashBucket *)mem_sys_allocate(HASH_ALLOC_SIZE(new_size));
+ new_mem = (HashBucket *)Parrot_gc_allocate_memory_chunk_with_interior_pointers(
+ interp, HASH_ALLOC_SIZE(new_size));
memcpy(new_mem, old_mem, HASH_ALLOC_SIZE(old_size));
}
@@ -953,7 +953,8 @@
{
ASSERT_ARGS(parrot_create_hash)
HashBucket *bp;
- void *alloc = mem_sys_allocate(sizeof (Hash) + HASH_ALLOC_SIZE(INITIAL_BUCKETS));
+ void *alloc = Parrot_gc_allocate_memory_chunk_with_interior_pointers(
+ interp, sizeof (Hash) + HASH_ALLOC_SIZE(INITIAL_BUCKETS));
Hash * const hash = (Hash*)alloc;
size_t i;
@@ -1012,13 +1013,13 @@
PARROT_EXPORT
void
-parrot_hash_destroy(SHIM_INTERP, ARGMOD(Hash *hash))
+parrot_hash_destroy(PARROT_INTERP, ARGMOD(Hash *hash))
{
ASSERT_ARGS(parrot_hash_destroy)
HashBucket *bp = (HashBucket*)((char*)hash + sizeof (Hash));
if (bp != hash->bs)
- mem_sys_free(hash->bs);
- mem_sys_free(hash);
+ mem_gc_free(interp, hash->bs);
+ mem_gc_free(interp, hash);
}
@@ -1042,8 +1043,8 @@
for (i = 0; i <= hash->mask; i++) {
HashBucket *bucket = hash->bi[i];
while (bucket) {
- mem_sys_free(bucket->key);
- mem_sys_free(bucket->value);
+ mem_gc_free(interp, bucket->key);
+ mem_gc_free(interp, bucket->value);
bucket = bucket->next;
}
}
@@ -1077,7 +1078,7 @@
for (i = 0; i <= hash->mask; i++) {
HashBucket *bucket = hash->bi[i];
while (bucket) {
- mem_sys_free(bucket->key);
+ mem_gc_free(interp, bucket->key);
func(bucket->value);
bucket = bucket->next;
}
@@ -1448,7 +1449,7 @@
get_integer_pmc(PARROT_INTERP, INTVAL value)
{
ASSERT_ARGS(get_integer_pmc)
- PMC * const ret = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ PMC * const ret = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
VTABLE_set_integer_native(interp, ret, value);
return ret;
}
@@ -1469,7 +1470,7 @@
get_number_pmc(PARROT_INTERP, FLOATVAL value)
{
ASSERT_ARGS(get_number_pmc)
- PMC * const ret = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ PMC * const ret = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
VTABLE_set_number_native(interp, ret, value);
return ret;
}
@@ -1489,7 +1490,7 @@
get_string_pmc(PARROT_INTERP, ARGIN(STRING *value))
{
ASSERT_ARGS(get_string_pmc)
- PMC * const ret = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ PMC * const ret = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
VTABLE_set_string_native(interp, ret, value);
return ret;
}
Modified: branches/ops_pct/src/hll.c
==============================================================================
--- branches/ops_pct/src/hll.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/hll.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -88,7 +88,7 @@
PMC *entry_id;
- PMC * const entry = constant_pmc_new(interp, enum_class_FixedPMCArray);
+ PMC * const entry = Parrot_pmc_new_constant(interp, enum_class_FixedPMCArray);
if (entry_name && !STRING_IS_EMPTY(entry_name)) {
VTABLE_set_pmc_keyed_str(interp, hll_info, entry_name, entry);
@@ -98,7 +98,7 @@
VTABLE_set_integer_native(interp, entry, e_HLL_MAX);
- entry_id = constant_pmc_new(interp, enum_class_Integer);
+ entry_id = Parrot_pmc_new_constant(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, entry_id, id);
VTABLE_set_pmc_keyed_int(interp, entry, e_HLL_id, entry_id);
@@ -122,9 +122,9 @@
{
ASSERT_ARGS(Parrot_init_HLL)
interp->HLL_info =
- pmc_new(interp, enum_class_OrderedHash);
+ Parrot_pmc_new(interp, enum_class_OrderedHash);
interp->HLL_namespace =
- constant_pmc_new(interp, enum_class_ResizablePMCArray);
+ Parrot_pmc_new_constant(interp, enum_class_ResizablePMCArray);
Parrot_register_HLL(interp, CONST_STRING(interp, "parrot"));
}
@@ -168,7 +168,7 @@
entry = new_hll_entry(interp, hll_name);
/* register HLL name */
- name = constant_pmc_new(interp, enum_class_String);
+ name = Parrot_pmc_new_constant(interp, enum_class_String);
VTABLE_set_string_native(interp, name, hll_name);
VTABLE_set_pmc_keyed_int(interp, entry, e_HLL_name, name);
@@ -188,7 +188,7 @@
VTABLE_set_pmc_keyed_int(interp, interp->HLL_namespace, idx, ns_hash);
/* create HLL typemap hash */
- type_hash = constant_pmc_new(interp, enum_class_Hash);
+ type_hash = Parrot_pmc_new_constant(interp, enum_class_Hash);
VTABLE_set_pointer(interp, type_hash, parrot_new_intval_hash(interp));
VTABLE_set_pmc_keyed_int(interp, entry, e_HLL_typemap, type_hash);
@@ -243,7 +243,7 @@
VTABLE_set_pmc_keyed_int(interp, entry, e_HLL_name, PMCNULL);
/* register dynlib */
- name = constant_pmc_new(interp, enum_class_String);
+ name = Parrot_pmc_new_constant(interp, enum_class_String);
VTABLE_set_string_native(interp, name, hll_lib);
VTABLE_set_pmc_keyed_int(interp, entry, e_HLL_lib, name);
Modified: branches/ops_pct/src/interp/inter_cb.c
==============================================================================
--- branches/ops_pct/src/interp/inter_cb.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/interp/inter_cb.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -25,6 +25,7 @@
*/
#include "parrot/parrot.h"
+#include "pmc/pmc_parrotinterpreter.h"
#include "inter_cb.str"
@@ -109,7 +110,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"unhandled signature '%Ss' in make_cb", cb_signature);
- cb_sig = pmc_new(interp, enum_class_String);
+ cb_sig = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, cb_sig, cb_signature);
sc = CONST_STRING(interp, "_signature");
VTABLE_setprop(interp, user_data, sc, cb_sig);
@@ -121,14 +122,14 @@
* we need to anchor it.
*
*/
- gc_register_pmc(interp, user_data);
+ Parrot_pmc_gc_register(interp, user_data);
/*
* Finally, the external lib awaits a function pointer.
* Create a PMC that points to Parrot_callback_C (or _D);
* it can be passed on with signature 'p'.
*/
- cb = pmc_new(interp, enum_class_UnManagedStruct);
+ cb = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
/*
* Currently, we handle only 2 types:
* _C ... user_data is 2nd parameter
@@ -138,7 +139,7 @@
VTABLE_set_pointer(interp, cb, F2DPTR(Parrot_callback_C));
else
VTABLE_set_pointer(interp, cb, F2DPTR(Parrot_callback_D));
- gc_register_pmc(interp, cb);
+ Parrot_pmc_gc_register(interp, cb);
return cb;
}
@@ -159,6 +160,8 @@
ASSERT_ARGS(verify_CD)
PARROT_INTERP = NULL;
size_t i;
+ PMC *interp_pmc;
+ STRING *sc;
/*
* 1.) user_data is from external code so:
@@ -174,19 +177,14 @@
if ((UINTVAL)user_data & 3)
PANIC(interp, "user_data doesn't look like a pointer");
- /*
- * We don't yet know which interpreter this PMC is from, so run
- * through all of the existing interpreters and check their PMC
- * pools
- */
+ /* Fetch original interpreter from prop */
LOCK(interpreter_array_mutex);
- for (i = 0; i < n_interpreters; ++i) {
- Parrot_Interp checkinterp = interpreter_array [i];
- if (checkinterp && Parrot_gc_ptr_is_pmc(checkinterp, user_data)) {
- interp = checkinterp;
- break;
- }
- }
+
+ interp = interpreter_array[0];
+ sc = CONST_STRING(interp, "_interpreter");
+ interp_pmc = VTABLE_getprop(interp, user_data, sc);
+ GETATTR_ParrotInterpreter_interp(interp, interp_pmc, interp);
+
UNLOCK(interpreter_array_mutex);
if (!interp)
PANIC(interp, "interpreter not found for callback");
@@ -347,7 +345,7 @@
#endif
case 'p':
/* created a UnManagedStruct */
- p_param = pmc_new(interp, enum_class_UnManagedStruct);
+ p_param = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, p_param, external_data);
pasm_sig[1] = 'P';
param = (void*) p_param;
Modified: branches/ops_pct/src/interp/inter_create.c
==============================================================================
--- branches/ops_pct/src/interp/inter_create.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/interp/inter_create.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -24,6 +24,7 @@
#include "parrot/oplib/core_ops.h"
#include "../compilers/imcc/imc.h"
#include "pmc/pmc_callcontext.h"
+#include "../gc/gc_private.h"
#include "inter_create.str"
/* HEADERIZER HFILE: include/parrot/interpreter.h */
@@ -36,14 +37,9 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void setup_default_compreg(PARROT_INTERP)
- __attribute__nonnull__(1);
-
#define ASSERT_ARGS_is_env_var_set __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(var))
-#define ASSERT_ARGS_setup_default_compreg __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 */
@@ -77,29 +73,40 @@
/*
-=item C<static void setup_default_compreg(PARROT_INTERP)>
+=item C<Parrot_Interp make_interpreter(Interp *parent, INTVAL flags)>
-Setup default compiler for PASM.
+Create the Parrot interpreter. Allocate memory and clear the registers.
=cut
*/
-static void
-setup_default_compreg(PARROT_INTERP)
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+Parrot_Interp
+make_interpreter(ARGIN_NULLOK(Interp *parent), INTVAL flags)
{
- ASSERT_ARGS(setup_default_compreg)
- STRING * const pasm1 = CONST_STRING(interp, "PASM1");
+ ASSERT_ARGS(make_interpreter)
+ int stacktop;
+ Interp *interp;
- /* register the nci compiler object */
- Parrot_compreg(interp, pasm1, (Parrot_compiler_func_t)PDB_compile);
+ interp = allocate_interpreter(parent, flags);
+ initialize_interpreter(interp, (void*)&stacktop);
+ return interp;
}
/*
-=item C<Parrot_Interp make_interpreter(Interp *parent, INTVAL flags)>
+=item C<Parrot_Interp allocate_interpreter(Interp *parent, INTVAL flags)>
-Create the Parrot interpreter. Allocate memory and clear the registers.
+Allocate new interpreter from system memory. Everything is preallocated but not
+initialized. Used in next cycle:
+
+ allocate_interpreter
+ parseflags
+ initialize_interpreter
+
+for overriding subsystems (e.g. GC) which require early initialization.
=cut
@@ -108,14 +115,14 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
Parrot_Interp
-make_interpreter(ARGIN_NULLOK(Interp *parent), INTVAL flags)
+allocate_interpreter(ARGIN_NULLOK(Interp *parent), INTVAL flags)
{
- ASSERT_ARGS(make_interpreter)
+ ASSERT_ARGS(allocate_interpreter)
int stacktop;
Interp *interp;
/* Get an empty interpreter from system memory */
- interp = mem_allocate_zeroed_typed(Interp);
+ interp = mem_internal_allocate_zeroed_typed(Interp);
interp->lo_var_ptr = NULL;
@@ -135,8 +142,50 @@
/* Must initialize flags before Parrot_gc_initialize() is called
* so the GC_DEBUG stuff is available. */
interp->flags = flags;
+
+ interp->ctx = PMCNULL;
+ interp->resume_flag = RESUME_INITIAL;
+
+ interp->recursion_limit = RECURSION_LIMIT;
+
+ /* PANIC will fail until this is done */
+ interp->piodata = NULL;
+
+ /* create exceptions list */
+ interp->current_runloop_id = 0;
+ interp->current_runloop_level = 0;
+
+ /* Allocate IMCC info */
+ IMCC_INFO(interp) = mem_internal_allocate_zeroed_typed(imc_info_t);
+
+ interp->gc_sys = mem_internal_allocate_zeroed_typed(GC_Subsystem);
+ interp->gc_sys->sys_type = parent
+ ? parent->gc_sys->sys_type
+ : PARROT_GC_DEFAULT_TYPE;
+
+ /* Done. Return and be done with it */
+ return interp;
+}
+
+/*
+
+=item C<Parrot_Interp initialize_interpreter(PARROT_INTERP, void *stacktop)>
+
+Initialize previously allocated interpreter.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+Parrot_Interp
+initialize_interpreter(PARROT_INTERP, ARGIN(void *stacktop))
+{
+ ASSERT_ARGS(initialize_interpreter)
+
/* Set up the memory allocation system */
- Parrot_gc_initialize(interp, (void*)&stacktop);
+ Parrot_gc_initialize(interp, stacktop);
Parrot_block_GC_mark(interp);
Parrot_block_GC_sweep(interp);
@@ -155,17 +204,6 @@
*/
Parrot_str_init(interp);
- if (is_env_var_set(interp, CONST_STRING(interp, "PARROT_GC_DEBUG"))) {
-#if ! DISABLE_GC_DEBUG
- Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG);
-#else
- fprintf(stderr, "PARROT_GC_DEBUG is set but the binary was compiled "
- "with DISABLE_GC_DEBUG.\n");
-#endif
- }
-
- Parrot_initialize_core_vtables(interp);
-
/* Set up MMD; MMD cache for builtins. */
interp->op_mmd_cache = Parrot_mmd_cache_create(interp);
@@ -174,9 +212,20 @@
/* initialize classes - this needs mmd func table */
interp->HLL_info = NULL;
+
+ Parrot_initialize_core_vtables(interp);
init_world_once(interp);
/* context data */
+ if (is_env_var_set(interp, CONST_STRING(interp, "PARROT_GC_DEBUG"))) {
+#if ! DISABLE_GC_DEBUG
+ Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG);
+#else
+ fprintf(stderr, "PARROT_GC_DEBUG is set but the binary was compiled "
+ "with DISABLE_GC_DEBUG.\n");
+#endif
+ }
+
/* Initialize interpreter's flags */
PARROT_WARNINGS_off(interp, PARROT_WARNINGS_ALL_FLAG);
@@ -205,7 +254,7 @@
Parrot_runcore_init(interp);
/* Load the core op func and info tables */
- interp->op_lib = PARROT_CORE_OPLIB_INIT(1);
+ interp->op_lib = PARROT_CORE_OPLIB_INIT(interp, 1);
interp->op_count = interp->op_lib->op_count;
interp->op_func_table = interp->op_lib->op_func_table;
interp->op_info_table = interp->op_lib->op_info_table;
@@ -215,19 +264,16 @@
interp->code = NULL;
/* create the root set registry */
- interp->gc_registry = pmc_new(interp, enum_class_AddrRegistry);
+ interp->gc_registry = Parrot_pmc_new(interp, enum_class_AddrRegistry);
/* And a dynamic environment stack */
/* TODO: We should really consider removing this (TT #876) */
- interp->dynamic_env = pmc_new(interp, enum_class_ResizablePMCArray);
+ interp->dynamic_env = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
/* create exceptions list */
interp->current_runloop_id = 0;
interp->current_runloop_level = 0;
- /* register assembler/compilers */
- setup_default_compreg(interp);
-
/* setup stdio PMCs */
Parrot_io_init(interp);
@@ -264,6 +310,7 @@
return interp;
}
+
/*
=item C<void Parrot_destroy(PARROT_INTERP)>
@@ -373,12 +420,9 @@
if (interp->parent_interpreter
&& interp->thread_data
&& (interp->thread_data->state & THREAD_STATE_JOINED)) {
- Parrot_gc_merge_header_pools(interp->parent_interpreter, interp);
- Parrot_gc_merge_header_pools(interp->parent_interpreter, interp);
+ Parrot_gc_destroy_child_interp(interp->parent_interpreter, interp);
}
- Parrot_gc_finalize(interp);
-
/* MMD cache */
Parrot_mmd_cache_destroy(interp, interp->op_mmd_cache);
@@ -390,44 +434,34 @@
/* packfile */
if (interp->initial_pf)
PackFile_destroy(interp, interp->initial_pf);
-
- /* buffer headers, PMCs */
- Parrot_gc_destroy_header_pools(interp);
-
- /* memory pools in resources */
- Parrot_gc_destroy_memory_pools(interp);
-
- /* mem subsystem is dead now */
- mem_sys_free(interp->mem_pools);
- interp->mem_pools = NULL;
- mem_sys_free(interp->gc_sys);
- interp->gc_sys = NULL;
-
/* cache structure */
destroy_object_cache(interp);
if (interp->evc_func_table) {
- mem_sys_free(interp->evc_func_table);
+ mem_gc_free(interp, interp->evc_func_table);
interp->evc_func_table = NULL;
}
/* strings, charsets, encodings - only once */
Parrot_str_finish(interp);
- PARROT_CORE_OPLIB_INIT(0);
+ PARROT_CORE_OPLIB_INIT(interp, 0);
if (!interp->parent_interpreter) {
if (interp->thread_data)
- mem_sys_free(interp->thread_data);
+ mem_internal_free(interp->thread_data);
/* free vtables */
parrot_free_vtables(interp);
+ /* Finalyze GC */
+ Parrot_gc_finalize(interp);
+
MUTEX_DESTROY(interpreter_array_mutex);
- mem_sys_free(interp);
+ mem_internal_free(interp);
/* finally free other globals */
- mem_sys_free(interpreter_array);
+ mem_internal_free(interpreter_array);
interpreter_array = NULL;
}
@@ -437,12 +471,16 @@
|| (interp->thread_data
&& (interp->thread_data->state & THREAD_STATE_JOINED))) {
if (interp->thread_data) {
- mem_sys_free(interp->thread_data);
+ mem_internal_free(interp->thread_data);
interp->thread_data = NULL;
}
parrot_free_vtables(interp);
- mem_sys_free(interp);
+
+ /* Finalyze GC */
+ Parrot_gc_finalize(interp);
+
+ mem_internal_free(interp);
}
}
}
Modified: branches/ops_pct/src/interp/inter_misc.c
==============================================================================
--- branches/ops_pct/src/interp/inter_misc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/interp/inter_misc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -51,7 +51,7 @@
ARGIN(const char *name), ARGIN(const char *proto))
{
ASSERT_ARGS(register_nci_method)
- PMC * const method = pmc_new(interp, enum_class_NCI);
+ PMC * const method = Parrot_pmc_new(interp, enum_class_NCI);
STRING * const method_name = string_make(interp, name, strlen(name),
NULL, PObj_constant_FLAG|PObj_external_FLAG);
@@ -84,7 +84,7 @@
ARGIN(STRING *name))
{
ASSERT_ARGS(register_raw_nci_method_in_ns)
- PMC * const method = pmc_new(interp, enum_class_NCI);
+ PMC * const method = Parrot_pmc_new(interp, enum_class_NCI);
/* setup call func */
VTABLE_set_pointer(interp, method, func);
@@ -111,7 +111,7 @@
{
ASSERT_ARGS(Parrot_mark_method_writes)
STRING *const str_name = Parrot_str_new_constant(interp, name);
- PMC *const pmc_true = pmc_new(interp, enum_class_Integer);
+ PMC *const pmc_true = Parrot_pmc_new(interp, enum_class_Integer);
PMC *const method = VTABLE_get_pmc_keyed_str(
interp, interp->vtables[type]->_namespace, str_name);
VTABLE_set_integer_native(interp, pmc_true, 1);
@@ -136,13 +136,13 @@
{
ASSERT_ARGS(Parrot_compreg)
PMC* const iglobals = interp->iglobals;
- PMC *nci = pmc_new(interp, enum_class_NCI);
+ PMC *nci = Parrot_pmc_new(interp, enum_class_NCI);
STRING *sc = CONST_STRING(interp, "PJt");
PMC *hash = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
IGLOBALS_COMPREG_HASH);
if (!hash) {
- hash = pmc_new_noinit(interp, enum_class_Hash);
+ hash = Parrot_pmc_new_noinit(interp, enum_class_Hash);
VTABLE_init(interp, hash);
VTABLE_set_pmc_keyed_int(interp, iglobals,
(INTVAL)IGLOBALS_COMPREG_HASH, hash);
@@ -322,16 +322,14 @@
{
ASSERT_ARGS(interpinfo_s)
switch (what) {
- case EXECUTABLE_FULLNAME:
- {
+ case EXECUTABLE_FULLNAME: {
PMC *exe_name = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
IGLOBALS_EXECUTABLE);
if (PMC_IS_NULL(exe_name))
return string_from_literal(interp, "");
return VTABLE_get_string(interp, exe_name);
}
- case EXECUTABLE_BASENAME:
- {
+ case EXECUTABLE_BASENAME: {
STRING *basename;
PMC *exe_name = VTABLE_get_pmc_keyed_int(interp,
interp->iglobals, IGLOBALS_EXECUTABLE);
@@ -359,8 +357,12 @@
return basename;
}
}
- case RUNTIME_PREFIX:
- return Parrot_get_runtime_path(interp);
+ case RUNTIME_PREFIX:
+ return Parrot_get_runtime_path(interp);
+ case GC_SYS_NAME: {
+ STRING * name = Parrot_gc_sys_name(interp);
+ return name;
+ }
default:
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
"illegal argument in interpinfo");
Modified: branches/ops_pct/src/io/api.c
==============================================================================
--- branches/ops_pct/src/io/api.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/api.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -89,7 +89,7 @@
Parrot_io_new_pmc(PARROT_INTERP, INTVAL flags)
{
ASSERT_ARGS(Parrot_io_new_pmc)
- PMC * const new_io = pmc_new(interp, enum_class_FileHandle);
+ PMC * const new_io = Parrot_pmc_new(interp, enum_class_FileHandle);
Parrot_io_set_flags(interp, new_io, flags);
@@ -125,7 +125,7 @@
if (PMC_IS_NULL(pmc)) {
/* TODO: We should look up the HLL mapped type, instead of always
using FileHandle here */
- new_filehandle = pmc_new(interp, enum_class_FileHandle);
+ new_filehandle = Parrot_pmc_new(interp, enum_class_FileHandle);
PARROT_ASSERT(new_filehandle->vtable->base_type == enum_class_FileHandle);
}
else
Modified: branches/ops_pct/src/io/buffer.c
==============================================================================
--- branches/ops_pct/src/io/buffer.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/buffer.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -99,14 +99,14 @@
buffer_size = Parrot_io_get_buffer_size(interp, filehandle);
if (buffer_start && (buffer_flags & PIO_BF_MALLOC)) {
- mem_sys_free(buffer_start);
+ mem_gc_free(interp, buffer_start);
Parrot_io_set_buffer_start(interp, filehandle, NULL);
Parrot_io_set_buffer_next(interp, filehandle, NULL);
buffer_start = buffer_next = NULL;
}
if (buffer_size > 0) {
- buffer_start = buffer_next = (unsigned char *)mem_sys_allocate(buffer_size);
+ buffer_start = buffer_next = mem_gc_allocate_n_typed(interp, buffer_size, unsigned char);
Parrot_io_set_buffer_start(interp, filehandle, buffer_start);
Parrot_io_set_buffer_next(interp, filehandle, buffer_next);
buffer_flags |= PIO_BF_MALLOC;
@@ -357,9 +357,12 @@
}
got = Parrot_io_fill_readbuf(interp, filehandle);
- len = (len < got)
- ? len
- : (got > 0) ? got : 0;
+
+ /* got is never < 0, but C's type system can't tell */
+ if (got < 0)
+ got = 0;
+
+ len = (len < got) ? len : got;
}
/* read from the read_buffer */
Modified: branches/ops_pct/src/io/core.c
==============================================================================
--- branches/ops_pct/src/io/core.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/core.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -64,12 +64,12 @@
}
- interp->piodata = mem_allocate_typed(ParrotIOData);
+ interp->piodata = mem_gc_allocate_zeroed_typed(interp, ParrotIOData);
if (interp->piodata == NULL)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_PIO_ERROR,
"PIO alloc piodata failure.");
interp->piodata->table =
- (PMC **)mem_sys_allocate_zeroed(PIO_NR_OPEN * sizeof (PMC *));
+ mem_gc_allocate_n_zeroed_typed(interp, PIO_NR_OPEN, PMC *);
if (!interp->piodata->table)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_PIO_ERROR,
@@ -95,9 +95,9 @@
/*
* TODO free IO of std-handles
*/
- mem_sys_free(interp->piodata->table);
+ mem_gc_free(interp, interp->piodata->table);
interp->piodata->table = NULL;
- mem_sys_free(interp->piodata);
+ mem_gc_free(interp, interp->piodata);
interp->piodata = NULL;
}
Modified: branches/ops_pct/src/io/filehandle.c
==============================================================================
--- branches/ops_pct/src/io/filehandle.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/filehandle.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -552,12 +552,12 @@
PARROT_CAN_RETURN_NULL
void
-Parrot_io_clear_buffer(SHIM_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_clear_buffer(PARROT_INTERP, ARGIN(PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_clear_buffer)
Parrot_FileHandle_attributes * const io = PARROT_FILEHANDLE(filehandle);
if (io->buffer_start && (io->flags & PIO_BF_MALLOC)) {
- mem_sys_free(io->buffer_start);
+ mem_gc_free(interp, io->buffer_start);
io->buffer_start = NULL;
}
}
Modified: branches/ops_pct/src/io/socket_api.c
==============================================================================
--- branches/ops_pct/src/io/socket_api.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/socket_api.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -346,7 +346,7 @@
Parrot_io_new_socket_pmc(PARROT_INTERP, INTVAL flags)
{
ASSERT_ARGS(Parrot_io_new_socket_pmc)
- PMC * const new_io = pmc_new(interp, enum_class_Socket);
+ PMC * const new_io = Parrot_pmc_new(interp, enum_class_Socket);
Parrot_io_set_flags(interp, new_io, flags);
Modified: branches/ops_pct/src/io/socket_unix.c
==============================================================================
--- branches/ops_pct/src/io/socket_unix.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/socket_unix.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -102,7 +102,7 @@
ASSERT_ARGS(Parrot_io_sockaddr_in)
char * const s = Parrot_str_to_cstring(interp, addr);
- PMC * const sockaddr = pmc_new(interp, enum_class_Sockaddr);
+ PMC * const sockaddr = Parrot_pmc_new(interp, enum_class_Sockaddr);
get_sockaddr_in(interp, sockaddr, s, port);
Parrot_str_free_cstring(s);
@@ -258,7 +258,7 @@
int newsock;
PARROT_SOCKET(newio)->local = PARROT_SOCKET(socket)->local;
- PARROT_SOCKET(newio)->remote = pmc_new(interp, enum_class_Sockaddr);
+ PARROT_SOCKET(newio)->remote = Parrot_pmc_new(interp, enum_class_Sockaddr);
saddr = SOCKADDR_REMOTE(newio);
newsock = accept(io->os_handle, (struct sockaddr *)saddr, &addrlen);
Modified: branches/ops_pct/src/io/socket_win32.c
==============================================================================
--- branches/ops_pct/src/io/socket_win32.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/socket_win32.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -205,7 +205,7 @@
int newsock;
PARROT_SOCKET(newio)->local = PARROT_SOCKET(socket)->local;
- PARROT_SOCKET(newio)->remote = pmc_new(interp, enum_class_Sockaddr);
+ PARROT_SOCKET(newio)->remote = Parrot_pmc_new(interp, enum_class_Sockaddr);
saddr = SOCKADDR_REMOTE(newio);
newsock = accept((int)io->os_handle, (struct sockaddr *)saddr, &addrlen);
@@ -445,7 +445,7 @@
ASSERT_ARGS(Parrot_io_sockaddr_in)
PMC * sockaddr;
char * const s = Parrot_str_to_cstring(interp, addr);
- sockaddr = pmc_new(interp, enum_class_Sockaddr);
+ sockaddr = Parrot_pmc_new(interp, enum_class_Sockaddr);
get_sockaddr_in(interp, sockaddr, s, port);
Parrot_str_free_cstring(s);
return sockaddr;
Modified: branches/ops_pct/src/io/unix.c
==============================================================================
--- branches/ops_pct/src/io/unix.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/io/unix.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -181,17 +181,19 @@
*/
if ((oflags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) {
close(fd);
- Parrot_str_free_cstring(spath); /* returning before C string freed */
+
+ /* returning before C string freed */
+ Parrot_str_free_cstring(spath);
return PMCNULL;
}
- /*
- * Check for truncate?
- */
+
+ /* Check for truncate? */
if (oflags & O_TRUNC) {
int tfd;
while ((tfd = creat(spath, PIO_DEFAULTMODE)) < 0 && errno == EINTR)
errno = 0;
- close(tfd);
+ if (tfd > 0)
+ close(tfd);
}
}
else if (oflags & O_CREAT) {
@@ -199,10 +201,10 @@
while ((fd = creat(spath, PIO_DEFAULTMODE)) < 0 && errno == EINTR)
errno = 0;
if (!(oflags & O_WRONLY)) {
- close(fd);
- /*
- * File created, reopen with read+write
- */
+ if (fd > 0)
+ close(fd);
+
+ /* File created, reopen with read+write */
while ((fd = open(spath, oflags & (O_WRONLY | O_RDWR),
DEFAULT_OPEN_MODE)) < 0 && errno == EINTR)
errno = 0;
Modified: branches/ops_pct/src/key.c
==============================================================================
--- branches/ops_pct/src/key.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/key.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -43,7 +43,7 @@
key_new(PARROT_INTERP)
{
ASSERT_ARGS(key_new)
- return pmc_new(interp, enum_class_Key);
+ return Parrot_pmc_new(interp, enum_class_Key);
}
@@ -64,7 +64,7 @@
key_new_integer(PARROT_INTERP, INTVAL value)
{
ASSERT_ARGS(key_new_integer)
- PMC * const key = pmc_new(interp, enum_class_Key);
+ PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
PObj_get_FLAGS(key) |= KEY_integer_FLAG;
SETATTR_Key_int_key(interp, key, value);
@@ -90,7 +90,7 @@
key_new_number(PARROT_INTERP, FLOATVAL value)
{
ASSERT_ARGS(key_new_number)
- PMC * const key = pmc_new(interp, enum_class_Key);
+ PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
PObj_get_FLAGS(key) |= KEY_number_FLAG;
SETATTR_Key_num_key(interp, key, value);
@@ -116,7 +116,7 @@
key_new_string(PARROT_INTERP, ARGIN(STRING *value))
{
ASSERT_ARGS(key_new_string)
- PMC * const key = pmc_new(interp, enum_class_Key);
+ PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
PObj_get_FLAGS(key) |= KEY_string_FLAG;
SETATTR_Key_str_key(interp, key, value);
@@ -164,7 +164,7 @@
key_new_pmc(PARROT_INTERP, ARGIN(PMC *value))
{
ASSERT_ARGS(key_new_pmc)
- PMC * const key = pmc_new(interp, enum_class_Key);
+ PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
PObj_get_FLAGS(key) |= KEY_pmc_FLAG;
Parrot_ex_throw_from_c_args(interp, NULL, 1, "this is broken - see slice.pmc");
Modified: branches/ops_pct/src/library.c
==============================================================================
--- branches/ops_pct/src/library.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/library.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -168,7 +168,7 @@
(INTVAL)IGLOBALS_CONFIG_HASH);
/* create the lib_paths array */
- PMC * const lib_paths = pmc_new(interp, enum_class_FixedPMCArray);
+ PMC * const lib_paths = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
VTABLE_set_integer_native(interp, lib_paths, PARROT_LIB_PATH_SIZE);
VTABLE_set_pmc_keyed_int(interp, iglobals,
@@ -191,7 +191,7 @@
/* each is an array of strings */
/* define include paths */
- paths = pmc_new(interp, enum_class_ResizableStringArray);
+ paths = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_INCLUDE, paths);
if (!STRING_IS_NULL(builddir)) {
@@ -209,7 +209,7 @@
/* define library paths */
- paths = pmc_new(interp, enum_class_ResizableStringArray);
+ paths = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_LIBRARY, paths);
if (!STRING_IS_NULL(builddir)) {
@@ -224,7 +224,7 @@
}
/* define languages paths */
- paths = pmc_new(interp, enum_class_ResizableStringArray);
+ paths = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_LANG, paths);
if (!STRING_IS_NULL(builddir)) {
@@ -239,7 +239,7 @@
}
/* define dynext paths */
- paths = pmc_new(interp, enum_class_ResizableStringArray);
+ paths = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_DYNEXT, paths);
if (!STRING_IS_NULL(builddir)) {
@@ -254,7 +254,7 @@
}
/* shared exts */
- paths = pmc_new(interp, enum_class_ResizableStringArray);
+ paths = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_DYN_EXTS, paths);
/* no CONST_STRING here - the c2str.pl preprocessor needs "real strs" */
Modified: branches/ops_pct/src/main.c
==============================================================================
--- branches/ops_pct/src/main.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/main.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2007-2008, Parrot Foundation.
+Copyright (C) 2007-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -23,6 +23,67 @@
#include "parrot/parrot.h"
#include "parrot/embed.h"
#include "parrot/imcc.h"
+#include "parrot/longopt.h"
+#include "parrot/runcore_api.h"
+#include "pmc/pmc_callcontext.h"
+
+/* For gc_sys_type_enum */
+#include "gc/gc_private.h"
+
+/* HEADERIZER HFILE: none */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void help(void);
+static void help_debug(void);
+PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
+static int is_all_hex_digits(ARGIN(const char *s))
+ __attribute__nonnull__(1);
+
+static void Parrot_version(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+static const char * parseflags(PARROT_INTERP,
+ ARGIN(int *argc),
+ ARGIN(char **argv[]),
+ ARGIN(Parrot_Run_core_t *core),
+ ARGIN(Parrot_trace_flags *trace))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
+
+static void parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+static void usage(ARGMOD(FILE *fp))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(*fp);
+
+#define ASSERT_ARGS_help __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_help_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_is_all_hex_digits __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(s))
+#define ASSERT_ARGS_Parrot_version __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_parseflags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(argc) \
+ , PARROT_ASSERT_ARG(argv) \
+ , PARROT_ASSERT_ARG(core) \
+ , PARROT_ASSERT_ARG(trace))
+#define ASSERT_ARGS_parseflags_minimal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(argv))
+#define ASSERT_ARGS_usage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(fp))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
/*
@@ -37,10 +98,15 @@
int
main(int argc, char * argv[])
{
+ int stacktop;
const char *sourcefile;
+ const char *execname;
Interp *interp;
int status;
+ Parrot_Run_core_t core = PARROT_SLOW_CORE;
+ Parrot_trace_flags trace = PARROT_NO_TRACE;
+
/* internationalization setup */
/* setlocale(LC_ALL, ""); */
PARROT_BINDTEXTDOMAIN(PACKAGE, LOCALEDIR);
@@ -48,15 +114,39 @@
Parrot_set_config_hash();
- interp = Parrot_new(NULL);
- imcc_initialize(interp);
+ interp = allocate_interpreter(NULL, PARROT_NO_FLAGS);
/* We parse the arguments, but first store away the name of the Parrot
executable, since parsing destroys that and we want to make it
available. */
- Parrot_set_executable_name(interp, Parrot_str_new(interp, argv[0], 0));
+ execname = argv[0];
+
+ /* Parse minimal subset of flags */
+ parseflags_minimal(interp, argc, argv);
+
+ /* Now initialize interpreter */
+ initialize_interpreter(interp, (void*)&stacktop);
+ imcc_initialize(interp);
+
+ { /* EXPERIMENTAL: add library and include paths from environment */
+ PMC *env = Parrot_pmc_new(interp, enum_class_Env);
+ STRING *path = VTABLE_get_string_keyed_str(interp, env,
+ Parrot_str_new_constant(interp, "PARROT_LIBRARY"));
+ if (!STRING_is_null(interp, path) && Parrot_str_length(interp, path) > 0)
+ Parrot_lib_add_path(interp, path, PARROT_LIB_PATH_LIBRARY);
+ path = VTABLE_get_string_keyed_str(interp, env,
+ Parrot_str_new_constant(interp, "PARROT_INCLUDE"));
+ if (!STRING_is_null(interp, path) && Parrot_str_length(interp, path) > 0)
+ Parrot_lib_add_path(interp, path, PARROT_LIB_PATH_INCLUDE);
+ }
+
+ /* Parse flags */
+ sourcefile = parseflags(interp, &argc, &argv, &core, &trace);
+
+ Parrot_set_trace(interp, trace);
+ Parrot_set_run_core(interp, (Parrot_Run_core_t) core);
+ Parrot_set_executable_name(interp, Parrot_str_new(interp, execname, 0));
- sourcefile = parseflags(interp, &argc, &argv);
status = imcc_run(interp, sourcefile, argc, argv);
UNUSED(status);
@@ -65,6 +155,438 @@
Parrot_exit(interp, 0);
}
+#define OPT_GC_DEBUG 128
+#define OPT_DESTROY_FLAG 129
+#define OPT_HELP_DEBUG 130
+#define OPT_PBC_OUTPUT 131
+#define OPT_RUNTIME_PREFIX 132
+
+#define SET_FLAG(flag) Parrot_set_flag(interp, (flag))
+#define SET_DEBUG(flag) Parrot_set_debug(interp, (flag))
+#define SET_TRACE(flag) Parrot_set_trace(interp, (flag))
+
+static struct longopt_opt_decl options[] = {
+ { '.', '.', (OPTION_flags)0, { "--wait" } },
+ { 'D', 'D', OPTION_optional_FLAG, { "--parrot-debug" } },
+ { 'E', 'E', (OPTION_flags)0, { "--pre-process-only" } },
+ { 'G', 'G', (OPTION_flags)0, { "--no-gc" } },
+ { 'H', 'H', OPTION_required_FLAG, { "--hash-seed" } },
+ { 'I', 'I', OPTION_required_FLAG, { "--include" } },
+ { 'L', 'L', OPTION_required_FLAG, { "--library" } },
+ { 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
+ { 'R', 'R', OPTION_required_FLAG, { "--runcore" } },
+ { 'g', 'g', OPTION_required_FLAG, { "--gc" } },
+ { 'V', 'V', (OPTION_flags)0, { "--version" } },
+ { 'X', 'X', OPTION_required_FLAG, { "--dynext" } },
+ { '\0', OPT_DESTROY_FLAG, (OPTION_flags)0,
+ { "--leak-test", "--destroy-at-end" } },
+ { '\0', OPT_GC_DEBUG, (OPTION_flags)0, { "--gc-debug" } },
+ { 'a', 'a', (OPTION_flags)0, { "--pasm" } },
+ { 'c', 'c', (OPTION_flags)0, { "--pbc" } },
+ { 'd', 'd', OPTION_optional_FLAG, { "--imcc-debug" } },
+ { '\0', OPT_HELP_DEBUG, (OPTION_flags)0, { "--help-debug" } },
+ { 'h', 'h', (OPTION_flags)0, { "--help" } },
+ { 'o', 'o', OPTION_required_FLAG, { "--output" } },
+ { '\0', OPT_PBC_OUTPUT, (OPTION_flags)0, { "--output-pbc" } },
+ { 'r', 'r', (OPTION_flags)0, { "--run-pbc" } },
+ { '\0', OPT_RUNTIME_PREFIX, (OPTION_flags)0, { "--runtime-prefix" } },
+ { 't', 't', OPTION_optional_FLAG, { "--trace" } },
+ { 'v', 'v', (OPTION_flags)0, { "--verbose" } },
+ { 'w', 'w', (OPTION_flags)0, { "--warnings" } },
+ { 'y', 'y', (OPTION_flags)0, { "--yydebug" } },
+ { 0, 0, (OPTION_flags)0, { NULL } }
+};
+
+/*
+
+=item C<static int is_all_hex_digits(const char *s)>
+
+Tests all characters in a string are hexadecimal digits.
+Returns 1 if true, 0 as soon as a non-hex found
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
+static int
+is_all_hex_digits(ARGIN(const char *s))
+{
+ ASSERT_ARGS(is_all_hex_digits)
+ for (; *s; s++)
+ if (!isxdigit(*s))
+ return 0;
+ return 1;
+}
+
+/*
+
+=item C<static void usage(FILE *fp)>
+
+Outputs usage error message.
+
+=cut
+
+*/
+
+static void
+usage(ARGMOD(FILE *fp))
+{
+ ASSERT_ARGS(usage)
+ fprintf(fp,
+ "parrot -[acEGhprtvVwy.] [-d [FLAGS]] [-D [FLAGS]]"
+ "[-O [level]] [-R runcore] [-o FILE] <file>\n");
+}
+
+/*
+
+=item C<static void help_debug(void)>
+
+Print out list of debugging flag values.
+
+=cut
+
+*/
+
+static void
+help_debug(void)
+{
+ ASSERT_ARGS(help_debug)
+ /* split printf for C89 compliance on string length */
+ printf(
+ "--imcc-debug -d [Flags] ...\n"
+ " 0002 lexer\n"
+ " 0004 parser\n"
+ " 0008 imc\n"
+ " 0010 CFG\n"
+ " 0020 optimization 1\n"
+ " 0040 optimization 2\n"
+ " 0100 AST\n"
+ " 1000 PBC\n"
+ " 2000 PBC constants\n"
+ " 4000 PBC fixups\n"
+ "\n");
+ printf(
+ "--parrot-debug -D [Flags] ...\n"
+ " 0001 memory statistics\n"
+ " 0002 print backtrace on exception\n"
+ " 0004 JIT debugging\n"
+ " 0008 interpreter startup\n"
+ " 0010 thread debugging\n"
+ " 0020 eval/compile\n"
+ " 0040 fill I, N registers with garbage\n"
+ " 0080 show when a context is destroyed\n"
+ "\n"
+ "--trace -t [Flags] ...\n"
+ " 0001 opcodes\n"
+ " 0002 find_method\n"
+ " 0004 function calls\n");
+}
+
+/*
+
+=item C<static void help(void)>
+
+Print out "help" list of options.
+
+=cut
+
+*/
+
+static void
+help(void)
+{
+ ASSERT_ARGS(help)
+ /* split printf for C89 compliance on string length */
+ printf(
+ "parrot [Options] <file>\n"
+ " Options:\n"
+ " -h --help\n"
+ " -V --version\n"
+ " -I --include add path to include search\n"
+ " -L --library add path to library search\n"
+ " -H --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"
+ " -t --trace [flags]\n"
+ " <VM options>\n"
+ " -D --parrot-debug[=HEXFLAGS]\n"
+ " --help-debug\n");
+ printf(
+ " -w --warnings\n"
+ " -G --no-gc\n"
+ " --gc-debug\n"
+ " --leak-test|--destroy-at-end\n"
+ " -g --gc ms|inf set GC type\n"
+ " -. --wait Read a keystroke before starting\n"
+ " --runtime-prefix\n"
+ " <Compiler options>\n"
+ " -d --imcc-debug[=HEXFLAGS]\n"
+ " -v --verbose\n"
+ " -E --pre-process-only\n"
+ " -o --output=FILE\n"
+ " --output-pbc\n"
+ " -O --optimize[=LEVEL]\n"
+ " -a --pasm\n"
+ " -c --pbc\n"
+ " -r --run-pbc\n"
+ " -y --yydebug\n"
+ " <Language options>\n"
+ "see docs/running.pod for more\n");
+}
+
+
+/*
+
+=item C<static void Parrot_version(PARROT_INTERP)>
+
+Print out parrot version number.
+
+=cut
+
+*/
+
+static void
+Parrot_version(PARROT_INTERP)
+{
+ ASSERT_ARGS(Parrot_version)
+ printf("This is Parrot version " PARROT_VERSION);
+ printf(" built for " PARROT_ARCHNAME ".\n");
+ printf("Copyright (C) 2001-2010, Parrot Foundation.\n\
+\n\
+This code is distributed under the terms of the Artistic License 2.0.\
+\n\
+For more details, see the full text of the license in the LICENSE file\
+\n\
+included in the Parrot source tree.\n\n");
+
+ exit(EXIT_SUCCESS);
+}
+
+/*
+
+=item C<static void parseflags_minimal(PARROT_INTERP, int argc, char *argv[])>
+
+Parse minimal subset of args required for initializing interpreter.
+
+=cut
+
+*/
+static void
+parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+{
+ ASSERT_ARGS(parseflags_minimal)
+
+ int pos = 0;
+ const char *arg;
+ while (pos < argc) {
+ arg = argv[pos];
+ if (STREQ(arg, "--gc")) {
+ ++pos;
+ if (pos == argc) {
+ fprintf(stderr,
+ "main: No GC specified."
+ "\n\nhelp: parrot -h\n");
+ exit(EXIT_FAILURE);
+ }
+ arg = argv[pos];
+ if (STREQ(arg, "ms"))
+ interp->gc_sys->sys_type = MS;
+ else if (STREQ(arg, "inf"))
+ interp->gc_sys->sys_type = INF;
+ else {
+ fprintf(stderr,
+ "main: Unrecognized GC '%s' specified."
+ "\n\nhelp: parrot -h\n", arg);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ }
+ else if (STREQ(arg, "--hash-seed")) {
+ ++pos;
+ arg = argv[pos];
+ if (is_all_hex_digits(arg)) {
+ interp->hash_seed = strtoul(arg, NULL, 16);
+ }
+ }
+ ++pos;
+ }
+}
+
+/*
+
+=item C<static const char * parseflags(PARROT_INTERP, int *argc, char **argv[],
+Parrot_Run_core_t *core, Parrot_trace_flags *trace)>
+
+Parse Parrot's command line for options and set appropriate flags.
+
+=cut
+
+*/
+
+PARROT_CAN_RETURN_NULL
+static const char *
+parseflags(PARROT_INTERP,
+ ARGIN(int *argc), ARGIN(char **argv[]),
+ ARGIN(Parrot_Run_core_t *core), ARGIN(Parrot_trace_flags *trace))
+{
+ ASSERT_ARGS(parseflags)
+ struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
+ int status;
+ /* g++ complains if we cast char** to const char** directly. However, nobody
+ ever complains if you const to void* first. Sure we lose a certain
+ amount of compiler-enforced type safety, but this is a rare occasion
+ with a very long explanatory comment. */
+ const char ** const _tempargv = (const char **)((void *)*argv);
+
+ if (*argc == 1) {
+ usage(stderr);
+ exit(EXIT_SUCCESS);
+ }
+
+ imcc_start_handling_flags(interp);
+
+ while ((status = longopt_get(interp, *argc, _tempargv, options,
+ &opt)) > 0) {
+ switch (opt.opt_id) {
+ case 'R':
+ if (STREQ(opt.opt_arg, "slow") || STREQ(opt.opt_arg, "bounds"))
+ *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"))
+ *core = PARROT_SLOW_CORE;
+ else if (STREQ(opt.opt_arg, "profiling"))
+ *core = PARROT_PROFILING_CORE;
+ else if (STREQ(opt.opt_arg, "gcdebug"))
+ *core = PARROT_GC_DEBUG_CORE;
+ else {
+ fprintf(stderr,
+ "main: Unrecognized runcore '%s' specified."
+ "\n\nhelp: parrot -h\n", opt.opt_arg);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case 'g':
+ /* Handled in parseflags_minimal */
+ break;
+ case 't':
+ if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
+ const unsigned long _temp = strtoul(opt.opt_arg, NULL, 16);
+ const Parrot_trace_flags _temp_flag = (Parrot_trace_flags)_temp;
+ *trace = _temp_flag;
+ }
+ else
+ *trace = PARROT_TRACE_OPS_FLAG;
+ break;
+ case 'D':
+ if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
+ SET_DEBUG(strtoul(opt.opt_arg, NULL, 16));
+ }
+ else
+ SET_DEBUG(PARROT_MEM_STAT_DEBUG_FLAG);
+ break;
+
+ case '.': /* Give Windows Parrot hackers an opportunity to
+ * attach a debuggger. */
+ fgetc(stdin);
+ break;
+ case 'h':
+ help();
+ exit(EXIT_FAILURE);
+ break;
+ case 'H':
+ /* handled in parseflags_minimal */
+ break;
+ case OPT_HELP_DEBUG:
+ help_debug();
+ exit(EXIT_FAILURE);
+ break;
+ case OPT_RUNTIME_PREFIX:
+ Parrot_io_printf(interp, "%Ss\n",
+ Parrot_get_runtime_path(interp));
+ exit(EXIT_SUCCESS);
+ case 'V':
+ Parrot_version(interp);
+ break;
+
+ case OPT_GC_DEBUG:
+#if DISABLE_GC_DEBUG
+ Parrot_warn(interp, PARROT_WARNINGS_ALL_FLAG,
+ "PARROT_GC_DEBUG is set but the binary was compiled "
+ "with DISABLE_GC_DEBUG.");
+#endif
+ SET_FLAG(PARROT_GC_DEBUG_FLAG);
+ break;
+ case OPT_DESTROY_FLAG:
+ SET_FLAG(PARROT_DESTROY_FLAG);
+ break;
+ case 'I':
+ Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
+ PARROT_LIB_PATH_INCLUDE);
+ break;
+ case 'L':
+ Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
+ PARROT_LIB_PATH_LIBRARY);
+ break;
+ case 'X':
+ Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
+ PARROT_LIB_PATH_DYNEXT);
+ break;
+ default:
+ /* Delegate handling of IMCC flags to IMCC */
+ if (imcc_handle_flag(interp, &opt, core))
+ break;
+
+ /* PIRC flags handling goes here */
+ fprintf(stderr,
+ "main: Invalid flag '%s' used.\n\nhelp: parrot -h\n",
+ (*argv)[0]);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ if (status == -1) {
+ fprintf(stderr, "%s\n", opt.opt_error);
+ usage(stderr);
+ exit(EXIT_FAILURE);
+ }
+
+ /* reached the end of the option list and consumed all of argv */
+ if (*argc == opt.opt_index) {
+ if (interp->output_file) {
+ fprintf(stderr, "Missing program name or argument for -o\n");
+ }
+ else {
+ /* We are not looking at an option, so it must be a program name */
+ fprintf(stderr, "Missing program name\n");
+ }
+ usage(stderr);
+ exit(EXIT_FAILURE);
+ }
+
+ *argc -= opt.opt_index;
+ *argv += opt.opt_index;
+
+ return (*argv)[0];
+}
/*
=back
Modified: branches/ops_pct/src/multidispatch.c
==============================================================================
--- branches/ops_pct/src/multidispatch.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/multidispatch.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -51,7 +51,6 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static INTVAL distance_cmp(SHIM_INTERP, INTVAL a, INTVAL b);
static void mmd_add_multi_global(PARROT_INTERP,
ARGIN(STRING *sub_name),
ARGIN(PMC *sub_obj))
@@ -129,13 +128,6 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-static int mmd_search_local(PARROT_INTERP,
- ARGIN(STRING *name),
- ARGIN(PMC *candidates))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static PMC * Parrot_mmd_get_cached_multi_sig(PARROT_INTERP,
@@ -151,12 +143,6 @@
__attribute__nonnull__(3);
PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static PMC* Parrot_mmd_search_scopes(PARROT_INTERP, ARGIN(STRING *meth))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_CANNOT_RETURN_NULL
static PMC * Parrot_mmd_sort_candidates(PARROT_INTERP,
ARGIN(PMC *arg_tuple),
ARGIN(PMC *cl))
@@ -164,7 +150,6 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-#define ASSERT_ARGS_distance_cmp __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_mmd_add_multi_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(sub_name) \
@@ -206,10 +191,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(cl))
-#define ASSERT_ARGS_mmd_search_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(name) \
- , PARROT_ASSERT_ARG(candidates))
#define ASSERT_ARGS_Parrot_mmd_get_cached_multi_sig \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -218,9 +199,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc) \
, PARROT_ASSERT_ARG(cl))
-#define ASSERT_ARGS_Parrot_mmd_search_scopes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(meth))
#define ASSERT_ARGS_Parrot_mmd_sort_candidates __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(arg_tuple) \
@@ -255,7 +233,7 @@
Parrot_mmd_find_multi_from_sig_obj(PARROT_INTERP, ARGIN(STRING *name), ARGIN(PMC *invoke_sig))
{
ASSERT_ARGS(Parrot_mmd_find_multi_from_sig_obj)
- PMC * const candidate_list = pmc_new(interp, enum_class_ResizablePMCArray);
+ PMC * const candidate_list = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
mmd_search_by_sig_obj(interp, name, invoke_sig, candidate_list);
mmd_search_global(interp, name, candidate_list);
@@ -389,41 +367,6 @@
VTABLE_get_pmc(interp, invoke_sig), candidates);
}
-
-
-/*
-
-=item C<static INTVAL distance_cmp(PARROT_INTERP, INTVAL a, INTVAL b)>
-
-Compare distance values C<a> and C<b>. Return 1 if C<a> is larger, -1 if
-C<b> is.
-
-=cut
-
-*/
-
-static INTVAL
-distance_cmp(SHIM_INTERP, INTVAL a, INTVAL b)
-{
- ASSERT_ARGS(distance_cmp)
- short da = (short)(a & 0xffff);
- short db = (short)(b & 0xffff);
-
- /* sort first by distance */
- if (da > db)
- return 1;
-
- if (da < db)
- return -1;
-
- /* end then by index in candidate list */
- da = (short)(a >> 16);
- db = (short)(b >> 16);
-
- return da > db ? 1 : da < db ? -1 : 0;
-}
-
-
/*
=item C<static PMC* mmd_build_type_tuple_from_type_list(PARROT_INTERP, PMC
@@ -442,7 +385,7 @@
mmd_build_type_tuple_from_type_list(PARROT_INTERP, ARGIN(PMC *type_list))
{
ASSERT_ARGS(mmd_build_type_tuple_from_type_list)
- PMC *multi_sig = constant_pmc_new(interp, enum_class_FixedIntegerArray);
+ PMC *multi_sig = Parrot_pmc_new_constant(interp, enum_class_FixedIntegerArray);
INTVAL param_count = VTABLE_elements(interp, type_list);
INTVAL i;
@@ -461,7 +404,7 @@
else if (Parrot_str_equal(interp, type_name, CONST_STRING(interp, "FLOATVAL")))
type = enum_type_FLOATVAL;
else
- type = pmc_type(interp, type_name);
+ type = Parrot_pmc_get_type_str(interp, type_name);
VTABLE_set_integer_keyed_int(interp, multi_sig, i, type);
}
@@ -513,9 +456,8 @@
Parrot_mmd_build_type_tuple_from_sig_obj(PARROT_INTERP, ARGIN(PMC *sig_obj))
{
ASSERT_ARGS(Parrot_mmd_build_type_tuple_from_sig_obj)
- PMC * const type_tuple = pmc_new(interp, enum_class_ResizableIntegerArray);
+ PMC * const type_tuple = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
STRING *string_sig = VTABLE_get_string(interp, sig_obj);
- INTVAL tuple_size = 0;
INTVAL args_ended = 0;
INTVAL i, seen_invocant = 0;
INTVAL sig_len;
@@ -633,7 +575,7 @@
if (!sig)
return PMCNULL;
- type = pmc_type(interp, sig);
+ type = Parrot_pmc_get_type_str(interp, sig);
if (type == enum_type_undef)
return PMCNULL;
@@ -642,11 +584,11 @@
type = VTABLE_get_integer(interp, sig_elem);
}
else
- type = pmc_type_p(interp, sig_elem);
+ type = Parrot_pmc_get_type(interp, sig_elem);
/* create destination PMC only as necessary */
if (PMC_IS_NULL(ar)) {
- ar = pmc_new(interp, enum_class_FixedIntegerArray);
+ ar = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
VTABLE_set_integer_native(interp, ar, n);
}
@@ -884,33 +826,6 @@
/*
-=item C<static PMC* Parrot_mmd_search_scopes(PARROT_INTERP, STRING *meth)>
-
-Search all scopes for MMD candidates matching the arguments given in
-C<arg_tuple>.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static PMC*
-Parrot_mmd_search_scopes(PARROT_INTERP, ARGIN(STRING *meth))
-{
- ASSERT_ARGS(Parrot_mmd_search_scopes)
- PMC * const candidates = pmc_new(interp, enum_class_ResizablePMCArray);
- const int stop = mmd_search_local(interp, meth, candidates);
-
- if (!stop)
- mmd_search_global(interp, meth, candidates);
-
- return candidates;
-}
-
-
-/*
-
=item C<static int Parrot_mmd_maybe_candidate(PARROT_INTERP, PMC *pmc, PMC *cl)>
If the candidate C<pmc> is a Sub PMC, push it on the candidate list and
@@ -956,28 +871,6 @@
/*
-=item C<static int mmd_search_local(PARROT_INTERP, STRING *name, PMC
-*candidates)>
-
-Search the current package namespace for matching candidates. Return
-TRUE if the MMD search should stop.
-
-=cut
-
-*/
-
-static int
-mmd_search_local(PARROT_INTERP, ARGIN(STRING *name), ARGIN(PMC *candidates))
-{
- ASSERT_ARGS(mmd_search_local)
- PMC * const multi_sub = Parrot_find_global_cur(interp, name);
-
- return multi_sub && Parrot_mmd_maybe_candidate(interp, multi_sub, candidates);
-}
-
-
-/*
-
=item C<static void mmd_search_by_sig_obj(PARROT_INTERP, STRING *name, PMC
*sig_obj, PMC *candidates)>
@@ -1061,7 +954,7 @@
PMC *multi_sub = Parrot_get_global(interp, ns, sub_name);
if (PMC_IS_NULL(multi_sub)) {
- multi_sub = constant_pmc_new(interp, enum_class_MultiSub);
+ multi_sub = Parrot_pmc_new_constant(interp, enum_class_MultiSub);
Parrot_set_global(interp, ns, sub_name, multi_sub);
}
@@ -1094,7 +987,7 @@
PMC *multi_sub = Parrot_get_global(interp, ns, sub_name);
if (PMC_IS_NULL(multi_sub)) {
- multi_sub = constant_pmc_new(interp, enum_class_MultiSub);
+ multi_sub = Parrot_pmc_new_constant(interp, enum_class_MultiSub);
Parrot_set_global(interp, ns, sub_name, multi_sub);
}
@@ -1172,7 +1065,7 @@
STRING *ns_name = VTABLE_get_string_keyed_int(interp, type_list, 0);
/* Create an NCI sub for the C function */
- PMC *sub_obj = constant_pmc_new(interp, enum_class_NCI);
+ PMC *sub_obj = Parrot_pmc_new_constant(interp, enum_class_NCI);
PMC *multi_sig = mmd_build_type_tuple_from_long_sig(interp,
long_sig_str);
@@ -1219,7 +1112,7 @@
STRING *ns_name = mmd_info[i].ns_name;
/* Create an NCI sub for the C function */
- PMC *sub_obj = constant_pmc_new(interp, enum_class_NCI);
+ PMC *sub_obj = Parrot_pmc_new_constant(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, sub_obj, short_sig,
F2DPTR(func_ptr));
@@ -1278,14 +1171,14 @@
const INTVAL num_values = VTABLE_elements(interp, values);
const INTVAL name_len = name ? strlen(name) + 1: 0;
const size_t id_size = num_values * sizeof (INTVAL) + name_len;
- INTVAL *type_ids = (INTVAL *)mem_sys_allocate(id_size);
+ INTVAL *type_ids = mem_gc_allocate_n_typed(interp, num_values + name_len, INTVAL);
STRING *key;
INTVAL i;
for (i = 0; i < num_values; i++) {
const INTVAL id = VTABLE_type(interp, VTABLE_get_pmc_keyed_int(interp, values, i));
if (id == 0) {
- mem_sys_free(type_ids);
+ mem_gc_free(interp, type_ids);
return NULL;
}
@@ -1296,7 +1189,7 @@
strcpy((char *)(type_ids + num_values), name);
key = Parrot_str_new(interp, (char *)type_ids, id_size);
- mem_sys_free(type_ids);
+ mem_gc_free(interp, type_ids);
return key;
}
@@ -1378,7 +1271,7 @@
const INTVAL num_types = VTABLE_elements(interp, types);
const INTVAL name_len = name ? strlen(name) + 1: 0;
const size_t id_size = num_types * sizeof (INTVAL) + name_len;
- INTVAL * const type_ids = (INTVAL *)mem_sys_allocate(id_size);
+ INTVAL * const type_ids = mem_gc_allocate_n_typed(interp, num_types + name_len, INTVAL);
STRING *key;
INTVAL i;
@@ -1387,7 +1280,7 @@
const INTVAL id = VTABLE_get_integer_keyed_int(interp, types, i);
if (id == 0) {
- mem_sys_free(type_ids);
+ mem_gc_free(interp, type_ids);
return NULL;
}
@@ -1399,7 +1292,7 @@
key = Parrot_str_new(interp, (char *)type_ids, id_size);
- mem_sys_free(type_ids);
+ mem_gc_free(interp, type_ids);
return key;
}
Copied: branches/ops_pct/src/nci/api.c (from r44740, trunk/src/nci/api.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/nci/api.c Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/nci/api.c)
@@ -0,0 +1,83 @@
+/* nci.c
+ * Copyright (C) 2001-2009, Parrot Foundation.
+ * SVN Info
+ * $Id$
+ * Overview:
+ * Native Call Interface routines. The code needed to build a
+ * parrot to C call frame is in here
+ * Data Structure and Algorithms:
+ * History:
+ * Notes:
+ * References:
+ */
+
+#include "parrot/parrot.h"
+#include "parrot/nci.h"
+#include "api.str"
+
+/* HEADERIZER HFILE: include/parrot/nci.h */
+/* HEADERIZER STOP */
+
+static void
+init_nci_funcs(PARROT_INTERP) {
+ VTABLE_set_pmc_keyed_int(interp, interp->iglobals, IGLOBALS_NCI_FUNCS,
+ Parrot_pmc_new(interp, enum_class_Hash));
+ Parrot_nci_load_core_thunks(interp);
+ Parrot_nci_load_extra_thunks(interp);
+}
+
+/* This function serves a single purpose. It takes the function
+ signature for a C function we want to call and returns a pointer
+ to a function that can call it. */
+
+void *
+build_call_func(PARROT_INTERP, SHIM(PMC *pmc_nci), NOTNULL(STRING *signature), SHIM(int *jitted)) {
+ PMC *iglobals;
+ PMC *nci_funcs;
+ PMC *thunk;
+
+ /* fixup empty signatures */
+ if (STRING_IS_EMPTY(signature))
+ signature = CONST_STRING(interp, "v");
+
+ iglobals = interp->iglobals;
+ if (PMC_IS_NULL(iglobals))
+ PANIC(interp, "iglobals isn't created yet");
+
+ nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FUNCS);
+ if (PMC_IS_NULL(nci_funcs))
+ PANIC(interp, "iglobals.nci_funcs isn't created_yet");
+
+ thunk = VTABLE_get_pmc_keyed_str(interp, nci_funcs, signature);
+
+ PARROT_ASSERT(PMC_IS_NULL(thunk) || thunk->vtable);
+
+ if ((!PMC_IS_NULL(thunk)) && thunk->vtable->base_type == enum_class_UnManagedStruct)
+ return F2DPTR(VTABLE_get_pointer(interp, thunk));
+
+ /*
+ These lines have been added to aid debugging. I want to be able to
+ see which signature has an unknown type. I am sure someone can come up
+ with a neater way to do this.
+ */
+ {
+ STRING *ns = CONST_STRING(interp, " is an unknown signature type");
+ STRING *message = Parrot_str_concat(interp, signature, ns, 0);
+
+ ns = CONST_STRING(interp, ".\nCAN_BUILD_CALL_FRAMES is disabled, add the signature to src/nci/extra_thunks.nci");
+ message = Parrot_str_concat(interp, message, ns, 0);
+
+ /*
+ * I think there may be memory issues with this but if we get to here we are
+ * aborting.
+ */
+ PANIC(interp, Parrot_str_to_cstring(interp, message));
+ }
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/ops_pct/src/nci/core_thunks.c (from r44740, trunk/src/nci/core_thunks.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/nci/core_thunks.c Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/nci/core_thunks.c)
@@ -0,0 +1,1246 @@
+/* ex: set ro ft=c:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically by tools/dev/nci_thunk_gen.pir
+ *
+ * Any changes made here will be lost!
+ *
+ */
+
+/* src/nci/core_thunks.c
+ * Copyright (C) 2010, Parrot Foundation.
+ * SVN Info
+ * $Id$
+ * Overview:
+ * Native Call Interface routines. The code needed to build a
+ * parrot to C call frame is in here
+ * Data Structure and Algorithms:
+ * History:
+ * Notes:
+ * References:
+ */
+
+
+#include "parrot/parrot.h"
+#include "pmc/pmc_nci.h"
+
+
+#ifdef PARROT_IN_EXTENSION
+/* external libraries can't have strings statically compiled into parrot */
+# define CONST_STRING(i, s) Parrot_str_new_constant((i), (s))
+#else
+# include "core_thunks.str"
+#endif
+
+/* HEADERIZER HFILE: none */
+/* HEADERIZER STOP */
+
+/* All our static functions that call in various ways. Yes, terribly
+ hackish, but that is just fine */
+
+
+static void
+pcf_d_JOd(PARROT_INTERP, PMC *self)
+{
+ typedef double(* func_t)(PARROT_INTERP, PMC *, double);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ FLOATVAL return_data;
+
+ PMC * t_1;
+ FLOATVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiN", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (double)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "N", return_data);
+
+
+
+}
+static void
+pcf_I_JOS(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_P_JOl(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+}
+static void
+pcf_P_Jt(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_S_JOS(PARROT_INTERP, PMC *self)
+{
+ typedef STRING *(* func_t)(PARROT_INTERP, PMC *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ STRING * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", return_data);
+
+
+
+}
+static void
+pcf_I_JI(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_v_JOSP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_v_JOS(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_P_JOS(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+}
+static void
+pcf_I_JOI(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_P_JOP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiP", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+}
+static void
+pcf_P_JOPS(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ STRING * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPS", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+}
+static void
+pcf_v_JOPSP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, STRING *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ STRING * t_3;
+ PMC * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPSP", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+
+
+
+
+
+
+}
+static void
+pcf_v_JPPP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_v_JPIP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_v_JPSP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_v_JPNP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ FLOATVAL t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PNP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_v_JPP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_v_JPI(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_v_JPS(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_v_JPN(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ FLOATVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PN", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_P_JPPP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+}
+static void
+pcf_P_JPIP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+}
+static void
+pcf_P_JPSP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+}
+static void
+pcf_P_JPNP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, FLOATVAL, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ FLOATVAL t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PNP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+}
+static void
+pcf_I_JPP(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_I_JPS(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_I_JPN(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ FLOATVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PN", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_JP(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_v_JP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1);
+
+
+
+}
+static void
+pcf_i_JPi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_JPii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_JPiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIII", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+}
+static void
+pcf_i_JPt(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_P_JOSSS(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, STRING *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ STRING * t_3;
+ STRING * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSSS", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+
+}
+static void
+pcf_v_JOSS(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ STRING * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSS", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_S_JOI(PARROT_INTERP, PMC *self)
+{
+ typedef STRING *(* func_t)(PARROT_INTERP, PMC *, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ STRING * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", return_data);
+
+
+
+}
+static void
+pcf_v_JOb(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ STRING *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, Buffer_bufstart(t_2));
+
+
+
+
+}
+static void
+pcf_i_JOPxAT_(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPs", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_I_JOPxAT_(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPs", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_I_JOIPxAT_(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, INTVAL, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ PMC * t_3;
+ PMC * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiIPPs", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+}
+static void
+pcf_P_JO(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+}
+static void
+pcf_v_JOP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiP", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_P_Ji(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+}
+
+ void
+Parrot_nci_load_core_thunks(PARROT_INTERP)
+;
+ void
+Parrot_nci_load_core_thunks(PARROT_INTERP)
+ {
+ PMC *iglobals;
+ PMC *nci_funcs;
+ PMC *temp_pmc;
+
+ iglobals = interp->iglobals;
+ PARROT_ASSERT(!(PMC_IS_NULL(iglobals)));
+
+ nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals,
+ IGLOBALS_NCI_FUNCS);
+ PARROT_ASSERT(!(PMC_IS_NULL(nci_funcs)));
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_d_JOd);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "dJOd"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JOS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJOS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_Jt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_S_JOS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "SJOS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOSP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOSP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JOI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJOI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOPS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOPS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOPSP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOPSP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPIP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPIP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPSP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPSP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPNP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPNP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JPN);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJPN"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JPPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJPPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JPIP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJPIP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JPSP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJPSP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JPNP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJPNP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JPS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJPS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JPN);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJPN"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JPi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJPi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JPii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJPii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JPiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJPiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JPt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJPt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOSSS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOSSS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOSS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOSS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_S_JOI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "SJOI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOb);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOb"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JOPxAT_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJOP@"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JOPxAT_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJOP@"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JOIPxAT_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJOIP@"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JO);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJO"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_Ji);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJi"), temp_pmc);
+
+
+}
+
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+
Copied: branches/ops_pct/src/nci/core_thunks.nci (from r44740, trunk/src/nci/core_thunks.nci)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/nci/core_thunks.nci Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/nci/core_thunks.nci)
@@ -0,0 +1,70 @@
+# Copyright (C) 2002-2010, Parrot Foundation.
+
+# This file contains the Parrot Native Call Interface signature
+# declarations required by Parrot's core. To add signatures for extensions,
+# add to F<src/nci/extra_thunks.nci>
+
+# The format of this file is explained in F<src/nci/extra_thunks.nci>
+
+d JOd # Parrot builtins
+I JOS
+P JOl
+P Jt
+S JOS # ParrotIO.readline
+I JI # Parrot_is_char_*
+v JOSP # String.trans
+v JOS # String.reverse
+P JOS # Added for os.stat
+I JOI # os.umask
+P JOP # atan2
+P JOPS # Namespace.get_global
+v JOPSP # Namespace.set_global
+
+v JPPP # infix MMD
+v JPIP
+v JPSP
+v JPNP
+
+v JPP # inplace infix MMD
+v JPI
+v JPS
+v JPN
+
+P JPPP # infix MMD new
+P JPIP
+P JPSP
+P JPNP
+
+I JPP # MMD compare
+
+# These are needed for packfileconstanttable.pmc
+I JPS
+I JPN
+
+# These are needed for parrotio.pmc
+i JP
+v JP
+i JPi
+i JPii
+i JPiii
+i JPt
+P JOSSS
+
+# Needed by string.pmc
+v JOSS
+
+# Needed by integer.pmc
+S JOI
+
+# src/pmc/nci.pmc
+v JOb
+
+# ParrotThread creation
+i JOP@
+I JOP@
+I JOIP@
+
+# other ParrotThread
+P JO
+v JOP
+P Ji
Copied: branches/ops_pct/src/nci/extra_thunks.c (from r44740, trunk/src/nci/extra_thunks.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/nci/extra_thunks.c Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/nci/extra_thunks.c)
@@ -0,0 +1,7238 @@
+/* ex: set ro ft=c:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically by tools/dev/nci_thunk_gen.pir
+ *
+ * Any changes made here will be lost!
+ *
+ */
+
+/* src/nci/extra_thunks.c
+ * Copyright (C) 2010, Parrot Foundation.
+ * SVN Info
+ * $Id$
+ * Overview:
+ * Native Call Interface routines. The code needed to build a
+ * parrot to C call frame is in here
+ * Data Structure and Algorithms:
+ * History:
+ * Notes:
+ * References:
+ */
+
+
+#include "parrot/parrot.h"
+#include "pmc/pmc_nci.h"
+
+
+#ifdef PARROT_IN_EXTENSION
+/* external libraries can't have strings statically compiled into parrot */
+# define CONST_STRING(i, s) Parrot_str_new_constant((i), (s))
+#else
+# include "extra_thunks.str"
+#endif
+
+/* HEADERIZER HFILE: none */
+/* HEADERIZER STOP */
+
+/* All our static functions that call in various ways. Yes, terribly
+ hackish, but that is just fine */
+
+
+static void
+pcf_v_J(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ ;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "");
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp);
+
+
+}
+static void
+pcf_i_ip(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_JPip(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_JpP(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, void *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_Jpii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_p(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_i_tp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(char *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ char *t_0; STRING *ts_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+}
+static void
+pcf_p_J(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(PARROT_INTERP);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ ;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "");
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(interp);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+}
+static void
+pcf_p_Jp(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(PARROT_INTERP, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+}
+static void
+pcf_t_J(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(PARROT_INTERP);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ ;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "");
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(interp);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+}
+static void
+pcf_t_Jpti(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(PARROT_INTERP, void *, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_1, &ts_2, &t_3);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+
+}
+static void
+pcf_t_p(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0));
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+}
+static void
+pcf_t_pt(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_v_p(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0));
+
+
+}
+static void
+pcf_v_pit(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, int, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_v_ptt(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, char *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSS", &t_0, &ts_1, &ts_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_v_Jtiiipt(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, char *, int, int, int, void *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ PMC *t_5;
+ char *t_6; STRING *ts_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIIIPS", &ts_1, &t_2, &t_3, &t_4, &t_5, &ts_6);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3, t_4, PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), t_6);
+
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+
+
+
+if (t_6) Parrot_str_free_cstring(t_6);
+}
+static void
+pcf_p_JttPP(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(PARROT_INTERP, char *, char *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ PMC * t_3;
+ PMC * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSPP", &ts_1, &ts_2, &t_3, &t_4);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+
+
+}
+static void
+pcf_P_Jtpi(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, char *, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ char *t_1; STRING *ts_1;
+ PMC *t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPI", &ts_1, &t_2, &t_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+
+}
+static void
+pcf_i_Vppp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void **, void *, void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0; void *v_0;
+ PMC *t_1;
+ PMC *t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
+ v_0 = VTABLE_get_pointer(interp, t_0);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(&v_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ VTABLE_set_pointer(interp, t_0, v_0);
+
+
+
+}
+static void
+pcf_v_JpPP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, void *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_1;
+ PMC * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_v_pt(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+
+
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_v_Jpt(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, void *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
+
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_v_(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)();
+
+
+}
+static void
+pcf_v_Jiiip(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, int, int, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ PMC *t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIP", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
+
+
+
+
+
+
+}
+static void
+pcf_v_i(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(t_0);
+
+
+}
+static void
+pcf_v_ii(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(t_0, t_1);
+
+
+
+}
+static void
+pcf_v_illllllll(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(int, long, long, long, long, long, long, long, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ INTVAL t_7;
+ INTVAL t_8;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7, t_8);
+
+
+
+
+
+
+
+
+
+
+}
+static void
+pcf_v_l(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(t_0);
+
+
+}
+static void
+pcf_v_pbip(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, void *, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ STRING *t_1;
+ INTVAL t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIP", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), Buffer_bufstart(t_1), t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+
+
+
+
+
+}
+static void
+pcf_v_pi(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+
+
+
+}
+static void
+pcf_v_piiii(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIII", &t_0, &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
+
+
+
+
+
+
+}
+static void
+pcf_v_pl(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+
+
+
+}
+static void
+pcf_v_pp(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+
+
+
+}
+static void
+pcf_i_JPP(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_P_JP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+}
+static void
+pcf_P_JPP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+}
+static void
+pcf_P_JO(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+}
+static void
+pcf_S_JO(PARROT_INTERP, PMC *self)
+{
+ typedef STRING *(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ STRING * return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (STRING *)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", return_data);
+
+
+}
+static void
+pcf_i_P(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_P_JOPP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+}
+static void
+pcf_P_JOPPP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ PMC * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPP", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+
+}
+static void
+pcf_v_JOPP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_v_JOPPP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ PMC * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPP", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+
+
+
+
+
+
+}
+static void
+pcf_P_JOPPPP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ PMC * t_4;
+ PMC * t_5;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPPP", &t_1, &t_2, &t_3, &t_4, &t_5);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4, t_5);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+
+
+}
+static void
+pcf_P_JOPPPPP(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *, PMC *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ PMC * t_2;
+ PMC * t_3;
+ PMC * t_4;
+ PMC * t_5;
+ PMC * t_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPPPP", &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4, t_5, t_6);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+
+
+
+}
+static void
+pcf_I_JOSI(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSI", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_P_JOSII(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSII", &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+
+}
+static void
+pcf_t_p3(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ PMC *t_1; int i_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
+ i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+}
+static void
+pcf_i_pp3p(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2; int i_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
+ i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), &i_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+VTABLE_set_integer_native(interp, t_2, i_2);
+
+}
+static void
+pcf_i_pp3(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2; int i_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
+ i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), &i_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+VTABLE_set_integer_native(interp, t_2, i_2);
+}
+static void
+pcf_i_ppd(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, double);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ FLOATVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPN", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_ptii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, char *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSII", &t_0, &ts_1, &t_2, &t_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+
+}
+static void
+pcf_i_pipi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ PMC *t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIPI", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_t_ptti(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *, char *, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSI", &t_0, &ts_1, &ts_2, &t_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+
+}
+static void
+pcf_t_pti(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+}
+static void
+pcf_t_pttti(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *, char *, char *, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ char *t_3; STRING *ts_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSI", &t_0, &ts_1, &ts_2, &ts_3, &t_4);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+if (t_3) Parrot_str_free_cstring(t_3);
+
+}
+static void
+pcf_p_Ji(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(PARROT_INTERP, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(interp, t_1);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+}
+static void
+pcf_p_Jipp(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(PARROT_INTERP, int, void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_1;
+ PMC *t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(interp, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+}
+static void
+pcf_p_Jbip(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(PARROT_INTERP, void *, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ STRING *t_1;
+ INTVAL t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(interp, Buffer_bufstart(t_1), t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+}
+static void
+pcf_v_Jp(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+
+
+
+}
+static void
+pcf_v_JS(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ STRING * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1);
+
+
+
+}
+static void
+pcf_t_tt(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(char *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ char *t_0; STRING *ts_0;
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SS", &ts_0, &ts_1);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(t_0, t_1);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_I_JOt(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_v_JOSI(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSI", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2, t_3);
+
+
+
+
+
+}
+static void
+pcf_S_JOi(PARROT_INTERP, PMC *self)
+{
+ typedef STRING *(* func_t)(PARROT_INTERP, PMC *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ STRING * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", return_data);
+
+
+
+}
+static void
+pcf_v_JOi(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_I_JO(PARROT_INTERP, PMC *self)
+{
+ typedef INTVAL(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (INTVAL)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_N_JO(PARROT_INTERP, PMC *self)
+{
+ typedef FLOATVAL(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ FLOATVAL return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (FLOATVAL)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "N", return_data);
+
+
+}
+static void
+pcf_v_JON(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ FLOATVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiN", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_P_JOi(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+}
+static void
+pcf_v_JOI(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_P_JOI(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+}
+static void
+pcf_P_JOIS(PARROT_INTERP, PMC *self)
+{
+ typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ STRING * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiIS", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", return_data);
+
+
+
+
+}
+static void
+pcf_S_JOSP(PARROT_INTERP, PMC *self)
+{
+ typedef STRING *(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ STRING * return_data;
+
+ PMC * t_1;
+ STRING * t_2;
+ PMC * t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSP", &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", return_data);
+
+
+
+
+}
+static void
+pcf_i_(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)();
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_i_i3i(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1; int i_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPI", &t_0, &t_1, &t_2);
+ i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, &i_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+
+}
+static void
+pcf_i_ibi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ STRING *t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISI", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, Buffer_bufstart(t_1), t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_l_lttl(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(long, char *, char *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISSI", &t_0, &ts_1, &ts_2, &t_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(t_0, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+
+}
+static void
+pcf_i_pip(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_piS(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, STRING *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ STRING * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_S_i(PARROT_INTERP, PMC *self)
+{
+ typedef STRING *(* func_t)(int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ STRING * return_data;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (STRING *)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", return_data);
+
+}
+static void
+pcf_l_p(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_c_p(PARROT_INTERP, PMC *self)
+{
+ typedef char(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_p_pi(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+}
+static void
+pcf_p_p(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+}
+static void
+pcf_i_pttttt(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, char *, char *, char *, char *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ char *t_3; STRING *ts_3;
+ char *t_4; STRING *ts_4;
+ char *t_5; STRING *ts_5;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSS", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &ts_5);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_5 = ts_5 ? Parrot_str_to_cstring(interp, ts_5) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+if (t_3) Parrot_str_free_cstring(t_3);
+if (t_4) Parrot_str_free_cstring(t_4);
+if (t_5) Parrot_str_free_cstring(t_5);
+}
+static void
+pcf_c_pttt(PARROT_INTERP, PMC *self)
+{
+ typedef char(* func_t)(void *, char *, char *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ char *t_3; STRING *ts_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSS", &t_0, &ts_1, &ts_2, &ts_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+if (t_3) Parrot_str_free_cstring(t_3);
+}
+static void
+pcf_p_pttttiti(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, char *, char *, char *, int, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ char *t_3; STRING *ts_3;
+ char *t_4; STRING *ts_4;
+ INTVAL t_5;
+ char *t_6; STRING *ts_6;
+ INTVAL t_7;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSISI", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &t_5, &ts_6, &t_7);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6, t_7);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+if (t_3) Parrot_str_free_cstring(t_3);
+if (t_4) Parrot_str_free_cstring(t_4);
+
+if (t_6) Parrot_str_free_cstring(t_6);
+
+}
+static void
+pcf_i_pt(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_i_ptl(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, char *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+}
+static void
+pcf_i_pi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_pl(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_l_(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)();
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_p_pt(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_p_ptt(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSS", &t_0, &ts_1, &ts_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_i_pit(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_p_pp(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+}
+static void
+pcf_l_ttl(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(char *, char *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ char *t_0; STRING *ts_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSI", &ts_0, &ts_1, &t_2);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(t_0, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ if (t_0) Parrot_str_free_cstring(t_0);
+if (t_1) Parrot_str_free_cstring(t_1);
+
+}
+static void
+pcf_l_pttl(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(void *, char *, char *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSI", &t_0, &ts_1, &ts_2, &t_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+
+}
+static void
+pcf_v_t(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ char *t_0; STRING *ts_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(t_0);
+
+ if (t_0) Parrot_str_free_cstring(t_0);
+}
+static void
+pcf_p_pttttitl(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, char *, char *, char *, int, char *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ char *t_3; STRING *ts_3;
+ char *t_4; STRING *ts_4;
+ INTVAL t_5;
+ char *t_6; STRING *ts_6;
+ INTVAL t_7;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSISI", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &t_5, &ts_6, &t_7);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6, t_7);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+if (t_3) Parrot_str_free_cstring(t_3);
+if (t_4) Parrot_str_free_cstring(t_4);
+
+if (t_6) Parrot_str_free_cstring(t_6);
+
+}
+static void
+pcf_p_tiB3P(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(char *, int, char **, int *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_0; STRING *ts_0;
+ INTVAL t_1;
+ char *t_2; STRING *ts_2;
+ PMC *t_3; int i_3;
+ PMC * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SISPP", &ts_0, &t_1, &ts_2, &t_3, &t_4);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *) NULL;i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1, &t_2, &i_3, t_4);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+if (t_2) Parrot_str_free_cstring(t_2);
+VTABLE_set_integer_native(interp, t_3, i_3);
+
+}
+static void
+pcf_p_tip3P(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(char *, int, void *, int *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_0; STRING *ts_0;
+ INTVAL t_1;
+ PMC *t_2;
+ PMC *t_3; int i_3;
+ PMC * t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIPPP", &ts_0, &t_1, &t_2, &t_3, &t_4);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), &i_3, t_4);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+
+VTABLE_set_integer_native(interp, t_3, i_3);
+
+}
+static void
+pcf_i_pPtiiipi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, PMC *, char *, int, int, int, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC * t_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ PMC *t_6;
+ INTVAL t_7;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPSIIIPI", &t_0, &t_1, &ts_2, &t_3, &t_4, &t_5, &t_6, &t_7);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, PMC_IS_NULL((PMC*)t_6) ? (void *)NULL : VTABLE_get_pointer(interp, t_6), t_7);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+
+
+
+
+
+}
+static void
+pcf_i_tpiibi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(char *, void *, int, int, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ char *t_0; STRING *ts_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ STRING *t_4;
+ INTVAL t_5;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPIISI", &ts_0, &t_1, &t_2, &t_3, &t_4, &t_5);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, Buffer_bufstart(t_4), t_5);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+
+
+
+
+}
+static void
+pcf_p_ptippppi(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, int, void *, void *, void *, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ PMC *t_3;
+ PMC *t_4;
+ PMC *t_5;
+ PMC *t_6;
+ INTVAL t_7;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPPPPI", &t_0, &ts_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4), PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), PMC_IS_NULL((PMC*)t_6) ? (void *)NULL : VTABLE_get_pointer(interp, t_6), t_7);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+
+
+
+
+
+}
+static void
+pcf_p_pi33ipi(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, int, int *, int *, int, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ INTVAL t_1;
+ PMC *t_2; int i_2;
+ PMC *t_3; int i_3;
+ INTVAL t_4;
+ PMC *t_5;
+ INTVAL t_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIPPIPI", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+ i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, &i_2, &i_3, t_4, PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), t_6);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+VTABLE_set_integer_native(interp, t_2, i_2);
+VTABLE_set_integer_native(interp, t_3, i_3);
+
+
+
+}
+static void
+pcf_p_pttip(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, char *, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ PMC *t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSIP", &t_0, &ts_1, &ts_2, &t_3, &t_4);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+
+
+}
+static void
+pcf_p_ptipppi(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, int, void *, void *, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ PMC *t_3;
+ PMC *t_4;
+ PMC *t_5;
+ INTVAL t_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPPPI", &t_0, &ts_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4), PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), t_6);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+
+
+
+
+}
+static void
+pcf_p_ppP(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, void *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC * t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+}
+static void
+pcf_p_iiil(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(int, int, int, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1, t_2, t_3);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+}
+static void
+pcf_i_ppl(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_v_pip(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+
+
+
+
+}
+static void
+pcf_p_pti(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+}
+static void
+pcf_i_ppp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_p_ptii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSII", &t_0, &ts_1, &t_2, &t_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+
+}
+static void
+pcf_p_ti(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_0; STRING *ts_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SI", &ts_0, &t_1);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+}
+static void
+pcf_p_ptp(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, char *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSP", &t_0, &ts_1, &t_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+}
+static void
+pcf_i_pt33(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, char *, int *, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ PMC *t_2; int i_2;
+ PMC *t_3; int i_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSPP", &t_0, &ts_1, &t_2, &t_3);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, &i_2, &i_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+VTABLE_set_integer_native(interp, t_3, i_3);
+}
+static void
+pcf_c_(PARROT_INTERP, PMC *self)
+{
+ typedef char(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char)(*fn_pointer)();
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_c_pi(PARROT_INTERP, PMC *self)
+{
+ typedef char(* func_t)(void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_d_(PARROT_INTERP, PMC *self)
+{
+ typedef double(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ FLOATVAL return_data;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (double)(*fn_pointer)();
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "N", return_data);
+
+}
+static void
+pcf_d_d(PARROT_INTERP, PMC *self)
+{
+ typedef double(* func_t)(double);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ FLOATVAL return_data;
+
+ FLOATVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "N", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (double)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "N", return_data);
+
+}
+static void
+pcf_f_(PARROT_INTERP, PMC *self)
+{
+ typedef float(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ FLOATVAL return_data;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (float)(*fn_pointer)();
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "N", return_data);
+
+}
+static void
+pcf_f_ff(PARROT_INTERP, PMC *self)
+{
+ typedef float(* func_t)(float, float);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ FLOATVAL return_data;
+
+ FLOATVAL t_0;
+ FLOATVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "NN", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (float)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "N", return_data);
+
+
+}
+static void
+pcf_f_is(PARROT_INTERP, PMC *self)
+{
+ typedef float(* func_t)(int, short);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ FLOATVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (float)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "N", return_data);
+
+
+}
+static void
+pcf_i_b(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ STRING *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(Buffer_bufstart(t_0));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_i_d(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(double);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ FLOATVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "N", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_i_i(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_i_ii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_ii4(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, long *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ PMC *t_2; long i_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIP", &t_0, &t_1, &t_2);
+ i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, &i_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+VTABLE_set_integer_native(interp, t_2, i_2);
+}
+static void
+pcf_i_ii4i(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, long *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ PMC *t_2; long i_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIPI", &t_0, &t_1, &t_2, &t_3);
+ i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, &i_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+VTABLE_set_integer_native(interp, t_2, i_2);
+
+}
+static void
+pcf_i_iiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_iiilsp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, int, long, short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ PMC *t_5;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIIP", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2, t_3, t_4, PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+}
+static void
+pcf_i_iil(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "III", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_iili(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, long, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_iip(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_iit(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIS", &t_0, &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_i_iiti(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IISI", &t_0, &t_1, &ts_2, &t_3);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+
+}
+static void
+pcf_i_ilsp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, long, short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIP", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_iti(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISI", &t_0, &ts_1, &t_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+}
+static void
+pcf_i_l(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_i_li(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(long, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_lp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(long, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_lsp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(long, short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_p33(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int *, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1; int i_1;
+ PMC *t_2; int i_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
+ i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+}
+static void
+pcf_i_p333(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int *, int *, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1; int i_1;
+ PMC *t_2; int i_2;
+ PMC *t_3; int i_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
+ i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2, &i_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+VTABLE_set_integer_native(interp, t_3, i_3);
+}
+static void
+pcf_i_p333333(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int *, int *, int *, int *, int *, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1; int i_1;
+ PMC *t_2; int i_2;
+ PMC *t_3; int i_3;
+ PMC *t_4; int i_4;
+ PMC *t_5; int i_5;
+ PMC *t_6; int i_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPPPPP", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+ i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);i_4 = VTABLE_get_integer(interp, t_4);i_5 = VTABLE_get_integer(interp, t_5);i_6 = VTABLE_get_integer(interp, t_6);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2, &i_3, &i_4, &i_5, &i_6);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+VTABLE_set_integer_native(interp, t_3, i_3);
+VTABLE_set_integer_native(interp, t_4, i_4);
+VTABLE_set_integer_native(interp, t_5, i_5);
+VTABLE_set_integer_native(interp, t_6, i_6);
+}
+static void
+pcf_i_p4(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1; long i_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
+ i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+}
+static void
+pcf_i_p42p(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long *, short *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1; long i_1;
+ PMC *t_2; short i_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
+ i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+
+}
+static void
+pcf_i_p4i(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1; long i_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_2);
+ i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+
+}
+static void
+pcf_i_pb(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ STRING *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), Buffer_bufstart(t_1));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_pii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_pii4(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, long *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ PMC *t_3; long i_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIP", &t_0, &t_1, &t_2, &t_3);
+ i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, &i_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+VTABLE_set_integer_native(interp, t_3, i_3);
+}
+static void
+pcf_i_pii4i(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, long *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ PMC *t_3; long i_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIPI", &t_0, &t_1, &t_2, &t_3, &t_4);
+ i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, &i_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+VTABLE_set_integer_native(interp, t_3, i_3);
+
+}
+static void
+pcf_i_piii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_piiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+}
+static void
+pcf_i_piiilsp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, int, long, short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ PMC *t_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIIIP", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, PMC_IS_NULL((PMC*)t_6) ? (void *)NULL : VTABLE_get_pointer(interp, t_6));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+}
+static void
+pcf_i_piil(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_piili(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, long, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIII", &t_0, &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+}
+static void
+pcf_i_piit(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ char *t_3; STRING *ts_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIS", &t_0, &t_1, &t_2, &ts_3);
+ t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+if (t_3) Parrot_str_free_cstring(t_3);
+}
+static void
+pcf_i_piiti(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, int, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ char *t_3; STRING *ts_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIISI", &t_0, &t_1, &t_2, &ts_3, &t_4);
+ t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+if (t_3) Parrot_str_free_cstring(t_3);
+
+}
+static void
+pcf_i_pilsp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, long, short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ PMC *t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIP", &t_0, &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+}
+static void
+pcf_i_pli(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_pll(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_pllllllll(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long, long, long, long, long, long, long, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ INTVAL t_7;
+ INTVAL t_8;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6, t_7, t_8);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+
+
+}
+static void
+pcf_i_plp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_plsp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, long, short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIP", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_pp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_ppi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_ppiiiiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int, int, int, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ INTVAL t_7;
+ INTVAL t_8;
+ INTVAL t_9;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8, &t_9);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4, t_5, t_6, t_7, t_8, t_9);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+
+
+
+}
+static void
+pcf_i_pppp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2;
+ PMC *t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_psp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_pti(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+}
+static void
+pcf_i_pitl(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, char *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PISI", &t_0, &t_1, &ts_2, &t_3);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+
+}
+static void
+pcf_i_s(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(short);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_i_s22(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(short, short *, short *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1; short i_1;
+ PMC *t_2; short i_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPP", &t_0, &t_1, &t_2);
+ i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, &i_1, &i_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+}
+static void
+pcf_i_s222(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(short, short *, short *, short *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1; short i_1;
+ PMC *t_2; short i_2;
+ PMC *t_3; short i_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPPP", &t_0, &t_1, &t_2, &t_3);
+ i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, &i_1, &i_2, &i_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+VTABLE_set_integer_native(interp, t_3, i_3);
+}
+static void
+pcf_i_sp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(short, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_sss(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(short, short, short);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "III", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_ssss(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(short, short, short, short);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_t(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ char *t_0; STRING *ts_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ if (t_0) Parrot_str_free_cstring(t_0);
+}
+static void
+pcf_i_ti(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(char *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ char *t_0; STRING *ts_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SI", &ts_0, &t_1);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+}
+static void
+pcf_i_4(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(long *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0; long i_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+ i_0 = VTABLE_get_integer(interp, t_0);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(&i_0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ VTABLE_set_integer_native(interp, t_0, i_0);
+}
+static void
+pcf_i_4i(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(long *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0; long i_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+ i_0 = VTABLE_get_integer(interp, t_0);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(&i_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ VTABLE_set_integer_native(interp, t_0, i_0);
+
+}
+static void
+pcf_i_42p(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(long *, short *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0; long i_0;
+ PMC *t_1; short i_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
+ i_0 = VTABLE_get_integer(interp, t_0);i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(&i_0, &i_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ VTABLE_set_integer_native(interp, t_0, i_0);
+VTABLE_set_integer_native(interp, t_1, i_1);
+
+}
+static void
+pcf_l_ii(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_l_l4(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(long, long *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1; long i_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
+ i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(t_0, &i_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+}
+static void
+pcf_l_pi(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_l_pii(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_l_p33l(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(void *, int *, int *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1; int i_1;
+ PMC *t_2; int i_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPI", &t_0, &t_1, &t_2, &t_3);
+ i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+VTABLE_set_integer_native(interp, t_2, i_2);
+
+}
+static void
+pcf_l_33l(PARROT_INTERP, PMC *self)
+{
+ typedef long(* func_t)(int *, int *, long);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0; int i_0;
+ PMC *t_1; int i_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_2);
+ i_0 = VTABLE_get_integer(interp, t_0);i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (long)(*fn_pointer)(&i_0, &i_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ VTABLE_set_integer_native(interp, t_0, i_0);
+VTABLE_set_integer_native(interp, t_1, i_1);
+
+}
+static void
+pcf_p_(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)();
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+}
+static void
+pcf_p_B(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(char **);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_0; STRING *ts_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *) NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(&t_0);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+}
+static void
+pcf_p_b(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ STRING *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(Buffer_bufstart(t_0));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+}
+static void
+pcf_p_Jt(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(PARROT_INTERP, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(interp, t_1);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_p_i(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+}
+static void
+pcf_p_ii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+}
+static void
+pcf_p_iiii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1, t_2, t_3);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+}
+static void
+pcf_p_iiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(int, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1, t_2, t_3, t_4, t_5);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+
+
+}
+static void
+pcf_p_iiiiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(int, int, int, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ INTVAL t_7;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+
+
+
+
+}
+static void
+pcf_p_pii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+}
+static void
+pcf_p_piiii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIII", &t_0, &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+
+}
+static void
+pcf_p_t(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_0; STRING *ts_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+}
+static void
+pcf_p_tpp(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(char *, void *, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_0; STRING *ts_0;
+ PMC *t_1;
+ PMC *t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPP", &ts_0, &t_1, &t_2);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+
+}
+static void
+pcf_p_ttttttt(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(char *, char *, char *, char *, char *, char *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ char *t_0; STRING *ts_0;
+ char *t_1; STRING *ts_1;
+ char *t_2; STRING *ts_2;
+ char *t_3; STRING *ts_3;
+ char *t_4; STRING *ts_4;
+ char *t_5; STRING *ts_5;
+ char *t_6; STRING *ts_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSSSSSS", &ts_0, &ts_1, &ts_2, &ts_3, &ts_4, &ts_5, &ts_6);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_5 = ts_5 ? Parrot_str_to_cstring(interp, ts_5) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, t_1, t_2, t_3, t_4, t_5, t_6);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+if (t_1) Parrot_str_free_cstring(t_1);
+if (t_2) Parrot_str_free_cstring(t_2);
+if (t_3) Parrot_str_free_cstring(t_3);
+if (t_4) Parrot_str_free_cstring(t_4);
+if (t_5) Parrot_str_free_cstring(t_5);
+if (t_6) Parrot_str_free_cstring(t_6);
+}
+static void
+pcf_s_(PARROT_INTERP, PMC *self)
+{
+ typedef short(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (short)(*fn_pointer)();
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+}
+static void
+pcf_t_(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ ;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)();
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+}
+static void
+pcf_t_i(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ INTVAL t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(t_0);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+}
+static void
+pcf_t_ii(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(t_0, t_1);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+
+}
+static void
+pcf_t_pi(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+
+}
+static void
+pcf_t_pii(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+
+
+}
+static void
+pcf_t_t(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ char *t_0; STRING *ts_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(t_0);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+}
+static void
+pcf_t_tl4(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(char *, long, long *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ char *t_0; STRING *ts_0;
+ INTVAL t_1;
+ PMC *t_2; long i_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIP", &ts_0, &t_1, &t_2);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_2 = VTABLE_get_integer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(t_0, t_1, &i_2);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+
+VTABLE_set_integer_native(interp, t_2, i_2);
+}
+static void
+pcf_t_t4(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(char *, long *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ char *t_0; STRING *ts_0;
+ PMC *t_1; long i_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(t_0, &i_1);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+VTABLE_set_integer_native(interp, t_1, i_1);
+}
+static void
+pcf_i_sc(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(short, char);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_s_sc(PARROT_INTERP, PMC *self)
+{
+ typedef short(* func_t)(short, char);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (short)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_c_sc(PARROT_INTERP, PMC *self)
+{
+ typedef char(* func_t)(short, char);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char)(*fn_pointer)(t_0, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_iii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "III", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_i3(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_0;
+ PMC *t_1; int i_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
+ i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, &i_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+VTABLE_set_integer_native(interp, t_1, i_1);
+}
+static void
+pcf_t_b(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ STRING *t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(Buffer_bufstart(t_0));
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+
+}
+static void
+pcf_t_B(PARROT_INTERP, PMC *self)
+{
+ typedef char *(* func_t)(char **);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ char * return_data;
+STRING *final_destination;
+
+ char *t_0; STRING *ts_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *) NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (char *)(*fn_pointer)(&t_0);
+ final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "S", final_destination);
+ if (t_0) Parrot_str_free_cstring(t_0);
+}
+static void
+pcf_v_P(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(t_0);
+
+
+}
+static void
+pcf_v_pP(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
+
+
+
+}
+static void
+pcf_p_ip(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(int, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ INTVAL t_0;
+ PMC *t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+}
+static void
+pcf_i_33(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(int *, int *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0; int i_0;
+ PMC *t_1; int i_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
+ i_0 = VTABLE_get_integer(interp, t_0);i_1 = VTABLE_get_integer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(&i_0, &i_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ VTABLE_set_integer_native(interp, t_0, i_0);
+VTABLE_set_integer_native(interp, t_1, i_1);
+}
+static void
+pcf_v_pii(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+
+
+
+
+}
+static void
+pcf_v_JO(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(interp, t_1);
+
+
+
+}
+static void
+pcf_i_JO(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_i_JOi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ INTVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_JOt(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, PMC *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC * t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_i_Jt(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ char *t_1; STRING *ts_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+}
+static void
+pcf_i_Ji(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(PARROT_INTERP, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(interp, t_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+}
+static void
+pcf_v_Vi(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void **, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0; void *v_0;
+ INTVAL t_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
+ v_0 = VTABLE_get_pointer(interp, t_0);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(&v_0, t_1);
+
+ VTABLE_set_pointer(interp, t_0, v_0);
+
+}
+static void
+pcf_p_ppiii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, void *, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIII", &t_0, &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+
+}
+static void
+pcf_p_ppiiiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef void *(* func_t)(void *, void *, int, int, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+PMC * final_destination = PMCNULL;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ INTVAL t_7;
+ INTVAL t_8;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4, t_5, t_6, t_7, t_8);
+ if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "P", final_destination);
+
+
+
+
+
+
+
+
+
+}
+static void
+pcf_i_ppii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPII", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_ppiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIII", &t_0, &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+}
+static void
+pcf_i_ppiiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4, t_5);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+}
+static void
+pcf_i_ppiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4, t_5, t_6);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+}
+static void
+pcf_i_ppiiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, int, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ INTVAL t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ INTVAL t_7;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4, t_5, t_6, t_7);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+
+}
+static void
+pcf_i_ppt(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, char *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ char *t_2; STRING *ts_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPS", &t_0, &t_1, &ts_2);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+}
+static void
+pcf_i_pppi(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, void *, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2;
+ INTVAL t_3;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPI", &t_0, &t_1, &t_2, &t_3);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+}
+static void
+pcf_i_pppii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, void *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPII", &t_0, &t_1, &t_2, &t_3, &t_4);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+}
+static void
+pcf_i_pppiiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, void *, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3, t_4, t_5, t_6);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+}
+static void
+pcf_i_ppppiiiiii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, void *, void *, void *, int, int, int, int, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ PMC *t_1;
+ PMC *t_2;
+ PMC *t_3;
+ INTVAL t_4;
+ INTVAL t_5;
+ INTVAL t_6;
+ INTVAL t_7;
+ INTVAL t_8;
+ INTVAL t_9;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPPIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8, &t_9);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), t_4, t_5, t_6, t_7, t_8, t_9);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+
+
+
+
+
+
+
+}
+static void
+pcf_v_fff(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(float, float, float);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ FLOATVAL t_0;
+ FLOATVAL t_1;
+ FLOATVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "NNN", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(t_0, t_1, t_2);
+
+
+
+
+}
+static void
+pcf_v_V(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void **);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0; void *v_0;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
+ v_0 = VTABLE_get_pointer(interp, t_0);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(&v_0);
+
+ VTABLE_set_pointer(interp, t_0, v_0);
+}
+static void
+pcf_v_VVV(PARROT_INTERP, PMC *self)
+{
+ typedef void(* func_t)(void **, void **, void **);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ void * return_data;
+
+ PMC *t_0; void *v_0;
+ PMC *t_1; void *v_1;
+ PMC *t_2; void *v_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
+ v_0 = VTABLE_get_pointer(interp, t_0);v_1 = VTABLE_get_pointer(interp, t_1);v_2 = VTABLE_get_pointer(interp, t_2);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ (*fn_pointer)(&v_0, &v_1, &v_2);
+
+ VTABLE_set_pointer(interp, t_0, v_0);
+VTABLE_set_pointer(interp, t_1, v_1);
+VTABLE_set_pointer(interp, t_2, v_2);
+}
+static void
+pcf_i_tV(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(char *, void **);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ char *t_0; STRING *ts_0;
+ PMC *t_1; void *v_1;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
+ t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;v_1 = VTABLE_get_pointer(interp, t_1);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(t_0, &v_1);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+ if (t_0) Parrot_str_free_cstring(t_0);
+VTABLE_set_pointer(interp, t_1, v_1);
+}
+static void
+pcf_i_ptiVp(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, char *, int, void **, void *);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ char *t_1; STRING *ts_1;
+ INTVAL t_2;
+ PMC *t_3; void *v_3;
+ PMC *t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPP", &t_0, &ts_1, &t_2, &t_3, &t_4);
+ t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;v_3 = VTABLE_get_pointer(interp, t_3);
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, &v_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+if (t_1) Parrot_str_free_cstring(t_1);
+
+VTABLE_set_pointer(interp, t_3, v_3);
+
+}
+static void
+pcf_i_pid(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, double);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ FLOATVAL t_2;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIN", &t_0, &t_1, &t_2);
+
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+
+}
+static void
+pcf_i_pitii(PARROT_INTERP, PMC *self)
+{
+ typedef int(* func_t)(void *, int, char *, int, int);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ INTVAL return_data;
+
+ PMC *t_0;
+ INTVAL t_1;
+ char *t_2; STRING *ts_2;
+ INTVAL t_3;
+ INTVAL t_4;
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "PISII", &t_0, &t_1, &ts_2, &t_3, &t_4);
+ t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);
+
+
+if (t_2) Parrot_str_free_cstring(t_2);
+
+
+}
+
+ void
+Parrot_nci_load_extra_thunks(PARROT_INTERP)
+;
+ void
+Parrot_nci_load_extra_thunks(PARROT_INTERP)
+ {
+ PMC *iglobals;
+ PMC *nci_funcs;
+ PMC *temp_pmc;
+
+ iglobals = interp->iglobals;
+ PARROT_ASSERT(!(PMC_IS_NULL(iglobals)));
+
+ nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals,
+ IGLOBALS_NCI_FUNCS);
+ PARROT_ASSERT(!(PMC_IS_NULL(nci_funcs)));
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_J);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJ"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JPip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJPip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JpP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJpP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_Jpii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJpii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_tp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "itp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_J);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pJ"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_Jp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pJp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_J);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tJ"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_Jpti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tJpti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_pt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tpt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pit);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpit"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_ptt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vptt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_Jtiiipt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJtiiipt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_JttPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pJttPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_Jtpi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJtpi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_Vppp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iVppp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JpPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJpPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_Jpt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJpt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "v"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_Jiiip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJiiip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_ii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_illllllll);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "villllllll"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_l);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pbip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpbip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_piiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JO);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJO"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_S_JO);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "SJO"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_P);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOPPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOPPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOPPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOPPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOPPPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOPPPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOPPPPP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOPPPPP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JOSI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJOSI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOSII);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOSII"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_p3);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tp3"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pp3p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipp3p"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pp3);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipp3"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppd);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippd"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ptii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iptii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pipi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipipi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_ptti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tptti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_pti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tpti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_pttti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tpttti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_Ji);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pJi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_Jipp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pJipp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_Jbip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pJbip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_Jp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_tt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ttt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JOt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJOt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOSI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOSI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_S_JOi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "SJOi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_I_JO);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "IJO"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_N_JO);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "NJO"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JON);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJON"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JOI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJOI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOI);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOI"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_JOIS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJOIS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_S_JOSP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "SJOSP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "i"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_i3i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ii3i"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ibi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iibi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_lttl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "llttl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piS);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiS"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_S_i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "Si"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "lp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_c_p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "cp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pttttt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipttttt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_c_pttt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "cpttt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pttttiti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppttttiti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ptl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iptl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "l"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ptt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pptt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pit);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipit"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_ttl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "lttl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_pttl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "lpttl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_t);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pttttitl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppttttitl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_tiB3P);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ptiB3P"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_tip3P);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ptip3P"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pPtiiipi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipPtiiipi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_tpiibi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "itpiibi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ptippppi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pptippppi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pi33ipi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppi33ipi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pttip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppttip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ptipppi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pptipppi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ppP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pppP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_iiil);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "piiil"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ptii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pptii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ptp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pptp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pt33);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipt33"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_c_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "c"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_c_pi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "cpi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_d_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "d"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_d_d);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "dd"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_f_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "f"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_f_ff);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "fff"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_f_is);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "fis"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_b);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ib"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_d);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "id"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ii4);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iii4"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ii4i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iii4i"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iiilsp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiiilsp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iil);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiil"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iili);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiili"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iit);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiit"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iiti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiiti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ilsp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iilsp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_l);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "il"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_li);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ili"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_lp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ilp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_lsp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ilsp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_p33);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ip33"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_p333);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ip333"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_p333333);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ip333333"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_p4);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ip4"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_p42p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ip42p"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_p4i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ip4i"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pb);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipb"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pii4);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipii4"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pii4i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipii4i"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piiilsp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiiilsp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piil);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiil"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piili);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiili"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piit);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiit"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_piiti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipiiti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pilsp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipilsp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pli);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipli"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pll);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipll"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pllllllll);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipllllllll"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_plp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iplp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_plsp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iplsp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppiiiiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippiiiiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pppp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipppp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_psp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipsp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pitl);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipitl"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_s);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "is"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_s22);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "is22"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_s222);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "is222"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_sp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "isp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_sss);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "isss"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ssss);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "issss"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_t);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "it"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ti);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_4);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "i4"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_4i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "i4i"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_42p);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "i42p"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_ii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "lii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_l4);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ll4"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_pi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "lpi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_pii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "lpii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_p33l);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "lp33l"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_l_33l);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "l33l"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "p"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_B);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pB"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_b);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pb"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_Jt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pJt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_iiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "piiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_iiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "piiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_iiiiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "piiiiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_pii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_piiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ppiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_t);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_tpp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ptpp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ttttttt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pttttttt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_s_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "s"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "t"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_i);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ti"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_ii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_pi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tpi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_pii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tpii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_t);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_tl4);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ttl4"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_t4);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tt4"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_sc);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "isc"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_s_sc);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ssc"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_c_sc);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "csc"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_iii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_i3);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ii3"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_b);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tb"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_t_B);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "tB"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_P);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pP);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpP"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ip);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pip"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_33);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "i33"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_pii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vpii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_JO);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vJO"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JO);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJO"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JOi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJOi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_JOt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJOt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_Jt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_Ji);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iJi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_Vi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vVi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ppiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pppiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_p_ppiiiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "pppiiiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppiiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippiiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppt);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippt"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pppi);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipppi"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pppii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipppii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pppiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipppiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ppppiiiiii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ippppiiiiii"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_fff);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vfff"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_V);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vV"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_v_VVV);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "vVVV"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_tV);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "itV"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_ptiVp);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "iptiVp"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pid);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipid"), temp_pmc);
+
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pitii);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipitii"), temp_pmc);
+
+
+}
+
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+
Copied: branches/ops_pct/src/nci/extra_thunks.nci (from r44740, trunk/src/nci/extra_thunks.nci)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/nci/extra_thunks.nci Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/nci/extra_thunks.nci)
@@ -0,0 +1,465 @@
+# Copyright (C) 2002-2010, Parrot Foundation.
+
+# Function signature declarations for Parrot Native Call Interface.
+# The first alphanumeric is the type of the return value,
+# the other alphanumerics denote the input parameter types.
+
+# Types
+
+# INT register stuff
+# I - INTVAL
+# c - char
+# s - short
+# i - int
+# l - long
+
+# NUM register stuff
+# N - FLOATVAL
+# f - float
+# d - double
+
+# STR register stuff
+# S - pointer to a STRING-register
+# t - character string (0-terminated)
+# Buffers are not valid return parameters,
+# use 'p' when the native function returns a pointer value
+# b - void *
+# B - void **
+
+# PMC register stuff
+# P - pointer to a PMC-register
+# O - pointer to PMC-register (object)
+# p - data pointer from PMC (on store into a new UnManagedStruct PMC)
+# 2 - pointer to short
+# 3 - pointer to int
+# 4 - pointer to long
+
+# void stuff
+# v - void
+
+# special stuff
+# 0 - insert a NULL (pointer) - doesn't consume a register
+# J - Parrot_Interp param
+# @ - slurpy array
+
+# callback stuff
+# U - Single PMC parameter to pass into callback - user data
+
+# Signatures
+
+# t/src/embed.t
+v J
+
+# mod_parrot
+i ip
+i JPip
+i JpP
+i Jpii
+i p
+i tp
+p J
+p Jp
+t J
+t Jpti
+t p
+t pt
+v p
+v pit
+v ptt
+v Jtiiipt
+p JttPP
+P Jtpi
+i Vppp
+v JpPP
+v pt
+v Jpt
+
+v
+v Jiiip # examples/japh/japh11.pasm
+v i
+v ii
+v illllllll
+v l
+v p
+v pbip
+v pi
+v piiii
+v pl
+v pp
+
+# For python
+i JPP
+
+# Py_func signatures
+P JP
+P JPP
+P JO
+S JO
+i P
+
+# PyBuiltins
+P JOPP
+P JOPPP
+v JOPP
+v JOPPP
+P JOPPPP
+P JOPPPPP
+
+# Added for Tcl
+I JOSI
+P JOSII
+
+# Added for TclLibrary
+t p3
+i pp3p
+i pp3
+i ppd
+i ptii
+i pipi
+t ptti
+t pti
+t pttti
+
+# libpast
+p Ji
+p Jipp
+p Jbip
+v Jp
+v JS
+
+# crypt
+t tt
+
+# Sub.__get_regs_used
+I JOt
+
+# declare_lex_preg
+v JOSI
+
+# Added for .NET => PIR translator dynamic PMCs.
+S JOi
+v JOi
+I JO
+N JO
+v JON
+P JOi
+v JOI
+
+# Make lua stop panic'ing.
+P JOI
+P JOIS
+S JOSP
+
+i # void function returning int like fork()
+i i3i # POSIX's waitpid
+i ibi # POSIX's read
+
+# win32
+l lttl
+
+i pip
+i piS
+S i
+
+# --- start mysqlclient library ---
+#
+# Created from mysql.h using the following manual method:
+#
+# Edited copy of mysql.h using vi by doing g/, *$/j (repeat) then g/\* *$/j
+# (repeat) to get all functions on one line each.
+#
+# Extracted list of api func names from
+# http://dev.mysql.com/doc/refman/4.1/en/c-api-functions.html and copied to a
+# temporary file to clean up (mysql_api_names.txt)
+#
+# Stripped down to bare names and merged into one line separated by |
+# then egrep -w `cat mysql_api_names.txt` mysql.h > mysql_api.ncidef
+# then edit mysql_api.ncidef in vi: %s/^/ # /
+# to create space for nci signatures and to use original definition as a #
+# comment.
+#
+# This method isn't ideal, I'm just noting it here in case it helps others.
+# Ideally the process should be automated - but there be many dragons along
+# that path.
+#
+# NCI doesn't yet handle long long values (my_ulonglong), spec'd as long for now
+#
+#
+# MYSQL_FIELD and MYSQL_RES are structs
+# typedef char **MYSQL_ROW; /* return data as array of strings */
+# typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */
+# typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */
+#
+l p #! my_ulonglong mysql_num_rows(MYSQL_RES *res)
+i p # unsigned int mysql_num_fields(MYSQL_RES *res)
+c p # my_bool mysql_eof(MYSQL_RES *res)
+p pi # MYSQL_FIELD *mysql_fetch_field_direct(MYSQL_RES *res,
+# unsigned int fieldnr)
+p p # MYSQL_FIELD * mysql_fetch_fields(MYSQL_RES *res)
+p p # MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *res)
+i p # MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RES *res)
+i p # unsigned int mysql_field_count(MYSQL *mysql)
+l p #! my_ulonglong mysql_affected_rows(MYSQL *mysql)
+l p #! my_ulonglong mysql_insert_id(MYSQL *mysql)
+i p # unsigned int mysql_errno(MYSQL *mysql)
+t p # const char * mysql_error(MYSQL *mysql)
+t p # const char * mysql_info(MYSQL *mysql)
+l p # unsigned long mysql_thread_id(MYSQL *mysql)
+t p # const char * mysql_character_set_name(MYSQL *mysql)
+p p # MYSQL * mysql_init(MYSQL *mysql)
+
+i pttttt # int mysql_ssl_set(MYSQL *mysql, const char *key,
+# const char *cert, const char *ca, const char *capath,
+# const char *cipher)
+c pttt # my_bool mysql_change_user(MYSQL *mysql, const char *user,
+# const char *passwd, const char *db)
+p pttttiti # MYSQL * mysql_real_connect(MYSQL *mysql, const char *host,
+# const char *user, const char *passwd,
+# const char *db, unsigned int port,
+# const char *unix_socket,
+# unsigned int clientflag)
+v p # void mysql_close(MYSQL *sock)
+i pt # int mysql_select_db(MYSQL *mysql, const char *db)
+i pt # int mysql_query(MYSQL *mysql, const char *q)
+i ptl # int mysql_real_query(MYSQL *mysql, const char *q,
+# unsigned long length)
+i p # int mysql_shutdown(MYSQL *mysql)
+i p # int mysql_dump_debug_info(MYSQL *mysql)
+i pi # int mysql_refresh(MYSQL *mysql, unsigned int refresh_options)
+i pl # int mysql_kill(MYSQL *mysql,unsigned long pid)
+i p # int mysql_ping(MYSQL *mysql)
+t p # const char * mysql_stat(MYSQL *mysql)
+t p # const char * mysql_get_server_info(MYSQL *mysql)
+t p # const char * mysql_get_client_info(void)
+l # unsigned long mysql_get_client_version(void)
+t p # const char * mysql_get_host_info(MYSQL *mysql)
+t p # unsigned int mysql_get_proto_info(MYSQL *mysql)
+p pt # MYSQL_RES * mysql_list_dbs(MYSQL *mysql,const char *wild)
+p pt # MYSQL_RES * mysql_list_tables(MYSQL *mysql,const char *wild)
+p ptt # MYSQL_RES * mysql_list_fields(MYSQL *mysql, const char *table,
+# const char *wild)
+p p # MYSQL_RES * mysql_list_processes(MYSQL *mysql)
+p p # MYSQL_RES * mysql_store_result(MYSQL *mysql)
+p p # MYSQL_RES * mysql_use_result(MYSQL *mysql)
+i pit # int mysql_options(MYSQL *mysql,enum mysql_option option,
+# const char *arg)
+v p # void mysql_free_result(MYSQL_RES *result)
+v pl # void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset)
+p pp # MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result,
+# MYSQL_ROW_OFFSET offset)
+i pi # MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result,
+# MYSQL_FIELD_OFFSET offset)
+
+p p # MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
+l p # unsigned long * mysql_fetch_lengths(MYSQL_RES *result)
+p p # MYSQL_FIELD * mysql_fetch_field(MYSQL_RES *result)
+l ttl # unsigned long mysql_escape_string(char *to,const char *from, unsigned long from_length)
+l pttl # unsigned long mysql_real_escape_string(MYSQL *mysql, char *to,const char *from, unsigned long length)
+v t # void mysql_debug(const char *debug)
+# --- end mysqlclient library ---
+
+# My mysql does not fit with the previous section
+p pttttitl
+# MYSQL * mysql_real_connect(MYSQL *mysql, const char *host,
+# const char *user,
+# const char *passwd,
+# const char *db,
+# unsigned int port,
+# const char *unix_socket,
+# unsigned long clientflag)
+
+# Used by library/pcre.pir
+p tiB3P
+p tip3P
+i pPtiiipi
+i tpiibi
+
+# Oddball ones for postgres
+p ptippppi PQexecParams
+p pi33ipi PQfn
+p pttip PQprepage
+p ptipppi PQexecPrepared
+p ppP PQsetNoticeReceiver
+
+# Used by SDL
+p iiil
+i ppl
+v pip
+p pti
+i ppp
+# added by RNH for the RenderXXX_XXXX text routines
+p ptii
+
+# Used by SDL::Font
+p ti
+p ptp
+i pt33
+
+# t/pmc/nci.t
+c
+c p
+c pi
+
+d
+d d
+
+f
+f ff
+f is
+
+i
+i b
+i d
+i i
+i ii
+i ii4
+i ii4i
+i iiii
+i iiilsp
+i iil
+i iili
+i iip
+i iit
+i iiti
+i ilsp
+i iti
+i l
+i li
+i lp
+i lsp
+i p
+i p33
+i p333
+i p333333
+i p4
+i p42p
+i p4i
+i pb
+i pi
+i pii
+i pii4
+i pii4i
+i piii
+i piiiiii
+i piiilsp
+i piil
+i piili
+i piit
+i piiti
+i pilsp
+i pit
+i pl
+i pli
+i pll
+i pllllllll
+i plp
+i plsp
+i pp
+i ppi
+i ppiiiiiiii
+i pppp
+i psp
+i pt
+i pti
+i pitl
+i s
+i s22
+i s222
+i sp
+i sss
+i ssss
+i t
+i ti
+i 4
+i 4i
+i 42p
+
+l
+l ii
+l l4
+l p
+l pi
+l pii
+l p33l
+l 33l
+
+p
+p B
+p b
+p Jt
+p i
+p ii
+p iiii
+p iiiiii
+p iiiiiiii
+p p
+p pt
+p pi
+p pii
+p piiii
+p t
+p tpp
+p ttttttt
+
+s
+
+t
+t i
+t ii
+t p
+t pi
+t pii
+t pt
+t t
+t tl4
+t t4
+
+i sc
+s sc
+c sc
+i iii
+i i3
+t b
+t B
+v P
+v pP
+p ip
+i 33
+v pii
+v JO
+i JO
+i JOi
+i JOt
+i Jt
+i Ji
+
+v Vi
+v p
+
+# Testing xlib
+
+p ppiii
+p ppiiiiiii
+i ppii
+i ppiii
+i ppiiii
+i ppiiiii
+i ppiiiiii
+i ppt
+i pppi
+i pppii
+i pppiiii
+i ppppiiiiii
+
+# Testing OpenGL
+v fff
+
+# Testing Pointer PMC use
+v V
+v VVV
+
+# Testing SQLite
+i tV
+i ptiVp
+i pid
+i pitii
Modified: branches/ops_pct/src/nci_test.c
==============================================================================
--- branches/ops_pct/src/nci_test.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/nci_test.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -67,7 +67,7 @@
/* Function declarations.
*** If you add a new test function here,
-*** please update src/libnci_test.def and src/call_list.txt too. ***
+*** please update src/libnci_test.def and src/nci/extra_thunks.nci too. ***
*/
Modified: branches/ops_pct/src/oo.c
==============================================================================
--- branches/ops_pct/src/oo.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/oo.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -152,35 +152,6 @@
/*
-=item C<PMC * Parrot_oo_get_namespace(PARROT_INTERP, const PMC *classobj)>
-
-Lookup a namespace object from a class PMC.
-
-This function is deprecated, see TT #1069.
-Use the inspect interface in the Class PMC instead.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-PMC *
-Parrot_oo_get_namespace(SHIM_INTERP, ARGIN(const PMC *classobj))
-{
- ASSERT_ARGS(Parrot_oo_get_namespace)
- Parrot_Class_attributes * const _class = PARROT_CLASS(classobj);
- PMC * const _namespace = _class->_namespace;
-
- if (PMC_IS_NULL(_namespace))
- return PMCNULL;
-
- return _namespace;
-}
-
-
-/*
-
=item C<PMC * Parrot_oo_get_class(PARROT_INTERP, PMC *key)>
Lookup a class object from a namespace, string, or key PMC.
@@ -236,9 +207,9 @@
if (base_type == enum_class_Key
|| base_type == enum_class_ResizableStringArray
|| base_type == enum_class_String)
- type = pmc_type_p(interp, key);
+ type = Parrot_pmc_get_type(interp, key);
else
- type = pmc_type(interp, VTABLE_get_string(interp, key));
+ type = Parrot_pmc_get_type_str(interp, VTABLE_get_string(interp, key));
classobj = get_pmc_proxy(interp, type);
}
@@ -280,7 +251,7 @@
}
else {
obj = PARROT_OBJECT(pmc);
- cloned = pmc_new_noinit(interp, enum_class_Object);
+ cloned = Parrot_pmc_new_noinit(interp, enum_class_Object);
}
_class = PARROT_CLASS(obj->_class);
@@ -371,9 +342,9 @@
/* Create proxy if not found */
if (PMC_IS_NULL(proxy)) {
- PMC * const type_num = pmc_new(interp, enum_class_Integer);
+ PMC * const type_num = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, type_num, type);
- proxy = pmc_new_init(interp, enum_class_PMCProxy, type_num);
+ proxy = Parrot_pmc_new_init(interp, enum_class_PMCProxy, type_num);
Parrot_pcc_invoke_method_from_c_args(interp, pmc_ns, CONST_STRING(interp, "set_class"), "P->", proxy);
}
return proxy;
@@ -411,7 +382,7 @@
/* If not found, check for a PMC */
if (PMC_IS_NULL(_class))
- return get_pmc_proxy(interp, pmc_type(interp, name));
+ return get_pmc_proxy(interp, Parrot_pmc_get_type_str(interp, name));
else
return _class;
}
@@ -434,14 +405,14 @@
Parrot_oo_newclass_from_str(PARROT_INTERP, ARGIN(STRING *name))
{
ASSERT_ARGS(Parrot_oo_newclass_from_str)
- PMC * const namearg = pmc_new(interp, enum_class_String);
- PMC * const namehash = pmc_new(interp, enum_class_Hash);
+ PMC * const namearg = Parrot_pmc_new(interp, enum_class_String);
+ PMC * const namehash = Parrot_pmc_new(interp, enum_class_Hash);
PMC *classobj;
VTABLE_set_string_native(interp, namearg, name);
VTABLE_set_pmc_keyed_str(interp, namehash, CONST_STRING(interp, "name"), namearg);
- classobj = pmc_new_init(interp, enum_class_Class, namehash);
+ classobj = Parrot_pmc_new_init(interp, enum_class_Class, namehash);
PARROT_ASSERT(classobj);
return classobj;
@@ -516,7 +487,7 @@
break;
}
if (PMC_IS_NULL(result))
- result = pmc_new(interp, enum_class_Undef);
+ result = Parrot_pmc_new(interp, enum_class_Undef);
VTABLE_set_pmc_keyed_str(interp, _class->parent_overrides, name, result);
}
if (result->vtable->base_type == enum_class_Undef)
@@ -678,12 +649,12 @@
* pt_shared_fixup() can safely do a type lookup. */
LOCK_INTERPRETER(interp);
{
- type = get_new_vtable_index(interp);
+ type = Parrot_pmc_get_new_vtable_index(interp);
}
{
if (!typeid_exists) {
PMC * const classname_hash = interp->class_hash;
- PMC * const item = pmc_new(interp, enum_class_Integer);
+ PMC * const item = Parrot_pmc_new(interp, enum_class_Integer);
/* set entry in name->type hash */
VTABLE_set_integer_native(interp, item, type);
@@ -749,7 +720,7 @@
init_object_cache(PARROT_INTERP)
{
ASSERT_ARGS(init_object_cache)
- Caches * const mc = interp->caches = mem_allocate_zeroed_typed(Caches);
+ Caches * const mc = interp->caches = mem_gc_allocate_zeroed_typed(interp, Caches);
mc->idx = NULL;
}
@@ -778,8 +749,8 @@
invalidate_type_caches(interp, i);
}
- mem_sys_free(mc->idx);
- mem_sys_free(mc);
+ mem_gc_free(interp, mc->idx);
+ mem_gc_free(interp, mc);
}
@@ -812,12 +783,12 @@
Meth_cache_entry *e = mc->idx[type][i];
while (e) {
Meth_cache_entry * const next = e->next;
- mem_sys_free(e);
+ mem_gc_free(interp, e);
e = next;
}
}
- mem_sys_free(mc->idx[type]);
+ mem_gc_free(interp, mc->idx[type]);
mc->idx[type] = NULL;
}
@@ -874,7 +845,7 @@
return;
}
- type = pmc_type(interp, _class);
+ type = Parrot_pmc_get_type_str(interp, _class);
if (type == 0)
invalidate_all_caches(interp);
@@ -958,19 +929,18 @@
if (type >= mc->mc_size) {
if (mc->idx) {
- mc->idx = (Meth_cache_entry ***)mem_sys_realloc_zeroed(mc->idx,
- sizeof (Meth_cache_entry ***) * (type + 1),
- sizeof (Meth_cache_entry ***) * mc->mc_size);
+ mc->idx = mem_gc_realloc_n_typed_zeroed(interp, mc->idx,
+ type + 1, mc->mc_size, Meth_cache_entry**);
}
else {
- mc->idx = mem_allocate_n_zeroed_typed(type + 1, Meth_cache_entry**);
+ mc->idx = mem_gc_allocate_n_zeroed_typed(interp, type + 1, Meth_cache_entry**);
}
mc->mc_size = type + 1;
}
if (mc->idx[type] == NULL) {
- mc->idx[type] = (Meth_cache_entry **)mem_sys_allocate_zeroed(
- sizeof (Meth_cache_entry *) * TBL_SIZE);
+ mc->idx[type] = mem_gc_allocate_n_zeroed_typed(interp,
+ TBL_SIZE, Meth_cache_entry*);
}
e = mc->idx[type][bits];
@@ -981,7 +951,7 @@
if (!e) {
/* when here no or no correct entry was at [bits] */
- e = mem_allocate_typed(Meth_cache_entry);
+ e = mem_gc_allocate_typed(interp, Meth_cache_entry);
mc->idx[type][bits] = e;
@@ -1159,7 +1129,7 @@
/* If we never found any candidates, return an empty list. */
if (cand_count == 0)
- return pmc_new(interp, enum_class_ResizablePMCArray);
+ return Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
/* If we didn't find anything to accept, error. */
if (PMC_IS_NULL(accepted))
@@ -1229,7 +1199,7 @@
if (parent_count == 0) {
/* No parents - MRO just contains this class. */
- result = pmc_new(interp, enum_class_ResizablePMCArray);
+ result = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
VTABLE_push_pmc(interp, result, _class);
return result;
}
@@ -1246,7 +1216,7 @@
/* instantiated lazily */
if (PMC_IS_NULL(merge_list))
- merge_list = pmc_new(interp, enum_class_ResizablePMCArray);
+ merge_list = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
VTABLE_push_pmc(interp, merge_list, lin);
}
@@ -1318,7 +1288,7 @@
/* We need to check for conflicts before we do the composition. We
* put each method that would be OK to add into a proposal list, and
* bail out right away if we find a problem. */
- proposed_add_methods = pmc_new(interp, enum_class_Hash);
+ proposed_add_methods = Parrot_pmc_new(interp, enum_class_Hash);
methods_iter = VTABLE_get_iter(interp, methods);
while (VTABLE_get_bool(interp, methods_iter)) {
Modified: branches/ops_pct/src/ops/bit.ops
==============================================================================
--- branches/ops_pct/src/ops/bit.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/bit.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -63,11 +63,15 @@
}
inline op band(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_and_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = a & $2;
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op band(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_and(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a & b);
}
inline op band(out INT, in INT, in INT) :base_core {
@@ -75,11 +79,14 @@
}
inline op band(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_and_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a & $3);
}
inline op band(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_and(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ VTABLE_set_integer_native(interp, $1, a & b);
}
=item B<bands>(inout STR, in STR)
@@ -107,11 +114,16 @@
}
inline op bands(invar PMC, in STR) :base_core {
- VTABLE_i_bitwise_ands_str(interp, $1, $2);
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $2, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bands(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_ands(interp, $1, $2);
+ STRING * a = VTABLE_get_string(interp, $1);
+ STRING * b = VTABLE_get_string(interp, $2);
+ a = Parrot_str_bitwise_and(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, a);
}
inline op bands(out STR, in STR, in STR) :base_core {
@@ -119,11 +131,16 @@
}
inline op bands(invar PMC, invar PMC, in STR) :base_core {
- $1 = VTABLE_bitwise_ands_str(interp, $2, $3, $1);
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $3, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bands(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_ands(interp, $2, $3, $1);
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = VTABLE_get_string(interp, $3);
+ STRING * const c = Parrot_str_bitwise_and(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
########################################
@@ -149,11 +166,15 @@
}
inline op bnot(invar PMC) :base_core {
- VTABLE_i_bitwise_not(interp, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ VTABLE_set_integer_native(interp, $1, ~a);
}
inline op bnot(out PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_not(interp, $2, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, b, ~a);
+ $1 = b;
}
=item B<bnots>(inout STR)
@@ -175,11 +196,15 @@
}
inline op bnots(invar PMC) :base_core {
- VTABLE_i_bitwise_nots(interp, $1);
+ STRING * a = VTABLE_get_string(interp, $1);
+ STRING * b = Parrot_str_bitwise_not(interp, a, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bnots(out PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_nots(interp, $2, $1);
+ STRING * a = VTABLE_get_string(interp, $2);
+ STRING * b = Parrot_str_bitwise_not(interp, a, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
########################################
@@ -209,11 +234,14 @@
}
inline op bor(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_or_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ VTABLE_set_integer_native(interp, $1, a | $2);
}
inline op bor(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_or(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a | b);
}
inline op bor(out INT, in INT, in INT) :base_core {
@@ -221,11 +249,14 @@
}
inline op bor(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_or_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a | $3);
}
inline op bor(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_or(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ VTABLE_set_integer_native(interp, $1, a | b);
}
=item B<bors>(inout STR, in STR)
@@ -253,11 +284,16 @@
}
inline op bors(invar PMC, in STR) :base_core {
- VTABLE_i_bitwise_ors_str(interp, $1, $2);
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_or(interp, a, $2, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bors(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_ors(interp, $1, $2);
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = VTABLE_get_string(interp, $2);
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
inline op bors(out STR, in STR, in STR) :base_core {
@@ -265,11 +301,16 @@
}
inline op bors(invar PMC, invar PMC, in STR) :base_core {
- $1 = VTABLE_bitwise_ors_str(interp, $2, $3, $1);
+ STRING * const b = VTABLE_get_string(interp, $2);
+ STRING * const c = Parrot_str_bitwise_or(interp, b, $3, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
inline op bors(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_ors(interp, $2, $3, $1);
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = VTABLE_get_string(interp, $3);
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
########################################
@@ -297,11 +338,16 @@
}
inline op shl(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_shl_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = bit_shift_left(a, $2);
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op shl(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_shl(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, $1, c);
}
inline op shl(out INT, in INT, in INT) :base_core {
@@ -309,11 +355,16 @@
}
inline op shl(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_shl_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = bit_shift_left(a, $3);
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op shl(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_shl(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, $1, c);
}
########################################
@@ -342,11 +393,16 @@
}
inline op shr(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_shr_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = bit_shift_left(a, -$2);
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op shr(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_shr(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, $1, c);
}
inline op shr(out INT, in INT, in INT) :base_core {
@@ -355,11 +411,16 @@
}
inline op shr(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_shr_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, -$3);
+ VTABLE_set_integer_native(interp, $1, c);
}
inline op shr(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_shr(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, $1, c);
}
########################################
@@ -383,19 +444,22 @@
=cut
inline op lsr(out INT, in INT) :base_core {
- /*
- * lvalue casts are evil, but this one isn't evil enough to kill.
- * it's just casting a signed integral to the equivalent unsigned.
- */
- LVALUE_CAST(UINTVAL, $1) >>= $2;
+ const UINTVAL a = (UINTVAL)$1;
+ const UINTVAL b = a >> $2;
+ $1 = (INTVAL)b;
}
inline op lsr(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_lsr_int(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = a >> $2;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
}
inline op lsr(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_lsr(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
inline op lsr(out INT, in INT, in INT) :base_core {
@@ -403,11 +467,17 @@
}
inline op lsr(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_lsr_int(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)$3;
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
inline op lsr(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_lsr(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $3, (INTVAL)c);
}
=item B<rot>(out INT, in INT, in INT, inconst INT)
@@ -433,7 +503,6 @@
$1 = d;
}
-
########################################
=item B<bxor>(inout INT, in INT)
@@ -461,11 +530,16 @@
}
inline op bxor(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_xor_int(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = a ^ $2;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
}
inline op bxor(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_xor(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
inline op bxor(out INT, in INT, in INT) :base_core {
@@ -473,11 +547,16 @@
}
inline op bxor(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_xor_int(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = a ^ $3;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
}
inline op bxor(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_xor(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
=item B<bxors>(inout STR, in STR)
@@ -505,11 +584,16 @@
}
inline op bxors(invar PMC, in STR) :base_core {
- VTABLE_i_bitwise_xors_str(interp, $1, $2);
+ STRING *a = VTABLE_get_string(interp, $1);
+ STRING *b = Parrot_str_bitwise_xor(interp, a, $2, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bxors(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_xors(interp, $1, $2);
+ STRING *a = VTABLE_get_string(interp, $1);
+ STRING *b = VTABLE_get_string(interp, $2);
+ STRING *c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
inline op bxors(out STR, in STR, in STR) :base_core {
@@ -517,11 +601,16 @@
}
inline op bxors(invar PMC, invar PMC, in STR) :base_core {
- $1 = VTABLE_bitwise_xors_str(interp, $2, $3, $1);
+ STRING *a = VTABLE_get_string(interp, $2);
+ STRING *b = Parrot_str_bitwise_xor(interp, a, $3, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bxors(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_xors(interp, $2, $3, $1);
+ STRING *a = VTABLE_get_string(interp, $2);
+ STRING *b = VTABLE_get_string(interp, $3);
+ STRING *c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
=back
Modified: branches/ops_pct/src/ops/cmp.ops
==============================================================================
--- branches/ops_pct/src/ops/cmp.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/cmp.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -87,15 +87,15 @@
}
op eq(invar PMC, in INT, inconst LABEL) :base_core {
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, $2);
if (VTABLE_is_equal(interp, $1, temp)) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
goto OFFSET($3);
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
}
op eq(invar PMC, in NUM, inconst LABEL) :base_core {
@@ -193,15 +193,15 @@
}
op ne(invar PMC, in INT, inconst LABEL) :base_core {
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, $2);
if (!VTABLE_is_equal(interp, $1, temp)) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
goto OFFSET($3);
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
}
op ne(invar PMC, in NUM, inconst LABEL) :base_core {
@@ -289,15 +289,15 @@
}
op lt(invar PMC, in INT, inconst LABEL) :base_core {
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, $2);
if (VTABLE_cmp(interp, $1, temp) < 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
goto OFFSET($3);
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
}
op lt(invar PMC, in NUM, inconst LABEL) :base_core {
@@ -373,15 +373,15 @@
}
op le(invar PMC, in INT, inconst LABEL) :base_core {
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, $2);
if (VTABLE_cmp(interp, $1, temp) <= 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
goto OFFSET($3);
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
}
op le(invar PMC, in NUM, inconst LABEL) :base_core {
@@ -433,15 +433,15 @@
}
op gt(invar PMC, in INT, inconst LABEL) :base_core {
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, $2);
if (VTABLE_cmp(interp, $1, temp) > 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
goto OFFSET($3);
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
}
op gt(invar PMC, in NUM, inconst LABEL) :base_core {
@@ -493,15 +493,15 @@
}
op ge(invar PMC, in INT, inconst LABEL) :base_core {
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, $2);
if (VTABLE_cmp(interp, $1, temp) >= 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
goto OFFSET($3);
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
}
op ge(invar PMC, in NUM, inconst LABEL) :base_core {
Modified: branches/ops_pct/src/ops/core.ops
==============================================================================
--- branches/ops_pct/src/ops/core.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/core.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -88,16 +88,6 @@
Don't use.
(Must be op #5, CORE_OPS_wrapper__).
-=item B<prederef__>()
-
-Internal opcode to prederef opcodes on the fly.
-Don't use.
-(Must be op #6, CORE_OPS_prederef__).
-
-=item B<reserved>(inconst INT)
-
-Reserve 1 more fix entry.
-
=item B<load_bytecode>(in STR)
Load Parrot bytecode from file $1, and search the library path to locate the
@@ -148,21 +138,6 @@
goto ADDRESS(pc);
}
-inline op prederef__() :internal :flow {
- opcode_t * const _this = CUR_OPCODE;
- if (PARROT_RUNCORE_CGOTO_OPS_TEST(interp->run_core)) {
- /* must be CGP then - check for events in not yet prederefed code */
- Parrot_cx_runloop_wake(interp, interp->scheduler);
- /* _this = CHECK_EVENTS(interp, _this); */
- }
- do_prederef((void**)cur_opcode, interp, interp->run_core);
- goto ADDRESS(_this); /* force this being a branch op */
-}
-
-inline op reserved(inconst INT) {
- /* reserve 1 entries */
-}
-
inline op load_bytecode(in STR) :load_file {
Parrot_load_bytecode(interp, $1);
}
@@ -467,14 +442,6 @@
Parrot_pcc_merge_signature_for_tailcall(interp, parent_call_sig, this_call_sig);
- /* Detach continuation from current CallContext to avoid marking dead object. */
- /* RetContinuation will kill itself after invoke */
- if (interp->current_cont->vtable->base_type == enum_class_RetContinuation
- && Parrot_pcc_do_run_ops(interp, p)) {
- PMC_cont(interp->current_cont)->from_ctx = parent_ctx;
- Parrot_pcc_set_continuation(interp, ctx, PMCNULL);
- }
-
SUB_FLAG_TAILCALL_SET(interp->current_cont);
dest = VTABLE_invoke(interp, p, dest);
goto ADDRESS(dest);
@@ -614,7 +581,7 @@
/* If no elements, hand back empty array; otherwise PMC. */
if (!sig)
- $1 = pmc_new(interp, enum_class_FixedIntegerArray);
+ $1 = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
else
$1 = sig;
}
@@ -770,7 +737,7 @@
=cut
inline op push_eh(inconst LABEL) {
- PMC * const eh = pmc_new(interp, enum_class_ExceptionHandler);
+ PMC * const eh = Parrot_pmc_new(interp, enum_class_ExceptionHandler);
VTABLE_set_pointer(interp, eh, CUR_OPCODE + $1);
Parrot_cx_add_handler_local(interp, eh);
}
@@ -886,7 +853,7 @@
}
inline op pushmark(in INT) {
- PMC * const newint = pmc_new(interp, enum_class_Integer);
+ PMC * const newint = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, newint, $1);
VTABLE_push_pmc(interp, interp->dynamic_env, newint);
}
@@ -1040,7 +1007,8 @@
}
op interpinfo(out STR, in INT) {
- $1 = interpinfo_s(interp, $2);
+ STRING * s = interpinfo_s(interp, $2);
+ $1 = s;
}
=item B<warningson>(in INT)
@@ -1330,10 +1298,10 @@
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- $1 = pmc_new(interp, enum_class_Undef);
+ $1 = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
- $1 = pmc_new(interp, enum_class_NCI);
+ $1 = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, $1, $4, F2DPTR(p));
PObj_get_FLAGS($1) |= PObj_private1_FLAG;
}
@@ -1353,12 +1321,12 @@
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- $1 = pmc_new(interp, enum_class_Undef);
+ $1 = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
/* At this point we have the symbol's address. We just need to build
a PMC with it so we can get and set the value */
- $1 = pmc_new(interp, enum_class_UnManagedStruct);
+ $1 = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, $1, p);
}
Parrot_str_free_cstring(name);
@@ -1410,7 +1378,7 @@
cur_pos, NULL);
}
else {
- $1 = pmc_new(interp, enum_class_Hash);
+ $1 = Parrot_pmc_new(interp, enum_class_Hash);
}
}
Modified: branches/ops_pct/src/ops/core_ops.c
==============================================================================
--- branches/ops_pct/src/ops/core_ops.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/core_ops.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -25,7 +25,7 @@
#define CONST(i) Parrot_pcc_get_constants(interp, interp->ctx)[cur_opcode[i]]
-static int get_op(const char * name, int full);
+static int get_op(PARROT_INTERP, const char * name, int full);
@@ -70,7 +70,7 @@
** Op Info Table:
*/
-static op_info_t core_op_info_table[1303] = {
+static op_info_t core_op_info_table[1301] = {
{ /* 0 */
/* type PARROT_INLINE_OP, */
"end",
@@ -79,10 +79,9 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
{ /* 1 */
/* type PARROT_INLINE_OP, */
@@ -92,10 +91,9 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
{ /* 2 */
/* type PARROT_INLINE_OP, */
@@ -103,12 +101,11 @@
"cpu_ret",
"Parrot_cpu_ret",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
{ /* 3 */
/* type PARROT_INLINE_OP, */
@@ -116,12 +113,11 @@
"check_events",
"Parrot_check_events",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
{ /* 4 */
/* type PARROT_INLINE_OP, */
@@ -129,12 +125,11 @@
"check_events__",
"Parrot_check_events__",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
{ /* 5 */
/* type PARROT_INLINE_OP, */
@@ -142,41 +137,14 @@
"wrapper__",
"Parrot_wrapper__",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
{ /* 6 */
/* type PARROT_INLINE_OP, */
- "prederef__",
- "prederef__",
- "Parrot_prederef__",
- /* "", body */
- PARROT_JUMP_ADDRESS,
- 1,
- { 0 },
- { 0 },
- { 0 },
- 0
- },
- { /* 7 */
- /* type PARROT_INLINE_OP, */
- "reserved",
- "reserved_ic",
- "Parrot_reserved_ic",
- /* "", body */
- 0,
- 2,
- { PARROT_ARG_IC },
- { PARROT_ARGDIR_IN },
- { 0 },
- 0
- },
- { /* 8 */
- /* type PARROT_INLINE_OP, */
"load_bytecode",
"load_bytecode_s",
"Parrot_load_bytecode_s",
@@ -185,10 +153,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 9 */
+ { /* 7 */
/* type PARROT_INLINE_OP, */
"load_bytecode",
"load_bytecode_sc",
@@ -198,10 +165,9 @@
2,
{ PARROT_ARG_SC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 10 */
+ { /* 8 */
/* type PARROT_INLINE_OP, */
"load_language",
"load_language_s",
@@ -211,10 +177,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 11 */
+ { /* 9 */
/* type PARROT_INLINE_OP, */
"load_language",
"load_language_sc",
@@ -224,23 +189,21 @@
2,
{ PARROT_ARG_SC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 12 */
+ { /* 10 */
/* type PARROT_INLINE_OP, */
"branch",
"branch_i",
"Parrot_branch_i",
/* "", body */
- PARROT_JUMP_RELATIVE|PARROT_JUMP_GNEXT,
+ PARROT_JUMP_RELATIVE,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 1 },
- 0
+ { 1 }
},
- { /* 13 */
+ { /* 11 */
/* type PARROT_INLINE_OP, */
"branch",
"branch_ic",
@@ -250,88 +213,81 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 1 },
- 0
+ { 1 }
},
- { /* 14 */
+ { /* 12 */
/* type PARROT_INLINE_OP, */
"local_branch",
"local_branch_p_i",
"Parrot_local_branch_p_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_RELATIVE|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ PARROT_JUMP_RELATIVE,
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 15 */
+ { /* 13 */
/* type PARROT_INLINE_OP, */
"local_branch",
"local_branch_p_ic",
"Parrot_local_branch_p_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_RELATIVE|PARROT_JUMP_ENEXT,
+ PARROT_JUMP_RELATIVE,
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 16 */
+ { /* 14 */
/* type PARROT_INLINE_OP, */
"local_return",
"local_return_p",
"Parrot_local_return_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 17 */
+ { /* 15 */
/* type PARROT_INLINE_OP, */
"jump",
"jump_i",
"Parrot_jump_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 1 },
- 0
+ { 1 }
},
- { /* 18 */
+ { /* 16 */
/* type PARROT_INLINE_OP, */
"jump",
"jump_ic",
"Parrot_jump_ic",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 1 },
- 0
+ { 1 }
},
- { /* 19 */
+ { /* 17 */
/* type PARROT_FUNCTION_OP, */
"enternative",
"enternative",
"Parrot_enternative",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 20 */
+ { /* 18 */
/* type PARROT_INLINE_OP, */
"if",
"if_i_ic",
@@ -341,10 +297,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 21 */
+ { /* 19 */
/* type PARROT_INLINE_OP, */
"if",
"if_n_ic",
@@ -354,10 +309,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 22 */
+ { /* 20 */
/* type PARROT_FUNCTION_OP, */
"if",
"if_s_ic",
@@ -367,10 +321,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 23 */
+ { /* 21 */
/* type PARROT_FUNCTION_OP, */
"if",
"if_p_ic",
@@ -380,10 +333,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 24 */
+ { /* 22 */
/* type PARROT_INLINE_OP, */
"unless",
"unless_i_ic",
@@ -393,10 +345,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 25 */
+ { /* 23 */
/* type PARROT_INLINE_OP, */
"unless",
"unless_n_ic",
@@ -406,10 +357,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 26 */
+ { /* 24 */
/* type PARROT_FUNCTION_OP, */
"unless",
"unless_s_ic",
@@ -419,10 +369,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 27 */
+ { /* 25 */
/* type PARROT_FUNCTION_OP, */
"unless",
"unless_p_ic",
@@ -432,75 +381,69 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 28 */
+ { /* 26 */
/* type PARROT_INLINE_OP, */
"invokecc",
"invokecc_p",
"Parrot_invokecc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 29 */
+ { /* 27 */
/* type PARROT_INLINE_OP, */
"invoke",
"invoke_p_p",
"Parrot_invoke_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 30 */
+ { /* 28 */
/* type PARROT_INLINE_OP, */
"yield",
"yield",
"Parrot_yield",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 31 */
+ { /* 29 */
/* type PARROT_INLINE_OP, */
"tailcall",
"tailcall_p",
"Parrot_tailcall_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 32 */
+ { /* 30 */
/* type PARROT_INLINE_OP, */
"returncc",
"returncc",
"Parrot_returncc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 33 */
+ { /* 31 */
/* type PARROT_INLINE_OP, */
"capture_lex",
"capture_lex_p",
@@ -510,10 +453,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 34 */
+ { /* 32 */
/* type PARROT_INLINE_OP, */
"newclosure",
"newclosure_p_p",
@@ -523,10 +465,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 35 */
+ { /* 33 */
/* type PARROT_FUNCTION_OP, */
"set_args",
"set_args_pc",
@@ -536,10 +477,9 @@
2,
{ PARROT_ARG_PC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 36 */
+ { /* 34 */
/* type PARROT_FUNCTION_OP, */
"get_results",
"get_results_pc",
@@ -549,10 +489,9 @@
2,
{ PARROT_ARG_PC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 37 */
+ { /* 35 */
/* type PARROT_FUNCTION_OP, */
"get_params",
"get_params_pc",
@@ -562,10 +501,9 @@
2,
{ PARROT_ARG_PC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 38 */
+ { /* 36 */
/* type PARROT_FUNCTION_OP, */
"set_returns",
"set_returns_pc",
@@ -575,10 +513,9 @@
2,
{ PARROT_ARG_PC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 39 */
+ { /* 37 */
/* type PARROT_INLINE_OP, */
"result_info",
"result_info_p",
@@ -588,10 +525,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 40 */
+ { /* 38 */
/* type PARROT_INLINE_OP, */
"set_addr",
"set_addr_i_ic",
@@ -601,10 +537,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 41 */
+ { /* 39 */
/* type PARROT_INLINE_OP, */
"set_addr",
"set_addr_p_ic",
@@ -614,10 +549,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 42 */
+ { /* 40 */
/* type PARROT_INLINE_OP, */
"set_addr",
"set_addr_p_i",
@@ -627,10 +561,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 43 */
+ { /* 41 */
/* type PARROT_INLINE_OP, */
"get_addr",
"get_addr_i_p",
@@ -640,10 +573,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 44 */
+ { /* 42 */
/* type PARROT_INLINE_OP, */
"schedule",
"schedule_p",
@@ -653,10 +585,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 45 */
+ { /* 43 */
/* type PARROT_INLINE_OP, */
"addhandler",
"addhandler_p",
@@ -666,10 +597,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 46 */
+ { /* 44 */
/* type PARROT_INLINE_OP, */
"push_eh",
"push_eh_ic",
@@ -679,10 +609,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 1 },
- 0
+ { 1 }
},
- { /* 47 */
+ { /* 45 */
/* type PARROT_INLINE_OP, */
"push_eh",
"push_eh_p",
@@ -692,10 +621,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 48 */
+ { /* 46 */
/* type PARROT_INLINE_OP, */
"pop_eh",
"pop_eh",
@@ -703,51 +631,47 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 49 */
+ { /* 47 */
/* type PARROT_INLINE_OP, */
"throw",
"throw_p",
"Parrot_throw_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 50 */
+ { /* 48 */
/* type PARROT_INLINE_OP, */
"throw",
"throw_p_p",
"Parrot_throw_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 51 */
+ { /* 49 */
/* type PARROT_INLINE_OP, */
"rethrow",
"rethrow_p",
"Parrot_rethrow_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 52 */
+ { /* 50 */
/* type PARROT_INLINE_OP, */
"count_eh",
"count_eh_i",
@@ -757,140 +681,129 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 53 */
+ { /* 51 */
/* type PARROT_INLINE_OP, */
"die",
"die_s",
"Parrot_die_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 54 */
+ { /* 52 */
/* type PARROT_INLINE_OP, */
"die",
"die_sc",
"Parrot_die_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_SC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 55 */
+ { /* 53 */
/* type PARROT_INLINE_OP, */
"die",
"die_p",
"Parrot_die_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 56 */
+ { /* 54 */
/* type PARROT_INLINE_OP, */
"die",
"die_pc",
"Parrot_die_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_PC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 57 */
+ { /* 55 */
/* type PARROT_INLINE_OP, */
"die",
"die_i_i",
"Parrot_die_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 58 */
+ { /* 56 */
/* type PARROT_INLINE_OP, */
"die",
"die_ic_i",
"Parrot_die_ic_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
3,
{ PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 59 */
+ { /* 57 */
/* type PARROT_INLINE_OP, */
"die",
"die_i_ic",
"Parrot_die_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 60 */
+ { /* 58 */
/* type PARROT_INLINE_OP, */
"die",
"die_ic_ic",
"Parrot_die_ic_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 61 */
+ { /* 59 */
/* type PARROT_INLINE_OP, */
"exit",
"exit_i",
"Parrot_exit_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 62 */
+ { /* 60 */
/* type PARROT_INLINE_OP, */
"exit",
"exit_ic",
"Parrot_exit_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 63 */
+ { /* 61 */
/* type PARROT_INLINE_OP, */
"pushmark",
"pushmark_i",
@@ -900,10 +813,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 64 */
+ { /* 62 */
/* type PARROT_INLINE_OP, */
"pushmark",
"pushmark_ic",
@@ -913,36 +825,33 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 65 */
+ { /* 63 */
/* type PARROT_INLINE_OP, */
"popmark",
"popmark_i",
"Parrot_popmark_i",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 66 */
+ { /* 64 */
/* type PARROT_INLINE_OP, */
"popmark",
"popmark_ic",
"Parrot_popmark_ic",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 67 */
+ { /* 65 */
/* type PARROT_INLINE_OP, */
"pushaction",
"pushaction_p",
@@ -952,114 +861,105 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 68 */
+ { /* 66 */
/* type PARROT_INLINE_OP, */
"debug",
"debug_i",
"Parrot_debug_i",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 69 */
+ { /* 67 */
/* type PARROT_INLINE_OP, */
"debug",
"debug_ic",
"Parrot_debug_ic",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 70 */
+ { /* 68 */
/* type PARROT_INLINE_OP, */
"bounds",
"bounds_i",
"Parrot_bounds_i",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 71 */
+ { /* 69 */
/* type PARROT_INLINE_OP, */
"bounds",
"bounds_ic",
"Parrot_bounds_ic",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 72 */
+ { /* 70 */
/* type PARROT_INLINE_OP, */
"profile",
"profile_i",
"Parrot_profile_i",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 73 */
+ { /* 71 */
/* type PARROT_INLINE_OP, */
"profile",
"profile_ic",
"Parrot_profile_ic",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 74 */
+ { /* 72 */
/* type PARROT_INLINE_OP, */
"trace",
"trace_i",
"Parrot_trace_i",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 75 */
+ { /* 73 */
/* type PARROT_INLINE_OP, */
"trace",
"trace_ic",
"Parrot_trace_ic",
/* "", body */
- PARROT_JUMP_ENEXT|PARROT_JUMP_RESTART,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 76 */
+ { /* 74 */
/* type PARROT_INLINE_OP, */
"gc_debug",
"gc_debug_i",
@@ -1069,10 +969,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 77 */
+ { /* 75 */
/* type PARROT_INLINE_OP, */
"gc_debug",
"gc_debug_ic",
@@ -1082,10 +981,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 78 */
+ { /* 76 */
/* type PARROT_FUNCTION_OP, */
"interpinfo",
"interpinfo_i_i",
@@ -1095,10 +993,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 79 */
+ { /* 77 */
/* type PARROT_FUNCTION_OP, */
"interpinfo",
"interpinfo_i_ic",
@@ -1108,10 +1005,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 80 */
+ { /* 78 */
/* type PARROT_FUNCTION_OP, */
"interpinfo",
"interpinfo_p_i",
@@ -1121,10 +1017,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 81 */
+ { /* 79 */
/* type PARROT_FUNCTION_OP, */
"interpinfo",
"interpinfo_p_ic",
@@ -1134,10 +1029,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 82 */
+ { /* 80 */
/* type PARROT_FUNCTION_OP, */
"interpinfo",
"interpinfo_s_i",
@@ -1147,10 +1041,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 83 */
+ { /* 81 */
/* type PARROT_FUNCTION_OP, */
"interpinfo",
"interpinfo_s_ic",
@@ -1160,10 +1053,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 84 */
+ { /* 82 */
/* type PARROT_INLINE_OP, */
"warningson",
"warningson_i",
@@ -1173,10 +1065,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 85 */
+ { /* 83 */
/* type PARROT_INLINE_OP, */
"warningson",
"warningson_ic",
@@ -1186,10 +1077,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 86 */
+ { /* 84 */
/* type PARROT_INLINE_OP, */
"warningsoff",
"warningsoff_i",
@@ -1199,10 +1089,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 87 */
+ { /* 85 */
/* type PARROT_INLINE_OP, */
"warningsoff",
"warningsoff_ic",
@@ -1212,10 +1101,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 88 */
+ { /* 86 */
/* type PARROT_INLINE_OP, */
"errorson",
"errorson_i",
@@ -1225,10 +1113,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 89 */
+ { /* 87 */
/* type PARROT_INLINE_OP, */
"errorson",
"errorson_ic",
@@ -1238,10 +1125,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 90 */
+ { /* 88 */
/* type PARROT_INLINE_OP, */
"errorsoff",
"errorsoff_i",
@@ -1251,10 +1137,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 91 */
+ { /* 89 */
/* type PARROT_INLINE_OP, */
"errorsoff",
"errorsoff_ic",
@@ -1264,36 +1149,33 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 92 */
+ { /* 90 */
/* type PARROT_FUNCTION_OP, */
"runinterp",
"runinterp_p_i",
"Parrot_runinterp_p_i",
/* "", body */
- PARROT_JUMP_RELATIVE|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ PARROT_JUMP_RELATIVE,
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 93 */
+ { /* 91 */
/* type PARROT_FUNCTION_OP, */
"runinterp",
"runinterp_p_ic",
"Parrot_runinterp_p_ic",
/* "", body */
- PARROT_JUMP_RELATIVE|PARROT_JUMP_ENEXT,
+ PARROT_JUMP_RELATIVE,
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 94 */
+ { /* 92 */
/* type PARROT_FUNCTION_OP, */
"getinterp",
"getinterp_p",
@@ -1303,10 +1185,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 95 */
+ { /* 93 */
/* type PARROT_FUNCTION_OP, */
"sweep",
"sweep_ic",
@@ -1316,10 +1197,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 96 */
+ { /* 94 */
/* type PARROT_FUNCTION_OP, */
"collect",
"collect",
@@ -1327,12 +1207,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 97 */
+ { /* 95 */
/* type PARROT_FUNCTION_OP, */
"sweepoff",
"sweepoff",
@@ -1340,12 +1219,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 98 */
+ { /* 96 */
/* type PARROT_FUNCTION_OP, */
"sweepon",
"sweepon",
@@ -1353,12 +1231,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 99 */
+ { /* 97 */
/* type PARROT_FUNCTION_OP, */
"collectoff",
"collectoff",
@@ -1366,12 +1243,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 100 */
+ { /* 98 */
/* type PARROT_FUNCTION_OP, */
"collecton",
"collecton",
@@ -1379,12 +1255,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 101 */
+ { /* 99 */
/* type PARROT_FUNCTION_OP, */
"needs_destroy",
"needs_destroy_p",
@@ -1394,10 +1269,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 102 */
+ { /* 100 */
/* type PARROT_INLINE_OP, */
"loadlib",
"loadlib_p_s",
@@ -1407,10 +1281,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 103 */
+ { /* 101 */
/* type PARROT_INLINE_OP, */
"loadlib",
"loadlib_p_sc",
@@ -1420,10 +1293,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 104 */
+ { /* 102 */
/* type PARROT_FUNCTION_OP, */
"dlfunc",
"dlfunc_p_p_s_s",
@@ -1433,10 +1305,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 105 */
+ { /* 103 */
/* type PARROT_FUNCTION_OP, */
"dlfunc",
"dlfunc_p_p_sc_s",
@@ -1446,10 +1317,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 106 */
+ { /* 104 */
/* type PARROT_FUNCTION_OP, */
"dlfunc",
"dlfunc_p_p_s_sc",
@@ -1459,10 +1329,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 107 */
+ { /* 105 */
/* type PARROT_FUNCTION_OP, */
"dlfunc",
"dlfunc_p_p_sc_sc",
@@ -1472,10 +1341,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 108 */
+ { /* 106 */
/* type PARROT_FUNCTION_OP, */
"dlvar",
"dlvar_p_p_s",
@@ -1485,10 +1353,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 109 */
+ { /* 107 */
/* type PARROT_FUNCTION_OP, */
"dlvar",
"dlvar_p_p_sc",
@@ -1498,10 +1365,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 110 */
+ { /* 108 */
/* type PARROT_INLINE_OP, */
"compreg",
"compreg_s_p",
@@ -1511,10 +1377,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 111 */
+ { /* 109 */
/* type PARROT_INLINE_OP, */
"compreg",
"compreg_sc_p",
@@ -1524,10 +1389,9 @@
3,
{ PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 112 */
+ { /* 110 */
/* type PARROT_INLINE_OP, */
"compreg",
"compreg_p_s",
@@ -1537,10 +1401,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 113 */
+ { /* 111 */
/* type PARROT_INLINE_OP, */
"compreg",
"compreg_p_sc",
@@ -1550,10 +1413,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 114 */
+ { /* 112 */
/* type PARROT_FUNCTION_OP, */
"new_callback",
"new_callback_p_p_p_s",
@@ -1563,10 +1425,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 115 */
+ { /* 113 */
/* type PARROT_FUNCTION_OP, */
"new_callback",
"new_callback_p_p_p_sc",
@@ -1576,49 +1437,45 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 116 */
+ { /* 114 */
/* type PARROT_INLINE_OP, */
"annotations",
"annotations_p",
"Parrot_annotations_p",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 117 */
+ { /* 115 */
/* type PARROT_INLINE_OP, */
"annotations",
"annotations_p_s",
"Parrot_annotations_p_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 118 */
+ { /* 116 */
/* type PARROT_INLINE_OP, */
"annotations",
"annotations_p_sc",
"Parrot_annotations_p_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 119 */
+ { /* 117 */
/* type PARROT_INLINE_OP, */
"band",
"band_i_i",
@@ -1628,10 +1485,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 120 */
+ { /* 118 */
/* type PARROT_INLINE_OP, */
"band",
"band_i_ic",
@@ -1641,10 +1497,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 121 */
+ { /* 119 */
/* type PARROT_INLINE_OP, */
"band",
"band_p_i",
@@ -1654,10 +1509,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 122 */
+ { /* 120 */
/* type PARROT_INLINE_OP, */
"band",
"band_p_ic",
@@ -1667,10 +1521,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 123 */
+ { /* 121 */
/* type PARROT_INLINE_OP, */
"band",
"band_p_p",
@@ -1680,10 +1533,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 124 */
+ { /* 122 */
/* type PARROT_INLINE_OP, */
"band",
"band_i_i_i",
@@ -1693,10 +1545,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 125 */
+ { /* 123 */
/* type PARROT_INLINE_OP, */
"band",
"band_i_ic_i",
@@ -1706,10 +1557,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 126 */
+ { /* 124 */
/* type PARROT_INLINE_OP, */
"band",
"band_i_i_ic",
@@ -1719,10 +1569,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 127 */
+ { /* 125 */
/* type PARROT_INLINE_OP, */
"band",
"band_p_p_i",
@@ -1732,10 +1581,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 128 */
+ { /* 126 */
/* type PARROT_INLINE_OP, */
"band",
"band_p_p_ic",
@@ -1745,10 +1593,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 129 */
+ { /* 127 */
/* type PARROT_INLINE_OP, */
"band",
"band_p_p_p",
@@ -1758,10 +1605,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 130 */
+ { /* 128 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_s_s",
@@ -1771,10 +1617,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 131 */
+ { /* 129 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_s_sc",
@@ -1784,10 +1629,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 132 */
+ { /* 130 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_p_s",
@@ -1797,10 +1641,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 133 */
+ { /* 131 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_p_sc",
@@ -1810,10 +1653,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 134 */
+ { /* 132 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_p_p",
@@ -1823,10 +1665,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 135 */
+ { /* 133 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_s_s_s",
@@ -1836,10 +1677,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 136 */
+ { /* 134 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_s_sc_s",
@@ -1849,10 +1689,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 137 */
+ { /* 135 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_s_s_sc",
@@ -1862,10 +1701,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 138 */
+ { /* 136 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_p_p_s",
@@ -1875,10 +1713,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 139 */
+ { /* 137 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_p_p_sc",
@@ -1888,10 +1725,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 140 */
+ { /* 138 */
/* type PARROT_INLINE_OP, */
"bands",
"bands_p_p_p",
@@ -1901,10 +1737,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 141 */
+ { /* 139 */
/* type PARROT_INLINE_OP, */
"bnot",
"bnot_i",
@@ -1914,10 +1749,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 142 */
+ { /* 140 */
/* type PARROT_INLINE_OP, */
"bnot",
"bnot_i_i",
@@ -1927,10 +1761,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 143 */
+ { /* 141 */
/* type PARROT_INLINE_OP, */
"bnot",
"bnot_p",
@@ -1940,10 +1773,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 144 */
+ { /* 142 */
/* type PARROT_INLINE_OP, */
"bnot",
"bnot_p_p",
@@ -1953,10 +1785,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 145 */
+ { /* 143 */
/* type PARROT_INLINE_OP, */
"bnots",
"bnots_s",
@@ -1966,10 +1797,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 146 */
+ { /* 144 */
/* type PARROT_INLINE_OP, */
"bnots",
"bnots_s_s",
@@ -1979,10 +1809,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 147 */
+ { /* 145 */
/* type PARROT_INLINE_OP, */
"bnots",
"bnots_s_sc",
@@ -1992,10 +1821,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 148 */
+ { /* 146 */
/* type PARROT_INLINE_OP, */
"bnots",
"bnots_p",
@@ -2005,10 +1833,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 149 */
+ { /* 147 */
/* type PARROT_INLINE_OP, */
"bnots",
"bnots_p_p",
@@ -2018,10 +1845,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 150 */
+ { /* 148 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_i_i",
@@ -2031,10 +1857,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 151 */
+ { /* 149 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_i_ic",
@@ -2044,10 +1869,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 152 */
+ { /* 150 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_p_i",
@@ -2057,10 +1881,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 153 */
+ { /* 151 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_p_ic",
@@ -2070,10 +1893,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 154 */
+ { /* 152 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_p_p",
@@ -2083,10 +1905,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 155 */
+ { /* 153 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_i_i_i",
@@ -2096,10 +1917,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 156 */
+ { /* 154 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_i_ic_i",
@@ -2109,10 +1929,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 157 */
+ { /* 155 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_i_i_ic",
@@ -2122,10 +1941,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 158 */
+ { /* 156 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_p_p_i",
@@ -2135,10 +1953,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 159 */
+ { /* 157 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_p_p_ic",
@@ -2148,10 +1965,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 160 */
+ { /* 158 */
/* type PARROT_INLINE_OP, */
"bor",
"bor_p_p_p",
@@ -2161,10 +1977,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 161 */
+ { /* 159 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_s_s",
@@ -2174,10 +1989,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 162 */
+ { /* 160 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_s_sc",
@@ -2187,10 +2001,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 163 */
+ { /* 161 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_p_s",
@@ -2200,10 +2013,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 164 */
+ { /* 162 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_p_sc",
@@ -2213,10 +2025,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 165 */
+ { /* 163 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_p_p",
@@ -2226,10 +2037,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 166 */
+ { /* 164 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_s_s_s",
@@ -2239,10 +2049,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 167 */
+ { /* 165 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_s_sc_s",
@@ -2252,10 +2061,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 168 */
+ { /* 166 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_s_s_sc",
@@ -2265,10 +2073,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 169 */
+ { /* 167 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_p_p_s",
@@ -2278,10 +2085,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 170 */
+ { /* 168 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_p_p_sc",
@@ -2291,10 +2097,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 171 */
+ { /* 169 */
/* type PARROT_INLINE_OP, */
"bors",
"bors_p_p_p",
@@ -2304,10 +2109,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 172 */
+ { /* 170 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_i_i",
@@ -2317,10 +2121,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 173 */
+ { /* 171 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_i_ic",
@@ -2330,10 +2133,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 174 */
+ { /* 172 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_p_i",
@@ -2343,10 +2145,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 175 */
+ { /* 173 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_p_ic",
@@ -2356,10 +2157,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 176 */
+ { /* 174 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_p_p",
@@ -2369,10 +2169,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 177 */
+ { /* 175 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_i_i_i",
@@ -2382,10 +2181,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 178 */
+ { /* 176 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_i_ic_i",
@@ -2395,10 +2193,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 179 */
+ { /* 177 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_i_i_ic",
@@ -2408,10 +2205,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 180 */
+ { /* 178 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_p_p_i",
@@ -2421,10 +2217,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 181 */
+ { /* 179 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_p_p_ic",
@@ -2434,10 +2229,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 182 */
+ { /* 180 */
/* type PARROT_INLINE_OP, */
"shl",
"shl_p_p_p",
@@ -2447,10 +2241,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 183 */
+ { /* 181 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_i_i",
@@ -2460,10 +2253,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 184 */
+ { /* 182 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_i_ic",
@@ -2473,10 +2265,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 185 */
+ { /* 183 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_p_i",
@@ -2486,10 +2277,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 186 */
+ { /* 184 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_p_ic",
@@ -2499,10 +2289,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 187 */
+ { /* 185 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_p_p",
@@ -2512,10 +2301,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 188 */
+ { /* 186 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_i_i_i",
@@ -2525,10 +2313,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 189 */
+ { /* 187 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_i_ic_i",
@@ -2538,10 +2325,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 190 */
+ { /* 188 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_i_i_ic",
@@ -2551,10 +2337,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 191 */
+ { /* 189 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_p_p_i",
@@ -2564,10 +2349,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 192 */
+ { /* 190 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_p_p_ic",
@@ -2577,10 +2361,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 193 */
+ { /* 191 */
/* type PARROT_INLINE_OP, */
"shr",
"shr_p_p_p",
@@ -2590,10 +2373,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 194 */
+ { /* 192 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_i_i",
@@ -2603,10 +2385,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 195 */
+ { /* 193 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_i_ic",
@@ -2616,10 +2397,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 196 */
+ { /* 194 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_p_i",
@@ -2629,10 +2409,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 197 */
+ { /* 195 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_p_ic",
@@ -2642,10 +2421,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 198 */
+ { /* 196 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_p_p",
@@ -2655,10 +2433,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 199 */
+ { /* 197 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_i_i_i",
@@ -2668,10 +2445,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 200 */
+ { /* 198 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_i_ic_i",
@@ -2681,10 +2457,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 201 */
+ { /* 199 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_i_i_ic",
@@ -2694,10 +2469,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 202 */
+ { /* 200 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_p_p_i",
@@ -2707,10 +2481,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 203 */
+ { /* 201 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_p_p_ic",
@@ -2720,10 +2493,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 204 */
+ { /* 202 */
/* type PARROT_INLINE_OP, */
"lsr",
"lsr_p_p_p",
@@ -2733,10 +2505,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 205 */
+ { /* 203 */
/* type PARROT_INLINE_OP, */
"rot",
"rot_i_i_i_ic",
@@ -2746,10 +2517,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 206 */
+ { /* 204 */
/* type PARROT_INLINE_OP, */
"rot",
"rot_i_ic_i_ic",
@@ -2759,10 +2529,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 207 */
+ { /* 205 */
/* type PARROT_INLINE_OP, */
"rot",
"rot_i_i_ic_ic",
@@ -2772,10 +2541,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 208 */
+ { /* 206 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_i_i",
@@ -2785,10 +2553,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 209 */
+ { /* 207 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_i_ic",
@@ -2798,10 +2565,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 210 */
+ { /* 208 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_p_i",
@@ -2811,10 +2577,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 211 */
+ { /* 209 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_p_ic",
@@ -2824,10 +2589,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 212 */
+ { /* 210 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_p_p",
@@ -2837,10 +2601,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 213 */
+ { /* 211 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_i_i_i",
@@ -2850,10 +2613,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 214 */
+ { /* 212 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_i_ic_i",
@@ -2863,10 +2625,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 215 */
+ { /* 213 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_i_i_ic",
@@ -2876,10 +2637,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 216 */
+ { /* 214 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_p_p_i",
@@ -2889,10 +2649,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 217 */
+ { /* 215 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_p_p_ic",
@@ -2902,10 +2661,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 218 */
+ { /* 216 */
/* type PARROT_INLINE_OP, */
"bxor",
"bxor_p_p_p",
@@ -2915,10 +2673,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 219 */
+ { /* 217 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_s_s",
@@ -2928,10 +2685,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 220 */
+ { /* 218 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_s_sc",
@@ -2941,10 +2697,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 221 */
+ { /* 219 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_p_s",
@@ -2954,10 +2709,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 222 */
+ { /* 220 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_p_sc",
@@ -2967,10 +2721,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 223 */
+ { /* 221 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_p_p",
@@ -2980,10 +2733,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 224 */
+ { /* 222 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_s_s_s",
@@ -2993,10 +2745,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 225 */
+ { /* 223 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_s_sc_s",
@@ -3006,10 +2757,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 226 */
+ { /* 224 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_s_s_sc",
@@ -3019,10 +2769,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 227 */
+ { /* 225 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_p_p_s",
@@ -3032,10 +2781,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 228 */
+ { /* 226 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_p_p_sc",
@@ -3045,10 +2793,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 229 */
+ { /* 227 */
/* type PARROT_INLINE_OP, */
"bxors",
"bxors_p_p_p",
@@ -3058,10 +2805,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 230 */
+ { /* 228 */
/* type PARROT_INLINE_OP, */
"eq",
"eq_i_i_ic",
@@ -3071,10 +2817,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 231 */
+ { /* 229 */
/* type PARROT_INLINE_OP, */
"eq",
"eq_ic_i_ic",
@@ -3084,10 +2829,9 @@
4,
{ PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 232 */
+ { /* 230 */
/* type PARROT_INLINE_OP, */
"eq",
"eq_i_ic_ic",
@@ -3097,10 +2841,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 233 */
+ { /* 231 */
/* type PARROT_INLINE_OP, */
"eq",
"eq_n_n_ic",
@@ -3110,10 +2853,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 234 */
+ { /* 232 */
/* type PARROT_INLINE_OP, */
"eq",
"eq_nc_n_ic",
@@ -3123,10 +2865,9 @@
4,
{ PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 235 */
+ { /* 233 */
/* type PARROT_INLINE_OP, */
"eq",
"eq_n_nc_ic",
@@ -3136,10 +2877,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 236 */
+ { /* 234 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_s_s_ic",
@@ -3149,10 +2889,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 237 */
+ { /* 235 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_sc_s_ic",
@@ -3162,10 +2901,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 238 */
+ { /* 236 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_s_sc_ic",
@@ -3175,10 +2913,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 239 */
+ { /* 237 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_p_p_ic",
@@ -3188,10 +2925,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 240 */
+ { /* 238 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_p_i_ic",
@@ -3201,10 +2937,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 241 */
+ { /* 239 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_p_ic_ic",
@@ -3214,10 +2949,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 242 */
+ { /* 240 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_p_n_ic",
@@ -3227,10 +2961,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 243 */
+ { /* 241 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_p_nc_ic",
@@ -3240,10 +2973,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 244 */
+ { /* 242 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_p_s_ic",
@@ -3253,10 +2985,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 245 */
+ { /* 243 */
/* type PARROT_FUNCTION_OP, */
"eq",
"eq_p_sc_ic",
@@ -3266,10 +2997,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 246 */
+ { /* 244 */
/* type PARROT_FUNCTION_OP, */
"eq_str",
"eq_str_p_p_ic",
@@ -3279,10 +3009,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 247 */
+ { /* 245 */
/* type PARROT_FUNCTION_OP, */
"eq_num",
"eq_num_p_p_ic",
@@ -3292,10 +3021,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 248 */
+ { /* 246 */
/* type PARROT_FUNCTION_OP, */
"eq_addr",
"eq_addr_s_s_ic",
@@ -3305,10 +3033,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 249 */
+ { /* 247 */
/* type PARROT_FUNCTION_OP, */
"eq_addr",
"eq_addr_sc_s_ic",
@@ -3318,10 +3045,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 250 */
+ { /* 248 */
/* type PARROT_FUNCTION_OP, */
"eq_addr",
"eq_addr_s_sc_ic",
@@ -3331,10 +3057,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 251 */
+ { /* 249 */
/* type PARROT_FUNCTION_OP, */
"eq_addr",
"eq_addr_sc_sc_ic",
@@ -3344,10 +3069,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 252 */
+ { /* 250 */
/* type PARROT_FUNCTION_OP, */
"eq_addr",
"eq_addr_p_p_ic",
@@ -3357,10 +3081,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 253 */
+ { /* 251 */
/* type PARROT_INLINE_OP, */
"ne",
"ne_i_i_ic",
@@ -3370,10 +3093,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 254 */
+ { /* 252 */
/* type PARROT_INLINE_OP, */
"ne",
"ne_ic_i_ic",
@@ -3383,10 +3105,9 @@
4,
{ PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 255 */
+ { /* 253 */
/* type PARROT_INLINE_OP, */
"ne",
"ne_i_ic_ic",
@@ -3396,10 +3117,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 256 */
+ { /* 254 */
/* type PARROT_INLINE_OP, */
"ne",
"ne_n_n_ic",
@@ -3409,10 +3129,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 257 */
+ { /* 255 */
/* type PARROT_INLINE_OP, */
"ne",
"ne_nc_n_ic",
@@ -3422,10 +3141,9 @@
4,
{ PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 258 */
+ { /* 256 */
/* type PARROT_INLINE_OP, */
"ne",
"ne_n_nc_ic",
@@ -3435,10 +3153,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 259 */
+ { /* 257 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_s_s_ic",
@@ -3448,10 +3165,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 260 */
+ { /* 258 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_sc_s_ic",
@@ -3461,10 +3177,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 261 */
+ { /* 259 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_s_sc_ic",
@@ -3474,10 +3189,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 262 */
+ { /* 260 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_p_p_ic",
@@ -3487,10 +3201,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 263 */
+ { /* 261 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_p_i_ic",
@@ -3500,10 +3213,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 264 */
+ { /* 262 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_p_ic_ic",
@@ -3513,10 +3225,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 265 */
+ { /* 263 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_p_n_ic",
@@ -3526,10 +3237,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 266 */
+ { /* 264 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_p_nc_ic",
@@ -3539,10 +3249,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 267 */
+ { /* 265 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_p_s_ic",
@@ -3552,10 +3261,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 268 */
+ { /* 266 */
/* type PARROT_FUNCTION_OP, */
"ne",
"ne_p_sc_ic",
@@ -3565,10 +3273,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 269 */
+ { /* 267 */
/* type PARROT_FUNCTION_OP, */
"ne_str",
"ne_str_p_p_ic",
@@ -3578,10 +3285,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 270 */
+ { /* 268 */
/* type PARROT_FUNCTION_OP, */
"ne_num",
"ne_num_p_p_ic",
@@ -3591,10 +3297,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 271 */
+ { /* 269 */
/* type PARROT_FUNCTION_OP, */
"ne_addr",
"ne_addr_s_s_ic",
@@ -3604,10 +3309,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 272 */
+ { /* 270 */
/* type PARROT_FUNCTION_OP, */
"ne_addr",
"ne_addr_sc_s_ic",
@@ -3617,10 +3321,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 273 */
+ { /* 271 */
/* type PARROT_FUNCTION_OP, */
"ne_addr",
"ne_addr_s_sc_ic",
@@ -3630,10 +3333,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 274 */
+ { /* 272 */
/* type PARROT_FUNCTION_OP, */
"ne_addr",
"ne_addr_sc_sc_ic",
@@ -3643,10 +3345,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 275 */
+ { /* 273 */
/* type PARROT_FUNCTION_OP, */
"ne_addr",
"ne_addr_p_p_ic",
@@ -3656,10 +3357,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 276 */
+ { /* 274 */
/* type PARROT_INLINE_OP, */
"lt",
"lt_i_i_ic",
@@ -3669,10 +3369,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 277 */
+ { /* 275 */
/* type PARROT_INLINE_OP, */
"lt",
"lt_ic_i_ic",
@@ -3682,10 +3381,9 @@
4,
{ PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 278 */
+ { /* 276 */
/* type PARROT_INLINE_OP, */
"lt",
"lt_i_ic_ic",
@@ -3695,10 +3393,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 279 */
+ { /* 277 */
/* type PARROT_INLINE_OP, */
"lt",
"lt_n_n_ic",
@@ -3708,10 +3405,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 280 */
+ { /* 278 */
/* type PARROT_INLINE_OP, */
"lt",
"lt_nc_n_ic",
@@ -3721,10 +3417,9 @@
4,
{ PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 281 */
+ { /* 279 */
/* type PARROT_INLINE_OP, */
"lt",
"lt_n_nc_ic",
@@ -3734,10 +3429,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 282 */
+ { /* 280 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_s_s_ic",
@@ -3747,10 +3441,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 283 */
+ { /* 281 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_sc_s_ic",
@@ -3760,10 +3453,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 284 */
+ { /* 282 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_s_sc_ic",
@@ -3773,10 +3465,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 285 */
+ { /* 283 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_p_p_ic",
@@ -3786,10 +3477,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 286 */
+ { /* 284 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_p_i_ic",
@@ -3799,10 +3489,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 287 */
+ { /* 285 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_p_ic_ic",
@@ -3812,10 +3501,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 288 */
+ { /* 286 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_p_n_ic",
@@ -3825,10 +3513,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 289 */
+ { /* 287 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_p_nc_ic",
@@ -3838,10 +3525,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 290 */
+ { /* 288 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_p_s_ic",
@@ -3851,10 +3537,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 291 */
+ { /* 289 */
/* type PARROT_FUNCTION_OP, */
"lt",
"lt_p_sc_ic",
@@ -3864,10 +3549,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 292 */
+ { /* 290 */
/* type PARROT_FUNCTION_OP, */
"lt_str",
"lt_str_p_p_ic",
@@ -3877,10 +3561,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 293 */
+ { /* 291 */
/* type PARROT_FUNCTION_OP, */
"lt_num",
"lt_num_p_p_ic",
@@ -3890,10 +3573,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 294 */
+ { /* 292 */
/* type PARROT_INLINE_OP, */
"le",
"le_i_i_ic",
@@ -3903,10 +3585,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 295 */
+ { /* 293 */
/* type PARROT_INLINE_OP, */
"le",
"le_ic_i_ic",
@@ -3916,10 +3597,9 @@
4,
{ PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 296 */
+ { /* 294 */
/* type PARROT_INLINE_OP, */
"le",
"le_i_ic_ic",
@@ -3929,10 +3609,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 297 */
+ { /* 295 */
/* type PARROT_INLINE_OP, */
"le",
"le_n_n_ic",
@@ -3942,10 +3621,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 298 */
+ { /* 296 */
/* type PARROT_INLINE_OP, */
"le",
"le_nc_n_ic",
@@ -3955,10 +3633,9 @@
4,
{ PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 299 */
+ { /* 297 */
/* type PARROT_INLINE_OP, */
"le",
"le_n_nc_ic",
@@ -3968,10 +3645,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 300 */
+ { /* 298 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_s_s_ic",
@@ -3981,10 +3657,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 301 */
+ { /* 299 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_sc_s_ic",
@@ -3994,10 +3669,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 302 */
+ { /* 300 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_s_sc_ic",
@@ -4007,10 +3681,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 303 */
+ { /* 301 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_p_p_ic",
@@ -4020,10 +3693,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 304 */
+ { /* 302 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_p_i_ic",
@@ -4033,10 +3705,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 305 */
+ { /* 303 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_p_ic_ic",
@@ -4046,10 +3717,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 306 */
+ { /* 304 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_p_n_ic",
@@ -4059,10 +3729,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 307 */
+ { /* 305 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_p_nc_ic",
@@ -4072,10 +3741,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 308 */
+ { /* 306 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_p_s_ic",
@@ -4085,10 +3753,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 309 */
+ { /* 307 */
/* type PARROT_FUNCTION_OP, */
"le",
"le_p_sc_ic",
@@ -4098,10 +3765,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 310 */
+ { /* 308 */
/* type PARROT_FUNCTION_OP, */
"le_str",
"le_str_p_p_ic",
@@ -4111,10 +3777,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 311 */
+ { /* 309 */
/* type PARROT_FUNCTION_OP, */
"le_num",
"le_num_p_p_ic",
@@ -4124,10 +3789,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 312 */
+ { /* 310 */
/* type PARROT_FUNCTION_OP, */
"gt",
"gt_p_p_ic",
@@ -4137,10 +3801,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 313 */
+ { /* 311 */
/* type PARROT_FUNCTION_OP, */
"gt",
"gt_p_i_ic",
@@ -4150,10 +3813,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 314 */
+ { /* 312 */
/* type PARROT_FUNCTION_OP, */
"gt",
"gt_p_ic_ic",
@@ -4163,10 +3825,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 315 */
+ { /* 313 */
/* type PARROT_FUNCTION_OP, */
"gt",
"gt_p_n_ic",
@@ -4176,10 +3837,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 316 */
+ { /* 314 */
/* type PARROT_FUNCTION_OP, */
"gt",
"gt_p_nc_ic",
@@ -4189,10 +3849,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 317 */
+ { /* 315 */
/* type PARROT_FUNCTION_OP, */
"gt",
"gt_p_s_ic",
@@ -4202,10 +3861,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 318 */
+ { /* 316 */
/* type PARROT_FUNCTION_OP, */
"gt",
"gt_p_sc_ic",
@@ -4215,10 +3873,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 319 */
+ { /* 317 */
/* type PARROT_FUNCTION_OP, */
"gt_str",
"gt_str_p_p_ic",
@@ -4228,10 +3885,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 320 */
+ { /* 318 */
/* type PARROT_FUNCTION_OP, */
"gt_num",
"gt_num_p_p_ic",
@@ -4241,10 +3897,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 321 */
+ { /* 319 */
/* type PARROT_FUNCTION_OP, */
"ge",
"ge_p_p_ic",
@@ -4254,10 +3909,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 322 */
+ { /* 320 */
/* type PARROT_FUNCTION_OP, */
"ge",
"ge_p_i_ic",
@@ -4267,10 +3921,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 323 */
+ { /* 321 */
/* type PARROT_FUNCTION_OP, */
"ge",
"ge_p_ic_ic",
@@ -4280,10 +3933,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 324 */
+ { /* 322 */
/* type PARROT_FUNCTION_OP, */
"ge",
"ge_p_n_ic",
@@ -4293,10 +3945,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 325 */
+ { /* 323 */
/* type PARROT_FUNCTION_OP, */
"ge",
"ge_p_nc_ic",
@@ -4306,10 +3957,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 326 */
+ { /* 324 */
/* type PARROT_FUNCTION_OP, */
"ge",
"ge_p_s_ic",
@@ -4319,10 +3969,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 327 */
+ { /* 325 */
/* type PARROT_FUNCTION_OP, */
"ge",
"ge_p_sc_ic",
@@ -4332,10 +3981,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 328 */
+ { /* 326 */
/* type PARROT_FUNCTION_OP, */
"ge_str",
"ge_str_p_p_ic",
@@ -4345,10 +3993,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 329 */
+ { /* 327 */
/* type PARROT_FUNCTION_OP, */
"ge_num",
"ge_num_p_p_ic",
@@ -4358,10 +4005,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 1 },
- 0
+ { 0, 0, 1 }
},
- { /* 330 */
+ { /* 328 */
/* type PARROT_FUNCTION_OP, */
"if_null",
"if_null_p_ic",
@@ -4371,10 +4017,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 331 */
+ { /* 329 */
/* type PARROT_FUNCTION_OP, */
"if_null",
"if_null_s_ic",
@@ -4384,10 +4029,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 332 */
+ { /* 330 */
/* type PARROT_FUNCTION_OP, */
"unless_null",
"unless_null_p_ic",
@@ -4397,10 +4041,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 333 */
+ { /* 331 */
/* type PARROT_FUNCTION_OP, */
"unless_null",
"unless_null_s_ic",
@@ -4410,10 +4053,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 334 */
+ { /* 332 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_i_i",
@@ -4423,10 +4065,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 335 */
+ { /* 333 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_ic_i",
@@ -4436,10 +4077,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 336 */
+ { /* 334 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_i_ic",
@@ -4449,10 +4089,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 337 */
+ { /* 335 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_n_n",
@@ -4462,10 +4101,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 338 */
+ { /* 336 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_nc_n",
@@ -4475,10 +4113,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 339 */
+ { /* 337 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_n_nc",
@@ -4488,10 +4125,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 340 */
+ { /* 338 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_s_s",
@@ -4501,10 +4137,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 341 */
+ { /* 339 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_sc_s",
@@ -4514,10 +4149,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 342 */
+ { /* 340 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_s_sc",
@@ -4527,10 +4161,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 343 */
+ { /* 341 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_p_p",
@@ -4540,10 +4173,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 344 */
+ { /* 342 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_p_i",
@@ -4553,10 +4185,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 345 */
+ { /* 343 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_p_ic",
@@ -4566,10 +4197,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 346 */
+ { /* 344 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_p_n",
@@ -4579,10 +4209,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 347 */
+ { /* 345 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_p_nc",
@@ -4592,10 +4221,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 348 */
+ { /* 346 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_p_s",
@@ -4605,10 +4233,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 349 */
+ { /* 347 */
/* type PARROT_INLINE_OP, */
"cmp",
"cmp_i_p_sc",
@@ -4618,10 +4245,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 350 */
+ { /* 348 */
/* type PARROT_INLINE_OP, */
"cmp_str",
"cmp_str_i_p_p",
@@ -4631,10 +4257,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 351 */
+ { /* 349 */
/* type PARROT_INLINE_OP, */
"cmp_num",
"cmp_num_i_p_p",
@@ -4644,10 +4269,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 352 */
+ { /* 350 */
/* type PARROT_INLINE_OP, */
"cmp_pmc",
"cmp_pmc_p_p_p",
@@ -4657,10 +4281,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 353 */
+ { /* 351 */
/* type PARROT_INLINE_OP, */
"issame",
"issame_i_p_p",
@@ -4670,10 +4293,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 354 */
+ { /* 352 */
/* type PARROT_INLINE_OP, */
"issame",
"issame_i_s_s",
@@ -4683,10 +4305,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 355 */
+ { /* 353 */
/* type PARROT_INLINE_OP, */
"issame",
"issame_i_sc_s",
@@ -4696,10 +4317,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 356 */
+ { /* 354 */
/* type PARROT_INLINE_OP, */
"issame",
"issame_i_s_sc",
@@ -4709,10 +4329,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 357 */
+ { /* 355 */
/* type PARROT_INLINE_OP, */
"issame",
"issame_i_sc_sc",
@@ -4722,10 +4341,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 358 */
+ { /* 356 */
/* type PARROT_INLINE_OP, */
"isntsame",
"isntsame_i_p_p",
@@ -4735,10 +4353,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 359 */
+ { /* 357 */
/* type PARROT_INLINE_OP, */
"isntsame",
"isntsame_i_s_s",
@@ -4748,10 +4365,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 360 */
+ { /* 358 */
/* type PARROT_INLINE_OP, */
"isntsame",
"isntsame_i_sc_s",
@@ -4761,10 +4377,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 361 */
+ { /* 359 */
/* type PARROT_INLINE_OP, */
"isntsame",
"isntsame_i_s_sc",
@@ -4774,10 +4389,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 362 */
+ { /* 360 */
/* type PARROT_INLINE_OP, */
"isntsame",
"isntsame_i_sc_sc",
@@ -4787,10 +4401,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 363 */
+ { /* 361 */
/* type PARROT_INLINE_OP, */
"istrue",
"istrue_i_p",
@@ -4800,10 +4413,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 364 */
+ { /* 362 */
/* type PARROT_INLINE_OP, */
"isfalse",
"isfalse_i_p",
@@ -4813,10 +4425,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 365 */
+ { /* 363 */
/* type PARROT_INLINE_OP, */
"isnull",
"isnull_i_p",
@@ -4826,10 +4437,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 366 */
+ { /* 364 */
/* type PARROT_INLINE_OP, */
"isnull",
"isnull_i_pc",
@@ -4839,10 +4449,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 367 */
+ { /* 365 */
/* type PARROT_INLINE_OP, */
"isnull",
"isnull_i_s",
@@ -4852,10 +4461,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 368 */
+ { /* 366 */
/* type PARROT_INLINE_OP, */
"isnull",
"isnull_i_sc",
@@ -4865,10 +4473,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 369 */
+ { /* 367 */
/* type PARROT_INLINE_OP, */
"isgt",
"isgt_i_p_p",
@@ -4878,10 +4485,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 370 */
+ { /* 368 */
/* type PARROT_INLINE_OP, */
"isge",
"isge_i_p_p",
@@ -4891,10 +4497,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 371 */
+ { /* 369 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_i_i",
@@ -4904,10 +4509,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 372 */
+ { /* 370 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_ic_i",
@@ -4917,10 +4521,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 373 */
+ { /* 371 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_i_ic",
@@ -4930,10 +4533,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 374 */
+ { /* 372 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_n_n",
@@ -4943,10 +4545,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 375 */
+ { /* 373 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_nc_n",
@@ -4956,10 +4557,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 376 */
+ { /* 374 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_n_nc",
@@ -4969,10 +4569,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 377 */
+ { /* 375 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_s_s",
@@ -4982,10 +4581,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 378 */
+ { /* 376 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_sc_s",
@@ -4995,10 +4593,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 379 */
+ { /* 377 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_s_sc",
@@ -5008,10 +4605,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 380 */
+ { /* 378 */
/* type PARROT_INLINE_OP, */
"isle",
"isle_i_p_p",
@@ -5021,10 +4617,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 381 */
+ { /* 379 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_i_i",
@@ -5034,10 +4629,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 382 */
+ { /* 380 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_ic_i",
@@ -5047,10 +4641,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 383 */
+ { /* 381 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_i_ic",
@@ -5060,10 +4653,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 384 */
+ { /* 382 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_n_n",
@@ -5073,10 +4665,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 385 */
+ { /* 383 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_nc_n",
@@ -5086,10 +4677,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 386 */
+ { /* 384 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_n_nc",
@@ -5099,10 +4689,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 387 */
+ { /* 385 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_s_s",
@@ -5112,10 +4701,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 388 */
+ { /* 386 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_sc_s",
@@ -5125,10 +4713,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 389 */
+ { /* 387 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_s_sc",
@@ -5138,10 +4725,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 390 */
+ { /* 388 */
/* type PARROT_INLINE_OP, */
"islt",
"islt_i_p_p",
@@ -5151,10 +4737,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 391 */
+ { /* 389 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_i_i",
@@ -5164,10 +4749,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 392 */
+ { /* 390 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_ic_i",
@@ -5177,10 +4761,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 393 */
+ { /* 391 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_i_ic",
@@ -5190,10 +4773,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 394 */
+ { /* 392 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_n_n",
@@ -5203,10 +4785,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 395 */
+ { /* 393 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_nc_n",
@@ -5216,10 +4797,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 396 */
+ { /* 394 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_n_nc",
@@ -5229,10 +4809,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 397 */
+ { /* 395 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_s_s",
@@ -5242,10 +4821,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 398 */
+ { /* 396 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_sc_s",
@@ -5255,10 +4833,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 399 */
+ { /* 397 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_s_sc",
@@ -5268,10 +4845,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 400 */
+ { /* 398 */
/* type PARROT_INLINE_OP, */
"iseq",
"iseq_i_p_p",
@@ -5281,10 +4857,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 401 */
+ { /* 399 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_i_i",
@@ -5294,10 +4869,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 402 */
+ { /* 400 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_ic_i",
@@ -5307,10 +4881,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 403 */
+ { /* 401 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_i_ic",
@@ -5320,10 +4893,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 404 */
+ { /* 402 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_n_n",
@@ -5333,10 +4905,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 405 */
+ { /* 403 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_nc_n",
@@ -5346,10 +4917,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 406 */
+ { /* 404 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_n_nc",
@@ -5359,10 +4929,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 407 */
+ { /* 405 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_s_s",
@@ -5372,10 +4941,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 408 */
+ { /* 406 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_sc_s",
@@ -5385,10 +4953,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 409 */
+ { /* 407 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_s_sc",
@@ -5398,10 +4965,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 410 */
+ { /* 408 */
/* type PARROT_INLINE_OP, */
"isne",
"isne_i_p_p",
@@ -5411,10 +4977,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 411 */
+ { /* 409 */
/* type PARROT_INLINE_OP, */
"and",
"and_i_i_i",
@@ -5424,10 +4989,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 412 */
+ { /* 410 */
/* type PARROT_INLINE_OP, */
"and",
"and_i_ic_i",
@@ -5437,10 +5001,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 413 */
+ { /* 411 */
/* type PARROT_INLINE_OP, */
"and",
"and_i_i_ic",
@@ -5450,10 +5013,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 414 */
+ { /* 412 */
/* type PARROT_INLINE_OP, */
"and",
"and_p_p_p",
@@ -5463,10 +5025,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 415 */
+ { /* 413 */
/* type PARROT_INLINE_OP, */
"not",
"not_i",
@@ -5476,10 +5037,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 416 */
+ { /* 414 */
/* type PARROT_INLINE_OP, */
"not",
"not_i_i",
@@ -5489,10 +5049,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 417 */
+ { /* 415 */
/* type PARROT_INLINE_OP, */
"not",
"not_p",
@@ -5502,10 +5061,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 418 */
+ { /* 416 */
/* type PARROT_INLINE_OP, */
"not",
"not_p_p",
@@ -5515,10 +5073,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 419 */
+ { /* 417 */
/* type PARROT_INLINE_OP, */
"or",
"or_i_i_i",
@@ -5528,10 +5085,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 420 */
+ { /* 418 */
/* type PARROT_INLINE_OP, */
"or",
"or_i_ic_i",
@@ -5541,10 +5097,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 421 */
+ { /* 419 */
/* type PARROT_INLINE_OP, */
"or",
"or_i_i_ic",
@@ -5554,10 +5109,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 422 */
+ { /* 420 */
/* type PARROT_INLINE_OP, */
"or",
"or_p_p_p",
@@ -5567,10 +5121,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 423 */
+ { /* 421 */
/* type PARROT_INLINE_OP, */
"xor",
"xor_i_i_i",
@@ -5580,10 +5133,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 424 */
+ { /* 422 */
/* type PARROT_INLINE_OP, */
"xor",
"xor_i_ic_i",
@@ -5593,10 +5145,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 425 */
+ { /* 423 */
/* type PARROT_INLINE_OP, */
"xor",
"xor_i_i_ic",
@@ -5606,10 +5157,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 426 */
+ { /* 424 */
/* type PARROT_INLINE_OP, */
"xor",
"xor_p_p_p",
@@ -5619,10 +5169,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 427 */
+ { /* 425 */
/* type PARROT_FUNCTION_OP, */
"debug_init",
"debug_init",
@@ -5630,12 +5179,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 428 */
+ { /* 426 */
/* type PARROT_FUNCTION_OP, */
"debug_load",
"debug_load_sc",
@@ -5645,10 +5193,9 @@
2,
{ PARROT_ARG_SC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 429 */
+ { /* 427 */
/* type PARROT_FUNCTION_OP, */
"debug_break",
"debug_break",
@@ -5656,25 +5203,23 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 430 */
+ { /* 428 */
/* type PARROT_FUNCTION_OP, */
"debug_print",
"debug_print",
"Parrot_debug_print",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 431 */
+ { /* 429 */
/* type PARROT_FUNCTION_OP, */
"backtrace",
"backtrace",
@@ -5682,12 +5227,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 432 */
+ { /* 430 */
/* type PARROT_INLINE_OP, */
"getline",
"getline_i",
@@ -5697,10 +5241,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 433 */
+ { /* 431 */
/* type PARROT_INLINE_OP, */
"getfile",
"getfile_s",
@@ -5710,10 +5253,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 434 */
+ { /* 432 */
/* type PARROT_INLINE_OP, */
"set_label",
"set_label_p_ic",
@@ -5723,10 +5265,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 1 },
- 0
+ { 0, 1 }
},
- { /* 435 */
+ { /* 433 */
/* type PARROT_INLINE_OP, */
"get_label",
"get_label_i_p",
@@ -5736,10 +5277,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 436 */
+ { /* 434 */
/* type PARROT_INLINE_OP, */
"close",
"close_p",
@@ -5749,10 +5289,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 437 */
+ { /* 435 */
/* type PARROT_INLINE_OP, */
"fdopen",
"fdopen_p_i_s",
@@ -5762,10 +5301,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 438 */
+ { /* 436 */
/* type PARROT_INLINE_OP, */
"fdopen",
"fdopen_p_ic_s",
@@ -5775,10 +5313,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 439 */
+ { /* 437 */
/* type PARROT_INLINE_OP, */
"fdopen",
"fdopen_p_i_sc",
@@ -5788,10 +5325,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 440 */
+ { /* 438 */
/* type PARROT_INLINE_OP, */
"fdopen",
"fdopen_p_ic_sc",
@@ -5801,10 +5337,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 441 */
+ { /* 439 */
/* type PARROT_INLINE_OP, */
"getstdin",
"getstdin_p",
@@ -5814,10 +5349,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 442 */
+ { /* 440 */
/* type PARROT_INLINE_OP, */
"getstdout",
"getstdout_p",
@@ -5827,10 +5361,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 443 */
+ { /* 441 */
/* type PARROT_INLINE_OP, */
"getstderr",
"getstderr_p",
@@ -5840,10 +5373,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 444 */
+ { /* 442 */
/* type PARROT_INLINE_OP, */
"setstdin",
"setstdin_p",
@@ -5853,10 +5385,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 445 */
+ { /* 443 */
/* type PARROT_INLINE_OP, */
"setstdout",
"setstdout_p",
@@ -5866,10 +5397,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 446 */
+ { /* 444 */
/* type PARROT_INLINE_OP, */
"setstderr",
"setstderr_p",
@@ -5879,88 +5409,81 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 447 */
+ { /* 445 */
/* type PARROT_INLINE_OP, */
"open",
"open_p_s_s",
"Parrot_open_p_s_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 448 */
+ { /* 446 */
/* type PARROT_INLINE_OP, */
"open",
"open_p_sc_s",
"Parrot_open_p_sc_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 449 */
+ { /* 447 */
/* type PARROT_INLINE_OP, */
"open",
"open_p_s_sc",
"Parrot_open_p_s_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 450 */
+ { /* 448 */
/* type PARROT_INLINE_OP, */
"open",
"open_p_sc_sc",
"Parrot_open_p_sc_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 451 */
+ { /* 449 */
/* type PARROT_INLINE_OP, */
"open",
"open_p_s",
"Parrot_open_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 452 */
+ { /* 450 */
/* type PARROT_INLINE_OP, */
"open",
"open_p_sc",
"Parrot_open_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 453 */
+ { /* 451 */
/* type PARROT_INLINE_OP, */
"print",
"print_i",
@@ -5970,10 +5493,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 454 */
+ { /* 452 */
/* type PARROT_INLINE_OP, */
"print",
"print_ic",
@@ -5983,10 +5505,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 455 */
+ { /* 453 */
/* type PARROT_INLINE_OP, */
"print",
"print_n",
@@ -5996,10 +5517,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 456 */
+ { /* 454 */
/* type PARROT_INLINE_OP, */
"print",
"print_nc",
@@ -6009,10 +5529,9 @@
2,
{ PARROT_ARG_NC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 457 */
+ { /* 455 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_s",
@@ -6022,10 +5541,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 458 */
+ { /* 456 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_sc",
@@ -6035,10 +5553,9 @@
2,
{ PARROT_ARG_SC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 459 */
+ { /* 457 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p",
@@ -6048,10 +5565,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 460 */
+ { /* 458 */
/* type PARROT_INLINE_OP, */
"say",
"say_i",
@@ -6061,10 +5577,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 461 */
+ { /* 459 */
/* type PARROT_INLINE_OP, */
"say",
"say_ic",
@@ -6074,10 +5589,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 462 */
+ { /* 460 */
/* type PARROT_INLINE_OP, */
"say",
"say_n",
@@ -6087,10 +5601,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 463 */
+ { /* 461 */
/* type PARROT_INLINE_OP, */
"say",
"say_nc",
@@ -6100,10 +5613,9 @@
2,
{ PARROT_ARG_NC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 464 */
+ { /* 462 */
/* type PARROT_FUNCTION_OP, */
"say",
"say_s",
@@ -6113,10 +5625,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 465 */
+ { /* 463 */
/* type PARROT_FUNCTION_OP, */
"say",
"say_sc",
@@ -6126,23 +5637,21 @@
2,
{ PARROT_ARG_SC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 466 */
+ { /* 464 */
/* type PARROT_FUNCTION_OP, */
"say",
"say_p",
"Parrot_say_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 467 */
+ { /* 465 */
/* type PARROT_FUNCTION_OP, */
"printerr",
"printerr_i",
@@ -6152,10 +5661,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 468 */
+ { /* 466 */
/* type PARROT_FUNCTION_OP, */
"printerr",
"printerr_ic",
@@ -6165,10 +5673,9 @@
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 469 */
+ { /* 467 */
/* type PARROT_FUNCTION_OP, */
"printerr",
"printerr_n",
@@ -6178,10 +5685,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 470 */
+ { /* 468 */
/* type PARROT_FUNCTION_OP, */
"printerr",
"printerr_nc",
@@ -6191,10 +5697,9 @@
2,
{ PARROT_ARG_NC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 471 */
+ { /* 469 */
/* type PARROT_FUNCTION_OP, */
"printerr",
"printerr_s",
@@ -6204,10 +5709,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 472 */
+ { /* 470 */
/* type PARROT_FUNCTION_OP, */
"printerr",
"printerr_sc",
@@ -6217,10 +5721,9 @@
2,
{ PARROT_ARG_SC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 473 */
+ { /* 471 */
/* type PARROT_FUNCTION_OP, */
"printerr",
"printerr_p",
@@ -6230,10 +5733,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 474 */
+ { /* 472 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p_i",
@@ -6243,10 +5745,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 475 */
+ { /* 473 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p_ic",
@@ -6256,10 +5757,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 476 */
+ { /* 474 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p_n",
@@ -6269,10 +5769,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 477 */
+ { /* 475 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p_nc",
@@ -6282,10 +5781,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 478 */
+ { /* 476 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p_s",
@@ -6295,10 +5793,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 479 */
+ { /* 477 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p_sc",
@@ -6308,10 +5805,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 480 */
+ { /* 478 */
/* type PARROT_FUNCTION_OP, */
"print",
"print_p_p",
@@ -6321,10 +5817,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 481 */
+ { /* 479 */
/* type PARROT_FUNCTION_OP, */
"read",
"read_s_i",
@@ -6334,10 +5829,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 482 */
+ { /* 480 */
/* type PARROT_FUNCTION_OP, */
"read",
"read_s_ic",
@@ -6347,10 +5841,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 483 */
+ { /* 481 */
/* type PARROT_FUNCTION_OP, */
"read",
"read_s_p_i",
@@ -6360,10 +5853,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 484 */
+ { /* 482 */
/* type PARROT_FUNCTION_OP, */
"read",
"read_s_p_ic",
@@ -6373,10 +5865,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 485 */
+ { /* 483 */
/* type PARROT_INLINE_OP, */
"readline",
"readline_s_p",
@@ -6386,10 +5877,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 486 */
+ { /* 484 */
/* type PARROT_FUNCTION_OP, */
"peek",
"peek_s",
@@ -6399,10 +5889,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 487 */
+ { /* 485 */
/* type PARROT_FUNCTION_OP, */
"peek",
"peek_s_p",
@@ -6412,10 +5901,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 488 */
+ { /* 486 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_s_i",
@@ -6425,10 +5913,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 489 */
+ { /* 487 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_sc_i",
@@ -6438,10 +5925,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 490 */
+ { /* 488 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_s_ic",
@@ -6451,10 +5937,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 491 */
+ { /* 489 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_sc_ic",
@@ -6464,10 +5949,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 492 */
+ { /* 490 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_i_i",
@@ -6477,10 +5961,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 493 */
+ { /* 491 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_ic_i",
@@ -6490,10 +5973,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 494 */
+ { /* 492 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_i_ic",
@@ -6503,10 +5985,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 495 */
+ { /* 493 */
/* type PARROT_FUNCTION_OP, */
"stat",
"stat_i_ic_ic",
@@ -6516,166 +5997,153 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 496 */
+ { /* 494 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_i_i",
"Parrot_seek_p_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 497 */
+ { /* 495 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_ic_i",
"Parrot_seek_p_ic_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 498 */
+ { /* 496 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_i_ic",
"Parrot_seek_p_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 499 */
+ { /* 497 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_ic_ic",
"Parrot_seek_p_ic_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 500 */
+ { /* 498 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_i_i_i",
"Parrot_seek_p_i_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 501 */
+ { /* 499 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_ic_i_i",
"Parrot_seek_p_ic_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 502 */
+ { /* 500 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_i_ic_i",
"Parrot_seek_p_i_ic_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 503 */
+ { /* 501 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_ic_ic_i",
"Parrot_seek_p_ic_ic_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 504 */
+ { /* 502 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_i_i_ic",
"Parrot_seek_p_i_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 505 */
+ { /* 503 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_ic_i_ic",
"Parrot_seek_p_ic_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 506 */
+ { /* 504 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_i_ic_ic",
"Parrot_seek_p_i_ic_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 507 */
+ { /* 505 */
/* type PARROT_FUNCTION_OP, */
"seek",
"seek_p_ic_ic_ic",
"Parrot_seek_p_ic_ic_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 508 */
+ { /* 506 */
/* type PARROT_FUNCTION_OP, */
"tell",
"tell_i_p",
@@ -6685,10 +6153,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 509 */
+ { /* 507 */
/* type PARROT_FUNCTION_OP, */
"tell",
"tell_i_i_p",
@@ -6698,10 +6165,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 510 */
+ { /* 508 */
/* type PARROT_INLINE_OP, */
"abs",
"abs_i",
@@ -6711,10 +6177,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 511 */
+ { /* 509 */
/* type PARROT_INLINE_OP, */
"abs",
"abs_n",
@@ -6724,10 +6189,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 512 */
+ { /* 510 */
/* type PARROT_INLINE_OP, */
"abs",
"abs_i_i",
@@ -6737,10 +6201,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 513 */
+ { /* 511 */
/* type PARROT_INLINE_OP, */
"abs",
"abs_n_n",
@@ -6750,10 +6213,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 514 */
+ { /* 512 */
/* type PARROT_INLINE_OP, */
"abs",
"abs_p",
@@ -6763,10 +6225,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 515 */
+ { /* 513 */
/* type PARROT_INLINE_OP, */
"abs",
"abs_p_p",
@@ -6776,10 +6237,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 516 */
+ { /* 514 */
/* type PARROT_INLINE_OP, */
"add",
"add_i_i",
@@ -6789,10 +6249,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 517 */
+ { /* 515 */
/* type PARROT_INLINE_OP, */
"add",
"add_i_ic",
@@ -6802,10 +6261,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 518 */
+ { /* 516 */
/* type PARROT_INLINE_OP, */
"add",
"add_n_n",
@@ -6815,10 +6273,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 519 */
+ { /* 517 */
/* type PARROT_INLINE_OP, */
"add",
"add_n_nc",
@@ -6828,10 +6285,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 520 */
+ { /* 518 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_p",
@@ -6841,10 +6297,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 521 */
+ { /* 519 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_i",
@@ -6854,10 +6309,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 522 */
+ { /* 520 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_ic",
@@ -6867,10 +6321,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 523 */
+ { /* 521 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_n",
@@ -6880,10 +6333,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 524 */
+ { /* 522 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_nc",
@@ -6893,10 +6345,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 525 */
+ { /* 523 */
/* type PARROT_INLINE_OP, */
"add",
"add_i_i_i",
@@ -6906,10 +6357,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 526 */
+ { /* 524 */
/* type PARROT_INLINE_OP, */
"add",
"add_i_ic_i",
@@ -6919,10 +6369,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 527 */
+ { /* 525 */
/* type PARROT_INLINE_OP, */
"add",
"add_i_i_ic",
@@ -6932,10 +6381,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 528 */
+ { /* 526 */
/* type PARROT_INLINE_OP, */
"add",
"add_n_n_n",
@@ -6945,10 +6393,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 529 */
+ { /* 527 */
/* type PARROT_INLINE_OP, */
"add",
"add_n_nc_n",
@@ -6958,10 +6405,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 530 */
+ { /* 528 */
/* type PARROT_INLINE_OP, */
"add",
"add_n_n_nc",
@@ -6971,10 +6417,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 531 */
+ { /* 529 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_p_p",
@@ -6984,10 +6429,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 532 */
+ { /* 530 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_p_i",
@@ -6997,10 +6441,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 533 */
+ { /* 531 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_p_ic",
@@ -7010,10 +6453,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 534 */
+ { /* 532 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_p_n",
@@ -7023,10 +6465,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 535 */
+ { /* 533 */
/* type PARROT_INLINE_OP, */
"add",
"add_p_p_nc",
@@ -7036,153 +6477,141 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 536 */
+ { /* 534 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_i_i_i",
"Parrot_cmod_i_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 537 */
+ { /* 535 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_i_ic_i",
"Parrot_cmod_i_ic_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 538 */
+ { /* 536 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_i_i_ic",
"Parrot_cmod_i_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 539 */
+ { /* 537 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_p_p_i",
"Parrot_cmod_p_p_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 540 */
+ { /* 538 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_p_p_ic",
"Parrot_cmod_p_p_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 541 */
+ { /* 539 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_p_p_p",
"Parrot_cmod_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 542 */
+ { /* 540 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_n_n_n",
"Parrot_cmod_n_n_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 543 */
+ { /* 541 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_n_nc_n",
"Parrot_cmod_n_nc_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 544 */
+ { /* 542 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_n_n_nc",
"Parrot_cmod_n_n_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 545 */
+ { /* 543 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_p_p_n",
"Parrot_cmod_p_p_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 546 */
+ { /* 544 */
/* type PARROT_INLINE_OP, */
"cmod",
"cmod_p_p_nc",
"Parrot_cmod_p_p_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 547 */
+ { /* 545 */
/* type PARROT_INLINE_OP, */
"dec",
"dec_i",
@@ -7192,10 +6621,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 548 */
+ { /* 546 */
/* type PARROT_INLINE_OP, */
"dec",
"dec_n",
@@ -7205,10 +6633,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 549 */
+ { /* 547 */
/* type PARROT_INLINE_OP, */
"dec",
"dec_p",
@@ -7218,62 +6645,57 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 550 */
+ { /* 548 */
/* type PARROT_INLINE_OP, */
"div",
"div_i_i",
"Parrot_div_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 551 */
+ { /* 549 */
/* type PARROT_INLINE_OP, */
"div",
"div_i_ic",
"Parrot_div_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 552 */
+ { /* 550 */
/* type PARROT_INLINE_OP, */
"div",
"div_n_n",
"Parrot_div_n_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 553 */
+ { /* 551 */
/* type PARROT_INLINE_OP, */
"div",
"div_n_nc",
"Parrot_div_n_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 554 */
+ { /* 552 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_p",
@@ -7283,10 +6705,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 555 */
+ { /* 553 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_i",
@@ -7296,10 +6717,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 556 */
+ { /* 554 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_ic",
@@ -7309,10 +6729,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 557 */
+ { /* 555 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_n",
@@ -7322,10 +6741,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 558 */
+ { /* 556 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_nc",
@@ -7335,114 +6753,105 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 559 */
+ { /* 557 */
/* type PARROT_INLINE_OP, */
"div",
"div_i_i_i",
"Parrot_div_i_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 560 */
+ { /* 558 */
/* type PARROT_INLINE_OP, */
"div",
"div_i_ic_i",
"Parrot_div_i_ic_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 561 */
+ { /* 559 */
/* type PARROT_INLINE_OP, */
"div",
"div_i_i_ic",
"Parrot_div_i_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 562 */
+ { /* 560 */
/* type PARROT_INLINE_OP, */
"div",
"div_i_ic_ic",
"Parrot_div_i_ic_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 563 */
+ { /* 561 */
/* type PARROT_INLINE_OP, */
"div",
"div_n_n_n",
"Parrot_div_n_n_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 564 */
+ { /* 562 */
/* type PARROT_INLINE_OP, */
"div",
"div_n_nc_n",
"Parrot_div_n_nc_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 565 */
+ { /* 563 */
/* type PARROT_INLINE_OP, */
"div",
"div_n_n_nc",
"Parrot_div_n_n_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 566 */
+ { /* 564 */
/* type PARROT_INLINE_OP, */
"div",
"div_n_nc_nc",
"Parrot_div_n_nc_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 567 */
+ { /* 565 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_p_p",
@@ -7452,10 +6861,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 568 */
+ { /* 566 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_p_i",
@@ -7465,10 +6873,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 569 */
+ { /* 567 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_p_ic",
@@ -7478,10 +6885,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 570 */
+ { /* 568 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_p_n",
@@ -7491,10 +6897,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 571 */
+ { /* 569 */
/* type PARROT_INLINE_OP, */
"div",
"div_p_p_nc",
@@ -7504,62 +6909,57 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 572 */
+ { /* 570 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_i_i",
"Parrot_fdiv_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 573 */
+ { /* 571 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_i_ic",
"Parrot_fdiv_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 574 */
+ { /* 572 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_n_n",
"Parrot_fdiv_n_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 575 */
+ { /* 573 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_n_nc",
"Parrot_fdiv_n_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 576 */
+ { /* 574 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_p",
@@ -7569,10 +6969,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 577 */
+ { /* 575 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_i",
@@ -7582,10 +6981,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 578 */
+ { /* 576 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_ic",
@@ -7595,10 +6993,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 579 */
+ { /* 577 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_n",
@@ -7608,10 +7005,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 580 */
+ { /* 578 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_nc",
@@ -7621,88 +7017,81 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 581 */
+ { /* 579 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_i_i_i",
"Parrot_fdiv_i_i_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 582 */
+ { /* 580 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_i_ic_i",
"Parrot_fdiv_i_ic_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 583 */
+ { /* 581 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_i_i_ic",
"Parrot_fdiv_i_i_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 584 */
+ { /* 582 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_n_n_n",
"Parrot_fdiv_n_n_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 585 */
+ { /* 583 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_n_nc_n",
"Parrot_fdiv_n_nc_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 586 */
+ { /* 584 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_n_n_nc",
"Parrot_fdiv_n_n_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 587 */
+ { /* 585 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_p_p",
@@ -7712,10 +7101,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 588 */
+ { /* 586 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_p_i",
@@ -7725,10 +7113,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 589 */
+ { /* 587 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_p_ic",
@@ -7738,10 +7125,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 590 */
+ { /* 588 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_p_n",
@@ -7751,10 +7137,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 591 */
+ { /* 589 */
/* type PARROT_INLINE_OP, */
"fdiv",
"fdiv_p_p_nc",
@@ -7764,10 +7149,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 592 */
+ { /* 590 */
/* type PARROT_INLINE_OP, */
"ceil",
"ceil_n",
@@ -7777,10 +7161,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 593 */
+ { /* 591 */
/* type PARROT_INLINE_OP, */
"ceil",
"ceil_i_n",
@@ -7790,10 +7173,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 594 */
+ { /* 592 */
/* type PARROT_INLINE_OP, */
"ceil",
"ceil_n_n",
@@ -7803,10 +7185,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 595 */
+ { /* 593 */
/* type PARROT_INLINE_OP, */
"floor",
"floor_n",
@@ -7816,10 +7197,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 596 */
+ { /* 594 */
/* type PARROT_INLINE_OP, */
"floor",
"floor_i_n",
@@ -7829,10 +7209,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 597 */
+ { /* 595 */
/* type PARROT_INLINE_OP, */
"floor",
"floor_n_n",
@@ -7842,10 +7221,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 598 */
+ { /* 596 */
/* type PARROT_INLINE_OP, */
"inc",
"inc_i",
@@ -7855,10 +7233,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 599 */
+ { /* 597 */
/* type PARROT_INLINE_OP, */
"inc",
"inc_n",
@@ -7868,10 +7245,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 600 */
+ { /* 598 */
/* type PARROT_INLINE_OP, */
"inc",
"inc_p",
@@ -7881,10 +7257,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 601 */
+ { /* 599 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_i_i",
@@ -7894,10 +7269,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 602 */
+ { /* 600 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_i_ic",
@@ -7907,10 +7281,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 603 */
+ { /* 601 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_n_n",
@@ -7920,10 +7293,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 604 */
+ { /* 602 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_n_nc",
@@ -7933,10 +7305,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 605 */
+ { /* 603 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_p",
@@ -7946,10 +7317,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 606 */
+ { /* 604 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_i",
@@ -7959,10 +7329,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 607 */
+ { /* 605 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_ic",
@@ -7972,10 +7341,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 608 */
+ { /* 606 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_n",
@@ -7985,10 +7353,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 609 */
+ { /* 607 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_nc",
@@ -7998,10 +7365,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 610 */
+ { /* 608 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_i_i_i",
@@ -8011,10 +7377,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 611 */
+ { /* 609 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_i_ic_i",
@@ -8024,10 +7389,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 612 */
+ { /* 610 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_i_i_ic",
@@ -8037,10 +7401,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 613 */
+ { /* 611 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_n_n_n",
@@ -8050,10 +7413,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 614 */
+ { /* 612 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_n_nc_n",
@@ -8063,10 +7425,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 615 */
+ { /* 613 */
/* type PARROT_FUNCTION_OP, */
"mod",
"mod_n_n_nc",
@@ -8076,10 +7437,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 616 */
+ { /* 614 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_p_p",
@@ -8089,10 +7449,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 617 */
+ { /* 615 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_p_i",
@@ -8102,10 +7461,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 618 */
+ { /* 616 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_p_ic",
@@ -8115,10 +7473,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 619 */
+ { /* 617 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_p_n",
@@ -8128,10 +7485,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 620 */
+ { /* 618 */
/* type PARROT_INLINE_OP, */
"mod",
"mod_p_p_nc",
@@ -8141,10 +7497,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 621 */
+ { /* 619 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_i_i",
@@ -8154,10 +7509,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 622 */
+ { /* 620 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_i_ic",
@@ -8167,10 +7521,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 623 */
+ { /* 621 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_n_n",
@@ -8180,10 +7533,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 624 */
+ { /* 622 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_n_nc",
@@ -8193,10 +7545,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 625 */
+ { /* 623 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_p",
@@ -8206,10 +7557,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 626 */
+ { /* 624 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_i",
@@ -8219,10 +7569,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 627 */
+ { /* 625 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_ic",
@@ -8232,10 +7581,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 628 */
+ { /* 626 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_n",
@@ -8245,10 +7593,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 629 */
+ { /* 627 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_nc",
@@ -8258,10 +7605,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 630 */
+ { /* 628 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_i_i_i",
@@ -8271,10 +7617,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 631 */
+ { /* 629 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_i_ic_i",
@@ -8284,10 +7629,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 632 */
+ { /* 630 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_i_i_ic",
@@ -8297,10 +7641,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 633 */
+ { /* 631 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_n_n_n",
@@ -8310,10 +7653,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 634 */
+ { /* 632 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_n_nc_n",
@@ -8323,10 +7665,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 635 */
+ { /* 633 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_n_n_nc",
@@ -8336,10 +7677,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 636 */
+ { /* 634 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_p_p",
@@ -8349,10 +7689,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 637 */
+ { /* 635 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_p_i",
@@ -8362,10 +7701,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 638 */
+ { /* 636 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_p_ic",
@@ -8375,10 +7713,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 639 */
+ { /* 637 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_p_n",
@@ -8388,10 +7725,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 640 */
+ { /* 638 */
/* type PARROT_INLINE_OP, */
"mul",
"mul_p_p_nc",
@@ -8401,10 +7737,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 641 */
+ { /* 639 */
/* type PARROT_INLINE_OP, */
"neg",
"neg_i",
@@ -8414,10 +7749,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 642 */
+ { /* 640 */
/* type PARROT_INLINE_OP, */
"neg",
"neg_n",
@@ -8427,10 +7761,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 643 */
+ { /* 641 */
/* type PARROT_INLINE_OP, */
"neg",
"neg_p",
@@ -8440,10 +7773,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 644 */
+ { /* 642 */
/* type PARROT_INLINE_OP, */
"neg",
"neg_i_i",
@@ -8453,10 +7785,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 645 */
+ { /* 643 */
/* type PARROT_INLINE_OP, */
"neg",
"neg_n_n",
@@ -8466,10 +7797,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 646 */
+ { /* 644 */
/* type PARROT_INLINE_OP, */
"neg",
"neg_p_p",
@@ -8479,10 +7809,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 647 */
+ { /* 645 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_n_n_n",
@@ -8492,10 +7821,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 648 */
+ { /* 646 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_n_nc_n",
@@ -8505,10 +7833,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 649 */
+ { /* 647 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_n_n_nc",
@@ -8518,10 +7845,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 650 */
+ { /* 648 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_p_p_p",
@@ -8531,10 +7857,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 651 */
+ { /* 649 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_p_p_i",
@@ -8544,10 +7869,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 652 */
+ { /* 650 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_p_p_ic",
@@ -8557,10 +7881,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 653 */
+ { /* 651 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_p_p_n",
@@ -8570,10 +7893,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 654 */
+ { /* 652 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_p_p_nc",
@@ -8583,10 +7905,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 655 */
+ { /* 653 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_n_n_i",
@@ -8596,10 +7917,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 656 */
+ { /* 654 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_n_nc_i",
@@ -8609,10 +7929,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 657 */
+ { /* 655 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_n_n_ic",
@@ -8622,10 +7941,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 658 */
+ { /* 656 */
/* type PARROT_INLINE_OP, */
"pow",
"pow_n_nc_ic",
@@ -8635,10 +7953,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 659 */
+ { /* 657 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_i_i",
@@ -8648,10 +7965,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 660 */
+ { /* 658 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_i_ic",
@@ -8661,10 +7977,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 661 */
+ { /* 659 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_n_n",
@@ -8674,10 +7989,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 662 */
+ { /* 660 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_n_nc",
@@ -8687,10 +8001,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 663 */
+ { /* 661 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_p",
@@ -8700,10 +8013,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 664 */
+ { /* 662 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_i",
@@ -8713,10 +8025,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 665 */
+ { /* 663 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_ic",
@@ -8726,10 +8037,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 666 */
+ { /* 664 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_n",
@@ -8739,10 +8049,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 667 */
+ { /* 665 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_nc",
@@ -8752,10 +8061,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 668 */
+ { /* 666 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_i_i_i",
@@ -8765,10 +8073,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 669 */
+ { /* 667 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_i_ic_i",
@@ -8778,10 +8085,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 670 */
+ { /* 668 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_i_i_ic",
@@ -8791,10 +8097,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 671 */
+ { /* 669 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_n_n_n",
@@ -8804,10 +8109,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 672 */
+ { /* 670 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_n_nc_n",
@@ -8817,10 +8121,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 673 */
+ { /* 671 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_n_n_nc",
@@ -8830,10 +8133,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 674 */
+ { /* 672 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_p_p",
@@ -8843,10 +8145,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 675 */
+ { /* 673 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_p_i",
@@ -8856,10 +8157,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 676 */
+ { /* 674 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_p_ic",
@@ -8869,10 +8169,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 677 */
+ { /* 675 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_p_n",
@@ -8882,10 +8181,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 678 */
+ { /* 676 */
/* type PARROT_INLINE_OP, */
"sub",
"sub_p_p_nc",
@@ -8895,10 +8193,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 679 */
+ { /* 677 */
/* type PARROT_INLINE_OP, */
"sqrt",
"sqrt_n_n",
@@ -8908,10 +8205,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 680 */
+ { /* 678 */
/* type PARROT_INLINE_OP, */
"acos",
"acos_n_n",
@@ -8921,10 +8217,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 681 */
+ { /* 679 */
/* type PARROT_INLINE_OP, */
"asec",
"asec_n_n",
@@ -8934,10 +8229,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 682 */
+ { /* 680 */
/* type PARROT_INLINE_OP, */
"asin",
"asin_n_n",
@@ -8947,10 +8241,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 683 */
+ { /* 681 */
/* type PARROT_INLINE_OP, */
"atan",
"atan_n_n",
@@ -8960,10 +8253,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 684 */
+ { /* 682 */
/* type PARROT_INLINE_OP, */
"atan",
"atan_n_n_n",
@@ -8973,10 +8265,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 685 */
+ { /* 683 */
/* type PARROT_INLINE_OP, */
"atan",
"atan_n_nc_n",
@@ -8986,10 +8277,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 686 */
+ { /* 684 */
/* type PARROT_INLINE_OP, */
"atan",
"atan_n_n_nc",
@@ -8999,10 +8289,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 687 */
+ { /* 685 */
/* type PARROT_INLINE_OP, */
"cos",
"cos_n_n",
@@ -9012,10 +8301,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 688 */
+ { /* 686 */
/* type PARROT_INLINE_OP, */
"cosh",
"cosh_n_n",
@@ -9025,10 +8313,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 689 */
+ { /* 687 */
/* type PARROT_INLINE_OP, */
"exp",
"exp_n_n",
@@ -9038,10 +8325,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 690 */
+ { /* 688 */
/* type PARROT_INLINE_OP, */
"ln",
"ln_n_n",
@@ -9051,10 +8337,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 691 */
+ { /* 689 */
/* type PARROT_INLINE_OP, */
"log10",
"log10_n_n",
@@ -9064,10 +8349,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 692 */
+ { /* 690 */
/* type PARROT_FUNCTION_OP, */
"log2",
"log2_n_n",
@@ -9077,10 +8361,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 693 */
+ { /* 691 */
/* type PARROT_INLINE_OP, */
"sec",
"sec_n_n",
@@ -9090,10 +8373,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 694 */
+ { /* 692 */
/* type PARROT_INLINE_OP, */
"sech",
"sech_n_n",
@@ -9103,10 +8385,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 695 */
+ { /* 693 */
/* type PARROT_INLINE_OP, */
"sin",
"sin_n_n",
@@ -9116,10 +8397,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 696 */
+ { /* 694 */
/* type PARROT_INLINE_OP, */
"sinh",
"sinh_n_n",
@@ -9129,10 +8409,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 697 */
+ { /* 695 */
/* type PARROT_INLINE_OP, */
"tan",
"tan_n_n",
@@ -9142,10 +8421,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 698 */
+ { /* 696 */
/* type PARROT_INLINE_OP, */
"tanh",
"tanh_n_n",
@@ -9155,10 +8433,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 699 */
+ { /* 697 */
/* type PARROT_INLINE_OP, */
"gcd",
"gcd_i_i_i",
@@ -9168,10 +8445,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 700 */
+ { /* 698 */
/* type PARROT_INLINE_OP, */
"gcd",
"gcd_i_ic_i",
@@ -9181,10 +8457,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 701 */
+ { /* 699 */
/* type PARROT_INLINE_OP, */
"gcd",
"gcd_i_i_ic",
@@ -9194,10 +8469,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 702 */
+ { /* 700 */
/* type PARROT_INLINE_OP, */
"lcm",
"lcm_i_i_i",
@@ -9207,10 +8481,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 703 */
+ { /* 701 */
/* type PARROT_INLINE_OP, */
"lcm",
"lcm_i_ic_i",
@@ -9220,10 +8493,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 704 */
+ { /* 702 */
/* type PARROT_INLINE_OP, */
"lcm",
"lcm_i_i_ic",
@@ -9233,10 +8505,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 705 */
+ { /* 703 */
/* type PARROT_INLINE_OP, */
"fact",
"fact_i_i",
@@ -9246,10 +8517,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 706 */
+ { /* 704 */
/* type PARROT_INLINE_OP, */
"fact",
"fact_n_i",
@@ -9259,127 +8529,117 @@
3,
{ PARROT_ARG_N, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 707 */
+ { /* 705 */
/* type PARROT_FUNCTION_OP, */
"callmethodcc",
"callmethodcc_p_s",
"Parrot_callmethodcc_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 708 */
+ { /* 706 */
/* type PARROT_FUNCTION_OP, */
"callmethodcc",
"callmethodcc_p_sc",
"Parrot_callmethodcc_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 709 */
+ { /* 707 */
/* type PARROT_FUNCTION_OP, */
"callmethodcc",
"callmethodcc_p_p",
"Parrot_callmethodcc_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 710 */
+ { /* 708 */
/* type PARROT_FUNCTION_OP, */
"callmethod",
"callmethod_p_s_p",
"Parrot_callmethod_p_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 711 */
+ { /* 709 */
/* type PARROT_FUNCTION_OP, */
"callmethod",
"callmethod_p_sc_p",
"Parrot_callmethod_p_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 712 */
+ { /* 710 */
/* type PARROT_FUNCTION_OP, */
"callmethod",
"callmethod_p_p_p",
"Parrot_callmethod_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 713 */
+ { /* 711 */
/* type PARROT_FUNCTION_OP, */
"tailcallmethod",
"tailcallmethod_p_s",
"Parrot_tailcallmethod_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 714 */
+ { /* 712 */
/* type PARROT_FUNCTION_OP, */
"tailcallmethod",
"tailcallmethod_p_sc",
"Parrot_tailcallmethod_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 715 */
+ { /* 713 */
/* type PARROT_FUNCTION_OP, */
"tailcallmethod",
"tailcallmethod_p_p",
"Parrot_tailcallmethod_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 716 */
+ { /* 714 */
/* type PARROT_INLINE_OP, */
"addmethod",
"addmethod_p_s_p",
@@ -9389,10 +8649,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 717 */
+ { /* 715 */
/* type PARROT_INLINE_OP, */
"addmethod",
"addmethod_p_sc_p",
@@ -9402,10 +8661,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 718 */
+ { /* 716 */
/* type PARROT_INLINE_OP, */
"can",
"can_i_p_s",
@@ -9415,10 +8673,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 719 */
+ { /* 717 */
/* type PARROT_INLINE_OP, */
"can",
"can_i_p_sc",
@@ -9428,10 +8685,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 720 */
+ { /* 718 */
/* type PARROT_INLINE_OP, */
"does",
"does_i_p_s",
@@ -9441,10 +8697,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 721 */
+ { /* 719 */
/* type PARROT_INLINE_OP, */
"does",
"does_i_p_sc",
@@ -9454,10 +8709,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 722 */
+ { /* 720 */
/* type PARROT_INLINE_OP, */
"does",
"does_i_p_p",
@@ -9467,10 +8721,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 723 */
+ { /* 721 */
/* type PARROT_INLINE_OP, */
"does",
"does_i_p_pc",
@@ -9480,10 +8733,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 724 */
+ { /* 722 */
/* type PARROT_INLINE_OP, */
"isa",
"isa_i_p_s",
@@ -9493,10 +8745,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 725 */
+ { /* 723 */
/* type PARROT_INLINE_OP, */
"isa",
"isa_i_p_sc",
@@ -9506,10 +8757,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 726 */
+ { /* 724 */
/* type PARROT_INLINE_OP, */
"isa",
"isa_i_p_p",
@@ -9519,10 +8769,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 727 */
+ { /* 725 */
/* type PARROT_INLINE_OP, */
"isa",
"isa_i_p_pc",
@@ -9532,10 +8781,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 728 */
+ { /* 726 */
/* type PARROT_INLINE_OP, */
"newclass",
"newclass_p_s",
@@ -9545,10 +8793,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 729 */
+ { /* 727 */
/* type PARROT_INLINE_OP, */
"newclass",
"newclass_p_sc",
@@ -9558,10 +8805,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 730 */
+ { /* 728 */
/* type PARROT_INLINE_OP, */
"newclass",
"newclass_p_p",
@@ -9571,10 +8817,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 731 */
+ { /* 729 */
/* type PARROT_INLINE_OP, */
"newclass",
"newclass_p_pc",
@@ -9584,270 +8829,249 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 732 */
+ { /* 730 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_p",
"Parrot_subclass_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 733 */
+ { /* 731 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_pc",
"Parrot_subclass_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 734 */
+ { /* 732 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_p_s",
"Parrot_subclass_p_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 735 */
+ { /* 733 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_pc_s",
"Parrot_subclass_p_pc_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 736 */
+ { /* 734 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_p_sc",
"Parrot_subclass_p_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 737 */
+ { /* 735 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_pc_sc",
"Parrot_subclass_p_pc_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 738 */
+ { /* 736 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_p_p",
"Parrot_subclass_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 739 */
+ { /* 737 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_pc_p",
"Parrot_subclass_p_pc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 740 */
+ { /* 738 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_p_pc",
"Parrot_subclass_p_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 741 */
+ { /* 739 */
/* type PARROT_INLINE_OP, */
"subclass",
"subclass_p_pc_pc",
"Parrot_subclass_p_pc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 742 */
+ { /* 740 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_s",
"Parrot_subclass_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 743 */
+ { /* 741 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_sc",
"Parrot_subclass_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 744 */
+ { /* 742 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_s_s",
"Parrot_subclass_p_s_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 745 */
+ { /* 743 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_sc_s",
"Parrot_subclass_p_sc_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 746 */
+ { /* 744 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_s_sc",
"Parrot_subclass_p_s_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 747 */
+ { /* 745 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_sc_sc",
"Parrot_subclass_p_sc_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 748 */
+ { /* 746 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_s_p",
"Parrot_subclass_p_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 749 */
+ { /* 747 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_sc_p",
"Parrot_subclass_p_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 750 */
+ { /* 748 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_s_pc",
"Parrot_subclass_p_s_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 751 */
+ { /* 749 */
/* type PARROT_FUNCTION_OP, */
"subclass",
"subclass_p_sc_pc",
"Parrot_subclass_p_sc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 752 */
+ { /* 750 */
/* type PARROT_INLINE_OP, */
"get_class",
"get_class_p_s",
@@ -9857,10 +9081,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 753 */
+ { /* 751 */
/* type PARROT_INLINE_OP, */
"get_class",
"get_class_p_sc",
@@ -9870,10 +9093,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 754 */
+ { /* 752 */
/* type PARROT_INLINE_OP, */
"get_class",
"get_class_p_p",
@@ -9883,10 +9105,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 755 */
+ { /* 753 */
/* type PARROT_INLINE_OP, */
"get_class",
"get_class_p_pc",
@@ -9896,10 +9117,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 756 */
+ { /* 754 */
/* type PARROT_INLINE_OP, */
"class",
"class_p_p",
@@ -9909,10 +9129,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 757 */
+ { /* 755 */
/* type PARROT_INLINE_OP, */
"addparent",
"addparent_p_p",
@@ -9922,10 +9141,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 758 */
+ { /* 756 */
/* type PARROT_INLINE_OP, */
"removeparent",
"removeparent_p_p",
@@ -9935,10 +9153,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 759 */
+ { /* 757 */
/* type PARROT_INLINE_OP, */
"addrole",
"addrole_p_p",
@@ -9948,36 +9165,33 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 760 */
+ { /* 758 */
/* type PARROT_INLINE_OP, */
"addattribute",
"addattribute_p_s",
"Parrot_addattribute_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 761 */
+ { /* 759 */
/* type PARROT_INLINE_OP, */
"addattribute",
"addattribute_p_sc",
"Parrot_addattribute_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 762 */
+ { /* 760 */
/* type PARROT_FUNCTION_OP, */
"removeattribute",
"removeattribute_p_s",
@@ -9987,10 +9201,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 763 */
+ { /* 761 */
/* type PARROT_FUNCTION_OP, */
"removeattribute",
"removeattribute_p_sc",
@@ -10000,10 +9213,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 764 */
+ { /* 762 */
/* type PARROT_INLINE_OP, */
"getattribute",
"getattribute_p_p_s",
@@ -10013,10 +9225,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 765 */
+ { /* 763 */
/* type PARROT_INLINE_OP, */
"getattribute",
"getattribute_p_p_sc",
@@ -10026,10 +9237,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 766 */
+ { /* 764 */
/* type PARROT_INLINE_OP, */
"getattribute",
"getattribute_p_p_p_s",
@@ -10039,10 +9249,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 767 */
+ { /* 765 */
/* type PARROT_INLINE_OP, */
"getattribute",
"getattribute_p_p_pc_s",
@@ -10052,10 +9261,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 768 */
+ { /* 766 */
/* type PARROT_INLINE_OP, */
"getattribute",
"getattribute_p_p_p_sc",
@@ -10065,10 +9273,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 769 */
+ { /* 767 */
/* type PARROT_INLINE_OP, */
"getattribute",
"getattribute_p_p_pc_sc",
@@ -10078,10 +9285,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 770 */
+ { /* 768 */
/* type PARROT_INLINE_OP, */
"setattribute",
"setattribute_p_s_p",
@@ -10091,10 +9297,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 771 */
+ { /* 769 */
/* type PARROT_INLINE_OP, */
"setattribute",
"setattribute_p_sc_p",
@@ -10104,10 +9309,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 772 */
+ { /* 770 */
/* type PARROT_INLINE_OP, */
"setattribute",
"setattribute_p_p_s_p",
@@ -10117,10 +9321,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 773 */
+ { /* 771 */
/* type PARROT_INLINE_OP, */
"setattribute",
"setattribute_p_pc_s_p",
@@ -10130,10 +9333,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 774 */
+ { /* 772 */
/* type PARROT_INLINE_OP, */
"setattribute",
"setattribute_p_p_sc_p",
@@ -10143,10 +9345,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 775 */
+ { /* 773 */
/* type PARROT_INLINE_OP, */
"setattribute",
"setattribute_p_pc_sc_p",
@@ -10156,10 +9357,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 776 */
+ { /* 774 */
/* type PARROT_INLINE_OP, */
"inspect",
"inspect_p_p",
@@ -10169,10 +9369,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 777 */
+ { /* 775 */
/* type PARROT_INLINE_OP, */
"inspect",
"inspect_p_pc",
@@ -10182,10 +9381,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 778 */
+ { /* 776 */
/* type PARROT_INLINE_OP, */
"inspect",
"inspect_p_p_s",
@@ -10195,10 +9393,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 779 */
+ { /* 777 */
/* type PARROT_INLINE_OP, */
"inspect",
"inspect_p_pc_s",
@@ -10208,10 +9405,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 780 */
+ { /* 778 */
/* type PARROT_INLINE_OP, */
"inspect",
"inspect_p_p_sc",
@@ -10221,10 +9417,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 781 */
+ { /* 779 */
/* type PARROT_INLINE_OP, */
"inspect",
"inspect_p_pc_sc",
@@ -10234,244 +9429,225 @@
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 782 */
+ { /* 780 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_s",
"Parrot_new_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 783 */
+ { /* 781 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_sc",
"Parrot_new_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 784 */
+ { /* 782 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_s_p",
"Parrot_new_p_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 785 */
+ { /* 783 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_sc_p",
"Parrot_new_p_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 786 */
+ { /* 784 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_s_pc",
"Parrot_new_p_s_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 787 */
+ { /* 785 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_sc_pc",
"Parrot_new_p_sc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 788 */
+ { /* 786 */
/* type PARROT_INLINE_OP, */
"new",
"new_p_p",
"Parrot_new_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 789 */
+ { /* 787 */
/* type PARROT_INLINE_OP, */
"new",
"new_p_pc",
"Parrot_new_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 790 */
+ { /* 788 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_p_p",
"Parrot_new_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 791 */
+ { /* 789 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_pc_p",
"Parrot_new_p_pc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 792 */
+ { /* 790 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_p_pc",
"Parrot_new_p_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 793 */
+ { /* 791 */
/* type PARROT_FUNCTION_OP, */
"new",
"new_p_pc_pc",
"Parrot_new_p_pc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 794 */
+ { /* 792 */
/* type PARROT_FUNCTION_OP, */
"root_new",
"root_new_p_p",
"Parrot_root_new_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 795 */
+ { /* 793 */
/* type PARROT_FUNCTION_OP, */
"root_new",
"root_new_p_pc",
"Parrot_root_new_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 796 */
+ { /* 794 */
/* type PARROT_FUNCTION_OP, */
"root_new",
"root_new_p_p_p",
"Parrot_root_new_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 797 */
+ { /* 795 */
/* type PARROT_FUNCTION_OP, */
"root_new",
"root_new_p_pc_p",
"Parrot_root_new_p_pc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 798 */
+ { /* 796 */
/* type PARROT_FUNCTION_OP, */
"root_new",
"root_new_p_p_pc",
"Parrot_root_new_p_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 799 */
+ { /* 797 */
/* type PARROT_FUNCTION_OP, */
"root_new",
"root_new_p_pc_pc",
"Parrot_root_new_p_pc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 800 */
+ { /* 798 */
/* type PARROT_INLINE_OP, */
"typeof",
"typeof_s_p",
@@ -10481,10 +9657,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 801 */
+ { /* 799 */
/* type PARROT_INLINE_OP, */
"typeof",
"typeof_p_p",
@@ -10494,10 +9669,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 802 */
+ { /* 800 */
/* type PARROT_FUNCTION_OP, */
"get_repr",
"get_repr_s_p",
@@ -10507,36 +9681,33 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 803 */
+ { /* 801 */
/* type PARROT_FUNCTION_OP, */
"find_method",
"find_method_p_p_s",
"Parrot_find_method_p_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_RESTART,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 804 */
+ { /* 802 */
/* type PARROT_FUNCTION_OP, */
"find_method",
"find_method_p_p_sc",
"Parrot_find_method_p_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_RESTART,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 805 */
+ { /* 803 */
/* type PARROT_INLINE_OP, */
"defined",
"defined_i_p",
@@ -10546,10 +9717,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 806 */
+ { /* 804 */
/* type PARROT_INLINE_OP, */
"defined",
"defined_i_p_ki",
@@ -10559,10 +9729,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 807 */
+ { /* 805 */
/* type PARROT_INLINE_OP, */
"defined",
"defined_i_p_kic",
@@ -10572,10 +9741,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 808 */
+ { /* 806 */
/* type PARROT_INLINE_OP, */
"defined",
"defined_i_p_k",
@@ -10585,10 +9753,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 809 */
+ { /* 807 */
/* type PARROT_INLINE_OP, */
"defined",
"defined_i_p_kc",
@@ -10598,10 +9765,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 810 */
+ { /* 808 */
/* type PARROT_INLINE_OP, */
"exists",
"exists_i_p_ki",
@@ -10611,10 +9777,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 811 */
+ { /* 809 */
/* type PARROT_INLINE_OP, */
"exists",
"exists_i_p_kic",
@@ -10624,10 +9789,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 812 */
+ { /* 810 */
/* type PARROT_INLINE_OP, */
"exists",
"exists_i_p_k",
@@ -10637,10 +9801,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 813 */
+ { /* 811 */
/* type PARROT_INLINE_OP, */
"exists",
"exists_i_p_kc",
@@ -10650,10 +9813,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 814 */
+ { /* 812 */
/* type PARROT_INLINE_OP, */
"delete",
"delete_p_k",
@@ -10663,10 +9825,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_K },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 815 */
+ { /* 813 */
/* type PARROT_INLINE_OP, */
"delete",
"delete_p_kc",
@@ -10676,10 +9837,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_KC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 816 */
+ { /* 814 */
/* type PARROT_INLINE_OP, */
"delete",
"delete_p_ki",
@@ -10689,10 +9849,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_KI },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 817 */
+ { /* 815 */
/* type PARROT_INLINE_OP, */
"delete",
"delete_p_kic",
@@ -10702,10 +9861,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_KIC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 818 */
+ { /* 816 */
/* type PARROT_INLINE_OP, */
"elements",
"elements_i_p",
@@ -10715,10 +9873,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 819 */
+ { /* 817 */
/* type PARROT_INLINE_OP, */
"push",
"push_p_i",
@@ -10728,10 +9885,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 820 */
+ { /* 818 */
/* type PARROT_INLINE_OP, */
"push",
"push_p_ic",
@@ -10741,10 +9897,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 821 */
+ { /* 819 */
/* type PARROT_INLINE_OP, */
"push",
"push_p_n",
@@ -10754,10 +9909,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 822 */
+ { /* 820 */
/* type PARROT_INLINE_OP, */
"push",
"push_p_nc",
@@ -10767,10 +9921,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 823 */
+ { /* 821 */
/* type PARROT_INLINE_OP, */
"push",
"push_p_s",
@@ -10780,10 +9933,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 824 */
+ { /* 822 */
/* type PARROT_INLINE_OP, */
"push",
"push_p_sc",
@@ -10793,10 +9945,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 825 */
+ { /* 823 */
/* type PARROT_INLINE_OP, */
"push",
"push_p_p",
@@ -10806,10 +9957,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 826 */
+ { /* 824 */
/* type PARROT_INLINE_OP, */
"pop",
"pop_i_p",
@@ -10819,10 +9969,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 827 */
+ { /* 825 */
/* type PARROT_INLINE_OP, */
"pop",
"pop_n_p",
@@ -10832,10 +9981,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 828 */
+ { /* 826 */
/* type PARROT_INLINE_OP, */
"pop",
"pop_s_p",
@@ -10845,10 +9993,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 829 */
+ { /* 827 */
/* type PARROT_INLINE_OP, */
"pop",
"pop_p_p",
@@ -10858,10 +10005,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 830 */
+ { /* 828 */
/* type PARROT_INLINE_OP, */
"unshift",
"unshift_p_i",
@@ -10871,10 +10017,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 831 */
+ { /* 829 */
/* type PARROT_INLINE_OP, */
"unshift",
"unshift_p_ic",
@@ -10884,10 +10029,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 832 */
+ { /* 830 */
/* type PARROT_INLINE_OP, */
"unshift",
"unshift_p_n",
@@ -10897,10 +10041,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 833 */
+ { /* 831 */
/* type PARROT_INLINE_OP, */
"unshift",
"unshift_p_nc",
@@ -10910,10 +10053,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 834 */
+ { /* 832 */
/* type PARROT_INLINE_OP, */
"unshift",
"unshift_p_s",
@@ -10923,10 +10065,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 835 */
+ { /* 833 */
/* type PARROT_INLINE_OP, */
"unshift",
"unshift_p_sc",
@@ -10936,10 +10077,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 836 */
+ { /* 834 */
/* type PARROT_INLINE_OP, */
"unshift",
"unshift_p_p",
@@ -10949,10 +10089,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 837 */
+ { /* 835 */
/* type PARROT_INLINE_OP, */
"shift",
"shift_i_p",
@@ -10962,10 +10101,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 838 */
+ { /* 836 */
/* type PARROT_INLINE_OP, */
"shift",
"shift_n_p",
@@ -10975,10 +10113,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 839 */
+ { /* 837 */
/* type PARROT_INLINE_OP, */
"shift",
"shift_s_p",
@@ -10988,10 +10125,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 840 */
+ { /* 838 */
/* type PARROT_INLINE_OP, */
"shift",
"shift_p_p",
@@ -11001,10 +10137,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 841 */
+ { /* 839 */
/* type PARROT_INLINE_OP, */
"splice",
"splice_p_p_i_i",
@@ -11014,10 +10149,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 842 */
+ { /* 840 */
/* type PARROT_INLINE_OP, */
"splice",
"splice_p_p_ic_i",
@@ -11027,10 +10161,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 843 */
+ { /* 841 */
/* type PARROT_INLINE_OP, */
"splice",
"splice_p_p_i_ic",
@@ -11040,10 +10173,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 844 */
+ { /* 842 */
/* type PARROT_INLINE_OP, */
"splice",
"splice_p_p_ic_ic",
@@ -11053,10 +10185,9 @@
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 845 */
+ { /* 843 */
/* type PARROT_FUNCTION_OP, */
"setprop",
"setprop_p_s_p",
@@ -11066,10 +10197,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 846 */
+ { /* 844 */
/* type PARROT_FUNCTION_OP, */
"setprop",
"setprop_p_sc_p",
@@ -11079,10 +10209,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 847 */
+ { /* 845 */
/* type PARROT_FUNCTION_OP, */
"getprop",
"getprop_p_s_p",
@@ -11092,10 +10221,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 848 */
+ { /* 846 */
/* type PARROT_FUNCTION_OP, */
"getprop",
"getprop_p_sc_p",
@@ -11105,10 +10233,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 849 */
+ { /* 847 */
/* type PARROT_FUNCTION_OP, */
"delprop",
"delprop_p_s",
@@ -11118,10 +10245,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 850 */
+ { /* 848 */
/* type PARROT_FUNCTION_OP, */
"delprop",
"delprop_p_sc",
@@ -11131,10 +10257,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 851 */
+ { /* 849 */
/* type PARROT_FUNCTION_OP, */
"prophash",
"prophash_p_p",
@@ -11144,10 +10269,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 852 */
+ { /* 850 */
/* type PARROT_FUNCTION_OP, */
"freeze",
"freeze_s_p",
@@ -11157,10 +10281,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 853 */
+ { /* 851 */
/* type PARROT_FUNCTION_OP, */
"thaw",
"thaw_p_s",
@@ -11170,10 +10293,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 854 */
+ { /* 852 */
/* type PARROT_FUNCTION_OP, */
"thaw",
"thaw_p_sc",
@@ -11183,10 +10305,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 855 */
+ { /* 853 */
/* type PARROT_INLINE_OP, */
"add_multi",
"add_multi_s_s_p",
@@ -11196,10 +10317,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 856 */
+ { /* 854 */
/* type PARROT_INLINE_OP, */
"add_multi",
"add_multi_sc_s_p",
@@ -11209,10 +10329,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 857 */
+ { /* 855 */
/* type PARROT_INLINE_OP, */
"add_multi",
"add_multi_s_sc_p",
@@ -11222,10 +10341,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 858 */
+ { /* 856 */
/* type PARROT_INLINE_OP, */
"add_multi",
"add_multi_sc_sc_p",
@@ -11235,10 +10353,9 @@
4,
{ PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 859 */
+ { /* 857 */
/* type PARROT_INLINE_OP, */
"find_multi",
"find_multi_p_s_s",
@@ -11248,10 +10365,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 860 */
+ { /* 858 */
/* type PARROT_INLINE_OP, */
"find_multi",
"find_multi_p_sc_s",
@@ -11261,10 +10377,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 861 */
+ { /* 859 */
/* type PARROT_INLINE_OP, */
"find_multi",
"find_multi_p_s_sc",
@@ -11274,10 +10389,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 862 */
+ { /* 860 */
/* type PARROT_INLINE_OP, */
"find_multi",
"find_multi_p_sc_sc",
@@ -11287,10 +10401,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 863 */
+ { /* 861 */
/* type PARROT_FUNCTION_OP, */
"register",
"register_p",
@@ -11300,10 +10413,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 864 */
+ { /* 862 */
/* type PARROT_FUNCTION_OP, */
"unregister",
"unregister_p",
@@ -11313,10 +10425,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 865 */
+ { /* 863 */
/* type PARROT_FUNCTION_OP, */
"box",
"box_p_i",
@@ -11326,10 +10437,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 866 */
+ { /* 864 */
/* type PARROT_FUNCTION_OP, */
"box",
"box_p_ic",
@@ -11339,10 +10449,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 867 */
+ { /* 865 */
/* type PARROT_FUNCTION_OP, */
"box",
"box_p_n",
@@ -11352,10 +10461,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 868 */
+ { /* 866 */
/* type PARROT_FUNCTION_OP, */
"box",
"box_p_nc",
@@ -11365,10 +10473,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 869 */
+ { /* 867 */
/* type PARROT_FUNCTION_OP, */
"box",
"box_p_s",
@@ -11378,10 +10485,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 870 */
+ { /* 868 */
/* type PARROT_FUNCTION_OP, */
"box",
"box_p_sc",
@@ -11391,10 +10497,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 871 */
+ { /* 869 */
/* type PARROT_INLINE_OP, */
"iter",
"iter_p_p",
@@ -11404,10 +10509,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 872 */
+ { /* 870 */
/* type PARROT_INLINE_OP, */
"morph",
"morph_p_p",
@@ -11417,10 +10521,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 873 */
+ { /* 871 */
/* type PARROT_INLINE_OP, */
"morph",
"morph_p_pc",
@@ -11430,10 +10533,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 874 */
+ { /* 872 */
/* type PARROT_INLINE_OP, */
"clone",
"clone_s_s",
@@ -11443,10 +10545,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 875 */
+ { /* 873 */
/* type PARROT_INLINE_OP, */
"clone",
"clone_s_sc",
@@ -11456,10 +10557,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 876 */
+ { /* 874 */
/* type PARROT_FUNCTION_OP, */
"exchange",
"exchange_i_i",
@@ -11469,10 +10569,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_INOUT },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 877 */
+ { /* 875 */
/* type PARROT_FUNCTION_OP, */
"exchange",
"exchange_p_p",
@@ -11482,10 +10581,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_INOUT },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 878 */
+ { /* 876 */
/* type PARROT_FUNCTION_OP, */
"exchange",
"exchange_n_n",
@@ -11495,10 +10593,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_INOUT },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 879 */
+ { /* 877 */
/* type PARROT_FUNCTION_OP, */
"exchange",
"exchange_s_s",
@@ -11508,10 +10605,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_INOUT },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 880 */
+ { /* 878 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_i",
@@ -11521,10 +10617,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 881 */
+ { /* 879 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_ic",
@@ -11534,10 +10629,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 882 */
+ { /* 880 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_n",
@@ -11547,10 +10641,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 883 */
+ { /* 881 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_nc",
@@ -11560,10 +10653,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 884 */
+ { /* 882 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_s",
@@ -11573,10 +10665,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 885 */
+ { /* 883 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_sc",
@@ -11586,10 +10677,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 886 */
+ { /* 884 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_n",
@@ -11599,10 +10689,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 887 */
+ { /* 885 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_nc",
@@ -11612,10 +10701,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 888 */
+ { /* 886 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_i",
@@ -11625,10 +10713,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 889 */
+ { /* 887 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_ic",
@@ -11638,10 +10725,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 890 */
+ { /* 888 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_s",
@@ -11651,10 +10737,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 891 */
+ { /* 889 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_sc",
@@ -11664,10 +10749,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 892 */
+ { /* 890 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_p",
@@ -11677,10 +10761,9 @@
3,
{ PARROT_ARG_N, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 893 */
+ { /* 891 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_p",
@@ -11690,10 +10773,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 894 */
+ { /* 892 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_s",
@@ -11703,10 +10785,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 895 */
+ { /* 893 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_sc",
@@ -11716,10 +10797,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 896 */
+ { /* 894 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_i",
@@ -11729,10 +10809,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 897 */
+ { /* 895 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_ic",
@@ -11742,10 +10821,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 898 */
+ { /* 896 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_n",
@@ -11755,10 +10833,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_N },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 899 */
+ { /* 897 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_nc",
@@ -11768,10 +10845,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_NC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 900 */
+ { /* 898 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_pc",
@@ -11781,10 +10857,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 901 */
+ { /* 899 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_p",
@@ -11794,10 +10869,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 902 */
+ { /* 900 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_i",
@@ -11807,10 +10881,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 903 */
+ { /* 901 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ic",
@@ -11820,10 +10893,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 904 */
+ { /* 902 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_n",
@@ -11833,10 +10905,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 905 */
+ { /* 903 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_nc",
@@ -11846,10 +10917,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 906 */
+ { /* 904 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_s",
@@ -11859,10 +10929,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 907 */
+ { /* 905 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_sc",
@@ -11872,10 +10941,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 908 */
+ { /* 906 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_p",
@@ -11885,10 +10953,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 909 */
+ { /* 907 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_p_p",
@@ -11898,10 +10965,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 910 */
+ { /* 908 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_p_i",
@@ -11911,10 +10977,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 911 */
+ { /* 909 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_p_ic",
@@ -11924,10 +10989,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 912 */
+ { /* 910 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_p_n",
@@ -11937,10 +11001,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 913 */
+ { /* 911 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_p_nc",
@@ -11950,10 +11013,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 914 */
+ { /* 912 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_p_s",
@@ -11963,10 +11025,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 915 */
+ { /* 913 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_p_sc",
@@ -11976,10 +11037,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 916 */
+ { /* 914 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_s_s",
@@ -11989,10 +11049,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 917 */
+ { /* 915 */
/* type PARROT_INLINE_OP, */
"assign",
"assign_s_sc",
@@ -12002,10 +11061,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 918 */
+ { /* 916 */
/* type PARROT_INLINE_OP, */
"setref",
"setref_p_p",
@@ -12015,10 +11073,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 919 */
+ { /* 917 */
/* type PARROT_INLINE_OP, */
"deref",
"deref_p_p",
@@ -12028,10 +11085,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 920 */
+ { /* 918 */
/* type PARROT_INLINE_OP, */
"setp_ind",
"setp_ind_i_p",
@@ -12041,10 +11097,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 921 */
+ { /* 919 */
/* type PARROT_INLINE_OP, */
"setp_ind",
"setp_ind_ic_p",
@@ -12054,10 +11109,9 @@
3,
{ PARROT_ARG_IC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 922 */
+ { /* 920 */
/* type PARROT_INLINE_OP, */
"setn_ind",
"setn_ind_i_n",
@@ -12067,10 +11121,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 923 */
+ { /* 921 */
/* type PARROT_INLINE_OP, */
"setn_ind",
"setn_ind_ic_n",
@@ -12080,10 +11133,9 @@
3,
{ PARROT_ARG_IC, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 924 */
+ { /* 922 */
/* type PARROT_INLINE_OP, */
"setn_ind",
"setn_ind_i_nc",
@@ -12093,10 +11145,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 925 */
+ { /* 923 */
/* type PARROT_INLINE_OP, */
"setn_ind",
"setn_ind_ic_nc",
@@ -12106,10 +11157,9 @@
3,
{ PARROT_ARG_IC, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 926 */
+ { /* 924 */
/* type PARROT_INLINE_OP, */
"sets_ind",
"sets_ind_i_s",
@@ -12119,10 +11169,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 927 */
+ { /* 925 */
/* type PARROT_INLINE_OP, */
"sets_ind",
"sets_ind_ic_s",
@@ -12132,10 +11181,9 @@
3,
{ PARROT_ARG_IC, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 928 */
+ { /* 926 */
/* type PARROT_INLINE_OP, */
"sets_ind",
"sets_ind_i_sc",
@@ -12145,10 +11193,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 929 */
+ { /* 927 */
/* type PARROT_INLINE_OP, */
"sets_ind",
"sets_ind_ic_sc",
@@ -12158,10 +11205,9 @@
3,
{ PARROT_ARG_IC, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 930 */
+ { /* 928 */
/* type PARROT_INLINE_OP, */
"seti_ind",
"seti_ind_i_i",
@@ -12171,10 +11217,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 931 */
+ { /* 929 */
/* type PARROT_INLINE_OP, */
"seti_ind",
"seti_ind_ic_i",
@@ -12184,10 +11229,9 @@
3,
{ PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 932 */
+ { /* 930 */
/* type PARROT_INLINE_OP, */
"seti_ind",
"seti_ind_i_ic",
@@ -12197,10 +11241,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 933 */
+ { /* 931 */
/* type PARROT_INLINE_OP, */
"seti_ind",
"seti_ind_ic_ic",
@@ -12210,10 +11253,9 @@
3,
{ PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 934 */
+ { /* 932 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ki_i",
@@ -12223,10 +11265,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 935 */
+ { /* 933 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kic_i",
@@ -12236,10 +11277,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 936 */
+ { /* 934 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ki_ic",
@@ -12249,10 +11289,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 937 */
+ { /* 935 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kic_ic",
@@ -12262,10 +11301,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 938 */
+ { /* 936 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ki_n",
@@ -12275,10 +11313,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 939 */
+ { /* 937 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kic_n",
@@ -12288,10 +11325,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 940 */
+ { /* 938 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ki_nc",
@@ -12301,10 +11337,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 941 */
+ { /* 939 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kic_nc",
@@ -12314,10 +11349,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 942 */
+ { /* 940 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ki_s",
@@ -12327,10 +11361,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 943 */
+ { /* 941 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kic_s",
@@ -12340,10 +11373,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 944 */
+ { /* 942 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ki_sc",
@@ -12353,10 +11385,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 945 */
+ { /* 943 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kic_sc",
@@ -12366,10 +11397,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 946 */
+ { /* 944 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_ki_p",
@@ -12379,10 +11409,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 947 */
+ { /* 945 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kic_p",
@@ -12392,10 +11421,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 948 */
+ { /* 946 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_p_ki",
@@ -12405,10 +11433,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 949 */
+ { /* 947 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_p_kic",
@@ -12418,10 +11445,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 950 */
+ { /* 948 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_p_ki",
@@ -12431,10 +11457,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KI },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 951 */
+ { /* 949 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_p_kic",
@@ -12444,10 +11469,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KIC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 952 */
+ { /* 950 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_p_ki",
@@ -12457,10 +11481,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KI },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 953 */
+ { /* 951 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_p_kic",
@@ -12470,10 +11493,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KIC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 954 */
+ { /* 952 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_p_ki",
@@ -12483,10 +11505,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KI },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 955 */
+ { /* 953 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_p_kic",
@@ -12496,10 +11517,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KIC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 956 */
+ { /* 954 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_k_i",
@@ -12509,10 +11529,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 957 */
+ { /* 955 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kc_i",
@@ -12522,10 +11541,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 958 */
+ { /* 956 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_k_ic",
@@ -12535,10 +11553,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 959 */
+ { /* 957 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kc_ic",
@@ -12548,10 +11565,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 960 */
+ { /* 958 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_k_n",
@@ -12561,10 +11577,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 961 */
+ { /* 959 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kc_n",
@@ -12574,10 +11589,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_N },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 962 */
+ { /* 960 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_k_nc",
@@ -12587,10 +11601,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 963 */
+ { /* 961 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kc_nc",
@@ -12600,10 +11613,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_NC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 964 */
+ { /* 962 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_k_s",
@@ -12613,10 +11625,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 965 */
+ { /* 963 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kc_s",
@@ -12626,10 +11637,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 966 */
+ { /* 964 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_k_sc",
@@ -12639,10 +11649,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 967 */
+ { /* 965 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kc_sc",
@@ -12652,10 +11661,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 968 */
+ { /* 966 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_k_p",
@@ -12665,10 +11673,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 969 */
+ { /* 967 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_kc_p",
@@ -12678,10 +11685,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 970 */
+ { /* 968 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_p_k",
@@ -12691,10 +11697,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 971 */
+ { /* 969 */
/* type PARROT_INLINE_OP, */
"set",
"set_i_p_kc",
@@ -12704,10 +11709,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 972 */
+ { /* 970 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_p_k",
@@ -12717,10 +11721,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_K },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 973 */
+ { /* 971 */
/* type PARROT_INLINE_OP, */
"set",
"set_n_p_kc",
@@ -12730,10 +11733,9 @@
4,
{ PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 974 */
+ { /* 972 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_p_k",
@@ -12743,10 +11745,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_K },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 975 */
+ { /* 973 */
/* type PARROT_INLINE_OP, */
"set",
"set_s_p_kc",
@@ -12756,10 +11757,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 976 */
+ { /* 974 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_p_k",
@@ -12769,10 +11769,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_K },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 977 */
+ { /* 975 */
/* type PARROT_INLINE_OP, */
"set",
"set_p_p_kc",
@@ -12782,10 +11781,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 978 */
+ { /* 976 */
/* type PARROT_INLINE_OP, */
"clone",
"clone_p_p",
@@ -12795,10 +11793,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 979 */
+ { /* 977 */
/* type PARROT_INLINE_OP, */
"clone",
"clone_p_p_p",
@@ -12808,10 +11805,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 980 */
+ { /* 978 */
/* type PARROT_INLINE_OP, */
"clone",
"clone_p_p_pc",
@@ -12821,23 +11817,21 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 981 */
+ { /* 979 */
/* type PARROT_INLINE_OP, */
"copy",
"copy_p_p",
"Parrot_copy_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 982 */
+ { /* 980 */
/* type PARROT_INLINE_OP, */
"null",
"null_s",
@@ -12847,10 +11841,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 983 */
+ { /* 981 */
/* type PARROT_INLINE_OP, */
"null",
"null_i",
@@ -12860,10 +11853,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 984 */
+ { /* 982 */
/* type PARROT_INLINE_OP, */
"null",
"null_p",
@@ -12873,10 +11865,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 985 */
+ { /* 983 */
/* type PARROT_INLINE_OP, */
"null",
"null_n",
@@ -12886,10 +11877,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 986 */
+ { /* 984 */
/* type PARROT_INLINE_OP, */
"cleari",
"cleari",
@@ -12897,12 +11887,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 987 */
+ { /* 985 */
/* type PARROT_INLINE_OP, */
"clearn",
"clearn",
@@ -12910,12 +11899,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 988 */
+ { /* 986 */
/* type PARROT_INLINE_OP, */
"clears",
"clears",
@@ -12923,12 +11911,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 989 */
+ { /* 987 */
/* type PARROT_INLINE_OP, */
"clearp",
"clearp",
@@ -12936,12 +11923,11 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 990 */
+ { /* 988 */
/* type PARROT_INLINE_OP, */
"ord",
"ord_i_s",
@@ -12951,10 +11937,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 991 */
+ { /* 989 */
/* type PARROT_INLINE_OP, */
"ord",
"ord_i_sc",
@@ -12964,10 +11949,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 992 */
+ { /* 990 */
/* type PARROT_INLINE_OP, */
"ord",
"ord_i_s_i",
@@ -12977,10 +11961,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 993 */
+ { /* 991 */
/* type PARROT_INLINE_OP, */
"ord",
"ord_i_sc_i",
@@ -12990,10 +11973,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 994 */
+ { /* 992 */
/* type PARROT_INLINE_OP, */
"ord",
"ord_i_s_ic",
@@ -13003,10 +11985,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 995 */
+ { /* 993 */
/* type PARROT_INLINE_OP, */
"ord",
"ord_i_sc_ic",
@@ -13016,10 +11997,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 996 */
+ { /* 994 */
/* type PARROT_INLINE_OP, */
"chr",
"chr_s_i",
@@ -13029,10 +12009,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 997 */
+ { /* 995 */
/* type PARROT_INLINE_OP, */
"chr",
"chr_s_ic",
@@ -13042,10 +12021,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 998 */
+ { /* 996 */
/* type PARROT_INLINE_OP, */
"chopn",
"chopn_s_i",
@@ -13055,10 +12033,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 999 */
+ { /* 997 */
/* type PARROT_INLINE_OP, */
"chopn",
"chopn_s_ic",
@@ -13068,10 +12045,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1000 */
+ { /* 998 */
/* type PARROT_INLINE_OP, */
"chopn",
"chopn_s_s_i",
@@ -13081,10 +12057,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1001 */
+ { /* 999 */
/* type PARROT_INLINE_OP, */
"chopn",
"chopn_s_sc_i",
@@ -13094,10 +12069,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1002 */
+ { /* 1000 */
/* type PARROT_INLINE_OP, */
"chopn",
"chopn_s_s_ic",
@@ -13107,10 +12081,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1003 */
+ { /* 1001 */
/* type PARROT_INLINE_OP, */
"chopn",
"chopn_s_sc_ic",
@@ -13120,10 +12093,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1004 */
+ { /* 1002 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_s_s",
@@ -13133,10 +12105,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1005 */
+ { /* 1003 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_s_sc",
@@ -13146,10 +12117,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1006 */
+ { /* 1004 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_p_p",
@@ -13159,10 +12129,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1007 */
+ { /* 1005 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_p_s",
@@ -13172,10 +12141,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1008 */
+ { /* 1006 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_p_sc",
@@ -13185,10 +12153,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1009 */
+ { /* 1007 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_s_s_s",
@@ -13198,10 +12165,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1010 */
+ { /* 1008 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_s_sc_s",
@@ -13211,10 +12177,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1011 */
+ { /* 1009 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_s_s_sc",
@@ -13224,10 +12189,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1012 */
+ { /* 1010 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_p_p_s",
@@ -13237,10 +12201,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1013 */
+ { /* 1011 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_p_p_sc",
@@ -13250,10 +12213,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1014 */
+ { /* 1012 */
/* type PARROT_INLINE_OP, */
"concat",
"concat_p_p_p",
@@ -13263,101 +12225,93 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1015 */
+ { /* 1013 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_s_s_i",
"Parrot_repeat_s_s_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1016 */
+ { /* 1014 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_s_sc_i",
"Parrot_repeat_s_sc_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1017 */
+ { /* 1015 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_s_s_ic",
"Parrot_repeat_s_s_ic",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1018 */
+ { /* 1016 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_s_sc_ic",
"Parrot_repeat_s_sc_ic",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1019 */
+ { /* 1017 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_p_p_i",
"Parrot_repeat_p_p_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1020 */
+ { /* 1018 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_p_p_ic",
"Parrot_repeat_p_p_ic",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1021 */
+ { /* 1019 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_p_p_p",
"Parrot_repeat_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1022 */
+ { /* 1020 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_p_i",
@@ -13367,10 +12321,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1023 */
+ { /* 1021 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_p_ic",
@@ -13380,10 +12333,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1024 */
+ { /* 1022 */
/* type PARROT_INLINE_OP, */
"repeat",
"repeat_p_p",
@@ -13393,10 +12345,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1025 */
+ { /* 1023 */
/* type PARROT_INLINE_OP, */
"length",
"length_i_s",
@@ -13406,10 +12357,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1026 */
+ { /* 1024 */
/* type PARROT_INLINE_OP, */
"length",
"length_i_sc",
@@ -13419,10 +12369,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1027 */
+ { /* 1025 */
/* type PARROT_INLINE_OP, */
"bytelength",
"bytelength_i_s",
@@ -13432,10 +12381,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1028 */
+ { /* 1026 */
/* type PARROT_INLINE_OP, */
"bytelength",
"bytelength_i_sc",
@@ -13445,10 +12393,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1029 */
+ { /* 1027 */
/* type PARROT_FUNCTION_OP, */
"pin",
"pin_s",
@@ -13458,10 +12405,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1030 */
+ { /* 1028 */
/* type PARROT_FUNCTION_OP, */
"unpin",
"unpin_s",
@@ -13471,10 +12417,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1031 */
+ { /* 1029 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_i",
@@ -13484,10 +12429,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1032 */
+ { /* 1030 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_sc_i",
@@ -13497,10 +12441,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1033 */
+ { /* 1031 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_ic",
@@ -13510,10 +12453,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1034 */
+ { /* 1032 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_sc_ic",
@@ -13523,10 +12465,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1035 */
+ { /* 1033 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_i_i",
@@ -13536,10 +12477,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1036 */
+ { /* 1034 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_sc_i_i",
@@ -13549,10 +12489,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1037 */
+ { /* 1035 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_ic_i",
@@ -13562,10 +12501,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1038 */
+ { /* 1036 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_sc_ic_i",
@@ -13575,10 +12513,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1039 */
+ { /* 1037 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_i_ic",
@@ -13588,10 +12525,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1040 */
+ { /* 1038 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_sc_i_ic",
@@ -13601,10 +12537,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1041 */
+ { /* 1039 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_ic_ic",
@@ -13614,10 +12549,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1042 */
+ { /* 1040 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_sc_ic_ic",
@@ -13627,10 +12561,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1043 */
+ { /* 1041 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_i_i_s",
@@ -13640,10 +12573,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1044 */
+ { /* 1042 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_ic_i_s",
@@ -13653,10 +12585,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1045 */
+ { /* 1043 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_i_ic_s",
@@ -13666,10 +12597,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1046 */
+ { /* 1044 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_ic_ic_s",
@@ -13679,10 +12609,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1047 */
+ { /* 1045 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_i_i_sc",
@@ -13692,10 +12621,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1048 */
+ { /* 1046 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_ic_i_sc",
@@ -13705,10 +12633,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1049 */
+ { /* 1047 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_i_ic_sc",
@@ -13718,10 +12645,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1050 */
+ { /* 1048 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_s_ic_ic_sc",
@@ -13731,10 +12657,9 @@
6,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1051 */
+ { /* 1049 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_i_i_s",
@@ -13744,10 +12669,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1052 */
+ { /* 1050 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_ic_i_s",
@@ -13757,10 +12681,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1053 */
+ { /* 1051 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_i_ic_s",
@@ -13770,10 +12693,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1054 */
+ { /* 1052 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_ic_ic_s",
@@ -13783,10 +12705,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1055 */
+ { /* 1053 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_i_i_sc",
@@ -13796,10 +12717,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1056 */
+ { /* 1054 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_ic_i_sc",
@@ -13809,10 +12729,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1057 */
+ { /* 1055 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_i_ic_sc",
@@ -13822,10 +12741,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1058 */
+ { /* 1056 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_ic_ic_sc",
@@ -13835,10 +12753,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1059 */
+ { /* 1057 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_p_i_i",
@@ -13848,10 +12765,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1060 */
+ { /* 1058 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_p_ic_i",
@@ -13861,10 +12777,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1061 */
+ { /* 1059 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_p_i_ic",
@@ -13874,10 +12789,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1062 */
+ { /* 1060 */
/* type PARROT_INLINE_OP, */
"substr",
"substr_s_p_ic_ic",
@@ -13887,10 +12801,9 @@
5,
{ PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1063 */
+ { /* 1061 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_s_s",
@@ -13900,10 +12813,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1064 */
+ { /* 1062 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_sc_s",
@@ -13913,10 +12825,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1065 */
+ { /* 1063 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_s_sc",
@@ -13926,10 +12837,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1066 */
+ { /* 1064 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_sc_sc",
@@ -13939,10 +12849,9 @@
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1067 */
+ { /* 1065 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_s_s_i",
@@ -13952,10 +12861,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1068 */
+ { /* 1066 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_sc_s_i",
@@ -13965,10 +12873,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1069 */
+ { /* 1067 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_s_sc_i",
@@ -13978,10 +12885,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1070 */
+ { /* 1068 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_sc_sc_i",
@@ -13991,10 +12897,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1071 */
+ { /* 1069 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_s_s_ic",
@@ -14004,10 +12909,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1072 */
+ { /* 1070 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_sc_s_ic",
@@ -14017,10 +12921,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1073 */
+ { /* 1071 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_s_sc_ic",
@@ -14030,10 +12933,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1074 */
+ { /* 1072 */
/* type PARROT_INLINE_OP, */
"index",
"index_i_sc_sc_ic",
@@ -14043,10 +12945,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1075 */
+ { /* 1073 */
/* type PARROT_INLINE_OP, */
"sprintf",
"sprintf_s_s_p",
@@ -14056,10 +12957,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1076 */
+ { /* 1074 */
/* type PARROT_INLINE_OP, */
"sprintf",
"sprintf_s_sc_p",
@@ -14069,10 +12969,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1077 */
+ { /* 1075 */
/* type PARROT_INLINE_OP, */
"sprintf",
"sprintf_p_p_p",
@@ -14082,10 +12981,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1078 */
+ { /* 1076 */
/* type PARROT_INLINE_OP, */
"new",
"new_s",
@@ -14095,10 +12993,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1079 */
+ { /* 1077 */
/* type PARROT_INLINE_OP, */
"new",
"new_s_i",
@@ -14108,10 +13005,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1080 */
+ { /* 1078 */
/* type PARROT_INLINE_OP, */
"new",
"new_s_ic",
@@ -14121,62 +13017,57 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1081 */
+ { /* 1079 */
/* type PARROT_INLINE_OP, */
"stringinfo",
"stringinfo_i_s_i",
"Parrot_stringinfo_i_s_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1082 */
+ { /* 1080 */
/* type PARROT_INLINE_OP, */
"stringinfo",
"stringinfo_i_sc_i",
"Parrot_stringinfo_i_sc_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_GNEXT,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1083 */
+ { /* 1081 */
/* type PARROT_INLINE_OP, */
"stringinfo",
"stringinfo_i_s_ic",
"Parrot_stringinfo_i_s_ic",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1084 */
+ { /* 1082 */
/* type PARROT_INLINE_OP, */
"stringinfo",
"stringinfo_i_sc_ic",
"Parrot_stringinfo_i_sc_ic",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
4,
{ PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1085 */
+ { /* 1083 */
/* type PARROT_INLINE_OP, */
"upcase",
"upcase_s_s",
@@ -14186,10 +13077,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1086 */
+ { /* 1084 */
/* type PARROT_INLINE_OP, */
"upcase",
"upcase_s_sc",
@@ -14199,10 +13089,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1087 */
+ { /* 1085 */
/* type PARROT_INLINE_OP, */
"upcase",
"upcase_s",
@@ -14212,10 +13101,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1088 */
+ { /* 1086 */
/* type PARROT_INLINE_OP, */
"downcase",
"downcase_s_s",
@@ -14225,10 +13113,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1089 */
+ { /* 1087 */
/* type PARROT_INLINE_OP, */
"downcase",
"downcase_s_sc",
@@ -14238,10 +13125,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1090 */
+ { /* 1088 */
/* type PARROT_INLINE_OP, */
"downcase",
"downcase_s",
@@ -14251,10 +13137,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1091 */
+ { /* 1089 */
/* type PARROT_INLINE_OP, */
"titlecase",
"titlecase_s_s",
@@ -14264,10 +13149,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1092 */
+ { /* 1090 */
/* type PARROT_INLINE_OP, */
"titlecase",
"titlecase_s_sc",
@@ -14277,10 +13161,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1093 */
+ { /* 1091 */
/* type PARROT_INLINE_OP, */
"titlecase",
"titlecase_s",
@@ -14290,10 +13173,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_INOUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1094 */
+ { /* 1092 */
/* type PARROT_FUNCTION_OP, */
"join",
"join_s_s_p",
@@ -14303,10 +13185,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1095 */
+ { /* 1093 */
/* type PARROT_FUNCTION_OP, */
"join",
"join_s_sc_p",
@@ -14316,10 +13197,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1096 */
+ { /* 1094 */
/* type PARROT_FUNCTION_OP, */
"split",
"split_p_s_s",
@@ -14329,10 +13209,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1097 */
+ { /* 1095 */
/* type PARROT_FUNCTION_OP, */
"split",
"split_p_sc_s",
@@ -14342,10 +13221,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1098 */
+ { /* 1096 */
/* type PARROT_FUNCTION_OP, */
"split",
"split_p_s_sc",
@@ -14355,10 +13233,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1099 */
+ { /* 1097 */
/* type PARROT_FUNCTION_OP, */
"split",
"split_p_sc_sc",
@@ -14368,10 +13245,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1100 */
+ { /* 1098 */
/* type PARROT_FUNCTION_OP, */
"charset",
"charset_i_s",
@@ -14381,10 +13257,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1101 */
+ { /* 1099 */
/* type PARROT_FUNCTION_OP, */
"charset",
"charset_i_sc",
@@ -14394,10 +13269,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1102 */
+ { /* 1100 */
/* type PARROT_FUNCTION_OP, */
"charsetname",
"charsetname_s_i",
@@ -14407,10 +13281,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1103 */
+ { /* 1101 */
/* type PARROT_FUNCTION_OP, */
"charsetname",
"charsetname_s_ic",
@@ -14420,36 +13293,33 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1104 */
+ { /* 1102 */
/* type PARROT_FUNCTION_OP, */
"find_charset",
"find_charset_i_s",
"Parrot_find_charset_i_s",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1105 */
+ { /* 1103 */
/* type PARROT_FUNCTION_OP, */
"find_charset",
"find_charset_i_sc",
"Parrot_find_charset_i_sc",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1106 */
+ { /* 1104 */
/* type PARROT_FUNCTION_OP, */
"trans_charset",
"trans_charset_s_i",
@@ -14459,10 +13329,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1107 */
+ { /* 1105 */
/* type PARROT_FUNCTION_OP, */
"trans_charset",
"trans_charset_s_ic",
@@ -14472,10 +13341,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1108 */
+ { /* 1106 */
/* type PARROT_FUNCTION_OP, */
"trans_charset",
"trans_charset_s_s_i",
@@ -14485,10 +13353,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1109 */
+ { /* 1107 */
/* type PARROT_FUNCTION_OP, */
"trans_charset",
"trans_charset_s_sc_i",
@@ -14498,10 +13365,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1110 */
+ { /* 1108 */
/* type PARROT_FUNCTION_OP, */
"trans_charset",
"trans_charset_s_s_ic",
@@ -14511,10 +13377,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1111 */
+ { /* 1109 */
/* type PARROT_FUNCTION_OP, */
"trans_charset",
"trans_charset_s_sc_ic",
@@ -14524,10 +13389,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1112 */
+ { /* 1110 */
/* type PARROT_FUNCTION_OP, */
"encoding",
"encoding_i_s",
@@ -14537,10 +13401,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1113 */
+ { /* 1111 */
/* type PARROT_FUNCTION_OP, */
"encoding",
"encoding_i_sc",
@@ -14550,10 +13413,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1114 */
+ { /* 1112 */
/* type PARROT_FUNCTION_OP, */
"encodingname",
"encodingname_s_i",
@@ -14563,10 +13425,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1115 */
+ { /* 1113 */
/* type PARROT_FUNCTION_OP, */
"encodingname",
"encodingname_s_ic",
@@ -14576,36 +13437,33 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1116 */
+ { /* 1114 */
/* type PARROT_FUNCTION_OP, */
"find_encoding",
"find_encoding_i_s",
"Parrot_find_encoding_i_s",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1117 */
+ { /* 1115 */
/* type PARROT_FUNCTION_OP, */
"find_encoding",
"find_encoding_i_sc",
"Parrot_find_encoding_i_sc",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1118 */
+ { /* 1116 */
/* type PARROT_FUNCTION_OP, */
"trans_encoding",
"trans_encoding_s_i",
@@ -14615,10 +13473,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1119 */
+ { /* 1117 */
/* type PARROT_FUNCTION_OP, */
"trans_encoding",
"trans_encoding_s_ic",
@@ -14628,10 +13485,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1120 */
+ { /* 1118 */
/* type PARROT_FUNCTION_OP, */
"trans_encoding",
"trans_encoding_s_s_i",
@@ -14641,10 +13497,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1121 */
+ { /* 1119 */
/* type PARROT_FUNCTION_OP, */
"trans_encoding",
"trans_encoding_s_sc_i",
@@ -14654,10 +13509,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1122 */
+ { /* 1120 */
/* type PARROT_FUNCTION_OP, */
"trans_encoding",
"trans_encoding_s_s_ic",
@@ -14667,10 +13521,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1123 */
+ { /* 1121 */
/* type PARROT_FUNCTION_OP, */
"trans_encoding",
"trans_encoding_s_sc_ic",
@@ -14680,10 +13533,9 @@
4,
{ PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1124 */
+ { /* 1122 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_i_s_i",
@@ -14693,10 +13545,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1125 */
+ { /* 1123 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_ic_s_i",
@@ -14706,10 +13557,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1126 */
+ { /* 1124 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_i_sc_i",
@@ -14719,10 +13569,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1127 */
+ { /* 1125 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_ic_sc_i",
@@ -14732,10 +13581,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1128 */
+ { /* 1126 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_i_s_ic",
@@ -14745,10 +13593,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1129 */
+ { /* 1127 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_ic_s_ic",
@@ -14758,10 +13605,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1130 */
+ { /* 1128 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_i_sc_ic",
@@ -14771,10 +13617,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1131 */
+ { /* 1129 */
/* type PARROT_INLINE_OP, */
"is_cclass",
"is_cclass_i_ic_sc_ic",
@@ -14784,10 +13629,9 @@
5,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1132 */
+ { /* 1130 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_s_i_i",
@@ -14797,10 +13641,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1133 */
+ { /* 1131 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_s_i_i",
@@ -14810,10 +13653,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1134 */
+ { /* 1132 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_sc_i_i",
@@ -14823,10 +13665,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1135 */
+ { /* 1133 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_sc_i_i",
@@ -14836,10 +13677,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1136 */
+ { /* 1134 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_s_ic_i",
@@ -14849,10 +13689,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1137 */
+ { /* 1135 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_s_ic_i",
@@ -14862,10 +13701,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1138 */
+ { /* 1136 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_sc_ic_i",
@@ -14875,10 +13713,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1139 */
+ { /* 1137 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_sc_ic_i",
@@ -14888,10 +13725,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1140 */
+ { /* 1138 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_s_i_ic",
@@ -14901,10 +13737,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1141 */
+ { /* 1139 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_s_i_ic",
@@ -14914,10 +13749,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1142 */
+ { /* 1140 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_sc_i_ic",
@@ -14927,10 +13761,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1143 */
+ { /* 1141 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_sc_i_ic",
@@ -14940,10 +13773,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1144 */
+ { /* 1142 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_s_ic_ic",
@@ -14953,10 +13785,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1145 */
+ { /* 1143 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_s_ic_ic",
@@ -14966,10 +13797,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1146 */
+ { /* 1144 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_i_sc_ic_ic",
@@ -14979,10 +13809,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1147 */
+ { /* 1145 */
/* type PARROT_INLINE_OP, */
"find_cclass",
"find_cclass_i_ic_sc_ic_ic",
@@ -14992,10 +13821,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1148 */
+ { /* 1146 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_s_i_i",
@@ -15005,10 +13833,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1149 */
+ { /* 1147 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_s_i_i",
@@ -15018,10 +13845,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1150 */
+ { /* 1148 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_sc_i_i",
@@ -15031,10 +13857,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1151 */
+ { /* 1149 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_sc_i_i",
@@ -15044,10 +13869,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1152 */
+ { /* 1150 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_s_ic_i",
@@ -15057,10 +13881,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1153 */
+ { /* 1151 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_s_ic_i",
@@ -15070,10 +13893,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1154 */
+ { /* 1152 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_sc_ic_i",
@@ -15083,10 +13905,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1155 */
+ { /* 1153 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_sc_ic_i",
@@ -15096,10 +13917,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1156 */
+ { /* 1154 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_s_i_ic",
@@ -15109,10 +13929,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1157 */
+ { /* 1155 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_s_i_ic",
@@ -15122,10 +13941,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1158 */
+ { /* 1156 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_sc_i_ic",
@@ -15135,10 +13953,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1159 */
+ { /* 1157 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_sc_i_ic",
@@ -15148,10 +13965,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1160 */
+ { /* 1158 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_s_ic_ic",
@@ -15161,10 +13977,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1161 */
+ { /* 1159 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_s_ic_ic",
@@ -15174,10 +13989,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1162 */
+ { /* 1160 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_i_sc_ic_ic",
@@ -15187,10 +14001,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1163 */
+ { /* 1161 */
/* type PARROT_INLINE_OP, */
"find_not_cclass",
"find_not_cclass_i_ic_sc_ic_ic",
@@ -15200,10 +14013,9 @@
6,
{ PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0, 0 }
},
- { /* 1164 */
+ { /* 1162 */
/* type PARROT_FUNCTION_OP, */
"escape",
"escape_s_s",
@@ -15213,10 +14025,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1165 */
+ { /* 1163 */
/* type PARROT_FUNCTION_OP, */
"compose",
"compose_s_s",
@@ -15226,10 +14037,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1166 */
+ { /* 1164 */
/* type PARROT_FUNCTION_OP, */
"compose",
"compose_s_sc",
@@ -15239,10 +14049,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1167 */
+ { /* 1165 */
/* type PARROT_INLINE_OP, */
"spawnw",
"spawnw_i_s",
@@ -15252,10 +14061,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1168 */
+ { /* 1166 */
/* type PARROT_INLINE_OP, */
"spawnw",
"spawnw_i_sc",
@@ -15265,10 +14073,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1169 */
+ { /* 1167 */
/* type PARROT_INLINE_OP, */
"spawnw",
"spawnw_i_p",
@@ -15278,10 +14085,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1170 */
+ { /* 1168 */
/* type PARROT_INLINE_OP, */
"err",
"err_i",
@@ -15291,10 +14097,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1171 */
+ { /* 1169 */
/* type PARROT_FUNCTION_OP, */
"err",
"err_s",
@@ -15304,10 +14109,9 @@
2,
{ PARROT_ARG_S },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1172 */
+ { /* 1170 */
/* type PARROT_FUNCTION_OP, */
"err",
"err_s_i",
@@ -15317,10 +14121,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1173 */
+ { /* 1171 */
/* type PARROT_FUNCTION_OP, */
"err",
"err_s_ic",
@@ -15330,10 +14133,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1174 */
+ { /* 1172 */
/* type PARROT_INLINE_OP, */
"time",
"time_i",
@@ -15343,10 +14145,9 @@
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1175 */
+ { /* 1173 */
/* type PARROT_INLINE_OP, */
"time",
"time_n",
@@ -15356,10 +14157,9 @@
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1176 */
+ { /* 1174 */
/* type PARROT_FUNCTION_OP, */
"gmtime",
"gmtime_s_i",
@@ -15369,10 +14169,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1177 */
+ { /* 1175 */
/* type PARROT_FUNCTION_OP, */
"gmtime",
"gmtime_s_ic",
@@ -15382,10 +14181,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1178 */
+ { /* 1176 */
/* type PARROT_FUNCTION_OP, */
"localtime",
"localtime_s_i",
@@ -15395,10 +14193,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1179 */
+ { /* 1177 */
/* type PARROT_FUNCTION_OP, */
"localtime",
"localtime_s_ic",
@@ -15408,10 +14205,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1180 */
+ { /* 1178 */
/* type PARROT_FUNCTION_OP, */
"decodetime",
"decodetime_p_i",
@@ -15421,10 +14217,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1181 */
+ { /* 1179 */
/* type PARROT_FUNCTION_OP, */
"decodetime",
"decodetime_p_ic",
@@ -15434,10 +14229,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1182 */
+ { /* 1180 */
/* type PARROT_FUNCTION_OP, */
"decodelocaltime",
"decodelocaltime_p_i",
@@ -15447,10 +14241,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1183 */
+ { /* 1181 */
/* type PARROT_FUNCTION_OP, */
"decodelocaltime",
"decodelocaltime_p_ic",
@@ -15460,10 +14253,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1184 */
+ { /* 1182 */
/* type PARROT_INLINE_OP, */
"sysinfo",
"sysinfo_s_i",
@@ -15473,10 +14265,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1185 */
+ { /* 1183 */
/* type PARROT_INLINE_OP, */
"sysinfo",
"sysinfo_s_ic",
@@ -15486,10 +14277,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1186 */
+ { /* 1184 */
/* type PARROT_INLINE_OP, */
"sysinfo",
"sysinfo_i_i",
@@ -15499,10 +14289,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1187 */
+ { /* 1185 */
/* type PARROT_INLINE_OP, */
"sysinfo",
"sysinfo_i_ic",
@@ -15512,62 +14301,57 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1188 */
+ { /* 1186 */
/* type PARROT_INLINE_OP, */
"sleep",
"sleep_i",
"Parrot_sleep_i",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT|PARROT_JUMP_GNEXT,
+ 0,
2,
{ PARROT_ARG_I },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 1189 */
+ { /* 1187 */
/* type PARROT_INLINE_OP, */
"sleep",
"sleep_ic",
"Parrot_sleep_ic",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_IC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 1190 */
+ { /* 1188 */
/* type PARROT_INLINE_OP, */
"sleep",
"sleep_n",
"Parrot_sleep_n",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_N },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 1191 */
+ { /* 1189 */
/* type PARROT_INLINE_OP, */
"sleep",
"sleep_nc",
"Parrot_sleep_nc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
2,
{ PARROT_ARG_NC },
{ PARROT_ARGDIR_IN },
- { 0 },
- 0
+ { 0 }
},
- { /* 1192 */
+ { /* 1190 */
/* type PARROT_INLINE_OP, */
"sizeof",
"sizeof_i_i",
@@ -15577,10 +14361,9 @@
3,
{ PARROT_ARG_I, PARROT_ARG_I },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1193 */
+ { /* 1191 */
/* type PARROT_INLINE_OP, */
"sizeof",
"sizeof_i_ic",
@@ -15590,88 +14373,81 @@
3,
{ PARROT_ARG_I, PARROT_ARG_IC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1194 */
+ { /* 1192 */
/* type PARROT_FUNCTION_OP, */
"store_lex",
"store_lex_s_p",
"Parrot_store_lex_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1195 */
+ { /* 1193 */
/* type PARROT_FUNCTION_OP, */
"store_lex",
"store_lex_sc_p",
"Parrot_store_lex_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1196 */
+ { /* 1194 */
/* type PARROT_FUNCTION_OP, */
"store_dynamic_lex",
"store_dynamic_lex_s_p",
"Parrot_store_dynamic_lex_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1197 */
+ { /* 1195 */
/* type PARROT_FUNCTION_OP, */
"store_dynamic_lex",
"store_dynamic_lex_sc_p",
"Parrot_store_dynamic_lex_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1198 */
+ { /* 1196 */
/* type PARROT_FUNCTION_OP, */
"find_lex",
"find_lex_p_s",
"Parrot_find_lex_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1199 */
+ { /* 1197 */
/* type PARROT_FUNCTION_OP, */
"find_lex",
"find_lex_p_sc",
"Parrot_find_lex_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1200 */
+ { /* 1198 */
/* type PARROT_FUNCTION_OP, */
"find_dynamic_lex",
"find_dynamic_lex_p_s",
@@ -15681,10 +14457,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1201 */
+ { /* 1199 */
/* type PARROT_FUNCTION_OP, */
"find_dynamic_lex",
"find_dynamic_lex_p_sc",
@@ -15694,10 +14469,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1202 */
+ { /* 1200 */
/* type PARROT_FUNCTION_OP, */
"find_caller_lex",
"find_caller_lex_p_s",
@@ -15707,10 +14481,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1203 */
+ { /* 1201 */
/* type PARROT_FUNCTION_OP, */
"find_caller_lex",
"find_caller_lex_p_sc",
@@ -15720,10 +14493,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1204 */
+ { /* 1202 */
/* type PARROT_FUNCTION_OP, */
"get_namespace",
"get_namespace_p",
@@ -15733,10 +14505,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1205 */
+ { /* 1203 */
/* type PARROT_FUNCTION_OP, */
"get_namespace",
"get_namespace_p_p",
@@ -15746,10 +14517,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1206 */
+ { /* 1204 */
/* type PARROT_FUNCTION_OP, */
"get_namespace",
"get_namespace_p_pc",
@@ -15759,10 +14529,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1207 */
+ { /* 1205 */
/* type PARROT_FUNCTION_OP, */
"get_hll_namespace",
"get_hll_namespace_p",
@@ -15772,10 +14541,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1208 */
+ { /* 1206 */
/* type PARROT_FUNCTION_OP, */
"get_hll_namespace",
"get_hll_namespace_p_p",
@@ -15785,10 +14553,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1209 */
+ { /* 1207 */
/* type PARROT_FUNCTION_OP, */
"get_hll_namespace",
"get_hll_namespace_p_pc",
@@ -15798,10 +14565,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1210 */
+ { /* 1208 */
/* type PARROT_FUNCTION_OP, */
"get_root_namespace",
"get_root_namespace_p",
@@ -15811,10 +14577,9 @@
2,
{ PARROT_ARG_P },
{ PARROT_ARGDIR_OUT },
- { 0 },
- 0
+ { 0 }
},
- { /* 1211 */
+ { /* 1209 */
/* type PARROT_FUNCTION_OP, */
"get_root_namespace",
"get_root_namespace_p_p",
@@ -15824,10 +14589,9 @@
3,
{ PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1212 */
+ { /* 1210 */
/* type PARROT_FUNCTION_OP, */
"get_root_namespace",
"get_root_namespace_p_pc",
@@ -15837,244 +14601,225 @@
3,
{ PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1213 */
+ { /* 1211 */
/* type PARROT_FUNCTION_OP, */
"get_global",
"get_global_p_s",
"Parrot_get_global_p_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1214 */
+ { /* 1212 */
/* type PARROT_FUNCTION_OP, */
"get_global",
"get_global_p_sc",
"Parrot_get_global_p_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1215 */
+ { /* 1213 */
/* type PARROT_FUNCTION_OP, */
"get_global",
"get_global_p_p_s",
"Parrot_get_global_p_p_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1216 */
+ { /* 1214 */
/* type PARROT_FUNCTION_OP, */
"get_global",
"get_global_p_pc_s",
"Parrot_get_global_p_pc_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1217 */
+ { /* 1215 */
/* type PARROT_FUNCTION_OP, */
"get_global",
"get_global_p_p_sc",
"Parrot_get_global_p_p_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1218 */
+ { /* 1216 */
/* type PARROT_FUNCTION_OP, */
"get_global",
"get_global_p_pc_sc",
"Parrot_get_global_p_pc_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1219 */
+ { /* 1217 */
/* type PARROT_FUNCTION_OP, */
"get_hll_global",
"get_hll_global_p_s",
"Parrot_get_hll_global_p_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1220 */
+ { /* 1218 */
/* type PARROT_FUNCTION_OP, */
"get_hll_global",
"get_hll_global_p_sc",
"Parrot_get_hll_global_p_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1221 */
+ { /* 1219 */
/* type PARROT_FUNCTION_OP, */
"get_hll_global",
"get_hll_global_p_p_s",
"Parrot_get_hll_global_p_p_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1222 */
+ { /* 1220 */
/* type PARROT_FUNCTION_OP, */
"get_hll_global",
"get_hll_global_p_pc_s",
"Parrot_get_hll_global_p_pc_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1223 */
+ { /* 1221 */
/* type PARROT_FUNCTION_OP, */
"get_hll_global",
"get_hll_global_p_p_sc",
"Parrot_get_hll_global_p_p_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1224 */
+ { /* 1222 */
/* type PARROT_FUNCTION_OP, */
"get_hll_global",
"get_hll_global_p_pc_sc",
"Parrot_get_hll_global_p_pc_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1225 */
+ { /* 1223 */
/* type PARROT_FUNCTION_OP, */
"get_root_global",
"get_root_global_p_s",
"Parrot_get_root_global_p_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1226 */
+ { /* 1224 */
/* type PARROT_FUNCTION_OP, */
"get_root_global",
"get_root_global_p_sc",
"Parrot_get_root_global_p_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1227 */
+ { /* 1225 */
/* type PARROT_FUNCTION_OP, */
"get_root_global",
"get_root_global_p_p_s",
"Parrot_get_root_global_p_p_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1228 */
+ { /* 1226 */
/* type PARROT_FUNCTION_OP, */
"get_root_global",
"get_root_global_p_pc_s",
"Parrot_get_root_global_p_pc_s",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1229 */
+ { /* 1227 */
/* type PARROT_FUNCTION_OP, */
"get_root_global",
"get_root_global_p_p_sc",
"Parrot_get_root_global_p_p_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1230 */
+ { /* 1228 */
/* type PARROT_FUNCTION_OP, */
"get_root_global",
"get_root_global_p_pc_sc",
"Parrot_get_root_global_p_pc_sc",
/* "", body */
- PARROT_JUMP_ENEXT,
+ 0,
4,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1231 */
+ { /* 1229 */
/* type PARROT_FUNCTION_OP, */
"set_global",
"set_global_s_p",
@@ -16084,10 +14829,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1232 */
+ { /* 1230 */
/* type PARROT_FUNCTION_OP, */
"set_global",
"set_global_sc_p",
@@ -16097,10 +14841,9 @@
3,
{ PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1233 */
+ { /* 1231 */
/* type PARROT_FUNCTION_OP, */
"set_global",
"set_global_p_s_p",
@@ -16110,10 +14853,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1234 */
+ { /* 1232 */
/* type PARROT_FUNCTION_OP, */
"set_global",
"set_global_pc_s_p",
@@ -16123,10 +14865,9 @@
4,
{ PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1235 */
+ { /* 1233 */
/* type PARROT_FUNCTION_OP, */
"set_global",
"set_global_p_sc_p",
@@ -16136,10 +14877,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1236 */
+ { /* 1234 */
/* type PARROT_FUNCTION_OP, */
"set_global",
"set_global_pc_sc_p",
@@ -16149,10 +14889,9 @@
4,
{ PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1237 */
+ { /* 1235 */
/* type PARROT_FUNCTION_OP, */
"set_hll_global",
"set_hll_global_s_p",
@@ -16162,10 +14901,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1238 */
+ { /* 1236 */
/* type PARROT_FUNCTION_OP, */
"set_hll_global",
"set_hll_global_sc_p",
@@ -16175,10 +14913,9 @@
3,
{ PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1239 */
+ { /* 1237 */
/* type PARROT_FUNCTION_OP, */
"set_hll_global",
"set_hll_global_p_s_p",
@@ -16188,10 +14925,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1240 */
+ { /* 1238 */
/* type PARROT_FUNCTION_OP, */
"set_hll_global",
"set_hll_global_pc_s_p",
@@ -16201,10 +14937,9 @@
4,
{ PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1241 */
+ { /* 1239 */
/* type PARROT_FUNCTION_OP, */
"set_hll_global",
"set_hll_global_p_sc_p",
@@ -16214,10 +14949,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1242 */
+ { /* 1240 */
/* type PARROT_FUNCTION_OP, */
"set_hll_global",
"set_hll_global_pc_sc_p",
@@ -16227,10 +14961,9 @@
4,
{ PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1243 */
+ { /* 1241 */
/* type PARROT_FUNCTION_OP, */
"set_root_global",
"set_root_global_s_p",
@@ -16240,10 +14973,9 @@
3,
{ PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1244 */
+ { /* 1242 */
/* type PARROT_FUNCTION_OP, */
"set_root_global",
"set_root_global_sc_p",
@@ -16253,10 +14985,9 @@
3,
{ PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1245 */
+ { /* 1243 */
/* type PARROT_FUNCTION_OP, */
"set_root_global",
"set_root_global_p_s_p",
@@ -16266,10 +14997,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1246 */
+ { /* 1244 */
/* type PARROT_FUNCTION_OP, */
"set_root_global",
"set_root_global_pc_s_p",
@@ -16279,10 +15009,9 @@
4,
{ PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1247 */
+ { /* 1245 */
/* type PARROT_FUNCTION_OP, */
"set_root_global",
"set_root_global_p_sc_p",
@@ -16292,10 +15021,9 @@
4,
{ PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1248 */
+ { /* 1246 */
/* type PARROT_FUNCTION_OP, */
"set_root_global",
"set_root_global_pc_sc_p",
@@ -16305,62 +15033,57 @@
4,
{ PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0 },
- 0
+ { 0, 0, 0 }
},
- { /* 1249 */
+ { /* 1247 */
/* type PARROT_FUNCTION_OP, */
"find_name",
"find_name_p_s",
"Parrot_find_name_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1250 */
+ { /* 1248 */
/* type PARROT_FUNCTION_OP, */
"find_name",
"find_name_p_sc",
"Parrot_find_name_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1251 */
+ { /* 1249 */
/* type PARROT_INLINE_OP, */
"find_sub_not_null",
"find_sub_not_null_p_s",
"Parrot_find_sub_not_null_p_s",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_S },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1252 */
+ { /* 1250 */
/* type PARROT_INLINE_OP, */
"find_sub_not_null",
"find_sub_not_null_p_sc",
"Parrot_find_sub_not_null_p_sc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
3,
{ PARROT_ARG_P, PARROT_ARG_SC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
- { 0, 0 },
- 0
+ { 0, 0 }
},
- { /* 1253 */
+ { /* 1251 */
/* type PARROT_FUNCTION_OP, */
"trap",
"trap",
@@ -16368,1947 +15091,1896 @@
/* "", body */
0,
1,
- { 0 },
- { 0 },
- { 0 },
- 0
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
},
- { /* 1254 */
+ { /* 1252 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_p_p",
"Parrot_fetch_p_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1255 */
+ { /* 1253 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_p_p",
"Parrot_fetch_p_pc_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1256 */
+ { /* 1254 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_pc_p",
"Parrot_fetch_p_p_pc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1257 */
+ { /* 1255 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_pc_p",
"Parrot_fetch_p_pc_pc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1258 */
+ { /* 1256 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_p_pc",
"Parrot_fetch_p_p_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1259 */
+ { /* 1257 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_p_pc",
"Parrot_fetch_p_pc_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1260 */
+ { /* 1258 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_pc_pc",
"Parrot_fetch_p_p_pc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1261 */
+ { /* 1259 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_pc_pc",
"Parrot_fetch_p_pc_pc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1262 */
+ { /* 1260 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_i_p",
"Parrot_fetch_p_p_i_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1263 */
+ { /* 1261 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_i_p",
"Parrot_fetch_p_pc_i_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1264 */
+ { /* 1262 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_ic_p",
"Parrot_fetch_p_p_ic_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1265 */
+ { /* 1263 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_ic_p",
"Parrot_fetch_p_pc_ic_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1266 */
+ { /* 1264 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_i_pc",
"Parrot_fetch_p_p_i_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1267 */
+ { /* 1265 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_i_pc",
"Parrot_fetch_p_pc_i_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1268 */
+ { /* 1266 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_ic_pc",
"Parrot_fetch_p_p_ic_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1269 */
+ { /* 1267 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_ic_pc",
"Parrot_fetch_p_pc_ic_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1270 */
+ { /* 1268 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_s_p",
"Parrot_fetch_p_p_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1271 */
+ { /* 1269 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_s_p",
"Parrot_fetch_p_pc_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1272 */
+ { /* 1270 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_sc_p",
"Parrot_fetch_p_p_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1273 */
+ { /* 1271 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_sc_p",
"Parrot_fetch_p_pc_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1274 */
+ { /* 1272 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_s_pc",
"Parrot_fetch_p_p_s_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1275 */
+ { /* 1273 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_s_pc",
"Parrot_fetch_p_pc_s_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1276 */
+ { /* 1274 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_p_sc_pc",
"Parrot_fetch_p_p_sc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1277 */
+ { /* 1275 */
/* type PARROT_INLINE_OP, */
"fetch",
"fetch_p_pc_sc_pc",
"Parrot_fetch_p_pc_sc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1278 */
+ { /* 1276 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_p_p",
"Parrot_vivify_p_p_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1279 */
+ { /* 1277 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_p_p",
"Parrot_vivify_p_pc_p_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1280 */
+ { /* 1278 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_pc_p",
"Parrot_vivify_p_p_pc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1281 */
+ { /* 1279 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_pc_p",
"Parrot_vivify_p_pc_pc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1282 */
+ { /* 1280 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_p_pc",
"Parrot_vivify_p_p_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1283 */
+ { /* 1281 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_p_pc",
"Parrot_vivify_p_pc_p_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1284 */
+ { /* 1282 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_pc_pc",
"Parrot_vivify_p_p_pc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1285 */
+ { /* 1283 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_pc_pc",
"Parrot_vivify_p_pc_pc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1286 */
+ { /* 1284 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_i_p",
"Parrot_vivify_p_p_i_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1287 */
+ { /* 1285 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_i_p",
"Parrot_vivify_p_pc_i_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1288 */
+ { /* 1286 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_ic_p",
"Parrot_vivify_p_p_ic_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1289 */
+ { /* 1287 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_ic_p",
"Parrot_vivify_p_pc_ic_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1290 */
+ { /* 1288 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_i_pc",
"Parrot_vivify_p_p_i_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1291 */
+ { /* 1289 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_i_pc",
"Parrot_vivify_p_pc_i_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1292 */
+ { /* 1290 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_ic_pc",
"Parrot_vivify_p_p_ic_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1293 */
+ { /* 1291 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_ic_pc",
"Parrot_vivify_p_pc_ic_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1294 */
+ { /* 1292 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_s_p",
"Parrot_vivify_p_p_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1295 */
+ { /* 1293 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_s_p",
"Parrot_vivify_p_pc_s_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1296 */
+ { /* 1294 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_sc_p",
"Parrot_vivify_p_p_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1297 */
+ { /* 1295 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_sc_p",
"Parrot_vivify_p_pc_sc_p",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1298 */
+ { /* 1296 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_s_pc",
"Parrot_vivify_p_p_s_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1299 */
+ { /* 1297 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_s_pc",
"Parrot_vivify_p_pc_s_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1300 */
+ { /* 1298 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_p_sc_pc",
"Parrot_vivify_p_p_sc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
- { /* 1301 */
+ { /* 1299 */
/* type PARROT_INLINE_OP, */
"vivify",
"vivify_p_pc_sc_pc",
"Parrot_vivify_p_pc_sc_pc",
/* "", body */
- PARROT_JUMP_ADDRESS|PARROT_JUMP_ENEXT,
+ 0,
5,
{ PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
{ PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
- { 0, 0, 0, 0 },
- 0
+ { 0, 0, 0, 0 }
},
};
-INTVAL core_numops = 1302;
+INTVAL core_numops = 1300;
/*
** Op Function Table:
*/
-static op_func_t core_op_func_table[1303] = {
+static op_func_t core_op_func_table[1301] = {
Parrot_end, /* 0 */
Parrot_noop, /* 1 */
Parrot_cpu_ret, /* 2 */
Parrot_check_events, /* 3 */
Parrot_check_events__, /* 4 */
Parrot_wrapper__, /* 5 */
- Parrot_prederef__, /* 6 */
- Parrot_reserved_ic, /* 7 */
- Parrot_load_bytecode_s, /* 8 */
- Parrot_load_bytecode_sc, /* 9 */
- Parrot_load_language_s, /* 10 */
- Parrot_load_language_sc, /* 11 */
- Parrot_branch_i, /* 12 */
- Parrot_branch_ic, /* 13 */
- Parrot_local_branch_p_i, /* 14 */
- Parrot_local_branch_p_ic, /* 15 */
- Parrot_local_return_p, /* 16 */
- Parrot_jump_i, /* 17 */
- Parrot_jump_ic, /* 18 */
- Parrot_enternative, /* 19 */
- Parrot_if_i_ic, /* 20 */
- Parrot_if_n_ic, /* 21 */
- Parrot_if_s_ic, /* 22 */
- Parrot_if_p_ic, /* 23 */
- Parrot_unless_i_ic, /* 24 */
- Parrot_unless_n_ic, /* 25 */
- Parrot_unless_s_ic, /* 26 */
- Parrot_unless_p_ic, /* 27 */
- Parrot_invokecc_p, /* 28 */
- Parrot_invoke_p_p, /* 29 */
- Parrot_yield, /* 30 */
- Parrot_tailcall_p, /* 31 */
- Parrot_returncc, /* 32 */
- Parrot_capture_lex_p, /* 33 */
- Parrot_newclosure_p_p, /* 34 */
- Parrot_set_args_pc, /* 35 */
- Parrot_get_results_pc, /* 36 */
- Parrot_get_params_pc, /* 37 */
- Parrot_set_returns_pc, /* 38 */
- Parrot_result_info_p, /* 39 */
- Parrot_set_addr_i_ic, /* 40 */
- Parrot_set_addr_p_ic, /* 41 */
- Parrot_set_addr_p_i, /* 42 */
- Parrot_get_addr_i_p, /* 43 */
- Parrot_schedule_p, /* 44 */
- Parrot_addhandler_p, /* 45 */
- Parrot_push_eh_ic, /* 46 */
- Parrot_push_eh_p, /* 47 */
- Parrot_pop_eh, /* 48 */
- Parrot_throw_p, /* 49 */
- Parrot_throw_p_p, /* 50 */
- Parrot_rethrow_p, /* 51 */
- Parrot_count_eh_i, /* 52 */
- Parrot_die_s, /* 53 */
- Parrot_die_sc, /* 54 */
- Parrot_die_p, /* 55 */
- Parrot_die_pc, /* 56 */
- Parrot_die_i_i, /* 57 */
- Parrot_die_ic_i, /* 58 */
- Parrot_die_i_ic, /* 59 */
- Parrot_die_ic_ic, /* 60 */
- Parrot_exit_i, /* 61 */
- Parrot_exit_ic, /* 62 */
- Parrot_pushmark_i, /* 63 */
- Parrot_pushmark_ic, /* 64 */
- Parrot_popmark_i, /* 65 */
- Parrot_popmark_ic, /* 66 */
- Parrot_pushaction_p, /* 67 */
- Parrot_debug_i, /* 68 */
- Parrot_debug_ic, /* 69 */
- Parrot_bounds_i, /* 70 */
- Parrot_bounds_ic, /* 71 */
- Parrot_profile_i, /* 72 */
- Parrot_profile_ic, /* 73 */
- Parrot_trace_i, /* 74 */
- Parrot_trace_ic, /* 75 */
- Parrot_gc_debug_i, /* 76 */
- Parrot_gc_debug_ic, /* 77 */
- Parrot_interpinfo_i_i, /* 78 */
- Parrot_interpinfo_i_ic, /* 79 */
- Parrot_interpinfo_p_i, /* 80 */
- Parrot_interpinfo_p_ic, /* 81 */
- Parrot_interpinfo_s_i, /* 82 */
- Parrot_interpinfo_s_ic, /* 83 */
- Parrot_warningson_i, /* 84 */
- Parrot_warningson_ic, /* 85 */
- Parrot_warningsoff_i, /* 86 */
- Parrot_warningsoff_ic, /* 87 */
- Parrot_errorson_i, /* 88 */
- Parrot_errorson_ic, /* 89 */
- Parrot_errorsoff_i, /* 90 */
- Parrot_errorsoff_ic, /* 91 */
- Parrot_runinterp_p_i, /* 92 */
- Parrot_runinterp_p_ic, /* 93 */
- Parrot_getinterp_p, /* 94 */
- Parrot_sweep_ic, /* 95 */
- Parrot_collect, /* 96 */
- Parrot_sweepoff, /* 97 */
- Parrot_sweepon, /* 98 */
- Parrot_collectoff, /* 99 */
- Parrot_collecton, /* 100 */
- Parrot_needs_destroy_p, /* 101 */
- Parrot_loadlib_p_s, /* 102 */
- Parrot_loadlib_p_sc, /* 103 */
- Parrot_dlfunc_p_p_s_s, /* 104 */
- Parrot_dlfunc_p_p_sc_s, /* 105 */
- Parrot_dlfunc_p_p_s_sc, /* 106 */
- Parrot_dlfunc_p_p_sc_sc, /* 107 */
- Parrot_dlvar_p_p_s, /* 108 */
- Parrot_dlvar_p_p_sc, /* 109 */
- Parrot_compreg_s_p, /* 110 */
- Parrot_compreg_sc_p, /* 111 */
- Parrot_compreg_p_s, /* 112 */
- Parrot_compreg_p_sc, /* 113 */
- Parrot_new_callback_p_p_p_s, /* 114 */
- Parrot_new_callback_p_p_p_sc, /* 115 */
- Parrot_annotations_p, /* 116 */
- Parrot_annotations_p_s, /* 117 */
- Parrot_annotations_p_sc, /* 118 */
- Parrot_band_i_i, /* 119 */
- Parrot_band_i_ic, /* 120 */
- Parrot_band_p_i, /* 121 */
- Parrot_band_p_ic, /* 122 */
- Parrot_band_p_p, /* 123 */
- Parrot_band_i_i_i, /* 124 */
- Parrot_band_i_ic_i, /* 125 */
- Parrot_band_i_i_ic, /* 126 */
- Parrot_band_p_p_i, /* 127 */
- Parrot_band_p_p_ic, /* 128 */
- Parrot_band_p_p_p, /* 129 */
- Parrot_bands_s_s, /* 130 */
- Parrot_bands_s_sc, /* 131 */
- Parrot_bands_p_s, /* 132 */
- Parrot_bands_p_sc, /* 133 */
- Parrot_bands_p_p, /* 134 */
- Parrot_bands_s_s_s, /* 135 */
- Parrot_bands_s_sc_s, /* 136 */
- Parrot_bands_s_s_sc, /* 137 */
- Parrot_bands_p_p_s, /* 138 */
- Parrot_bands_p_p_sc, /* 139 */
- Parrot_bands_p_p_p, /* 140 */
- Parrot_bnot_i, /* 141 */
- Parrot_bnot_i_i, /* 142 */
- Parrot_bnot_p, /* 143 */
- Parrot_bnot_p_p, /* 144 */
- Parrot_bnots_s, /* 145 */
- Parrot_bnots_s_s, /* 146 */
- Parrot_bnots_s_sc, /* 147 */
- Parrot_bnots_p, /* 148 */
- Parrot_bnots_p_p, /* 149 */
- Parrot_bor_i_i, /* 150 */
- Parrot_bor_i_ic, /* 151 */
- Parrot_bor_p_i, /* 152 */
- Parrot_bor_p_ic, /* 153 */
- Parrot_bor_p_p, /* 154 */
- Parrot_bor_i_i_i, /* 155 */
- Parrot_bor_i_ic_i, /* 156 */
- Parrot_bor_i_i_ic, /* 157 */
- Parrot_bor_p_p_i, /* 158 */
- Parrot_bor_p_p_ic, /* 159 */
- Parrot_bor_p_p_p, /* 160 */
- Parrot_bors_s_s, /* 161 */
- Parrot_bors_s_sc, /* 162 */
- Parrot_bors_p_s, /* 163 */
- Parrot_bors_p_sc, /* 164 */
- Parrot_bors_p_p, /* 165 */
- Parrot_bors_s_s_s, /* 166 */
- Parrot_bors_s_sc_s, /* 167 */
- Parrot_bors_s_s_sc, /* 168 */
- Parrot_bors_p_p_s, /* 169 */
- Parrot_bors_p_p_sc, /* 170 */
- Parrot_bors_p_p_p, /* 171 */
- Parrot_shl_i_i, /* 172 */
- Parrot_shl_i_ic, /* 173 */
- Parrot_shl_p_i, /* 174 */
- Parrot_shl_p_ic, /* 175 */
- Parrot_shl_p_p, /* 176 */
- Parrot_shl_i_i_i, /* 177 */
- Parrot_shl_i_ic_i, /* 178 */
- Parrot_shl_i_i_ic, /* 179 */
- Parrot_shl_p_p_i, /* 180 */
- Parrot_shl_p_p_ic, /* 181 */
- Parrot_shl_p_p_p, /* 182 */
- Parrot_shr_i_i, /* 183 */
- Parrot_shr_i_ic, /* 184 */
- Parrot_shr_p_i, /* 185 */
- Parrot_shr_p_ic, /* 186 */
- Parrot_shr_p_p, /* 187 */
- Parrot_shr_i_i_i, /* 188 */
- Parrot_shr_i_ic_i, /* 189 */
- Parrot_shr_i_i_ic, /* 190 */
- Parrot_shr_p_p_i, /* 191 */
- Parrot_shr_p_p_ic, /* 192 */
- Parrot_shr_p_p_p, /* 193 */
- Parrot_lsr_i_i, /* 194 */
- Parrot_lsr_i_ic, /* 195 */
- Parrot_lsr_p_i, /* 196 */
- Parrot_lsr_p_ic, /* 197 */
- Parrot_lsr_p_p, /* 198 */
- Parrot_lsr_i_i_i, /* 199 */
- Parrot_lsr_i_ic_i, /* 200 */
- Parrot_lsr_i_i_ic, /* 201 */
- Parrot_lsr_p_p_i, /* 202 */
- Parrot_lsr_p_p_ic, /* 203 */
- Parrot_lsr_p_p_p, /* 204 */
- Parrot_rot_i_i_i_ic, /* 205 */
- Parrot_rot_i_ic_i_ic, /* 206 */
- Parrot_rot_i_i_ic_ic, /* 207 */
- Parrot_bxor_i_i, /* 208 */
- Parrot_bxor_i_ic, /* 209 */
- Parrot_bxor_p_i, /* 210 */
- Parrot_bxor_p_ic, /* 211 */
- Parrot_bxor_p_p, /* 212 */
- Parrot_bxor_i_i_i, /* 213 */
- Parrot_bxor_i_ic_i, /* 214 */
- Parrot_bxor_i_i_ic, /* 215 */
- Parrot_bxor_p_p_i, /* 216 */
- Parrot_bxor_p_p_ic, /* 217 */
- Parrot_bxor_p_p_p, /* 218 */
- Parrot_bxors_s_s, /* 219 */
- Parrot_bxors_s_sc, /* 220 */
- Parrot_bxors_p_s, /* 221 */
- Parrot_bxors_p_sc, /* 222 */
- Parrot_bxors_p_p, /* 223 */
- Parrot_bxors_s_s_s, /* 224 */
- Parrot_bxors_s_sc_s, /* 225 */
- Parrot_bxors_s_s_sc, /* 226 */
- Parrot_bxors_p_p_s, /* 227 */
- Parrot_bxors_p_p_sc, /* 228 */
- Parrot_bxors_p_p_p, /* 229 */
- Parrot_eq_i_i_ic, /* 230 */
- Parrot_eq_ic_i_ic, /* 231 */
- Parrot_eq_i_ic_ic, /* 232 */
- Parrot_eq_n_n_ic, /* 233 */
- Parrot_eq_nc_n_ic, /* 234 */
- Parrot_eq_n_nc_ic, /* 235 */
- Parrot_eq_s_s_ic, /* 236 */
- Parrot_eq_sc_s_ic, /* 237 */
- Parrot_eq_s_sc_ic, /* 238 */
- Parrot_eq_p_p_ic, /* 239 */
- Parrot_eq_p_i_ic, /* 240 */
- Parrot_eq_p_ic_ic, /* 241 */
- Parrot_eq_p_n_ic, /* 242 */
- Parrot_eq_p_nc_ic, /* 243 */
- Parrot_eq_p_s_ic, /* 244 */
- Parrot_eq_p_sc_ic, /* 245 */
- Parrot_eq_str_p_p_ic, /* 246 */
- Parrot_eq_num_p_p_ic, /* 247 */
- Parrot_eq_addr_s_s_ic, /* 248 */
- Parrot_eq_addr_sc_s_ic, /* 249 */
- Parrot_eq_addr_s_sc_ic, /* 250 */
- Parrot_eq_addr_sc_sc_ic, /* 251 */
- Parrot_eq_addr_p_p_ic, /* 252 */
- Parrot_ne_i_i_ic, /* 253 */
- Parrot_ne_ic_i_ic, /* 254 */
- Parrot_ne_i_ic_ic, /* 255 */
- Parrot_ne_n_n_ic, /* 256 */
- Parrot_ne_nc_n_ic, /* 257 */
- Parrot_ne_n_nc_ic, /* 258 */
- Parrot_ne_s_s_ic, /* 259 */
- Parrot_ne_sc_s_ic, /* 260 */
- Parrot_ne_s_sc_ic, /* 261 */
- Parrot_ne_p_p_ic, /* 262 */
- Parrot_ne_p_i_ic, /* 263 */
- Parrot_ne_p_ic_ic, /* 264 */
- Parrot_ne_p_n_ic, /* 265 */
- Parrot_ne_p_nc_ic, /* 266 */
- Parrot_ne_p_s_ic, /* 267 */
- Parrot_ne_p_sc_ic, /* 268 */
- Parrot_ne_str_p_p_ic, /* 269 */
- Parrot_ne_num_p_p_ic, /* 270 */
- Parrot_ne_addr_s_s_ic, /* 271 */
- Parrot_ne_addr_sc_s_ic, /* 272 */
- Parrot_ne_addr_s_sc_ic, /* 273 */
- Parrot_ne_addr_sc_sc_ic, /* 274 */
- Parrot_ne_addr_p_p_ic, /* 275 */
- Parrot_lt_i_i_ic, /* 276 */
- Parrot_lt_ic_i_ic, /* 277 */
- Parrot_lt_i_ic_ic, /* 278 */
- Parrot_lt_n_n_ic, /* 279 */
- Parrot_lt_nc_n_ic, /* 280 */
- Parrot_lt_n_nc_ic, /* 281 */
- Parrot_lt_s_s_ic, /* 282 */
- Parrot_lt_sc_s_ic, /* 283 */
- Parrot_lt_s_sc_ic, /* 284 */
- Parrot_lt_p_p_ic, /* 285 */
- Parrot_lt_p_i_ic, /* 286 */
- Parrot_lt_p_ic_ic, /* 287 */
- Parrot_lt_p_n_ic, /* 288 */
- Parrot_lt_p_nc_ic, /* 289 */
- Parrot_lt_p_s_ic, /* 290 */
- Parrot_lt_p_sc_ic, /* 291 */
- Parrot_lt_str_p_p_ic, /* 292 */
- Parrot_lt_num_p_p_ic, /* 293 */
- Parrot_le_i_i_ic, /* 294 */
- Parrot_le_ic_i_ic, /* 295 */
- Parrot_le_i_ic_ic, /* 296 */
- Parrot_le_n_n_ic, /* 297 */
- Parrot_le_nc_n_ic, /* 298 */
- Parrot_le_n_nc_ic, /* 299 */
- Parrot_le_s_s_ic, /* 300 */
- Parrot_le_sc_s_ic, /* 301 */
- Parrot_le_s_sc_ic, /* 302 */
- Parrot_le_p_p_ic, /* 303 */
- Parrot_le_p_i_ic, /* 304 */
- Parrot_le_p_ic_ic, /* 305 */
- Parrot_le_p_n_ic, /* 306 */
- Parrot_le_p_nc_ic, /* 307 */
- Parrot_le_p_s_ic, /* 308 */
- Parrot_le_p_sc_ic, /* 309 */
- Parrot_le_str_p_p_ic, /* 310 */
- Parrot_le_num_p_p_ic, /* 311 */
- Parrot_gt_p_p_ic, /* 312 */
- Parrot_gt_p_i_ic, /* 313 */
- Parrot_gt_p_ic_ic, /* 314 */
- Parrot_gt_p_n_ic, /* 315 */
- Parrot_gt_p_nc_ic, /* 316 */
- Parrot_gt_p_s_ic, /* 317 */
- Parrot_gt_p_sc_ic, /* 318 */
- Parrot_gt_str_p_p_ic, /* 319 */
- Parrot_gt_num_p_p_ic, /* 320 */
- Parrot_ge_p_p_ic, /* 321 */
- Parrot_ge_p_i_ic, /* 322 */
- Parrot_ge_p_ic_ic, /* 323 */
- Parrot_ge_p_n_ic, /* 324 */
- Parrot_ge_p_nc_ic, /* 325 */
- Parrot_ge_p_s_ic, /* 326 */
- Parrot_ge_p_sc_ic, /* 327 */
- Parrot_ge_str_p_p_ic, /* 328 */
- Parrot_ge_num_p_p_ic, /* 329 */
- Parrot_if_null_p_ic, /* 330 */
- Parrot_if_null_s_ic, /* 331 */
- Parrot_unless_null_p_ic, /* 332 */
- Parrot_unless_null_s_ic, /* 333 */
- Parrot_cmp_i_i_i, /* 334 */
- Parrot_cmp_i_ic_i, /* 335 */
- Parrot_cmp_i_i_ic, /* 336 */
- Parrot_cmp_i_n_n, /* 337 */
- Parrot_cmp_i_nc_n, /* 338 */
- Parrot_cmp_i_n_nc, /* 339 */
- Parrot_cmp_i_s_s, /* 340 */
- Parrot_cmp_i_sc_s, /* 341 */
- Parrot_cmp_i_s_sc, /* 342 */
- Parrot_cmp_i_p_p, /* 343 */
- Parrot_cmp_i_p_i, /* 344 */
- Parrot_cmp_i_p_ic, /* 345 */
- Parrot_cmp_i_p_n, /* 346 */
- Parrot_cmp_i_p_nc, /* 347 */
- Parrot_cmp_i_p_s, /* 348 */
- Parrot_cmp_i_p_sc, /* 349 */
- Parrot_cmp_str_i_p_p, /* 350 */
- Parrot_cmp_num_i_p_p, /* 351 */
- Parrot_cmp_pmc_p_p_p, /* 352 */
- Parrot_issame_i_p_p, /* 353 */
- Parrot_issame_i_s_s, /* 354 */
- Parrot_issame_i_sc_s, /* 355 */
- Parrot_issame_i_s_sc, /* 356 */
- Parrot_issame_i_sc_sc, /* 357 */
- Parrot_isntsame_i_p_p, /* 358 */
- Parrot_isntsame_i_s_s, /* 359 */
- Parrot_isntsame_i_sc_s, /* 360 */
- Parrot_isntsame_i_s_sc, /* 361 */
- Parrot_isntsame_i_sc_sc, /* 362 */
- Parrot_istrue_i_p, /* 363 */
- Parrot_isfalse_i_p, /* 364 */
- Parrot_isnull_i_p, /* 365 */
- Parrot_isnull_i_pc, /* 366 */
- Parrot_isnull_i_s, /* 367 */
- Parrot_isnull_i_sc, /* 368 */
- Parrot_isgt_i_p_p, /* 369 */
- Parrot_isge_i_p_p, /* 370 */
- Parrot_isle_i_i_i, /* 371 */
- Parrot_isle_i_ic_i, /* 372 */
- Parrot_isle_i_i_ic, /* 373 */
- Parrot_isle_i_n_n, /* 374 */
- Parrot_isle_i_nc_n, /* 375 */
- Parrot_isle_i_n_nc, /* 376 */
- Parrot_isle_i_s_s, /* 377 */
- Parrot_isle_i_sc_s, /* 378 */
- Parrot_isle_i_s_sc, /* 379 */
- Parrot_isle_i_p_p, /* 380 */
- Parrot_islt_i_i_i, /* 381 */
- Parrot_islt_i_ic_i, /* 382 */
- Parrot_islt_i_i_ic, /* 383 */
- Parrot_islt_i_n_n, /* 384 */
- Parrot_islt_i_nc_n, /* 385 */
- Parrot_islt_i_n_nc, /* 386 */
- Parrot_islt_i_s_s, /* 387 */
- Parrot_islt_i_sc_s, /* 388 */
- Parrot_islt_i_s_sc, /* 389 */
- Parrot_islt_i_p_p, /* 390 */
- Parrot_iseq_i_i_i, /* 391 */
- Parrot_iseq_i_ic_i, /* 392 */
- Parrot_iseq_i_i_ic, /* 393 */
- Parrot_iseq_i_n_n, /* 394 */
- Parrot_iseq_i_nc_n, /* 395 */
- Parrot_iseq_i_n_nc, /* 396 */
- Parrot_iseq_i_s_s, /* 397 */
- Parrot_iseq_i_sc_s, /* 398 */
- Parrot_iseq_i_s_sc, /* 399 */
- Parrot_iseq_i_p_p, /* 400 */
- Parrot_isne_i_i_i, /* 401 */
- Parrot_isne_i_ic_i, /* 402 */
- Parrot_isne_i_i_ic, /* 403 */
- Parrot_isne_i_n_n, /* 404 */
- Parrot_isne_i_nc_n, /* 405 */
- Parrot_isne_i_n_nc, /* 406 */
- Parrot_isne_i_s_s, /* 407 */
- Parrot_isne_i_sc_s, /* 408 */
- Parrot_isne_i_s_sc, /* 409 */
- Parrot_isne_i_p_p, /* 410 */
- Parrot_and_i_i_i, /* 411 */
- Parrot_and_i_ic_i, /* 412 */
- Parrot_and_i_i_ic, /* 413 */
- Parrot_and_p_p_p, /* 414 */
- Parrot_not_i, /* 415 */
- Parrot_not_i_i, /* 416 */
- Parrot_not_p, /* 417 */
- Parrot_not_p_p, /* 418 */
- Parrot_or_i_i_i, /* 419 */
- Parrot_or_i_ic_i, /* 420 */
- Parrot_or_i_i_ic, /* 421 */
- Parrot_or_p_p_p, /* 422 */
- Parrot_xor_i_i_i, /* 423 */
- Parrot_xor_i_ic_i, /* 424 */
- Parrot_xor_i_i_ic, /* 425 */
- Parrot_xor_p_p_p, /* 426 */
- Parrot_debug_init, /* 427 */
- Parrot_debug_load_sc, /* 428 */
- Parrot_debug_break, /* 429 */
- Parrot_debug_print, /* 430 */
- Parrot_backtrace, /* 431 */
- Parrot_getline_i, /* 432 */
- Parrot_getfile_s, /* 433 */
- Parrot_set_label_p_ic, /* 434 */
- Parrot_get_label_i_p, /* 435 */
- Parrot_close_p, /* 436 */
- Parrot_fdopen_p_i_s, /* 437 */
- Parrot_fdopen_p_ic_s, /* 438 */
- Parrot_fdopen_p_i_sc, /* 439 */
- Parrot_fdopen_p_ic_sc, /* 440 */
- Parrot_getstdin_p, /* 441 */
- Parrot_getstdout_p, /* 442 */
- Parrot_getstderr_p, /* 443 */
- Parrot_setstdin_p, /* 444 */
- Parrot_setstdout_p, /* 445 */
- Parrot_setstderr_p, /* 446 */
- Parrot_open_p_s_s, /* 447 */
- Parrot_open_p_sc_s, /* 448 */
- Parrot_open_p_s_sc, /* 449 */
- Parrot_open_p_sc_sc, /* 450 */
- Parrot_open_p_s, /* 451 */
- Parrot_open_p_sc, /* 452 */
- Parrot_print_i, /* 453 */
- Parrot_print_ic, /* 454 */
- Parrot_print_n, /* 455 */
- Parrot_print_nc, /* 456 */
- Parrot_print_s, /* 457 */
- Parrot_print_sc, /* 458 */
- Parrot_print_p, /* 459 */
- Parrot_say_i, /* 460 */
- Parrot_say_ic, /* 461 */
- Parrot_say_n, /* 462 */
- Parrot_say_nc, /* 463 */
- Parrot_say_s, /* 464 */
- Parrot_say_sc, /* 465 */
- Parrot_say_p, /* 466 */
- Parrot_printerr_i, /* 467 */
- Parrot_printerr_ic, /* 468 */
- Parrot_printerr_n, /* 469 */
- Parrot_printerr_nc, /* 470 */
- Parrot_printerr_s, /* 471 */
- Parrot_printerr_sc, /* 472 */
- Parrot_printerr_p, /* 473 */
- Parrot_print_p_i, /* 474 */
- Parrot_print_p_ic, /* 475 */
- Parrot_print_p_n, /* 476 */
- Parrot_print_p_nc, /* 477 */
- Parrot_print_p_s, /* 478 */
- Parrot_print_p_sc, /* 479 */
- Parrot_print_p_p, /* 480 */
- Parrot_read_s_i, /* 481 */
- Parrot_read_s_ic, /* 482 */
- Parrot_read_s_p_i, /* 483 */
- Parrot_read_s_p_ic, /* 484 */
- Parrot_readline_s_p, /* 485 */
- Parrot_peek_s, /* 486 */
- Parrot_peek_s_p, /* 487 */
- Parrot_stat_i_s_i, /* 488 */
- Parrot_stat_i_sc_i, /* 489 */
- Parrot_stat_i_s_ic, /* 490 */
- Parrot_stat_i_sc_ic, /* 491 */
- Parrot_stat_i_i_i, /* 492 */
- Parrot_stat_i_ic_i, /* 493 */
- Parrot_stat_i_i_ic, /* 494 */
- Parrot_stat_i_ic_ic, /* 495 */
- Parrot_seek_p_i_i, /* 496 */
- Parrot_seek_p_ic_i, /* 497 */
- Parrot_seek_p_i_ic, /* 498 */
- Parrot_seek_p_ic_ic, /* 499 */
- Parrot_seek_p_i_i_i, /* 500 */
- Parrot_seek_p_ic_i_i, /* 501 */
- Parrot_seek_p_i_ic_i, /* 502 */
- Parrot_seek_p_ic_ic_i, /* 503 */
- Parrot_seek_p_i_i_ic, /* 504 */
- Parrot_seek_p_ic_i_ic, /* 505 */
- Parrot_seek_p_i_ic_ic, /* 506 */
- Parrot_seek_p_ic_ic_ic, /* 507 */
- Parrot_tell_i_p, /* 508 */
- Parrot_tell_i_i_p, /* 509 */
- Parrot_abs_i, /* 510 */
- Parrot_abs_n, /* 511 */
- Parrot_abs_i_i, /* 512 */
- Parrot_abs_n_n, /* 513 */
- Parrot_abs_p, /* 514 */
- Parrot_abs_p_p, /* 515 */
- Parrot_add_i_i, /* 516 */
- Parrot_add_i_ic, /* 517 */
- Parrot_add_n_n, /* 518 */
- Parrot_add_n_nc, /* 519 */
- Parrot_add_p_p, /* 520 */
- Parrot_add_p_i, /* 521 */
- Parrot_add_p_ic, /* 522 */
- Parrot_add_p_n, /* 523 */
- Parrot_add_p_nc, /* 524 */
- Parrot_add_i_i_i, /* 525 */
- Parrot_add_i_ic_i, /* 526 */
- Parrot_add_i_i_ic, /* 527 */
- Parrot_add_n_n_n, /* 528 */
- Parrot_add_n_nc_n, /* 529 */
- Parrot_add_n_n_nc, /* 530 */
- Parrot_add_p_p_p, /* 531 */
- Parrot_add_p_p_i, /* 532 */
- Parrot_add_p_p_ic, /* 533 */
- Parrot_add_p_p_n, /* 534 */
- Parrot_add_p_p_nc, /* 535 */
- Parrot_cmod_i_i_i, /* 536 */
- Parrot_cmod_i_ic_i, /* 537 */
- Parrot_cmod_i_i_ic, /* 538 */
- Parrot_cmod_p_p_i, /* 539 */
- Parrot_cmod_p_p_ic, /* 540 */
- Parrot_cmod_p_p_p, /* 541 */
- Parrot_cmod_n_n_n, /* 542 */
- Parrot_cmod_n_nc_n, /* 543 */
- Parrot_cmod_n_n_nc, /* 544 */
- Parrot_cmod_p_p_n, /* 545 */
- Parrot_cmod_p_p_nc, /* 546 */
- Parrot_dec_i, /* 547 */
- Parrot_dec_n, /* 548 */
- Parrot_dec_p, /* 549 */
- Parrot_div_i_i, /* 550 */
- Parrot_div_i_ic, /* 551 */
- Parrot_div_n_n, /* 552 */
- Parrot_div_n_nc, /* 553 */
- Parrot_div_p_p, /* 554 */
- Parrot_div_p_i, /* 555 */
- Parrot_div_p_ic, /* 556 */
- Parrot_div_p_n, /* 557 */
- Parrot_div_p_nc, /* 558 */
- Parrot_div_i_i_i, /* 559 */
- Parrot_div_i_ic_i, /* 560 */
- Parrot_div_i_i_ic, /* 561 */
- Parrot_div_i_ic_ic, /* 562 */
- Parrot_div_n_n_n, /* 563 */
- Parrot_div_n_nc_n, /* 564 */
- Parrot_div_n_n_nc, /* 565 */
- Parrot_div_n_nc_nc, /* 566 */
- Parrot_div_p_p_p, /* 567 */
- Parrot_div_p_p_i, /* 568 */
- Parrot_div_p_p_ic, /* 569 */
- Parrot_div_p_p_n, /* 570 */
- Parrot_div_p_p_nc, /* 571 */
- Parrot_fdiv_i_i, /* 572 */
- Parrot_fdiv_i_ic, /* 573 */
- Parrot_fdiv_n_n, /* 574 */
- Parrot_fdiv_n_nc, /* 575 */
- Parrot_fdiv_p_p, /* 576 */
- Parrot_fdiv_p_i, /* 577 */
- Parrot_fdiv_p_ic, /* 578 */
- Parrot_fdiv_p_n, /* 579 */
- Parrot_fdiv_p_nc, /* 580 */
- Parrot_fdiv_i_i_i, /* 581 */
- Parrot_fdiv_i_ic_i, /* 582 */
- Parrot_fdiv_i_i_ic, /* 583 */
- Parrot_fdiv_n_n_n, /* 584 */
- Parrot_fdiv_n_nc_n, /* 585 */
- Parrot_fdiv_n_n_nc, /* 586 */
- Parrot_fdiv_p_p_p, /* 587 */
- Parrot_fdiv_p_p_i, /* 588 */
- Parrot_fdiv_p_p_ic, /* 589 */
- Parrot_fdiv_p_p_n, /* 590 */
- Parrot_fdiv_p_p_nc, /* 591 */
- Parrot_ceil_n, /* 592 */
- Parrot_ceil_i_n, /* 593 */
- Parrot_ceil_n_n, /* 594 */
- Parrot_floor_n, /* 595 */
- Parrot_floor_i_n, /* 596 */
- Parrot_floor_n_n, /* 597 */
- Parrot_inc_i, /* 598 */
- Parrot_inc_n, /* 599 */
- Parrot_inc_p, /* 600 */
- Parrot_mod_i_i, /* 601 */
- Parrot_mod_i_ic, /* 602 */
- Parrot_mod_n_n, /* 603 */
- Parrot_mod_n_nc, /* 604 */
- Parrot_mod_p_p, /* 605 */
- Parrot_mod_p_i, /* 606 */
- Parrot_mod_p_ic, /* 607 */
- Parrot_mod_p_n, /* 608 */
- Parrot_mod_p_nc, /* 609 */
- Parrot_mod_i_i_i, /* 610 */
- Parrot_mod_i_ic_i, /* 611 */
- Parrot_mod_i_i_ic, /* 612 */
- Parrot_mod_n_n_n, /* 613 */
- Parrot_mod_n_nc_n, /* 614 */
- Parrot_mod_n_n_nc, /* 615 */
- Parrot_mod_p_p_p, /* 616 */
- Parrot_mod_p_p_i, /* 617 */
- Parrot_mod_p_p_ic, /* 618 */
- Parrot_mod_p_p_n, /* 619 */
- Parrot_mod_p_p_nc, /* 620 */
- Parrot_mul_i_i, /* 621 */
- Parrot_mul_i_ic, /* 622 */
- Parrot_mul_n_n, /* 623 */
- Parrot_mul_n_nc, /* 624 */
- Parrot_mul_p_p, /* 625 */
- Parrot_mul_p_i, /* 626 */
- Parrot_mul_p_ic, /* 627 */
- Parrot_mul_p_n, /* 628 */
- Parrot_mul_p_nc, /* 629 */
- Parrot_mul_i_i_i, /* 630 */
- Parrot_mul_i_ic_i, /* 631 */
- Parrot_mul_i_i_ic, /* 632 */
- Parrot_mul_n_n_n, /* 633 */
- Parrot_mul_n_nc_n, /* 634 */
- Parrot_mul_n_n_nc, /* 635 */
- Parrot_mul_p_p_p, /* 636 */
- Parrot_mul_p_p_i, /* 637 */
- Parrot_mul_p_p_ic, /* 638 */
- Parrot_mul_p_p_n, /* 639 */
- Parrot_mul_p_p_nc, /* 640 */
- Parrot_neg_i, /* 641 */
- Parrot_neg_n, /* 642 */
- Parrot_neg_p, /* 643 */
- Parrot_neg_i_i, /* 644 */
- Parrot_neg_n_n, /* 645 */
- Parrot_neg_p_p, /* 646 */
- Parrot_pow_n_n_n, /* 647 */
- Parrot_pow_n_nc_n, /* 648 */
- Parrot_pow_n_n_nc, /* 649 */
- Parrot_pow_p_p_p, /* 650 */
- Parrot_pow_p_p_i, /* 651 */
- Parrot_pow_p_p_ic, /* 652 */
- Parrot_pow_p_p_n, /* 653 */
- Parrot_pow_p_p_nc, /* 654 */
- Parrot_pow_n_n_i, /* 655 */
- Parrot_pow_n_nc_i, /* 656 */
- Parrot_pow_n_n_ic, /* 657 */
- Parrot_pow_n_nc_ic, /* 658 */
- Parrot_sub_i_i, /* 659 */
- Parrot_sub_i_ic, /* 660 */
- Parrot_sub_n_n, /* 661 */
- Parrot_sub_n_nc, /* 662 */
- Parrot_sub_p_p, /* 663 */
- Parrot_sub_p_i, /* 664 */
- Parrot_sub_p_ic, /* 665 */
- Parrot_sub_p_n, /* 666 */
- Parrot_sub_p_nc, /* 667 */
- Parrot_sub_i_i_i, /* 668 */
- Parrot_sub_i_ic_i, /* 669 */
- Parrot_sub_i_i_ic, /* 670 */
- Parrot_sub_n_n_n, /* 671 */
- Parrot_sub_n_nc_n, /* 672 */
- Parrot_sub_n_n_nc, /* 673 */
- Parrot_sub_p_p_p, /* 674 */
- Parrot_sub_p_p_i, /* 675 */
- Parrot_sub_p_p_ic, /* 676 */
- Parrot_sub_p_p_n, /* 677 */
- Parrot_sub_p_p_nc, /* 678 */
- Parrot_sqrt_n_n, /* 679 */
- Parrot_acos_n_n, /* 680 */
- Parrot_asec_n_n, /* 681 */
- Parrot_asin_n_n, /* 682 */
- Parrot_atan_n_n, /* 683 */
- Parrot_atan_n_n_n, /* 684 */
- Parrot_atan_n_nc_n, /* 685 */
- Parrot_atan_n_n_nc, /* 686 */
- Parrot_cos_n_n, /* 687 */
- Parrot_cosh_n_n, /* 688 */
- Parrot_exp_n_n, /* 689 */
- Parrot_ln_n_n, /* 690 */
- Parrot_log10_n_n, /* 691 */
- Parrot_log2_n_n, /* 692 */
- Parrot_sec_n_n, /* 693 */
- Parrot_sech_n_n, /* 694 */
- Parrot_sin_n_n, /* 695 */
- Parrot_sinh_n_n, /* 696 */
- Parrot_tan_n_n, /* 697 */
- Parrot_tanh_n_n, /* 698 */
- Parrot_gcd_i_i_i, /* 699 */
- Parrot_gcd_i_ic_i, /* 700 */
- Parrot_gcd_i_i_ic, /* 701 */
- Parrot_lcm_i_i_i, /* 702 */
- Parrot_lcm_i_ic_i, /* 703 */
- Parrot_lcm_i_i_ic, /* 704 */
- Parrot_fact_i_i, /* 705 */
- Parrot_fact_n_i, /* 706 */
- Parrot_callmethodcc_p_s, /* 707 */
- Parrot_callmethodcc_p_sc, /* 708 */
- Parrot_callmethodcc_p_p, /* 709 */
- Parrot_callmethod_p_s_p, /* 710 */
- Parrot_callmethod_p_sc_p, /* 711 */
- Parrot_callmethod_p_p_p, /* 712 */
- Parrot_tailcallmethod_p_s, /* 713 */
- Parrot_tailcallmethod_p_sc, /* 714 */
- Parrot_tailcallmethod_p_p, /* 715 */
- Parrot_addmethod_p_s_p, /* 716 */
- Parrot_addmethod_p_sc_p, /* 717 */
- Parrot_can_i_p_s, /* 718 */
- Parrot_can_i_p_sc, /* 719 */
- Parrot_does_i_p_s, /* 720 */
- Parrot_does_i_p_sc, /* 721 */
- Parrot_does_i_p_p, /* 722 */
- Parrot_does_i_p_pc, /* 723 */
- Parrot_isa_i_p_s, /* 724 */
- Parrot_isa_i_p_sc, /* 725 */
- Parrot_isa_i_p_p, /* 726 */
- Parrot_isa_i_p_pc, /* 727 */
- Parrot_newclass_p_s, /* 728 */
- Parrot_newclass_p_sc, /* 729 */
- Parrot_newclass_p_p, /* 730 */
- Parrot_newclass_p_pc, /* 731 */
- Parrot_subclass_p_p, /* 732 */
- Parrot_subclass_p_pc, /* 733 */
- Parrot_subclass_p_p_s, /* 734 */
- Parrot_subclass_p_pc_s, /* 735 */
- Parrot_subclass_p_p_sc, /* 736 */
- Parrot_subclass_p_pc_sc, /* 737 */
- Parrot_subclass_p_p_p, /* 738 */
- Parrot_subclass_p_pc_p, /* 739 */
- Parrot_subclass_p_p_pc, /* 740 */
- Parrot_subclass_p_pc_pc, /* 741 */
- Parrot_subclass_p_s, /* 742 */
- Parrot_subclass_p_sc, /* 743 */
- Parrot_subclass_p_s_s, /* 744 */
- Parrot_subclass_p_sc_s, /* 745 */
- Parrot_subclass_p_s_sc, /* 746 */
- Parrot_subclass_p_sc_sc, /* 747 */
- Parrot_subclass_p_s_p, /* 748 */
- Parrot_subclass_p_sc_p, /* 749 */
- Parrot_subclass_p_s_pc, /* 750 */
- Parrot_subclass_p_sc_pc, /* 751 */
- Parrot_get_class_p_s, /* 752 */
- Parrot_get_class_p_sc, /* 753 */
- Parrot_get_class_p_p, /* 754 */
- Parrot_get_class_p_pc, /* 755 */
- Parrot_class_p_p, /* 756 */
- Parrot_addparent_p_p, /* 757 */
- Parrot_removeparent_p_p, /* 758 */
- Parrot_addrole_p_p, /* 759 */
- Parrot_addattribute_p_s, /* 760 */
- Parrot_addattribute_p_sc, /* 761 */
- Parrot_removeattribute_p_s, /* 762 */
- Parrot_removeattribute_p_sc, /* 763 */
- Parrot_getattribute_p_p_s, /* 764 */
- Parrot_getattribute_p_p_sc, /* 765 */
- Parrot_getattribute_p_p_p_s, /* 766 */
- Parrot_getattribute_p_p_pc_s, /* 767 */
- Parrot_getattribute_p_p_p_sc, /* 768 */
- Parrot_getattribute_p_p_pc_sc, /* 769 */
- Parrot_setattribute_p_s_p, /* 770 */
- Parrot_setattribute_p_sc_p, /* 771 */
- Parrot_setattribute_p_p_s_p, /* 772 */
- Parrot_setattribute_p_pc_s_p, /* 773 */
- Parrot_setattribute_p_p_sc_p, /* 774 */
- Parrot_setattribute_p_pc_sc_p, /* 775 */
- Parrot_inspect_p_p, /* 776 */
- Parrot_inspect_p_pc, /* 777 */
- Parrot_inspect_p_p_s, /* 778 */
- Parrot_inspect_p_pc_s, /* 779 */
- Parrot_inspect_p_p_sc, /* 780 */
- Parrot_inspect_p_pc_sc, /* 781 */
- Parrot_new_p_s, /* 782 */
- Parrot_new_p_sc, /* 783 */
- Parrot_new_p_s_p, /* 784 */
- Parrot_new_p_sc_p, /* 785 */
- Parrot_new_p_s_pc, /* 786 */
- Parrot_new_p_sc_pc, /* 787 */
- Parrot_new_p_p, /* 788 */
- Parrot_new_p_pc, /* 789 */
- Parrot_new_p_p_p, /* 790 */
- Parrot_new_p_pc_p, /* 791 */
- Parrot_new_p_p_pc, /* 792 */
- Parrot_new_p_pc_pc, /* 793 */
- Parrot_root_new_p_p, /* 794 */
- Parrot_root_new_p_pc, /* 795 */
- Parrot_root_new_p_p_p, /* 796 */
- Parrot_root_new_p_pc_p, /* 797 */
- Parrot_root_new_p_p_pc, /* 798 */
- Parrot_root_new_p_pc_pc, /* 799 */
- Parrot_typeof_s_p, /* 800 */
- Parrot_typeof_p_p, /* 801 */
- Parrot_get_repr_s_p, /* 802 */
- Parrot_find_method_p_p_s, /* 803 */
- Parrot_find_method_p_p_sc, /* 804 */
- Parrot_defined_i_p, /* 805 */
- Parrot_defined_i_p_ki, /* 806 */
- Parrot_defined_i_p_kic, /* 807 */
- Parrot_defined_i_p_k, /* 808 */
- Parrot_defined_i_p_kc, /* 809 */
- Parrot_exists_i_p_ki, /* 810 */
- Parrot_exists_i_p_kic, /* 811 */
- Parrot_exists_i_p_k, /* 812 */
- Parrot_exists_i_p_kc, /* 813 */
- Parrot_delete_p_k, /* 814 */
- Parrot_delete_p_kc, /* 815 */
- Parrot_delete_p_ki, /* 816 */
- Parrot_delete_p_kic, /* 817 */
- Parrot_elements_i_p, /* 818 */
- Parrot_push_p_i, /* 819 */
- Parrot_push_p_ic, /* 820 */
- Parrot_push_p_n, /* 821 */
- Parrot_push_p_nc, /* 822 */
- Parrot_push_p_s, /* 823 */
- Parrot_push_p_sc, /* 824 */
- Parrot_push_p_p, /* 825 */
- Parrot_pop_i_p, /* 826 */
- Parrot_pop_n_p, /* 827 */
- Parrot_pop_s_p, /* 828 */
- Parrot_pop_p_p, /* 829 */
- Parrot_unshift_p_i, /* 830 */
- Parrot_unshift_p_ic, /* 831 */
- Parrot_unshift_p_n, /* 832 */
- Parrot_unshift_p_nc, /* 833 */
- Parrot_unshift_p_s, /* 834 */
- Parrot_unshift_p_sc, /* 835 */
- Parrot_unshift_p_p, /* 836 */
- Parrot_shift_i_p, /* 837 */
- Parrot_shift_n_p, /* 838 */
- Parrot_shift_s_p, /* 839 */
- Parrot_shift_p_p, /* 840 */
- Parrot_splice_p_p_i_i, /* 841 */
- Parrot_splice_p_p_ic_i, /* 842 */
- Parrot_splice_p_p_i_ic, /* 843 */
- Parrot_splice_p_p_ic_ic, /* 844 */
- Parrot_setprop_p_s_p, /* 845 */
- Parrot_setprop_p_sc_p, /* 846 */
- Parrot_getprop_p_s_p, /* 847 */
- Parrot_getprop_p_sc_p, /* 848 */
- Parrot_delprop_p_s, /* 849 */
- Parrot_delprop_p_sc, /* 850 */
- Parrot_prophash_p_p, /* 851 */
- Parrot_freeze_s_p, /* 852 */
- Parrot_thaw_p_s, /* 853 */
- Parrot_thaw_p_sc, /* 854 */
- Parrot_add_multi_s_s_p, /* 855 */
- Parrot_add_multi_sc_s_p, /* 856 */
- Parrot_add_multi_s_sc_p, /* 857 */
- Parrot_add_multi_sc_sc_p, /* 858 */
- Parrot_find_multi_p_s_s, /* 859 */
- Parrot_find_multi_p_sc_s, /* 860 */
- Parrot_find_multi_p_s_sc, /* 861 */
- Parrot_find_multi_p_sc_sc, /* 862 */
- Parrot_register_p, /* 863 */
- Parrot_unregister_p, /* 864 */
- Parrot_box_p_i, /* 865 */
- Parrot_box_p_ic, /* 866 */
- Parrot_box_p_n, /* 867 */
- Parrot_box_p_nc, /* 868 */
- Parrot_box_p_s, /* 869 */
- Parrot_box_p_sc, /* 870 */
- Parrot_iter_p_p, /* 871 */
- Parrot_morph_p_p, /* 872 */
- Parrot_morph_p_pc, /* 873 */
- Parrot_clone_s_s, /* 874 */
- Parrot_clone_s_sc, /* 875 */
- Parrot_exchange_i_i, /* 876 */
- Parrot_exchange_p_p, /* 877 */
- Parrot_exchange_n_n, /* 878 */
- Parrot_exchange_s_s, /* 879 */
- Parrot_set_i_i, /* 880 */
- Parrot_set_i_ic, /* 881 */
- Parrot_set_i_n, /* 882 */
- Parrot_set_i_nc, /* 883 */
- Parrot_set_i_s, /* 884 */
- Parrot_set_i_sc, /* 885 */
- Parrot_set_n_n, /* 886 */
- Parrot_set_n_nc, /* 887 */
- Parrot_set_n_i, /* 888 */
- Parrot_set_n_ic, /* 889 */
- Parrot_set_n_s, /* 890 */
- Parrot_set_n_sc, /* 891 */
- Parrot_set_n_p, /* 892 */
- Parrot_set_s_p, /* 893 */
- Parrot_set_s_s, /* 894 */
- Parrot_set_s_sc, /* 895 */
- Parrot_set_s_i, /* 896 */
- Parrot_set_s_ic, /* 897 */
- Parrot_set_s_n, /* 898 */
- Parrot_set_s_nc, /* 899 */
- Parrot_set_p_pc, /* 900 */
- Parrot_set_p_p, /* 901 */
- Parrot_set_p_i, /* 902 */
- Parrot_set_p_ic, /* 903 */
- Parrot_set_p_n, /* 904 */
- Parrot_set_p_nc, /* 905 */
- Parrot_set_p_s, /* 906 */
- Parrot_set_p_sc, /* 907 */
- Parrot_set_i_p, /* 908 */
- Parrot_assign_p_p, /* 909 */
- Parrot_assign_p_i, /* 910 */
- Parrot_assign_p_ic, /* 911 */
- Parrot_assign_p_n, /* 912 */
- Parrot_assign_p_nc, /* 913 */
- Parrot_assign_p_s, /* 914 */
- Parrot_assign_p_sc, /* 915 */
- Parrot_assign_s_s, /* 916 */
- Parrot_assign_s_sc, /* 917 */
- Parrot_setref_p_p, /* 918 */
- Parrot_deref_p_p, /* 919 */
- Parrot_setp_ind_i_p, /* 920 */
- Parrot_setp_ind_ic_p, /* 921 */
- Parrot_setn_ind_i_n, /* 922 */
- Parrot_setn_ind_ic_n, /* 923 */
- Parrot_setn_ind_i_nc, /* 924 */
- Parrot_setn_ind_ic_nc, /* 925 */
- Parrot_sets_ind_i_s, /* 926 */
- Parrot_sets_ind_ic_s, /* 927 */
- Parrot_sets_ind_i_sc, /* 928 */
- Parrot_sets_ind_ic_sc, /* 929 */
- Parrot_seti_ind_i_i, /* 930 */
- Parrot_seti_ind_ic_i, /* 931 */
- Parrot_seti_ind_i_ic, /* 932 */
- Parrot_seti_ind_ic_ic, /* 933 */
- Parrot_set_p_ki_i, /* 934 */
- Parrot_set_p_kic_i, /* 935 */
- Parrot_set_p_ki_ic, /* 936 */
- Parrot_set_p_kic_ic, /* 937 */
- Parrot_set_p_ki_n, /* 938 */
- Parrot_set_p_kic_n, /* 939 */
- Parrot_set_p_ki_nc, /* 940 */
- Parrot_set_p_kic_nc, /* 941 */
- Parrot_set_p_ki_s, /* 942 */
- Parrot_set_p_kic_s, /* 943 */
- Parrot_set_p_ki_sc, /* 944 */
- Parrot_set_p_kic_sc, /* 945 */
- Parrot_set_p_ki_p, /* 946 */
- Parrot_set_p_kic_p, /* 947 */
- Parrot_set_i_p_ki, /* 948 */
- Parrot_set_i_p_kic, /* 949 */
- Parrot_set_n_p_ki, /* 950 */
- Parrot_set_n_p_kic, /* 951 */
- Parrot_set_s_p_ki, /* 952 */
- Parrot_set_s_p_kic, /* 953 */
- Parrot_set_p_p_ki, /* 954 */
- Parrot_set_p_p_kic, /* 955 */
- Parrot_set_p_k_i, /* 956 */
- Parrot_set_p_kc_i, /* 957 */
- Parrot_set_p_k_ic, /* 958 */
- Parrot_set_p_kc_ic, /* 959 */
- Parrot_set_p_k_n, /* 960 */
- Parrot_set_p_kc_n, /* 961 */
- Parrot_set_p_k_nc, /* 962 */
- Parrot_set_p_kc_nc, /* 963 */
- Parrot_set_p_k_s, /* 964 */
- Parrot_set_p_kc_s, /* 965 */
- Parrot_set_p_k_sc, /* 966 */
- Parrot_set_p_kc_sc, /* 967 */
- Parrot_set_p_k_p, /* 968 */
- Parrot_set_p_kc_p, /* 969 */
- Parrot_set_i_p_k, /* 970 */
- Parrot_set_i_p_kc, /* 971 */
- Parrot_set_n_p_k, /* 972 */
- Parrot_set_n_p_kc, /* 973 */
- Parrot_set_s_p_k, /* 974 */
- Parrot_set_s_p_kc, /* 975 */
- Parrot_set_p_p_k, /* 976 */
- Parrot_set_p_p_kc, /* 977 */
- Parrot_clone_p_p, /* 978 */
- Parrot_clone_p_p_p, /* 979 */
- Parrot_clone_p_p_pc, /* 980 */
- Parrot_copy_p_p, /* 981 */
- Parrot_null_s, /* 982 */
- Parrot_null_i, /* 983 */
- Parrot_null_p, /* 984 */
- Parrot_null_n, /* 985 */
- Parrot_cleari, /* 986 */
- Parrot_clearn, /* 987 */
- Parrot_clears, /* 988 */
- Parrot_clearp, /* 989 */
- Parrot_ord_i_s, /* 990 */
- Parrot_ord_i_sc, /* 991 */
- Parrot_ord_i_s_i, /* 992 */
- Parrot_ord_i_sc_i, /* 993 */
- Parrot_ord_i_s_ic, /* 994 */
- Parrot_ord_i_sc_ic, /* 995 */
- Parrot_chr_s_i, /* 996 */
- Parrot_chr_s_ic, /* 997 */
- Parrot_chopn_s_i, /* 998 */
- Parrot_chopn_s_ic, /* 999 */
- Parrot_chopn_s_s_i, /* 1000 */
- Parrot_chopn_s_sc_i, /* 1001 */
- Parrot_chopn_s_s_ic, /* 1002 */
- Parrot_chopn_s_sc_ic, /* 1003 */
- Parrot_concat_s_s, /* 1004 */
- Parrot_concat_s_sc, /* 1005 */
- Parrot_concat_p_p, /* 1006 */
- Parrot_concat_p_s, /* 1007 */
- Parrot_concat_p_sc, /* 1008 */
- Parrot_concat_s_s_s, /* 1009 */
- Parrot_concat_s_sc_s, /* 1010 */
- Parrot_concat_s_s_sc, /* 1011 */
- Parrot_concat_p_p_s, /* 1012 */
- Parrot_concat_p_p_sc, /* 1013 */
- Parrot_concat_p_p_p, /* 1014 */
- Parrot_repeat_s_s_i, /* 1015 */
- Parrot_repeat_s_sc_i, /* 1016 */
- Parrot_repeat_s_s_ic, /* 1017 */
- Parrot_repeat_s_sc_ic, /* 1018 */
- Parrot_repeat_p_p_i, /* 1019 */
- Parrot_repeat_p_p_ic, /* 1020 */
- Parrot_repeat_p_p_p, /* 1021 */
- Parrot_repeat_p_i, /* 1022 */
- Parrot_repeat_p_ic, /* 1023 */
- Parrot_repeat_p_p, /* 1024 */
- Parrot_length_i_s, /* 1025 */
- Parrot_length_i_sc, /* 1026 */
- Parrot_bytelength_i_s, /* 1027 */
- Parrot_bytelength_i_sc, /* 1028 */
- Parrot_pin_s, /* 1029 */
- Parrot_unpin_s, /* 1030 */
- Parrot_substr_s_s_i, /* 1031 */
- Parrot_substr_s_sc_i, /* 1032 */
- Parrot_substr_s_s_ic, /* 1033 */
- Parrot_substr_s_sc_ic, /* 1034 */
- Parrot_substr_s_s_i_i, /* 1035 */
- Parrot_substr_s_sc_i_i, /* 1036 */
- Parrot_substr_s_s_ic_i, /* 1037 */
- Parrot_substr_s_sc_ic_i, /* 1038 */
- Parrot_substr_s_s_i_ic, /* 1039 */
- Parrot_substr_s_sc_i_ic, /* 1040 */
- Parrot_substr_s_s_ic_ic, /* 1041 */
- Parrot_substr_s_sc_ic_ic, /* 1042 */
- Parrot_substr_s_s_i_i_s, /* 1043 */
- Parrot_substr_s_s_ic_i_s, /* 1044 */
- Parrot_substr_s_s_i_ic_s, /* 1045 */
- Parrot_substr_s_s_ic_ic_s, /* 1046 */
- Parrot_substr_s_s_i_i_sc, /* 1047 */
- Parrot_substr_s_s_ic_i_sc, /* 1048 */
- Parrot_substr_s_s_i_ic_sc, /* 1049 */
- Parrot_substr_s_s_ic_ic_sc, /* 1050 */
- Parrot_substr_s_i_i_s, /* 1051 */
- Parrot_substr_s_ic_i_s, /* 1052 */
- Parrot_substr_s_i_ic_s, /* 1053 */
- Parrot_substr_s_ic_ic_s, /* 1054 */
- Parrot_substr_s_i_i_sc, /* 1055 */
- Parrot_substr_s_ic_i_sc, /* 1056 */
- Parrot_substr_s_i_ic_sc, /* 1057 */
- Parrot_substr_s_ic_ic_sc, /* 1058 */
- Parrot_substr_s_p_i_i, /* 1059 */
- Parrot_substr_s_p_ic_i, /* 1060 */
- Parrot_substr_s_p_i_ic, /* 1061 */
- Parrot_substr_s_p_ic_ic, /* 1062 */
- Parrot_index_i_s_s, /* 1063 */
- Parrot_index_i_sc_s, /* 1064 */
- Parrot_index_i_s_sc, /* 1065 */
- Parrot_index_i_sc_sc, /* 1066 */
- Parrot_index_i_s_s_i, /* 1067 */
- Parrot_index_i_sc_s_i, /* 1068 */
- Parrot_index_i_s_sc_i, /* 1069 */
- Parrot_index_i_sc_sc_i, /* 1070 */
- Parrot_index_i_s_s_ic, /* 1071 */
- Parrot_index_i_sc_s_ic, /* 1072 */
- Parrot_index_i_s_sc_ic, /* 1073 */
- Parrot_index_i_sc_sc_ic, /* 1074 */
- Parrot_sprintf_s_s_p, /* 1075 */
- Parrot_sprintf_s_sc_p, /* 1076 */
- Parrot_sprintf_p_p_p, /* 1077 */
- Parrot_new_s, /* 1078 */
- Parrot_new_s_i, /* 1079 */
- Parrot_new_s_ic, /* 1080 */
- Parrot_stringinfo_i_s_i, /* 1081 */
- Parrot_stringinfo_i_sc_i, /* 1082 */
- Parrot_stringinfo_i_s_ic, /* 1083 */
- Parrot_stringinfo_i_sc_ic, /* 1084 */
- Parrot_upcase_s_s, /* 1085 */
- Parrot_upcase_s_sc, /* 1086 */
- Parrot_upcase_s, /* 1087 */
- Parrot_downcase_s_s, /* 1088 */
- Parrot_downcase_s_sc, /* 1089 */
- Parrot_downcase_s, /* 1090 */
- Parrot_titlecase_s_s, /* 1091 */
- Parrot_titlecase_s_sc, /* 1092 */
- Parrot_titlecase_s, /* 1093 */
- Parrot_join_s_s_p, /* 1094 */
- Parrot_join_s_sc_p, /* 1095 */
- Parrot_split_p_s_s, /* 1096 */
- Parrot_split_p_sc_s, /* 1097 */
- Parrot_split_p_s_sc, /* 1098 */
- Parrot_split_p_sc_sc, /* 1099 */
- Parrot_charset_i_s, /* 1100 */
- Parrot_charset_i_sc, /* 1101 */
- Parrot_charsetname_s_i, /* 1102 */
- Parrot_charsetname_s_ic, /* 1103 */
- Parrot_find_charset_i_s, /* 1104 */
- Parrot_find_charset_i_sc, /* 1105 */
- Parrot_trans_charset_s_i, /* 1106 */
- Parrot_trans_charset_s_ic, /* 1107 */
- Parrot_trans_charset_s_s_i, /* 1108 */
- Parrot_trans_charset_s_sc_i, /* 1109 */
- Parrot_trans_charset_s_s_ic, /* 1110 */
- Parrot_trans_charset_s_sc_ic, /* 1111 */
- Parrot_encoding_i_s, /* 1112 */
- Parrot_encoding_i_sc, /* 1113 */
- Parrot_encodingname_s_i, /* 1114 */
- Parrot_encodingname_s_ic, /* 1115 */
- Parrot_find_encoding_i_s, /* 1116 */
- Parrot_find_encoding_i_sc, /* 1117 */
- Parrot_trans_encoding_s_i, /* 1118 */
- Parrot_trans_encoding_s_ic, /* 1119 */
- Parrot_trans_encoding_s_s_i, /* 1120 */
- Parrot_trans_encoding_s_sc_i, /* 1121 */
- Parrot_trans_encoding_s_s_ic, /* 1122 */
- Parrot_trans_encoding_s_sc_ic, /* 1123 */
- Parrot_is_cclass_i_i_s_i, /* 1124 */
- Parrot_is_cclass_i_ic_s_i, /* 1125 */
- Parrot_is_cclass_i_i_sc_i, /* 1126 */
- Parrot_is_cclass_i_ic_sc_i, /* 1127 */
- Parrot_is_cclass_i_i_s_ic, /* 1128 */
- Parrot_is_cclass_i_ic_s_ic, /* 1129 */
- Parrot_is_cclass_i_i_sc_ic, /* 1130 */
- Parrot_is_cclass_i_ic_sc_ic, /* 1131 */
- Parrot_find_cclass_i_i_s_i_i, /* 1132 */
- Parrot_find_cclass_i_ic_s_i_i, /* 1133 */
- Parrot_find_cclass_i_i_sc_i_i, /* 1134 */
- Parrot_find_cclass_i_ic_sc_i_i, /* 1135 */
- Parrot_find_cclass_i_i_s_ic_i, /* 1136 */
- Parrot_find_cclass_i_ic_s_ic_i, /* 1137 */
- Parrot_find_cclass_i_i_sc_ic_i, /* 1138 */
- Parrot_find_cclass_i_ic_sc_ic_i, /* 1139 */
- Parrot_find_cclass_i_i_s_i_ic, /* 1140 */
- Parrot_find_cclass_i_ic_s_i_ic, /* 1141 */
- Parrot_find_cclass_i_i_sc_i_ic, /* 1142 */
- Parrot_find_cclass_i_ic_sc_i_ic, /* 1143 */
- Parrot_find_cclass_i_i_s_ic_ic, /* 1144 */
- Parrot_find_cclass_i_ic_s_ic_ic, /* 1145 */
- Parrot_find_cclass_i_i_sc_ic_ic, /* 1146 */
- Parrot_find_cclass_i_ic_sc_ic_ic, /* 1147 */
- Parrot_find_not_cclass_i_i_s_i_i, /* 1148 */
- Parrot_find_not_cclass_i_ic_s_i_i, /* 1149 */
- Parrot_find_not_cclass_i_i_sc_i_i, /* 1150 */
- Parrot_find_not_cclass_i_ic_sc_i_i, /* 1151 */
- Parrot_find_not_cclass_i_i_s_ic_i, /* 1152 */
- Parrot_find_not_cclass_i_ic_s_ic_i, /* 1153 */
- Parrot_find_not_cclass_i_i_sc_ic_i, /* 1154 */
- Parrot_find_not_cclass_i_ic_sc_ic_i, /* 1155 */
- Parrot_find_not_cclass_i_i_s_i_ic, /* 1156 */
- Parrot_find_not_cclass_i_ic_s_i_ic, /* 1157 */
- Parrot_find_not_cclass_i_i_sc_i_ic, /* 1158 */
- Parrot_find_not_cclass_i_ic_sc_i_ic, /* 1159 */
- Parrot_find_not_cclass_i_i_s_ic_ic, /* 1160 */
- Parrot_find_not_cclass_i_ic_s_ic_ic, /* 1161 */
- Parrot_find_not_cclass_i_i_sc_ic_ic, /* 1162 */
- Parrot_find_not_cclass_i_ic_sc_ic_ic, /* 1163 */
- Parrot_escape_s_s, /* 1164 */
- Parrot_compose_s_s, /* 1165 */
- Parrot_compose_s_sc, /* 1166 */
- Parrot_spawnw_i_s, /* 1167 */
- Parrot_spawnw_i_sc, /* 1168 */
- Parrot_spawnw_i_p, /* 1169 */
- Parrot_err_i, /* 1170 */
- Parrot_err_s, /* 1171 */
- Parrot_err_s_i, /* 1172 */
- Parrot_err_s_ic, /* 1173 */
- Parrot_time_i, /* 1174 */
- Parrot_time_n, /* 1175 */
- Parrot_gmtime_s_i, /* 1176 */
- Parrot_gmtime_s_ic, /* 1177 */
- Parrot_localtime_s_i, /* 1178 */
- Parrot_localtime_s_ic, /* 1179 */
- Parrot_decodetime_p_i, /* 1180 */
- Parrot_decodetime_p_ic, /* 1181 */
- Parrot_decodelocaltime_p_i, /* 1182 */
- Parrot_decodelocaltime_p_ic, /* 1183 */
- Parrot_sysinfo_s_i, /* 1184 */
- Parrot_sysinfo_s_ic, /* 1185 */
- Parrot_sysinfo_i_i, /* 1186 */
- Parrot_sysinfo_i_ic, /* 1187 */
- Parrot_sleep_i, /* 1188 */
- Parrot_sleep_ic, /* 1189 */
- Parrot_sleep_n, /* 1190 */
- Parrot_sleep_nc, /* 1191 */
- Parrot_sizeof_i_i, /* 1192 */
- Parrot_sizeof_i_ic, /* 1193 */
- Parrot_store_lex_s_p, /* 1194 */
- Parrot_store_lex_sc_p, /* 1195 */
- Parrot_store_dynamic_lex_s_p, /* 1196 */
- Parrot_store_dynamic_lex_sc_p, /* 1197 */
- Parrot_find_lex_p_s, /* 1198 */
- Parrot_find_lex_p_sc, /* 1199 */
- Parrot_find_dynamic_lex_p_s, /* 1200 */
- Parrot_find_dynamic_lex_p_sc, /* 1201 */
- Parrot_find_caller_lex_p_s, /* 1202 */
- Parrot_find_caller_lex_p_sc, /* 1203 */
- Parrot_get_namespace_p, /* 1204 */
- Parrot_get_namespace_p_p, /* 1205 */
- Parrot_get_namespace_p_pc, /* 1206 */
- Parrot_get_hll_namespace_p, /* 1207 */
- Parrot_get_hll_namespace_p_p, /* 1208 */
- Parrot_get_hll_namespace_p_pc, /* 1209 */
- Parrot_get_root_namespace_p, /* 1210 */
- Parrot_get_root_namespace_p_p, /* 1211 */
- Parrot_get_root_namespace_p_pc, /* 1212 */
- Parrot_get_global_p_s, /* 1213 */
- Parrot_get_global_p_sc, /* 1214 */
- Parrot_get_global_p_p_s, /* 1215 */
- Parrot_get_global_p_pc_s, /* 1216 */
- Parrot_get_global_p_p_sc, /* 1217 */
- Parrot_get_global_p_pc_sc, /* 1218 */
- Parrot_get_hll_global_p_s, /* 1219 */
- Parrot_get_hll_global_p_sc, /* 1220 */
- Parrot_get_hll_global_p_p_s, /* 1221 */
- Parrot_get_hll_global_p_pc_s, /* 1222 */
- Parrot_get_hll_global_p_p_sc, /* 1223 */
- Parrot_get_hll_global_p_pc_sc, /* 1224 */
- Parrot_get_root_global_p_s, /* 1225 */
- Parrot_get_root_global_p_sc, /* 1226 */
- Parrot_get_root_global_p_p_s, /* 1227 */
- Parrot_get_root_global_p_pc_s, /* 1228 */
- Parrot_get_root_global_p_p_sc, /* 1229 */
- Parrot_get_root_global_p_pc_sc, /* 1230 */
- Parrot_set_global_s_p, /* 1231 */
- Parrot_set_global_sc_p, /* 1232 */
- Parrot_set_global_p_s_p, /* 1233 */
- Parrot_set_global_pc_s_p, /* 1234 */
- Parrot_set_global_p_sc_p, /* 1235 */
- Parrot_set_global_pc_sc_p, /* 1236 */
- Parrot_set_hll_global_s_p, /* 1237 */
- Parrot_set_hll_global_sc_p, /* 1238 */
- Parrot_set_hll_global_p_s_p, /* 1239 */
- Parrot_set_hll_global_pc_s_p, /* 1240 */
- Parrot_set_hll_global_p_sc_p, /* 1241 */
- Parrot_set_hll_global_pc_sc_p, /* 1242 */
- Parrot_set_root_global_s_p, /* 1243 */
- Parrot_set_root_global_sc_p, /* 1244 */
- Parrot_set_root_global_p_s_p, /* 1245 */
- Parrot_set_root_global_pc_s_p, /* 1246 */
- Parrot_set_root_global_p_sc_p, /* 1247 */
- Parrot_set_root_global_pc_sc_p, /* 1248 */
- Parrot_find_name_p_s, /* 1249 */
- Parrot_find_name_p_sc, /* 1250 */
- Parrot_find_sub_not_null_p_s, /* 1251 */
- Parrot_find_sub_not_null_p_sc, /* 1252 */
- Parrot_trap, /* 1253 */
- Parrot_fetch_p_p_p_p, /* 1254 */
- Parrot_fetch_p_pc_p_p, /* 1255 */
- Parrot_fetch_p_p_pc_p, /* 1256 */
- Parrot_fetch_p_pc_pc_p, /* 1257 */
- Parrot_fetch_p_p_p_pc, /* 1258 */
- Parrot_fetch_p_pc_p_pc, /* 1259 */
- Parrot_fetch_p_p_pc_pc, /* 1260 */
- Parrot_fetch_p_pc_pc_pc, /* 1261 */
- Parrot_fetch_p_p_i_p, /* 1262 */
- Parrot_fetch_p_pc_i_p, /* 1263 */
- Parrot_fetch_p_p_ic_p, /* 1264 */
- Parrot_fetch_p_pc_ic_p, /* 1265 */
- Parrot_fetch_p_p_i_pc, /* 1266 */
- Parrot_fetch_p_pc_i_pc, /* 1267 */
- Parrot_fetch_p_p_ic_pc, /* 1268 */
- Parrot_fetch_p_pc_ic_pc, /* 1269 */
- Parrot_fetch_p_p_s_p, /* 1270 */
- Parrot_fetch_p_pc_s_p, /* 1271 */
- Parrot_fetch_p_p_sc_p, /* 1272 */
- Parrot_fetch_p_pc_sc_p, /* 1273 */
- Parrot_fetch_p_p_s_pc, /* 1274 */
- Parrot_fetch_p_pc_s_pc, /* 1275 */
- Parrot_fetch_p_p_sc_pc, /* 1276 */
- Parrot_fetch_p_pc_sc_pc, /* 1277 */
- Parrot_vivify_p_p_p_p, /* 1278 */
- Parrot_vivify_p_pc_p_p, /* 1279 */
- Parrot_vivify_p_p_pc_p, /* 1280 */
- Parrot_vivify_p_pc_pc_p, /* 1281 */
- Parrot_vivify_p_p_p_pc, /* 1282 */
- Parrot_vivify_p_pc_p_pc, /* 1283 */
- Parrot_vivify_p_p_pc_pc, /* 1284 */
- Parrot_vivify_p_pc_pc_pc, /* 1285 */
- Parrot_vivify_p_p_i_p, /* 1286 */
- Parrot_vivify_p_pc_i_p, /* 1287 */
- Parrot_vivify_p_p_ic_p, /* 1288 */
- Parrot_vivify_p_pc_ic_p, /* 1289 */
- Parrot_vivify_p_p_i_pc, /* 1290 */
- Parrot_vivify_p_pc_i_pc, /* 1291 */
- Parrot_vivify_p_p_ic_pc, /* 1292 */
- Parrot_vivify_p_pc_ic_pc, /* 1293 */
- Parrot_vivify_p_p_s_p, /* 1294 */
- Parrot_vivify_p_pc_s_p, /* 1295 */
- Parrot_vivify_p_p_sc_p, /* 1296 */
- Parrot_vivify_p_pc_sc_p, /* 1297 */
- Parrot_vivify_p_p_s_pc, /* 1298 */
- Parrot_vivify_p_pc_s_pc, /* 1299 */
- Parrot_vivify_p_p_sc_pc, /* 1300 */
- Parrot_vivify_p_pc_sc_pc, /* 1301 */
+ Parrot_load_bytecode_s, /* 6 */
+ Parrot_load_bytecode_sc, /* 7 */
+ Parrot_load_language_s, /* 8 */
+ Parrot_load_language_sc, /* 9 */
+ Parrot_branch_i, /* 10 */
+ Parrot_branch_ic, /* 11 */
+ Parrot_local_branch_p_i, /* 12 */
+ Parrot_local_branch_p_ic, /* 13 */
+ Parrot_local_return_p, /* 14 */
+ Parrot_jump_i, /* 15 */
+ Parrot_jump_ic, /* 16 */
+ Parrot_enternative, /* 17 */
+ Parrot_if_i_ic, /* 18 */
+ Parrot_if_n_ic, /* 19 */
+ Parrot_if_s_ic, /* 20 */
+ Parrot_if_p_ic, /* 21 */
+ Parrot_unless_i_ic, /* 22 */
+ Parrot_unless_n_ic, /* 23 */
+ Parrot_unless_s_ic, /* 24 */
+ Parrot_unless_p_ic, /* 25 */
+ Parrot_invokecc_p, /* 26 */
+ Parrot_invoke_p_p, /* 27 */
+ Parrot_yield, /* 28 */
+ Parrot_tailcall_p, /* 29 */
+ Parrot_returncc, /* 30 */
+ Parrot_capture_lex_p, /* 31 */
+ Parrot_newclosure_p_p, /* 32 */
+ Parrot_set_args_pc, /* 33 */
+ Parrot_get_results_pc, /* 34 */
+ Parrot_get_params_pc, /* 35 */
+ Parrot_set_returns_pc, /* 36 */
+ Parrot_result_info_p, /* 37 */
+ Parrot_set_addr_i_ic, /* 38 */
+ Parrot_set_addr_p_ic, /* 39 */
+ Parrot_set_addr_p_i, /* 40 */
+ Parrot_get_addr_i_p, /* 41 */
+ Parrot_schedule_p, /* 42 */
+ Parrot_addhandler_p, /* 43 */
+ Parrot_push_eh_ic, /* 44 */
+ Parrot_push_eh_p, /* 45 */
+ Parrot_pop_eh, /* 46 */
+ Parrot_throw_p, /* 47 */
+ Parrot_throw_p_p, /* 48 */
+ Parrot_rethrow_p, /* 49 */
+ Parrot_count_eh_i, /* 50 */
+ Parrot_die_s, /* 51 */
+ Parrot_die_sc, /* 52 */
+ Parrot_die_p, /* 53 */
+ Parrot_die_pc, /* 54 */
+ Parrot_die_i_i, /* 55 */
+ Parrot_die_ic_i, /* 56 */
+ Parrot_die_i_ic, /* 57 */
+ Parrot_die_ic_ic, /* 58 */
+ Parrot_exit_i, /* 59 */
+ Parrot_exit_ic, /* 60 */
+ Parrot_pushmark_i, /* 61 */
+ Parrot_pushmark_ic, /* 62 */
+ Parrot_popmark_i, /* 63 */
+ Parrot_popmark_ic, /* 64 */
+ Parrot_pushaction_p, /* 65 */
+ Parrot_debug_i, /* 66 */
+ Parrot_debug_ic, /* 67 */
+ Parrot_bounds_i, /* 68 */
+ Parrot_bounds_ic, /* 69 */
+ Parrot_profile_i, /* 70 */
+ Parrot_profile_ic, /* 71 */
+ Parrot_trace_i, /* 72 */
+ Parrot_trace_ic, /* 73 */
+ Parrot_gc_debug_i, /* 74 */
+ Parrot_gc_debug_ic, /* 75 */
+ Parrot_interpinfo_i_i, /* 76 */
+ Parrot_interpinfo_i_ic, /* 77 */
+ Parrot_interpinfo_p_i, /* 78 */
+ Parrot_interpinfo_p_ic, /* 79 */
+ Parrot_interpinfo_s_i, /* 80 */
+ Parrot_interpinfo_s_ic, /* 81 */
+ Parrot_warningson_i, /* 82 */
+ Parrot_warningson_ic, /* 83 */
+ Parrot_warningsoff_i, /* 84 */
+ Parrot_warningsoff_ic, /* 85 */
+ Parrot_errorson_i, /* 86 */
+ Parrot_errorson_ic, /* 87 */
+ Parrot_errorsoff_i, /* 88 */
+ Parrot_errorsoff_ic, /* 89 */
+ Parrot_runinterp_p_i, /* 90 */
+ Parrot_runinterp_p_ic, /* 91 */
+ Parrot_getinterp_p, /* 92 */
+ Parrot_sweep_ic, /* 93 */
+ Parrot_collect, /* 94 */
+ Parrot_sweepoff, /* 95 */
+ Parrot_sweepon, /* 96 */
+ Parrot_collectoff, /* 97 */
+ Parrot_collecton, /* 98 */
+ Parrot_needs_destroy_p, /* 99 */
+ Parrot_loadlib_p_s, /* 100 */
+ Parrot_loadlib_p_sc, /* 101 */
+ Parrot_dlfunc_p_p_s_s, /* 102 */
+ Parrot_dlfunc_p_p_sc_s, /* 103 */
+ Parrot_dlfunc_p_p_s_sc, /* 104 */
+ Parrot_dlfunc_p_p_sc_sc, /* 105 */
+ Parrot_dlvar_p_p_s, /* 106 */
+ Parrot_dlvar_p_p_sc, /* 107 */
+ Parrot_compreg_s_p, /* 108 */
+ Parrot_compreg_sc_p, /* 109 */
+ Parrot_compreg_p_s, /* 110 */
+ Parrot_compreg_p_sc, /* 111 */
+ Parrot_new_callback_p_p_p_s, /* 112 */
+ Parrot_new_callback_p_p_p_sc, /* 113 */
+ Parrot_annotations_p, /* 114 */
+ Parrot_annotations_p_s, /* 115 */
+ Parrot_annotations_p_sc, /* 116 */
+ Parrot_band_i_i, /* 117 */
+ Parrot_band_i_ic, /* 118 */
+ Parrot_band_p_i, /* 119 */
+ Parrot_band_p_ic, /* 120 */
+ Parrot_band_p_p, /* 121 */
+ Parrot_band_i_i_i, /* 122 */
+ Parrot_band_i_ic_i, /* 123 */
+ Parrot_band_i_i_ic, /* 124 */
+ Parrot_band_p_p_i, /* 125 */
+ Parrot_band_p_p_ic, /* 126 */
+ Parrot_band_p_p_p, /* 127 */
+ Parrot_bands_s_s, /* 128 */
+ Parrot_bands_s_sc, /* 129 */
+ Parrot_bands_p_s, /* 130 */
+ Parrot_bands_p_sc, /* 131 */
+ Parrot_bands_p_p, /* 132 */
+ Parrot_bands_s_s_s, /* 133 */
+ Parrot_bands_s_sc_s, /* 134 */
+ Parrot_bands_s_s_sc, /* 135 */
+ Parrot_bands_p_p_s, /* 136 */
+ Parrot_bands_p_p_sc, /* 137 */
+ Parrot_bands_p_p_p, /* 138 */
+ Parrot_bnot_i, /* 139 */
+ Parrot_bnot_i_i, /* 140 */
+ Parrot_bnot_p, /* 141 */
+ Parrot_bnot_p_p, /* 142 */
+ Parrot_bnots_s, /* 143 */
+ Parrot_bnots_s_s, /* 144 */
+ Parrot_bnots_s_sc, /* 145 */
+ Parrot_bnots_p, /* 146 */
+ Parrot_bnots_p_p, /* 147 */
+ Parrot_bor_i_i, /* 148 */
+ Parrot_bor_i_ic, /* 149 */
+ Parrot_bor_p_i, /* 150 */
+ Parrot_bor_p_ic, /* 151 */
+ Parrot_bor_p_p, /* 152 */
+ Parrot_bor_i_i_i, /* 153 */
+ Parrot_bor_i_ic_i, /* 154 */
+ Parrot_bor_i_i_ic, /* 155 */
+ Parrot_bor_p_p_i, /* 156 */
+ Parrot_bor_p_p_ic, /* 157 */
+ Parrot_bor_p_p_p, /* 158 */
+ Parrot_bors_s_s, /* 159 */
+ Parrot_bors_s_sc, /* 160 */
+ Parrot_bors_p_s, /* 161 */
+ Parrot_bors_p_sc, /* 162 */
+ Parrot_bors_p_p, /* 163 */
+ Parrot_bors_s_s_s, /* 164 */
+ Parrot_bors_s_sc_s, /* 165 */
+ Parrot_bors_s_s_sc, /* 166 */
+ Parrot_bors_p_p_s, /* 167 */
+ Parrot_bors_p_p_sc, /* 168 */
+ Parrot_bors_p_p_p, /* 169 */
+ Parrot_shl_i_i, /* 170 */
+ Parrot_shl_i_ic, /* 171 */
+ Parrot_shl_p_i, /* 172 */
+ Parrot_shl_p_ic, /* 173 */
+ Parrot_shl_p_p, /* 174 */
+ Parrot_shl_i_i_i, /* 175 */
+ Parrot_shl_i_ic_i, /* 176 */
+ Parrot_shl_i_i_ic, /* 177 */
+ Parrot_shl_p_p_i, /* 178 */
+ Parrot_shl_p_p_ic, /* 179 */
+ Parrot_shl_p_p_p, /* 180 */
+ Parrot_shr_i_i, /* 181 */
+ Parrot_shr_i_ic, /* 182 */
+ Parrot_shr_p_i, /* 183 */
+ Parrot_shr_p_ic, /* 184 */
+ Parrot_shr_p_p, /* 185 */
+ Parrot_shr_i_i_i, /* 186 */
+ Parrot_shr_i_ic_i, /* 187 */
+ Parrot_shr_i_i_ic, /* 188 */
+ Parrot_shr_p_p_i, /* 189 */
+ Parrot_shr_p_p_ic, /* 190 */
+ Parrot_shr_p_p_p, /* 191 */
+ Parrot_lsr_i_i, /* 192 */
+ Parrot_lsr_i_ic, /* 193 */
+ Parrot_lsr_p_i, /* 194 */
+ Parrot_lsr_p_ic, /* 195 */
+ Parrot_lsr_p_p, /* 196 */
+ Parrot_lsr_i_i_i, /* 197 */
+ Parrot_lsr_i_ic_i, /* 198 */
+ Parrot_lsr_i_i_ic, /* 199 */
+ Parrot_lsr_p_p_i, /* 200 */
+ Parrot_lsr_p_p_ic, /* 201 */
+ Parrot_lsr_p_p_p, /* 202 */
+ Parrot_rot_i_i_i_ic, /* 203 */
+ Parrot_rot_i_ic_i_ic, /* 204 */
+ Parrot_rot_i_i_ic_ic, /* 205 */
+ Parrot_bxor_i_i, /* 206 */
+ Parrot_bxor_i_ic, /* 207 */
+ Parrot_bxor_p_i, /* 208 */
+ Parrot_bxor_p_ic, /* 209 */
+ Parrot_bxor_p_p, /* 210 */
+ Parrot_bxor_i_i_i, /* 211 */
+ Parrot_bxor_i_ic_i, /* 212 */
+ Parrot_bxor_i_i_ic, /* 213 */
+ Parrot_bxor_p_p_i, /* 214 */
+ Parrot_bxor_p_p_ic, /* 215 */
+ Parrot_bxor_p_p_p, /* 216 */
+ Parrot_bxors_s_s, /* 217 */
+ Parrot_bxors_s_sc, /* 218 */
+ Parrot_bxors_p_s, /* 219 */
+ Parrot_bxors_p_sc, /* 220 */
+ Parrot_bxors_p_p, /* 221 */
+ Parrot_bxors_s_s_s, /* 222 */
+ Parrot_bxors_s_sc_s, /* 223 */
+ Parrot_bxors_s_s_sc, /* 224 */
+ Parrot_bxors_p_p_s, /* 225 */
+ Parrot_bxors_p_p_sc, /* 226 */
+ Parrot_bxors_p_p_p, /* 227 */
+ Parrot_eq_i_i_ic, /* 228 */
+ Parrot_eq_ic_i_ic, /* 229 */
+ Parrot_eq_i_ic_ic, /* 230 */
+ Parrot_eq_n_n_ic, /* 231 */
+ Parrot_eq_nc_n_ic, /* 232 */
+ Parrot_eq_n_nc_ic, /* 233 */
+ Parrot_eq_s_s_ic, /* 234 */
+ Parrot_eq_sc_s_ic, /* 235 */
+ Parrot_eq_s_sc_ic, /* 236 */
+ Parrot_eq_p_p_ic, /* 237 */
+ Parrot_eq_p_i_ic, /* 238 */
+ Parrot_eq_p_ic_ic, /* 239 */
+ Parrot_eq_p_n_ic, /* 240 */
+ Parrot_eq_p_nc_ic, /* 241 */
+ Parrot_eq_p_s_ic, /* 242 */
+ Parrot_eq_p_sc_ic, /* 243 */
+ Parrot_eq_str_p_p_ic, /* 244 */
+ Parrot_eq_num_p_p_ic, /* 245 */
+ Parrot_eq_addr_s_s_ic, /* 246 */
+ Parrot_eq_addr_sc_s_ic, /* 247 */
+ Parrot_eq_addr_s_sc_ic, /* 248 */
+ Parrot_eq_addr_sc_sc_ic, /* 249 */
+ Parrot_eq_addr_p_p_ic, /* 250 */
+ Parrot_ne_i_i_ic, /* 251 */
+ Parrot_ne_ic_i_ic, /* 252 */
+ Parrot_ne_i_ic_ic, /* 253 */
+ Parrot_ne_n_n_ic, /* 254 */
+ Parrot_ne_nc_n_ic, /* 255 */
+ Parrot_ne_n_nc_ic, /* 256 */
+ Parrot_ne_s_s_ic, /* 257 */
+ Parrot_ne_sc_s_ic, /* 258 */
+ Parrot_ne_s_sc_ic, /* 259 */
+ Parrot_ne_p_p_ic, /* 260 */
+ Parrot_ne_p_i_ic, /* 261 */
+ Parrot_ne_p_ic_ic, /* 262 */
+ Parrot_ne_p_n_ic, /* 263 */
+ Parrot_ne_p_nc_ic, /* 264 */
+ Parrot_ne_p_s_ic, /* 265 */
+ Parrot_ne_p_sc_ic, /* 266 */
+ Parrot_ne_str_p_p_ic, /* 267 */
+ Parrot_ne_num_p_p_ic, /* 268 */
+ Parrot_ne_addr_s_s_ic, /* 269 */
+ Parrot_ne_addr_sc_s_ic, /* 270 */
+ Parrot_ne_addr_s_sc_ic, /* 271 */
+ Parrot_ne_addr_sc_sc_ic, /* 272 */
+ Parrot_ne_addr_p_p_ic, /* 273 */
+ Parrot_lt_i_i_ic, /* 274 */
+ Parrot_lt_ic_i_ic, /* 275 */
+ Parrot_lt_i_ic_ic, /* 276 */
+ Parrot_lt_n_n_ic, /* 277 */
+ Parrot_lt_nc_n_ic, /* 278 */
+ Parrot_lt_n_nc_ic, /* 279 */
+ Parrot_lt_s_s_ic, /* 280 */
+ Parrot_lt_sc_s_ic, /* 281 */
+ Parrot_lt_s_sc_ic, /* 282 */
+ Parrot_lt_p_p_ic, /* 283 */
+ Parrot_lt_p_i_ic, /* 284 */
+ Parrot_lt_p_ic_ic, /* 285 */
+ Parrot_lt_p_n_ic, /* 286 */
+ Parrot_lt_p_nc_ic, /* 287 */
+ Parrot_lt_p_s_ic, /* 288 */
+ Parrot_lt_p_sc_ic, /* 289 */
+ Parrot_lt_str_p_p_ic, /* 290 */
+ Parrot_lt_num_p_p_ic, /* 291 */
+ Parrot_le_i_i_ic, /* 292 */
+ Parrot_le_ic_i_ic, /* 293 */
+ Parrot_le_i_ic_ic, /* 294 */
+ Parrot_le_n_n_ic, /* 295 */
+ Parrot_le_nc_n_ic, /* 296 */
+ Parrot_le_n_nc_ic, /* 297 */
+ Parrot_le_s_s_ic, /* 298 */
+ Parrot_le_sc_s_ic, /* 299 */
+ Parrot_le_s_sc_ic, /* 300 */
+ Parrot_le_p_p_ic, /* 301 */
+ Parrot_le_p_i_ic, /* 302 */
+ Parrot_le_p_ic_ic, /* 303 */
+ Parrot_le_p_n_ic, /* 304 */
+ Parrot_le_p_nc_ic, /* 305 */
+ Parrot_le_p_s_ic, /* 306 */
+ Parrot_le_p_sc_ic, /* 307 */
+ Parrot_le_str_p_p_ic, /* 308 */
+ Parrot_le_num_p_p_ic, /* 309 */
+ Parrot_gt_p_p_ic, /* 310 */
+ Parrot_gt_p_i_ic, /* 311 */
+ Parrot_gt_p_ic_ic, /* 312 */
+ Parrot_gt_p_n_ic, /* 313 */
+ Parrot_gt_p_nc_ic, /* 314 */
+ Parrot_gt_p_s_ic, /* 315 */
+ Parrot_gt_p_sc_ic, /* 316 */
+ Parrot_gt_str_p_p_ic, /* 317 */
+ Parrot_gt_num_p_p_ic, /* 318 */
+ Parrot_ge_p_p_ic, /* 319 */
+ Parrot_ge_p_i_ic, /* 320 */
+ Parrot_ge_p_ic_ic, /* 321 */
+ Parrot_ge_p_n_ic, /* 322 */
+ Parrot_ge_p_nc_ic, /* 323 */
+ Parrot_ge_p_s_ic, /* 324 */
+ Parrot_ge_p_sc_ic, /* 325 */
+ Parrot_ge_str_p_p_ic, /* 326 */
+ Parrot_ge_num_p_p_ic, /* 327 */
+ Parrot_if_null_p_ic, /* 328 */
+ Parrot_if_null_s_ic, /* 329 */
+ Parrot_unless_null_p_ic, /* 330 */
+ Parrot_unless_null_s_ic, /* 331 */
+ Parrot_cmp_i_i_i, /* 332 */
+ Parrot_cmp_i_ic_i, /* 333 */
+ Parrot_cmp_i_i_ic, /* 334 */
+ Parrot_cmp_i_n_n, /* 335 */
+ Parrot_cmp_i_nc_n, /* 336 */
+ Parrot_cmp_i_n_nc, /* 337 */
+ Parrot_cmp_i_s_s, /* 338 */
+ Parrot_cmp_i_sc_s, /* 339 */
+ Parrot_cmp_i_s_sc, /* 340 */
+ Parrot_cmp_i_p_p, /* 341 */
+ Parrot_cmp_i_p_i, /* 342 */
+ Parrot_cmp_i_p_ic, /* 343 */
+ Parrot_cmp_i_p_n, /* 344 */
+ Parrot_cmp_i_p_nc, /* 345 */
+ Parrot_cmp_i_p_s, /* 346 */
+ Parrot_cmp_i_p_sc, /* 347 */
+ Parrot_cmp_str_i_p_p, /* 348 */
+ Parrot_cmp_num_i_p_p, /* 349 */
+ Parrot_cmp_pmc_p_p_p, /* 350 */
+ Parrot_issame_i_p_p, /* 351 */
+ Parrot_issame_i_s_s, /* 352 */
+ Parrot_issame_i_sc_s, /* 353 */
+ Parrot_issame_i_s_sc, /* 354 */
+ Parrot_issame_i_sc_sc, /* 355 */
+ Parrot_isntsame_i_p_p, /* 356 */
+ Parrot_isntsame_i_s_s, /* 357 */
+ Parrot_isntsame_i_sc_s, /* 358 */
+ Parrot_isntsame_i_s_sc, /* 359 */
+ Parrot_isntsame_i_sc_sc, /* 360 */
+ Parrot_istrue_i_p, /* 361 */
+ Parrot_isfalse_i_p, /* 362 */
+ Parrot_isnull_i_p, /* 363 */
+ Parrot_isnull_i_pc, /* 364 */
+ Parrot_isnull_i_s, /* 365 */
+ Parrot_isnull_i_sc, /* 366 */
+ Parrot_isgt_i_p_p, /* 367 */
+ Parrot_isge_i_p_p, /* 368 */
+ Parrot_isle_i_i_i, /* 369 */
+ Parrot_isle_i_ic_i, /* 370 */
+ Parrot_isle_i_i_ic, /* 371 */
+ Parrot_isle_i_n_n, /* 372 */
+ Parrot_isle_i_nc_n, /* 373 */
+ Parrot_isle_i_n_nc, /* 374 */
+ Parrot_isle_i_s_s, /* 375 */
+ Parrot_isle_i_sc_s, /* 376 */
+ Parrot_isle_i_s_sc, /* 377 */
+ Parrot_isle_i_p_p, /* 378 */
+ Parrot_islt_i_i_i, /* 379 */
+ Parrot_islt_i_ic_i, /* 380 */
+ Parrot_islt_i_i_ic, /* 381 */
+ Parrot_islt_i_n_n, /* 382 */
+ Parrot_islt_i_nc_n, /* 383 */
+ Parrot_islt_i_n_nc, /* 384 */
+ Parrot_islt_i_s_s, /* 385 */
+ Parrot_islt_i_sc_s, /* 386 */
+ Parrot_islt_i_s_sc, /* 387 */
+ Parrot_islt_i_p_p, /* 388 */
+ Parrot_iseq_i_i_i, /* 389 */
+ Parrot_iseq_i_ic_i, /* 390 */
+ Parrot_iseq_i_i_ic, /* 391 */
+ Parrot_iseq_i_n_n, /* 392 */
+ Parrot_iseq_i_nc_n, /* 393 */
+ Parrot_iseq_i_n_nc, /* 394 */
+ Parrot_iseq_i_s_s, /* 395 */
+ Parrot_iseq_i_sc_s, /* 396 */
+ Parrot_iseq_i_s_sc, /* 397 */
+ Parrot_iseq_i_p_p, /* 398 */
+ Parrot_isne_i_i_i, /* 399 */
+ Parrot_isne_i_ic_i, /* 400 */
+ Parrot_isne_i_i_ic, /* 401 */
+ Parrot_isne_i_n_n, /* 402 */
+ Parrot_isne_i_nc_n, /* 403 */
+ Parrot_isne_i_n_nc, /* 404 */
+ Parrot_isne_i_s_s, /* 405 */
+ Parrot_isne_i_sc_s, /* 406 */
+ Parrot_isne_i_s_sc, /* 407 */
+ Parrot_isne_i_p_p, /* 408 */
+ Parrot_and_i_i_i, /* 409 */
+ Parrot_and_i_ic_i, /* 410 */
+ Parrot_and_i_i_ic, /* 411 */
+ Parrot_and_p_p_p, /* 412 */
+ Parrot_not_i, /* 413 */
+ Parrot_not_i_i, /* 414 */
+ Parrot_not_p, /* 415 */
+ Parrot_not_p_p, /* 416 */
+ Parrot_or_i_i_i, /* 417 */
+ Parrot_or_i_ic_i, /* 418 */
+ Parrot_or_i_i_ic, /* 419 */
+ Parrot_or_p_p_p, /* 420 */
+ Parrot_xor_i_i_i, /* 421 */
+ Parrot_xor_i_ic_i, /* 422 */
+ Parrot_xor_i_i_ic, /* 423 */
+ Parrot_xor_p_p_p, /* 424 */
+ Parrot_debug_init, /* 425 */
+ Parrot_debug_load_sc, /* 426 */
+ Parrot_debug_break, /* 427 */
+ Parrot_debug_print, /* 428 */
+ Parrot_backtrace, /* 429 */
+ Parrot_getline_i, /* 430 */
+ Parrot_getfile_s, /* 431 */
+ Parrot_set_label_p_ic, /* 432 */
+ Parrot_get_label_i_p, /* 433 */
+ Parrot_close_p, /* 434 */
+ Parrot_fdopen_p_i_s, /* 435 */
+ Parrot_fdopen_p_ic_s, /* 436 */
+ Parrot_fdopen_p_i_sc, /* 437 */
+ Parrot_fdopen_p_ic_sc, /* 438 */
+ Parrot_getstdin_p, /* 439 */
+ Parrot_getstdout_p, /* 440 */
+ Parrot_getstderr_p, /* 441 */
+ Parrot_setstdin_p, /* 442 */
+ Parrot_setstdout_p, /* 443 */
+ Parrot_setstderr_p, /* 444 */
+ Parrot_open_p_s_s, /* 445 */
+ Parrot_open_p_sc_s, /* 446 */
+ Parrot_open_p_s_sc, /* 447 */
+ Parrot_open_p_sc_sc, /* 448 */
+ Parrot_open_p_s, /* 449 */
+ Parrot_open_p_sc, /* 450 */
+ Parrot_print_i, /* 451 */
+ Parrot_print_ic, /* 452 */
+ Parrot_print_n, /* 453 */
+ Parrot_print_nc, /* 454 */
+ Parrot_print_s, /* 455 */
+ Parrot_print_sc, /* 456 */
+ Parrot_print_p, /* 457 */
+ Parrot_say_i, /* 458 */
+ Parrot_say_ic, /* 459 */
+ Parrot_say_n, /* 460 */
+ Parrot_say_nc, /* 461 */
+ Parrot_say_s, /* 462 */
+ Parrot_say_sc, /* 463 */
+ Parrot_say_p, /* 464 */
+ Parrot_printerr_i, /* 465 */
+ Parrot_printerr_ic, /* 466 */
+ Parrot_printerr_n, /* 467 */
+ Parrot_printerr_nc, /* 468 */
+ Parrot_printerr_s, /* 469 */
+ Parrot_printerr_sc, /* 470 */
+ Parrot_printerr_p, /* 471 */
+ Parrot_print_p_i, /* 472 */
+ Parrot_print_p_ic, /* 473 */
+ Parrot_print_p_n, /* 474 */
+ Parrot_print_p_nc, /* 475 */
+ Parrot_print_p_s, /* 476 */
+ Parrot_print_p_sc, /* 477 */
+ Parrot_print_p_p, /* 478 */
+ Parrot_read_s_i, /* 479 */
+ Parrot_read_s_ic, /* 480 */
+ Parrot_read_s_p_i, /* 481 */
+ Parrot_read_s_p_ic, /* 482 */
+ Parrot_readline_s_p, /* 483 */
+ Parrot_peek_s, /* 484 */
+ Parrot_peek_s_p, /* 485 */
+ Parrot_stat_i_s_i, /* 486 */
+ Parrot_stat_i_sc_i, /* 487 */
+ Parrot_stat_i_s_ic, /* 488 */
+ Parrot_stat_i_sc_ic, /* 489 */
+ Parrot_stat_i_i_i, /* 490 */
+ Parrot_stat_i_ic_i, /* 491 */
+ Parrot_stat_i_i_ic, /* 492 */
+ Parrot_stat_i_ic_ic, /* 493 */
+ Parrot_seek_p_i_i, /* 494 */
+ Parrot_seek_p_ic_i, /* 495 */
+ Parrot_seek_p_i_ic, /* 496 */
+ Parrot_seek_p_ic_ic, /* 497 */
+ Parrot_seek_p_i_i_i, /* 498 */
+ Parrot_seek_p_ic_i_i, /* 499 */
+ Parrot_seek_p_i_ic_i, /* 500 */
+ Parrot_seek_p_ic_ic_i, /* 501 */
+ Parrot_seek_p_i_i_ic, /* 502 */
+ Parrot_seek_p_ic_i_ic, /* 503 */
+ Parrot_seek_p_i_ic_ic, /* 504 */
+ Parrot_seek_p_ic_ic_ic, /* 505 */
+ Parrot_tell_i_p, /* 506 */
+ Parrot_tell_i_i_p, /* 507 */
+ Parrot_abs_i, /* 508 */
+ Parrot_abs_n, /* 509 */
+ Parrot_abs_i_i, /* 510 */
+ Parrot_abs_n_n, /* 511 */
+ Parrot_abs_p, /* 512 */
+ Parrot_abs_p_p, /* 513 */
+ Parrot_add_i_i, /* 514 */
+ Parrot_add_i_ic, /* 515 */
+ Parrot_add_n_n, /* 516 */
+ Parrot_add_n_nc, /* 517 */
+ Parrot_add_p_p, /* 518 */
+ Parrot_add_p_i, /* 519 */
+ Parrot_add_p_ic, /* 520 */
+ Parrot_add_p_n, /* 521 */
+ Parrot_add_p_nc, /* 522 */
+ Parrot_add_i_i_i, /* 523 */
+ Parrot_add_i_ic_i, /* 524 */
+ Parrot_add_i_i_ic, /* 525 */
+ Parrot_add_n_n_n, /* 526 */
+ Parrot_add_n_nc_n, /* 527 */
+ Parrot_add_n_n_nc, /* 528 */
+ Parrot_add_p_p_p, /* 529 */
+ Parrot_add_p_p_i, /* 530 */
+ Parrot_add_p_p_ic, /* 531 */
+ Parrot_add_p_p_n, /* 532 */
+ Parrot_add_p_p_nc, /* 533 */
+ Parrot_cmod_i_i_i, /* 534 */
+ Parrot_cmod_i_ic_i, /* 535 */
+ Parrot_cmod_i_i_ic, /* 536 */
+ Parrot_cmod_p_p_i, /* 537 */
+ Parrot_cmod_p_p_ic, /* 538 */
+ Parrot_cmod_p_p_p, /* 539 */
+ Parrot_cmod_n_n_n, /* 540 */
+ Parrot_cmod_n_nc_n, /* 541 */
+ Parrot_cmod_n_n_nc, /* 542 */
+ Parrot_cmod_p_p_n, /* 543 */
+ Parrot_cmod_p_p_nc, /* 544 */
+ Parrot_dec_i, /* 545 */
+ Parrot_dec_n, /* 546 */
+ Parrot_dec_p, /* 547 */
+ Parrot_div_i_i, /* 548 */
+ Parrot_div_i_ic, /* 549 */
+ Parrot_div_n_n, /* 550 */
+ Parrot_div_n_nc, /* 551 */
+ Parrot_div_p_p, /* 552 */
+ Parrot_div_p_i, /* 553 */
+ Parrot_div_p_ic, /* 554 */
+ Parrot_div_p_n, /* 555 */
+ Parrot_div_p_nc, /* 556 */
+ Parrot_div_i_i_i, /* 557 */
+ Parrot_div_i_ic_i, /* 558 */
+ Parrot_div_i_i_ic, /* 559 */
+ Parrot_div_i_ic_ic, /* 560 */
+ Parrot_div_n_n_n, /* 561 */
+ Parrot_div_n_nc_n, /* 562 */
+ Parrot_div_n_n_nc, /* 563 */
+ Parrot_div_n_nc_nc, /* 564 */
+ Parrot_div_p_p_p, /* 565 */
+ Parrot_div_p_p_i, /* 566 */
+ Parrot_div_p_p_ic, /* 567 */
+ Parrot_div_p_p_n, /* 568 */
+ Parrot_div_p_p_nc, /* 569 */
+ Parrot_fdiv_i_i, /* 570 */
+ Parrot_fdiv_i_ic, /* 571 */
+ Parrot_fdiv_n_n, /* 572 */
+ Parrot_fdiv_n_nc, /* 573 */
+ Parrot_fdiv_p_p, /* 574 */
+ Parrot_fdiv_p_i, /* 575 */
+ Parrot_fdiv_p_ic, /* 576 */
+ Parrot_fdiv_p_n, /* 577 */
+ Parrot_fdiv_p_nc, /* 578 */
+ Parrot_fdiv_i_i_i, /* 579 */
+ Parrot_fdiv_i_ic_i, /* 580 */
+ Parrot_fdiv_i_i_ic, /* 581 */
+ Parrot_fdiv_n_n_n, /* 582 */
+ Parrot_fdiv_n_nc_n, /* 583 */
+ Parrot_fdiv_n_n_nc, /* 584 */
+ Parrot_fdiv_p_p_p, /* 585 */
+ Parrot_fdiv_p_p_i, /* 586 */
+ Parrot_fdiv_p_p_ic, /* 587 */
+ Parrot_fdiv_p_p_n, /* 588 */
+ Parrot_fdiv_p_p_nc, /* 589 */
+ Parrot_ceil_n, /* 590 */
+ Parrot_ceil_i_n, /* 591 */
+ Parrot_ceil_n_n, /* 592 */
+ Parrot_floor_n, /* 593 */
+ Parrot_floor_i_n, /* 594 */
+ Parrot_floor_n_n, /* 595 */
+ Parrot_inc_i, /* 596 */
+ Parrot_inc_n, /* 597 */
+ Parrot_inc_p, /* 598 */
+ Parrot_mod_i_i, /* 599 */
+ Parrot_mod_i_ic, /* 600 */
+ Parrot_mod_n_n, /* 601 */
+ Parrot_mod_n_nc, /* 602 */
+ Parrot_mod_p_p, /* 603 */
+ Parrot_mod_p_i, /* 604 */
+ Parrot_mod_p_ic, /* 605 */
+ Parrot_mod_p_n, /* 606 */
+ Parrot_mod_p_nc, /* 607 */
+ Parrot_mod_i_i_i, /* 608 */
+ Parrot_mod_i_ic_i, /* 609 */
+ Parrot_mod_i_i_ic, /* 610 */
+ Parrot_mod_n_n_n, /* 611 */
+ Parrot_mod_n_nc_n, /* 612 */
+ Parrot_mod_n_n_nc, /* 613 */
+ Parrot_mod_p_p_p, /* 614 */
+ Parrot_mod_p_p_i, /* 615 */
+ Parrot_mod_p_p_ic, /* 616 */
+ Parrot_mod_p_p_n, /* 617 */
+ Parrot_mod_p_p_nc, /* 618 */
+ Parrot_mul_i_i, /* 619 */
+ Parrot_mul_i_ic, /* 620 */
+ Parrot_mul_n_n, /* 621 */
+ Parrot_mul_n_nc, /* 622 */
+ Parrot_mul_p_p, /* 623 */
+ Parrot_mul_p_i, /* 624 */
+ Parrot_mul_p_ic, /* 625 */
+ Parrot_mul_p_n, /* 626 */
+ Parrot_mul_p_nc, /* 627 */
+ Parrot_mul_i_i_i, /* 628 */
+ Parrot_mul_i_ic_i, /* 629 */
+ Parrot_mul_i_i_ic, /* 630 */
+ Parrot_mul_n_n_n, /* 631 */
+ Parrot_mul_n_nc_n, /* 632 */
+ Parrot_mul_n_n_nc, /* 633 */
+ Parrot_mul_p_p_p, /* 634 */
+ Parrot_mul_p_p_i, /* 635 */
+ Parrot_mul_p_p_ic, /* 636 */
+ Parrot_mul_p_p_n, /* 637 */
+ Parrot_mul_p_p_nc, /* 638 */
+ Parrot_neg_i, /* 639 */
+ Parrot_neg_n, /* 640 */
+ Parrot_neg_p, /* 641 */
+ Parrot_neg_i_i, /* 642 */
+ Parrot_neg_n_n, /* 643 */
+ Parrot_neg_p_p, /* 644 */
+ Parrot_pow_n_n_n, /* 645 */
+ Parrot_pow_n_nc_n, /* 646 */
+ Parrot_pow_n_n_nc, /* 647 */
+ Parrot_pow_p_p_p, /* 648 */
+ Parrot_pow_p_p_i, /* 649 */
+ Parrot_pow_p_p_ic, /* 650 */
+ Parrot_pow_p_p_n, /* 651 */
+ Parrot_pow_p_p_nc, /* 652 */
+ Parrot_pow_n_n_i, /* 653 */
+ Parrot_pow_n_nc_i, /* 654 */
+ Parrot_pow_n_n_ic, /* 655 */
+ Parrot_pow_n_nc_ic, /* 656 */
+ Parrot_sub_i_i, /* 657 */
+ Parrot_sub_i_ic, /* 658 */
+ Parrot_sub_n_n, /* 659 */
+ Parrot_sub_n_nc, /* 660 */
+ Parrot_sub_p_p, /* 661 */
+ Parrot_sub_p_i, /* 662 */
+ Parrot_sub_p_ic, /* 663 */
+ Parrot_sub_p_n, /* 664 */
+ Parrot_sub_p_nc, /* 665 */
+ Parrot_sub_i_i_i, /* 666 */
+ Parrot_sub_i_ic_i, /* 667 */
+ Parrot_sub_i_i_ic, /* 668 */
+ Parrot_sub_n_n_n, /* 669 */
+ Parrot_sub_n_nc_n, /* 670 */
+ Parrot_sub_n_n_nc, /* 671 */
+ Parrot_sub_p_p_p, /* 672 */
+ Parrot_sub_p_p_i, /* 673 */
+ Parrot_sub_p_p_ic, /* 674 */
+ Parrot_sub_p_p_n, /* 675 */
+ Parrot_sub_p_p_nc, /* 676 */
+ Parrot_sqrt_n_n, /* 677 */
+ Parrot_acos_n_n, /* 678 */
+ Parrot_asec_n_n, /* 679 */
+ Parrot_asin_n_n, /* 680 */
+ Parrot_atan_n_n, /* 681 */
+ Parrot_atan_n_n_n, /* 682 */
+ Parrot_atan_n_nc_n, /* 683 */
+ Parrot_atan_n_n_nc, /* 684 */
+ Parrot_cos_n_n, /* 685 */
+ Parrot_cosh_n_n, /* 686 */
+ Parrot_exp_n_n, /* 687 */
+ Parrot_ln_n_n, /* 688 */
+ Parrot_log10_n_n, /* 689 */
+ Parrot_log2_n_n, /* 690 */
+ Parrot_sec_n_n, /* 691 */
+ Parrot_sech_n_n, /* 692 */
+ Parrot_sin_n_n, /* 693 */
+ Parrot_sinh_n_n, /* 694 */
+ Parrot_tan_n_n, /* 695 */
+ Parrot_tanh_n_n, /* 696 */
+ Parrot_gcd_i_i_i, /* 697 */
+ Parrot_gcd_i_ic_i, /* 698 */
+ Parrot_gcd_i_i_ic, /* 699 */
+ Parrot_lcm_i_i_i, /* 700 */
+ Parrot_lcm_i_ic_i, /* 701 */
+ Parrot_lcm_i_i_ic, /* 702 */
+ Parrot_fact_i_i, /* 703 */
+ Parrot_fact_n_i, /* 704 */
+ Parrot_callmethodcc_p_s, /* 705 */
+ Parrot_callmethodcc_p_sc, /* 706 */
+ Parrot_callmethodcc_p_p, /* 707 */
+ Parrot_callmethod_p_s_p, /* 708 */
+ Parrot_callmethod_p_sc_p, /* 709 */
+ Parrot_callmethod_p_p_p, /* 710 */
+ Parrot_tailcallmethod_p_s, /* 711 */
+ Parrot_tailcallmethod_p_sc, /* 712 */
+ Parrot_tailcallmethod_p_p, /* 713 */
+ Parrot_addmethod_p_s_p, /* 714 */
+ Parrot_addmethod_p_sc_p, /* 715 */
+ Parrot_can_i_p_s, /* 716 */
+ Parrot_can_i_p_sc, /* 717 */
+ Parrot_does_i_p_s, /* 718 */
+ Parrot_does_i_p_sc, /* 719 */
+ Parrot_does_i_p_p, /* 720 */
+ Parrot_does_i_p_pc, /* 721 */
+ Parrot_isa_i_p_s, /* 722 */
+ Parrot_isa_i_p_sc, /* 723 */
+ Parrot_isa_i_p_p, /* 724 */
+ Parrot_isa_i_p_pc, /* 725 */
+ Parrot_newclass_p_s, /* 726 */
+ Parrot_newclass_p_sc, /* 727 */
+ Parrot_newclass_p_p, /* 728 */
+ Parrot_newclass_p_pc, /* 729 */
+ Parrot_subclass_p_p, /* 730 */
+ Parrot_subclass_p_pc, /* 731 */
+ Parrot_subclass_p_p_s, /* 732 */
+ Parrot_subclass_p_pc_s, /* 733 */
+ Parrot_subclass_p_p_sc, /* 734 */
+ Parrot_subclass_p_pc_sc, /* 735 */
+ Parrot_subclass_p_p_p, /* 736 */
+ Parrot_subclass_p_pc_p, /* 737 */
+ Parrot_subclass_p_p_pc, /* 738 */
+ Parrot_subclass_p_pc_pc, /* 739 */
+ Parrot_subclass_p_s, /* 740 */
+ Parrot_subclass_p_sc, /* 741 */
+ Parrot_subclass_p_s_s, /* 742 */
+ Parrot_subclass_p_sc_s, /* 743 */
+ Parrot_subclass_p_s_sc, /* 744 */
+ Parrot_subclass_p_sc_sc, /* 745 */
+ Parrot_subclass_p_s_p, /* 746 */
+ Parrot_subclass_p_sc_p, /* 747 */
+ Parrot_subclass_p_s_pc, /* 748 */
+ Parrot_subclass_p_sc_pc, /* 749 */
+ Parrot_get_class_p_s, /* 750 */
+ Parrot_get_class_p_sc, /* 751 */
+ Parrot_get_class_p_p, /* 752 */
+ Parrot_get_class_p_pc, /* 753 */
+ Parrot_class_p_p, /* 754 */
+ Parrot_addparent_p_p, /* 755 */
+ Parrot_removeparent_p_p, /* 756 */
+ Parrot_addrole_p_p, /* 757 */
+ Parrot_addattribute_p_s, /* 758 */
+ Parrot_addattribute_p_sc, /* 759 */
+ Parrot_removeattribute_p_s, /* 760 */
+ Parrot_removeattribute_p_sc, /* 761 */
+ Parrot_getattribute_p_p_s, /* 762 */
+ Parrot_getattribute_p_p_sc, /* 763 */
+ Parrot_getattribute_p_p_p_s, /* 764 */
+ Parrot_getattribute_p_p_pc_s, /* 765 */
+ Parrot_getattribute_p_p_p_sc, /* 766 */
+ Parrot_getattribute_p_p_pc_sc, /* 767 */
+ Parrot_setattribute_p_s_p, /* 768 */
+ Parrot_setattribute_p_sc_p, /* 769 */
+ Parrot_setattribute_p_p_s_p, /* 770 */
+ Parrot_setattribute_p_pc_s_p, /* 771 */
+ Parrot_setattribute_p_p_sc_p, /* 772 */
+ Parrot_setattribute_p_pc_sc_p, /* 773 */
+ Parrot_inspect_p_p, /* 774 */
+ Parrot_inspect_p_pc, /* 775 */
+ Parrot_inspect_p_p_s, /* 776 */
+ Parrot_inspect_p_pc_s, /* 777 */
+ Parrot_inspect_p_p_sc, /* 778 */
+ Parrot_inspect_p_pc_sc, /* 779 */
+ Parrot_new_p_s, /* 780 */
+ Parrot_new_p_sc, /* 781 */
+ Parrot_new_p_s_p, /* 782 */
+ Parrot_new_p_sc_p, /* 783 */
+ Parrot_new_p_s_pc, /* 784 */
+ Parrot_new_p_sc_pc, /* 785 */
+ Parrot_new_p_p, /* 786 */
+ Parrot_new_p_pc, /* 787 */
+ Parrot_new_p_p_p, /* 788 */
+ Parrot_new_p_pc_p, /* 789 */
+ Parrot_new_p_p_pc, /* 790 */
+ Parrot_new_p_pc_pc, /* 791 */
+ Parrot_root_new_p_p, /* 792 */
+ Parrot_root_new_p_pc, /* 793 */
+ Parrot_root_new_p_p_p, /* 794 */
+ Parrot_root_new_p_pc_p, /* 795 */
+ Parrot_root_new_p_p_pc, /* 796 */
+ Parrot_root_new_p_pc_pc, /* 797 */
+ Parrot_typeof_s_p, /* 798 */
+ Parrot_typeof_p_p, /* 799 */
+ Parrot_get_repr_s_p, /* 800 */
+ Parrot_find_method_p_p_s, /* 801 */
+ Parrot_find_method_p_p_sc, /* 802 */
+ Parrot_defined_i_p, /* 803 */
+ Parrot_defined_i_p_ki, /* 804 */
+ Parrot_defined_i_p_kic, /* 805 */
+ Parrot_defined_i_p_k, /* 806 */
+ Parrot_defined_i_p_kc, /* 807 */
+ Parrot_exists_i_p_ki, /* 808 */
+ Parrot_exists_i_p_kic, /* 809 */
+ Parrot_exists_i_p_k, /* 810 */
+ Parrot_exists_i_p_kc, /* 811 */
+ Parrot_delete_p_k, /* 812 */
+ Parrot_delete_p_kc, /* 813 */
+ Parrot_delete_p_ki, /* 814 */
+ Parrot_delete_p_kic, /* 815 */
+ Parrot_elements_i_p, /* 816 */
+ Parrot_push_p_i, /* 817 */
+ Parrot_push_p_ic, /* 818 */
+ Parrot_push_p_n, /* 819 */
+ Parrot_push_p_nc, /* 820 */
+ Parrot_push_p_s, /* 821 */
+ Parrot_push_p_sc, /* 822 */
+ Parrot_push_p_p, /* 823 */
+ Parrot_pop_i_p, /* 824 */
+ Parrot_pop_n_p, /* 825 */
+ Parrot_pop_s_p, /* 826 */
+ Parrot_pop_p_p, /* 827 */
+ Parrot_unshift_p_i, /* 828 */
+ Parrot_unshift_p_ic, /* 829 */
+ Parrot_unshift_p_n, /* 830 */
+ Parrot_unshift_p_nc, /* 831 */
+ Parrot_unshift_p_s, /* 832 */
+ Parrot_unshift_p_sc, /* 833 */
+ Parrot_unshift_p_p, /* 834 */
+ Parrot_shift_i_p, /* 835 */
+ Parrot_shift_n_p, /* 836 */
+ Parrot_shift_s_p, /* 837 */
+ Parrot_shift_p_p, /* 838 */
+ Parrot_splice_p_p_i_i, /* 839 */
+ Parrot_splice_p_p_ic_i, /* 840 */
+ Parrot_splice_p_p_i_ic, /* 841 */
+ Parrot_splice_p_p_ic_ic, /* 842 */
+ Parrot_setprop_p_s_p, /* 843 */
+ Parrot_setprop_p_sc_p, /* 844 */
+ Parrot_getprop_p_s_p, /* 845 */
+ Parrot_getprop_p_sc_p, /* 846 */
+ Parrot_delprop_p_s, /* 847 */
+ Parrot_delprop_p_sc, /* 848 */
+ Parrot_prophash_p_p, /* 849 */
+ Parrot_freeze_s_p, /* 850 */
+ Parrot_thaw_p_s, /* 851 */
+ Parrot_thaw_p_sc, /* 852 */
+ Parrot_add_multi_s_s_p, /* 853 */
+ Parrot_add_multi_sc_s_p, /* 854 */
+ Parrot_add_multi_s_sc_p, /* 855 */
+ Parrot_add_multi_sc_sc_p, /* 856 */
+ Parrot_find_multi_p_s_s, /* 857 */
+ Parrot_find_multi_p_sc_s, /* 858 */
+ Parrot_find_multi_p_s_sc, /* 859 */
+ Parrot_find_multi_p_sc_sc, /* 860 */
+ Parrot_register_p, /* 861 */
+ Parrot_unregister_p, /* 862 */
+ Parrot_box_p_i, /* 863 */
+ Parrot_box_p_ic, /* 864 */
+ Parrot_box_p_n, /* 865 */
+ Parrot_box_p_nc, /* 866 */
+ Parrot_box_p_s, /* 867 */
+ Parrot_box_p_sc, /* 868 */
+ Parrot_iter_p_p, /* 869 */
+ Parrot_morph_p_p, /* 870 */
+ Parrot_morph_p_pc, /* 871 */
+ Parrot_clone_s_s, /* 872 */
+ Parrot_clone_s_sc, /* 873 */
+ Parrot_exchange_i_i, /* 874 */
+ Parrot_exchange_p_p, /* 875 */
+ Parrot_exchange_n_n, /* 876 */
+ Parrot_exchange_s_s, /* 877 */
+ Parrot_set_i_i, /* 878 */
+ Parrot_set_i_ic, /* 879 */
+ Parrot_set_i_n, /* 880 */
+ Parrot_set_i_nc, /* 881 */
+ Parrot_set_i_s, /* 882 */
+ Parrot_set_i_sc, /* 883 */
+ Parrot_set_n_n, /* 884 */
+ Parrot_set_n_nc, /* 885 */
+ Parrot_set_n_i, /* 886 */
+ Parrot_set_n_ic, /* 887 */
+ Parrot_set_n_s, /* 888 */
+ Parrot_set_n_sc, /* 889 */
+ Parrot_set_n_p, /* 890 */
+ Parrot_set_s_p, /* 891 */
+ Parrot_set_s_s, /* 892 */
+ Parrot_set_s_sc, /* 893 */
+ Parrot_set_s_i, /* 894 */
+ Parrot_set_s_ic, /* 895 */
+ Parrot_set_s_n, /* 896 */
+ Parrot_set_s_nc, /* 897 */
+ Parrot_set_p_pc, /* 898 */
+ Parrot_set_p_p, /* 899 */
+ Parrot_set_p_i, /* 900 */
+ Parrot_set_p_ic, /* 901 */
+ Parrot_set_p_n, /* 902 */
+ Parrot_set_p_nc, /* 903 */
+ Parrot_set_p_s, /* 904 */
+ Parrot_set_p_sc, /* 905 */
+ Parrot_set_i_p, /* 906 */
+ Parrot_assign_p_p, /* 907 */
+ Parrot_assign_p_i, /* 908 */
+ Parrot_assign_p_ic, /* 909 */
+ Parrot_assign_p_n, /* 910 */
+ Parrot_assign_p_nc, /* 911 */
+ Parrot_assign_p_s, /* 912 */
+ Parrot_assign_p_sc, /* 913 */
+ Parrot_assign_s_s, /* 914 */
+ Parrot_assign_s_sc, /* 915 */
+ Parrot_setref_p_p, /* 916 */
+ Parrot_deref_p_p, /* 917 */
+ Parrot_setp_ind_i_p, /* 918 */
+ Parrot_setp_ind_ic_p, /* 919 */
+ Parrot_setn_ind_i_n, /* 920 */
+ Parrot_setn_ind_ic_n, /* 921 */
+ Parrot_setn_ind_i_nc, /* 922 */
+ Parrot_setn_ind_ic_nc, /* 923 */
+ Parrot_sets_ind_i_s, /* 924 */
+ Parrot_sets_ind_ic_s, /* 925 */
+ Parrot_sets_ind_i_sc, /* 926 */
+ Parrot_sets_ind_ic_sc, /* 927 */
+ Parrot_seti_ind_i_i, /* 928 */
+ Parrot_seti_ind_ic_i, /* 929 */
+ Parrot_seti_ind_i_ic, /* 930 */
+ Parrot_seti_ind_ic_ic, /* 931 */
+ Parrot_set_p_ki_i, /* 932 */
+ Parrot_set_p_kic_i, /* 933 */
+ Parrot_set_p_ki_ic, /* 934 */
+ Parrot_set_p_kic_ic, /* 935 */
+ Parrot_set_p_ki_n, /* 936 */
+ Parrot_set_p_kic_n, /* 937 */
+ Parrot_set_p_ki_nc, /* 938 */
+ Parrot_set_p_kic_nc, /* 939 */
+ Parrot_set_p_ki_s, /* 940 */
+ Parrot_set_p_kic_s, /* 941 */
+ Parrot_set_p_ki_sc, /* 942 */
+ Parrot_set_p_kic_sc, /* 943 */
+ Parrot_set_p_ki_p, /* 944 */
+ Parrot_set_p_kic_p, /* 945 */
+ Parrot_set_i_p_ki, /* 946 */
+ Parrot_set_i_p_kic, /* 947 */
+ Parrot_set_n_p_ki, /* 948 */
+ Parrot_set_n_p_kic, /* 949 */
+ Parrot_set_s_p_ki, /* 950 */
+ Parrot_set_s_p_kic, /* 951 */
+ Parrot_set_p_p_ki, /* 952 */
+ Parrot_set_p_p_kic, /* 953 */
+ Parrot_set_p_k_i, /* 954 */
+ Parrot_set_p_kc_i, /* 955 */
+ Parrot_set_p_k_ic, /* 956 */
+ Parrot_set_p_kc_ic, /* 957 */
+ Parrot_set_p_k_n, /* 958 */
+ Parrot_set_p_kc_n, /* 959 */
+ Parrot_set_p_k_nc, /* 960 */
+ Parrot_set_p_kc_nc, /* 961 */
+ Parrot_set_p_k_s, /* 962 */
+ Parrot_set_p_kc_s, /* 963 */
+ Parrot_set_p_k_sc, /* 964 */
+ Parrot_set_p_kc_sc, /* 965 */
+ Parrot_set_p_k_p, /* 966 */
+ Parrot_set_p_kc_p, /* 967 */
+ Parrot_set_i_p_k, /* 968 */
+ Parrot_set_i_p_kc, /* 969 */
+ Parrot_set_n_p_k, /* 970 */
+ Parrot_set_n_p_kc, /* 971 */
+ Parrot_set_s_p_k, /* 972 */
+ Parrot_set_s_p_kc, /* 973 */
+ Parrot_set_p_p_k, /* 974 */
+ Parrot_set_p_p_kc, /* 975 */
+ Parrot_clone_p_p, /* 976 */
+ Parrot_clone_p_p_p, /* 977 */
+ Parrot_clone_p_p_pc, /* 978 */
+ Parrot_copy_p_p, /* 979 */
+ Parrot_null_s, /* 980 */
+ Parrot_null_i, /* 981 */
+ Parrot_null_p, /* 982 */
+ Parrot_null_n, /* 983 */
+ Parrot_cleari, /* 984 */
+ Parrot_clearn, /* 985 */
+ Parrot_clears, /* 986 */
+ Parrot_clearp, /* 987 */
+ Parrot_ord_i_s, /* 988 */
+ Parrot_ord_i_sc, /* 989 */
+ Parrot_ord_i_s_i, /* 990 */
+ Parrot_ord_i_sc_i, /* 991 */
+ Parrot_ord_i_s_ic, /* 992 */
+ Parrot_ord_i_sc_ic, /* 993 */
+ Parrot_chr_s_i, /* 994 */
+ Parrot_chr_s_ic, /* 995 */
+ Parrot_chopn_s_i, /* 996 */
+ Parrot_chopn_s_ic, /* 997 */
+ Parrot_chopn_s_s_i, /* 998 */
+ Parrot_chopn_s_sc_i, /* 999 */
+ Parrot_chopn_s_s_ic, /* 1000 */
+ Parrot_chopn_s_sc_ic, /* 1001 */
+ Parrot_concat_s_s, /* 1002 */
+ Parrot_concat_s_sc, /* 1003 */
+ Parrot_concat_p_p, /* 1004 */
+ Parrot_concat_p_s, /* 1005 */
+ Parrot_concat_p_sc, /* 1006 */
+ Parrot_concat_s_s_s, /* 1007 */
+ Parrot_concat_s_sc_s, /* 1008 */
+ Parrot_concat_s_s_sc, /* 1009 */
+ Parrot_concat_p_p_s, /* 1010 */
+ Parrot_concat_p_p_sc, /* 1011 */
+ Parrot_concat_p_p_p, /* 1012 */
+ Parrot_repeat_s_s_i, /* 1013 */
+ Parrot_repeat_s_sc_i, /* 1014 */
+ Parrot_repeat_s_s_ic, /* 1015 */
+ Parrot_repeat_s_sc_ic, /* 1016 */
+ Parrot_repeat_p_p_i, /* 1017 */
+ Parrot_repeat_p_p_ic, /* 1018 */
+ Parrot_repeat_p_p_p, /* 1019 */
+ Parrot_repeat_p_i, /* 1020 */
+ Parrot_repeat_p_ic, /* 1021 */
+ Parrot_repeat_p_p, /* 1022 */
+ Parrot_length_i_s, /* 1023 */
+ Parrot_length_i_sc, /* 1024 */
+ Parrot_bytelength_i_s, /* 1025 */
+ Parrot_bytelength_i_sc, /* 1026 */
+ Parrot_pin_s, /* 1027 */
+ Parrot_unpin_s, /* 1028 */
+ Parrot_substr_s_s_i, /* 1029 */
+ Parrot_substr_s_sc_i, /* 1030 */
+ Parrot_substr_s_s_ic, /* 1031 */
+ Parrot_substr_s_sc_ic, /* 1032 */
+ Parrot_substr_s_s_i_i, /* 1033 */
+ Parrot_substr_s_sc_i_i, /* 1034 */
+ Parrot_substr_s_s_ic_i, /* 1035 */
+ Parrot_substr_s_sc_ic_i, /* 1036 */
+ Parrot_substr_s_s_i_ic, /* 1037 */
+ Parrot_substr_s_sc_i_ic, /* 1038 */
+ Parrot_substr_s_s_ic_ic, /* 1039 */
+ Parrot_substr_s_sc_ic_ic, /* 1040 */
+ Parrot_substr_s_s_i_i_s, /* 1041 */
+ Parrot_substr_s_s_ic_i_s, /* 1042 */
+ Parrot_substr_s_s_i_ic_s, /* 1043 */
+ Parrot_substr_s_s_ic_ic_s, /* 1044 */
+ Parrot_substr_s_s_i_i_sc, /* 1045 */
+ Parrot_substr_s_s_ic_i_sc, /* 1046 */
+ Parrot_substr_s_s_i_ic_sc, /* 1047 */
+ Parrot_substr_s_s_ic_ic_sc, /* 1048 */
+ Parrot_substr_s_i_i_s, /* 1049 */
+ Parrot_substr_s_ic_i_s, /* 1050 */
+ Parrot_substr_s_i_ic_s, /* 1051 */
+ Parrot_substr_s_ic_ic_s, /* 1052 */
+ Parrot_substr_s_i_i_sc, /* 1053 */
+ Parrot_substr_s_ic_i_sc, /* 1054 */
+ Parrot_substr_s_i_ic_sc, /* 1055 */
+ Parrot_substr_s_ic_ic_sc, /* 1056 */
+ Parrot_substr_s_p_i_i, /* 1057 */
+ Parrot_substr_s_p_ic_i, /* 1058 */
+ Parrot_substr_s_p_i_ic, /* 1059 */
+ Parrot_substr_s_p_ic_ic, /* 1060 */
+ Parrot_index_i_s_s, /* 1061 */
+ Parrot_index_i_sc_s, /* 1062 */
+ Parrot_index_i_s_sc, /* 1063 */
+ Parrot_index_i_sc_sc, /* 1064 */
+ Parrot_index_i_s_s_i, /* 1065 */
+ Parrot_index_i_sc_s_i, /* 1066 */
+ Parrot_index_i_s_sc_i, /* 1067 */
+ Parrot_index_i_sc_sc_i, /* 1068 */
+ Parrot_index_i_s_s_ic, /* 1069 */
+ Parrot_index_i_sc_s_ic, /* 1070 */
+ Parrot_index_i_s_sc_ic, /* 1071 */
+ Parrot_index_i_sc_sc_ic, /* 1072 */
+ Parrot_sprintf_s_s_p, /* 1073 */
+ Parrot_sprintf_s_sc_p, /* 1074 */
+ Parrot_sprintf_p_p_p, /* 1075 */
+ Parrot_new_s, /* 1076 */
+ Parrot_new_s_i, /* 1077 */
+ Parrot_new_s_ic, /* 1078 */
+ Parrot_stringinfo_i_s_i, /* 1079 */
+ Parrot_stringinfo_i_sc_i, /* 1080 */
+ Parrot_stringinfo_i_s_ic, /* 1081 */
+ Parrot_stringinfo_i_sc_ic, /* 1082 */
+ Parrot_upcase_s_s, /* 1083 */
+ Parrot_upcase_s_sc, /* 1084 */
+ Parrot_upcase_s, /* 1085 */
+ Parrot_downcase_s_s, /* 1086 */
+ Parrot_downcase_s_sc, /* 1087 */
+ Parrot_downcase_s, /* 1088 */
+ Parrot_titlecase_s_s, /* 1089 */
+ Parrot_titlecase_s_sc, /* 1090 */
+ Parrot_titlecase_s, /* 1091 */
+ Parrot_join_s_s_p, /* 1092 */
+ Parrot_join_s_sc_p, /* 1093 */
+ Parrot_split_p_s_s, /* 1094 */
+ Parrot_split_p_sc_s, /* 1095 */
+ Parrot_split_p_s_sc, /* 1096 */
+ Parrot_split_p_sc_sc, /* 1097 */
+ Parrot_charset_i_s, /* 1098 */
+ Parrot_charset_i_sc, /* 1099 */
+ Parrot_charsetname_s_i, /* 1100 */
+ Parrot_charsetname_s_ic, /* 1101 */
+ Parrot_find_charset_i_s, /* 1102 */
+ Parrot_find_charset_i_sc, /* 1103 */
+ Parrot_trans_charset_s_i, /* 1104 */
+ Parrot_trans_charset_s_ic, /* 1105 */
+ Parrot_trans_charset_s_s_i, /* 1106 */
+ Parrot_trans_charset_s_sc_i, /* 1107 */
+ Parrot_trans_charset_s_s_ic, /* 1108 */
+ Parrot_trans_charset_s_sc_ic, /* 1109 */
+ Parrot_encoding_i_s, /* 1110 */
+ Parrot_encoding_i_sc, /* 1111 */
+ Parrot_encodingname_s_i, /* 1112 */
+ Parrot_encodingname_s_ic, /* 1113 */
+ Parrot_find_encoding_i_s, /* 1114 */
+ Parrot_find_encoding_i_sc, /* 1115 */
+ Parrot_trans_encoding_s_i, /* 1116 */
+ Parrot_trans_encoding_s_ic, /* 1117 */
+ Parrot_trans_encoding_s_s_i, /* 1118 */
+ Parrot_trans_encoding_s_sc_i, /* 1119 */
+ Parrot_trans_encoding_s_s_ic, /* 1120 */
+ Parrot_trans_encoding_s_sc_ic, /* 1121 */
+ Parrot_is_cclass_i_i_s_i, /* 1122 */
+ Parrot_is_cclass_i_ic_s_i, /* 1123 */
+ Parrot_is_cclass_i_i_sc_i, /* 1124 */
+ Parrot_is_cclass_i_ic_sc_i, /* 1125 */
+ Parrot_is_cclass_i_i_s_ic, /* 1126 */
+ Parrot_is_cclass_i_ic_s_ic, /* 1127 */
+ Parrot_is_cclass_i_i_sc_ic, /* 1128 */
+ Parrot_is_cclass_i_ic_sc_ic, /* 1129 */
+ Parrot_find_cclass_i_i_s_i_i, /* 1130 */
+ Parrot_find_cclass_i_ic_s_i_i, /* 1131 */
+ Parrot_find_cclass_i_i_sc_i_i, /* 1132 */
+ Parrot_find_cclass_i_ic_sc_i_i, /* 1133 */
+ Parrot_find_cclass_i_i_s_ic_i, /* 1134 */
+ Parrot_find_cclass_i_ic_s_ic_i, /* 1135 */
+ Parrot_find_cclass_i_i_sc_ic_i, /* 1136 */
+ Parrot_find_cclass_i_ic_sc_ic_i, /* 1137 */
+ Parrot_find_cclass_i_i_s_i_ic, /* 1138 */
+ Parrot_find_cclass_i_ic_s_i_ic, /* 1139 */
+ Parrot_find_cclass_i_i_sc_i_ic, /* 1140 */
+ Parrot_find_cclass_i_ic_sc_i_ic, /* 1141 */
+ Parrot_find_cclass_i_i_s_ic_ic, /* 1142 */
+ Parrot_find_cclass_i_ic_s_ic_ic, /* 1143 */
+ Parrot_find_cclass_i_i_sc_ic_ic, /* 1144 */
+ Parrot_find_cclass_i_ic_sc_ic_ic, /* 1145 */
+ Parrot_find_not_cclass_i_i_s_i_i, /* 1146 */
+ Parrot_find_not_cclass_i_ic_s_i_i, /* 1147 */
+ Parrot_find_not_cclass_i_i_sc_i_i, /* 1148 */
+ Parrot_find_not_cclass_i_ic_sc_i_i, /* 1149 */
+ Parrot_find_not_cclass_i_i_s_ic_i, /* 1150 */
+ Parrot_find_not_cclass_i_ic_s_ic_i, /* 1151 */
+ Parrot_find_not_cclass_i_i_sc_ic_i, /* 1152 */
+ Parrot_find_not_cclass_i_ic_sc_ic_i, /* 1153 */
+ Parrot_find_not_cclass_i_i_s_i_ic, /* 1154 */
+ Parrot_find_not_cclass_i_ic_s_i_ic, /* 1155 */
+ Parrot_find_not_cclass_i_i_sc_i_ic, /* 1156 */
+ Parrot_find_not_cclass_i_ic_sc_i_ic, /* 1157 */
+ Parrot_find_not_cclass_i_i_s_ic_ic, /* 1158 */
+ Parrot_find_not_cclass_i_ic_s_ic_ic, /* 1159 */
+ Parrot_find_not_cclass_i_i_sc_ic_ic, /* 1160 */
+ Parrot_find_not_cclass_i_ic_sc_ic_ic, /* 1161 */
+ Parrot_escape_s_s, /* 1162 */
+ Parrot_compose_s_s, /* 1163 */
+ Parrot_compose_s_sc, /* 1164 */
+ Parrot_spawnw_i_s, /* 1165 */
+ Parrot_spawnw_i_sc, /* 1166 */
+ Parrot_spawnw_i_p, /* 1167 */
+ Parrot_err_i, /* 1168 */
+ Parrot_err_s, /* 1169 */
+ Parrot_err_s_i, /* 1170 */
+ Parrot_err_s_ic, /* 1171 */
+ Parrot_time_i, /* 1172 */
+ Parrot_time_n, /* 1173 */
+ Parrot_gmtime_s_i, /* 1174 */
+ Parrot_gmtime_s_ic, /* 1175 */
+ Parrot_localtime_s_i, /* 1176 */
+ Parrot_localtime_s_ic, /* 1177 */
+ Parrot_decodetime_p_i, /* 1178 */
+ Parrot_decodetime_p_ic, /* 1179 */
+ Parrot_decodelocaltime_p_i, /* 1180 */
+ Parrot_decodelocaltime_p_ic, /* 1181 */
+ Parrot_sysinfo_s_i, /* 1182 */
+ Parrot_sysinfo_s_ic, /* 1183 */
+ Parrot_sysinfo_i_i, /* 1184 */
+ Parrot_sysinfo_i_ic, /* 1185 */
+ Parrot_sleep_i, /* 1186 */
+ Parrot_sleep_ic, /* 1187 */
+ Parrot_sleep_n, /* 1188 */
+ Parrot_sleep_nc, /* 1189 */
+ Parrot_sizeof_i_i, /* 1190 */
+ Parrot_sizeof_i_ic, /* 1191 */
+ Parrot_store_lex_s_p, /* 1192 */
+ Parrot_store_lex_sc_p, /* 1193 */
+ Parrot_store_dynamic_lex_s_p, /* 1194 */
+ Parrot_store_dynamic_lex_sc_p, /* 1195 */
+ Parrot_find_lex_p_s, /* 1196 */
+ Parrot_find_lex_p_sc, /* 1197 */
+ Parrot_find_dynamic_lex_p_s, /* 1198 */
+ Parrot_find_dynamic_lex_p_sc, /* 1199 */
+ Parrot_find_caller_lex_p_s, /* 1200 */
+ Parrot_find_caller_lex_p_sc, /* 1201 */
+ Parrot_get_namespace_p, /* 1202 */
+ Parrot_get_namespace_p_p, /* 1203 */
+ Parrot_get_namespace_p_pc, /* 1204 */
+ Parrot_get_hll_namespace_p, /* 1205 */
+ Parrot_get_hll_namespace_p_p, /* 1206 */
+ Parrot_get_hll_namespace_p_pc, /* 1207 */
+ Parrot_get_root_namespace_p, /* 1208 */
+ Parrot_get_root_namespace_p_p, /* 1209 */
+ Parrot_get_root_namespace_p_pc, /* 1210 */
+ Parrot_get_global_p_s, /* 1211 */
+ Parrot_get_global_p_sc, /* 1212 */
+ Parrot_get_global_p_p_s, /* 1213 */
+ Parrot_get_global_p_pc_s, /* 1214 */
+ Parrot_get_global_p_p_sc, /* 1215 */
+ Parrot_get_global_p_pc_sc, /* 1216 */
+ Parrot_get_hll_global_p_s, /* 1217 */
+ Parrot_get_hll_global_p_sc, /* 1218 */
+ Parrot_get_hll_global_p_p_s, /* 1219 */
+ Parrot_get_hll_global_p_pc_s, /* 1220 */
+ Parrot_get_hll_global_p_p_sc, /* 1221 */
+ Parrot_get_hll_global_p_pc_sc, /* 1222 */
+ Parrot_get_root_global_p_s, /* 1223 */
+ Parrot_get_root_global_p_sc, /* 1224 */
+ Parrot_get_root_global_p_p_s, /* 1225 */
+ Parrot_get_root_global_p_pc_s, /* 1226 */
+ Parrot_get_root_global_p_p_sc, /* 1227 */
+ Parrot_get_root_global_p_pc_sc, /* 1228 */
+ Parrot_set_global_s_p, /* 1229 */
+ Parrot_set_global_sc_p, /* 1230 */
+ Parrot_set_global_p_s_p, /* 1231 */
+ Parrot_set_global_pc_s_p, /* 1232 */
+ Parrot_set_global_p_sc_p, /* 1233 */
+ Parrot_set_global_pc_sc_p, /* 1234 */
+ Parrot_set_hll_global_s_p, /* 1235 */
+ Parrot_set_hll_global_sc_p, /* 1236 */
+ Parrot_set_hll_global_p_s_p, /* 1237 */
+ Parrot_set_hll_global_pc_s_p, /* 1238 */
+ Parrot_set_hll_global_p_sc_p, /* 1239 */
+ Parrot_set_hll_global_pc_sc_p, /* 1240 */
+ Parrot_set_root_global_s_p, /* 1241 */
+ Parrot_set_root_global_sc_p, /* 1242 */
+ Parrot_set_root_global_p_s_p, /* 1243 */
+ Parrot_set_root_global_pc_s_p, /* 1244 */
+ Parrot_set_root_global_p_sc_p, /* 1245 */
+ Parrot_set_root_global_pc_sc_p, /* 1246 */
+ Parrot_find_name_p_s, /* 1247 */
+ Parrot_find_name_p_sc, /* 1248 */
+ Parrot_find_sub_not_null_p_s, /* 1249 */
+ Parrot_find_sub_not_null_p_sc, /* 1250 */
+ Parrot_trap, /* 1251 */
+ Parrot_fetch_p_p_p_p, /* 1252 */
+ Parrot_fetch_p_pc_p_p, /* 1253 */
+ Parrot_fetch_p_p_pc_p, /* 1254 */
+ Parrot_fetch_p_pc_pc_p, /* 1255 */
+ Parrot_fetch_p_p_p_pc, /* 1256 */
+ Parrot_fetch_p_pc_p_pc, /* 1257 */
+ Parrot_fetch_p_p_pc_pc, /* 1258 */
+ Parrot_fetch_p_pc_pc_pc, /* 1259 */
+ Parrot_fetch_p_p_i_p, /* 1260 */
+ Parrot_fetch_p_pc_i_p, /* 1261 */
+ Parrot_fetch_p_p_ic_p, /* 1262 */
+ Parrot_fetch_p_pc_ic_p, /* 1263 */
+ Parrot_fetch_p_p_i_pc, /* 1264 */
+ Parrot_fetch_p_pc_i_pc, /* 1265 */
+ Parrot_fetch_p_p_ic_pc, /* 1266 */
+ Parrot_fetch_p_pc_ic_pc, /* 1267 */
+ Parrot_fetch_p_p_s_p, /* 1268 */
+ Parrot_fetch_p_pc_s_p, /* 1269 */
+ Parrot_fetch_p_p_sc_p, /* 1270 */
+ Parrot_fetch_p_pc_sc_p, /* 1271 */
+ Parrot_fetch_p_p_s_pc, /* 1272 */
+ Parrot_fetch_p_pc_s_pc, /* 1273 */
+ Parrot_fetch_p_p_sc_pc, /* 1274 */
+ Parrot_fetch_p_pc_sc_pc, /* 1275 */
+ Parrot_vivify_p_p_p_p, /* 1276 */
+ Parrot_vivify_p_pc_p_p, /* 1277 */
+ Parrot_vivify_p_p_pc_p, /* 1278 */
+ Parrot_vivify_p_pc_pc_p, /* 1279 */
+ Parrot_vivify_p_p_p_pc, /* 1280 */
+ Parrot_vivify_p_pc_p_pc, /* 1281 */
+ Parrot_vivify_p_p_pc_pc, /* 1282 */
+ Parrot_vivify_p_pc_pc_pc, /* 1283 */
+ Parrot_vivify_p_p_i_p, /* 1284 */
+ Parrot_vivify_p_pc_i_p, /* 1285 */
+ Parrot_vivify_p_p_ic_p, /* 1286 */
+ Parrot_vivify_p_pc_ic_p, /* 1287 */
+ Parrot_vivify_p_p_i_pc, /* 1288 */
+ Parrot_vivify_p_pc_i_pc, /* 1289 */
+ Parrot_vivify_p_p_ic_pc, /* 1290 */
+ Parrot_vivify_p_pc_ic_pc, /* 1291 */
+ Parrot_vivify_p_p_s_p, /* 1292 */
+ Parrot_vivify_p_pc_s_p, /* 1293 */
+ Parrot_vivify_p_p_sc_p, /* 1294 */
+ Parrot_vivify_p_pc_sc_p, /* 1295 */
+ Parrot_vivify_p_p_s_pc, /* 1296 */
+ Parrot_vivify_p_pc_s_pc, /* 1297 */
+ Parrot_vivify_p_p_sc_pc, /* 1298 */
+ Parrot_vivify_p_pc_sc_pc, /* 1299 */
NULL /* NULL function pointer */
};
@@ -18324,9 +16996,9 @@
PARROT_FUNCTION_CORE, /* core_type = PARROT_XX_CORE */
0, /* flags */
2, /* major_version */
- 0, /* minor_version */
+ 1, /* minor_version */
0, /* patch_version */
- 1302, /* op_count */
+ 1300, /* op_count */
core_op_info_table, /* op_info_table */
core_op_func_table, /* op_func_table */
get_op /* op_code() */
@@ -18346,14 +17018,14 @@
opcode_t *
Parrot_noop (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 109 "src/ops/core.ops"
+#line 99 "src/ops/core.ops"
return (opcode_t *)cur_opcode + 1;}
opcode_t *
Parrot_cpu_ret (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 112 "src/ops/core.ops"
+#line 102 "src/ops/core.ops"
/* We only want to call __asm__("ret") if we're in the JIT core. Otherwise
we want to throw an error. Seriously people: Do not use this opcode
directly in PIR. Ever. It absolutely makes no sense and it doesn't do
@@ -18377,7 +17049,7 @@
opcode_t *
Parrot_check_events (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 132 "src/ops/core.ops"
+#line 122 "src/ops/core.ops"
opcode_t *next = cur_opcode + 1;
Parrot_cx_check_tasks(interp, interp->scheduler);
return (opcode_t *)next; /* force this being a branch op */
@@ -18386,7 +17058,7 @@
opcode_t *
Parrot_check_events__ (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 138 "src/ops/core.ops"
+#line 128 "src/ops/core.ops"
opcode_t *_this = CUR_OPCODE;
/* Restore op_func_table. */
disable_event_checking(interp);
@@ -18397,38 +17069,16 @@
opcode_t *
Parrot_wrapper__ (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 146 "src/ops/core.ops"
+#line 136 "src/ops/core.ops"
opcode_t *pc = CUR_OPCODE;
DO_OP(pc, interp);
return (opcode_t *)pc;
}
opcode_t *
-Parrot_prederef__ (opcode_t *cur_opcode, PARROT_INTERP) {
- Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 152 "src/ops/core.ops"
- opcode_t * const _this = CUR_OPCODE;
- if (PARROT_RUNCORE_CGOTO_OPS_TEST(interp->run_core)) {
- /* must be CGP then - check for events in not yet prederefed code */
- Parrot_cx_runloop_wake(interp, interp->scheduler);
- /* _this = CHECK_EVENTS(interp, _this); */
- }
- do_prederef((void**)cur_opcode, interp, interp->run_core);
- return (opcode_t *)_this; /* force this being a branch op */
-}
-
-opcode_t *
-Parrot_reserved_ic (opcode_t *cur_opcode, PARROT_INTERP) {
- Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 163 "src/ops/core.ops"
- /* reserve 1 entries */
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
Parrot_load_bytecode_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 167 "src/ops/core.ops"
+#line 142 "src/ops/core.ops"
Parrot_load_bytecode(interp, SREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -18436,7 +17086,7 @@
opcode_t *
Parrot_load_bytecode_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 167 "src/ops/core.ops"
+#line 142 "src/ops/core.ops"
Parrot_load_bytecode(interp, CONST(1)->u.string);
return (opcode_t *)cur_opcode + 2;}
@@ -18444,7 +17094,7 @@
opcode_t *
Parrot_load_language_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 178 "src/ops/core.ops"
+#line 153 "src/ops/core.ops"
Parrot_load_language(interp, SREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -18452,7 +17102,7 @@
opcode_t *
Parrot_load_language_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 178 "src/ops/core.ops"
+#line 153 "src/ops/core.ops"
Parrot_load_language(interp, CONST(1)->u.string);
return (opcode_t *)cur_opcode + 2;}
@@ -18460,21 +17110,21 @@
opcode_t *
Parrot_branch_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 204 "src/ops/core.ops"
+#line 179 "src/ops/core.ops"
return (opcode_t *)cur_opcode + IREG(1);
}
opcode_t *
Parrot_branch_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 204 "src/ops/core.ops"
+#line 179 "src/ops/core.ops"
return (opcode_t *)cur_opcode + cur_opcode[1];
}
opcode_t *
Parrot_local_branch_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 218 "src/ops/core.ops"
+#line 193 "src/ops/core.ops"
INTVAL return_addr;
opcode_t *dest = cur_opcode + 3;
@@ -18494,7 +17144,7 @@
opcode_t *
Parrot_local_branch_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 218 "src/ops/core.ops"
+#line 193 "src/ops/core.ops"
INTVAL return_addr;
opcode_t *dest = cur_opcode + 3;
@@ -18514,7 +17164,7 @@
opcode_t *
Parrot_local_return_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 241 "src/ops/core.ops"
+#line 216 "src/ops/core.ops"
INTVAL return_addr;
opcode_t *next;
opcode_t *dest = cur_opcode + 2;
@@ -18544,7 +17194,7 @@
opcode_t *
Parrot_jump_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 276 "src/ops/core.ops"
+#line 251 "src/ops/core.ops"
opcode_t * const loc = INTVAL2PTR(opcode_t *, IREG(1));
return (opcode_t *)loc;
}
@@ -18552,7 +17202,7 @@
opcode_t *
Parrot_jump_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 276 "src/ops/core.ops"
+#line 251 "src/ops/core.ops"
opcode_t * const loc = INTVAL2PTR(opcode_t *, cur_opcode[1]);
return (opcode_t *)loc;
}
@@ -18560,7 +17210,7 @@
opcode_t *
Parrot_enternative (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 289 "src/ops/core.ops"
+#line 264 "src/ops/core.ops"
opcode_t * const addr = run_native(interp, CUR_OPCODE,
interp->code->base.data);
return (opcode_t *)addr;
@@ -18569,7 +17219,7 @@
opcode_t *
Parrot_if_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 324 "src/ops/core.ops"
+#line 299 "src/ops/core.ops"
if (IREG(1) != 0)
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18578,7 +17228,7 @@
opcode_t *
Parrot_if_n_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 329 "src/ops/core.ops"
+#line 304 "src/ops/core.ops"
if (!FLOAT_IS_ZERO(NREG(1)))
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18587,7 +17237,7 @@
opcode_t *
Parrot_if_s_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 334 "src/ops/core.ops"
+#line 309 "src/ops/core.ops"
if (Parrot_str_boolean(interp, SREG(1)))
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18596,7 +17246,7 @@
opcode_t *
Parrot_if_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 339 "src/ops/core.ops"
+#line 314 "src/ops/core.ops"
if (VTABLE_get_bool(interp, PREG(1)))
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18605,7 +17255,7 @@
opcode_t *
Parrot_unless_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 358 "src/ops/core.ops"
+#line 333 "src/ops/core.ops"
if (IREG(1) == 0)
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18614,7 +17264,7 @@
opcode_t *
Parrot_unless_n_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 363 "src/ops/core.ops"
+#line 338 "src/ops/core.ops"
if (FLOAT_IS_ZERO(NREG(1)))
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18623,7 +17273,7 @@
opcode_t *
Parrot_unless_s_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 368 "src/ops/core.ops"
+#line 343 "src/ops/core.ops"
if (!Parrot_str_boolean(interp, SREG(1)))
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18632,7 +17282,7 @@
opcode_t *
Parrot_unless_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 373 "src/ops/core.ops"
+#line 348 "src/ops/core.ops"
if (!VTABLE_get_bool(interp, PREG(1)))
return (opcode_t *)cur_opcode + cur_opcode[2];
@@ -18641,7 +17291,7 @@
opcode_t *
Parrot_invokecc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 428 "src/ops/core.ops"
+#line 403 "src/ops/core.ops"
PMC * const p = PREG(1);
opcode_t *dest = cur_opcode + 2;
@@ -18655,7 +17305,7 @@
opcode_t *
Parrot_invoke_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 439 "src/ops/core.ops"
+#line 414 "src/ops/core.ops"
opcode_t *dest = cur_opcode + 3;
PMC * const p = PREG(1);
@@ -18669,7 +17319,7 @@
opcode_t *
Parrot_yield (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 450 "src/ops/core.ops"
+#line 425 "src/ops/core.ops"
opcode_t *dest = cur_opcode + 1;
PMC * const p = Parrot_pcc_get_sub(interp, CURRENT_CONTEXT(interp));
@@ -18682,7 +17332,7 @@
opcode_t *
Parrot_tailcall_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 460 "src/ops/core.ops"
+#line 435 "src/ops/core.ops"
PMC * const p = PREG(1);
opcode_t *dest = cur_opcode + 2;
PMC * const ctx = CURRENT_CONTEXT(interp);
@@ -18693,14 +17343,6 @@
Parrot_pcc_merge_signature_for_tailcall(interp, parent_call_sig, this_call_sig);
- /* Detach continuation from current CallContext to avoid marking dead object. */
- /* RetContinuation will kill itself after invoke */
- if (interp->current_cont->vtable->base_type == enum_class_RetContinuation
- && Parrot_pcc_do_run_ops(interp, p)) {
- PMC_cont(interp->current_cont)->from_ctx = parent_ctx;
- Parrot_pcc_set_continuation(interp, ctx, PMCNULL);
- }
-
SUB_FLAG_TAILCALL_SET(interp->current_cont);
dest = VTABLE_invoke(interp, p, dest);
return (opcode_t *)dest;
@@ -18709,7 +17351,7 @@
opcode_t *
Parrot_returncc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 484 "src/ops/core.ops"
+#line 451 "src/ops/core.ops"
PMC * const p = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
opcode_t * const dest = VTABLE_invoke(interp, p, cur_opcode + 1);
return (opcode_t *)dest;
@@ -18718,7 +17360,7 @@
opcode_t *
Parrot_capture_lex_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 490 "src/ops/core.ops"
+#line 457 "src/ops/core.ops"
Parrot_capture_lex(interp, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -18726,7 +17368,7 @@
opcode_t *
Parrot_newclosure_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 494 "src/ops/core.ops"
+#line 461 "src/ops/core.ops"
PREG(1) = parrot_new_closure(interp, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -18734,7 +17376,7 @@
opcode_t *
Parrot_set_args_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 532 "src/ops/core.ops"
+#line 499 "src/ops/core.ops"
opcode_t * const raw_args = CUR_OPCODE;
PMC * const signature = CONST(1)->u.key;
PMC * call_sig;
@@ -18751,7 +17393,7 @@
opcode_t *
Parrot_get_results_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 546 "src/ops/core.ops"
+#line 513 "src/ops/core.ops"
opcode_t * const raw_returns = CUR_OPCODE;
PMC * const signature = CONST(1)->u.key;
PMC * call_sig;
@@ -18769,7 +17411,7 @@
opcode_t *
Parrot_get_params_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 561 "src/ops/core.ops"
+#line 528 "src/ops/core.ops"
opcode_t * const raw_params = CUR_OPCODE;
PMC *caller_ctx, *ctx;
PMC *ccont, *call_object;
@@ -18797,7 +17439,7 @@
opcode_t *
Parrot_set_returns_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 586 "src/ops/core.ops"
+#line 553 "src/ops/core.ops"
opcode_t * const raw_returns = CUR_OPCODE;
PMC *signature = CONST(1)->u.key;
PMC *ctx = CURRENT_CONTEXT(interp);
@@ -18815,7 +17457,7 @@
opcode_t *
Parrot_result_info_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 610 "src/ops/core.ops"
+#line 577 "src/ops/core.ops"
PMC *caller_ctx = Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
PMC *call_object = Parrot_pcc_get_signature(interp, caller_ctx);
PMC *sig = VTABLE_get_attr_str(interp, call_object,
@@ -18823,7 +17465,7 @@
/* If no elements, hand back empty array; otherwise PMC. */
if (!sig)
- PREG(1) = pmc_new(interp, enum_class_FixedIntegerArray);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
else
PREG(1) = sig;
@@ -18832,7 +17474,7 @@
opcode_t *
Parrot_set_addr_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 651 "src/ops/core.ops"
+#line 618 "src/ops/core.ops"
IREG(1) = PTR2INTVAL(CUR_OPCODE + cur_opcode[2]);
return (opcode_t *)cur_opcode + 3;}
@@ -18840,7 +17482,7 @@
opcode_t *
Parrot_set_addr_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 655 "src/ops/core.ops"
+#line 622 "src/ops/core.ops"
VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + cur_opcode[2]));
return (opcode_t *)cur_opcode + 3;}
@@ -18848,7 +17490,7 @@
opcode_t *
Parrot_set_addr_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 659 "src/ops/core.ops"
+#line 626 "src/ops/core.ops"
VTABLE_set_pointer(interp, PREG(1), (void*)IREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -18856,7 +17498,7 @@
opcode_t *
Parrot_get_addr_i_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 663 "src/ops/core.ops"
+#line 630 "src/ops/core.ops"
void *ptr = VTABLE_get_pointer(interp, PREG(2));
IREG(1) = (INTVAL)ptr;
@@ -18865,7 +17507,7 @@
opcode_t *
Parrot_schedule_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 685 "src/ops/core.ops"
+#line 652 "src/ops/core.ops"
Parrot_cx_schedule_task(interp, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -18873,7 +17515,7 @@
opcode_t *
Parrot_addhandler_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 696 "src/ops/core.ops"
+#line 663 "src/ops/core.ops"
Parrot_cx_add_handler(interp, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -18881,8 +17523,8 @@
opcode_t *
Parrot_push_eh_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 773 "src/ops/core.ops"
- PMC * const eh = pmc_new(interp, enum_class_ExceptionHandler);
+#line 740 "src/ops/core.ops"
+ PMC * const eh = Parrot_pmc_new(interp, enum_class_ExceptionHandler);
VTABLE_set_pointer(interp, eh, CUR_OPCODE + cur_opcode[1]);
Parrot_cx_add_handler_local(interp, eh);
@@ -18891,7 +17533,7 @@
opcode_t *
Parrot_push_eh_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 779 "src/ops/core.ops"
+#line 746 "src/ops/core.ops"
Parrot_cx_add_handler_local(interp, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -18899,7 +17541,7 @@
opcode_t *
Parrot_pop_eh (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 783 "src/ops/core.ops"
+#line 750 "src/ops/core.ops"
Parrot_cx_delete_handler_local(interp,
Parrot_str_new(interp, "exception", 9));
@@ -18908,7 +17550,7 @@
opcode_t *
Parrot_throw_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 788 "src/ops/core.ops"
+#line 755 "src/ops/core.ops"
PMC * except = PREG(1);
opcode_t *dest;
opcode_t *const ret = cur_opcode + 2;
@@ -18926,7 +17568,7 @@
opcode_t *
Parrot_throw_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 803 "src/ops/core.ops"
+#line 770 "src/ops/core.ops"
opcode_t * dest;
PMC * except = PREG(1);
if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
@@ -18941,7 +17583,7 @@
opcode_t *
Parrot_rethrow_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 815 "src/ops/core.ops"
+#line 782 "src/ops/core.ops"
opcode_t * dest;
if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_Exception) {
opcode_t * const ret = cur_opcode + 2;
@@ -18958,7 +17600,7 @@
opcode_t *
Parrot_count_eh_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 829 "src/ops/core.ops"
+#line 796 "src/ops/core.ops"
IREG(1) = Parrot_cx_count_handlers_local(interp,
Parrot_str_new(interp, "exception", 9));
@@ -18967,7 +17609,7 @@
opcode_t *
Parrot_die_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 834 "src/ops/core.ops"
+#line 801 "src/ops/core.ops"
opcode_t *dest;
opcode_t * const ret = cur_opcode + 2;
PMC *resume = new_ret_continuation_pmc(interp, ret);
@@ -18983,7 +17625,7 @@
opcode_t *
Parrot_die_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 834 "src/ops/core.ops"
+#line 801 "src/ops/core.ops"
opcode_t *dest;
opcode_t * const ret = cur_opcode + 2;
PMC *resume = new_ret_continuation_pmc(interp, ret);
@@ -18999,7 +17641,7 @@
opcode_t *
Parrot_die_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 847 "src/ops/core.ops"
+#line 814 "src/ops/core.ops"
opcode_t *dest;
opcode_t * const ret = cur_opcode + 2;
PMC *resume = new_ret_continuation_pmc(interp, ret);
@@ -19017,7 +17659,7 @@
opcode_t *
Parrot_die_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 847 "src/ops/core.ops"
+#line 814 "src/ops/core.ops"
opcode_t *dest;
opcode_t * const ret = cur_opcode + 2;
PMC *resume = new_ret_continuation_pmc(interp, ret);
@@ -19035,7 +17677,7 @@
opcode_t *
Parrot_die_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 862 "src/ops/core.ops"
+#line 829 "src/ops/core.ops"
if (IREG(1) == EXCEPT_doomed)
_exit(IREG(2));
else {
@@ -19051,7 +17693,7 @@
opcode_t *
Parrot_die_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 862 "src/ops/core.ops"
+#line 829 "src/ops/core.ops"
if (cur_opcode[1] == EXCEPT_doomed)
_exit(IREG(2));
else {
@@ -19067,7 +17709,7 @@
opcode_t *
Parrot_die_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 862 "src/ops/core.ops"
+#line 829 "src/ops/core.ops"
if (IREG(1) == EXCEPT_doomed)
_exit(cur_opcode[2]);
else {
@@ -19083,7 +17725,7 @@
opcode_t *
Parrot_die_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 862 "src/ops/core.ops"
+#line 829 "src/ops/core.ops"
if (cur_opcode[1] == EXCEPT_doomed)
_exit(cur_opcode[2]);
else {
@@ -19099,7 +17741,7 @@
opcode_t *
Parrot_exit_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 875 "src/ops/core.ops"
+#line 842 "src/ops/core.ops"
opcode_t *dest;
opcode_t * const ret = cur_opcode + 2;
PMC *resume = new_ret_continuation_pmc(interp, ret);
@@ -19116,7 +17758,7 @@
opcode_t *
Parrot_exit_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 875 "src/ops/core.ops"
+#line 842 "src/ops/core.ops"
opcode_t *dest;
opcode_t * const ret = cur_opcode + 2;
PMC *resume = new_ret_continuation_pmc(interp, ret);
@@ -19133,8 +17775,8 @@
opcode_t *
Parrot_pushmark_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 889 "src/ops/core.ops"
- PMC * const newint = pmc_new(interp, enum_class_Integer);
+#line 856 "src/ops/core.ops"
+ PMC * const newint = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, newint, IREG(1));
VTABLE_push_pmc(interp, interp->dynamic_env, newint);
@@ -19143,8 +17785,8 @@
opcode_t *
Parrot_pushmark_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 889 "src/ops/core.ops"
- PMC * const newint = pmc_new(interp, enum_class_Integer);
+#line 856 "src/ops/core.ops"
+ PMC * const newint = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, newint, cur_opcode[1]);
VTABLE_push_pmc(interp, interp->dynamic_env, newint);
@@ -19153,7 +17795,7 @@
opcode_t *
Parrot_popmark_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 895 "src/ops/core.ops"
+#line 862 "src/ops/core.ops"
opcode_t * dest;
opcode_t * const ret = cur_opcode + 2;
int found = 0;
@@ -19177,7 +17819,7 @@
opcode_t *
Parrot_popmark_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 895 "src/ops/core.ops"
+#line 862 "src/ops/core.ops"
opcode_t * dest;
opcode_t * const ret = cur_opcode + 2;
int found = 0;
@@ -19201,7 +17843,7 @@
opcode_t *
Parrot_pushaction_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 915 "src/ops/core.ops"
+#line 882 "src/ops/core.ops"
VTABLE_push_pmc(interp, interp->dynamic_env, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -19209,7 +17851,7 @@
opcode_t *
Parrot_debug_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 942 "src/ops/core.ops"
+#line 909 "src/ops/core.ops"
if (IREG(1) != 0) { Interp_debug_SET(interp, IREG(1)); }
else { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19218,7 +17860,7 @@
opcode_t *
Parrot_debug_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 942 "src/ops/core.ops"
+#line 909 "src/ops/core.ops"
if (cur_opcode[1] != 0) { Interp_debug_SET(interp, cur_opcode[1]); }
else { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19227,7 +17869,7 @@
opcode_t *
Parrot_bounds_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 957 "src/ops/core.ops"
+#line 924 "src/ops/core.ops"
if (IREG(1) != 0) { Parrot_set_flag(interp, PARROT_BOUNDS_FLAG); }
else { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19236,7 +17878,7 @@
opcode_t *
Parrot_bounds_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 957 "src/ops/core.ops"
+#line 924 "src/ops/core.ops"
if (cur_opcode[1] != 0) { Parrot_set_flag(interp, PARROT_BOUNDS_FLAG); }
else { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19245,7 +17887,7 @@
opcode_t *
Parrot_profile_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 972 "src/ops/core.ops"
+#line 939 "src/ops/core.ops"
if (IREG(1) != 0) { Parrot_set_flag(interp, PARROT_PROFILE_FLAG); }
else { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19254,7 +17896,7 @@
opcode_t *
Parrot_profile_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 972 "src/ops/core.ops"
+#line 939 "src/ops/core.ops"
if (cur_opcode[1] != 0) { Parrot_set_flag(interp, PARROT_PROFILE_FLAG); }
else { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19263,7 +17905,7 @@
opcode_t *
Parrot_trace_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 987 "src/ops/core.ops"
+#line 954 "src/ops/core.ops"
if (IREG(1) != 0) { Parrot_set_trace(interp, IREG(1)); }
else { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19272,7 +17914,7 @@
opcode_t *
Parrot_trace_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 987 "src/ops/core.ops"
+#line 954 "src/ops/core.ops"
if (cur_opcode[1] != 0) { Parrot_set_trace(interp, cur_opcode[1]); }
else { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }
interp->resume_offset = REL_PC + 2; interp->resume_flag = 1; return (opcode_t *)0;
@@ -19281,7 +17923,7 @@
opcode_t *
Parrot_gc_debug_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1001 "src/ops/core.ops"
+#line 968 "src/ops/core.ops"
if (IREG(1) != 0) { Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG); }
else { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
@@ -19290,7 +17932,7 @@
opcode_t *
Parrot_gc_debug_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1001 "src/ops/core.ops"
+#line 968 "src/ops/core.ops"
if (cur_opcode[1] != 0) { Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG); }
else { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
@@ -19299,7 +17941,7 @@
opcode_t *
Parrot_interpinfo_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1035 "src/ops/core.ops"
+#line 1002 "src/ops/core.ops"
IREG(1) = interpinfo(interp, IREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -19307,7 +17949,7 @@
opcode_t *
Parrot_interpinfo_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1035 "src/ops/core.ops"
+#line 1002 "src/ops/core.ops"
IREG(1) = interpinfo(interp, cur_opcode[2]);
return (opcode_t *)cur_opcode + 3;}
@@ -19315,7 +17957,7 @@
opcode_t *
Parrot_interpinfo_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1039 "src/ops/core.ops"
+#line 1006 "src/ops/core.ops"
PREG(1) = interpinfo_p(interp, IREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -19323,7 +17965,7 @@
opcode_t *
Parrot_interpinfo_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1039 "src/ops/core.ops"
+#line 1006 "src/ops/core.ops"
PREG(1) = interpinfo_p(interp, cur_opcode[2]);
return (opcode_t *)cur_opcode + 3;}
@@ -19331,23 +17973,25 @@
opcode_t *
Parrot_interpinfo_s_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1043 "src/ops/core.ops"
- SREG(1) = interpinfo_s(interp, IREG(2));
+#line 1010 "src/ops/core.ops"
+ STRING * s = interpinfo_s(interp, IREG(2));
+ SREG(1) = s;
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_interpinfo_s_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1043 "src/ops/core.ops"
- SREG(1) = interpinfo_s(interp, cur_opcode[2]);
+#line 1010 "src/ops/core.ops"
+ STRING * s = interpinfo_s(interp, cur_opcode[2]);
+ SREG(1) = s;
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_warningson_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1062 "src/ops/core.ops"
+#line 1030 "src/ops/core.ops"
PARROT_WARNINGS_on(interp, IREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -19355,7 +17999,7 @@
opcode_t *
Parrot_warningson_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1062 "src/ops/core.ops"
+#line 1030 "src/ops/core.ops"
PARROT_WARNINGS_on(interp, cur_opcode[1]);
return (opcode_t *)cur_opcode + 2;}
@@ -19363,7 +18007,7 @@
opcode_t *
Parrot_warningsoff_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1074 "src/ops/core.ops"
+#line 1042 "src/ops/core.ops"
PARROT_WARNINGS_off(interp, IREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -19371,7 +18015,7 @@
opcode_t *
Parrot_warningsoff_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1074 "src/ops/core.ops"
+#line 1042 "src/ops/core.ops"
PARROT_WARNINGS_off(interp, cur_opcode[1]);
return (opcode_t *)cur_opcode + 2;}
@@ -19379,7 +18023,7 @@
opcode_t *
Parrot_errorson_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1109 "src/ops/core.ops"
+#line 1077 "src/ops/core.ops"
PARROT_ERRORS_on(interp, IREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -19387,7 +18031,7 @@
opcode_t *
Parrot_errorson_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1109 "src/ops/core.ops"
+#line 1077 "src/ops/core.ops"
PARROT_ERRORS_on(interp, cur_opcode[1]);
return (opcode_t *)cur_opcode + 2;}
@@ -19395,7 +18039,7 @@
opcode_t *
Parrot_errorsoff_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1121 "src/ops/core.ops"
+#line 1089 "src/ops/core.ops"
PARROT_ERRORS_off(interp, IREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -19403,7 +18047,7 @@
opcode_t *
Parrot_errorsoff_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1121 "src/ops/core.ops"
+#line 1089 "src/ops/core.ops"
PARROT_ERRORS_off(interp, cur_opcode[1]);
return (opcode_t *)cur_opcode + 2;}
@@ -19411,7 +18055,7 @@
opcode_t *
Parrot_runinterp_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1137 "src/ops/core.ops"
+#line 1105 "src/ops/core.ops"
Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
Parrot_switch_to_cs(new_interp, interp->code, 1);
@@ -19422,7 +18066,7 @@
opcode_t *
Parrot_runinterp_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1137 "src/ops/core.ops"
+#line 1105 "src/ops/core.ops"
Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
Parrot_switch_to_cs(new_interp, interp->code, 1);
@@ -19433,7 +18077,7 @@
opcode_t *
Parrot_getinterp_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1144 "src/ops/core.ops"
+#line 1112 "src/ops/core.ops"
PREG(1) = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
IGLOBALS_INTERPRETER);
@@ -19442,7 +18086,7 @@
opcode_t *
Parrot_sweep_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1188 "src/ops/core.ops"
+#line 1156 "src/ops/core.ops"
if (cur_opcode[1])
Parrot_gc_mark_and_sweep(interp, 0);
else
@@ -19454,7 +18098,7 @@
opcode_t *
Parrot_collect (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1202 "src/ops/core.ops"
+#line 1170 "src/ops/core.ops"
Parrot_gc_compact_memory_pool(interp);
return (opcode_t *)cur_opcode + 1;}
@@ -19462,7 +18106,7 @@
opcode_t *
Parrot_sweepoff (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1212 "src/ops/core.ops"
+#line 1180 "src/ops/core.ops"
Parrot_block_GC_mark(interp);
return (opcode_t *)cur_opcode + 1;}
@@ -19470,7 +18114,7 @@
opcode_t *
Parrot_sweepon (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1222 "src/ops/core.ops"
+#line 1190 "src/ops/core.ops"
Parrot_unblock_GC_mark(interp);
return (opcode_t *)cur_opcode + 1;}
@@ -19478,7 +18122,7 @@
opcode_t *
Parrot_collectoff (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1232 "src/ops/core.ops"
+#line 1200 "src/ops/core.ops"
Parrot_block_GC_sweep(interp);
return (opcode_t *)cur_opcode + 1;}
@@ -19486,7 +18130,7 @@
opcode_t *
Parrot_collecton (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1242 "src/ops/core.ops"
+#line 1210 "src/ops/core.ops"
Parrot_unblock_GC_sweep(interp);
return (opcode_t *)cur_opcode + 1;}
@@ -19494,7 +18138,7 @@
opcode_t *
Parrot_needs_destroy_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1253 "src/ops/core.ops"
+#line 1221 "src/ops/core.ops"
Parrot_gc_pmc_needs_early_collection(interp, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -19502,7 +18146,7 @@
opcode_t *
Parrot_loadlib_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1308 "src/ops/core.ops"
+#line 1276 "src/ops/core.ops"
PREG(1) = Parrot_load_lib(interp, SREG(2), NULL);
return (opcode_t *)cur_opcode + 3;}
@@ -19510,7 +18154,7 @@
opcode_t *
Parrot_loadlib_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1308 "src/ops/core.ops"
+#line 1276 "src/ops/core.ops"
PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, NULL);
return (opcode_t *)cur_opcode + 3;}
@@ -19518,7 +18162,7 @@
opcode_t *
Parrot_dlfunc_p_p_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1312 "src/ops/core.ops"
+#line 1280 "src/ops/core.ops"
char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void *dl_handle = NULL;
void *ptr = NULL;
@@ -19540,10 +18184,10 @@
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
- PREG(1) = pmc_new(interp, enum_class_NCI);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
PObj_get_FLAGS(PREG(1)) |= PObj_private1_FLAG;
}
@@ -19554,7 +18198,7 @@
opcode_t *
Parrot_dlfunc_p_p_sc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1312 "src/ops/core.ops"
+#line 1280 "src/ops/core.ops"
char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void *dl_handle = NULL;
void *ptr = NULL;
@@ -19576,10 +18220,10 @@
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
- PREG(1) = pmc_new(interp, enum_class_NCI);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
PObj_get_FLAGS(PREG(1)) |= PObj_private1_FLAG;
}
@@ -19590,7 +18234,7 @@
opcode_t *
Parrot_dlfunc_p_p_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1312 "src/ops/core.ops"
+#line 1280 "src/ops/core.ops"
char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void *dl_handle = NULL;
void *ptr = NULL;
@@ -19612,10 +18256,10 @@
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
- PREG(1) = pmc_new(interp, enum_class_NCI);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
PObj_get_FLAGS(PREG(1)) |= PObj_private1_FLAG;
}
@@ -19626,7 +18270,7 @@
opcode_t *
Parrot_dlfunc_p_p_sc_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1312 "src/ops/core.ops"
+#line 1280 "src/ops/core.ops"
char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void *dl_handle = NULL;
void *ptr = NULL;
@@ -19648,10 +18292,10 @@
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
- PREG(1) = pmc_new(interp, enum_class_NCI);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
PObj_get_FLAGS(PREG(1)) |= PObj_private1_FLAG;
}
@@ -19662,7 +18306,7 @@
opcode_t *
Parrot_dlvar_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1344 "src/ops/core.ops"
+#line 1312 "src/ops/core.ops"
char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void * p = NULL;
void *dl_handle = NULL;
@@ -19675,12 +18319,12 @@
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
/* At this point we have the symbol's address. We just need to build
a PMC with it so we can get and set the value */
- PREG(1) = pmc_new(interp, enum_class_UnManagedStruct);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, PREG(1), p);
}
Parrot_str_free_cstring(name);
@@ -19690,7 +18334,7 @@
opcode_t *
Parrot_dlvar_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1344 "src/ops/core.ops"
+#line 1312 "src/ops/core.ops"
char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void * p = NULL;
void *dl_handle = NULL;
@@ -19703,12 +18347,12 @@
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
"Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
/* At this point we have the symbol's address. We just need to build
a PMC with it so we can get and set the value */
- PREG(1) = pmc_new(interp, enum_class_UnManagedStruct);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, PREG(1), p);
}
Parrot_str_free_cstring(name);
@@ -19718,7 +18362,7 @@
opcode_t *
Parrot_compreg_s_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1368 "src/ops/core.ops"
+#line 1336 "src/ops/core.ops"
PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
interp->iglobals, IGLOBALS_COMPREG_HASH);
VTABLE_set_pmc_keyed_str(interp, compreg_hash, SREG(1), PREG(2));
@@ -19728,7 +18372,7 @@
opcode_t *
Parrot_compreg_sc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1368 "src/ops/core.ops"
+#line 1336 "src/ops/core.ops"
PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
interp->iglobals, IGLOBALS_COMPREG_HASH);
VTABLE_set_pmc_keyed_str(interp, compreg_hash, CONST(1)->u.string, PREG(2));
@@ -19738,7 +18382,7 @@
opcode_t *
Parrot_compreg_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1374 "src/ops/core.ops"
+#line 1342 "src/ops/core.ops"
PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
interp->iglobals, IGLOBALS_COMPREG_HASH);
PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SREG(2));
@@ -19748,7 +18392,7 @@
opcode_t *
Parrot_compreg_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1374 "src/ops/core.ops"
+#line 1342 "src/ops/core.ops"
PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
interp->iglobals, IGLOBALS_COMPREG_HASH);
PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, CONST(2)->u.string);
@@ -19758,7 +18402,7 @@
opcode_t *
Parrot_new_callback_p_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1380 "src/ops/core.ops"
+#line 1348 "src/ops/core.ops"
PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -19766,7 +18410,7 @@
opcode_t *
Parrot_new_callback_p_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1380 "src/ops/core.ops"
+#line 1348 "src/ops/core.ops"
PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), CONST(4)->u.string);
return (opcode_t *)cur_opcode + 5;}
@@ -19774,14 +18418,14 @@
opcode_t *
Parrot_annotations_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1407 "src/ops/core.ops"
+#line 1375 "src/ops/core.ops"
if (interp->code->annotations) {
opcode_t const cur_pos = (cur_opcode + 2) - interp->code->base.data;
PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
cur_pos, NULL);
}
else {
- PREG(1) = pmc_new(interp, enum_class_Hash);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Hash);
}
return (opcode_t *)cur_opcode + 2;}
@@ -19789,7 +18433,7 @@
opcode_t *
Parrot_annotations_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1425 "src/ops/core.ops"
+#line 1393 "src/ops/core.ops"
if (interp->code->annotations) {
opcode_t const cur_pos = (cur_opcode + 3) - interp->code->base.data;
PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
@@ -19804,7 +18448,7 @@
opcode_t *
Parrot_annotations_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1425 "src/ops/core.ops"
+#line 1393 "src/ops/core.ops"
if (interp->code->annotations) {
opcode_t const cur_pos = (cur_opcode + 3) - interp->code->base.data;
PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
@@ -19836,7 +18480,9 @@
Parrot_band_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 66 "src/ops/bit.ops"
- VTABLE_i_bitwise_and_int(interp, PREG(1), IREG(2));
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = a & IREG(2);
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
@@ -19844,22 +18490,26 @@
Parrot_band_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 66 "src/ops/bit.ops"
- VTABLE_i_bitwise_and_int(interp, PREG(1), cur_opcode[2]);
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = a & cur_opcode[2];
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_band_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 70 "src/ops/bit.ops"
- VTABLE_i_bitwise_and(interp, PREG(1), PREG(2));
+#line 72 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), a & b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_band_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 74 "src/ops/bit.ops"
+#line 78 "src/ops/bit.ops"
IREG(1) = IREG(2) & IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -19867,7 +18517,7 @@
opcode_t *
Parrot_band_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 74 "src/ops/bit.ops"
+#line 78 "src/ops/bit.ops"
IREG(1) = cur_opcode[2] & IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -19875,7 +18525,7 @@
opcode_t *
Parrot_band_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 74 "src/ops/bit.ops"
+#line 78 "src/ops/bit.ops"
IREG(1) = IREG(2) & cur_opcode[3];
return (opcode_t *)cur_opcode + 4;}
@@ -19883,31 +18533,35 @@
opcode_t *
Parrot_band_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 78 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_and_int(interp, PREG(2), IREG(3), PREG(1));
+#line 82 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), a & IREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_band_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 78 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_and_int(interp, PREG(2), cur_opcode[3], PREG(1));
+#line 82 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), a & cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_band_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 82 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_and(interp, PREG(2), PREG(3), PREG(1));
+#line 87 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+ VTABLE_set_integer_native(interp, PREG(1), a & b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bands_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 106 "src/ops/bit.ops"
+#line 113 "src/ops/bit.ops"
Parrot_str_bitwise_and(interp, SREG(1), SREG(2), &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -19915,7 +18569,7 @@
opcode_t *
Parrot_bands_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 106 "src/ops/bit.ops"
+#line 113 "src/ops/bit.ops"
Parrot_str_bitwise_and(interp, SREG(1), CONST(2)->u.string, &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -19923,31 +18577,38 @@
opcode_t *
Parrot_bands_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 110 "src/ops/bit.ops"
- VTABLE_i_bitwise_ands_str(interp, PREG(1), SREG(2));
+#line 117 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(1));
+ STRING * const b = Parrot_str_bitwise_and(interp, a, SREG(2), NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bands_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 110 "src/ops/bit.ops"
- VTABLE_i_bitwise_ands_str(interp, PREG(1), CONST(2)->u.string);
+#line 117 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(1));
+ STRING * const b = Parrot_str_bitwise_and(interp, a, CONST(2)->u.string, NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bands_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 114 "src/ops/bit.ops"
- VTABLE_i_bitwise_ands(interp, PREG(1), PREG(2));
+#line 123 "src/ops/bit.ops"
+ STRING * a = VTABLE_get_string(interp, PREG(1));
+ STRING * b = VTABLE_get_string(interp, PREG(2));
+ a = Parrot_str_bitwise_and(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, PREG(1), a);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bands_s_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 118 "src/ops/bit.ops"
+#line 130 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_and(interp, SREG(2), SREG(3), NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -19955,7 +18616,7 @@
opcode_t *
Parrot_bands_s_sc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 118 "src/ops/bit.ops"
+#line 130 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_and(interp, CONST(2)->u.string, SREG(3), NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -19963,7 +18624,7 @@
opcode_t *
Parrot_bands_s_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 118 "src/ops/bit.ops"
+#line 130 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_and(interp, SREG(2), CONST(3)->u.string, NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -19971,31 +18632,38 @@
opcode_t *
Parrot_bands_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 122 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_ands_str(interp, PREG(2), SREG(3), PREG(1));
+#line 134 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(2));
+ STRING * const b = Parrot_str_bitwise_and(interp, a, SREG(3), NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bands_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 122 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_ands_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+#line 134 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(2));
+ STRING * const b = Parrot_str_bitwise_and(interp, a, CONST(3)->u.string, NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bands_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 126 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_ands(interp, PREG(2), PREG(3), PREG(1));
+#line 140 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(2));
+ STRING * const b = VTABLE_get_string(interp, PREG(3));
+ STRING * const c = Parrot_str_bitwise_and(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bnot_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 144 "src/ops/bit.ops"
+#line 161 "src/ops/bit.ops"
IREG(1) = ~ IREG(1);
return (opcode_t *)cur_opcode + 2;}
@@ -20003,7 +18671,7 @@
opcode_t *
Parrot_bnot_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 148 "src/ops/bit.ops"
+#line 165 "src/ops/bit.ops"
IREG(1) = ~ IREG(2);
return (opcode_t *)cur_opcode + 3;}
@@ -20011,23 +18679,27 @@
opcode_t *
Parrot_bnot_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 152 "src/ops/bit.ops"
- VTABLE_i_bitwise_not(interp, PREG(1));
+#line 169 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ VTABLE_set_integer_native(interp, PREG(1), ~a);
return (opcode_t *)cur_opcode + 2;}
opcode_t *
Parrot_bnot_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 156 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_not(interp, PREG(2), PREG(1));
+#line 174 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
+ VTABLE_set_integer_native(interp, b, ~a);
+ PREG(1) = b;
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bnots_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 170 "src/ops/bit.ops"
+#line 191 "src/ops/bit.ops"
Parrot_str_bitwise_not(interp, SREG(1), &SREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -20035,7 +18707,7 @@
opcode_t *
Parrot_bnots_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 174 "src/ops/bit.ops"
+#line 195 "src/ops/bit.ops"
Parrot_str_bitwise_not(interp, SREG(2), &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -20043,7 +18715,7 @@
opcode_t *
Parrot_bnots_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 174 "src/ops/bit.ops"
+#line 195 "src/ops/bit.ops"
Parrot_str_bitwise_not(interp, CONST(2)->u.string, &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -20051,23 +18723,27 @@
opcode_t *
Parrot_bnots_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 178 "src/ops/bit.ops"
- VTABLE_i_bitwise_nots(interp, PREG(1));
+#line 199 "src/ops/bit.ops"
+ STRING * a = VTABLE_get_string(interp, PREG(1));
+ STRING * b = Parrot_str_bitwise_not(interp, a, NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 2;}
opcode_t *
Parrot_bnots_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 182 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_nots(interp, PREG(2), PREG(1));
+#line 205 "src/ops/bit.ops"
+ STRING * a = VTABLE_get_string(interp, PREG(2));
+ STRING * b = Parrot_str_bitwise_not(interp, a, NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bor_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 208 "src/ops/bit.ops"
+#line 233 "src/ops/bit.ops"
IREG(1) |= IREG(2);
return (opcode_t *)cur_opcode + 3;}
@@ -20075,7 +18751,7 @@
opcode_t *
Parrot_bor_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 208 "src/ops/bit.ops"
+#line 233 "src/ops/bit.ops"
IREG(1) |= cur_opcode[2];
return (opcode_t *)cur_opcode + 3;}
@@ -20083,31 +18759,35 @@
opcode_t *
Parrot_bor_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 212 "src/ops/bit.ops"
- VTABLE_i_bitwise_or_int(interp, PREG(1), IREG(2));
+#line 237 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ VTABLE_set_integer_native(interp, PREG(1), a | IREG(2));
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bor_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 212 "src/ops/bit.ops"
- VTABLE_i_bitwise_or_int(interp, PREG(1), cur_opcode[2]);
+#line 237 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ VTABLE_set_integer_native(interp, PREG(1), a | cur_opcode[2]);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bor_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 216 "src/ops/bit.ops"
- VTABLE_i_bitwise_or(interp, PREG(1), PREG(2));
+#line 242 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), a | b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bor_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 220 "src/ops/bit.ops"
+#line 248 "src/ops/bit.ops"
IREG(1) = IREG(2) | IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -20115,7 +18795,7 @@
opcode_t *
Parrot_bor_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 220 "src/ops/bit.ops"
+#line 248 "src/ops/bit.ops"
IREG(1) = cur_opcode[2] | IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -20123,7 +18803,7 @@
opcode_t *
Parrot_bor_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 220 "src/ops/bit.ops"
+#line 248 "src/ops/bit.ops"
IREG(1) = IREG(2) | cur_opcode[3];
return (opcode_t *)cur_opcode + 4;}
@@ -20131,31 +18811,35 @@
opcode_t *
Parrot_bor_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 224 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_or_int(interp, PREG(2), IREG(3), PREG(1));
+#line 252 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), a | IREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bor_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 224 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_or_int(interp, PREG(2), cur_opcode[3], PREG(1));
+#line 252 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), a | cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bor_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 228 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_or(interp, PREG(2), PREG(3), PREG(1));
+#line 257 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+ VTABLE_set_integer_native(interp, PREG(1), a | b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bors_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 252 "src/ops/bit.ops"
+#line 283 "src/ops/bit.ops"
Parrot_str_bitwise_or(interp, SREG(1), SREG(2), &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -20163,7 +18847,7 @@
opcode_t *
Parrot_bors_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 252 "src/ops/bit.ops"
+#line 283 "src/ops/bit.ops"
Parrot_str_bitwise_or(interp, SREG(1), CONST(2)->u.string, &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -20171,31 +18855,38 @@
opcode_t *
Parrot_bors_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 256 "src/ops/bit.ops"
- VTABLE_i_bitwise_ors_str(interp, PREG(1), SREG(2));
+#line 287 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(1));
+ STRING * const b = Parrot_str_bitwise_or(interp, a, SREG(2), NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bors_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 256 "src/ops/bit.ops"
- VTABLE_i_bitwise_ors_str(interp, PREG(1), CONST(2)->u.string);
+#line 287 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(1));
+ STRING * const b = Parrot_str_bitwise_or(interp, a, CONST(2)->u.string, NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bors_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 260 "src/ops/bit.ops"
- VTABLE_i_bitwise_ors(interp, PREG(1), PREG(2));
+#line 293 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(1));
+ STRING * const b = VTABLE_get_string(interp, PREG(2));
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bors_s_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 264 "src/ops/bit.ops"
+#line 300 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_or(interp, SREG(2), SREG(3), NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -20203,7 +18894,7 @@
opcode_t *
Parrot_bors_s_sc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 264 "src/ops/bit.ops"
+#line 300 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_or(interp, CONST(2)->u.string, SREG(3), NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -20211,7 +18902,7 @@
opcode_t *
Parrot_bors_s_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 264 "src/ops/bit.ops"
+#line 300 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_or(interp, SREG(2), CONST(3)->u.string, NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -20219,31 +18910,38 @@
opcode_t *
Parrot_bors_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 268 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_ors_str(interp, PREG(2), SREG(3), PREG(1));
+#line 304 "src/ops/bit.ops"
+ STRING * const b = VTABLE_get_string(interp, PREG(2));
+ STRING * const c = Parrot_str_bitwise_or(interp, b, SREG(3), NULL);
+ VTABLE_set_string_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bors_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 268 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_ors_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+#line 304 "src/ops/bit.ops"
+ STRING * const b = VTABLE_get_string(interp, PREG(2));
+ STRING * const c = Parrot_str_bitwise_or(interp, b, CONST(3)->u.string, NULL);
+ VTABLE_set_string_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bors_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 272 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_ors(interp, PREG(2), PREG(3), PREG(1));
+#line 310 "src/ops/bit.ops"
+ STRING * const a = VTABLE_get_string(interp, PREG(2));
+ STRING * const b = VTABLE_get_string(interp, PREG(3));
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_shl_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 296 "src/ops/bit.ops"
+#line 337 "src/ops/bit.ops"
IREG(1) = bit_shift_left(IREG(1), IREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -20251,7 +18949,7 @@
opcode_t *
Parrot_shl_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 296 "src/ops/bit.ops"
+#line 337 "src/ops/bit.ops"
IREG(1) = bit_shift_left(IREG(1), cur_opcode[2]);
return (opcode_t *)cur_opcode + 3;}
@@ -20259,31 +18957,38 @@
opcode_t *
Parrot_shl_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 300 "src/ops/bit.ops"
- VTABLE_i_bitwise_shl_int(interp, PREG(1), IREG(2));
+#line 341 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = bit_shift_left(a, IREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_shl_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 300 "src/ops/bit.ops"
- VTABLE_i_bitwise_shl_int(interp, PREG(1), cur_opcode[2]);
+#line 341 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = bit_shift_left(a, cur_opcode[2]);
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_shl_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 304 "src/ops/bit.ops"
- VTABLE_i_bitwise_shl(interp, PREG(1), PREG(2));
+#line 347 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_shl_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 308 "src/ops/bit.ops"
+#line 354 "src/ops/bit.ops"
IREG(1) = bit_shift_left(IREG(2), IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -20291,7 +18996,7 @@
opcode_t *
Parrot_shl_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 308 "src/ops/bit.ops"
+#line 354 "src/ops/bit.ops"
IREG(1) = bit_shift_left(cur_opcode[2], IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -20299,7 +19004,7 @@
opcode_t *
Parrot_shl_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 308 "src/ops/bit.ops"
+#line 354 "src/ops/bit.ops"
IREG(1) = bit_shift_left(IREG(2), cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -20307,31 +19012,38 @@
opcode_t *
Parrot_shl_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 312 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_shl_int(interp, PREG(2), IREG(3), PREG(1));
+#line 358 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL b = bit_shift_left(a, IREG(3));
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_shl_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 312 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_shl_int(interp, PREG(2), cur_opcode[3], PREG(1));
+#line 358 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL b = bit_shift_left(a, cur_opcode[3]);
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_shl_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 316 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_shl(interp, PREG(2), PREG(3), PREG(1));
+#line 364 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_shr_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 340 "src/ops/bit.ops"
+#line 391 "src/ops/bit.ops"
const INTVAL signed_shift = -IREG(2);
IREG(1) = bit_shift_left(IREG(1), signed_shift);
@@ -20340,7 +19052,7 @@
opcode_t *
Parrot_shr_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 340 "src/ops/bit.ops"
+#line 391 "src/ops/bit.ops"
const INTVAL signed_shift = -cur_opcode[2];
IREG(1) = bit_shift_left(IREG(1), signed_shift);
@@ -20349,31 +19061,38 @@
opcode_t *
Parrot_shr_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 345 "src/ops/bit.ops"
- VTABLE_i_bitwise_shr_int(interp, PREG(1), IREG(2));
+#line 396 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = bit_shift_left(a, -IREG(2));
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_shr_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 345 "src/ops/bit.ops"
- VTABLE_i_bitwise_shr_int(interp, PREG(1), cur_opcode[2]);
+#line 396 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = bit_shift_left(a, -cur_opcode[2]);
+ VTABLE_set_integer_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_shr_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 349 "src/ops/bit.ops"
- VTABLE_i_bitwise_shr(interp, PREG(1), PREG(2));
+#line 402 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_shr_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 353 "src/ops/bit.ops"
+#line 409 "src/ops/bit.ops"
const INTVAL signed_shift = -IREG(3);
IREG(1) = bit_shift_left(IREG(2), signed_shift);
@@ -20382,7 +19101,7 @@
opcode_t *
Parrot_shr_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 353 "src/ops/bit.ops"
+#line 409 "src/ops/bit.ops"
const INTVAL signed_shift = -IREG(3);
IREG(1) = bit_shift_left(cur_opcode[2], signed_shift);
@@ -20391,7 +19110,7 @@
opcode_t *
Parrot_shr_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 353 "src/ops/bit.ops"
+#line 409 "src/ops/bit.ops"
const INTVAL signed_shift = -cur_opcode[3];
IREG(1) = bit_shift_left(IREG(2), signed_shift);
@@ -20400,79 +19119,89 @@
opcode_t *
Parrot_shr_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 358 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_shr_int(interp, PREG(2), IREG(3), PREG(1));
+#line 414 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL c = bit_shift_left(a, -IREG(3));
+ VTABLE_set_integer_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_shr_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 358 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_shr_int(interp, PREG(2), cur_opcode[3], PREG(1));
+#line 414 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL c = bit_shift_left(a, -cur_opcode[3]);
+ VTABLE_set_integer_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_shr_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 362 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_shr(interp, PREG(2), PREG(3), PREG(1));
+#line 420 "src/ops/bit.ops"
+ const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+ const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_lsr_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 386 "src/ops/bit.ops"
- /*
- * lvalue casts are evil, but this one isn't evil enough to kill.
- * it's just casting a signed integral to the equivalent unsigned.
- */
- LVALUE_CAST(UINTVAL, IREG(1)) >>= IREG(2);
+#line 447 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)IREG(1);
+ const UINTVAL b = a >> IREG(2);
+ IREG(1) = (INTVAL)b;
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_lsr_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 386 "src/ops/bit.ops"
- /*
- * lvalue casts are evil, but this one isn't evil enough to kill.
- * it's just casting a signed integral to the equivalent unsigned.
- */
- LVALUE_CAST(UINTVAL, IREG(1)) >>= cur_opcode[2];
+#line 447 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)IREG(1);
+ const UINTVAL b = a >> cur_opcode[2];
+ IREG(1) = (INTVAL)b;
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_lsr_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 394 "src/ops/bit.ops"
- VTABLE_i_bitwise_lsr_int(interp, PREG(1), IREG(2));
+#line 453 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+ const UINTVAL b = a >> IREG(2);
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_lsr_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 394 "src/ops/bit.ops"
- VTABLE_i_bitwise_lsr_int(interp, PREG(1), cur_opcode[2]);
+#line 453 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+ const UINTVAL b = a >> cur_opcode[2];
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_lsr_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 398 "src/ops/bit.ops"
- VTABLE_i_bitwise_lsr(interp, PREG(1), PREG(2));
+#line 459 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_lsr_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 402 "src/ops/bit.ops"
+#line 466 "src/ops/bit.ops"
IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -20480,7 +19209,7 @@
opcode_t *
Parrot_lsr_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 402 "src/ops/bit.ops"
+#line 466 "src/ops/bit.ops"
IREG(1) = (INTVAL)((UINTVAL)cur_opcode[2] >> IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -20488,7 +19217,7 @@
opcode_t *
Parrot_lsr_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 402 "src/ops/bit.ops"
+#line 466 "src/ops/bit.ops"
IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -20496,31 +19225,40 @@
opcode_t *
Parrot_lsr_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 406 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_lsr_int(interp, PREG(2), IREG(3), PREG(1));
+#line 470 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL b = (UINTVAL)IREG(3);
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_lsr_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 406 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_lsr_int(interp, PREG(2), cur_opcode[3], PREG(1));
+#line 470 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL b = (UINTVAL)cur_opcode[3];
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_lsr_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 410 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_lsr(interp, PREG(2), PREG(3), PREG(1));
+#line 477 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(3));
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, PREG(3), (INTVAL)c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_rot_i_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 423 "src/ops/bit.ops"
+#line 493 "src/ops/bit.ops"
const INTVAL r = IREG(2);
INTVAL s = IREG(3);
const INTVAL w = cur_opcode[4];
@@ -20538,7 +19276,7 @@
opcode_t *
Parrot_rot_i_ic_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 423 "src/ops/bit.ops"
+#line 493 "src/ops/bit.ops"
const INTVAL r = cur_opcode[2];
INTVAL s = IREG(3);
const INTVAL w = cur_opcode[4];
@@ -20556,7 +19294,7 @@
opcode_t *
Parrot_rot_i_i_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 423 "src/ops/bit.ops"
+#line 493 "src/ops/bit.ops"
const INTVAL r = IREG(2);
INTVAL s = cur_opcode[3];
const INTVAL w = cur_opcode[4];
@@ -20574,7 +19312,7 @@
opcode_t *
Parrot_bxor_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 460 "src/ops/bit.ops"
+#line 529 "src/ops/bit.ops"
IREG(1) ^= IREG(2);
return (opcode_t *)cur_opcode + 3;}
@@ -20582,7 +19320,7 @@
opcode_t *
Parrot_bxor_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 460 "src/ops/bit.ops"
+#line 529 "src/ops/bit.ops"
IREG(1) ^= cur_opcode[2];
return (opcode_t *)cur_opcode + 3;}
@@ -20590,31 +19328,38 @@
opcode_t *
Parrot_bxor_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 464 "src/ops/bit.ops"
- VTABLE_i_bitwise_xor_int(interp, PREG(1), IREG(2));
+#line 533 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+ const UINTVAL b = a ^ IREG(2);
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bxor_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 464 "src/ops/bit.ops"
- VTABLE_i_bitwise_xor_int(interp, PREG(1), cur_opcode[2]);
+#line 533 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+ const UINTVAL b = a ^ cur_opcode[2];
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bxor_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 468 "src/ops/bit.ops"
- VTABLE_i_bitwise_xor(interp, PREG(1), PREG(2));
+#line 539 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bxor_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 472 "src/ops/bit.ops"
+#line 546 "src/ops/bit.ops"
IREG(1) = IREG(2) ^ IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -20622,7 +19367,7 @@
opcode_t *
Parrot_bxor_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 472 "src/ops/bit.ops"
+#line 546 "src/ops/bit.ops"
IREG(1) = cur_opcode[2] ^ IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -20630,7 +19375,7 @@
opcode_t *
Parrot_bxor_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 472 "src/ops/bit.ops"
+#line 546 "src/ops/bit.ops"
IREG(1) = IREG(2) ^ cur_opcode[3];
return (opcode_t *)cur_opcode + 4;}
@@ -20638,31 +19383,38 @@
opcode_t *
Parrot_bxor_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 476 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_xor_int(interp, PREG(2), IREG(3), PREG(1));
+#line 550 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL b = a ^ IREG(3);
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bxor_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 476 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_xor_int(interp, PREG(2), cur_opcode[3], PREG(1));
+#line 550 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL b = a ^ cur_opcode[3];
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bxor_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 480 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_xor(interp, PREG(2), PREG(3), PREG(1));
+#line 556 "src/ops/bit.ops"
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(3));
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bxors_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 504 "src/ops/bit.ops"
+#line 583 "src/ops/bit.ops"
Parrot_str_bitwise_xor(interp, SREG(1), SREG(2), &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -20670,7 +19422,7 @@
opcode_t *
Parrot_bxors_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 504 "src/ops/bit.ops"
+#line 583 "src/ops/bit.ops"
Parrot_str_bitwise_xor(interp, SREG(1), CONST(2)->u.string, &SREG(1));
return (opcode_t *)cur_opcode + 3;}
@@ -20678,31 +19430,38 @@
opcode_t *
Parrot_bxors_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 508 "src/ops/bit.ops"
- VTABLE_i_bitwise_xors_str(interp, PREG(1), SREG(2));
+#line 587 "src/ops/bit.ops"
+ STRING *a = VTABLE_get_string(interp, PREG(1));
+ STRING *b = Parrot_str_bitwise_xor(interp, a, SREG(2), NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bxors_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 508 "src/ops/bit.ops"
- VTABLE_i_bitwise_xors_str(interp, PREG(1), CONST(2)->u.string);
+#line 587 "src/ops/bit.ops"
+ STRING *a = VTABLE_get_string(interp, PREG(1));
+ STRING *b = Parrot_str_bitwise_xor(interp, a, CONST(2)->u.string, NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bxors_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 512 "src/ops/bit.ops"
- VTABLE_i_bitwise_xors(interp, PREG(1), PREG(2));
+#line 593 "src/ops/bit.ops"
+ STRING *a = VTABLE_get_string(interp, PREG(1));
+ STRING *b = VTABLE_get_string(interp, PREG(2));
+ STRING *c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_bxors_s_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 516 "src/ops/bit.ops"
+#line 600 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_xor(interp, SREG(2), SREG(3), NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -20710,7 +19469,7 @@
opcode_t *
Parrot_bxors_s_sc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 516 "src/ops/bit.ops"
+#line 600 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_xor(interp, CONST(2)->u.string, SREG(3), NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -20718,7 +19477,7 @@
opcode_t *
Parrot_bxors_s_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 516 "src/ops/bit.ops"
+#line 600 "src/ops/bit.ops"
SREG(1) = Parrot_str_bitwise_xor(interp, SREG(2), CONST(3)->u.string, NULL);
return (opcode_t *)cur_opcode + 4;}
@@ -20726,24 +19485,31 @@
opcode_t *
Parrot_bxors_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 520 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_xors_str(interp, PREG(2), SREG(3), PREG(1));
+#line 604 "src/ops/bit.ops"
+ STRING *a = VTABLE_get_string(interp, PREG(2));
+ STRING *b = Parrot_str_bitwise_xor(interp, a, SREG(3), NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bxors_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 520 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_xors_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+#line 604 "src/ops/bit.ops"
+ STRING *a = VTABLE_get_string(interp, PREG(2));
+ STRING *b = Parrot_str_bitwise_xor(interp, a, CONST(3)->u.string, NULL);
+ VTABLE_set_string_native(interp, PREG(1), b);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_bxors_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 524 "src/ops/bit.ops"
- PREG(1) = VTABLE_bitwise_xors(interp, PREG(2), PREG(3), PREG(1));
+#line 610 "src/ops/bit.ops"
+ STRING *a = VTABLE_get_string(interp, PREG(2));
+ STRING *b = VTABLE_get_string(interp, PREG(3));
+ STRING *c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
@@ -20851,15 +19617,15 @@
Parrot_eq_p_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 90 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, IREG(2));
if (VTABLE_is_equal(interp, PREG(1), temp)) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -20867,15 +19633,15 @@
Parrot_eq_p_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 90 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
if (VTABLE_is_equal(interp, PREG(1), temp)) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21105,15 +19871,15 @@
Parrot_ne_p_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 196 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, IREG(2));
if (!VTABLE_is_equal(interp, PREG(1), temp)) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21121,15 +19887,15 @@
Parrot_ne_p_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 196 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
if (!VTABLE_is_equal(interp, PREG(1), temp)) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21347,15 +20113,15 @@
Parrot_lt_p_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 292 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, IREG(2));
if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21363,15 +20129,15 @@
Parrot_lt_p_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 292 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21539,15 +20305,15 @@
Parrot_le_p_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 376 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, IREG(2));
if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21555,15 +20321,15 @@
Parrot_le_p_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 376 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21641,15 +20407,15 @@
Parrot_gt_p_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 436 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, IREG(2));
if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21657,15 +20423,15 @@
Parrot_gt_p_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 436 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21743,15 +20509,15 @@
Parrot_ge_p_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 496 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, IREG(2));
if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -21759,15 +20525,15 @@
Parrot_ge_p_ic_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 496 "src/ops/cmp.ops"
- PMC * temp = temporary_pmc_new(interp, enum_class_Integer);
+ PMC * temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + cur_opcode[3];
}
- temporary_pmc_free(interp, temp);
+ Parrot_pmc_free_temporary(interp, temp);
return (opcode_t *)cur_opcode + 4;}
@@ -22756,7 +21522,7 @@
#line 55 "src/ops/io.ops"
PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)IREG(2), SREG(3));
if (!PREG(1))
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
return (opcode_t *)cur_opcode + 4;}
@@ -22766,7 +21532,7 @@
#line 55 "src/ops/io.ops"
PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)cur_opcode[2], SREG(3));
if (!PREG(1))
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
return (opcode_t *)cur_opcode + 4;}
@@ -22776,7 +21542,7 @@
#line 55 "src/ops/io.ops"
PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)IREG(2), CONST(3)->u.string);
if (!PREG(1))
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
return (opcode_t *)cur_opcode + 4;}
@@ -22786,7 +21552,7 @@
#line 55 "src/ops/io.ops"
PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)cur_opcode[2], CONST(3)->u.string);
if (!PREG(1))
- PREG(1) = pmc_new(interp, enum_class_Undef);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
return (opcode_t *)cur_opcode + 4;}
@@ -23856,7 +22622,7 @@
result = VTABLE_get_integer(interp, PREG(2)) % IREG(3);
- PREG(1) = pmc_new(interp, VTABLE_type(interp, PREG(2)));
+ PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
VTABLE_set_integer_native(interp, PREG(1), result);
return (opcode_t *)cur_opcode + 4;}
@@ -23876,7 +22642,7 @@
result = VTABLE_get_integer(interp, PREG(2)) % cur_opcode[3];
- PREG(1) = pmc_new(interp, VTABLE_type(interp, PREG(2)));
+ PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
VTABLE_set_integer_native(interp, PREG(1), result);
return (opcode_t *)cur_opcode + 4;}
@@ -23897,7 +22663,7 @@
result = VTABLE_get_integer(interp, PREG(2)) % value;
- PREG(1) = pmc_new(interp, VTABLE_type(interp, PREG(2)));
+ PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
VTABLE_set_integer_native(interp, PREG(1), result);
return (opcode_t *)cur_opcode + 4;}
@@ -23963,7 +22729,7 @@
result = fmod(VTABLE_get_integer(interp, PREG(2)), value);
- PREG(1) = pmc_new(interp, VTABLE_type(interp, PREG(2)));
+ PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
VTABLE_set_integer_native(interp, PREG(1), (INTVAL) result);
return (opcode_t *)cur_opcode + 4;}
@@ -23984,7 +22750,7 @@
result = fmod(VTABLE_get_integer(interp, PREG(2)), value);
- PREG(1) = pmc_new(interp, VTABLE_type(interp, PREG(2)));
+ PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
VTABLE_set_integer_native(interp, PREG(1), (INTVAL) result);
return (opcode_t *)cur_opcode + 4;}
@@ -24993,46 +23759,79 @@
Parrot_pow_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 815 "src/ops/math.ops"
- PREG(1) = VTABLE_pow(interp, PREG(2), PREG(3), PREG(1));
+ const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+ const FLOATVAL b = VTABLE_get_number(interp, PREG(3));
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL(PREG(1)))
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+ VTABLE_set_number_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_pow_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 819 "src/ops/math.ops"
- PREG(1) = VTABLE_pow_int(interp, PREG(2), IREG(3), PREG(1));
+#line 826 "src/ops/math.ops"
+ const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+ const FLOATVAL b = (FLOATVAL)IREG(3);
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL(PREG(1)))
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+ VTABLE_set_number_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_pow_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 819 "src/ops/math.ops"
- PREG(1) = VTABLE_pow_int(interp, PREG(2), cur_opcode[3], PREG(1));
+#line 826 "src/ops/math.ops"
+ const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+ const FLOATVAL b = (FLOATVAL)cur_opcode[3];
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL(PREG(1)))
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+ VTABLE_set_number_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_pow_p_p_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 823 "src/ops/math.ops"
- PREG(1) = VTABLE_pow_float(interp, PREG(2), NREG(3), PREG(1));
+#line 837 "src/ops/math.ops"
+ const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+ const FLOATVAL c = pow(a, NREG(3));
+ if (PMC_IS_NULL(PREG(1)))
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+ VTABLE_set_number_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_pow_p_p_nc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 823 "src/ops/math.ops"
- PREG(1) = VTABLE_pow_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+#line 837 "src/ops/math.ops"
+ const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+ const FLOATVAL c = pow(a, CONST(3)->u.number);
+ if (PMC_IS_NULL(PREG(1)))
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+ VTABLE_set_number_native(interp, PREG(1), c);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_pow_n_n_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 827 "src/ops/math.ops"
+#line 847 "src/ops/math.ops"
FLOATVAL n2 = NREG(2);
FLOATVAL res = 1.0;
INTVAL e = IREG(3);
@@ -25060,7 +23859,7 @@
opcode_t *
Parrot_pow_n_nc_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 827 "src/ops/math.ops"
+#line 847 "src/ops/math.ops"
FLOATVAL n2 = CONST(2)->u.number;
FLOATVAL res = 1.0;
INTVAL e = IREG(3);
@@ -25088,7 +23887,7 @@
opcode_t *
Parrot_pow_n_n_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 827 "src/ops/math.ops"
+#line 847 "src/ops/math.ops"
FLOATVAL n2 = NREG(2);
FLOATVAL res = 1.0;
INTVAL e = cur_opcode[3];
@@ -25116,7 +23915,7 @@
opcode_t *
Parrot_pow_n_nc_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 827 "src/ops/math.ops"
+#line 847 "src/ops/math.ops"
FLOATVAL n2 = CONST(2)->u.number;
FLOATVAL res = 1.0;
INTVAL e = cur_opcode[3];
@@ -25144,7 +23943,7 @@
opcode_t *
Parrot_sub_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 879 "src/ops/math.ops"
+#line 899 "src/ops/math.ops"
IREG(1) -= IREG(2);
return (opcode_t *)cur_opcode + 3;}
@@ -25152,7 +23951,7 @@
opcode_t *
Parrot_sub_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 879 "src/ops/math.ops"
+#line 899 "src/ops/math.ops"
IREG(1) -= cur_opcode[2];
return (opcode_t *)cur_opcode + 3;}
@@ -25160,7 +23959,7 @@
opcode_t *
Parrot_sub_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 883 "src/ops/math.ops"
+#line 903 "src/ops/math.ops"
NREG(1) -= NREG(2);
return (opcode_t *)cur_opcode + 3;}
@@ -25168,7 +23967,7 @@
opcode_t *
Parrot_sub_n_nc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 883 "src/ops/math.ops"
+#line 903 "src/ops/math.ops"
NREG(1) -= CONST(2)->u.number;
return (opcode_t *)cur_opcode + 3;}
@@ -25176,7 +23975,7 @@
opcode_t *
Parrot_sub_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 887 "src/ops/math.ops"
+#line 907 "src/ops/math.ops"
VTABLE_i_subtract(interp, PREG(1), PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25184,7 +23983,7 @@
opcode_t *
Parrot_sub_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 891 "src/ops/math.ops"
+#line 911 "src/ops/math.ops"
VTABLE_i_subtract_int(interp, PREG(1), IREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25192,7 +23991,7 @@
opcode_t *
Parrot_sub_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 891 "src/ops/math.ops"
+#line 911 "src/ops/math.ops"
VTABLE_i_subtract_int(interp, PREG(1), cur_opcode[2]);
return (opcode_t *)cur_opcode + 3;}
@@ -25200,7 +23999,7 @@
opcode_t *
Parrot_sub_p_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 895 "src/ops/math.ops"
+#line 915 "src/ops/math.ops"
VTABLE_i_subtract_float(interp, PREG(1), NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25208,7 +24007,7 @@
opcode_t *
Parrot_sub_p_nc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 895 "src/ops/math.ops"
+#line 915 "src/ops/math.ops"
VTABLE_i_subtract_float(interp, PREG(1), CONST(2)->u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -25216,7 +24015,7 @@
opcode_t *
Parrot_sub_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 899 "src/ops/math.ops"
+#line 919 "src/ops/math.ops"
IREG(1) = IREG(2) - IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -25224,7 +24023,7 @@
opcode_t *
Parrot_sub_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 899 "src/ops/math.ops"
+#line 919 "src/ops/math.ops"
IREG(1) = cur_opcode[2] - IREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -25232,7 +24031,7 @@
opcode_t *
Parrot_sub_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 899 "src/ops/math.ops"
+#line 919 "src/ops/math.ops"
IREG(1) = IREG(2) - cur_opcode[3];
return (opcode_t *)cur_opcode + 4;}
@@ -25240,7 +24039,7 @@
opcode_t *
Parrot_sub_n_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 903 "src/ops/math.ops"
+#line 923 "src/ops/math.ops"
NREG(1) = NREG(2) - NREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -25248,7 +24047,7 @@
opcode_t *
Parrot_sub_n_nc_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 903 "src/ops/math.ops"
+#line 923 "src/ops/math.ops"
NREG(1) = CONST(2)->u.number - NREG(3);
return (opcode_t *)cur_opcode + 4;}
@@ -25256,7 +24055,7 @@
opcode_t *
Parrot_sub_n_n_nc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 903 "src/ops/math.ops"
+#line 923 "src/ops/math.ops"
NREG(1) = NREG(2) - CONST(3)->u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -25264,7 +24063,7 @@
opcode_t *
Parrot_sub_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 907 "src/ops/math.ops"
+#line 927 "src/ops/math.ops"
PREG(1) = VTABLE_subtract(interp, PREG(2), PREG(3), PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -25272,7 +24071,7 @@
opcode_t *
Parrot_sub_p_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 911 "src/ops/math.ops"
+#line 931 "src/ops/math.ops"
PREG(1) = VTABLE_subtract_int(interp, PREG(2), IREG(3), PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -25280,7 +24079,7 @@
opcode_t *
Parrot_sub_p_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 911 "src/ops/math.ops"
+#line 931 "src/ops/math.ops"
PREG(1) = VTABLE_subtract_int(interp, PREG(2), cur_opcode[3], PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -25288,7 +24087,7 @@
opcode_t *
Parrot_sub_p_p_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 915 "src/ops/math.ops"
+#line 935 "src/ops/math.ops"
PREG(1) = VTABLE_subtract_float(interp, PREG(2), NREG(3), PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -25296,7 +24095,7 @@
opcode_t *
Parrot_sub_p_p_nc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 915 "src/ops/math.ops"
+#line 935 "src/ops/math.ops"
PREG(1) = VTABLE_subtract_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -25304,7 +24103,7 @@
opcode_t *
Parrot_sqrt_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 927 "src/ops/math.ops"
+#line 947 "src/ops/math.ops"
NREG(1) = sqrt((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25312,7 +24111,7 @@
opcode_t *
Parrot_acos_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 956 "src/ops/math.ops"
+#line 976 "src/ops/math.ops"
NREG(1) = acos((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25320,7 +24119,7 @@
opcode_t *
Parrot_asec_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 968 "src/ops/math.ops"
+#line 988 "src/ops/math.ops"
NREG(1) = acos(((FLOATVAL)1) / ((FLOATVAL)NREG(2)));
return (opcode_t *)cur_opcode + 3;}
@@ -25328,7 +24127,7 @@
opcode_t *
Parrot_asin_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 981 "src/ops/math.ops"
+#line 1001 "src/ops/math.ops"
NREG(1) = asin((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25336,7 +24135,7 @@
opcode_t *
Parrot_atan_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 999 "src/ops/math.ops"
+#line 1019 "src/ops/math.ops"
NREG(1) = atan((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25344,7 +24143,7 @@
opcode_t *
Parrot_atan_n_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1003 "src/ops/math.ops"
+#line 1023 "src/ops/math.ops"
NREG(1) = atan2((FLOATVAL)NREG(2), (FLOATVAL)NREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -25352,7 +24151,7 @@
opcode_t *
Parrot_atan_n_nc_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1003 "src/ops/math.ops"
+#line 1023 "src/ops/math.ops"
NREG(1) = atan2((FLOATVAL)CONST(2)->u.number, (FLOATVAL)NREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -25360,7 +24159,7 @@
opcode_t *
Parrot_atan_n_n_nc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1003 "src/ops/math.ops"
+#line 1023 "src/ops/math.ops"
NREG(1) = atan2((FLOATVAL)NREG(2), (FLOATVAL)CONST(3)->u.number);
return (opcode_t *)cur_opcode + 4;}
@@ -25368,7 +24167,7 @@
opcode_t *
Parrot_cos_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1015 "src/ops/math.ops"
+#line 1035 "src/ops/math.ops"
NREG(1) = cos((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25376,7 +24175,7 @@
opcode_t *
Parrot_cosh_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1027 "src/ops/math.ops"
+#line 1047 "src/ops/math.ops"
NREG(1) = cosh((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25384,7 +24183,7 @@
opcode_t *
Parrot_exp_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1040 "src/ops/math.ops"
+#line 1060 "src/ops/math.ops"
NREG(1) = exp((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25392,7 +24191,7 @@
opcode_t *
Parrot_ln_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1052 "src/ops/math.ops"
+#line 1072 "src/ops/math.ops"
NREG(1) = log((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25400,7 +24199,7 @@
opcode_t *
Parrot_log10_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1064 "src/ops/math.ops"
+#line 1084 "src/ops/math.ops"
NREG(1) = log10((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25408,7 +24207,7 @@
opcode_t *
Parrot_log2_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1076 "src/ops/math.ops"
+#line 1096 "src/ops/math.ops"
FLOATVAL temp = log((FLOATVAL)2.0);
NREG(1) = log((FLOATVAL)NREG(2)) / temp;
@@ -25417,7 +24216,7 @@
opcode_t *
Parrot_sec_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1089 "src/ops/math.ops"
+#line 1109 "src/ops/math.ops"
NREG(1) = ((FLOATVAL)1) / cos((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25425,7 +24224,7 @@
opcode_t *
Parrot_sech_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1101 "src/ops/math.ops"
+#line 1121 "src/ops/math.ops"
NREG(1) = ((FLOATVAL)1) / cosh((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25433,7 +24232,7 @@
opcode_t *
Parrot_sin_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1113 "src/ops/math.ops"
+#line 1133 "src/ops/math.ops"
NREG(1) = sin((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25441,7 +24240,7 @@
opcode_t *
Parrot_sinh_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1125 "src/ops/math.ops"
+#line 1145 "src/ops/math.ops"
NREG(1) = sinh((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25449,7 +24248,7 @@
opcode_t *
Parrot_tan_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1137 "src/ops/math.ops"
+#line 1157 "src/ops/math.ops"
NREG(1) = tan((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25457,7 +24256,7 @@
opcode_t *
Parrot_tanh_n_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1149 "src/ops/math.ops"
+#line 1169 "src/ops/math.ops"
NREG(1) = tanh((FLOATVAL)NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -25465,7 +24264,7 @@
opcode_t *
Parrot_gcd_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1175 "src/ops/math.ops"
+#line 1195 "src/ops/math.ops"
INTVAL p = 0;
INTVAL a = IREG(2) < 0 ? -IREG(2) : IREG(2);
INTVAL b = IREG(3) < 0 ? -IREG(3) : IREG(3);
@@ -25493,7 +24292,7 @@
opcode_t *
Parrot_gcd_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1175 "src/ops/math.ops"
+#line 1195 "src/ops/math.ops"
INTVAL p = 0;
INTVAL a = cur_opcode[2] < 0 ? -cur_opcode[2] : cur_opcode[2];
INTVAL b = IREG(3) < 0 ? -IREG(3) : IREG(3);
@@ -25521,7 +24320,7 @@
opcode_t *
Parrot_gcd_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1175 "src/ops/math.ops"
+#line 1195 "src/ops/math.ops"
INTVAL p = 0;
INTVAL a = IREG(2) < 0 ? -IREG(2) : IREG(2);
INTVAL b = cur_opcode[3] < 0 ? -cur_opcode[3] : cur_opcode[3];
@@ -25549,7 +24348,7 @@
opcode_t *
Parrot_lcm_i_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1208 "src/ops/math.ops"
+#line 1228 "src/ops/math.ops"
INTVAL gcd = 0;
INTVAL p = 0;
INTVAL a = IREG(2) < 0 ? -IREG(2) : IREG(2);
@@ -25580,7 +24379,7 @@
opcode_t *
Parrot_lcm_i_ic_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1208 "src/ops/math.ops"
+#line 1228 "src/ops/math.ops"
INTVAL gcd = 0;
INTVAL p = 0;
INTVAL a = cur_opcode[2] < 0 ? -cur_opcode[2] : cur_opcode[2];
@@ -25611,7 +24410,7 @@
opcode_t *
Parrot_lcm_i_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1208 "src/ops/math.ops"
+#line 1228 "src/ops/math.ops"
INTVAL gcd = 0;
INTVAL p = 0;
INTVAL a = IREG(2) < 0 ? -IREG(2) : IREG(2);
@@ -25642,7 +24441,7 @@
opcode_t *
Parrot_fact_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1245 "src/ops/math.ops"
+#line 1265 "src/ops/math.ops"
/* Coercing a negative to a UINT can get pretty ugly
* in this situation. */
INTVAL i = IREG(2);
@@ -25658,7 +24457,7 @@
opcode_t *
Parrot_fact_n_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 1257 "src/ops/math.ops"
+#line 1277 "src/ops/math.ops"
/* Coercing a negative to a UINT can get pretty ugly
* in this situation. */
INTVAL i = IREG(2);
@@ -25836,15 +24635,6 @@
else {
interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
- /* Detach continuation from current CallContext to avoid marking dead object. */
- /* RetContinuation will kill itself after invoke */
- if (interp->current_cont->vtable->base_type == enum_class_RetContinuation
- && Parrot_pcc_do_run_ops(interp, method_pmc)) {
- PMC * const ctx = CURRENT_CONTEXT(interp);
- PMC * const parent_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
- PMC_cont(interp->current_cont)->from_ctx = parent_ctx;
- Parrot_pcc_set_continuation(interp, ctx, PMCNULL);
- }
interp->current_object = object;
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
}
@@ -25870,15 +24660,6 @@
else {
interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
- /* Detach continuation from current CallContext to avoid marking dead object. */
- /* RetContinuation will kill itself after invoke */
- if (interp->current_cont->vtable->base_type == enum_class_RetContinuation
- && Parrot_pcc_do_run_ops(interp, method_pmc)) {
- PMC * const ctx = CURRENT_CONTEXT(interp);
- PMC * const parent_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
- PMC_cont(interp->current_cont)->from_ctx = parent_ctx;
- Parrot_pcc_set_continuation(interp, ctx, PMCNULL);
- }
interp->current_object = object;
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
}
@@ -25888,7 +24669,7 @@
opcode_t *
Parrot_tailcallmethod_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 157 "src/ops/object.ops"
+#line 148 "src/ops/object.ops"
opcode_t * const next = cur_opcode + 3;
PMC * const object = PREG(1);
PMC * const method_pmc = PREG(2);
@@ -25897,15 +24678,6 @@
interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
- /* Detach continuation from current CallContext to avoid marking dead object. */
- /* RetContinuation will kill itself after invoke */
- if (interp->current_cont->vtable->base_type == enum_class_RetContinuation
- && Parrot_pcc_do_run_ops(interp, method_pmc)) {
- PMC * const ctx = CURRENT_CONTEXT(interp);
- PMC * const parent_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
- PMC_cont(interp->current_cont)->from_ctx = parent_ctx;
- Parrot_pcc_set_continuation(interp, ctx, PMCNULL);
- }
interp->current_object = object;
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
@@ -25915,7 +24687,7 @@
opcode_t *
Parrot_addmethod_p_s_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 187 "src/ops/object.ops"
+#line 169 "src/ops/object.ops"
VTABLE_add_method(interp, PREG(1), SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -25923,7 +24695,7 @@
opcode_t *
Parrot_addmethod_p_sc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 187 "src/ops/object.ops"
+#line 169 "src/ops/object.ops"
VTABLE_add_method(interp, PREG(1), CONST(2)->u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -25931,7 +24703,7 @@
opcode_t *
Parrot_can_i_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 199 "src/ops/object.ops"
+#line 181 "src/ops/object.ops"
IREG(1) = VTABLE_can(interp, PREG(2), SREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -25939,7 +24711,7 @@
opcode_t *
Parrot_can_i_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 199 "src/ops/object.ops"
+#line 181 "src/ops/object.ops"
IREG(1) = VTABLE_can(interp, PREG(2), CONST(3)->u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -25947,7 +24719,7 @@
opcode_t *
Parrot_does_i_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 211 "src/ops/object.ops"
+#line 193 "src/ops/object.ops"
IREG(1) = SREG(3) ? VTABLE_does(interp, PREG(2), SREG(3)) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -25955,7 +24727,7 @@
opcode_t *
Parrot_does_i_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 211 "src/ops/object.ops"
+#line 193 "src/ops/object.ops"
IREG(1) = CONST(3)->u.string ? VTABLE_does(interp, PREG(2), CONST(3)->u.string) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -25963,7 +24735,7 @@
opcode_t *
Parrot_does_i_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 222 "src/ops/object.ops"
+#line 204 "src/ops/object.ops"
IREG(1) = PREG(3) ? VTABLE_does_pmc(interp, PREG(2), PREG(3)) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -25971,7 +24743,7 @@
opcode_t *
Parrot_does_i_p_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 222 "src/ops/object.ops"
+#line 204 "src/ops/object.ops"
IREG(1) = CONST(3)->u.key ? VTABLE_does_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -25979,7 +24751,7 @@
opcode_t *
Parrot_isa_i_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 235 "src/ops/object.ops"
+#line 217 "src/ops/object.ops"
IREG(1) = SREG(3) ? VTABLE_isa(interp, PREG(2), SREG(3)) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -25987,7 +24759,7 @@
opcode_t *
Parrot_isa_i_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 235 "src/ops/object.ops"
+#line 217 "src/ops/object.ops"
IREG(1) = CONST(3)->u.string ? VTABLE_isa(interp, PREG(2), CONST(3)->u.string) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -25995,7 +24767,7 @@
opcode_t *
Parrot_isa_i_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 239 "src/ops/object.ops"
+#line 221 "src/ops/object.ops"
IREG(1) = PREG(3) ? VTABLE_isa_pmc(interp, PREG(2), PREG(3)) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -26003,7 +24775,7 @@
opcode_t *
Parrot_isa_i_p_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 239 "src/ops/object.ops"
+#line 221 "src/ops/object.ops"
IREG(1) = CONST(3)->u.key ? VTABLE_isa_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -26011,43 +24783,43 @@
opcode_t *
Parrot_newclass_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 257 "src/ops/object.ops"
- PMC * const name = pmc_new(interp, enum_class_String);
+#line 239 "src/ops/object.ops"
+ PMC * const name = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, name, SREG(2));
- PREG(1) = pmc_new_init(interp, enum_class_Class, name);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_newclass_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 257 "src/ops/object.ops"
- PMC * const name = pmc_new(interp, enum_class_String);
+#line 239 "src/ops/object.ops"
+ PMC * const name = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, name, CONST(2)->u.string);
- PREG(1) = pmc_new_init(interp, enum_class_Class, name);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_newclass_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 263 "src/ops/object.ops"
- PREG(1) = pmc_new_init(interp, enum_class_Class, PREG(2));
+#line 245 "src/ops/object.ops"
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(2));
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_newclass_p_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 263 "src/ops/object.ops"
- PREG(1) = pmc_new_init(interp, enum_class_Class, CONST(2)->u.key);
+#line 245 "src/ops/object.ops"
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(2)->u.key);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_subclass_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 279 "src/ops/object.ops"
+#line 261 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
opcode_t * const next = cur_opcode + 3;
@@ -26057,7 +24829,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
return (opcode_t *)handler;
}
- PREG(1) = pmc_new(interp, enum_class_Class);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26065,7 +24837,7 @@
opcode_t *
Parrot_subclass_p_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 279 "src/ops/object.ops"
+#line 261 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
opcode_t * const next = cur_opcode + 3;
@@ -26075,7 +24847,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
return (opcode_t *)handler;
}
- PREG(1) = pmc_new(interp, enum_class_Class);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26083,7 +24855,7 @@
opcode_t *
Parrot_subclass_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 294 "src/ops/object.ops"
+#line 276 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26101,7 +24873,7 @@
opcode_t *
Parrot_subclass_p_pc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 294 "src/ops/object.ops"
+#line 276 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
opcode_t * const next = cur_opcode + 4;
@@ -26119,7 +24891,7 @@
opcode_t *
Parrot_subclass_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 294 "src/ops/object.ops"
+#line 276 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26137,7 +24909,7 @@
opcode_t *
Parrot_subclass_p_pc_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 294 "src/ops/object.ops"
+#line 276 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
opcode_t * const next = cur_opcode + 4;
@@ -26155,7 +24927,7 @@
opcode_t *
Parrot_subclass_p_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 309 "src/ops/object.ops"
+#line 291 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26165,7 +24937,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26173,7 +24945,7 @@
opcode_t *
Parrot_subclass_p_pc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 309 "src/ops/object.ops"
+#line 291 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
opcode_t * const next = cur_opcode + 4;
@@ -26183,7 +24955,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26191,7 +24963,7 @@
opcode_t *
Parrot_subclass_p_p_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 309 "src/ops/object.ops"
+#line 291 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26201,7 +24973,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26209,7 +24981,7 @@
opcode_t *
Parrot_subclass_p_pc_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 309 "src/ops/object.ops"
+#line 291 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
opcode_t * const next = cur_opcode + 4;
@@ -26219,7 +24991,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26227,7 +24999,7 @@
opcode_t *
Parrot_subclass_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 337 "src/ops/object.ops"
+#line 319 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
opcode_t * const next = cur_opcode + 3;
@@ -26238,7 +25010,7 @@
return (opcode_t *)handler;
}
- PREG(1) = pmc_new(interp, enum_class_Class);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26246,7 +25018,7 @@
opcode_t *
Parrot_subclass_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 337 "src/ops/object.ops"
+#line 319 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
opcode_t * const next = cur_opcode + 3;
@@ -26257,7 +25029,7 @@
return (opcode_t *)handler;
}
- PREG(1) = pmc_new(interp, enum_class_Class);
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26265,7 +25037,7 @@
opcode_t *
Parrot_subclass_p_s_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 353 "src/ops/object.ops"
+#line 335 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26284,7 +25056,7 @@
opcode_t *
Parrot_subclass_p_sc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 353 "src/ops/object.ops"
+#line 335 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
opcode_t * const next = cur_opcode + 4;
@@ -26303,7 +25075,7 @@
opcode_t *
Parrot_subclass_p_s_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 353 "src/ops/object.ops"
+#line 335 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26322,7 +25094,7 @@
opcode_t *
Parrot_subclass_p_sc_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 353 "src/ops/object.ops"
+#line 335 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
opcode_t * const next = cur_opcode + 4;
@@ -26341,7 +25113,7 @@
opcode_t *
Parrot_subclass_p_s_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 369 "src/ops/object.ops"
+#line 351 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26352,7 +25124,7 @@
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26360,7 +25132,7 @@
opcode_t *
Parrot_subclass_p_sc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 369 "src/ops/object.ops"
+#line 351 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
opcode_t * const next = cur_opcode + 4;
@@ -26371,7 +25143,7 @@
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26379,7 +25151,7 @@
opcode_t *
Parrot_subclass_p_s_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 369 "src/ops/object.ops"
+#line 351 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
opcode_t * const next = cur_opcode + 4;
@@ -26390,7 +25162,7 @@
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26398,7 +25170,7 @@
opcode_t *
Parrot_subclass_p_sc_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 369 "src/ops/object.ops"
+#line 351 "src/ops/object.ops"
PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
opcode_t * const next = cur_opcode + 4;
@@ -26409,7 +25181,7 @@
return (opcode_t *)handler;
}
- PREG(1) = pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);
return (opcode_t *)next;
}
@@ -26417,7 +25189,7 @@
opcode_t *
Parrot_get_class_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 395 "src/ops/object.ops"
+#line 377 "src/ops/object.ops"
PREG(1) = Parrot_oo_get_class_str(interp, SREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26425,7 +25197,7 @@
opcode_t *
Parrot_get_class_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 395 "src/ops/object.ops"
+#line 377 "src/ops/object.ops"
PREG(1) = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -26433,7 +25205,7 @@
opcode_t *
Parrot_get_class_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 399 "src/ops/object.ops"
+#line 381 "src/ops/object.ops"
PREG(1) = Parrot_oo_get_class(interp, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26441,7 +25213,7 @@
opcode_t *
Parrot_get_class_p_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 399 "src/ops/object.ops"
+#line 381 "src/ops/object.ops"
PREG(1) = Parrot_oo_get_class(interp, CONST(2)->u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -26449,7 +25221,7 @@
opcode_t *
Parrot_class_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 411 "src/ops/object.ops"
+#line 393 "src/ops/object.ops"
PREG(1) = VTABLE_get_class(interp, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26457,7 +25229,7 @@
opcode_t *
Parrot_addparent_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 424 "src/ops/object.ops"
+#line 406 "src/ops/object.ops"
VTABLE_add_parent(interp, PREG(1), PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26465,7 +25237,7 @@
opcode_t *
Parrot_removeparent_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 434 "src/ops/object.ops"
+#line 416 "src/ops/object.ops"
VTABLE_remove_parent(interp, PREG(1), PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26473,7 +25245,7 @@
opcode_t *
Parrot_addrole_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 444 "src/ops/object.ops"
+#line 426 "src/ops/object.ops"
VTABLE_add_role(interp, PREG(1), PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26481,7 +25253,7 @@
opcode_t *
Parrot_addattribute_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 454 "src/ops/object.ops"
+#line 436 "src/ops/object.ops"
STRING * const class_name = string_from_literal(interp, "Class");
STRING * const role_name = string_from_literal(interp, "Role");
@@ -26499,7 +25271,7 @@
opcode_t *
Parrot_addattribute_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 454 "src/ops/object.ops"
+#line 436 "src/ops/object.ops"
STRING * const class_name = string_from_literal(interp, "Class");
STRING * const role_name = string_from_literal(interp, "Role");
@@ -26517,7 +25289,7 @@
opcode_t *
Parrot_removeattribute_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 474 "src/ops/object.ops"
+#line 456 "src/ops/object.ops"
VTABLE_remove_attribute(interp, PREG(1), SREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26525,7 +25297,7 @@
opcode_t *
Parrot_removeattribute_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 474 "src/ops/object.ops"
+#line 456 "src/ops/object.ops"
VTABLE_remove_attribute(interp, PREG(1), CONST(2)->u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -26533,7 +25305,7 @@
opcode_t *
Parrot_getattribute_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 491 "src/ops/object.ops"
+#line 473 "src/ops/object.ops"
PREG(1) = VTABLE_get_attr_str(interp, PREG(2), SREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -26541,7 +25313,7 @@
opcode_t *
Parrot_getattribute_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 491 "src/ops/object.ops"
+#line 473 "src/ops/object.ops"
PREG(1) = VTABLE_get_attr_str(interp, PREG(2), CONST(3)->u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -26549,7 +25321,7 @@
opcode_t *
Parrot_getattribute_p_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 495 "src/ops/object.ops"
+#line 477 "src/ops/object.ops"
PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), SREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -26557,7 +25329,7 @@
opcode_t *
Parrot_getattribute_p_p_pc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 495 "src/ops/object.ops"
+#line 477 "src/ops/object.ops"
PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, SREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -26565,7 +25337,7 @@
opcode_t *
Parrot_getattribute_p_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 495 "src/ops/object.ops"
+#line 477 "src/ops/object.ops"
PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), CONST(4)->u.string);
return (opcode_t *)cur_opcode + 5;}
@@ -26573,7 +25345,7 @@
opcode_t *
Parrot_getattribute_p_p_pc_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 495 "src/ops/object.ops"
+#line 477 "src/ops/object.ops"
PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, CONST(4)->u.string);
return (opcode_t *)cur_opcode + 5;}
@@ -26581,7 +25353,7 @@
opcode_t *
Parrot_setattribute_p_s_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 511 "src/ops/object.ops"
+#line 493 "src/ops/object.ops"
VTABLE_set_attr_str(interp, PREG(1), SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -26589,7 +25361,7 @@
opcode_t *
Parrot_setattribute_p_sc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 511 "src/ops/object.ops"
+#line 493 "src/ops/object.ops"
VTABLE_set_attr_str(interp, PREG(1), CONST(2)->u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -26597,7 +25369,7 @@
opcode_t *
Parrot_setattribute_p_p_s_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 515 "src/ops/object.ops"
+#line 497 "src/ops/object.ops"
VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), SREG(3), PREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -26605,7 +25377,7 @@
opcode_t *
Parrot_setattribute_p_pc_s_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 515 "src/ops/object.ops"
+#line 497 "src/ops/object.ops"
VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, SREG(3), PREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -26613,7 +25385,7 @@
opcode_t *
Parrot_setattribute_p_p_sc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 515 "src/ops/object.ops"
+#line 497 "src/ops/object.ops"
VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), CONST(3)->u.string, PREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -26621,7 +25393,7 @@
opcode_t *
Parrot_setattribute_p_pc_sc_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 515 "src/ops/object.ops"
+#line 497 "src/ops/object.ops"
VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.string, PREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -26629,7 +25401,7 @@
opcode_t *
Parrot_inspect_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 533 "src/ops/object.ops"
+#line 515 "src/ops/object.ops"
PREG(1) = VTABLE_inspect(interp, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -26637,7 +25409,7 @@
opcode_t *
Parrot_inspect_p_pc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 533 "src/ops/object.ops"
+#line 515 "src/ops/object.ops"
PREG(1) = VTABLE_inspect(interp, CONST(2)->u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -26645,7 +25417,7 @@
opcode_t *
Parrot_inspect_p_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 537 "src/ops/object.ops"
+#line 519 "src/ops/object.ops"
PREG(1) = VTABLE_inspect_str(interp, PREG(2), SREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -26653,7 +25425,7 @@
opcode_t *
Parrot_inspect_p_pc_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 537 "src/ops/object.ops"
+#line 519 "src/ops/object.ops"
PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, SREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -26661,7 +25433,7 @@
opcode_t *
Parrot_inspect_p_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 537 "src/ops/object.ops"
+#line 519 "src/ops/object.ops"
PREG(1) = VTABLE_inspect_str(interp, PREG(2), CONST(3)->u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -26669,7 +25441,7 @@
opcode_t *
Parrot_inspect_p_pc_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#line 537 "src/ops/object.ops"
+#line 519 "src/ops/object.ops"
PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, CONST(3)->u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -26686,14 +25458,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
return (opcode_t *)cur_opcode + 3;}
@@ -26710,14 +25482,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
return (opcode_t *)cur_opcode + 3;}
@@ -26734,14 +25506,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
}
return (opcode_t *)cur_opcode + 4;}
@@ -26758,14 +25530,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
}
return (opcode_t *)cur_opcode + 4;}
@@ -26782,14 +25554,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -26806,14 +25578,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -26828,14 +25600,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
return (opcode_t *)cur_opcode + 3;}
@@ -26850,14 +25622,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
return (opcode_t *)cur_opcode + 3;}
@@ -26872,14 +25644,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
}
return (opcode_t *)cur_opcode + 4;}
@@ -26894,14 +25666,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, PREG(3));
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
}
return (opcode_t *)cur_opcode + 4;}
@@ -26916,14 +25688,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -26938,14 +25710,14 @@
if (!PMC_IS_NULL(_class))
PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
return (opcode_t *)dest;
}
- PREG(1) = pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -27606,7 +26378,7 @@
Parrot_register_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 630 "src/ops/pmc.ops"
- gc_register_pmc(interp, PREG(1));
+ Parrot_pmc_gc_register(interp, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -27614,7 +26386,7 @@
Parrot_unregister_p (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 634 "src/ops/pmc.ops"
- gc_unregister_pmc(interp, PREG(1));
+ Parrot_pmc_gc_unregister(interp, PREG(1));
return (opcode_t *)cur_opcode + 2;}
@@ -27622,7 +26394,7 @@
Parrot_box_p_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 651 "src/ops/pmc.ops"
- PREG(1) = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
VTABLE_set_integer_native(interp, PREG(1), IREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -27631,7 +26403,7 @@
Parrot_box_p_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 651 "src/ops/pmc.ops"
- PREG(1) = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
VTABLE_set_integer_native(interp, PREG(1), cur_opcode[2]);
return (opcode_t *)cur_opcode + 3;}
@@ -27640,7 +26412,7 @@
Parrot_box_p_n (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 656 "src/ops/pmc.ops"
- PREG(1) = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
VTABLE_set_number_native(interp, PREG(1), NREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -27649,7 +26421,7 @@
Parrot_box_p_nc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 656 "src/ops/pmc.ops"
- PREG(1) = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -27658,7 +26430,7 @@
Parrot_box_p_s (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 661 "src/ops/pmc.ops"
- PREG(1) = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
VTABLE_set_string_native(interp, PREG(1), SREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -27667,7 +26439,7 @@
Parrot_box_p_sc (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 661 "src/ops/pmc.ops"
- PREG(1) = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
VTABLE_set_string_native(interp, PREG(1), CONST(2)->u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -28618,7 +27390,7 @@
memmove(PREG(1), clone, sizeof (PMC));
/* don't let the clone's destruction destroy the destination's data */
- PObj_active_destroy_CLEAR(clone);
+ PObj_custom_destroy_CLEAR(clone);
PMC_data(clone) = NULL;
PMC_sync(clone) = NULL;
PMC_metadata(clone) = NULL;
@@ -30608,6 +29380,8 @@
Parrot_sizeof_i_i (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 317 "src/ops/sys.ops"
+INTVAL unused = PARROT_WARNINGS_test(interp,PARROT_WARNINGS_DEPRECATED_FLAG) &&
+ fprintf(stderr,"Warning: instruction 'sizeof' is deprecated\n");
if (IREG(2) < enum_first_type || IREG(2) >= enum_last_type)
IREG(1) = -1;
else
@@ -30619,6 +29393,8 @@
Parrot_sizeof_i_ic (opcode_t *cur_opcode, PARROT_INTERP) {
Parrot_Context const * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#line 317 "src/ops/sys.ops"
+INTVAL unused = PARROT_WARNINGS_test(interp,PARROT_WARNINGS_DEPRECATED_FLAG) &&
+ fprintf(stderr,"Warning: instruction 'sizeof' is deprecated\n");
if (cur_opcode[2] < enum_first_type || cur_opcode[2] >= enum_last_type)
IREG(1) = -1;
else
@@ -31480,7 +30256,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31488,7 +30264,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31504,7 +30280,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31512,7 +30288,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31528,7 +30304,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31536,7 +30312,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31552,7 +30328,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31560,7 +30336,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31576,7 +30352,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31584,7 +30360,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31600,7 +30376,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31608,7 +30384,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31624,7 +30400,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31632,7 +30408,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31648,7 +30424,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31656,7 +30432,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31672,7 +30448,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31680,7 +30456,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31696,7 +30472,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31704,7 +30480,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31720,7 +30496,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31728,7 +30504,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31744,7 +30520,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31752,7 +30528,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31768,7 +30544,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31776,7 +30552,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31792,7 +30568,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31800,7 +30576,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31816,7 +30592,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31824,7 +30600,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31840,7 +30616,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31848,7 +30624,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31864,7 +30640,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31872,7 +30648,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31888,7 +30664,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31896,7 +30672,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31912,7 +30688,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31920,7 +30696,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31936,7 +30712,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31944,7 +30720,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31960,7 +30736,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31968,7 +30744,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -31984,7 +30760,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -31992,7 +30768,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -32008,7 +30784,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32016,7 +30792,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -32032,7 +30808,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32040,7 +30816,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
}
@@ -32058,7 +30834,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32066,7 +30842,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1));
}
@@ -32085,7 +30861,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32093,7 +30869,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
}
@@ -32112,7 +30888,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32120,7 +30896,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
}
@@ -32139,7 +30915,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32147,7 +30923,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
}
@@ -32166,7 +30942,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32174,7 +30950,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1));
}
@@ -32193,7 +30969,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32201,7 +30977,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
}
@@ -32220,7 +30996,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32228,7 +31004,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
}
@@ -32247,7 +31023,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32255,7 +31031,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
}
@@ -32273,7 +31049,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32281,7 +31057,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1));
@@ -32300,7 +31076,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32308,7 +31084,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
@@ -32327,7 +31103,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32335,7 +31111,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, PREG(2), cur_opcode[3], PREG(1));
@@ -32354,7 +31130,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32362,7 +31138,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
@@ -32381,7 +31157,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32389,7 +31165,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1));
@@ -32408,7 +31184,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32416,7 +31192,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
@@ -32435,7 +31211,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32443,7 +31219,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, PREG(2), cur_opcode[3], PREG(1));
@@ -32462,7 +31238,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32470,7 +31246,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
@@ -32489,7 +31265,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32497,7 +31273,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1));
@@ -32516,7 +31292,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32524,7 +31300,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
@@ -32543,7 +31319,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32551,7 +31327,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
@@ -32570,7 +31346,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, PREG(4));
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32578,7 +31354,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
@@ -32597,7 +31373,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32605,7 +31381,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1));
@@ -32624,7 +31400,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32632,7 +31408,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
@@ -32651,7 +31427,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32659,7 +31435,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
@@ -32678,7 +31454,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
@@ -32686,7 +31462,7 @@
return (opcode_t *)dest;
}
- PREG(1) = pmc_new(interp, type);
+ PREG(1) = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
@@ -32694,13 +31470,13 @@
return (opcode_t *)cur_opcode + 5;}
-#line 32648 "src/ops/core_ops.c"
+#line 31379 "src/ops/core_ops.c"
/*
** Op lookup function:
*/
-#define NUM_OPS 1302
+#define NUM_OPS 1300
#define OP_HASH_SIZE 3041
@@ -32720,14 +31496,14 @@
} HOP;
static HOP **hop;
-static void hop_init(void);
+static void hop_init(PARROT_INTERP);
static size_t hash_str(const char *str);
-static void store_op(op_info_t *info, int full);
+static void store_op(PARROT_INTERP, op_info_t *info, int full);
/* XXX on changing interpreters, this should be called,
through a hook */
-static void hop_deinit(void);
+static void hop_deinit(PARROT_INTERP);
/*
* find a short or full opcode
@@ -32751,8 +31527,8 @@
return key;
}
-static void store_op(op_info_t *info, int full) {
- HOP * const p = mem_allocate_typed(HOP);
+static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+ HOP * const p = mem_gc_allocate_zeroed_typed(interp, HOP);
const size_t hidx =
hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
@@ -32760,12 +31536,12 @@
p->next = hop[hidx];
hop[hidx] = p;
}
-static int get_op(const char * name, int full) {
+static int get_op(PARROT_INTERP, const char * name, int full) {
const HOP * p;
const size_t hidx = hash_str(name) % OP_HASH_SIZE;
if (!hop) {
- hop = mem_allocate_n_zeroed_typed(OP_HASH_SIZE,HOP *);
- hop_init();
+ hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE,HOP *);
+ hop_init(interp);
}
for (p = hop[hidx]; p; p = p->next) {
if(STREQ(name, full ? p->info->full_name : p->info->name))
@@ -32773,18 +31549,18 @@
}
return -1;
}
-static void hop_init(void) {
+static void hop_init(PARROT_INTERP) {
size_t i;
op_info_t * const info = core_op_lib.op_info_table;
/* store full names */
for (i = 0; i < core_op_lib.op_count; i++)
- store_op(info + i, 1);
+ store_op(interp, info + i, 1);
/* plus one short name */
for (i = 0; i < core_op_lib.op_count; i++)
- if (get_op(info[i].name, 0) == -1)
- store_op(info + i, 0);
+ if (get_op(interp, info[i].name, 0) == -1)
+ store_op(interp, info + i, 0);
}
-static void hop_deinit(void)
+static void hop_deinit(PARROT_INTERP)
{
if (hop) {
size_t i;
@@ -32792,7 +31568,7 @@
HOP *p = hop[i];
while (p) {
HOP * const next = p->next;
- mem_sys_free(p);
+ mem_gc_free(interp, p);
p = next;
}
}
@@ -32802,11 +31578,11 @@
}
op_lib_t *
-Parrot_DynOp_core_2_0_0(long init) {
+Parrot_DynOp_core_2_1_0(PARROT_INTERP, long init) {
/* initialize and return op_lib ptr */
if (init == 1) {
- return &core_op_lib;
+ return &core_op_lib;
}
/* set op_lib to the passed ptr (in init) */
else if (init) {
@@ -32814,7 +31590,7 @@
}
/* deinit - free resources */
else {
- hop_deinit();
+ hop_deinit(interp);
}
return NULL;
}
Modified: branches/ops_pct/src/ops/experimental.ops
==============================================================================
--- branches/ops_pct/src/ops/experimental.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/experimental.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -98,7 +98,7 @@
if (!PMC_IS_NULL(classobj))
$1 = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, $4);
+ const INTVAL type = Parrot_pmc_get_type(interp, $4);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, expr NEXT(), EXCEPTION_NO_CLASS,
@@ -106,7 +106,7 @@
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
}
}
@@ -118,7 +118,7 @@
if (!PMC_IS_NULL(classobj))
$1 = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, $4);
+ const INTVAL type = Parrot_pmc_get_type(interp, $4);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, expr NEXT(), EXCEPTION_NO_CLASS,
@@ -126,7 +126,7 @@
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
}
}
@@ -138,7 +138,7 @@
if (!PMC_IS_NULL(classobj))
$1 = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, $4);
+ const INTVAL type = Parrot_pmc_get_type(interp, $4);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, expr NEXT(), EXCEPTION_NO_CLASS,
@@ -146,7 +146,7 @@
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
}
}
@@ -175,7 +175,7 @@
if (!PMC_IS_NULL(classobj))
$1 = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, $4);
+ const INTVAL type = Parrot_pmc_get_type(interp, $4);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, expr NEXT(), EXCEPTION_NO_CLASS,
@@ -183,7 +183,7 @@
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed(interp, $2, $3, $1);
}
@@ -197,7 +197,7 @@
if (!PMC_IS_NULL(classobj))
$1 = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, $4);
+ const INTVAL type = Parrot_pmc_get_type(interp, $4);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, expr NEXT(), EXCEPTION_NO_CLASS,
@@ -205,7 +205,7 @@
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_int(interp, $2, $3, $1);
@@ -220,7 +220,7 @@
if (!PMC_IS_NULL(classobj))
$1 = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, $4);
+ const INTVAL type = Parrot_pmc_get_type(interp, $4);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
interp, expr NEXT(), EXCEPTION_NO_CLASS,
@@ -228,7 +228,7 @@
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
VTABLE_set_pmc_keyed_str(interp, $2, $3, $1);
Modified: branches/ops_pct/src/ops/io.ops
==============================================================================
--- branches/ops_pct/src/ops/io.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/io.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -54,7 +54,7 @@
inline op fdopen(out PMC, in INT, in STR) :filesys_open {
$1 = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)$2, $3);
if (!$1)
- $1 = pmc_new(interp, enum_class_Undef);
+ $1 = Parrot_pmc_new(interp, enum_class_Undef);
}
=item B<getstdin>(out PMC)
Modified: branches/ops_pct/src/ops/math.ops
==============================================================================
--- branches/ops_pct/src/ops/math.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/math.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -205,7 +205,7 @@
result = VTABLE_get_integer(interp, $2) % $3;
- $1 = pmc_new(interp, VTABLE_type(interp, $2));
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
VTABLE_set_integer_native(interp, $1, result);
}
@@ -222,7 +222,7 @@
result = VTABLE_get_integer(interp, $2) % value;
- $1 = pmc_new(interp, VTABLE_type(interp, $2));
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
VTABLE_set_integer_native(interp, $1, result);
}
@@ -283,7 +283,7 @@
result = fmod(VTABLE_get_integer(interp, $2), value);
- $1 = pmc_new(interp, VTABLE_type(interp, $2));
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
VTABLE_set_integer_native(interp, $1, (INTVAL) result);
}
@@ -812,15 +812,35 @@
}
inline op pow(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_pow(interp, $2, $3, $1);
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL b = VTABLE_get_number(interp, $3);
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL($1))
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
}
inline op pow(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_pow_int(interp, $2, $3, $1);
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL b = (FLOATVAL)$3;
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL($1))
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
}
inline op pow(invar PMC, invar PMC, in NUM) :base_core {
- $1 = VTABLE_pow_float(interp, $2, $3, $1);
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL c = pow(a, $3);
+ if (PMC_IS_NULL($1))
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
}
inline op pow(out NUM, in NUM, in INT) :base_core {
Modified: branches/ops_pct/src/ops/object.ops
==============================================================================
--- branches/ops_pct/src/ops/object.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/object.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -138,15 +138,6 @@
else {
interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
- /* Detach continuation from current CallContext to avoid marking dead object. */
- /* RetContinuation will kill itself after invoke */
- if (interp->current_cont->vtable->base_type == enum_class_RetContinuation
- && Parrot_pcc_do_run_ops(interp, method_pmc)) {
- PMC * const ctx = CURRENT_CONTEXT(interp);
- PMC * const parent_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
- PMC_cont(interp->current_cont)->from_ctx = parent_ctx;
- Parrot_pcc_set_continuation(interp, ctx, PMCNULL);
- }
interp->current_object = object;
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
}
@@ -162,15 +153,6 @@
interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
- /* Detach continuation from current CallContext to avoid marking dead object. */
- /* RetContinuation will kill itself after invoke */
- if (interp->current_cont->vtable->base_type == enum_class_RetContinuation
- && Parrot_pcc_do_run_ops(interp, method_pmc)) {
- PMC * const ctx = CURRENT_CONTEXT(interp);
- PMC * const parent_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
- PMC_cont(interp->current_cont)->from_ctx = parent_ctx;
- Parrot_pcc_set_continuation(interp, ctx, PMCNULL);
- }
interp->current_object = object;
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
@@ -254,13 +236,13 @@
=cut
inline op newclass(out PMC, in STR) :object_classes {
- PMC * const name = pmc_new(interp, enum_class_String);
+ PMC * const name = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, name, $2);
- $1 = pmc_new_init(interp, enum_class_Class, name);
+ $1 = Parrot_pmc_new_init(interp, enum_class_Class, name);
}
inline op newclass(out PMC, in PMC) :object_classes {
- $1 = pmc_new_init(interp, enum_class_Class, $2);
+ $1 = Parrot_pmc_new_init(interp, enum_class_Class, $2);
}
=item B<subclass>(out PMC, in PMC)
@@ -285,7 +267,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, $2));
goto ADDRESS(handler);
}
- $1 = pmc_new(interp, enum_class_Class);
+ $1 = Parrot_pmc_new(interp, enum_class_Class);
VTABLE_add_parent(interp, $1, parent_class);
goto ADDRESS(next);
}
@@ -315,7 +297,7 @@
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, $2));
goto ADDRESS(handler);
}
- $1 = pmc_new_init(interp, enum_class_Class, $3);
+ $1 = Parrot_pmc_new_init(interp, enum_class_Class, $3);
VTABLE_add_parent(interp, $1, parent_class);
goto ADDRESS(next);
}
@@ -344,7 +326,7 @@
goto ADDRESS(handler);
}
- $1 = pmc_new(interp, enum_class_Class);
+ $1 = Parrot_pmc_new(interp, enum_class_Class);
VTABLE_add_parent(interp, $1, parent_class);
goto ADDRESS(next);
}
@@ -376,7 +358,7 @@
goto ADDRESS(handler);
}
- $1 = pmc_new_init(interp, enum_class_Class, $3);
+ $1 = Parrot_pmc_new_init(interp, enum_class_Class, $3);
VTABLE_add_parent(interp, $1, parent_class);
goto ADDRESS(next);
}
Modified: branches/ops_pct/src/ops/ops.num
==============================================================================
--- branches/ops_pct/src/ops/ops.num Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/ops.num Sun Mar 7 19:33:20 2010 (r44743)
@@ -26,1251 +26,1249 @@
check_events 3
check_events__ 4
wrapper__ 5
-prederef__ 6
-reserved_ic 7
###DYNAMIC### other ops
-load_bytecode_s 8
-load_bytecode_sc 9
-load_language_s 10
-load_language_sc 11
-branch_i 12
-branch_ic 13
-local_branch_p_i 14
-local_branch_p_ic 15
-local_return_p 16
-jump_i 17
-jump_ic 18
-enternative 19
-if_i_ic 20
-if_n_ic 21
-if_s_ic 22
-if_p_ic 23
-unless_i_ic 24
-unless_n_ic 25
-unless_s_ic 26
-unless_p_ic 27
-invokecc_p 28
-invoke_p_p 29
-yield 30
-tailcall_p 31
-returncc 32
-capture_lex_p 33
-newclosure_p_p 34
-set_args_pc 35
-get_results_pc 36
-get_params_pc 37
-set_returns_pc 38
-result_info_p 39
-set_addr_i_ic 40
-set_addr_p_ic 41
-set_addr_p_i 42
-get_addr_i_p 43
-schedule_p 44
-addhandler_p 45
-push_eh_ic 46
-push_eh_p 47
-pop_eh 48
-throw_p 49
-throw_p_p 50
-rethrow_p 51
-count_eh_i 52
-die_s 53
-die_sc 54
-die_p 55
-die_pc 56
-die_i_i 57
-die_ic_i 58
-die_i_ic 59
-die_ic_ic 60
-exit_i 61
-exit_ic 62
-pushmark_i 63
-pushmark_ic 64
-popmark_i 65
-popmark_ic 66
-pushaction_p 67
-debug_i 68
-debug_ic 69
-bounds_i 70
-bounds_ic 71
-profile_i 72
-profile_ic 73
-trace_i 74
-trace_ic 75
-gc_debug_i 76
-gc_debug_ic 77
-interpinfo_i_i 78
-interpinfo_i_ic 79
-interpinfo_p_i 80
-interpinfo_p_ic 81
-interpinfo_s_i 82
-interpinfo_s_ic 83
-warningson_i 84
-warningson_ic 85
-warningsoff_i 86
-warningsoff_ic 87
-errorson_i 88
-errorson_ic 89
-errorsoff_i 90
-errorsoff_ic 91
-runinterp_p_i 92
-runinterp_p_ic 93
-getinterp_p 94
-sweep_ic 95
-collect 96
-sweepoff 97
-sweepon 98
-collectoff 99
-collecton 100
-needs_destroy_p 101
-loadlib_p_s 102
-loadlib_p_sc 103
-dlfunc_p_p_s_s 104
-dlfunc_p_p_sc_s 105
-dlfunc_p_p_s_sc 106
-dlfunc_p_p_sc_sc 107
-dlvar_p_p_s 108
-dlvar_p_p_sc 109
-compreg_s_p 110
-compreg_sc_p 111
-compreg_p_s 112
-compreg_p_sc 113
-new_callback_p_p_p_s 114
-new_callback_p_p_p_sc 115
-annotations_p 116
-annotations_p_s 117
-annotations_p_sc 118
-band_i_i 119
-band_i_ic 120
-band_p_i 121
-band_p_ic 122
-band_p_p 123
-band_i_i_i 124
-band_i_ic_i 125
-band_i_i_ic 126
-band_p_p_i 127
-band_p_p_ic 128
-band_p_p_p 129
-bands_s_s 130
-bands_s_sc 131
-bands_p_s 132
-bands_p_sc 133
-bands_p_p 134
-bands_s_s_s 135
-bands_s_sc_s 136
-bands_s_s_sc 137
-bands_p_p_s 138
-bands_p_p_sc 139
-bands_p_p_p 140
-bnot_i 141
-bnot_i_i 142
-bnot_p 143
-bnot_p_p 144
-bnots_s 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_s_s 161
-bors_s_sc 162
-bors_p_s 163
-bors_p_sc 164
-bors_p_p 165
-bors_s_s_s 166
-bors_s_sc_s 167
-bors_s_s_sc 168
-bors_p_p_s 169
-bors_p_p_sc 170
-bors_p_p_p 171
-shl_i_i 172
-shl_i_ic 173
-shl_p_i 174
-shl_p_ic 175
-shl_p_p 176
-shl_i_i_i 177
-shl_i_ic_i 178
-shl_i_i_ic 179
-shl_p_p_i 180
-shl_p_p_ic 181
-shl_p_p_p 182
-shr_i_i 183
-shr_i_ic 184
-shr_p_i 185
-shr_p_ic 186
-shr_p_p 187
-shr_i_i_i 188
-shr_i_ic_i 189
-shr_i_i_ic 190
-shr_p_p_i 191
-shr_p_p_ic 192
-shr_p_p_p 193
-lsr_i_i 194
-lsr_i_ic 195
-lsr_p_i 196
-lsr_p_ic 197
-lsr_p_p 198
-lsr_i_i_i 199
-lsr_i_ic_i 200
-lsr_i_i_ic 201
-lsr_p_p_i 202
-lsr_p_p_ic 203
-lsr_p_p_p 204
-rot_i_i_i_ic 205
-rot_i_ic_i_ic 206
-rot_i_i_ic_ic 207
-bxor_i_i 208
-bxor_i_ic 209
-bxor_p_i 210
-bxor_p_ic 211
-bxor_p_p 212
-bxor_i_i_i 213
-bxor_i_ic_i 214
-bxor_i_i_ic 215
-bxor_p_p_i 216
-bxor_p_p_ic 217
-bxor_p_p_p 218
-bxors_s_s 219
-bxors_s_sc 220
-bxors_p_s 221
-bxors_p_sc 222
-bxors_p_p 223
-bxors_s_s_s 224
-bxors_s_sc_s 225
-bxors_s_s_sc 226
-bxors_p_p_s 227
-bxors_p_p_sc 228
-bxors_p_p_p 229
-eq_i_i_ic 230
-eq_ic_i_ic 231
-eq_i_ic_ic 232
-eq_n_n_ic 233
-eq_nc_n_ic 234
-eq_n_nc_ic 235
-eq_s_s_ic 236
-eq_sc_s_ic 237
-eq_s_sc_ic 238
-eq_p_p_ic 239
-eq_p_i_ic 240
-eq_p_ic_ic 241
-eq_p_n_ic 242
-eq_p_nc_ic 243
-eq_p_s_ic 244
-eq_p_sc_ic 245
-eq_str_p_p_ic 246
-eq_num_p_p_ic 247
-eq_addr_s_s_ic 248
-eq_addr_sc_s_ic 249
-eq_addr_s_sc_ic 250
-eq_addr_sc_sc_ic 251
-eq_addr_p_p_ic 252
-ne_i_i_ic 253
-ne_ic_i_ic 254
-ne_i_ic_ic 255
-ne_n_n_ic 256
-ne_nc_n_ic 257
-ne_n_nc_ic 258
-ne_s_s_ic 259
-ne_sc_s_ic 260
-ne_s_sc_ic 261
-ne_p_p_ic 262
-ne_p_i_ic 263
-ne_p_ic_ic 264
-ne_p_n_ic 265
-ne_p_nc_ic 266
-ne_p_s_ic 267
-ne_p_sc_ic 268
-ne_str_p_p_ic 269
-ne_num_p_p_ic 270
-ne_addr_s_s_ic 271
-ne_addr_sc_s_ic 272
-ne_addr_s_sc_ic 273
-ne_addr_sc_sc_ic 274
-ne_addr_p_p_ic 275
-lt_i_i_ic 276
-lt_ic_i_ic 277
-lt_i_ic_ic 278
-lt_n_n_ic 279
-lt_nc_n_ic 280
-lt_n_nc_ic 281
-lt_s_s_ic 282
-lt_sc_s_ic 283
-lt_s_sc_ic 284
-lt_p_p_ic 285
-lt_p_i_ic 286
-lt_p_ic_ic 287
-lt_p_n_ic 288
-lt_p_nc_ic 289
-lt_p_s_ic 290
-lt_p_sc_ic 291
-lt_str_p_p_ic 292
-lt_num_p_p_ic 293
-le_i_i_ic 294
-le_ic_i_ic 295
-le_i_ic_ic 296
-le_n_n_ic 297
-le_nc_n_ic 298
-le_n_nc_ic 299
-le_s_s_ic 300
-le_sc_s_ic 301
-le_s_sc_ic 302
-le_p_p_ic 303
-le_p_i_ic 304
-le_p_ic_ic 305
-le_p_n_ic 306
-le_p_nc_ic 307
-le_p_s_ic 308
-le_p_sc_ic 309
-le_str_p_p_ic 310
-le_num_p_p_ic 311
-gt_p_p_ic 312
-gt_p_i_ic 313
-gt_p_ic_ic 314
-gt_p_n_ic 315
-gt_p_nc_ic 316
-gt_p_s_ic 317
-gt_p_sc_ic 318
-gt_str_p_p_ic 319
-gt_num_p_p_ic 320
-ge_p_p_ic 321
-ge_p_i_ic 322
-ge_p_ic_ic 323
-ge_p_n_ic 324
-ge_p_nc_ic 325
-ge_p_s_ic 326
-ge_p_sc_ic 327
-ge_str_p_p_ic 328
-ge_num_p_p_ic 329
-if_null_p_ic 330
-if_null_s_ic 331
-unless_null_p_ic 332
-unless_null_s_ic 333
-cmp_i_i_i 334
-cmp_i_ic_i 335
-cmp_i_i_ic 336
-cmp_i_n_n 337
-cmp_i_nc_n 338
-cmp_i_n_nc 339
-cmp_i_s_s 340
-cmp_i_sc_s 341
-cmp_i_s_sc 342
-cmp_i_p_p 343
-cmp_i_p_i 344
-cmp_i_p_ic 345
-cmp_i_p_n 346
-cmp_i_p_nc 347
-cmp_i_p_s 348
-cmp_i_p_sc 349
-cmp_str_i_p_p 350
-cmp_num_i_p_p 351
-cmp_pmc_p_p_p 352
-issame_i_p_p 353
-issame_i_s_s 354
-issame_i_sc_s 355
-issame_i_s_sc 356
-issame_i_sc_sc 357
-isntsame_i_p_p 358
-isntsame_i_s_s 359
-isntsame_i_sc_s 360
-isntsame_i_s_sc 361
-isntsame_i_sc_sc 362
-istrue_i_p 363
-isfalse_i_p 364
-isnull_i_p 365
-isnull_i_pc 366
-isnull_i_s 367
-isnull_i_sc 368
-isgt_i_p_p 369
-isge_i_p_p 370
-isle_i_i_i 371
-isle_i_ic_i 372
-isle_i_i_ic 373
-isle_i_n_n 374
-isle_i_nc_n 375
-isle_i_n_nc 376
-isle_i_s_s 377
-isle_i_sc_s 378
-isle_i_s_sc 379
-isle_i_p_p 380
-islt_i_i_i 381
-islt_i_ic_i 382
-islt_i_i_ic 383
-islt_i_n_n 384
-islt_i_nc_n 385
-islt_i_n_nc 386
-islt_i_s_s 387
-islt_i_sc_s 388
-islt_i_s_sc 389
-islt_i_p_p 390
-iseq_i_i_i 391
-iseq_i_ic_i 392
-iseq_i_i_ic 393
-iseq_i_n_n 394
-iseq_i_nc_n 395
-iseq_i_n_nc 396
-iseq_i_s_s 397
-iseq_i_sc_s 398
-iseq_i_s_sc 399
-iseq_i_p_p 400
-isne_i_i_i 401
-isne_i_ic_i 402
-isne_i_i_ic 403
-isne_i_n_n 404
-isne_i_nc_n 405
-isne_i_n_nc 406
-isne_i_s_s 407
-isne_i_sc_s 408
-isne_i_s_sc 409
-isne_i_p_p 410
-and_i_i_i 411
-and_i_ic_i 412
-and_i_i_ic 413
-and_p_p_p 414
-not_i 415
-not_i_i 416
-not_p 417
-not_p_p 418
-or_i_i_i 419
-or_i_ic_i 420
-or_i_i_ic 421
-or_p_p_p 422
-xor_i_i_i 423
-xor_i_ic_i 424
-xor_i_i_ic 425
-xor_p_p_p 426
-debug_init 427
-debug_load_sc 428
-debug_break 429
-debug_print 430
-backtrace 431
-getline_i 432
-getfile_s 433
-set_label_p_ic 434
-get_label_i_p 435
-close_p 436
-fdopen_p_i_s 437
-fdopen_p_ic_s 438
-fdopen_p_i_sc 439
-fdopen_p_ic_sc 440
-getstdin_p 441
-getstdout_p 442
-getstderr_p 443
-setstdin_p 444
-setstdout_p 445
-setstderr_p 446
-open_p_s_s 447
-open_p_sc_s 448
-open_p_s_sc 449
-open_p_sc_sc 450
-open_p_s 451
-open_p_sc 452
-print_i 453
-print_ic 454
-print_n 455
-print_nc 456
-print_s 457
-print_sc 458
-print_p 459
-say_i 460
-say_ic 461
-say_n 462
-say_nc 463
-say_s 464
-say_sc 465
-say_p 466
-printerr_i 467
-printerr_ic 468
-printerr_n 469
-printerr_nc 470
-printerr_s 471
-printerr_sc 472
-printerr_p 473
-print_p_i 474
-print_p_ic 475
-print_p_n 476
-print_p_nc 477
-print_p_s 478
-print_p_sc 479
-print_p_p 480
-read_s_i 481
-read_s_ic 482
-read_s_p_i 483
-read_s_p_ic 484
-readline_s_p 485
-peek_s 486
-peek_s_p 487
-stat_i_s_i 488
-stat_i_sc_i 489
-stat_i_s_ic 490
-stat_i_sc_ic 491
-stat_i_i_i 492
-stat_i_ic_i 493
-stat_i_i_ic 494
-stat_i_ic_ic 495
-seek_p_i_i 496
-seek_p_ic_i 497
-seek_p_i_ic 498
-seek_p_ic_ic 499
-seek_p_i_i_i 500
-seek_p_ic_i_i 501
-seek_p_i_ic_i 502
-seek_p_ic_ic_i 503
-seek_p_i_i_ic 504
-seek_p_ic_i_ic 505
-seek_p_i_ic_ic 506
-seek_p_ic_ic_ic 507
-tell_i_p 508
-tell_i_i_p 509
-abs_i 510
-abs_n 511
-abs_i_i 512
-abs_n_n 513
-abs_p 514
-abs_p_p 515
-add_i_i 516
-add_i_ic 517
-add_n_n 518
-add_n_nc 519
-add_p_p 520
-add_p_i 521
-add_p_ic 522
-add_p_n 523
-add_p_nc 524
-add_i_i_i 525
-add_i_ic_i 526
-add_i_i_ic 527
-add_n_n_n 528
-add_n_nc_n 529
-add_n_n_nc 530
-add_p_p_p 531
-add_p_p_i 532
-add_p_p_ic 533
-add_p_p_n 534
-add_p_p_nc 535
-cmod_i_i_i 536
-cmod_i_ic_i 537
-cmod_i_i_ic 538
-cmod_p_p_i 539
-cmod_p_p_ic 540
-cmod_p_p_p 541
-cmod_n_n_n 542
-cmod_n_nc_n 543
-cmod_n_n_nc 544
-cmod_p_p_n 545
-cmod_p_p_nc 546
-dec_i 547
-dec_n 548
-dec_p 549
-div_i_i 550
-div_i_ic 551
-div_n_n 552
-div_n_nc 553
-div_p_p 554
-div_p_i 555
-div_p_ic 556
-div_p_n 557
-div_p_nc 558
-div_i_i_i 559
-div_i_ic_i 560
-div_i_i_ic 561
-div_i_ic_ic 562
-div_n_n_n 563
-div_n_nc_n 564
-div_n_n_nc 565
-div_n_nc_nc 566
-div_p_p_p 567
-div_p_p_i 568
-div_p_p_ic 569
-div_p_p_n 570
-div_p_p_nc 571
-fdiv_i_i 572
-fdiv_i_ic 573
-fdiv_n_n 574
-fdiv_n_nc 575
-fdiv_p_p 576
-fdiv_p_i 577
-fdiv_p_ic 578
-fdiv_p_n 579
-fdiv_p_nc 580
-fdiv_i_i_i 581
-fdiv_i_ic_i 582
-fdiv_i_i_ic 583
-fdiv_n_n_n 584
-fdiv_n_nc_n 585
-fdiv_n_n_nc 586
-fdiv_p_p_p 587
-fdiv_p_p_i 588
-fdiv_p_p_ic 589
-fdiv_p_p_n 590
-fdiv_p_p_nc 591
-ceil_n 592
-ceil_i_n 593
-ceil_n_n 594
-floor_n 595
-floor_i_n 596
-floor_n_n 597
-inc_i 598
-inc_n 599
-inc_p 600
-mod_i_i 601
-mod_i_ic 602
-mod_n_n 603
-mod_n_nc 604
-mod_p_p 605
-mod_p_i 606
-mod_p_ic 607
-mod_p_n 608
-mod_p_nc 609
-mod_i_i_i 610
-mod_i_ic_i 611
-mod_i_i_ic 612
-mod_n_n_n 613
-mod_n_nc_n 614
-mod_n_n_nc 615
-mod_p_p_p 616
-mod_p_p_i 617
-mod_p_p_ic 618
-mod_p_p_n 619
-mod_p_p_nc 620
-mul_i_i 621
-mul_i_ic 622
-mul_n_n 623
-mul_n_nc 624
-mul_p_p 625
-mul_p_i 626
-mul_p_ic 627
-mul_p_n 628
-mul_p_nc 629
-mul_i_i_i 630
-mul_i_ic_i 631
-mul_i_i_ic 632
-mul_n_n_n 633
-mul_n_nc_n 634
-mul_n_n_nc 635
-mul_p_p_p 636
-mul_p_p_i 637
-mul_p_p_ic 638
-mul_p_p_n 639
-mul_p_p_nc 640
-neg_i 641
-neg_n 642
-neg_p 643
-neg_i_i 644
-neg_n_n 645
-neg_p_p 646
-pow_n_n_n 647
-pow_n_nc_n 648
-pow_n_n_nc 649
-pow_p_p_p 650
-pow_p_p_i 651
-pow_p_p_ic 652
-pow_p_p_n 653
-pow_p_p_nc 654
-pow_n_n_i 655
-pow_n_nc_i 656
-pow_n_n_ic 657
-pow_n_nc_ic 658
-sub_i_i 659
-sub_i_ic 660
-sub_n_n 661
-sub_n_nc 662
-sub_p_p 663
-sub_p_i 664
-sub_p_ic 665
-sub_p_n 666
-sub_p_nc 667
-sub_i_i_i 668
-sub_i_ic_i 669
-sub_i_i_ic 670
-sub_n_n_n 671
-sub_n_nc_n 672
-sub_n_n_nc 673
-sub_p_p_p 674
-sub_p_p_i 675
-sub_p_p_ic 676
-sub_p_p_n 677
-sub_p_p_nc 678
-sqrt_n_n 679
-acos_n_n 680
-asec_n_n 681
-asin_n_n 682
-atan_n_n 683
-atan_n_n_n 684
-atan_n_nc_n 685
-atan_n_n_nc 686
-cos_n_n 687
-cosh_n_n 688
-exp_n_n 689
-ln_n_n 690
-log10_n_n 691
-log2_n_n 692
-sec_n_n 693
-sech_n_n 694
-sin_n_n 695
-sinh_n_n 696
-tan_n_n 697
-tanh_n_n 698
-gcd_i_i_i 699
-gcd_i_ic_i 700
-gcd_i_i_ic 701
-lcm_i_i_i 702
-lcm_i_ic_i 703
-lcm_i_i_ic 704
-fact_i_i 705
-fact_n_i 706
-callmethodcc_p_s 707
-callmethodcc_p_sc 708
-callmethodcc_p_p 709
-callmethod_p_s_p 710
-callmethod_p_sc_p 711
-callmethod_p_p_p 712
-tailcallmethod_p_s 713
-tailcallmethod_p_sc 714
-tailcallmethod_p_p 715
-addmethod_p_s_p 716
-addmethod_p_sc_p 717
-can_i_p_s 718
-can_i_p_sc 719
-does_i_p_s 720
-does_i_p_sc 721
-does_i_p_p 722
-does_i_p_pc 723
-isa_i_p_s 724
-isa_i_p_sc 725
-isa_i_p_p 726
-isa_i_p_pc 727
-newclass_p_s 728
-newclass_p_sc 729
-newclass_p_p 730
-newclass_p_pc 731
-subclass_p_p 732
-subclass_p_pc 733
-subclass_p_p_s 734
-subclass_p_pc_s 735
-subclass_p_p_sc 736
-subclass_p_pc_sc 737
-subclass_p_p_p 738
-subclass_p_pc_p 739
-subclass_p_p_pc 740
-subclass_p_pc_pc 741
-subclass_p_s 742
-subclass_p_sc 743
-subclass_p_s_s 744
-subclass_p_sc_s 745
-subclass_p_s_sc 746
-subclass_p_sc_sc 747
-subclass_p_s_p 748
-subclass_p_sc_p 749
-subclass_p_s_pc 750
-subclass_p_sc_pc 751
-get_class_p_s 752
-get_class_p_sc 753
-get_class_p_p 754
-get_class_p_pc 755
-class_p_p 756
-addparent_p_p 757
-removeparent_p_p 758
-addrole_p_p 759
-addattribute_p_s 760
-addattribute_p_sc 761
-removeattribute_p_s 762
-removeattribute_p_sc 763
-getattribute_p_p_s 764
-getattribute_p_p_sc 765
-getattribute_p_p_p_s 766
-getattribute_p_p_pc_s 767
-getattribute_p_p_p_sc 768
-getattribute_p_p_pc_sc 769
-setattribute_p_s_p 770
-setattribute_p_sc_p 771
-setattribute_p_p_s_p 772
-setattribute_p_pc_s_p 773
-setattribute_p_p_sc_p 774
-setattribute_p_pc_sc_p 775
-inspect_p_p 776
-inspect_p_pc 777
-inspect_p_p_s 778
-inspect_p_pc_s 779
-inspect_p_p_sc 780
-inspect_p_pc_sc 781
-new_p_s 782
-new_p_sc 783
-new_p_s_p 784
-new_p_sc_p 785
-new_p_s_pc 786
-new_p_sc_pc 787
-new_p_p 788
-new_p_pc 789
-new_p_p_p 790
-new_p_pc_p 791
-new_p_p_pc 792
-new_p_pc_pc 793
-root_new_p_p 794
-root_new_p_pc 795
-root_new_p_p_p 796
-root_new_p_pc_p 797
-root_new_p_p_pc 798
-root_new_p_pc_pc 799
-typeof_s_p 800
-typeof_p_p 801
-get_repr_s_p 802
-find_method_p_p_s 803
-find_method_p_p_sc 804
-defined_i_p 805
-defined_i_p_ki 806
-defined_i_p_kic 807
-defined_i_p_k 808
-defined_i_p_kc 809
-exists_i_p_ki 810
-exists_i_p_kic 811
-exists_i_p_k 812
-exists_i_p_kc 813
-delete_p_k 814
-delete_p_kc 815
-delete_p_ki 816
-delete_p_kic 817
-elements_i_p 818
-push_p_i 819
-push_p_ic 820
-push_p_n 821
-push_p_nc 822
-push_p_s 823
-push_p_sc 824
-push_p_p 825
-pop_i_p 826
-pop_n_p 827
-pop_s_p 828
-pop_p_p 829
-unshift_p_i 830
-unshift_p_ic 831
-unshift_p_n 832
-unshift_p_nc 833
-unshift_p_s 834
-unshift_p_sc 835
-unshift_p_p 836
-shift_i_p 837
-shift_n_p 838
-shift_s_p 839
-shift_p_p 840
-splice_p_p_i_i 841
-splice_p_p_ic_i 842
-splice_p_p_i_ic 843
-splice_p_p_ic_ic 844
-setprop_p_s_p 845
-setprop_p_sc_p 846
-getprop_p_s_p 847
-getprop_p_sc_p 848
-delprop_p_s 849
-delprop_p_sc 850
-prophash_p_p 851
-freeze_s_p 852
-thaw_p_s 853
-thaw_p_sc 854
-add_multi_s_s_p 855
-add_multi_sc_s_p 856
-add_multi_s_sc_p 857
-add_multi_sc_sc_p 858
-find_multi_p_s_s 859
-find_multi_p_sc_s 860
-find_multi_p_s_sc 861
-find_multi_p_sc_sc 862
-register_p 863
-unregister_p 864
-box_p_i 865
-box_p_ic 866
-box_p_n 867
-box_p_nc 868
-box_p_s 869
-box_p_sc 870
-iter_p_p 871
-morph_p_p 872
-morph_p_pc 873
-clone_s_s 874
-clone_s_sc 875
-exchange_i_i 876
-exchange_p_p 877
-exchange_n_n 878
-exchange_s_s 879
-set_i_i 880
-set_i_ic 881
-set_i_n 882
-set_i_nc 883
-set_i_s 884
-set_i_sc 885
-set_n_n 886
-set_n_nc 887
-set_n_i 888
-set_n_ic 889
-set_n_s 890
-set_n_sc 891
-set_n_p 892
-set_s_p 893
-set_s_s 894
-set_s_sc 895
-set_s_i 896
-set_s_ic 897
-set_s_n 898
-set_s_nc 899
-set_p_pc 900
-set_p_p 901
-set_p_i 902
-set_p_ic 903
-set_p_n 904
-set_p_nc 905
-set_p_s 906
-set_p_sc 907
-set_i_p 908
-assign_p_p 909
-assign_p_i 910
-assign_p_ic 911
-assign_p_n 912
-assign_p_nc 913
-assign_p_s 914
-assign_p_sc 915
-assign_s_s 916
-assign_s_sc 917
-setref_p_p 918
-deref_p_p 919
-setp_ind_i_p 920
-setp_ind_ic_p 921
-setn_ind_i_n 922
-setn_ind_ic_n 923
-setn_ind_i_nc 924
-setn_ind_ic_nc 925
-sets_ind_i_s 926
-sets_ind_ic_s 927
-sets_ind_i_sc 928
-sets_ind_ic_sc 929
-seti_ind_i_i 930
-seti_ind_ic_i 931
-seti_ind_i_ic 932
-seti_ind_ic_ic 933
-set_p_ki_i 934
-set_p_kic_i 935
-set_p_ki_ic 936
-set_p_kic_ic 937
-set_p_ki_n 938
-set_p_kic_n 939
-set_p_ki_nc 940
-set_p_kic_nc 941
-set_p_ki_s 942
-set_p_kic_s 943
-set_p_ki_sc 944
-set_p_kic_sc 945
-set_p_ki_p 946
-set_p_kic_p 947
-set_i_p_ki 948
-set_i_p_kic 949
-set_n_p_ki 950
-set_n_p_kic 951
-set_s_p_ki 952
-set_s_p_kic 953
-set_p_p_ki 954
-set_p_p_kic 955
-set_p_k_i 956
-set_p_kc_i 957
-set_p_k_ic 958
-set_p_kc_ic 959
-set_p_k_n 960
-set_p_kc_n 961
-set_p_k_nc 962
-set_p_kc_nc 963
-set_p_k_s 964
-set_p_kc_s 965
-set_p_k_sc 966
-set_p_kc_sc 967
-set_p_k_p 968
-set_p_kc_p 969
-set_i_p_k 970
-set_i_p_kc 971
-set_n_p_k 972
-set_n_p_kc 973
-set_s_p_k 974
-set_s_p_kc 975
-set_p_p_k 976
-set_p_p_kc 977
-clone_p_p 978
-clone_p_p_p 979
-clone_p_p_pc 980
-copy_p_p 981
-null_s 982
-null_i 983
-null_p 984
-null_n 985
-cleari 986
-clearn 987
-clears 988
-clearp 989
-ord_i_s 990
-ord_i_sc 991
-ord_i_s_i 992
-ord_i_sc_i 993
-ord_i_s_ic 994
-ord_i_sc_ic 995
-chr_s_i 996
-chr_s_ic 997
-chopn_s_i 998
-chopn_s_ic 999
-chopn_s_s_i 1000
-chopn_s_sc_i 1001
-chopn_s_s_ic 1002
-chopn_s_sc_ic 1003
-concat_s_s 1004
-concat_s_sc 1005
-concat_p_p 1006
-concat_p_s 1007
-concat_p_sc 1008
-concat_s_s_s 1009
-concat_s_sc_s 1010
-concat_s_s_sc 1011
-concat_p_p_s 1012
-concat_p_p_sc 1013
-concat_p_p_p 1014
-repeat_s_s_i 1015
-repeat_s_sc_i 1016
-repeat_s_s_ic 1017
-repeat_s_sc_ic 1018
-repeat_p_p_i 1019
-repeat_p_p_ic 1020
-repeat_p_p_p 1021
-repeat_p_i 1022
-repeat_p_ic 1023
-repeat_p_p 1024
-length_i_s 1025
-length_i_sc 1026
-bytelength_i_s 1027
-bytelength_i_sc 1028
-pin_s 1029
-unpin_s 1030
-substr_s_s_i 1031
-substr_s_sc_i 1032
-substr_s_s_ic 1033
-substr_s_sc_ic 1034
-substr_s_s_i_i 1035
-substr_s_sc_i_i 1036
-substr_s_s_ic_i 1037
-substr_s_sc_ic_i 1038
-substr_s_s_i_ic 1039
-substr_s_sc_i_ic 1040
-substr_s_s_ic_ic 1041
-substr_s_sc_ic_ic 1042
-substr_s_s_i_i_s 1043
-substr_s_s_ic_i_s 1044
-substr_s_s_i_ic_s 1045
-substr_s_s_ic_ic_s 1046
-substr_s_s_i_i_sc 1047
-substr_s_s_ic_i_sc 1048
-substr_s_s_i_ic_sc 1049
-substr_s_s_ic_ic_sc 1050
-substr_s_i_i_s 1051
-substr_s_ic_i_s 1052
-substr_s_i_ic_s 1053
-substr_s_ic_ic_s 1054
-substr_s_i_i_sc 1055
-substr_s_ic_i_sc 1056
-substr_s_i_ic_sc 1057
-substr_s_ic_ic_sc 1058
-substr_s_p_i_i 1059
-substr_s_p_ic_i 1060
-substr_s_p_i_ic 1061
-substr_s_p_ic_ic 1062
-index_i_s_s 1063
-index_i_sc_s 1064
-index_i_s_sc 1065
-index_i_sc_sc 1066
-index_i_s_s_i 1067
-index_i_sc_s_i 1068
-index_i_s_sc_i 1069
-index_i_sc_sc_i 1070
-index_i_s_s_ic 1071
-index_i_sc_s_ic 1072
-index_i_s_sc_ic 1073
-index_i_sc_sc_ic 1074
-sprintf_s_s_p 1075
-sprintf_s_sc_p 1076
-sprintf_p_p_p 1077
-new_s 1078
-new_s_i 1079
-new_s_ic 1080
-stringinfo_i_s_i 1081
-stringinfo_i_sc_i 1082
-stringinfo_i_s_ic 1083
-stringinfo_i_sc_ic 1084
-upcase_s_s 1085
-upcase_s_sc 1086
-upcase_s 1087
-downcase_s_s 1088
-downcase_s_sc 1089
-downcase_s 1090
-titlecase_s_s 1091
-titlecase_s_sc 1092
-titlecase_s 1093
-join_s_s_p 1094
-join_s_sc_p 1095
-split_p_s_s 1096
-split_p_sc_s 1097
-split_p_s_sc 1098
-split_p_sc_sc 1099
-charset_i_s 1100
-charset_i_sc 1101
-charsetname_s_i 1102
-charsetname_s_ic 1103
-find_charset_i_s 1104
-find_charset_i_sc 1105
-trans_charset_s_i 1106
-trans_charset_s_ic 1107
-trans_charset_s_s_i 1108
-trans_charset_s_sc_i 1109
-trans_charset_s_s_ic 1110
-trans_charset_s_sc_ic 1111
-encoding_i_s 1112
-encoding_i_sc 1113
-encodingname_s_i 1114
-encodingname_s_ic 1115
-find_encoding_i_s 1116
-find_encoding_i_sc 1117
-trans_encoding_s_i 1118
-trans_encoding_s_ic 1119
-trans_encoding_s_s_i 1120
-trans_encoding_s_sc_i 1121
-trans_encoding_s_s_ic 1122
-trans_encoding_s_sc_ic 1123
-is_cclass_i_i_s_i 1124
-is_cclass_i_ic_s_i 1125
-is_cclass_i_i_sc_i 1126
-is_cclass_i_ic_sc_i 1127
-is_cclass_i_i_s_ic 1128
-is_cclass_i_ic_s_ic 1129
-is_cclass_i_i_sc_ic 1130
-is_cclass_i_ic_sc_ic 1131
-find_cclass_i_i_s_i_i 1132
-find_cclass_i_ic_s_i_i 1133
-find_cclass_i_i_sc_i_i 1134
-find_cclass_i_ic_sc_i_i 1135
-find_cclass_i_i_s_ic_i 1136
-find_cclass_i_ic_s_ic_i 1137
-find_cclass_i_i_sc_ic_i 1138
-find_cclass_i_ic_sc_ic_i 1139
-find_cclass_i_i_s_i_ic 1140
-find_cclass_i_ic_s_i_ic 1141
-find_cclass_i_i_sc_i_ic 1142
-find_cclass_i_ic_sc_i_ic 1143
-find_cclass_i_i_s_ic_ic 1144
-find_cclass_i_ic_s_ic_ic 1145
-find_cclass_i_i_sc_ic_ic 1146
-find_cclass_i_ic_sc_ic_ic 1147
-find_not_cclass_i_i_s_i_i 1148
-find_not_cclass_i_ic_s_i_i 1149
-find_not_cclass_i_i_sc_i_i 1150
-find_not_cclass_i_ic_sc_i_i 1151
-find_not_cclass_i_i_s_ic_i 1152
-find_not_cclass_i_ic_s_ic_i 1153
-find_not_cclass_i_i_sc_ic_i 1154
-find_not_cclass_i_ic_sc_ic_i 1155
-find_not_cclass_i_i_s_i_ic 1156
-find_not_cclass_i_ic_s_i_ic 1157
-find_not_cclass_i_i_sc_i_ic 1158
-find_not_cclass_i_ic_sc_i_ic 1159
-find_not_cclass_i_i_s_ic_ic 1160
-find_not_cclass_i_ic_s_ic_ic 1161
-find_not_cclass_i_i_sc_ic_ic 1162
-find_not_cclass_i_ic_sc_ic_ic 1163
-escape_s_s 1164
-compose_s_s 1165
-compose_s_sc 1166
-spawnw_i_s 1167
-spawnw_i_sc 1168
-spawnw_i_p 1169
-err_i 1170
-err_s 1171
-err_s_i 1172
-err_s_ic 1173
-time_i 1174
-time_n 1175
-gmtime_s_i 1176
-gmtime_s_ic 1177
-localtime_s_i 1178
-localtime_s_ic 1179
-decodetime_p_i 1180
-decodetime_p_ic 1181
-decodelocaltime_p_i 1182
-decodelocaltime_p_ic 1183
-sysinfo_s_i 1184
-sysinfo_s_ic 1185
-sysinfo_i_i 1186
-sysinfo_i_ic 1187
-sleep_i 1188
-sleep_ic 1189
-sleep_n 1190
-sleep_nc 1191
-sizeof_i_i 1192
-sizeof_i_ic 1193
-store_lex_s_p 1194
-store_lex_sc_p 1195
-store_dynamic_lex_s_p 1196
-store_dynamic_lex_sc_p 1197
-find_lex_p_s 1198
-find_lex_p_sc 1199
-find_dynamic_lex_p_s 1200
-find_dynamic_lex_p_sc 1201
-find_caller_lex_p_s 1202
-find_caller_lex_p_sc 1203
-get_namespace_p 1204
-get_namespace_p_p 1205
-get_namespace_p_pc 1206
-get_hll_namespace_p 1207
-get_hll_namespace_p_p 1208
-get_hll_namespace_p_pc 1209
-get_root_namespace_p 1210
-get_root_namespace_p_p 1211
-get_root_namespace_p_pc 1212
-get_global_p_s 1213
-get_global_p_sc 1214
-get_global_p_p_s 1215
-get_global_p_pc_s 1216
-get_global_p_p_sc 1217
-get_global_p_pc_sc 1218
-get_hll_global_p_s 1219
-get_hll_global_p_sc 1220
-get_hll_global_p_p_s 1221
-get_hll_global_p_pc_s 1222
-get_hll_global_p_p_sc 1223
-get_hll_global_p_pc_sc 1224
-get_root_global_p_s 1225
-get_root_global_p_sc 1226
-get_root_global_p_p_s 1227
-get_root_global_p_pc_s 1228
-get_root_global_p_p_sc 1229
-get_root_global_p_pc_sc 1230
-set_global_s_p 1231
-set_global_sc_p 1232
-set_global_p_s_p 1233
-set_global_pc_s_p 1234
-set_global_p_sc_p 1235
-set_global_pc_sc_p 1236
-set_hll_global_s_p 1237
-set_hll_global_sc_p 1238
-set_hll_global_p_s_p 1239
-set_hll_global_pc_s_p 1240
-set_hll_global_p_sc_p 1241
-set_hll_global_pc_sc_p 1242
-set_root_global_s_p 1243
-set_root_global_sc_p 1244
-set_root_global_p_s_p 1245
-set_root_global_pc_s_p 1246
-set_root_global_p_sc_p 1247
-set_root_global_pc_sc_p 1248
-find_name_p_s 1249
-find_name_p_sc 1250
-find_sub_not_null_p_s 1251
-find_sub_not_null_p_sc 1252
+load_bytecode_s 6
+load_bytecode_sc 7
+load_language_s 8
+load_language_sc 9
+branch_i 10
+branch_ic 11
+local_branch_p_i 12
+local_branch_p_ic 13
+local_return_p 14
+jump_i 15
+jump_ic 16
+enternative 17
+if_i_ic 18
+if_n_ic 19
+if_s_ic 20
+if_p_ic 21
+unless_i_ic 22
+unless_n_ic 23
+unless_s_ic 24
+unless_p_ic 25
+invokecc_p 26
+invoke_p_p 27
+yield 28
+tailcall_p 29
+returncc 30
+capture_lex_p 31
+newclosure_p_p 32
+set_args_pc 33
+get_results_pc 34
+get_params_pc 35
+set_returns_pc 36
+result_info_p 37
+set_addr_i_ic 38
+set_addr_p_ic 39
+set_addr_p_i 40
+get_addr_i_p 41
+schedule_p 42
+addhandler_p 43
+push_eh_ic 44
+push_eh_p 45
+pop_eh 46
+throw_p 47
+throw_p_p 48
+rethrow_p 49
+count_eh_i 50
+die_s 51
+die_sc 52
+die_p 53
+die_pc 54
+die_i_i 55
+die_ic_i 56
+die_i_ic 57
+die_ic_ic 58
+exit_i 59
+exit_ic 60
+pushmark_i 61
+pushmark_ic 62
+popmark_i 63
+popmark_ic 64
+pushaction_p 65
+debug_i 66
+debug_ic 67
+bounds_i 68
+bounds_ic 69
+profile_i 70
+profile_ic 71
+trace_i 72
+trace_ic 73
+gc_debug_i 74
+gc_debug_ic 75
+interpinfo_i_i 76
+interpinfo_i_ic 77
+interpinfo_p_i 78
+interpinfo_p_ic 79
+interpinfo_s_i 80
+interpinfo_s_ic 81
+warningson_i 82
+warningson_ic 83
+warningsoff_i 84
+warningsoff_ic 85
+errorson_i 86
+errorson_ic 87
+errorsoff_i 88
+errorsoff_ic 89
+runinterp_p_i 90
+runinterp_p_ic 91
+getinterp_p 92
+sweep_ic 93
+collect 94
+sweepoff 95
+sweepon 96
+collectoff 97
+collecton 98
+needs_destroy_p 99
+loadlib_p_s 100
+loadlib_p_sc 101
+dlfunc_p_p_s_s 102
+dlfunc_p_p_sc_s 103
+dlfunc_p_p_s_sc 104
+dlfunc_p_p_sc_sc 105
+dlvar_p_p_s 106
+dlvar_p_p_sc 107
+compreg_s_p 108
+compreg_sc_p 109
+compreg_p_s 110
+compreg_p_sc 111
+new_callback_p_p_p_s 112
+new_callback_p_p_p_sc 113
+annotations_p 114
+annotations_p_s 115
+annotations_p_sc 116
+band_i_i 117
+band_i_ic 118
+band_p_i 119
+band_p_ic 120
+band_p_p 121
+band_i_i_i 122
+band_i_ic_i 123
+band_i_i_ic 124
+band_p_p_i 125
+band_p_p_ic 126
+band_p_p_p 127
+bands_s_s 128
+bands_s_sc 129
+bands_p_s 130
+bands_p_sc 131
+bands_p_p 132
+bands_s_s_s 133
+bands_s_sc_s 134
+bands_s_s_sc 135
+bands_p_p_s 136
+bands_p_p_sc 137
+bands_p_p_p 138
+bnot_i 139
+bnot_i_i 140
+bnot_p 141
+bnot_p_p 142
+bnots_s 143
+bnots_s_s 144
+bnots_s_sc 145
+bnots_p 146
+bnots_p_p 147
+bor_i_i 148
+bor_i_ic 149
+bor_p_i 150
+bor_p_ic 151
+bor_p_p 152
+bor_i_i_i 153
+bor_i_ic_i 154
+bor_i_i_ic 155
+bor_p_p_i 156
+bor_p_p_ic 157
+bor_p_p_p 158
+bors_s_s 159
+bors_s_sc 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_s_s 217
+bxors_s_sc 218
+bxors_p_s 219
+bxors_p_sc 220
+bxors_p_p 221
+bxors_s_s_s 222
+bxors_s_sc_s 223
+bxors_s_s_sc 224
+bxors_p_p_s 225
+bxors_p_p_sc 226
+bxors_p_p_p 227
+eq_i_i_ic 228
+eq_ic_i_ic 229
+eq_i_ic_ic 230
+eq_n_n_ic 231
+eq_nc_n_ic 232
+eq_n_nc_ic 233
+eq_s_s_ic 234
+eq_sc_s_ic 235
+eq_s_sc_ic 236
+eq_p_p_ic 237
+eq_p_i_ic 238
+eq_p_ic_ic 239
+eq_p_n_ic 240
+eq_p_nc_ic 241
+eq_p_s_ic 242
+eq_p_sc_ic 243
+eq_str_p_p_ic 244
+eq_num_p_p_ic 245
+eq_addr_s_s_ic 246
+eq_addr_sc_s_ic 247
+eq_addr_s_sc_ic 248
+eq_addr_sc_sc_ic 249
+eq_addr_p_p_ic 250
+ne_i_i_ic 251
+ne_ic_i_ic 252
+ne_i_ic_ic 253
+ne_n_n_ic 254
+ne_nc_n_ic 255
+ne_n_nc_ic 256
+ne_s_s_ic 257
+ne_sc_s_ic 258
+ne_s_sc_ic 259
+ne_p_p_ic 260
+ne_p_i_ic 261
+ne_p_ic_ic 262
+ne_p_n_ic 263
+ne_p_nc_ic 264
+ne_p_s_ic 265
+ne_p_sc_ic 266
+ne_str_p_p_ic 267
+ne_num_p_p_ic 268
+ne_addr_s_s_ic 269
+ne_addr_sc_s_ic 270
+ne_addr_s_sc_ic 271
+ne_addr_sc_sc_ic 272
+ne_addr_p_p_ic 273
+lt_i_i_ic 274
+lt_ic_i_ic 275
+lt_i_ic_ic 276
+lt_n_n_ic 277
+lt_nc_n_ic 278
+lt_n_nc_ic 279
+lt_s_s_ic 280
+lt_sc_s_ic 281
+lt_s_sc_ic 282
+lt_p_p_ic 283
+lt_p_i_ic 284
+lt_p_ic_ic 285
+lt_p_n_ic 286
+lt_p_nc_ic 287
+lt_p_s_ic 288
+lt_p_sc_ic 289
+lt_str_p_p_ic 290
+lt_num_p_p_ic 291
+le_i_i_ic 292
+le_ic_i_ic 293
+le_i_ic_ic 294
+le_n_n_ic 295
+le_nc_n_ic 296
+le_n_nc_ic 297
+le_s_s_ic 298
+le_sc_s_ic 299
+le_s_sc_ic 300
+le_p_p_ic 301
+le_p_i_ic 302
+le_p_ic_ic 303
+le_p_n_ic 304
+le_p_nc_ic 305
+le_p_s_ic 306
+le_p_sc_ic 307
+le_str_p_p_ic 308
+le_num_p_p_ic 309
+gt_p_p_ic 310
+gt_p_i_ic 311
+gt_p_ic_ic 312
+gt_p_n_ic 313
+gt_p_nc_ic 314
+gt_p_s_ic 315
+gt_p_sc_ic 316
+gt_str_p_p_ic 317
+gt_num_p_p_ic 318
+ge_p_p_ic 319
+ge_p_i_ic 320
+ge_p_ic_ic 321
+ge_p_n_ic 322
+ge_p_nc_ic 323
+ge_p_s_ic 324
+ge_p_sc_ic 325
+ge_str_p_p_ic 326
+ge_num_p_p_ic 327
+if_null_p_ic 328
+if_null_s_ic 329
+unless_null_p_ic 330
+unless_null_s_ic 331
+cmp_i_i_i 332
+cmp_i_ic_i 333
+cmp_i_i_ic 334
+cmp_i_n_n 335
+cmp_i_nc_n 336
+cmp_i_n_nc 337
+cmp_i_s_s 338
+cmp_i_sc_s 339
+cmp_i_s_sc 340
+cmp_i_p_p 341
+cmp_i_p_i 342
+cmp_i_p_ic 343
+cmp_i_p_n 344
+cmp_i_p_nc 345
+cmp_i_p_s 346
+cmp_i_p_sc 347
+cmp_str_i_p_p 348
+cmp_num_i_p_p 349
+cmp_pmc_p_p_p 350
+issame_i_p_p 351
+issame_i_s_s 352
+issame_i_sc_s 353
+issame_i_s_sc 354
+issame_i_sc_sc 355
+isntsame_i_p_p 356
+isntsame_i_s_s 357
+isntsame_i_sc_s 358
+isntsame_i_s_sc 359
+isntsame_i_sc_sc 360
+istrue_i_p 361
+isfalse_i_p 362
+isnull_i_p 363
+isnull_i_pc 364
+isnull_i_s 365
+isnull_i_sc 366
+isgt_i_p_p 367
+isge_i_p_p 368
+isle_i_i_i 369
+isle_i_ic_i 370
+isle_i_i_ic 371
+isle_i_n_n 372
+isle_i_nc_n 373
+isle_i_n_nc 374
+isle_i_s_s 375
+isle_i_sc_s 376
+isle_i_s_sc 377
+isle_i_p_p 378
+islt_i_i_i 379
+islt_i_ic_i 380
+islt_i_i_ic 381
+islt_i_n_n 382
+islt_i_nc_n 383
+islt_i_n_nc 384
+islt_i_s_s 385
+islt_i_sc_s 386
+islt_i_s_sc 387
+islt_i_p_p 388
+iseq_i_i_i 389
+iseq_i_ic_i 390
+iseq_i_i_ic 391
+iseq_i_n_n 392
+iseq_i_nc_n 393
+iseq_i_n_nc 394
+iseq_i_s_s 395
+iseq_i_sc_s 396
+iseq_i_s_sc 397
+iseq_i_p_p 398
+isne_i_i_i 399
+isne_i_ic_i 400
+isne_i_i_ic 401
+isne_i_n_n 402
+isne_i_nc_n 403
+isne_i_n_nc 404
+isne_i_s_s 405
+isne_i_sc_s 406
+isne_i_s_sc 407
+isne_i_p_p 408
+and_i_i_i 409
+and_i_ic_i 410
+and_i_i_ic 411
+and_p_p_p 412
+not_i 413
+not_i_i 414
+not_p 415
+not_p_p 416
+or_i_i_i 417
+or_i_ic_i 418
+or_i_i_ic 419
+or_p_p_p 420
+xor_i_i_i 421
+xor_i_ic_i 422
+xor_i_i_ic 423
+xor_p_p_p 424
+debug_init 425
+debug_load_sc 426
+debug_break 427
+debug_print 428
+backtrace 429
+getline_i 430
+getfile_s 431
+set_label_p_ic 432
+get_label_i_p 433
+close_p 434
+fdopen_p_i_s 435
+fdopen_p_ic_s 436
+fdopen_p_i_sc 437
+fdopen_p_ic_sc 438
+getstdin_p 439
+getstdout_p 440
+getstderr_p 441
+setstdin_p 442
+setstdout_p 443
+setstderr_p 444
+open_p_s_s 445
+open_p_sc_s 446
+open_p_s_sc 447
+open_p_sc_sc 448
+open_p_s 449
+open_p_sc 450
+print_i 451
+print_ic 452
+print_n 453
+print_nc 454
+print_s 455
+print_sc 456
+print_p 457
+say_i 458
+say_ic 459
+say_n 460
+say_nc 461
+say_s 462
+say_sc 463
+say_p 464
+printerr_i 465
+printerr_ic 466
+printerr_n 467
+printerr_nc 468
+printerr_s 469
+printerr_sc 470
+printerr_p 471
+print_p_i 472
+print_p_ic 473
+print_p_n 474
+print_p_nc 475
+print_p_s 476
+print_p_sc 477
+print_p_p 478
+read_s_i 479
+read_s_ic 480
+read_s_p_i 481
+read_s_p_ic 482
+readline_s_p 483
+peek_s 484
+peek_s_p 485
+stat_i_s_i 486
+stat_i_sc_i 487
+stat_i_s_ic 488
+stat_i_sc_ic 489
+stat_i_i_i 490
+stat_i_ic_i 491
+stat_i_i_ic 492
+stat_i_ic_ic 493
+seek_p_i_i 494
+seek_p_ic_i 495
+seek_p_i_ic 496
+seek_p_ic_ic 497
+seek_p_i_i_i 498
+seek_p_ic_i_i 499
+seek_p_i_ic_i 500
+seek_p_ic_ic_i 501
+seek_p_i_i_ic 502
+seek_p_ic_i_ic 503
+seek_p_i_ic_ic 504
+seek_p_ic_ic_ic 505
+tell_i_p 506
+tell_i_i_p 507
+abs_i 508
+abs_n 509
+abs_i_i 510
+abs_n_n 511
+abs_p 512
+abs_p_p 513
+add_i_i 514
+add_i_ic 515
+add_n_n 516
+add_n_nc 517
+add_p_p 518
+add_p_i 519
+add_p_ic 520
+add_p_n 521
+add_p_nc 522
+add_i_i_i 523
+add_i_ic_i 524
+add_i_i_ic 525
+add_n_n_n 526
+add_n_nc_n 527
+add_n_n_nc 528
+add_p_p_p 529
+add_p_p_i 530
+add_p_p_ic 531
+add_p_p_n 532
+add_p_p_nc 533
+cmod_i_i_i 534
+cmod_i_ic_i 535
+cmod_i_i_ic 536
+cmod_p_p_i 537
+cmod_p_p_ic 538
+cmod_p_p_p 539
+cmod_n_n_n 540
+cmod_n_nc_n 541
+cmod_n_n_nc 542
+cmod_p_p_n 543
+cmod_p_p_nc 544
+dec_i 545
+dec_n 546
+dec_p 547
+div_i_i 548
+div_i_ic 549
+div_n_n 550
+div_n_nc 551
+div_p_p 552
+div_p_i 553
+div_p_ic 554
+div_p_n 555
+div_p_nc 556
+div_i_i_i 557
+div_i_ic_i 558
+div_i_i_ic 559
+div_i_ic_ic 560
+div_n_n_n 561
+div_n_nc_n 562
+div_n_n_nc 563
+div_n_nc_nc 564
+div_p_p_p 565
+div_p_p_i 566
+div_p_p_ic 567
+div_p_p_n 568
+div_p_p_nc 569
+fdiv_i_i 570
+fdiv_i_ic 571
+fdiv_n_n 572
+fdiv_n_nc 573
+fdiv_p_p 574
+fdiv_p_i 575
+fdiv_p_ic 576
+fdiv_p_n 577
+fdiv_p_nc 578
+fdiv_i_i_i 579
+fdiv_i_ic_i 580
+fdiv_i_i_ic 581
+fdiv_n_n_n 582
+fdiv_n_nc_n 583
+fdiv_n_n_nc 584
+fdiv_p_p_p 585
+fdiv_p_p_i 586
+fdiv_p_p_ic 587
+fdiv_p_p_n 588
+fdiv_p_p_nc 589
+ceil_n 590
+ceil_i_n 591
+ceil_n_n 592
+floor_n 593
+floor_i_n 594
+floor_n_n 595
+inc_i 596
+inc_n 597
+inc_p 598
+mod_i_i 599
+mod_i_ic 600
+mod_n_n 601
+mod_n_nc 602
+mod_p_p 603
+mod_p_i 604
+mod_p_ic 605
+mod_p_n 606
+mod_p_nc 607
+mod_i_i_i 608
+mod_i_ic_i 609
+mod_i_i_ic 610
+mod_n_n_n 611
+mod_n_nc_n 612
+mod_n_n_nc 613
+mod_p_p_p 614
+mod_p_p_i 615
+mod_p_p_ic 616
+mod_p_p_n 617
+mod_p_p_nc 618
+mul_i_i 619
+mul_i_ic 620
+mul_n_n 621
+mul_n_nc 622
+mul_p_p 623
+mul_p_i 624
+mul_p_ic 625
+mul_p_n 626
+mul_p_nc 627
+mul_i_i_i 628
+mul_i_ic_i 629
+mul_i_i_ic 630
+mul_n_n_n 631
+mul_n_nc_n 632
+mul_n_n_nc 633
+mul_p_p_p 634
+mul_p_p_i 635
+mul_p_p_ic 636
+mul_p_p_n 637
+mul_p_p_nc 638
+neg_i 639
+neg_n 640
+neg_p 641
+neg_i_i 642
+neg_n_n 643
+neg_p_p 644
+pow_n_n_n 645
+pow_n_nc_n 646
+pow_n_n_nc 647
+pow_p_p_p 648
+pow_p_p_i 649
+pow_p_p_ic 650
+pow_p_p_n 651
+pow_p_p_nc 652
+pow_n_n_i 653
+pow_n_nc_i 654
+pow_n_n_ic 655
+pow_n_nc_ic 656
+sub_i_i 657
+sub_i_ic 658
+sub_n_n 659
+sub_n_nc 660
+sub_p_p 661
+sub_p_i 662
+sub_p_ic 663
+sub_p_n 664
+sub_p_nc 665
+sub_i_i_i 666
+sub_i_ic_i 667
+sub_i_i_ic 668
+sub_n_n_n 669
+sub_n_nc_n 670
+sub_n_n_nc 671
+sub_p_p_p 672
+sub_p_p_i 673
+sub_p_p_ic 674
+sub_p_p_n 675
+sub_p_p_nc 676
+sqrt_n_n 677
+acos_n_n 678
+asec_n_n 679
+asin_n_n 680
+atan_n_n 681
+atan_n_n_n 682
+atan_n_nc_n 683
+atan_n_n_nc 684
+cos_n_n 685
+cosh_n_n 686
+exp_n_n 687
+ln_n_n 688
+log10_n_n 689
+log2_n_n 690
+sec_n_n 691
+sech_n_n 692
+sin_n_n 693
+sinh_n_n 694
+tan_n_n 695
+tanh_n_n 696
+gcd_i_i_i 697
+gcd_i_ic_i 698
+gcd_i_i_ic 699
+lcm_i_i_i 700
+lcm_i_ic_i 701
+lcm_i_i_ic 702
+fact_i_i 703
+fact_n_i 704
+callmethodcc_p_s 705
+callmethodcc_p_sc 706
+callmethodcc_p_p 707
+callmethod_p_s_p 708
+callmethod_p_sc_p 709
+callmethod_p_p_p 710
+tailcallmethod_p_s 711
+tailcallmethod_p_sc 712
+tailcallmethod_p_p 713
+addmethod_p_s_p 714
+addmethod_p_sc_p 715
+can_i_p_s 716
+can_i_p_sc 717
+does_i_p_s 718
+does_i_p_sc 719
+does_i_p_p 720
+does_i_p_pc 721
+isa_i_p_s 722
+isa_i_p_sc 723
+isa_i_p_p 724
+isa_i_p_pc 725
+newclass_p_s 726
+newclass_p_sc 727
+newclass_p_p 728
+newclass_p_pc 729
+subclass_p_p 730
+subclass_p_pc 731
+subclass_p_p_s 732
+subclass_p_pc_s 733
+subclass_p_p_sc 734
+subclass_p_pc_sc 735
+subclass_p_p_p 736
+subclass_p_pc_p 737
+subclass_p_p_pc 738
+subclass_p_pc_pc 739
+subclass_p_s 740
+subclass_p_sc 741
+subclass_p_s_s 742
+subclass_p_sc_s 743
+subclass_p_s_sc 744
+subclass_p_sc_sc 745
+subclass_p_s_p 746
+subclass_p_sc_p 747
+subclass_p_s_pc 748
+subclass_p_sc_pc 749
+get_class_p_s 750
+get_class_p_sc 751
+get_class_p_p 752
+get_class_p_pc 753
+class_p_p 754
+addparent_p_p 755
+removeparent_p_p 756
+addrole_p_p 757
+addattribute_p_s 758
+addattribute_p_sc 759
+removeattribute_p_s 760
+removeattribute_p_sc 761
+getattribute_p_p_s 762
+getattribute_p_p_sc 763
+getattribute_p_p_p_s 764
+getattribute_p_p_pc_s 765
+getattribute_p_p_p_sc 766
+getattribute_p_p_pc_sc 767
+setattribute_p_s_p 768
+setattribute_p_sc_p 769
+setattribute_p_p_s_p 770
+setattribute_p_pc_s_p 771
+setattribute_p_p_sc_p 772
+setattribute_p_pc_sc_p 773
+inspect_p_p 774
+inspect_p_pc 775
+inspect_p_p_s 776
+inspect_p_pc_s 777
+inspect_p_p_sc 778
+inspect_p_pc_sc 779
+new_p_s 780
+new_p_sc 781
+new_p_s_p 782
+new_p_sc_p 783
+new_p_s_pc 784
+new_p_sc_pc 785
+new_p_p 786
+new_p_pc 787
+new_p_p_p 788
+new_p_pc_p 789
+new_p_p_pc 790
+new_p_pc_pc 791
+root_new_p_p 792
+root_new_p_pc 793
+root_new_p_p_p 794
+root_new_p_pc_p 795
+root_new_p_p_pc 796
+root_new_p_pc_pc 797
+typeof_s_p 798
+typeof_p_p 799
+get_repr_s_p 800
+find_method_p_p_s 801
+find_method_p_p_sc 802
+defined_i_p 803
+defined_i_p_ki 804
+defined_i_p_kic 805
+defined_i_p_k 806
+defined_i_p_kc 807
+exists_i_p_ki 808
+exists_i_p_kic 809
+exists_i_p_k 810
+exists_i_p_kc 811
+delete_p_k 812
+delete_p_kc 813
+delete_p_ki 814
+delete_p_kic 815
+elements_i_p 816
+push_p_i 817
+push_p_ic 818
+push_p_n 819
+push_p_nc 820
+push_p_s 821
+push_p_sc 822
+push_p_p 823
+pop_i_p 824
+pop_n_p 825
+pop_s_p 826
+pop_p_p 827
+unshift_p_i 828
+unshift_p_ic 829
+unshift_p_n 830
+unshift_p_nc 831
+unshift_p_s 832
+unshift_p_sc 833
+unshift_p_p 834
+shift_i_p 835
+shift_n_p 836
+shift_s_p 837
+shift_p_p 838
+splice_p_p_i_i 839
+splice_p_p_ic_i 840
+splice_p_p_i_ic 841
+splice_p_p_ic_ic 842
+setprop_p_s_p 843
+setprop_p_sc_p 844
+getprop_p_s_p 845
+getprop_p_sc_p 846
+delprop_p_s 847
+delprop_p_sc 848
+prophash_p_p 849
+freeze_s_p 850
+thaw_p_s 851
+thaw_p_sc 852
+add_multi_s_s_p 853
+add_multi_sc_s_p 854
+add_multi_s_sc_p 855
+add_multi_sc_sc_p 856
+find_multi_p_s_s 857
+find_multi_p_sc_s 858
+find_multi_p_s_sc 859
+find_multi_p_sc_sc 860
+register_p 861
+unregister_p 862
+box_p_i 863
+box_p_ic 864
+box_p_n 865
+box_p_nc 866
+box_p_s 867
+box_p_sc 868
+iter_p_p 869
+morph_p_p 870
+morph_p_pc 871
+clone_s_s 872
+clone_s_sc 873
+exchange_i_i 874
+exchange_p_p 875
+exchange_n_n 876
+exchange_s_s 877
+set_i_i 878
+set_i_ic 879
+set_i_n 880
+set_i_nc 881
+set_i_s 882
+set_i_sc 883
+set_n_n 884
+set_n_nc 885
+set_n_i 886
+set_n_ic 887
+set_n_s 888
+set_n_sc 889
+set_n_p 890
+set_s_p 891
+set_s_s 892
+set_s_sc 893
+set_s_i 894
+set_s_ic 895
+set_s_n 896
+set_s_nc 897
+set_p_pc 898
+set_p_p 899
+set_p_i 900
+set_p_ic 901
+set_p_n 902
+set_p_nc 903
+set_p_s 904
+set_p_sc 905
+set_i_p 906
+assign_p_p 907
+assign_p_i 908
+assign_p_ic 909
+assign_p_n 910
+assign_p_nc 911
+assign_p_s 912
+assign_p_sc 913
+assign_s_s 914
+assign_s_sc 915
+setref_p_p 916
+deref_p_p 917
+setp_ind_i_p 918
+setp_ind_ic_p 919
+setn_ind_i_n 920
+setn_ind_ic_n 921
+setn_ind_i_nc 922
+setn_ind_ic_nc 923
+sets_ind_i_s 924
+sets_ind_ic_s 925
+sets_ind_i_sc 926
+sets_ind_ic_sc 927
+seti_ind_i_i 928
+seti_ind_ic_i 929
+seti_ind_i_ic 930
+seti_ind_ic_ic 931
+set_p_ki_i 932
+set_p_kic_i 933
+set_p_ki_ic 934
+set_p_kic_ic 935
+set_p_ki_n 936
+set_p_kic_n 937
+set_p_ki_nc 938
+set_p_kic_nc 939
+set_p_ki_s 940
+set_p_kic_s 941
+set_p_ki_sc 942
+set_p_kic_sc 943
+set_p_ki_p 944
+set_p_kic_p 945
+set_i_p_ki 946
+set_i_p_kic 947
+set_n_p_ki 948
+set_n_p_kic 949
+set_s_p_ki 950
+set_s_p_kic 951
+set_p_p_ki 952
+set_p_p_kic 953
+set_p_k_i 954
+set_p_kc_i 955
+set_p_k_ic 956
+set_p_kc_ic 957
+set_p_k_n 958
+set_p_kc_n 959
+set_p_k_nc 960
+set_p_kc_nc 961
+set_p_k_s 962
+set_p_kc_s 963
+set_p_k_sc 964
+set_p_kc_sc 965
+set_p_k_p 966
+set_p_kc_p 967
+set_i_p_k 968
+set_i_p_kc 969
+set_n_p_k 970
+set_n_p_kc 971
+set_s_p_k 972
+set_s_p_kc 973
+set_p_p_k 974
+set_p_p_kc 975
+clone_p_p 976
+clone_p_p_p 977
+clone_p_p_pc 978
+copy_p_p 979
+null_s 980
+null_i 981
+null_p 982
+null_n 983
+cleari 984
+clearn 985
+clears 986
+clearp 987
+ord_i_s 988
+ord_i_sc 989
+ord_i_s_i 990
+ord_i_sc_i 991
+ord_i_s_ic 992
+ord_i_sc_ic 993
+chr_s_i 994
+chr_s_ic 995
+chopn_s_i 996
+chopn_s_ic 997
+chopn_s_s_i 998
+chopn_s_sc_i 999
+chopn_s_s_ic 1000
+chopn_s_sc_ic 1001
+concat_s_s 1002
+concat_s_sc 1003
+concat_p_p 1004
+concat_p_s 1005
+concat_p_sc 1006
+concat_s_s_s 1007
+concat_s_sc_s 1008
+concat_s_s_sc 1009
+concat_p_p_s 1010
+concat_p_p_sc 1011
+concat_p_p_p 1012
+repeat_s_s_i 1013
+repeat_s_sc_i 1014
+repeat_s_s_ic 1015
+repeat_s_sc_ic 1016
+repeat_p_p_i 1017
+repeat_p_p_ic 1018
+repeat_p_p_p 1019
+repeat_p_i 1020
+repeat_p_ic 1021
+repeat_p_p 1022
+length_i_s 1023
+length_i_sc 1024
+bytelength_i_s 1025
+bytelength_i_sc 1026
+pin_s 1027
+unpin_s 1028
+substr_s_s_i 1029
+substr_s_sc_i 1030
+substr_s_s_ic 1031
+substr_s_sc_ic 1032
+substr_s_s_i_i 1033
+substr_s_sc_i_i 1034
+substr_s_s_ic_i 1035
+substr_s_sc_ic_i 1036
+substr_s_s_i_ic 1037
+substr_s_sc_i_ic 1038
+substr_s_s_ic_ic 1039
+substr_s_sc_ic_ic 1040
+substr_s_s_i_i_s 1041
+substr_s_s_ic_i_s 1042
+substr_s_s_i_ic_s 1043
+substr_s_s_ic_ic_s 1044
+substr_s_s_i_i_sc 1045
+substr_s_s_ic_i_sc 1046
+substr_s_s_i_ic_sc 1047
+substr_s_s_ic_ic_sc 1048
+substr_s_i_i_s 1049
+substr_s_ic_i_s 1050
+substr_s_i_ic_s 1051
+substr_s_ic_ic_s 1052
+substr_s_i_i_sc 1053
+substr_s_ic_i_sc 1054
+substr_s_i_ic_sc 1055
+substr_s_ic_ic_sc 1056
+substr_s_p_i_i 1057
+substr_s_p_ic_i 1058
+substr_s_p_i_ic 1059
+substr_s_p_ic_ic 1060
+index_i_s_s 1061
+index_i_sc_s 1062
+index_i_s_sc 1063
+index_i_sc_sc 1064
+index_i_s_s_i 1065
+index_i_sc_s_i 1066
+index_i_s_sc_i 1067
+index_i_sc_sc_i 1068
+index_i_s_s_ic 1069
+index_i_sc_s_ic 1070
+index_i_s_sc_ic 1071
+index_i_sc_sc_ic 1072
+sprintf_s_s_p 1073
+sprintf_s_sc_p 1074
+sprintf_p_p_p 1075
+new_s 1076
+new_s_i 1077
+new_s_ic 1078
+stringinfo_i_s_i 1079
+stringinfo_i_sc_i 1080
+stringinfo_i_s_ic 1081
+stringinfo_i_sc_ic 1082
+upcase_s_s 1083
+upcase_s_sc 1084
+upcase_s 1085
+downcase_s_s 1086
+downcase_s_sc 1087
+downcase_s 1088
+titlecase_s_s 1089
+titlecase_s_sc 1090
+titlecase_s 1091
+join_s_s_p 1092
+join_s_sc_p 1093
+split_p_s_s 1094
+split_p_sc_s 1095
+split_p_s_sc 1096
+split_p_sc_sc 1097
+charset_i_s 1098
+charset_i_sc 1099
+charsetname_s_i 1100
+charsetname_s_ic 1101
+find_charset_i_s 1102
+find_charset_i_sc 1103
+trans_charset_s_i 1104
+trans_charset_s_ic 1105
+trans_charset_s_s_i 1106
+trans_charset_s_sc_i 1107
+trans_charset_s_s_ic 1108
+trans_charset_s_sc_ic 1109
+encoding_i_s 1110
+encoding_i_sc 1111
+encodingname_s_i 1112
+encodingname_s_ic 1113
+find_encoding_i_s 1114
+find_encoding_i_sc 1115
+trans_encoding_s_i 1116
+trans_encoding_s_ic 1117
+trans_encoding_s_s_i 1118
+trans_encoding_s_sc_i 1119
+trans_encoding_s_s_ic 1120
+trans_encoding_s_sc_ic 1121
+is_cclass_i_i_s_i 1122
+is_cclass_i_ic_s_i 1123
+is_cclass_i_i_sc_i 1124
+is_cclass_i_ic_sc_i 1125
+is_cclass_i_i_s_ic 1126
+is_cclass_i_ic_s_ic 1127
+is_cclass_i_i_sc_ic 1128
+is_cclass_i_ic_sc_ic 1129
+find_cclass_i_i_s_i_i 1130
+find_cclass_i_ic_s_i_i 1131
+find_cclass_i_i_sc_i_i 1132
+find_cclass_i_ic_sc_i_i 1133
+find_cclass_i_i_s_ic_i 1134
+find_cclass_i_ic_s_ic_i 1135
+find_cclass_i_i_sc_ic_i 1136
+find_cclass_i_ic_sc_ic_i 1137
+find_cclass_i_i_s_i_ic 1138
+find_cclass_i_ic_s_i_ic 1139
+find_cclass_i_i_sc_i_ic 1140
+find_cclass_i_ic_sc_i_ic 1141
+find_cclass_i_i_s_ic_ic 1142
+find_cclass_i_ic_s_ic_ic 1143
+find_cclass_i_i_sc_ic_ic 1144
+find_cclass_i_ic_sc_ic_ic 1145
+find_not_cclass_i_i_s_i_i 1146
+find_not_cclass_i_ic_s_i_i 1147
+find_not_cclass_i_i_sc_i_i 1148
+find_not_cclass_i_ic_sc_i_i 1149
+find_not_cclass_i_i_s_ic_i 1150
+find_not_cclass_i_ic_s_ic_i 1151
+find_not_cclass_i_i_sc_ic_i 1152
+find_not_cclass_i_ic_sc_ic_i 1153
+find_not_cclass_i_i_s_i_ic 1154
+find_not_cclass_i_ic_s_i_ic 1155
+find_not_cclass_i_i_sc_i_ic 1156
+find_not_cclass_i_ic_sc_i_ic 1157
+find_not_cclass_i_i_s_ic_ic 1158
+find_not_cclass_i_ic_s_ic_ic 1159
+find_not_cclass_i_i_sc_ic_ic 1160
+find_not_cclass_i_ic_sc_ic_ic 1161
+escape_s_s 1162
+compose_s_s 1163
+compose_s_sc 1164
+spawnw_i_s 1165
+spawnw_i_sc 1166
+spawnw_i_p 1167
+err_i 1168
+err_s 1169
+err_s_i 1170
+err_s_ic 1171
+time_i 1172
+time_n 1173
+gmtime_s_i 1174
+gmtime_s_ic 1175
+localtime_s_i 1176
+localtime_s_ic 1177
+decodetime_p_i 1178
+decodetime_p_ic 1179
+decodelocaltime_p_i 1180
+decodelocaltime_p_ic 1181
+sysinfo_s_i 1182
+sysinfo_s_ic 1183
+sysinfo_i_i 1184
+sysinfo_i_ic 1185
+sleep_i 1186
+sleep_ic 1187
+sleep_n 1188
+sleep_nc 1189
+sizeof_i_i 1190
+sizeof_i_ic 1191
+store_lex_s_p 1192
+store_lex_sc_p 1193
+store_dynamic_lex_s_p 1194
+store_dynamic_lex_sc_p 1195
+find_lex_p_s 1196
+find_lex_p_sc 1197
+find_dynamic_lex_p_s 1198
+find_dynamic_lex_p_sc 1199
+find_caller_lex_p_s 1200
+find_caller_lex_p_sc 1201
+get_namespace_p 1202
+get_namespace_p_p 1203
+get_namespace_p_pc 1204
+get_hll_namespace_p 1205
+get_hll_namespace_p_p 1206
+get_hll_namespace_p_pc 1207
+get_root_namespace_p 1208
+get_root_namespace_p_p 1209
+get_root_namespace_p_pc 1210
+get_global_p_s 1211
+get_global_p_sc 1212
+get_global_p_p_s 1213
+get_global_p_pc_s 1214
+get_global_p_p_sc 1215
+get_global_p_pc_sc 1216
+get_hll_global_p_s 1217
+get_hll_global_p_sc 1218
+get_hll_global_p_p_s 1219
+get_hll_global_p_pc_s 1220
+get_hll_global_p_p_sc 1221
+get_hll_global_p_pc_sc 1222
+get_root_global_p_s 1223
+get_root_global_p_sc 1224
+get_root_global_p_p_s 1225
+get_root_global_p_pc_s 1226
+get_root_global_p_p_sc 1227
+get_root_global_p_pc_sc 1228
+set_global_s_p 1229
+set_global_sc_p 1230
+set_global_p_s_p 1231
+set_global_pc_s_p 1232
+set_global_p_sc_p 1233
+set_global_pc_sc_p 1234
+set_hll_global_s_p 1235
+set_hll_global_sc_p 1236
+set_hll_global_p_s_p 1237
+set_hll_global_pc_s_p 1238
+set_hll_global_p_sc_p 1239
+set_hll_global_pc_sc_p 1240
+set_root_global_s_p 1241
+set_root_global_sc_p 1242
+set_root_global_p_s_p 1243
+set_root_global_pc_s_p 1244
+set_root_global_p_sc_p 1245
+set_root_global_pc_sc_p 1246
+find_name_p_s 1247
+find_name_p_sc 1248
+find_sub_not_null_p_s 1249
+find_sub_not_null_p_sc 1250
Modified: branches/ops_pct/src/ops/pmc.ops
==============================================================================
--- branches/ops_pct/src/ops/pmc.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/pmc.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -58,14 +58,14 @@
if (!PMC_IS_NULL(_class))
$1 = VTABLE_instantiate(interp, _class, PMCNULL);
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
}
@@ -78,14 +78,14 @@
if (!PMC_IS_NULL(_class))
$1 = VTABLE_instantiate(interp, _class, $3);
else {
- const INTVAL type = pmc_type(interp, name);
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);
goto ADDRESS(dest);
}
- $1 = pmc_new_init(interp, type, $3);
+ $1 = Parrot_pmc_new_init(interp, type, $3);
}
}
@@ -96,14 +96,14 @@
if (!PMC_IS_NULL(_class))
$1 = VTABLE_instantiate(interp, _class, PMCNULL);
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
goto ADDRESS(dest);
}
- $1 = pmc_new(interp, type);
+ $1 = Parrot_pmc_new(interp, type);
}
}
@@ -114,14 +114,14 @@
if (!PMC_IS_NULL(_class))
$1 = VTABLE_instantiate(interp, _class, $3);
else {
- const INTVAL type = pmc_type_p(interp, name_key);
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
goto ADDRESS(dest);
}
- $1 = pmc_new_init(interp, type, $3);
+ $1 = Parrot_pmc_new_init(interp, type, $3);
}
}
@@ -627,11 +627,11 @@
=cut
op register(invar PMC) {
- gc_register_pmc(interp, $1);
+ Parrot_pmc_gc_register(interp, $1);
}
op unregister(invar PMC) {
- gc_unregister_pmc(interp, $1);
+ Parrot_pmc_gc_unregister(interp, $1);
}
@@ -648,17 +648,17 @@
=cut
op box(out PMC, in INT) {
- $1 = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
VTABLE_set_integer_native(interp, $1, $2);
}
op box(out PMC, in NUM) {
- $1 = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
VTABLE_set_number_native(interp, $1, $2);
}
op box(out PMC, in STR) {
- $1 = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
VTABLE_set_string_native(interp, $1, $2);
}
Modified: branches/ops_pct/src/ops/set.ops
==============================================================================
--- branches/ops_pct/src/ops/set.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/set.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -510,7 +510,7 @@
memmove($1, clone, sizeof (PMC));
/* don't let the clone's destruction destroy the destination's data */
- PObj_active_destroy_CLEAR(clone);
+ PObj_custom_destroy_CLEAR(clone);
PMC_data(clone) = NULL;
PMC_sync(clone) = NULL;
PMC_metadata(clone) = NULL;
Modified: branches/ops_pct/src/ops/sys.ops
==============================================================================
--- branches/ops_pct/src/ops/sys.ops Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/ops/sys.ops Sun Mar 7 19:33:20 2010 (r44743)
@@ -313,7 +313,7 @@
=cut
-inline op sizeof (out INT, in INT) {
+inline op sizeof (out INT, in INT) :deprecated {
if ($2 < enum_first_type || $2 >= enum_last_type)
$1 = -1;
else
Modified: branches/ops_pct/src/packfile.c
==============================================================================
--- branches/ops_pct/src/packfile.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/packfile.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -47,10 +47,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static PackFile_Segment * byte_code_new(SHIM_INTERP,
+static PackFile_Segment * byte_code_new(PARROT_INTERP,
SHIM(PackFile *pf),
SHIM(STRING *name),
- SHIM(int add));
+ SHIM(int add))
+ __attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
@@ -72,10 +73,11 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
-static PackFile_Segment * const_new(SHIM_INTERP,
+static PackFile_Segment * const_new(PARROT_INTERP,
SHIM(PackFile *pf),
SHIM(STRING *name),
- SHIM(int add));
+ SHIM(int add))
+ __attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
@@ -91,8 +93,9 @@
__attribute__nonnull__(5)
FUNC_MODIFIES(*dir);
-static void default_destroy(ARGMOD(PackFile_Segment *self))
+static void default_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*self);
static void default_dump(PARROT_INTERP, ARGIN(const PackFile_Segment *self))
@@ -113,11 +116,12 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-static const opcode_t * default_unpack(
+static const opcode_t * default_unpack(PARROT_INTERP,
ARGMOD(PackFile_Segment *self),
ARGIN(const opcode_t *cursor))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*self);
static void directory_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self))
@@ -132,10 +136,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static PackFile_Segment * directory_new(SHIM_INTERP,
+static PackFile_Segment * directory_new(PARROT_INTERP,
SHIM(PackFile *pf),
SHIM(STRING *name),
- SHIM(int add));
+ SHIM(int add))
+ __attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
@@ -210,10 +215,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static PackFile_Segment * fixup_new(SHIM_INTERP,
+static PackFile_Segment * fixup_new(PARROT_INTERP,
SHIM(PackFile *pf),
SHIM(STRING *name),
- SHIM(int add));
+ SHIM(int add))
+ __attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
@@ -267,7 +273,8 @@
__attribute__nonnull__(1)
FUNC_MODIFIES(*header);
-static void pf_debug_destroy(SHIM_INTERP, ARGMOD(PackFile_Segment *self))
+static void pf_debug_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*self);
@@ -278,10 +285,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static PackFile_Segment * pf_debug_new(SHIM_INTERP,
+static PackFile_Segment * pf_debug_new(PARROT_INTERP,
SHIM(PackFile *pf),
SHIM(STRING *name),
- SHIM(int add));
+ SHIM(int add))
+ __attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
@@ -341,7 +349,8 @@
#define ASSERT_ARGS_byte_code_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
-#define ASSERT_ARGS_byte_code_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_byte_code_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_clone_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(old_const))
@@ -351,14 +360,16 @@
#define ASSERT_ARGS_const_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
-#define ASSERT_ARGS_const_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_const_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_create_seg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(dir) \
, PARROT_ASSERT_ARG(name) \
, PARROT_ASSERT_ARG(file_name))
#define ASSERT_ARGS_default_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(self))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_default_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
@@ -368,7 +379,8 @@
#define ASSERT_ARGS_default_packed_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_default_unpack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(self) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(self) \
, PARROT_ASSERT_ARG(cursor))
#define ASSERT_ARGS_directory_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -376,7 +388,8 @@
#define ASSERT_ARGS_directory_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
-#define ASSERT_ARGS_directory_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_directory_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_directory_pack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self) \
@@ -407,7 +420,8 @@
#define ASSERT_ARGS_fixup_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
-#define ASSERT_ARGS_fixup_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_fixup_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_fixup_pack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self) \
@@ -432,11 +446,13 @@
#define ASSERT_ARGS_PackFile_set_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(header))
#define ASSERT_ARGS_pf_debug_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(self))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_pf_debug_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
-#define ASSERT_ARGS_pf_debug_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_pf_debug_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_pf_debug_pack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(self) \
, PARROT_ASSERT_ARG(cursor))
@@ -536,9 +552,9 @@
}
#endif
- mem_sys_free(pf->header);
+ mem_gc_free(interp, pf->header);
pf->header = NULL;
- mem_sys_free(pf->dirp);
+ mem_gc_free(interp, pf->dirp);
pf->dirp = NULL;
PackFile_Segment_destroy(interp, &pf->directory.base);
return;
@@ -1062,8 +1078,8 @@
/* Read in the UUID. We'll put it in a NULL-terminated string, just in
* case people use it that way. */
- header->uuid_data = (unsigned char *)
- mem_sys_allocate(header->uuid_size + 1);
+ header->uuid_data = mem_gc_allocate_n_typed(interp,
+ header->uuid_size + 1, unsigned char);
memcpy(header->uuid_data, packed + PACKFILE_HEADER_BYTES,
header->uuid_size);
@@ -1183,11 +1199,12 @@
PARROT_EXPORT
void
-PackFile_add_segment(SHIM_INTERP, ARGMOD(PackFile_Directory *dir),
+PackFile_add_segment(PARROT_INTERP, ARGMOD(PackFile_Directory *dir),
ARGIN(PackFile_Segment *seg))
{
ASSERT_ARGS(PackFile_add_segment)
- mem_realloc_n_typed(dir->segments, dir->num_segments+1, PackFile_Segment *);
+ dir->segments = mem_gc_realloc_n_typed_zeroed(interp, dir->segments,
+ dir->num_segments+1, dir->num_segments, PackFile_Segment *);
dir->segments[dir->num_segments] = seg;
dir->num_segments++;
seg->dir = dir;
@@ -1384,8 +1401,8 @@
PackFile_new(PARROT_INTERP, INTVAL is_mapped)
{
ASSERT_ARGS(PackFile_new)
- PackFile * const pf = mem_allocate_zeroed_typed(PackFile);
- pf->header = mem_allocate_zeroed_typed(PackFile_Header);
+ PackFile * const pf = mem_gc_allocate_zeroed_typed(interp, PackFile);
+ pf->header = mem_gc_allocate_zeroed_typed(interp, PackFile_Header);
pf->is_mmap_ped = is_mapped;
pf->options = PFOPT_NONE;
@@ -1462,8 +1479,8 @@
/*
-=item C<static const opcode_t * default_unpack(PackFile_Segment *self, const
-opcode_t *cursor)>
+=item C<static const opcode_t * default_unpack(PARROT_INTERP, PackFile_Segment
+*self, const opcode_t *cursor)>
Unpacks a PackFile given a cursor into PBC. This is the default unpack.
@@ -1474,7 +1491,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static const opcode_t *
-default_unpack(ARGMOD(PackFile_Segment *self), ARGIN(const opcode_t *cursor))
+default_unpack(PARROT_INTERP, ARGMOD(PackFile_Segment *self), ARGIN(const opcode_t *cursor))
{
ASSERT_ARGS(default_unpack)
DECL_CONST_CAST_OF(opcode_t);
@@ -1503,7 +1520,7 @@
}
/* else allocate mem */
- self->data = mem_allocate_n_typed(self->size, opcode_t);
+ self->data = mem_gc_allocate_n_typed(interp, self->size, opcode_t);
if (!self->data) {
Parrot_io_eprintf(NULL, "PackFile_unpack: Unable to allocate data memory!\n");
@@ -1801,7 +1818,7 @@
(f)(interp, self);
/* destroy self after specific */
- default_destroy(self);
+ default_destroy(interp, self);
}
@@ -1917,7 +1934,7 @@
PackFile * const pf = self->pf;
#endif
- cursor = default_unpack(self, cursor);
+ cursor = default_unpack(interp, self, cursor);
if (!cursor)
return NULL;
@@ -1980,11 +1997,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static PackFile_Segment *
-directory_new(SHIM_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
+directory_new(PARROT_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
{
ASSERT_ARGS(directory_new)
- return (PackFile_Segment *)mem_allocate_zeroed_typed(PackFile_Directory);
+ return (PackFile_Segment *)mem_gc_allocate_zeroed_typed(interp, PackFile_Directory);
}
@@ -2055,7 +2072,8 @@
PARROT_ASSERT(pf);
dir->num_segments = PF_fetch_opcode(pf, &cursor);
TRACE_PRINTF(("directory_unpack: %ld num_segments\n", dir->num_segments));
- mem_realloc_n_typed(dir->segments, dir->num_segments, PackFile_Segment *);
+ dir->segments = mem_gc_allocate_n_zeroed_typed(interp,
+ dir->num_segments, PackFile_Segment *);
for (i = 0; i < dir->num_segments; i++) {
PackFile_Segment *seg;
@@ -2071,13 +2089,13 @@
TRACE_PRINTF_VAL(("Segment type %d.\n", type));
/* get name */
- buf = PF_fetch_cstring(pf, &cursor);
+ buf = PF_fetch_cstring(interp, pf, &cursor);
TRACE_PRINTF_VAL(("Segment name \"%s\".\n", name));
/* create it */
name = Parrot_str_new(interp, buf, strlen(buf));
seg = PackFile_Segment_new_seg(interp, dir, type, name, 0);
- mem_sys_free(buf);
+ mem_gc_free(interp, buf);
seg->file_offset = PF_fetch_opcode(pf, &cursor);
TRACE_PRINTF_VAL(("Segment file_offset %ld.\n", seg->file_offset));
@@ -2219,7 +2237,7 @@
}
if (dir->segments) {
- mem_sys_free(dir->segments);
+ mem_gc_free(interp, dir->segments);
dir->segments = NULL;
dir->num_segments = 0;
}
@@ -2458,10 +2476,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PackFile_Segment *
-PackFile_Segment_new(SHIM_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
+PackFile_Segment_new(PARROT_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
{
ASSERT_ARGS(PackFile_Segment_new)
- PackFile_Segment * const seg = mem_allocate_typed(PackFile_Segment);
+ PackFile_Segment * const seg = mem_gc_allocate_zeroed_typed(interp, PackFile_Segment);
return seg;
}
@@ -2478,7 +2496,7 @@
=over 4
-=item C<static void default_destroy(PackFile_Segment *self)>
+=item C<static void default_destroy(PARROT_INTERP, PackFile_Segment *self)>
The default destroy function. Destroys a PackFile_Segment.
@@ -2487,15 +2505,15 @@
*/
static void
-default_destroy(ARGMOD(PackFile_Segment *self))
+default_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self))
{
ASSERT_ARGS(default_destroy)
if (!self->pf->is_mmap_ped && self->data) {
- mem_sys_free(self->data);
+ mem_gc_free(interp, self->data);
self->data = NULL;
}
- mem_sys_free(self);
+ mem_gc_free(interp, self);
}
@@ -2576,7 +2594,7 @@
byte_code->prederef.code = NULL;
if (byte_code->prederef.branches) {
- mem_sys_free(byte_code->prederef.branches);
+ mem_gc_free(interp, byte_code->prederef.branches);
byte_code->prederef.branches = NULL;
}
}
@@ -2601,10 +2619,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static PackFile_Segment *
-byte_code_new(SHIM_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
+byte_code_new(PARROT_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
{
ASSERT_ARGS(byte_code_new)
- PackFile_ByteCode * const byte_code = mem_allocate_zeroed_typed(PackFile_ByteCode);
+ PackFile_ByteCode * const byte_code = mem_gc_allocate_zeroed_typed(interp, PackFile_ByteCode);
return (PackFile_Segment *) byte_code;
}
@@ -2627,7 +2645,7 @@
*/
static void
-pf_debug_destroy(SHIM_INTERP, ARGMOD(PackFile_Segment *self))
+pf_debug_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self))
{
ASSERT_ARGS(pf_debug_destroy)
PackFile_Debug * const debug = (PackFile_Debug *) self;
@@ -2635,10 +2653,10 @@
/* Free each mapping. */
for (i = 0; i < debug->num_mappings; i++)
- mem_sys_free(debug->mappings[i]);
+ mem_gc_free(interp, debug->mappings[i]);
/* Free mappings pointer array. */
- mem_sys_free(debug->mappings);
+ mem_gc_free(interp, debug->mappings);
debug->mappings = NULL;
debug->num_mappings = 0;
}
@@ -2659,12 +2677,13 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static PackFile_Segment *
-pf_debug_new(SHIM_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
+pf_debug_new(PARROT_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
{
ASSERT_ARGS(pf_debug_new)
- PackFile_Debug * const debug = mem_allocate_zeroed_typed(PackFile_Debug);
+ PackFile_Debug * const debug = mem_gc_allocate_zeroed_typed(interp, PackFile_Debug);
- debug->mappings = mem_allocate_typed(PackFile_DebugFilenameMapping *);
+ debug->mappings = mem_gc_allocate_zeroed_typed(interp,
+ PackFile_DebugFilenameMapping *);
debug->mappings[0] = NULL;
return (PackFile_Segment *)debug;
@@ -2760,14 +2779,14 @@
debug->num_mappings = PF_fetch_opcode(self->pf, &cursor);
/* Allocate space for mappings vector. */
- mem_realloc_n_typed(debug->mappings, debug->num_mappings + 1,
- PackFile_DebugFilenameMapping *);
+ debug->mappings = mem_gc_allocate_n_zeroed_typed(interp,
+ debug->num_mappings + 1, 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_allocate_typed(PackFile_DebugFilenameMapping);
+ 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);
}
@@ -2807,7 +2826,6 @@
const PackFile_Debug * const debug = (const PackFile_Debug *)self;
opcode_t i;
- size_t j;
default_dump_header(interp, self);
@@ -2849,7 +2867,7 @@
/* it exists already, resize it */
if (cs->debugs) {
debug = cs->debugs;
- mem_realloc_n_typed(debug->base.data, size, opcode_t);
+ debug->base.data = mem_gc_realloc_n_typed(interp, debug->base.data, size, opcode_t);
}
/* create one */
else {
@@ -2865,7 +2883,7 @@
debug = (PackFile_Debug *)PackFile_Segment_new_seg(interp, dir,
PF_DEBUG_SEG, name, add);
- debug->base.data = mem_allocate_n_zeroed_typed(size, opcode_t);
+ debug->base.data = mem_gc_allocate_n_zeroed_typed(interp, size, opcode_t);
debug->code = cs;
cs->debugs = debug;
}
@@ -2910,8 +2928,9 @@
}
/* Allocate space for the extra entry. */
- mem_realloc_n_typed(debug->mappings, debug->num_mappings + 1,
- PackFile_DebugFilenameMapping *);
+ debug->mappings = mem_gc_realloc_n_typed(interp,
+ debug->mappings, debug->num_mappings + 1,
+ PackFile_DebugFilenameMapping *);
/* Can it just go on the end? */
if (debug->num_mappings == 0
@@ -2935,7 +2954,7 @@
{
/* Set up new entry and insert it. */
PackFile_DebugFilenameMapping *mapping =
- mem_allocate_typed(PackFile_DebugFilenameMapping);
+ mem_gc_allocate_zeroed_typed(interp, PackFile_DebugFilenameMapping);
STRING *namestr = Parrot_str_new_init(interp, filename, strlen(filename),
PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, 0);
size_t count = ct->const_count;
@@ -2957,7 +2976,8 @@
/* Not found, create a new one */
PackFile_Constant *fnconst;
ct->const_count = ct->const_count + 1;
- mem_realloc_n_typed(ct->constants, ct->const_count, PackFile_Constant *);
+ ct->constants = mem_gc_realloc_n_typed_zeroed(interp, ct->constants,
+ ct->const_count, ct->const_count - 1, PackFile_Constant *);
fnconst = PackFile_Constant_new(interp);
fnconst->type = PFC_STRING;
@@ -3123,7 +3143,8 @@
&& VTABLE_isa(interp, old_const->u.key, _sub)) {
PMC *old_sub_pmc, *new_sub_pmc;
Parrot_Sub_attributes *old_sub, *new_sub;
- PackFile_Constant * const ret = mem_allocate_typed(PackFile_Constant);
+ PackFile_Constant * const ret = mem_gc_allocate_zeroed_typed(interp,
+ PackFile_Constant);
ret->type = old_const->type;
old_sub_pmc = old_const->u.key;
@@ -3189,7 +3210,8 @@
INTVAL const num_consts = ct->const_count;
INTVAL i;
- new_consts = mem_allocate_n_typed(num_consts, PackFile_Constant *);
+ new_consts = mem_gc_allocate_n_zeroed_typed(interp,
+ num_consts, PackFile_Constant *);
for (i = 0; i < num_consts; ++i)
new_consts[i] = clone_constant(interp, old_consts[i]);
@@ -3241,10 +3263,10 @@
for (j = 0; j < table->const_count; ++j) {
if (consts[j] != orig_consts[j])
- mem_sys_free(consts[j]);
+ mem_gc_free(interp, consts[j]);
}
- mem_sys_free(consts);
+ mem_gc_free(interp, consts);
bucket = bucket->next;
}
}
@@ -3283,15 +3305,15 @@
}
for (i = 0; i < self->fixup_count; i++) {
- mem_sys_free(self->fixups[i]->name);
+ mem_gc_free(interp, self->fixups[i]->name);
self->fixups[i]->name = NULL;
- mem_sys_free(self->fixups[i]);
+ mem_gc_free(interp, self->fixups[i]);
self->fixups[i] = NULL;
}
if (self->fixup_count) {
- mem_sys_free(self->fixups);
+ mem_gc_free(interp, self->fixups);
self->fixups = NULL;
}
@@ -3416,10 +3438,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static PackFile_Segment *
-fixup_new(SHIM_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
+fixup_new(PARROT_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
{
ASSERT_ARGS(fixup_new)
- PackFile_FixupTable * const fixup = mem_allocate_zeroed_typed(PackFile_FixupTable);
+ PackFile_FixupTable * const fixup = mem_gc_allocate_zeroed_typed(interp,
+ PackFile_FixupTable);
return (PackFile_Segment *) fixup;
}
@@ -3463,8 +3486,8 @@
self->fixup_count));
if (self->fixup_count) {
- self->fixups = (PackFile_FixupEntry **)mem_sys_allocate_zeroed(
- self->fixup_count * sizeof (PackFile_FixupEntry *));
+ self->fixups = mem_gc_allocate_n_zeroed_typed(interp,
+ self->fixup_count, PackFile_FixupEntry *);
if (!self->fixups) {
Parrot_io_eprintf(interp,
@@ -3478,14 +3501,14 @@
for (i = 0; i < self->fixup_count; i++) {
PackFile_FixupEntry * const entry =
self->fixups[i] =
- mem_allocate_typed(PackFile_FixupEntry);
+ mem_gc_allocate_zeroed_typed(interp, PackFile_FixupEntry);
entry->type = PF_fetch_opcode(pf, &cursor);
switch (entry->type) {
case enum_fixup_label:
case enum_fixup_sub:
- entry->name = PF_fetch_cstring(pf, &cursor);
+ entry->name = PF_fetch_cstring(interp, pf, &cursor);
entry->offset = PF_fetch_opcode(pf, &cursor);
TRACE_PRINTF_VAL(("PackFile_FixupTable_unpack(): type %d, "
"name %s, offset %ld\n",
@@ -3536,9 +3559,10 @@
}
i = self->fixup_count++;
- mem_realloc_n_typed(self->fixups, self->fixup_count, PackFile_FixupEntry *);
+ self->fixups = mem_gc_realloc_n_typed_zeroed(interp,
+ self->fixups, self->fixup_count, i, PackFile_FixupEntry *);
- self->fixups[i] = mem_allocate_typed(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;
@@ -3638,7 +3662,7 @@
/* TODO make a hash of all fixups */
PackFile_Directory * const dir = interp->code->base.dir;
- PackFile_FixupEntry * const ep = mem_allocate_typed(PackFile_FixupEntry);
+ PackFile_FixupEntry * const ep = mem_gc_allocate_zeroed_typed(interp, PackFile_FixupEntry);
ep->type = type;
ep->name = name;
@@ -3680,7 +3704,7 @@
}
if (self->constants) {
- mem_sys_free(self->constants);
+ mem_gc_free(interp, self->constants);
self->constants = NULL;
}
@@ -3728,7 +3752,7 @@
if (self->const_count == 0)
return cursor;
- self->constants = mem_allocate_n_zeroed_typed(self->const_count,
+ self->constants = mem_gc_allocate_n_zeroed_typed(interp, self->const_count,
PackFile_Constant *);
if (!self->constants) {
@@ -3765,10 +3789,11 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
static PackFile_Segment *
-const_new(SHIM_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
+const_new(PARROT_INTERP, SHIM(PackFile *pf), SHIM(STRING *name), SHIM(int add))
{
ASSERT_ARGS(const_new)
- PackFile_ConstTable * const const_table = mem_allocate_zeroed_typed(PackFile_ConstTable);
+ PackFile_ConstTable * const const_table =
+ mem_gc_allocate_zeroed_typed(interp, PackFile_ConstTable);
return (PackFile_Segment *)const_table;
}
@@ -3815,10 +3840,11 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
PackFile_Constant *
-PackFile_Constant_new(SHIM_INTERP)
+PackFile_Constant_new(PARROT_INTERP)
{
ASSERT_ARGS(PackFile_Constant_new)
- PackFile_Constant * const self = mem_allocate_zeroed_typed(PackFile_Constant);
+ PackFile_Constant * const self = mem_gc_allocate_zeroed_typed(interp,
+ PackFile_Constant);
self->type = PFC_NONE;
@@ -3840,10 +3866,10 @@
PARROT_EXPORT
void
-PackFile_Constant_destroy(SHIM_INTERP, ARGMOD_NULLOK(PackFile_Constant *self))
+PackFile_Constant_destroy(PARROT_INTERP, ARGMOD_NULLOK(PackFile_Constant *self))
{
ASSERT_ARGS(PackFile_Constant_destroy)
- mem_sys_free(self);
+ mem_gc_free(interp, self);
}
@@ -3866,7 +3892,6 @@
{
ASSERT_ARGS(PackFile_Constant_pack_size)
PMC *component;
- STRING *image;
size_t packed_size;
switch (self->type) {
@@ -3889,14 +3914,7 @@
case PFC_PMC:
component = self->u.key; /* the pmc (Sub, ...) */
-
- /*
- * TODO create either
- * a) a frozen_size freeze entry or
- * b) change packout.c so that component size isn't needed
- */
- image = Parrot_freeze(interp, component);
- packed_size = PF_size_string(image);
+ packed_size = PF_size_strlen(Parrot_freeze_size(interp, component));
break;
default:
@@ -3999,13 +4017,7 @@
interp->code = pf->cur_cs;
image = PF_fetch_string(interp, pf, &cursor);
- /*
- * TODO use thaw_constants
- * current issue: a constant Sub with attached properties
- * doesn't GC mark the properties
- * for a constant PMC *all* contents have to be in the constant pools
- */
- pmc = Parrot_thaw(interp, image);
+ pmc = Parrot_thaw_constants(interp, image);
/* place item in const_table */
self->type = PFC_PMC;
@@ -4059,11 +4071,11 @@
opcode_t op;
if (tail) {
- SETATTR_Key_next_key(interp, tail, constant_pmc_new(interp, pmc_enum));
+ SETATTR_Key_next_key(interp, tail, Parrot_pmc_new_constant(interp, pmc_enum));
GETATTR_Key_next_key(interp, tail, tail);
}
else
- head = tail = constant_pmc_new(interp, pmc_enum);
+ head = tail = Parrot_pmc_new_constant(interp, pmc_enum);
op = PF_fetch_opcode(pf, &cursor);
@@ -4115,14 +4127,15 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PackFile_Segment *
-PackFile_Annotations_new(SHIM_INTERP, SHIM(struct PackFile *pf),
+PackFile_Annotations_new(PARROT_INTERP, SHIM(struct PackFile *pf),
SHIM(STRING *name), SHIM(int add))
{
ASSERT_ARGS(PackFile_Annotations_new)
/* Allocate annotations structure; create it all zeroed, and we will
* allocate memory for each of the arrays on demand. */
- PackFile_Annotations * const seg = mem_allocate_zeroed_typed(PackFile_Annotations);
+ PackFile_Annotations * const seg = mem_gc_allocate_zeroed_typed(interp,
+ PackFile_Annotations);
return (PackFile_Segment *) seg;
}
@@ -4138,7 +4151,7 @@
*/
void
-PackFile_Annotations_destroy(SHIM_INTERP, ARGMOD(PackFile_Segment *seg))
+PackFile_Annotations_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *seg))
{
ASSERT_ARGS(PackFile_Annotations_destroy)
PackFile_Annotations *self = (PackFile_Annotations *)seg;
@@ -4147,23 +4160,23 @@
/* Free any keys. */
if (self->keys) {
for (i = 0; i < self->num_keys; i++)
- mem_sys_free(self->keys[i]);
+ mem_gc_free(interp, self->keys[i]);
- mem_sys_free(self->keys);
+ mem_gc_free(interp, self->keys);
}
/* Free any groups. */
if (self->groups) {
for (i = 0; i < self->num_groups; i++)
- mem_sys_free(self->groups[i]);
- mem_sys_free(self->groups);
+ mem_gc_free(interp, self->groups[i]);
+ mem_gc_free(interp, self->groups);
}
/* Free any entries. */
if (self->entries) {
for (i = 0; i < self->num_entries; i++)
- mem_sys_free(self->entries[i]);
- mem_sys_free(self->entries);
+ mem_gc_free(interp, self->entries[i]);
+ mem_gc_free(interp, self->entries);
}
}
@@ -4277,11 +4290,12 @@
TRACE_PRINTF(("PackFile_Annotations_unpack: Unpacking %ld keys\n",
self->num_keys));
- self->keys = mem_allocate_n_typed(self->num_keys, PackFile_Annotations_Key *);
+ self->keys = mem_gc_allocate_n_zeroed_typed(interp,
+ self->num_keys, PackFile_Annotations_Key *);
for (i = 0; i < self->num_keys; i++) {
- PackFile_Annotations_Key * const key =
- self->keys[i] = mem_allocate_typed(PackFile_Annotations_Key);
+ PackFile_Annotations_Key * const key = self->keys[i] =
+ mem_gc_allocate_zeroed_typed(interp, PackFile_Annotations_Key);
key->name = PF_fetch_opcode(seg->pf, &cursor);
key->type = PF_fetch_opcode(seg->pf, &cursor);
TRACE_PRINTF_VAL(("PackFile_Annotations_unpack: key[%d]/%d name=%s type=%d\n",
@@ -4290,11 +4304,13 @@
/* Unpack groups. */
self->num_groups = PF_fetch_opcode(seg->pf, &cursor);
- self->groups = mem_allocate_n_typed(self->num_groups, PackFile_Annotations_Group *);
+ self->groups = mem_gc_allocate_n_zeroed_typed(interp,
+ self->num_groups, PackFile_Annotations_Group *);
for (i = 0; i < self->num_groups; i++) {
PackFile_Annotations_Group * const group =
- self->groups[i] = mem_allocate_typed(PackFile_Annotations_Group);
+ self->groups[i] = mem_gc_allocate_zeroed_typed(interp,
+ PackFile_Annotations_Group);
group->bytecode_offset = PF_fetch_opcode(seg->pf, &cursor);
group->entries_offset = PF_fetch_opcode(seg->pf, &cursor);
TRACE_PRINTF_VAL((
@@ -4305,10 +4321,12 @@
/* Unpack entries. */
self->num_entries = PF_fetch_opcode(seg->pf, &cursor);
- self->entries = mem_allocate_n_typed(self->num_entries, PackFile_Annotations_Entry *);
+ self->entries = mem_gc_allocate_n_zeroed_typed(interp,
+ self->num_entries, PackFile_Annotations_Entry *);
for (i = 0; i < self->num_entries; i++) {
PackFile_Annotations_Entry * const entry =
- self->entries[i] = mem_allocate_typed(PackFile_Annotations_Entry);
+ self->entries[i] = mem_gc_allocate_zeroed_typed(interp,
+ PackFile_Annotations_Entry);
entry->bytecode_offset = PF_fetch_opcode(seg->pf, &cursor);
entry->key = PF_fetch_opcode(seg->pf, &cursor);
entry->value = PF_fetch_opcode(seg->pf, &cursor);
@@ -4417,7 +4435,7 @@
*/
PARROT_EXPORT
void
-PackFile_Annotations_add_group(SHIM_INTERP, ARGMOD(PackFile_Annotations *self),
+PackFile_Annotations_add_group(PARROT_INTERP, ARGMOD(PackFile_Annotations *self),
opcode_t offset)
{
ASSERT_ARGS(PackFile_Annotations_add_group)
@@ -4425,15 +4443,16 @@
/* Allocate extra space for the group in the groups array. */
if (self->groups)
self->groups =
- (PackFile_Annotations_Group **)mem_sys_realloc(self->groups,
- (1 + self->num_groups) *
- sizeof (PackFile_Annotations_Group *));
+ self->groups = mem_gc_realloc_n_typed_zeroed(interp, self->groups,
+ 1 + self->num_groups, self->num_groups, PackFile_Annotations_Group *);
else
- self->groups = mem_allocate_n_typed(self->num_groups + 1, PackFile_Annotations_Group *);
+ self->groups = mem_gc_allocate_n_typed(interp,
+ 1 + self->num_groups, PackFile_Annotations_Group *);
/* Store details. */
self->groups[self->num_groups] =
- mem_allocate_typed(PackFile_Annotations_Group);
+ mem_gc_allocate_zeroed_typed(interp,
+ PackFile_Annotations_Group);
self->groups[self->num_groups]->bytecode_offset = offset;
self->groups[self->num_groups]->entries_offset = self->num_entries;
@@ -4480,15 +4499,14 @@
if (key_id == -1) {
/* We do have it. Add key entry. */
if (self->keys)
- self->keys =
- (PackFile_Annotations_Key **)mem_sys_realloc(self->keys,
- (1 + self->num_keys) *
- sizeof (PackFile_Annotations_Key *));
+ self->keys = mem_gc_realloc_n_typed_zeroed(interp, self->keys,
+ 1 + self->num_keys, self->num_keys, PackFile_Annotations_Key *);
else
- self->keys = mem_allocate_n_typed(self->num_keys + 1, PackFile_Annotations_Key *);
+ self->keys = mem_gc_allocate_n_typed(interp,
+ 1 + self->num_keys, PackFile_Annotations_Key *);
key_id = self->num_keys;
- self->keys[key_id] = mem_allocate_typed(PackFile_Annotations_Key);
+ self->keys[key_id] = mem_gc_allocate_typed(interp, PackFile_Annotations_Key);
self->num_keys++;
/* Populate it. */
@@ -4506,17 +4524,14 @@
/* Add annotations entry. */
if (self->entries)
- self->entries =
- (PackFile_Annotations_Entry **)mem_sys_realloc(self->entries,
- (1 + self->num_entries) *
- sizeof (PackFile_Annotations_Entry *));
+ self->entries = mem_gc_realloc_n_typed(interp, self->entries,
+ 1 + self->num_entries, PackFile_Annotations_Entry *);
else
- self->entries =
- mem_allocate_n_typed(self->num_entries + 1,
- PackFile_Annotations_Entry *);
+ self->entries = mem_gc_allocate_n_typed(interp,
+ 1 + self->num_entries, PackFile_Annotations_Entry *);
self->entries[self->num_entries] =
- mem_allocate_typed(PackFile_Annotations_Entry);
+ mem_gc_allocate_typed(interp, PackFile_Annotations_Entry);
self->entries[self->num_entries]->bytecode_offset = offset;
self->entries[self->num_entries]->key = key_id;
self->entries[self->num_entries]->value = value;
@@ -4547,16 +4562,16 @@
switch (type) {
case PF_ANNOTATION_KEY_TYPE_INT:
- result = pmc_new(interp, enum_class_Integer);
+ result = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, result, value);
break;
case PF_ANNOTATION_KEY_TYPE_NUM:
- result = pmc_new(interp, enum_class_Float);
+ result = Parrot_pmc_new(interp, enum_class_Float);
VTABLE_set_number_native(interp, result,
PF_CONST(self->code, value)->u.number);
break;
default:
- result = pmc_new(interp, enum_class_String);
+ result = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, result,
PF_CONST(self->code, value)->u.string);
}
@@ -4616,8 +4631,10 @@
if (key_id == -1) {
/* Look through entries, storing what we find by key and tracking those
* that we have values for. */
- opcode_t *latest_values = mem_allocate_n_zeroed_typed(self->num_keys, opcode_t);
- opcode_t *have_values = mem_allocate_n_zeroed_typed(self->num_keys, opcode_t);
+ opcode_t *latest_values = mem_gc_allocate_n_zeroed_typed(interp,
+ self->num_keys, opcode_t);
+ opcode_t *have_values = mem_gc_allocate_n_zeroed_typed(interp,
+ self->num_keys, opcode_t);
for (i = start_entry; i < self->num_entries; i++) {
if (self->entries[i]->bytecode_offset >= offset)
@@ -4628,7 +4645,7 @@
}
/* Create hash of values we have. */
- result = pmc_new(interp, enum_class_Hash);
+ result = Parrot_pmc_new(interp, enum_class_Hash);
for (i = 0; i < self->num_keys; i++) {
if (have_values[i]) {
@@ -4639,8 +4656,8 @@
}
}
- mem_sys_free(latest_values);
- mem_sys_free(have_values);
+ mem_gc_free(interp, latest_values);
+ mem_gc_free(interp, have_values);
}
else {
/* Look for latest applicable value of the key. */
@@ -4702,9 +4719,9 @@
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"Unable to append PBC to the current directory");
- mem_sys_free(pf->header);
+ mem_gc_free(interp, pf->header);
pf->header = NULL;
- mem_sys_free(pf->dirp);
+ mem_gc_free(interp, pf->dirp);
pf->dirp = NULL;
}
Modified: branches/ops_pct/src/packfile/pf_items.c
==============================================================================
--- branches/ops_pct/src/packfile/pf_items.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/packfile/pf_items.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -1415,7 +1415,27 @@
PF_size_string(ARGIN(const STRING *s))
{
ASSERT_ARGS(PF_size_string)
- opcode_t padded_size = s->bufused;
+ /* TODO: don't break encapsulation on strings */
+ const UINTVAL len = s->bufused;
+ return PF_size_strlen(len);
+}
+
+/*
+
+=item C<size_t PF_size_strlen(const UINTVAL len)>
+
+Reports stored size of C<STRING> in C<opcode_t> units given its in-memory byte length.
+
+=cut
+
+*/
+
+PARROT_PURE_FUNCTION
+size_t
+PF_size_strlen(const UINTVAL len)
+{
+ ASSERT_ARGS(PF_size_strlen)
+ opcode_t padded_size = len;
if (padded_size % sizeof (opcode_t)) {
padded_size += sizeof (opcode_t) - (padded_size % sizeof (opcode_t));
@@ -1427,7 +1447,8 @@
/*
-=item C<char * PF_fetch_cstring(PackFile *pf, const opcode_t **cursor)>
+=item C<char * PF_fetch_cstring(PARROT_INTERP, PackFile *pf, const opcode_t
+**cursor)>
Fetches a cstring from bytecode and returns an allocated copy
@@ -1438,11 +1459,11 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
char *
-PF_fetch_cstring(ARGIN(PackFile *pf), ARGIN(const opcode_t **cursor))
+PF_fetch_cstring(PARROT_INTERP, ARGIN(PackFile *pf), ARGIN(const opcode_t **cursor))
{
ASSERT_ARGS(PF_fetch_cstring)
const size_t str_len = strlen((const char *)(*cursor)) + 1;
- char * const p = (char *)mem_sys_allocate(str_len);
+ char * const p = mem_gc_allocate_n_typed(interp, str_len, char);
const int wordsize = pf->header->wordsize;
TRACE_PRINTF(("PF_fetch_cstring(): size is %ld...\n", str_len));
Modified: branches/ops_pct/src/parrot_debugger.c
==============================================================================
--- branches/ops_pct/src/parrot_debugger.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/parrot_debugger.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -249,7 +249,7 @@
STRING *compiler = Parrot_str_new_constant(interp, "PIR");
STRING *errstr = NULL;
const char source []= ".sub aux :main\nexit 0\n.end\n";
- PMC *code = Parrot_compile_string(interp, compiler, source, &errstr);
+ Parrot_compile_string(interp, compiler, source, &errstr);
if (!STRING_is_null(interp, errstr))
Parrot_io_eprintf(interp, "%Ss\n", errstr);
Modified: branches/ops_pct/src/pbc_dump.c
==============================================================================
--- branches/ops_pct/src/pbc_dump.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pbc_dump.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -62,8 +62,7 @@
/*
-=item C<static void
-const_dump(PARROT_INTERP, const PackFile_Segment *segp)>
+=item C<static void const_dump(PARROT_INTERP, const PackFile_Segment *segp)>
Dump the constant table.
@@ -81,8 +80,7 @@
/*
-=item C<static void
-fixup_dump(PARROT_INTERP, const PackFile_Segment *segp)>
+=item C<static void fixup_dump(PARROT_INTERP, const PackFile_Segment *segp)>
Dump the fixup table.
@@ -100,8 +98,7 @@
/*
-=item C<static void
-disas_dump(PARROT_INTERP, const PackFile_Segment *self)>
+=item C<static void disas_dump(PARROT_INTERP, const PackFile_Segment *self)>
Disassemble and dump.
@@ -136,8 +133,7 @@
/*
-=item C<static void
-PackFile_header_dump(PARROT_INTERP, PackFile *pf)>
+=item C<static void PackFile_header_dump(PARROT_INTERP, PackFile *pf)>
Dump the header.
@@ -294,7 +290,7 @@
size = PackFile_pack_size(interp,
interp->code->base.pf) * sizeof (opcode_t);
- pack = (opcode_t*) mem_sys_allocate(size);
+ pack = (opcode_t*) Parrot_gc_allocate_memory_chunk(interp, size);
if (!pack) {
printf("out of mem\n");
exit(EXIT_FAILURE);
@@ -312,7 +308,7 @@
exit(EXIT_FAILURE);
}
fclose(fp);
- mem_sys_free(pack);
+ Parrot_gc_free_memory_chunk(interp, pack);
Parrot_exit(interp, 0);
}
Modified: branches/ops_pct/src/pbc_merge.c
==============================================================================
--- branches/ops_pct/src/pbc_merge.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pbc_merge.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -257,7 +257,7 @@
/* Read in program. Nabbed from Parrot_pbc_read. */
chunk_size = program_size > 0 ? program_size : 1024;
- program_code = (char *)mem_sys_allocate(chunk_size);
+ program_code = mem_gc_allocate_n_typed(interp, chunk_size, char);
wanted = program_size;
program_size = 0;
cursor = (char *)program_code;
@@ -267,8 +267,8 @@
if (program_size == wanted)
break;
chunk_size = 1024;
- program_code =
- (char *)mem_sys_realloc(program_code, program_size + chunk_size);
+ program_code = mem_gc_realloc_n_typed(interp, program_code,
+ program_size + chunk_size, char);
cursor = (char *)program_code + program_size;
}
@@ -314,7 +314,7 @@
{
ASSERT_ARGS(pbc_merge_bytecode)
int i;
- opcode_t *bc = mem_allocate_typed(opcode_t);
+ opcode_t *bc = mem_gc_allocate_typed(interp, opcode_t);
opcode_t cursor = 0;
/* Add a bytecode segment. */
@@ -340,7 +340,7 @@
}
/* Re-allocate the current buffer. */
- mem_realloc_n_typed(bc, cursor + in_seg->base.size, opcode_t);
+ bc = mem_gc_realloc_n_typed(interp, bc, cursor + in_seg->base.size, opcode_t);
/* Copy data and store cursor. */
memcpy(bc + cursor, in_seg->base.data,
@@ -378,7 +378,7 @@
ARGMOD(PackFile_ByteCode *bc))
{
ASSERT_ARGS(pbc_merge_constants)
- PackFile_Constant **constants = mem_allocate_typed(PackFile_Constant *);
+ PackFile_Constant **constants = mem_gc_allocate_typed(interp, PackFile_Constant *);
opcode_t cursor = 0;
opcode_t output_const_num = 0;
@@ -414,14 +414,15 @@
/* Allocate space for the constant list, provided we have some. */
if (in_seg->const_count > 0)
- constants = (PackFile_Constant **)mem_sys_realloc(constants,
- (cursor + in_seg->const_count) * sizeof (Parrot_Pointer));
+ constants = mem_gc_realloc_n_typed(interp, constants,
+ cursor + in_seg->const_count, PackFile_Constant*);
/* Loop over the constants and copy them to the output PBC. */
for (j = 0; j < in_seg->const_count; j++) {
/* Get the entry and allocate space for copy. */
PackFile_Constant *cur_entry = in_seg->constants[j];
- PackFile_Constant *copy = mem_allocate_typed(PackFile_Constant);
+ PackFile_Constant *copy = mem_gc_allocate_typed(interp,
+ PackFile_Constant);
STRUCT_COPY(copy, cur_entry);
/* If it's a sub PMC, need to deal with offsets. */
@@ -477,7 +478,8 @@
{
ASSERT_ARGS(pbc_merge_fixups)
PackFile_FixupTable *fixup_seg;
- PackFile_FixupEntry **fixups = mem_allocate_typed(PackFile_FixupEntry *);
+ PackFile_FixupEntry **fixups = mem_gc_allocate_typed(interp,
+ PackFile_FixupEntry *);
opcode_t cursor = 0;
int i, j;
@@ -503,8 +505,8 @@
/* Allocate space for these fixups, provided we have some. */
if (in_seg->fixup_count > 0) {
- fixups = (PackFile_FixupEntry **)mem_sys_realloc(fixups,
- (cursor + in_seg->fixup_count) * sizeof (Parrot_Pointer));
+ fixups = mem_gc_realloc_n_typed(interp, fixups,
+ cursor + in_seg->fixup_count, PackFile_FixupEntry*);
}
/* Loop over the fixups and copy them to the output PBC, correcting
@@ -512,10 +514,10 @@
for (j = 0; j < in_seg->fixup_count; j++) {
/* Get the entry and allocate space for copies. */
PackFile_FixupEntry *cur_entry = in_seg->fixups[j];
- PackFile_FixupEntry *copy = mem_allocate_typed(
- PackFile_FixupEntry);
- char *name_copy = (char *)mem_sys_allocate(
- strlen(cur_entry->name) + 1);
+ PackFile_FixupEntry *copy = mem_gc_allocate_typed(interp,
+ PackFile_FixupEntry);
+ char *name_copy = mem_gc_allocate_n_typed(interp,
+ strlen(cur_entry->name) + 1, char);
/* Copy type and name. */
copy->type = cur_entry->type;
@@ -564,9 +566,10 @@
{
ASSERT_ARGS(pbc_merge_debugs)
PackFile_Debug *debug_seg;
- opcode_t *lines = mem_allocate_typed(opcode_t);
+ opcode_t *lines = mem_gc_allocate_typed(interp,
+ opcode_t);
PackFile_DebugFilenameMapping **mappings =
- mem_allocate_typed(PackFile_DebugFilenameMapping *);
+ mem_gc_allocate_typed(interp, PackFile_DebugFilenameMapping *);
opcode_t num_mappings = 0;
opcode_t num_lines = 0;
@@ -580,19 +583,20 @@
PackFile_Debug *in_seg = inputs[i]->pf->cur_cs->debugs;
/* Concatenate line numbers. */
- lines = (opcode_t *)mem_sys_realloc(lines,
- (num_lines + in_seg->base.size) * sizeof (opcode_t));
+ lines = mem_gc_realloc_n_typed(interp, lines,
+ num_lines + in_seg->base.size, opcode_t);
memcpy(lines + num_lines, in_seg->base.data,
in_seg->base.size * sizeof (opcode_t));
/* Concatenate mappings. */
- mappings = (PackFile_DebugFilenameMapping **)mem_sys_realloc(mappings,
- (num_mappings + in_seg->num_mappings) *
- sizeof (Parrot_Pointer));
+ mappings = mem_gc_realloc_n_typed(interp, mappings,
+ num_mappings + in_seg->num_mappings,
+ PackFile_DebugFilenameMapping*);
+
for (j = 0; j < in_seg->num_mappings; j++) {
- PackFile_DebugFilenameMapping *mapping = mem_allocate_typed(
- PackFile_DebugFilenameMapping);
+ PackFile_DebugFilenameMapping *mapping = mem_gc_allocate_typed(
+ interp, PackFile_DebugFilenameMapping);
STRUCT_COPY(mapping, in_seg->mappings[j]);
mapping->offset += num_lines;
mapping->filename += inputs[i]->const_start;
@@ -607,9 +611,9 @@
with merged ones we have created. */
debug_seg = Parrot_new_debug_seg(interp, bc, num_lines);
PackFile_add_segment(interp, &pf->directory, (PackFile_Segment*)debug_seg);
- mem_sys_free(debug_seg->base.data);
+ mem_gc_free(interp, debug_seg->base.data);
debug_seg->base.data = lines;
- mem_sys_free(debug_seg->mappings);
+ mem_gc_free(interp, debug_seg->mappings);
debug_seg->mappings = mappings;
debug_seg->num_mappings = num_mappings;
@@ -720,7 +724,6 @@
ASSERT_ARGS(pbc_merge_begin)
PackFile_ByteCode *bc;
PackFile_ConstTable *ct;
- opcode_t const_count = 0;
int i;
/* Create a new empty packfile. */
@@ -738,7 +741,8 @@
PackFile_Segment *seg = (PackFile_Segment *)pf_dir->segments[j];
if (seg->type == PF_CONST_SEG) {
opcode_t const_count = ((PackFile_ConstTable *)seg)->const_count;
- inputs[i]->const_map = mem_allocate_n_typed(const_count, opcode_t);
+ inputs[i]->const_map = mem_gc_allocate_n_typed(interp,
+ const_count, opcode_t);
}
}
}
@@ -755,7 +759,7 @@
pbc_merge_ctpointers(interp, inputs, num_inputs, bc);
for (i = 0; i < num_inputs; i++) {
- mem_sys_free(inputs[i]->const_map);
+ mem_gc_free(interp, inputs[i]->const_map);
}
/* Return merged result. */
@@ -784,7 +788,7 @@
const size_t size = PackFile_pack_size(interp, pf) * sizeof (opcode_t);
/* Allocate memory. */
- opcode_t * const pack = (opcode_t*) mem_sys_allocate(size);
+ opcode_t * const pack = (opcode_t*) Parrot_gc_allocate_memory_chunk(interp, size);
/* Write and clean up. */
PackFile_pack(interp, pf, pack);
@@ -797,7 +801,7 @@
Parrot_exit(interp, 1);
}
fclose(fp);
- mem_sys_free(pack);
+ mem_gc_free(interp, pack);
}
@@ -858,12 +862,11 @@
/* Load each packfile that we are to merge and set up an input
structure for each of them. */
- input_files = (pbc_merge_input **)mem_sys_allocate(
- argc * sizeof (Parrot_Pointer));
+ input_files = mem_gc_allocate_n_typed(interp, argc, pbc_merge_input*);
for (i = 0; i < argc; i++) {
/* Allocate a struct. */
- input_files[i] = mem_allocate_typed(pbc_merge_input);
+ input_files[i] = mem_gc_allocate_typed(interp, pbc_merge_input);
/* Set filename */
input_files[i]->filename = *argv;
Modified: branches/ops_pct/src/pmc.c
==============================================================================
--- branches/ops_pct/src/pmc.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -46,7 +46,7 @@
__attribute__nonnull__(1);
PARROT_CANNOT_RETURN_NULL
-static PMC* pmc_reuse_no_init(PARROT_INTERP,
+static PMC* Parrot_pmc_reuse_noinit(PARROT_INTERP,
ARGIN(PMC *pmc),
INTVAL new_type,
SHIM(UINTVAL flags))
@@ -59,7 +59,7 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_get_new_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_pmc_reuse_no_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_pmc_reuse_noinit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -72,7 +72,7 @@
/*
-=item C<INTVAL PMC_is_null(PARROT_INTERP, const PMC *pmc)>
+=item C<INTVAL Parrot_pmc_is_null(PARROT_INTERP, const PMC *pmc)>
Tests if the given pmc is null.
@@ -82,9 +82,9 @@
PARROT_EXPORT
INTVAL
-PMC_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc))
+Parrot_pmc_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc))
{
- ASSERT_ARGS(PMC_is_null)
+ ASSERT_ARGS(Parrot_pmc_is_null)
#if PARROT_CATCH_NULL
return pmc == PMCNULL || pmc == NULL;
#else
@@ -135,7 +135,7 @@
/*
-=item C<PMC * pmc_new(PARROT_INTERP, INTVAL base_type)>
+=item C<PMC * Parrot_pmc_new(PARROT_INTERP, INTVAL base_type)>
Creates a new PMC of type C<base_type> (which is an index into the list of PMC
types declared in C<vtables> in F<include/parrot/pmc.h>). Once the PMC has been
@@ -150,9 +150,9 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
PMC *
-pmc_new(PARROT_INTERP, INTVAL base_type)
+Parrot_pmc_new(PARROT_INTERP, INTVAL base_type)
{
- ASSERT_ARGS(pmc_new)
+ ASSERT_ARGS(Parrot_pmc_new)
PARROT_ASSERT(interp->vtables[base_type]);
{
PMC *const classobj = interp->vtables[base_type]->pmc_class;
@@ -169,7 +169,7 @@
/*
-=item C<PMC * pmc_reuse(PARROT_INTERP, PMC *pmc, INTVAL new_type, UINTVAL
+=item C<PMC * Parrot_pmc_reuse(PARROT_INTERP, PMC *pmc, INTVAL new_type, UINTVAL
flags)>
Reuse an existing PMC, turning it into an empty PMC of the new type. Any
@@ -188,11 +188,11 @@
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
PMC *
-pmc_reuse(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
- UINTVAL flags)
+Parrot_pmc_reuse(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
+ UINTVAL flags)
{
- ASSERT_ARGS(pmc_reuse)
- pmc = pmc_reuse_no_init(interp, pmc, new_type, flags);
+ ASSERT_ARGS(Parrot_pmc_reuse)
+ pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type, flags);
/* Call the base init for the redone pmc. Warning, this should not
be called on Object PMCs. */
@@ -203,8 +203,8 @@
/*
-=item C<PMC * pmc_reuse_init(PARROT_INTERP, PMC *pmc, INTVAL new_type, PMC
-*init, UINTVAL flags)>
+=item C<PMC * Parrot_pmc_reuse_init(PARROT_INTERP, PMC *pmc, INTVAL new_type,
+PMC *init, UINTVAL flags)>
Reuse an existing PMC, turning it into an PMC of the new type. Any
required internal structure will be put in place (such as the extension area)
@@ -222,11 +222,11 @@
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
PMC *
-pmc_reuse_init(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type, ARGIN(PMC *init),
+Parrot_pmc_reuse_init(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type, ARGIN(PMC *init),
UINTVAL flags)
{
- ASSERT_ARGS(pmc_reuse_init)
- pmc = pmc_reuse_no_init(interp, pmc, new_type, flags);
+ ASSERT_ARGS(Parrot_pmc_reuse_init)
+ pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type, flags);
/* Call the base init for the redone pmc. Warning, this should not
be called on Object PMCs. */
@@ -237,8 +237,8 @@
/*
-=item C<static PMC* pmc_reuse_no_init(PARROT_INTERP, PMC *pmc, INTVAL new_type,
-UINTVAL flags)>
+=item C<static PMC* Parrot_pmc_reuse_noinit(PARROT_INTERP, PMC *pmc, INTVAL
+new_type, UINTVAL flags)>
Prepare pmc for reuse. Do all scuffolding except initing.
@@ -247,12 +247,12 @@
*/
PARROT_CANNOT_RETURN_NULL
static PMC*
-pmc_reuse_no_init(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
+Parrot_pmc_reuse_noinit(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
SHIM(UINTVAL flags)) {
- ASSERT_ARGS(pmc_reuse_no_init)
+ ASSERT_ARGS(Parrot_pmc_reuse_noinit)
VTABLE *new_vtable;
- INTVAL has_ext, new_flags = 0;
+ INTVAL new_flags = 0;
if (pmc->vtable->base_type == new_type)
return pmc;
@@ -281,8 +281,8 @@
/*
-=item C<PMC * pmc_reuse_by_class(PARROT_INTERP, PMC *pmc, PMC *class_, UINTVAL
-flags)>
+=item C<PMC * Parrot_pmc_reuse_by_class(PARROT_INTERP, PMC *pmc, PMC *class_,
+UINTVAL flags)>
Reuse an existing PMC. Convert it to the type specified by the given Class
PMC. At the moment, this means we can only use this function to reuse PMCs
@@ -297,10 +297,10 @@
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
PMC *
-pmc_reuse_by_class(PARROT_INTERP, ARGMOD(PMC *pmc), ARGIN(PMC *class_),
+Parrot_pmc_reuse_by_class(PARROT_INTERP, ARGMOD(PMC *pmc), ARGIN(PMC *class_),
UINTVAL flags)
{
- ASSERT_ARGS(pmc_reuse_by_class)
+ ASSERT_ARGS(Parrot_pmc_reuse_by_class)
const INTVAL new_type = PARROT_CLASS(class_)->id;
VTABLE * const new_vtable = interp->vtables[new_type];
INTVAL new_flags = flags;
@@ -466,11 +466,11 @@
/*
-=item C<PMC * pmc_new_noinit(PARROT_INTERP, INTVAL base_type)>
+=item C<PMC * Parrot_pmc_new_noinit(PARROT_INTERP, INTVAL base_type)>
Creates a new PMC of type C<base_type> (which is an index into the list of PMC
-types declared in C<vtables> in F<include/parrot/pmc.h>). Unlike C<pmc_new()>,
-C<pmc_new_noinit()> does not call its C<init> method. This allows separate
+types declared in C<vtables> in F<include/parrot/pmc.h>). Unlike C<Parrot_pmc_new()>,
+C<Parrot_pmc_new_noinit()> does not call its C<init> method. This allows separate
allocation and initialization for continuations.
=cut
@@ -480,9 +480,9 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC *
-pmc_new_noinit(PARROT_INTERP, INTVAL base_type)
+Parrot_pmc_new_noinit(PARROT_INTERP, INTVAL base_type)
{
- ASSERT_ARGS(pmc_new_noinit)
+ ASSERT_ARGS(Parrot_pmc_new_noinit)
PMC *const classobj = interp->vtables[base_type]->pmc_class;
if (!PMC_IS_NULL(classobj) && PObj_is_class_TEST(classobj))
@@ -494,7 +494,7 @@
/*
-=item C<PMC * constant_pmc_new_noinit(PARROT_INTERP, INTVAL base_type)>
+=item C<PMC * Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)>
Creates a new constant PMC of type C<base_type>.
@@ -505,16 +505,16 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC *
-constant_pmc_new_noinit(PARROT_INTERP, INTVAL base_type)
+Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)
{
- ASSERT_ARGS(constant_pmc_new_noinit)
+ ASSERT_ARGS(Parrot_pmc_new_constant_noinit)
return get_new_pmc_header(interp, base_type, PObj_constant_FLAG);
}
/*
-=item C<PMC * constant_pmc_new(PARROT_INTERP, INTVAL base_type)>
+=item C<PMC * Parrot_pmc_new_constant(PARROT_INTERP, INTVAL base_type)>
Creates a new constant PMC of type C<base_type>, then calls its C<init>.
@@ -525,9 +525,9 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC *
-constant_pmc_new(PARROT_INTERP, INTVAL base_type)
+Parrot_pmc_new_constant(PARROT_INTERP, INTVAL base_type)
{
- ASSERT_ARGS(constant_pmc_new)
+ ASSERT_ARGS(Parrot_pmc_new_constant)
PMC * const pmc = get_new_pmc_header(interp, base_type, PObj_constant_FLAG);
VTABLE_init(interp, pmc);
return pmc;
@@ -536,9 +536,9 @@
/*
-=item C<PMC * pmc_new_init(PARROT_INTERP, INTVAL base_type, PMC *init)>
+=item C<PMC * Parrot_pmc_new_init(PARROT_INTERP, INTVAL base_type, PMC *init)>
-As C<pmc_new()>, but passes C<init> to the PMC's C<init_pmc()> vtable entry.
+As C<Parrot_pmc_new()>, but passes C<init> to the PMC's C<init_pmc()> vtable entry.
=cut
@@ -547,9 +547,9 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC *
-pmc_new_init(PARROT_INTERP, INTVAL base_type, ARGOUT(PMC *init))
+Parrot_pmc_new_init(PARROT_INTERP, INTVAL base_type, ARGOUT(PMC *init))
{
- ASSERT_ARGS(pmc_new_init)
+ ASSERT_ARGS(Parrot_pmc_new_init)
PMC *const classobj = interp->vtables[base_type]->pmc_class;
if (!PMC_IS_NULL(classobj) && PObj_is_class_TEST(classobj))
@@ -564,9 +564,10 @@
/*
-=item C<PMC * constant_pmc_new_init(PARROT_INTERP, INTVAL base_type, PMC *init)>
+=item C<PMC * Parrot_pmc_new_constant_init(PARROT_INTERP, INTVAL base_type, PMC
+*init)>
-As C<constant_pmc_new>, but passes C<init> to the PMC's C<init_pmc> vtable
+As C<Parrot_pmc_new_constant>, but passes C<init> to the PMC's C<init_pmc> vtable
entry.
=cut
@@ -576,9 +577,9 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC *
-constant_pmc_new_init(PARROT_INTERP, INTVAL base_type, ARGIN_NULLOK(PMC *init))
+Parrot_pmc_new_constant_init(PARROT_INTERP, INTVAL base_type, ARGIN_NULLOK(PMC *init))
{
- ASSERT_ARGS(constant_pmc_new_init)
+ ASSERT_ARGS(Parrot_pmc_new_constant_init)
PMC * const pmc = get_new_pmc_header(interp, base_type, PObj_constant_FLAG);
VTABLE_init_pmc(interp, pmc, init);
return pmc;
@@ -587,7 +588,7 @@
/*
-=item C<PMC * temporary_pmc_new(PARROT_INTERP, INTVAL base_type)>
+=item C<PMC * Parrot_pmc_new_temporary(PARROT_INTERP, INTVAL base_type)>
Creates a new temporary PMC of type C<base_type>, then call C<init>. Cannot
be used to create PMC Objects which have been defined from PIR.
@@ -602,11 +603,11 @@
If you don't know what this means means, or you can't tell if either case
will happen as the result of any call you make on or with this PMC,
B<DO NOT> use this function, lest you cause weird crashes and memory errors.
-Use C<pmc_new()> instead.
+Use C<Parrot_pmc_new()> instead.
(Why do these functions even exist? Used judiciously, they can reduce GC
pressure in hotspots tremendously. If you haven't audited the code carefully
--- including profiling and benchmarking -- then use C<pmc_new()> instead, and
+-- including profiling and benchmarking -- then use C<Parrot_pmc_new()> instead, and
never B<ever> add C<PARROT_EXPORT> to either function.)
=cut
@@ -615,9 +616,9 @@
PARROT_CANNOT_RETURN_NULL
PMC *
-temporary_pmc_new(PARROT_INTERP, INTVAL base_type)
+Parrot_pmc_new_temporary(PARROT_INTERP, INTVAL base_type)
{
- ASSERT_ARGS(temporary_pmc_new)
+ ASSERT_ARGS(Parrot_pmc_new_temporary)
PMC * const pmc = get_new_pmc_header(interp, base_type, PObj_constant_FLAG);
VTABLE_init(interp, pmc);
return pmc;
@@ -626,11 +627,11 @@
/*
-=item C<void temporary_pmc_free(PARROT_INTERP, PMC *pmc)>
+=item C<void Parrot_pmc_free_temporary(PARROT_INTERP, PMC *pmc)>
-Frees a new temporary PMC created by C<temporary_pmc_new()>. Do not call
+Frees a new temporary PMC created by C<temporary_Parrot_pmc_new()>. Do not call
this with any other type of PMC. Do not forget to call this (or you'll leak
-PMCs). Read and I<understand> the warnings for C<temporary_pmc_new()> before
+PMCs). Read and I<understand> the warnings for C<temporary_Parrot_pmc_new()> before
you're tempted to use this.
=cut
@@ -638,16 +639,16 @@
*/
void
-temporary_pmc_free(PARROT_INTERP, ARGMOD(PMC *pmc))
+Parrot_pmc_free_temporary(PARROT_INTERP, ARGMOD(PMC *pmc))
{
- ASSERT_ARGS(temporary_pmc_free)
+ ASSERT_ARGS(Parrot_pmc_free_temporary)
Parrot_gc_free_pmc_header(interp, pmc);
}
/*
-=item C<INTVAL get_new_vtable_index(PARROT_INTERP)>
+=item C<INTVAL Parrot_pmc_get_new_vtable_index(PARROT_INTERP)>
Get a new unique identifier number and allocate a new vtable structure for a
new PMC type.
@@ -657,9 +658,9 @@
*/
INTVAL
-get_new_vtable_index(PARROT_INTERP)
+Parrot_pmc_get_new_vtable_index(PARROT_INTERP)
{
- ASSERT_ARGS(get_new_vtable_index)
+ ASSERT_ARGS(Parrot_pmc_get_new_vtable_index)
const INTVAL type_id = interp->n_vtable_max++;
/* Have we overflowed the table? */
@@ -671,7 +672,7 @@
/*
-=item C<INTVAL pmc_register(PARROT_INTERP, STRING *name)>
+=item C<INTVAL Parrot_pmc_register_new_type(PARROT_INTERP, STRING *name)>
Registers the name of a new PMC type with Parrot, returning the INTVAL
representing that type.
@@ -682,12 +683,12 @@
PARROT_EXPORT
INTVAL
-pmc_register(PARROT_INTERP, ARGIN(STRING *name))
+Parrot_pmc_register_new_type(PARROT_INTERP, ARGIN(STRING *name))
{
- ASSERT_ARGS(pmc_register)
+ ASSERT_ARGS(Parrot_pmc_register_new_type)
/* If they're looking to register an existing class, return that
class' type number */
- INTVAL type = pmc_type(interp, name);
+ INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type > enum_type_undef)
return type;
@@ -696,7 +697,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"undefined type already exists - can't register PMC");
- type = get_new_vtable_index(interp);
+ type = Parrot_pmc_get_new_vtable_index(interp);
/* set entry in name->type hash */
VTABLE_set_integer_keyed_str(interp, interp->class_hash, name, type);
@@ -707,7 +708,7 @@
/*
-=item C<INTVAL pmc_type(PARROT_INTERP, STRING *name)>
+=item C<INTVAL Parrot_pmc_get_type_str(PARROT_INTERP, STRING *name)>
Returns the PMC type for C<name>.
@@ -718,9 +719,9 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
INTVAL
-pmc_type(PARROT_INTERP, ARGIN_NULLOK(STRING *name))
+Parrot_pmc_get_type_str(PARROT_INTERP, ARGIN_NULLOK(STRING *name))
{
- ASSERT_ARGS(pmc_type)
+ ASSERT_ARGS(Parrot_pmc_get_type_str)
if (!name)
return enum_type_undef;
else {
@@ -743,7 +744,7 @@
/*
-=item C<INTVAL pmc_type_p(PARROT_INTERP, PMC *name)>
+=item C<INTVAL Parrot_pmc_get_type(PARROT_INTERP, PMC *name)>
Returns the PMC type for C<name>.
@@ -753,9 +754,9 @@
PARROT_EXPORT
INTVAL
-pmc_type_p(PARROT_INTERP, ARGIN(PMC *name))
+Parrot_pmc_get_type(PARROT_INTERP, ARGIN(PMC *name))
{
- ASSERT_ARGS(pmc_type_p)
+ ASSERT_ARGS(Parrot_pmc_get_type)
PMC * const classname_hash = interp->class_hash;
PMC * item;
@@ -813,7 +814,7 @@
/*
-=item C<void Parrot_create_mro(PARROT_INTERP, INTVAL type)>
+=item C<void Parrot_pmc_create_mro(PARROT_INTERP, INTVAL type)>
Create the MRO (method resolution order) array for this type.
@@ -823,9 +824,9 @@
PARROT_EXPORT
void
-Parrot_create_mro(PARROT_INTERP, INTVAL type)
+Parrot_pmc_create_mro(PARROT_INTERP, INTVAL type)
{
- ASSERT_ARGS(Parrot_create_mro)
+ ASSERT_ARGS(Parrot_pmc_create_mro)
PMC *_class, *mro;
VTABLE *vtable = interp->vtables[type];
PMC *mro_list = vtable->mro;
@@ -838,7 +839,7 @@
if (mro_list->vtable->base_type != enum_class_ResizableStringArray)
return;
- mro = pmc_new(interp, enum_class_ResizablePMCArray);
+ mro = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
vtable->mro = mro;
if (vtable->ro_variant_vtable)
@@ -848,7 +849,7 @@
for (i = 0; i < count; ++i) {
STRING *class_name = VTABLE_get_string_keyed_int(interp, mro_list, i);
- INTVAL parent_type = pmc_type(interp, class_name);
+ INTVAL parent_type = Parrot_pmc_get_type_str(interp, class_name);
/* abstract classes don't have a vtable */
if (!parent_type)
@@ -858,7 +859,7 @@
if (!vtable->_namespace) {
/* need a namespace Hash, anchor at parent, name it */
- PMC * const ns = pmc_new(interp,
+ PMC * const ns = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_NameSpace));
vtable->_namespace = ns;
@@ -884,7 +885,7 @@
=over 4
-=item C<void gc_register_pmc(PARROT_INTERP, PMC *pmc)>
+=item C<void Parrot_pmc_gc_register(PARROT_INTERP, PMC *pmc)>
Registers the PMC with the interpreter's GC registry.
@@ -894,9 +895,9 @@
PARROT_EXPORT
void
-gc_register_pmc(PARROT_INTERP, ARGIN(PMC *pmc))
+Parrot_pmc_gc_register(PARROT_INTERP, ARGIN(PMC *pmc))
{
- ASSERT_ARGS(gc_register_pmc)
+ ASSERT_ARGS(Parrot_pmc_gc_register)
/* Better not trigger a GC run with a potentially unanchored PMC */
Parrot_block_GC_mark(interp);
@@ -906,10 +907,9 @@
Parrot_unblock_GC_mark(interp);
}
-
/*
-=item C<void gc_unregister_pmc(PARROT_INTERP, PMC *pmc)>
+=item C<void Parrot_pmc_gc_unregister(PARROT_INTERP, PMC *pmc)>
Unregisters the PMC from the interpreter's GC registry.
@@ -919,15 +919,14 @@
PARROT_EXPORT
void
-gc_unregister_pmc(PARROT_INTERP, ARGIN(PMC *pmc))
+Parrot_pmc_gc_unregister(PARROT_INTERP, ARGIN(PMC *pmc))
{
- ASSERT_ARGS(gc_unregister_pmc)
+ ASSERT_ARGS(Parrot_pmc_gc_unregister)
PARROT_ASSERT(interp->gc_registry);
VTABLE_delete_keyed(interp, interp->gc_registry, pmc);
}
-
/*
=back
@@ -947,7 +946,6 @@
*/
-
/*
* Local variables:
* c-file-style: "parrot"
Modified: branches/ops_pct/src/pmc/arrayiterator.pmc
==============================================================================
--- branches/ops_pct/src/pmc/arrayiterator.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/arrayiterator.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -128,7 +128,7 @@
GET_ATTR_pos(interp, SELF, pos);
GET_ATTR_reverse(interp, SELF, reverse);
- clone = pmc_new_init(INTERP, enum_class_ArrayIterator, array);
+ clone = Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, array);
SET_ATTR_pos(interp, clone, pos);
SET_ATTR_reverse(interp, clone, reverse);
Modified: branches/ops_pct/src/pmc/bigint.pmc
==============================================================================
--- branches/ops_pct/src/pmc/bigint.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/bigint.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -37,7 +37,7 @@
static void
bigint_init(PARROT_INTERP, PMC *self) {
- BIGINT * const bi = mem_allocate_zeroed_typed(BIGINT);
+ BIGINT * const bi = mem_gc_allocate_zeroed_typed(interp, BIGINT);
SETATTR_BigInt_bi(interp, self, bi);
mpz_init(bi->b);
}
@@ -47,7 +47,7 @@
BIGINT * bi;
GETATTR_BigInt_bi(interp, self, bi);
mpz_clear(bi->b);
- mem_sys_free(bi);
+ mem_gc_free(interp, bi);
}
static void
@@ -123,7 +123,7 @@
GETATTR_BigInt_bi(interp, self, bi);
n = mpz_sizeinbase(bi->b, base) + 2;
- s = (char *)mem_sys_allocate(n);
+ s = mem_gc_allocate_n_typed(interp, n, char);
return mpz_get_str(s, base, bi->b);
}
@@ -323,36 +323,6 @@
mpz_neg(bi_dest->b, bi_self->b);
}
-static void
-bigint_bitwise_shl_bigint_int(PARROT_INTERP, PMC *self,
- INTVAL value, PMC *dest)
-{
- BIGINT *bi_self, *bi_dest;
- GETATTR_BigInt_bi(interp, self, bi_self);
- GETATTR_BigInt_bi(interp, dest, bi_dest);
- /* The third args to mpz_mul_2exp and mpz_tdiv_q_2exp are unsigned, so we
- need to do something sensible with negative values. */
- if (value >= 0)
- mpz_mul_2exp(bi_dest->b, bi_self->b, (unsigned long int)value);
- else
- mpz_tdiv_q_2exp(bi_dest->b, bi_self->b, (unsigned long int)-value);
-}
-
-static void
-bigint_bitwise_shr_bigint_int(PARROT_INTERP, PMC *self,
- INTVAL value, PMC *dest)
-{
- BIGINT *bi_self, *bi_dest;
- GETATTR_BigInt_bi(interp, self, bi_self);
- GETATTR_BigInt_bi(interp, dest, bi_dest);
- /* The third args to mpz_mul_2exp and mpz_tdiv_q_2exp are unsigned, so we
- need to do something sensible with negative values. */
- if (value >= 0)
- mpz_tdiv_q_2exp(bi_dest->b, bi_self->b, (unsigned long int)value);
- else
- mpz_mul_2exp(bi_dest->b, bi_self->b, (unsigned long int)-value);
-}
-
#else /* ifdef PARROT_HAS_GMP */
typedef struct BIGINT {
@@ -533,32 +503,6 @@
"no bigint lib loaded");
}
-static void
-bigint_bitwise_shl_bigint(PARROT_INTERP, PMC *self, PMC *value, PMC *dest) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
-static void
-bigint_bitwise_shl_bigint_int(PARROT_INTERP, PMC *self, INTVAL value, PMC *dest)
-{
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
-static void
-bigint_bitwise_shr_bigint(PARROT_INTERP, PMC *self, PMC *value, PMC *dest) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
-static void
-bigint_bitwise_shr_bigint_int(PARROT_INTERP, PMC *self, INTVAL value, PMC *dest)
-{
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
#endif /* ifdef PARROT_HAS_GMP */
pmclass BigInt auto_attrs {
@@ -596,7 +540,7 @@
}
VTABLE PMC *clone() {
- PMC *res = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC *res = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bigint_set(INTERP, res, SELF);
return res;
}
@@ -701,20 +645,6 @@
/*
-=item C<PMC *get_bignum()>
-
-Returns SELF
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- return SELF;
- }
-
-/*
-
=item C<INTVAL get_bool()>
Returns the boolean value of the integer.
@@ -749,14 +679,14 @@
VTABLE STRING *get_string() {
char * const s = bigint_get_string(INTERP, SELF, 10);
STRING * const ps = Parrot_str_new(INTERP, s, 0);
- mem_sys_free(s);
+ mem_gc_free(INTERP, s);
return ps;
}
VTABLE STRING *get_string_keyed_int(INTVAL base) {
char * const s = bigint_get_string(INTERP, SELF, base);
STRING * const ps = Parrot_str_new(INTERP, s, 0);
- mem_sys_free(s);
+ mem_gc_free(INTERP, s);
return ps;
}
@@ -793,14 +723,14 @@
}
MULTI PMC *add(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_add_bigint(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *add(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_add_bigint_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -815,7 +745,7 @@
}
VTABLE PMC *add_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_add_bigint_int(INTERP, SELF, value, dest);
return dest;
@@ -849,14 +779,14 @@
MULTI PMC *subtract(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_sub_bigint(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *subtract(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_sub_bigint_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -871,7 +801,7 @@
}
VTABLE PMC *subtract_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_sub_bigint_int(INTERP, SELF, value, dest);
return dest;
@@ -905,14 +835,14 @@
MULTI PMC *multiply(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_mul_bigint(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *multiply(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_mul_bigint_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -927,7 +857,7 @@
}
VTABLE PMC *multiply_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_mul_bigint_int(INTERP, SELF, value, dest);
return dest;
@@ -957,25 +887,18 @@
"BigInt: no multiple dispatch variant 'i_multiply_float' for FLOATVAL");
}
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_pow_bigint_int(INTERP, SELF, value, dest);
- return dest;
- }
-
- MULTI PMC *pow(PMC *value, PMC *dest) {
+ METHOD PMC *pow(PMC *value) {
/* XXX only Integer RHS currently */
const INTVAL r = VTABLE_get_integer(INTERP, value);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC *dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_pow_bigint_int(INTERP, SELF, r, dest);
- return dest;
+ RETURN(PMC *dest);
}
MULTI PMC *divide(BigInt value, PMC *dest) {
BIGINT *bi;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_div_bigint(INTERP, SELF, value, dest);
#if 0
@@ -991,7 +914,7 @@
}
MULTI PMC *divide(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_div_bigint_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1006,7 +929,7 @@
}
VTABLE PMC *divide_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_div_bigint_int(INTERP, SELF, value, dest);
return dest;
@@ -1030,14 +953,14 @@
}
MULTI PMC *floor_divide(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_fdiv_bigint(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *floor_divide(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_fdiv_bigint_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1052,7 +975,7 @@
}
VTABLE PMC *floor_divide_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_fdiv_bigint_int(INTERP, SELF, value, dest);
return dest;
@@ -1078,14 +1001,14 @@
}
MULTI PMC *modulus(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_mod_bigint(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *modulus(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_mod_bigint_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1155,7 +1078,7 @@
*/
VTABLE PMC *absolute(PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_abs(INTERP, SELF, dest);
return dest;
@@ -1179,7 +1102,7 @@
*/
VTABLE PMC *neg(PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_neg(INTERP, SELF, dest);
return dest;
@@ -1188,151 +1111,6 @@
VTABLE void i_neg() {
bigint_neg(INTERP, SELF, SELF);
}
-
-/*
-
-=item C<PMC *bitwise_shl(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shl_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the shift left of the BigInt by C<*value>.
-
-=item C<void i_bitwise_shl(PMC *value)>
-
-=item C<void i_bitwise_shl_int(INTVAL value)>
-
-Inplace shift left.
-
-=cut
-
-*/
-
- MULTI PMC *bitwise_shl(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- dest);
- return dest;
- }
-
- MULTI PMC *bitwise_shl(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), dest);
- return dest;
- }
- MULTI PMC *bitwise_shl(DEFAULT value, PMC *dest) {
- UNUSED(dest)
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'bitwise_shl' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE PMC *bitwise_shl_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shl_bigint_int(INTERP, SELF, value, dest);
- return dest;
- }
-
-
- MULTI void i_bitwise_shl(BigInt value) {
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- SELF);
- }
-
- MULTI void i_bitwise_shl(Integer value) {
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), SELF);
- }
-
- MULTI void i_bitwise_shl(DEFAULT value) {
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'i_bitwise_shl' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE void i_bitwise_shl_int(INTVAL value) {
- bigint_bitwise_shl_bigint_int(INTERP, SELF, value, SELF);
- }
-
-/*
-
-=item C<PMC *bitwise_shr(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shr_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the shift right of the BigInt by C<*value>.
-
-=item C<void i_bitwise_shr(PMC *value)>
-
-=item C<void i_bitwise_shr_int(INTVAL value)>
-
-Inplace shift left.
-
-=cut
-
-*/
-
- MULTI PMC *bitwise_shr(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- dest);
- return dest;
- }
-
- MULTI PMC *bitwise_shr(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), dest);
- return dest;
- }
-
- MULTI PMC *bitwise_shr(DEFAULT value, PMC *dest) {
- UNUSED(dest)
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'bitwise_shr' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE PMC *bitwise_shr_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shr_bigint_int(INTERP, SELF, value, dest);
- return dest;
- }
-
-
- MULTI void i_bitwise_shr(BigInt value) {
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- SELF);
- }
-
- MULTI void i_bitwise_shr(Integer value) {
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), SELF);
- }
-
- MULTI void i_bitwise_shr(DEFAULT value) {
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'i_bitwise_shr' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE void i_bitwise_shr_int(INTVAL value) {
- bigint_bitwise_shr_bigint_int(INTERP, SELF, value, SELF);
- }
}
/*
Modified: branches/ops_pct/src/pmc/bignum.pmc
==============================================================================
--- branches/ops_pct/src/pmc/bignum.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/bignum.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -154,7 +154,7 @@
static void
bignum_init(PARROT_INTERP, PMC *self) {
#ifdef PARROT_HAS_GMP
- BIGNUM * const bn = mem_allocate_zeroed_typed(BIGNUM);
+ BIGNUM * const bn = mem_gc_allocate_zeroed_typed(interp, BIGNUM);
SETATTR_BigNum_bn(interp, self, bn);
mpf_clear(bn->b);
mpf_init(bn->b);
@@ -170,7 +170,7 @@
BIGNUM *bn;
GETATTR_BigNum_bn(interp, self, bn);
mpf_clear(bn->b);
- mem_sys_free(bn);
+ mem_gc_free(interp, bn);
#endif
}
@@ -282,7 +282,7 @@
GETATTR_BigNum_bn(interp, self, bn);
n = (mpf_get_prec(bn->b)) / log(base) * log(2);
- s = (char *)mem_sys_allocate(n + 5);
+ s = mem_gc_allocate_n_typed(interp, n + 5, char);
return mpf_get_str(s, &exponent, base, 0, bn->b);
}
@@ -294,7 +294,7 @@
mp_exp_t exponent;
GETATTR_BigNum_bn(interp, self, bn);
- s = (char *)mem_sys_allocate(digits + 5);
+ s = mem_gc_allocate_n_typed(interp, digits + 5, char);
return mpf_get_str(s, &exponent, base, digits, bn->b);
}
@@ -810,7 +810,7 @@
}
VTABLE PMC *clone() {
- PMC *res = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC *res = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_set(INTERP, res, SELF);
return res;
}
@@ -929,20 +929,6 @@
/*
-=item C<PMC *get_bignum()>
-
-Returns SELF, keeping floating point precision.
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- return SELF;
- }
-
-/*
-
=item C<FLOATVAL get_bigint()>
Trunc the BigNum to an BigInt.
@@ -1001,21 +987,21 @@
VTABLE STRING *get_string() {
char *s = bignum_get_string(INTERP, SELF, 10);
STRING *ps = Parrot_str_new(INTERP, s, 0);
- mem_sys_free(s);
+ mem_gc_free(interp, s);
return ps;
}
VTABLE STRING *get_string_keyed_int(INTVAL base) {
char *s = bignum_get_string(INTERP, SELF, base);
STRING *ps = Parrot_str_new(INTERP, s, 0);
- mem_sys_free(s);
+ mem_gc_free(interp, s);
return ps;
}
VTABLE STRING *get_string_keyed_int_int(INTVAL base, INTVAL digits) {
char *s = bignum_get_string_size(INTERP, SELF, base, digits);
STRING *ps = Parrot_str_new(INTERP, s, 0);
- mem_sys_free(s);
+ mem_gc_free(interp, s);
return ps;
}
@@ -1060,14 +1046,14 @@
*/
MULTI PMC *add(BigNum value, PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_add_bignum(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *add(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_add_bignum_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1081,7 +1067,7 @@
}
VTABLE PMC *add_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_add_bignum_int(INTERP, SELF, value, dest);
return dest;
@@ -1123,14 +1109,14 @@
*/
MULTI PMC *subtract(BigNum value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_sub_bignum(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *subtract(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_sub_bignum_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1144,7 +1130,7 @@
}
VTABLE PMC *subtract_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_sub_bignum_int(INTERP, SELF, value, dest);
return dest;
@@ -1186,14 +1172,14 @@
*/
MULTI PMC *multiply(BigNum value, PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_mul_bignum(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *multiply(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_mul_bignum_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1207,7 +1193,7 @@
}
VTABLE PMC *multiply_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_mul_bignum_int(INTERP, SELF, value, dest);
return dest;
@@ -1242,26 +1228,25 @@
/*
-=item C<void pow()>
+=item C<METHOD PMC *pow()>
-=cut
+Raises self to the power of value. Replacement method added when the pow()
+vtable was removed
-*/
+TODO: Needs testing.
+TODO: Only supports Integer values for now.
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+=cut
- bignum_pow_bignum_int(INTERP, SELF, value, dest);
- return dest;
- }
+*/
- MULTI PMC *pow(PMC *value, PMC *dest) {
+ METHOD PMC *pow(PMC *value) {
/* only Integer RHS currently. TODO: check number and bignum types */
INTVAL r = VTABLE_get_integer(INTERP, value);
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC *dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_pow_bignum_int(INTERP, SELF, r, dest);
- return dest;
+ RETURN(PMC *dest);
}
/*
@@ -1274,7 +1259,7 @@
MULTI PMC *divide(BigNum value, PMC *dest) {
BIGNUM *bn;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_div_bignum(INTERP, SELF, value, dest);
#if 0
@@ -1290,7 +1275,7 @@
}
MULTI PMC *divide(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_div_bignum_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1304,14 +1289,14 @@
}
VTABLE PMC *divide_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_div_bignum_int(INTERP, SELF, value, dest);
return dest;
}
VTABLE PMC *divide_float(FLOATVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_div_bignum_float(INTERP, SELF, value, dest);
return dest;
@@ -1346,14 +1331,14 @@
*/
MULTI PMC *floor_divide(BigNum value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_fdiv_bignum(INTERP, SELF, value, dest);
return dest;
}
MULTI PMC *floor_divide(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_fdiv_bignum_int(INTERP, SELF, VTABLE_get_integer(interp, value), dest);
return dest;
@@ -1367,7 +1352,7 @@
}
VTABLE PMC *floor_divide_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_fdiv_bignum_int(INTERP, SELF, value, dest);
return dest;
@@ -1451,7 +1436,7 @@
*/
VTABLE PMC *absolute(PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_abs(INTERP, SELF, dest);
return dest;
@@ -1475,7 +1460,7 @@
*/
VTABLE PMC *neg(PMC *dest) {
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bignum_neg(INTERP, SELF, dest);
return dest;
Modified: branches/ops_pct/src/pmc/callcontext.pmc
==============================================================================
--- branches/ops_pct/src/pmc/callcontext.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/callcontext.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -49,18 +49,6 @@
#define STRINGCELL 2
#define PMCCELL 3
-#define SET_CELL_INT(c) \
- INTVAL2PTR(Pcc_cell *, PTR2INTVAL(UNTAG_CELL(c)) | INTCELL)
-
-#define SET_CELL_FLOAT(c) \
- INTVAL2PTR(Pcc_cell *, PTR2INTVAL(UNTAG_CELL(c)) | FLOATCELL)
-
-#define SET_CELL_STRING(c) \
- INTVAL2PTR(Pcc_cell *, PTR2INTVAL(UNTAG_CELL(c)) | STRINGCELL)
-
-#define SET_CELL_PMC(c) \
- INTVAL2PTR(Pcc_cell *, PTR2INTVAL(UNTAG_CELL(c)) | PMCCELL)
-
#define ALLOC_CELL(i) \
(Pcc_cell *)Parrot_gc_allocate_fixed_size_storage((i), sizeof (Pcc_cell))
@@ -269,15 +257,15 @@
switch (CELL_TYPE_MASK(cell)) {
case INTCELL:
- result = pmc_new(interp, HLL_TYPE(enum_class_Integer));
+ result = Parrot_pmc_new(interp, HLL_TYPE(enum_class_Integer));
VTABLE_set_integer_native(interp, result, CELL_INT(cell));
break;
case FLOATCELL:
- result = pmc_new(interp, HLL_TYPE(enum_class_Float));
+ result = Parrot_pmc_new(interp, HLL_TYPE(enum_class_Float));
VTABLE_set_number_native(interp, result, CELL_FLOAT(cell));
break;
case STRINGCELL:
- result = pmc_new(interp, HLL_TYPE(enum_class_String));
+ result = Parrot_pmc_new(interp, HLL_TYPE(enum_class_String));
VTABLE_set_string_native(interp, result, CELL_STRING(cell));
break;
case PMCCELL:
@@ -363,7 +351,7 @@
/* yes, this *looks* risky, but it's a Parrot STRING hash internally */
if (hash && hash->entries) {
UINTVAL i, j = 0;
- result = pmc_new(interp, enum_class_FixedStringArray);
+ result = Parrot_pmc_new(interp, enum_class_FixedStringArray);
VTABLE_set_integer_native(interp, result, hash->entries);
for (i = 0; i <= hash->mask; i++) {
@@ -405,7 +393,6 @@
ATTR PMC *current_namespace; /* The namespace we're currently in */
ATTR PMC *results_signature; /* non-const results signature PMC */
ATTR opcode_t *current_pc; /* program counter of Sub invocation */
- ATTR opcode_t *current_results; /* ptr into code with get_results opcode */
ATTR PMC *current_sig; /* temporary CallContext PMC for active call */
/* deref the constants - we need it all the time */
@@ -596,7 +583,7 @@
Parrot_gc_free_fixed_size_storage(INTERP,
8 * sizeof (void *), returns_values);
else
- mem_sys_free(returns_values);
+ mem_gc_free(INTERP, returns_values);
}
Parrot_pcc_free_registers(INTERP, SELF);
@@ -1134,8 +1121,6 @@
parrot_hash_put(INTERP, hash, (void *)key, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_INT(cell);
CELL_INT(cell) = value;
}
@@ -1149,8 +1134,6 @@
parrot_hash_put(INTERP, hash, (void *)key, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_FLOAT(cell);
CELL_FLOAT(cell) = value;
}
@@ -1164,8 +1147,6 @@
parrot_hash_put(INTERP, hash, (void *)key, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_STRING(cell);
CELL_STRING(cell) = value;
}
@@ -1179,8 +1160,6 @@
parrot_hash_put(INTERP, hash, (void *)key, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_PMC(cell);
CELL_PMC(cell) = value;
}
@@ -1195,8 +1174,6 @@
parrot_hash_put(INTERP, hash, k, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_INT(cell);
CELL_INT(cell) = value;
}
@@ -1211,8 +1188,6 @@
parrot_hash_put(INTERP, hash, k, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_FLOAT(cell);
CELL_FLOAT(cell) = value;
}
@@ -1227,8 +1202,6 @@
parrot_hash_put(INTERP, hash, k, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_STRING(cell);
CELL_STRING(cell) = value;
}
@@ -1243,8 +1216,6 @@
parrot_hash_put(INTERP, hash, k, (void *)cell);
NEXT_CELL(cell) = NULL;
}
- else
- SET_CELL_PMC(cell);
CELL_PMC(cell) = value;
}
@@ -1408,7 +1379,7 @@
Pcc_cell *cell;
STRING *short_sig;
PMC *type_tuple, *arg_flags, *return_flags;
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
GET_ATTR_positionals(INTERP, SELF, cell);
@@ -1490,13 +1461,13 @@
*/
METHOD backtrace(PMC *resume :optional, INTVAL has_resume :opt_flag) {
- PMC *result = pmc_new(interp, enum_class_ResizablePMCArray);
+ PMC *result = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
PMC *cur_ctx = SELF;
Parrot_Continuation_attributes *cont = has_resume ? PMC_cont(resume) : NULL;
/* Get starting context, then loop over them. */
while (cur_ctx) {
- PMC *frame = pmc_new(interp, enum_class_Hash);
+ PMC *frame = Parrot_pmc_new(interp, enum_class_Hash);
PMC *annotations = NULL;
Parrot_Sub_attributes *sub;
@@ -1525,7 +1496,7 @@
}
if (!annotations)
- annotations = pmc_new(interp, enum_class_Hash);
+ annotations = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_pmc_keyed_str(interp, frame, CONST_STRING(interp, "annotations"), annotations);
Modified: branches/ops_pct/src/pmc/capture.pmc
==============================================================================
--- branches/ops_pct/src/pmc/capture.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/capture.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -22,13 +22,13 @@
do { \
GETATTR_Capture_array((i), (obj), array); \
if (!array) \
- SETATTR_Capture_array((i), (obj), pmc_new((i), enum_class_ResizablePMCArray)); \
+ SETATTR_Capture_array((i), (obj), Parrot_pmc_new((i), enum_class_ResizablePMCArray)); \
} while (0)
#define CAPTURE_hash_CREATE(i, obj) \
do { \
GETATTR_Capture_hash((i), (obj), hash); \
if (!hash) \
- SETATTR_Capture_hash((i), (obj), pmc_new((i), enum_class_Hash)); \
+ SETATTR_Capture_hash((i), (obj), Parrot_pmc_new((i), enum_class_Hash)); \
} while (0)
pmclass Capture auto_attrs {
@@ -61,7 +61,7 @@
VTABLE PMC *clone() {
PMC *array, *hash;
- PMC *dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC *dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_array(INTERP, SELF, array);
GET_ATTR_hash(INTERP, SELF, hash);
if (array)
Modified: branches/ops_pct/src/pmc/class.pmc
==============================================================================
--- branches/ops_pct/src/pmc/class.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/class.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -106,7 +106,7 @@
/* Build a string representing the fully qualified class name. */
/* Retrieve the fully qualified class name for the class. */
STRING * const fq_class = VTABLE_get_string(interp, cur_class);
- PMC * const class_cache = pmc_new(interp, enum_class_Hash);
+ PMC * const class_cache = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_pmc_keyed_str(interp, cache, fq_class, class_cache);
/* Iterate over the attributes. */
@@ -138,8 +138,8 @@
{
Parrot_Class_attributes * const _class = PARROT_CLASS(self);
int cur_index = 0;
- PMC * const attrib_index = pmc_new(interp, enum_class_Hash);
- PMC * const cache = pmc_new(interp, enum_class_Hash);
+ PMC * const attrib_index = Parrot_pmc_new(interp, enum_class_Hash);
+ PMC * const cache = Parrot_pmc_new(interp, enum_class_Hash);
const int num_classes = VTABLE_elements(interp, _class->all_parents);
int i;
@@ -344,7 +344,7 @@
if (!PMC_IS_NULL(meth)) {
/* build an empty signature; it has an invocant but no args/retvals */
- PMC * const sig_obj = pmc_new(interp, enum_class_CallContext);
+ PMC * const sig_obj = Parrot_pmc_new(interp, enum_class_CallContext);
/* preserve current_object */
PMC * const old_object = interp->current_object;
VTABLE_set_string_native(interp, sig_obj, CONST_STRING(interp, "Pi->"));
@@ -504,18 +504,18 @@
/* Set up the object. */
_class->name = CONST_STRING(interp, "");
_class->_namespace = PMCNULL;
- _class->parents = pmc_new(interp, enum_class_ResizablePMCArray);
- _class->all_parents = pmc_new(interp, enum_class_ResizablePMCArray);
- _class->roles = pmc_new(interp, enum_class_ResizablePMCArray);
- _class->methods = pmc_new(interp, enum_class_Hash);
- _class->attrib_metadata = pmc_new(interp, enum_class_Hash);
+ _class->parents = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ _class->all_parents = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ _class->roles = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ _class->methods = Parrot_pmc_new(interp, enum_class_Hash);
+ _class->attrib_metadata = Parrot_pmc_new(interp, enum_class_Hash);
_class->attrib_index = PMCNULL;
_class->attrib_cache = PMCNULL;
_class->meth_cache = PMCNULL;
- _class->resolve_method = pmc_new(interp, enum_class_ResizablePMCArray);
+ _class->resolve_method = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
- _class->vtable_overrides = pmc_new(interp, enum_class_Hash);
- _class->parent_overrides = pmc_new(interp, enum_class_Hash);
+ _class->vtable_overrides = Parrot_pmc_new(interp, enum_class_Hash);
+ _class->parent_overrides = Parrot_pmc_new(interp, enum_class_Hash);
/* We put ourself on the all parents list. */
VTABLE_push_pmc(interp, _class->all_parents, SELF);
@@ -542,7 +542,7 @@
case enum_class_ResizableStringArray:
case enum_class_NameSpace:
/* set only the name property */
- arg = pmc_new(interp, enum_class_Hash);
+ arg = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_pmc_keyed_str(interp, arg, name_str, init_data);
break;
@@ -556,7 +556,7 @@
|| VTABLE_isa(interp, init_data, CONST_STRING(interp, "Key"))
|| VTABLE_isa(interp, init_data, CONST_STRING(interp, "ResizableStringArray"))) {
/* set only the name property */
- arg = pmc_new(interp, enum_class_Hash);
+ arg = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_pmc_keyed_str(interp, arg, name_str, init_data);
}
@@ -631,7 +631,7 @@
VTABLE void add_attribute(STRING *name, PMC *type) {
Parrot_Class_attributes * const _class = PARROT_CLASS(SELF);
- PMC * const new_attribute = pmc_new(interp, enum_class_Hash);
+ PMC * const new_attribute = Parrot_pmc_new(interp, enum_class_Hash);
/* If we've been instantiated already, not allowed. */
if (_class->instantiated)
@@ -960,11 +960,11 @@
found = _class->parents;
}
else if (Parrot_str_equal(interp, what, CONST_STRING(interp, "name"))) {
- found = pmc_new(interp, enum_class_String);
+ found = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, found, _class->name);
}
else if (Parrot_str_equal(interp, what, CONST_STRING(interp, "id"))) {
- found = pmc_new(interp, enum_class_Integer);
+ found = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, found, _class->id);
}
else if (Parrot_str_equal(interp, what, CONST_STRING(interp, "namespace"))) {
@@ -987,7 +987,7 @@
found = _class->roles;
}
else if (Parrot_str_equal(interp, what, CONST_STRING(interp, "flags"))) {
- found = pmc_new(interp, enum_class_Integer);
+ found = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, found,
(INTVAL)PObj_get_FLAGS(SELF));
}
@@ -1002,7 +1002,7 @@
if (found->vtable->base_type == enum_class_Hash) {
/* for Hash return values, create and return a shallow
* clone because the VTABLE_clone does a deep clone */
- PMC * const hash = pmc_new(interp, enum_class_Hash);
+ PMC * const hash = Parrot_pmc_new(interp, enum_class_Hash);
PMC * const iter = VTABLE_get_iter(interp, found);
while (VTABLE_get_bool(interp, iter)) {
STRING * const key = VTABLE_shift_string(interp, iter);
@@ -1029,7 +1029,7 @@
VTABLE PMC *inspect() {
/* Create a hash, then use inspect_str to get all of the data to
* fill it up with. */
- PMC * const metadata = pmc_new(interp, enum_class_Hash);
+ PMC * const metadata = Parrot_pmc_new(interp, enum_class_Hash);
STRING * const name_str = CONST_STRING(interp, "name");
STRING * const ns_str = CONST_STRING(interp, "namespace");
STRING * const attrs_str = CONST_STRING(interp, "attributes");
@@ -1191,7 +1191,7 @@
_class->instantiated = 1;
/* Create object. */
- object = pmc_new_noinit(interp, enum_class_Object);
+ object = Parrot_pmc_new_noinit(interp, enum_class_Object);
/* Set custom GC mark and destroy on the object. */
PObj_custom_mark_destroy_SETALL(object);
@@ -1207,7 +1207,7 @@
Parrot_Object_attributes * const objattr =
PMC_data_typed(object, Parrot_Object_attributes *);
objattr->_class = SELF;
- objattr->attrib_store = pmc_new(interp, enum_class_ResizablePMCArray);
+ objattr->attrib_store = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
}
if (!PMC_IS_NULL(init)) {
@@ -1537,7 +1537,7 @@
This is just a temporary hack. Type ID numbers shouldn't be externally
visible to the average PIR user. However, we need this for now to interface
-with functions like pmc_new and pmc_reuse, which take type ID numbers still.
+with functions like Parrot_pmc_new and pmc_reuse, which take type ID numbers still.
=cut
@@ -1563,7 +1563,7 @@
/* Recalculate full MRO from thawed parents */
_class->all_parents = Parrot_ComputeMRO_C3(interp, SELF);
- _class->parent_overrides = pmc_new(interp, enum_class_Hash);
+ _class->parent_overrides = Parrot_pmc_new(interp, enum_class_Hash);
/* Rebuild attribute index from thawed attribute metadata */
build_attrib_index(interp, SELF);
@@ -1591,7 +1591,7 @@
if (has_name) {
/* We'll build a hash just containing the name, then give this to
* init_class_from_hash - saves some code duplication. */
- PMC * const naming_hash = pmc_new(interp, enum_class_Hash);
+ PMC * const naming_hash = Parrot_pmc_new(interp, enum_class_Hash);
STRING * const name_str = CONST_STRING(interp, "name");
VTABLE_set_string_keyed_str(interp, naming_hash, name_str, name);
Modified: branches/ops_pct/src/pmc/codestring.pmc
==============================================================================
--- branches/ops_pct/src/pmc/codestring.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/codestring.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -189,7 +189,7 @@
INTVAL eos;
INTVAL jpos;
- linepos = pmc_new(INTERP, enum_class_ResizableIntegerArray);
+ linepos = Parrot_pmc_new(INTERP, enum_class_ResizableIntegerArray);
/* get the string itself */
GET_ATTR_str_val(INTERP, SELF, str);
eos = Parrot_str_byte_length(INTERP, str);
Modified: branches/ops_pct/src/pmc/complex.pmc
==============================================================================
--- branches/ops_pct/src/pmc/complex.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/complex.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -234,7 +234,7 @@
*/
VTABLE opcode_t *invoke(void *next) {
const int argcP = REG_INT(interp, 3);
- PMC * const res = pmc_new(INTERP, enum_class_Complex);
+ PMC * const res = Parrot_pmc_new(INTERP, enum_class_Complex);
if (argcP == 1) {
PMC * const arg = REG_PMC(interp, 5);
@@ -316,7 +316,7 @@
}
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
@@ -436,7 +436,7 @@
}
VTABLE PMC *get_pmc_keyed_str(STRING *key) {
- PMC * const ret = pmc_new(INTERP, enum_class_Float);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_Float);
const FLOATVAL val = SELF.get_number_keyed_str(key);
VTABLE_set_number_native(INTERP, ret, val);
return ret;
@@ -453,7 +453,7 @@
*/
VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
- PMC * const ret = pmc_new(INTERP, enum_class_Float);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_Float);
const FLOATVAL val = SELF.get_number_keyed_int(key);
VTABLE_set_number_native(INTERP, ret, val);
return ret;
@@ -635,7 +635,7 @@
MULTI PMC *add(Complex value, PMC *dest) {
FLOATVAL self_re, self_im, val_re, val_im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, self_re);
GET_ATTR_im(INTERP, SELF, self_im);
@@ -651,7 +651,7 @@
MULTI PMC *add(DEFAULT value, PMC *dest) {
FLOATVAL re, im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -667,7 +667,7 @@
VTABLE PMC *add_float(FLOATVAL value, PMC *dest) {
FLOATVAL re, im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -724,7 +724,7 @@
MULTI PMC *subtract(Complex value, PMC *dest) {
FLOATVAL self_re, self_im, val_re, val_im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, self_re);
GET_ATTR_im(INTERP, SELF, self_im);
@@ -740,7 +740,7 @@
MULTI PMC *subtract(DEFAULT value, PMC *dest) {
FLOATVAL re, im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -756,7 +756,7 @@
VTABLE PMC *subtract_float(FLOATVAL value, PMC *dest) {
FLOATVAL re, im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -827,7 +827,7 @@
MULTI PMC *multiply(Complex value, PMC *dest) {
FLOATVAL a, b, c, d;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, a);
GET_ATTR_im(INTERP, SELF, b);
@@ -841,7 +841,7 @@
MULTI PMC *multiply(DEFAULT value, PMC *dest) {
FLOATVAL re, im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -857,7 +857,7 @@
VTABLE PMC *multiply_float(FLOATVAL value, PMC *dest) {
FLOATVAL re, im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -940,7 +940,7 @@
FLOATVAL self_re, self_im, val_re, val_im;
complex_check_divide_zero(INTERP, value);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, self_re);
GET_ATTR_im(INTERP, SELF, self_im);
@@ -970,7 +970,7 @@
FLOATVAL re, im;
const FLOATVAL d = VTABLE_get_number(INTERP, value);
float_check_divide_zero(INTERP, d);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -984,7 +984,7 @@
VTABLE PMC *divide_int(INTVAL value, PMC *dest) {
FLOATVAL re, im;
int_check_divide_zero(INTERP, value);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -998,7 +998,7 @@
VTABLE PMC *divide_float(FLOATVAL value, PMC *dest) {
FLOATVAL re, im;
float_check_divide_zero(INTERP, value);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1085,7 +1085,7 @@
VTABLE PMC *neg(PMC *dest) {
FLOATVAL re, im;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1164,7 +1164,7 @@
GET_ATTR_im(INTERP, SELF, im);
d = sqrt(re*re + im*im);
- dest = pmc_new(INTERP,
+ dest = Parrot_pmc_new(INTERP,
Parrot_get_ctx_HLL_type(INTERP, enum_class_Float));
VTABLE_set_number_native(INTERP, dest, d);
@@ -1176,7 +1176,7 @@
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
d = sqrt(re*re + im*im);
- pmc_reuse(INTERP, SELF, enum_class_Float, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Float, 0);
VTABLE_set_number_native(INTERP, SELF, d);
}
@@ -1202,7 +1202,7 @@
*/
METHOD ln() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im, result_re, result_im;
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1236,7 +1236,7 @@
*/
METHOD exp() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im, f;
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1290,7 +1290,7 @@
*/
METHOD sin() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im, result_re, result_im;
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1320,7 +1320,7 @@
}
METHOD cos() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im, result_re, result_im;
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1345,8 +1345,8 @@
}
METHOD tan() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
(PMC *d) = PCCINVOKE(INTERP, SELF, "sin");
(PMC *e) = PCCINVOKE(INTERP, SELF, "cos");
@@ -1357,8 +1357,8 @@
}
METHOD cot() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
(PMC *d) = PCCINVOKE(INTERP, SELF, "cos");
(PMC *e) = PCCINVOKE(INTERP, SELF, "sin");
@@ -1368,8 +1368,8 @@
}
METHOD sec() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_re(INTERP, d, 1.0);
SET_ATTR_im(INTERP, d, 0.0);
(PMC *e) = PCCINVOKE(INTERP, SELF, "cos");
@@ -1380,8 +1380,8 @@
}
METHOD csc() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_re(INTERP, d, 1.0);
SET_ATTR_im(INTERP, d, 0.0);
@@ -1428,8 +1428,8 @@
METHOD asin() {
FLOATVAL d_re, d_im, e_re, e_im, self_re, self_im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, self_re);
GET_ATTR_im(INTERP, SELF, self_im);
@@ -1456,8 +1456,8 @@
METHOD acos() {
FLOATVAL d_re, d_im, e_re, e_im, self_re, self_im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, self_re);
GET_ATTR_im(INTERP, SELF, self_im);
@@ -1483,8 +1483,8 @@
}
METHOD atan() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im, d_re, d_im;
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1507,7 +1507,7 @@
}
METHOD acot() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *e;
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
@@ -1521,7 +1521,7 @@
}
METHOD acsc() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *e;
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
@@ -1535,7 +1535,7 @@
}
METHOD asec() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *e;
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
@@ -1569,7 +1569,7 @@
*/
METHOD sinh() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1581,7 +1581,7 @@
}
METHOD cosh() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1598,8 +1598,8 @@
}
METHOD tanh() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
(PMC *d) = PCCINVOKE(INTERP, SELF, "sinh");
(PMC *e) = PCCINVOKE(INTERP, SELF, "cosh");
@@ -1611,7 +1611,7 @@
METHOD coth() {
FLOATVAL re, im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
(PMC *d) = PCCINVOKE(INTERP, SELF, "tanh");
GET_ATTR_re(INTERP, d, re);
@@ -1625,7 +1625,7 @@
METHOD csch() {
FLOATVAL re, im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
(PMC *d) = PCCINVOKE(INTERP, SELF, "sinh");
GET_ATTR_re(INTERP, d, re);
@@ -1639,7 +1639,7 @@
METHOD sech() {
FLOATVAL re, im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
(PMC *d) = PCCINVOKE(INTERP, SELF, "cosh");
GET_ATTR_re(INTERP, d, re);
@@ -1681,8 +1681,8 @@
METHOD asinh() {
FLOATVAL re, im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1700,8 +1700,8 @@
METHOD acosh() {
FLOATVAL re, im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
(PMC *d) = PCCINVOKE(INTERP, SELF, "acos");
GET_ATTR_re(INTERP, d, re);
@@ -1714,8 +1714,8 @@
METHOD atanh() {
FLOATVAL re, im;
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC * const e = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const e = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
GET_ATTR_re(INTERP, SELF, re);
GET_ATTR_im(INTERP, SELF, im);
@@ -1732,7 +1732,7 @@
}
METHOD acoth() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *e;
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
@@ -1746,7 +1746,7 @@
}
METHOD acsch() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *e;
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
@@ -1760,7 +1760,7 @@
}
METHOD asech() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *e;
FLOATVAL re, im;
GET_ATTR_re(INTERP, SELF, re);
@@ -1775,9 +1775,12 @@
/*
-=item C<PMC *pow(PMC *value, PMC *dest)>
+=item C<METHOD PMC *pow(PMC *value)>
-Return SELF to the C<value>th power and return result in C<dest>.
+Raise SELF to the power of value. Replacement for the old pow() vtable, which
+was deleted.
+
+TODO: Requires testing
=item C<METHOD PMC *sqrt()>
@@ -1792,42 +1795,23 @@
*/
- MULTI PMC *pow(Complex value, PMC *dest) {
- PMC *l = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ METHOD pow(PMC * value) {
+ PMC *l = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *log;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
+ PMC *dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
Parrot_pcc_invoke_method_from_c_args(interp, SELF, CONST_STRING(interp, "ln"),
"->P", &log);
- l = Parrot_Complex_multi_multiply_Complex_PMC(INTERP,
- log, value, l);
+ l = VTABLE_multiply(INTERP, log, value, l);
Parrot_pcc_invoke_method_from_c_args(interp, l, CONST_STRING(interp, "exp"),
"->P", &dest);
-
- return dest;
- }
-
- MULTI PMC *pow(DEFAULT value, PMC *dest) {
- PMC *l = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC *log;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- Parrot_pcc_invoke_method_from_c_args(interp, SELF, CONST_STRING(interp, "ln"),
- "->P", &log);
- l = Parrot_Complex_multi_multiply_DEFAULT_PMC(INTERP, log, value, l);
- Parrot_pcc_invoke_method_from_c_args(interp, l, CONST_STRING(interp, "exp"),
- "->P", &dest);
-
- return dest;
+ RETURN(PMC *dest);
}
METHOD sqrt() {
- PMC * const result = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const result = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
const FLOATVAL absval = SELF.get_number();
FLOATVAL sx, sy, rx, ry;
GET_ATTR_re(INTERP, SELF, sx);
Modified: branches/ops_pct/src/pmc/continuation.pmc
==============================================================================
--- branches/ops_pct/src/pmc/continuation.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/continuation.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -157,7 +157,7 @@
VTABLE PMC *clone() {
/* Start to prepare for subclassable continuations */
- return pmc_new_init(INTERP, SELF->vtable->base_type, SELF);
+ return Parrot_pmc_new_init(INTERP, SELF->vtable->base_type, SELF);
}
/*
Modified: branches/ops_pct/src/pmc/coroutine.pmc
==============================================================================
--- branches/ops_pct/src/pmc/coroutine.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/coroutine.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -97,7 +97,7 @@
VTABLE PMC *clone() {
STRING *name;
- PMC * const ret = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const ret = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
PObj_custom_mark_destroy_SETALL(ret);
@@ -164,7 +164,7 @@
/* first time set current sub, cont, object */
if (PMC_IS_NULL(ctx))
- ctx = pmc_new(INTERP, enum_class_CallContext);
+ ctx = Parrot_pmc_new(INTERP, enum_class_CallContext);
CURRENT_CONTEXT(INTERP) = ctx;
@@ -189,7 +189,7 @@
/* create pad if needed */
if (!PMC_IS_NULL(lex_info)) {
const INTVAL hlltype = Parrot_get_ctx_HLL_type(INTERP, enum_class_LexPad);
- PMC * const lexpad = pmc_new_init(INTERP, hlltype, lex_info);
+ PMC * const lexpad = Parrot_pmc_new_init(INTERP, hlltype, lex_info);
Parrot_pcc_set_lex_pad(INTERP, ctx, lexpad);
VTABLE_set_pointer(INTERP, lexpad, ctx);
}
Modified: branches/ops_pct/src/pmc/cpointer.pmc
==============================================================================
--- branches/ops_pct/src/pmc/cpointer.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/cpointer.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -99,7 +99,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new_noinit(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new_noinit(INTERP, SELF->vtable->base_type);
void *ptr;
STRING *sig;
Modified: branches/ops_pct/src/pmc/default.pmc
==============================================================================
--- branches/ops_pct/src/pmc/default.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/default.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -148,7 +148,7 @@
static void
propagate_std_props(PARROT_INTERP, PMC *self, PMC *prop_hash) {
if (self->vtable->flags & (VTABLE_IS_CONST_FLAG | VTABLE_IS_READONLY_FLAG)){
- PMC * const pmc_true = pmc_new(interp, enum_class_Integer);
+ PMC * const pmc_true = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, pmc_true, 1);
VTABLE_set_pmc_keyed_str(interp, prop_hash, CONST_STRING(interp, "_ro"), pmc_true);
}
@@ -189,7 +189,7 @@
check_get_std_props(PARROT_INTERP, PMC *self, STRING *key) {
if ((self->vtable->flags & (VTABLE_IS_CONST_FLAG | VTABLE_IS_READONLY_FLAG))
&& Parrot_str_equal(interp, key, CONST_STRING(interp, "_ro"))) {
- PMC * const ret_val = pmc_new(interp, enum_class_Integer);
+ PMC * const ret_val = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, ret_val, 1);
return ret_val;
}
@@ -214,7 +214,7 @@
make_prop_hash(PARROT_INTERP, PMC *self) {
PMC *prop;
- PMC_metadata(self) = prop = pmc_new(interp, enum_class_Hash);
+ PMC_metadata(self) = prop = Parrot_pmc_new(interp, enum_class_Hash);
propagate_std_props(interp, self, prop);
return prop;
}
@@ -332,16 +332,16 @@
VTABLE PMC *instantiate(PMC *init) {
const INTVAL type = VTABLE_type(INTERP, SELF);
- /* Ensure no looping, as pmc_new calls the instantiate vtable entry for
+ /* Ensure no looping, as Parrot_pmc_new calls the instantiate vtable entry for
* classes. */
if (PObj_is_class_TEST(SELF))
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"All high-level classes should override instantiate");
if (!PMC_IS_NULL(init))
- return pmc_new_init(INTERP, type, init);
+ return Parrot_pmc_new_init(INTERP, type, init);
- return pmc_new(INTERP, type);
+ return Parrot_pmc_new(INTERP, type);
}
/*
@@ -612,7 +612,7 @@
STRING * const undef = CONST_STRING(INTERP, "Undef");
if (VTABLE_isa(INTERP, value, undef))
- pmc_reuse(INTERP, SELF, value->vtable->base_type, 0);
+ Parrot_pmc_reuse(INTERP, SELF, value->vtable->base_type, 0);
else
SELF.set_pmc(value);
}
@@ -632,7 +632,7 @@
*/
VTABLE void morph(PMC* type) {
- pmc_reuse(INTERP, SELF, VTABLE_get_integer(interp, type), 0);
+ Parrot_pmc_reuse(INTERP, SELF, VTABLE_get_integer(interp, type), 0);
}
/*
@@ -936,7 +936,7 @@
VTABLE PMC *inspect_str(STRING *name) {
if (Parrot_str_equal(interp, name, CONST_STRING(interp, "flags"))) {
- PMC *found = pmc_new(interp, enum_class_Integer);
+ PMC *found = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, found,
(INTVAL)PObj_get_FLAGS(SELF));
return found;
@@ -960,7 +960,7 @@
*/
VTABLE PMC *inspect() {
- PMC *metadata = pmc_new(interp, enum_class_Hash);
+ PMC *metadata = Parrot_pmc_new(interp, enum_class_Hash);
STRING * const flags_str = CONST_STRING(interp, "flags");
VTABLE_set_pmc_keyed_str(interp, metadata, flags_str,
@@ -987,9 +987,9 @@
if (PMC_IS_NULL(_class)) {
INTVAL type = VTABLE_type(interp, SELF);
- PMC *type_num = pmc_new(interp, enum_class_Integer);
+ PMC *type_num = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, type_num, type);
- return pmc_new_init(interp, enum_class_PMCProxy, type_num);
+ return Parrot_pmc_new_init(interp, enum_class_PMCProxy, type_num);
}
return _class;
@@ -1158,7 +1158,7 @@
*/
VTABLE PMC *add_float(FLOATVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() + value);
@@ -1692,678 +1692,6 @@
/*
-=item C<PMC *pow(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'pow'.
-
-=cut
-
-*/
-
- VTABLE PMC *pow(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "pow", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *pow_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'pow_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "pow_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *pow_float(FLOATVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'pow_float'.
-
-=cut
-
-*/
-
- VTABLE PMC *pow_float(FLOATVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "pow_float", "PNP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_pow(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_pow'.
-
-=cut
-
-*/
-
- VTABLE void i_pow(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_pow", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_pow_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_pow_int'.
-
-=cut
-
-*/
-
- VTABLE void i_pow_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_pow_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<void i_pow_float(FLOATVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_pow_float'.
-
-=cut
-
-*/
-
- VTABLE void i_pow_float(FLOATVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_pow_float", "PN", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_or(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_or'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_or(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_or", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_or_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_or_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_or_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_or_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_or(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_or'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_or(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_or", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_or_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_or_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_or_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_or_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_and(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_and'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_and(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_and", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_and_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_and_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_and_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_and_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_and(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_and'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_and(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_and", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_and_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_and_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_and_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_and_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_xor(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xor'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xor(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xor", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_xor_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xor_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xor_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xor_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_xor(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xor'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xor(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xor", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_xor_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xor_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xor_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xor_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_ors(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ors'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ors(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ors", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_ors_str(STRING *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ors_str'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ors_str(STRING *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ors_str", "PSP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_ors(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ors'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ors(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ors", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_ors_str(STRING *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ors_str'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ors_str(STRING *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ors_str", "PS", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_ands(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ands'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ands(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ands", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_ands_str(STRING *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ands_str'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ands_str(STRING *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ands_str", "PSP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_ands(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ands'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ands(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ands", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_ands_str(STRING *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ands_str'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ands_str(STRING *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ands_str", "PS", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_xors(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xors'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xors(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xors", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_xors_str(STRING *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xors_str'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xors_str(STRING *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xors_str", "PSP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_xors(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xors'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xors(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xors", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_xors_str(STRING *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xors_str'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xors_str(STRING *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xors_str", "PS", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_shl(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shl'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shl(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shl", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_shl_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shl_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shl_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shl_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_shl(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shl'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shl(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shl", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_shl_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shl_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shl_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shl_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_shr(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shr'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shr(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shr", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_shr_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shr_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shr_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shr_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_shr(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shr'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shr(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shr", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_shr_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shr_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shr_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shr_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_lsr(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_lsr'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_lsr(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_lsr", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_lsr_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_lsr_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_lsr_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_lsr_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_lsr(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_lsr'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_lsr(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_lsr", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_lsr_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_lsr_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_lsr_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_lsr_int", "PI", SELF, value);
- }
-
-/*
-
=item C<INTVAL cmp(PMC *value)>
Default fallback. Performs a multiple dispatch call for 'cmp'.
Modified: branches/ops_pct/src/pmc/env.pmc
==============================================================================
--- branches/ops_pct/src/pmc/env.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/env.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -74,7 +74,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
}
/*
@@ -215,7 +215,7 @@
if (!retval)
retval = string_from_literal(INTERP, "");
- return_pmc = pmc_new(INTERP, enum_class_String);
+ return_pmc = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_set_string_native(INTERP, return_pmc, retval);
return return_pmc;
Modified: branches/ops_pct/src/pmc/exception.pmc
==============================================================================
--- branches/ops_pct/src/pmc/exception.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/exception.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -541,30 +541,30 @@
if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
INTVAL type;
GET_ATTR_type(interp, SELF, type);
- value = pmc_new(interp, enum_class_Integer);
+ value = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, value, type);
}
else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "severity"))) {
INTVAL severity;
GET_ATTR_severity(interp, SELF, severity);
- value = pmc_new(interp, enum_class_Integer);
+ value = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, value, severity);
}
else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "exit_code"))) {
INTVAL exit_code;
GET_ATTR_exit_code(interp, SELF, exit_code);
- value = pmc_new(interp, enum_class_Integer);
+ value = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, value, exit_code);
}
else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handled"))) {
INTVAL handled;
GET_ATTR_handled(interp, SELF, handled);
- value = pmc_new(interp, enum_class_Integer);
+ value = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, value, handled);
}
else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "message"))) {
STRING *message = SELF.get_string();
- value = pmc_new(interp, enum_class_String);
+ value = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, value, message);
}
else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "payload"))) {
@@ -709,7 +709,7 @@
/* If we didn't have a key specified and we found no annotations to
* return, should return an empty hash. */
if (!have_name && PMC_IS_NULL(result))
- result = pmc_new(interp, enum_class_Hash);
+ result = Parrot_pmc_new(interp, enum_class_Hash);
RETURN(PMC *result);
}
Modified: branches/ops_pct/src/pmc/exporter.pmc
==============================================================================
--- branches/ops_pct/src/pmc/exporter.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/exporter.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -231,7 +231,7 @@
if (got_glb) {
STRING * const s_empty = CONST_STRING(interp, "");
- PMC *temp_globals = pmc_new(interp, enum_class_Hash);
+ PMC *temp_globals = Parrot_pmc_new(interp, enum_class_Hash);
if (PMC_IS_NULL(glb)) {
temp_globals = PMCNULL;
Modified: branches/ops_pct/src/pmc/filehandle.pmc
==============================================================================
--- branches/ops_pct/src/pmc/filehandle.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/filehandle.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -153,7 +153,7 @@
}
if (data_struct->buffer_start)
- mem_sys_free(data_struct->buffer_start);
+ mem_gc_free(INTERP, data_struct->buffer_start);
}
}
@@ -374,7 +374,7 @@
add_history(r);
string_result = Parrot_str_new(INTERP, r, 0);
- mem_sys_free(r);
+ mem_internal_free(r);
}
#else
if (got_prompt)
Modified: branches/ops_pct/src/pmc/fixedbooleanarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/fixedbooleanarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/fixedbooleanarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -74,7 +74,7 @@
unsigned char *bit_array;
GET_ATTR_bit_array(INTERP, SELF, bit_array);
if (bit_array)
- mem_sys_free(bit_array);
+ mem_gc_free(INTERP, bit_array);
}
/*
@@ -90,7 +90,7 @@
VTABLE PMC *clone() {
unsigned char * my_bit_array, * clone_bit_array;
UINTVAL resize_threshold, size;
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
GET_ATTR_bit_array(INTERP, SELF, my_bit_array);
GET_ATTR_size(INTERP, SELF, size);
@@ -102,7 +102,7 @@
SET_ATTR_size(INTERP, dest, size);
SET_ATTR_resize_threshold(INTERP, dest, resize_threshold);
- clone_bit_array = (unsigned char*)mem_sys_allocate(size_in_bytes);
+ clone_bit_array = mem_gc_allocate_n_typed(INTERP, size_in_bytes, unsigned char);
mem_sys_memcopy(clone_bit_array, my_bit_array, size_in_bytes);
SET_ATTR_bit_array(INTERP, dest, clone_bit_array);
@@ -296,7 +296,7 @@
*/
VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
- PMC * const ret = pmc_new(INTERP, enum_class_Boolean);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_Boolean);
const INTVAL val = SELF.get_integer_keyed_int(key);
VTABLE_set_integer_native(INTERP, ret, val);
return ret;
@@ -330,6 +330,7 @@
VTABLE void set_integer_native(INTVAL size) {
const size_t size_in_bytes = get_size_in_bytes(size);
UINTVAL old_size;
+ unsigned char *bit_array;
GET_ATTR_size(INTERP, SELF, old_size);
@@ -339,8 +340,9 @@
SET_ATTR_size(INTERP, SELF, size);
SET_ATTR_resize_threshold(INTERP, SELF, size_in_bytes * BITS_PER_CHAR);
- SET_ATTR_bit_array(INTERP, SELF,
- (unsigned char*)mem_sys_allocate_zeroed(size_in_bytes));
+ bit_array = mem_gc_allocate_n_typed(INTERP, size_in_bytes, unsigned char);
+ memset(bit_array, 0, size_in_bytes);
+ SET_ATTR_bit_array(INTERP, SELF, bit_array);
}
/*
@@ -427,7 +429,7 @@
VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
INTVAL tempInt;
- PMC * const tempPMC = pmc_new(INTERP, enum_class_Boolean);
+ PMC * const tempPMC = Parrot_pmc_new(INTERP, enum_class_Boolean);
VTABLE_set_string_native(INTERP, tempPMC, value);
tempInt = VTABLE_get_integer(INTERP, tempPMC);
@@ -493,7 +495,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
}
Modified: branches/ops_pct/src/pmc/fixedfloatarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/fixedfloatarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/fixedfloatarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -43,7 +43,7 @@
FLOATVAL *float_array;
GET_ATTR_float_array(INTERP, SELF, float_array);
if (float_array)
- mem_sys_free(float_array);
+ mem_gc_free(INTERP, float_array);
}
/*
@@ -60,7 +60,7 @@
INTVAL size;
FLOATVAL *self_float_array, *dest_float_array;
size_t mem_size;
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
GET_ATTR_float_array(INTERP, SELF, self_float_array);
if (!self_float_array)
@@ -70,7 +70,7 @@
SET_ATTR_size(INTERP, dest, size);
mem_size = size * sizeof (FLOATVAL);
- dest_float_array = (FLOATVAL*)mem_sys_allocate(mem_size);
+ 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);
@@ -89,7 +89,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
}
/*
@@ -248,7 +248,7 @@
*/
VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
- PMC * const ret = pmc_new(INTERP, enum_class_Float);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_Float);
const FLOATVAL val = SELF.get_number_keyed_int(key);
VTABLE_set_number_native(INTERP, ret, val);
@@ -289,7 +289,7 @@
SET_ATTR_size(INTERP, SELF, new_size);
SET_ATTR_float_array(INTERP, SELF,
- mem_allocate_n_typed(new_size, FLOATVAL));
+ mem_gc_allocate_n_typed(INTERP, new_size, FLOATVAL));
PObj_custom_destroy_SET(SELF);
}
@@ -374,7 +374,7 @@
VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
FLOATVAL tempNum;
- PMC * const tempPMC = pmc_new(INTERP, enum_class_Float);
+ PMC * const tempPMC = Parrot_pmc_new(INTERP, enum_class_Float);
VTABLE_set_string_native(INTERP, tempPMC, value);
tempNum = VTABLE_get_number(INTERP, tempPMC);
Modified: branches/ops_pct/src/pmc/fixedintegerarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/fixedintegerarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/fixedintegerarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -57,7 +57,7 @@
INTVAL* int_array;
GET_ATTR_int_array(INTERP, SELF, int_array);
if (int_array)
- mem_sys_free(int_array);
+ Parrot_gc_free_memory_chunk(INTERP, int_array);
}
/*
@@ -81,8 +81,8 @@
INTVAL * int_array;
PMC * const dest =
PObj_constant_TEST(SELF)
- ? constant_pmc_new(INTERP, SELF->vtable->base_type)
- : pmc_new(INTERP, SELF->vtable->base_type);
+ ? Parrot_pmc_new_constant(INTERP, SELF->vtable->base_type)
+ : Parrot_pmc_new(INTERP, SELF->vtable->base_type);
GET_ATTR_int_array(INTERP, SELF, int_array);
@@ -92,7 +92,7 @@
GET_ATTR_size(INTERP, SELF, size);
- dest_int_array = mem_allocate_n_typed(size, INTVAL);
+ dest_int_array = mem_gc_allocate_n_typed(INTERP, size, INTVAL);
SET_ATTR_size(INTERP, dest, size);
SET_ATTR_int_array(INTERP, dest, dest_int_array);
@@ -294,7 +294,7 @@
*/
VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
- PMC * const ret = pmc_new(INTERP, enum_class_Integer);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_Integer);
const INTVAL val = SELF.get_integer_keyed_int(key);
VTABLE_set_integer_native(INTERP, ret, val);
return ret;
@@ -338,7 +338,7 @@
SET_ATTR_size(INTERP, SELF, size);
GET_ATTR_int_array(INTERP, SELF, int_array);
SET_ATTR_int_array(INTERP, SELF,
- mem_realloc_n_typed(int_array, size, INTVAL));
+ mem_gc_realloc_n_typed(INTERP, int_array, size, INTVAL));
PObj_custom_destroy_SET(SELF);
}
@@ -422,10 +422,10 @@
VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
INTVAL tempInt;
- PMC * const tempPMC = temporary_pmc_new(INTERP, enum_class_Integer);
+ PMC * const tempPMC = Parrot_pmc_new_temporary(INTERP, enum_class_Integer);
VTABLE_set_string_native(INTERP, tempPMC, value);
tempInt = VTABLE_get_integer(INTERP, tempPMC);
- temporary_pmc_free(interp, tempPMC);
+ Parrot_pmc_free_temporary(interp, tempPMC);
SELF.set_integer_keyed_int(key, tempInt);
}
@@ -532,7 +532,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
}
/*
Modified: branches/ops_pct/src/pmc/fixedpmcarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/fixedpmcarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/fixedpmcarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -88,7 +88,7 @@
VTABLE void destroy() {
if (PMC_array(SELF))
- mem_sys_free(PMC_array(SELF));
+ mem_gc_free(INTERP, PMC_array(SELF));
}
/*
@@ -102,12 +102,12 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
const INTVAL size = PMC_size(SELF);
if (size) {
PMC_size(dest) = size;
- PMC_array(dest) = mem_allocate_n_typed(size, PMC *);
+ PMC_array(dest) = mem_gc_allocate_n_zeroed_typed(INTERP, size, PMC *);
mem_copy_n_typed(PMC_array(dest), PMC_array(SELF), size, PMC *);
PObj_custom_mark_destroy_SETALL(dest);
}
@@ -346,7 +346,7 @@
box = SELF.get_pmc_keyed_int(k);
if (box == NULL)
- box = pmc_new(INTERP, enum_class_Undef);
+ box = Parrot_pmc_new(INTERP, enum_class_Undef);
return VTABLE_get_pmc_keyed(INTERP, box, nextkey);
}
@@ -377,7 +377,7 @@
_("FixedPMCArray: Cannot set array size to a negative number"));
PMC_size(SELF) = size;
- data = mem_allocate_n_typed(size, PMC *);
+ data = mem_gc_allocate_n_zeroed_typed(INTERP, size, PMC *);
for (i = 0; i < size; i++)
data[i] = PMCNULL;
@@ -397,10 +397,10 @@
_("Can't set self from this type"));
if (PMC_array(SELF))
- mem_sys_free(PMC_array(SELF));
+ mem_gc_free(INTERP, PMC_array(SELF));
size = PMC_size(SELF) = VTABLE_elements(INTERP, value);
- PMC_array(SELF) = mem_allocate_n_zeroed_typed(size, PMC *);
+ PMC_array(SELF) = mem_gc_allocate_n_zeroed_typed(INTERP, size, PMC *);
for (i = 0; i < size; i++)
(PMC_array(SELF))[i] = VTABLE_get_pmc_keyed_int(INTERP, value, i);
@@ -418,7 +418,7 @@
*/
VTABLE void set_integer_keyed_int(INTVAL key, INTVAL value) {
- PMC * const val = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const val = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_Integer));
VTABLE_set_integer_native(INTERP, val, value);
@@ -436,7 +436,7 @@
*/
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
- PMC * const val = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const val = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_Integer));
VTABLE_set_integer_native(INTERP, val, value);
@@ -457,7 +457,7 @@
*/
VTABLE void set_number_keyed_int(INTVAL key, FLOATVAL value) {
- PMC * const val = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const val = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_Float));
VTABLE_set_number_native(INTERP, val, value);
@@ -487,7 +487,7 @@
/* TT #1295: autovivify an Array and insert it in SELF */
if (!box)
- box = pmc_new(INTERP, SELF.type());
+ box = Parrot_pmc_new(INTERP, SELF.type());
VTABLE_set_number_keyed(INTERP, box, nextkey, value);
}
@@ -504,7 +504,7 @@
*/
VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
- PMC * const val = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const val = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_String));
VTABLE_set_string_native(INTERP, val, value);
@@ -523,7 +523,7 @@
*/
VTABLE void set_string_keyed(PMC *key, STRING *value) {
- PMC * const val = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const val = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_String));
VTABLE_set_string_native(INTERP, val, value);
@@ -575,7 +575,7 @@
/* TT #1295: autovivify an Array and insert it in SELF */
if (!box)
- box = pmc_new(INTERP, SELF.type());
+ box = Parrot_pmc_new(INTERP, SELF.type());
VTABLE_set_pmc_keyed(INTERP, box, nextkey, value);
}
@@ -632,7 +632,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
}
/*
Modified: branches/ops_pct/src/pmc/fixedstringarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/fixedstringarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/fixedstringarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -60,7 +60,7 @@
GET_ATTR_str_array(INTERP, SELF, str_array);
if (str_array)
- mem_sys_free(str_array);
+ mem_gc_free(INTERP, str_array);
}
/*
@@ -76,7 +76,7 @@
VTABLE PMC *clone() {
STRING **my_str_array, **dest_str_array;
- PMC *const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC *const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
GET_ATTR_str_array(INTERP, SELF, my_str_array);
@@ -87,7 +87,7 @@
GET_ATTR_size(INTERP, SELF, size);
mem_size = size * sizeof (STRING *);
- dest_str_array = mem_allocate_n_zeroed_typed(size, STRING *);
+ dest_str_array = mem_gc_allocate_n_zeroed_typed(INTERP, size, STRING *);
mem_sys_memcopy(dest_str_array, my_str_array, mem_size);
SET_ATTR_str_array(INTERP, dest, dest_str_array);
SET_ATTR_size(INTERP, dest, size);
@@ -150,7 +150,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
}
/*
@@ -198,7 +198,6 @@
return (FLOATVAL)e;
}
-
/*
=item C<INTVAL get_integer_keyed_int(INTVAL key)>
@@ -311,7 +310,7 @@
*/
VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
- PMC * const ret = pmc_new(INTERP, enum_class_String);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING * const val = SELF.get_string_keyed_int(key);
VTABLE_set_string_native(INTERP, ret, val);
@@ -356,7 +355,7 @@
SET_ATTR_size(INTERP, SELF, new_size);
SET_ATTR_str_array(INTERP, SELF,
- (STRING**)mem_sys_allocate_zeroed(new_size * sizeof (STRING*)));
+ mem_gc_allocate_n_zeroed_typed(INTERP, new_size, STRING*));
PObj_custom_mark_destroy_SETALL(SELF);
}
Modified: branches/ops_pct/src/pmc/float.pmc
==============================================================================
--- branches/ops_pct/src/pmc/float.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/float.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -47,7 +47,7 @@
VTABLE PMC *clone() {
FLOATVAL fv;
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
GET_ATTR_fv(INTERP, SELF, fv);
SET_ATTR_fv(INTERP, dest, fv);
return dest;
@@ -134,12 +134,12 @@
*/
VTABLE void set_integer_native(INTVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_Integer, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Integer, 0);
SELF.set_integer_native(value);
}
VTABLE void set_bool(INTVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_Boolean, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Boolean, 0);
SELF.set_bool(value);
}
@@ -170,7 +170,7 @@
*/
VTABLE void set_string_native(STRING *value) {
- pmc_reuse(INTERP, SELF, enum_class_String, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_String, 0);
SELF.set_string_native(value);
}
@@ -204,7 +204,7 @@
VTABLE PMC *neg(PMC *dest) {
const FLOATVAL a = -SELF.get_number();
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest, a);
return dest;
@@ -331,7 +331,7 @@
VTABLE PMC *absolute(PMC *dest) {
const FLOATVAL a = fabs(SELF.get_number());
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest, a);
return dest;
@@ -416,110 +416,110 @@
*/
METHOD acos() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, acos(SELF.get_number()));
RETURN(PMC *d);
}
METHOD cos() {
- PMC * const d = pmc_new(INTERP,
+ PMC * const d = Parrot_pmc_new(INTERP,
Parrot_get_ctx_HLL_type(INTERP, enum_class_Float));
SET_ATTR_fv(INTERP, d, cos(SELF.get_number()));
RETURN(PMC *d);
}
METHOD asec() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, acos(1.0 / SELF.get_number()));
RETURN(PMC *d);
}
METHOD asin() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, asin(SELF.get_number()));
RETURN(PMC *d);
}
METHOD atan() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, atan(SELF.get_number()));
RETURN(PMC *d);
}
METHOD atan2(PMC *val) {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, atan2(SELF.get_number(), VTABLE_get_number(INTERP, val)));
RETURN(PMC *d);
}
METHOD cosh() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, cosh(SELF.get_number()));
RETURN(PMC *d);
}
METHOD exp() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, exp(SELF.get_number()));
RETURN(PMC *d);
}
METHOD ln() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, log(SELF.get_number()));
RETURN(PMC *d);
}
METHOD log10() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, log10(SELF.get_number()));
RETURN(PMC *d);
}
METHOD log2() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, log(SELF.get_number()) / log(2.0));
RETURN(PMC *d);
}
METHOD sec() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, 1.0 / cos(SELF.get_number()));
RETURN(PMC *d);
}
METHOD sech() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, 1.0 / cosh(SELF.get_number()));
RETURN(PMC *d);
}
METHOD sin() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, sin(SELF.get_number()));
RETURN(PMC *d);
}
METHOD sinh() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, sinh(SELF.get_number()));
RETURN(PMC *d);
}
METHOD tan() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, tan(SELF.get_number()));
RETURN(PMC *d);
}
METHOD tanh() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, tanh(SELF.get_number()));
RETURN(PMC *d);
}
METHOD sqrt() {
- PMC * const d = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, sqrt(SELF.get_number()));
RETURN(PMC *d);
}
Modified: branches/ops_pct/src/pmc/handle.pmc
==============================================================================
--- branches/ops_pct/src/pmc/handle.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/handle.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -25,7 +25,7 @@
#include "parrot/parrot.h"
#include "../src/io/io_private.h"
-pmclass Handle provides Handle {
+pmclass Handle provides Handle manual_attrs {
/* TODO: Consider encapsulating PIOHANDLE as a PMC type, for subclassing */
ATTR PIOHANDLE os_handle; /* Low level OS descriptor */
Modified: branches/ops_pct/src/pmc/hash.pmc
==============================================================================
--- branches/ops_pct/src/pmc/hash.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/hash.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -106,7 +106,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
parrot_hash_clone(INTERP, (Hash *)SELF.get_pointer(),
(Hash *)VTABLE_get_pointer(INTERP, dest));
@@ -445,7 +445,7 @@
box = hash_value_to_pmc(INTERP, hash, b->value);
else {
/* autovivify an Hash */
- box = pmc_new(INTERP, SELF.type());
+ box = Parrot_pmc_new(INTERP, SELF.type());
parrot_hash_put(INTERP, hash, keystr,
hash_value_from_pmc(INTERP, hash, box));
}
@@ -625,7 +625,7 @@
box = hash_value_to_pmc(INTERP, hash, b->value);
else {
/* autovivify an Hash */
- box = pmc_new(INTERP, SELF.type());
+ box = Parrot_pmc_new(INTERP, SELF.type());
parrot_hash_put(INTERP, hash, keystr,
hash_value_from_pmc(INTERP, hash, box));
}
@@ -753,7 +753,7 @@
/* autovivify an Hash */
if (PMC_IS_NULL(box))
- box = pmc_new(INTERP, SELF.type());
+ box = Parrot_pmc_new(INTERP, SELF.type());
VTABLE_set_number_keyed(INTERP, box, nextkey, value);
}
@@ -799,7 +799,7 @@
box = hash_value_to_pmc(INTERP, hash, b->value);
else {
/* autovivify an Hash */
- box = pmc_new(INTERP, SELF.type());
+ box = Parrot_pmc_new(INTERP, SELF.type());
parrot_hash_put(INTERP, hash, keystr,
hash_value_from_pmc(INTERP, hash, box));
}
@@ -994,7 +994,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_HashIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_HashIterator, SELF);
}
/*
Modified: branches/ops_pct/src/pmc/hashiterator.pmc
==============================================================================
--- branches/ops_pct/src/pmc/hashiterator.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/hashiterator.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -229,7 +229,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
- ret = pmc_new(INTERP, enum_class_HashIteratorKey);
+ ret = Parrot_pmc_new(INTERP, enum_class_HashIteratorKey);
VTABLE_set_pointer_keyed_int(INTERP, ret, 0, attrs->parrot_hash);
VTABLE_set_pointer_keyed_int(INTERP, ret, 1, attrs->bucket);
@@ -246,7 +246,7 @@
VTABLE STRING* shift_string() {
PMC * const key = SELF.shift_pmc();
STRING * const ret = VTABLE_get_string(INTERP, key);
- temporary_pmc_free(INTERP, key);
+ Parrot_pmc_free_temporary(INTERP, key);
return ret;
}
Modified: branches/ops_pct/src/pmc/imageio.pmc
==============================================================================
--- branches/ops_pct/src/pmc/imageio.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/imageio.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -10,6 +10,8 @@
Freezes and thaws other PMCs.
+=cut
+
*/
#define GROW_TO_16_BYTE_BOUNDARY(size) ((size) + ((size) % 16 ? 16 - (size) % 16 : 0))
@@ -76,7 +78,7 @@
len = FREEZE_BYTES_PER_ITEM;
PARROT_IMAGEIO(info)->buffer =
- (Buffer *)Parrot_gc_new_bufferlike_header(interp, sizeof (Buffer));
+ Parrot_gc_new_bufferlike_header(interp, sizeof (Buffer));
Parrot_gc_allocate_buffer_storage_aligned(interp,
PARROT_IMAGEIO(info)->buffer, len);
SET_VISIT_CURSOR(info, (char *)Buffer_bufstart(PARROT_IMAGEIO(info)->buffer));
@@ -123,12 +125,12 @@
PARROT_INLINE
static PMC*
id_list_get(PARROT_INTERP, PMC *io, UINTVAL id) {
- return VTABLE_get_pmc_keyed_int(interp, PARROT_IMAGEIO(io)->id_list, id);
+ return VTABLE_get_pmc_keyed_int(interp, PARROT_IMAGEIO(io)->todo, id - 1);
}
PARROT_INLINE
-static void
-visit_todo_list_thaw(PARROT_INTERP, SHIM(PMC* pmc_not_used), ARGIN(PMC* info))
+static PMC *
+visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info))
{
UINTVAL n = VTABLE_shift_integer(interp, info);
UINTVAL id = PackID_get_PMCID(n);
@@ -148,15 +150,12 @@
if (type <= 0 || type > interp->n_vtable_max)
Parrot_ex_throw_from_c_args(interp, NULL, 1, "Unknown PMC type to thaw %d", type);
- pmc = pmc_new_noinit(interp, type);
+ pmc = Parrot_pmc_new_noinit(interp, type);
VTABLE_thaw(interp, pmc, info);
{
PMC * const todo = PARROT_IMAGEIO(info)->todo;
- PMC * const id_list = PARROT_IMAGEIO(info)->id_list;
- VTABLE_set_pmc_keyed_int(interp, id_list, id, pmc);
- /* remember nested aggregates depth first */
- VTABLE_push_pmc(interp, todo, pmc);
+ VTABLE_set_pmc_keyed_int(interp, todo, id - 1, pmc);
}
}
break;
@@ -165,7 +164,7 @@
break;
}
- *(PARROT_IMAGEIO(info)->thaw_ptr) = pmc;
+ return pmc;
}
static void
@@ -207,65 +206,14 @@
}
}
-static void
-visit_loop_todo_list(PARROT_INTERP, PMC *current, PMC *info)
-{
- PMC * const todo = PARROT_IMAGEIO(info)->todo;
- const int thawing = PARROT_IMAGEIO(info)->what == VISIT_THAW_NORMAL;
-
- (PARROT_IMAGEIO(info)->visit_pmc_now)(interp, current, info);
-
- /* can't cache upper limit, visit may append items */
- while (VTABLE_get_bool(interp, todo)) {
- current = VTABLE_pop_pmc(interp, todo);
- if (!current)
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "NULL current PMC in visit_loop_todo_list");
-
- PARROT_ASSERT(current->vtable);
-
- VTABLE_visit(interp, current, info);
-
- VISIT_PMC(interp, info, PMC_metadata(current));
- }
-
- if (thawing)
- /* we're done reading the image */
- PARROT_ASSERT(!INFO_HAS_DATA(info));
-
- if (thawing) {
- /* on thawing call thawfinish for each processed PMC */
- const INTVAL n = VTABLE_elements(interp, PARROT_IMAGEIO(info)->id_list);
- int i;
-
- /*
- * Thaw in reverse order. We have to fully thaw younger PMCs
- * before use them in older.
- *
- * XXX There are no younger or older pmcs in a directed graph
- * that allows cycles. Any code that requires a specific
- * order here is likely broken.
- */
- for (i = n-1; i >= 0; --i) {
- current = VTABLE_get_pmc_keyed_int(interp, PARROT_IMAGEIO(info)->id_list, i);
- if (!PMC_IS_NULL(current))
- VTABLE_thawfinish(interp, current, info);
- }
- }
-}
-
pmclass ImageIO auto_attrs {
- ATTR visit_f visit_pmc_now;
ATTR Buffer *buffer; /* buffer to store the image */
ATTR size_t pos; /* current read/write position in buffer */
ATTR size_t input_length;
ATTR INTVAL what;
- ATTR PMC **thaw_ptr; /* where to thaw a new PMC */
ATTR PMC *seen; /* seen hash */
ATTR PMC *todo; /* todo list */
- ATTR PMC *id_list; /* seen list used by thaw */
ATTR UINTVAL id; /* freze ID of PMC */
- ATTR INTVAL extra_flags; /* concerning to extra */
ATTR struct PackFile *pf;
/*
@@ -288,13 +236,10 @@
*/
VTABLE void init() {
- PARROT_IMAGEIO(SELF)->thaw_ptr = NULL;
PARROT_IMAGEIO(SELF)->buffer = NULL;
- PARROT_IMAGEIO(SELF)->todo = pmc_new(INTERP, enum_class_ResizablePMCArray);
+ PARROT_IMAGEIO(SELF)->todo = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
PARROT_IMAGEIO(SELF)->seen = PMCNULL;
- PARROT_IMAGEIO(SELF)->id_list = PMCNULL;
PARROT_IMAGEIO(SELF)->id = 0;
- PARROT_IMAGEIO(SELF)->extra_flags = EXTRA_IS_NULL;
PARROT_IMAGEIO(SELF)->pf = PackFile_new(INTERP, 0);
PObj_custom_mark_destroy_SETALL(SELF);
@@ -324,10 +269,11 @@
*/
VTABLE void mark() {
- Parrot_gc_mark_PObj_alive(INTERP, (PObj *)(PARROT_IMAGEIO(SELF)->buffer));
+ PObj * const buffer = (PObj *)(PARROT_IMAGEIO(SELF)->buffer);
+ if (buffer)
+ Parrot_gc_mark_PObj_alive(INTERP, (PObj *)(PARROT_IMAGEIO(SELF)->buffer));
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->todo);
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->seen);
- Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->id_list);
}
/*
@@ -345,21 +291,34 @@
PARROT_IMAGEIO(SELF)->buffer,
PARROT_IMAGEIO(SELF)->pos);
}
+
/*
+=item C<VTABLE PMC *get_pmc()>
+
+Gets the result PMC after a thaw.
+
+=cut
+
+*/
+
+ VTABLE PMC *get_pmc() {
+ return VTABLE_get_pmc_keyed_int(INTERP, (PARROT_IMAGEIO(SELF))->todo, 0);
+ }
+
/*
-=item C<VTABLE void set_pointer()>
+=item C<VTABLE PMC *get_iter()>
-Sets the location where to thaw a new PMC.
+Get the C<todo> list for this freeze/thaw for iterating over.
=cut
*/
-VTABLE void set_pointer(void* value) {
- PARROT_IMAGEIO(SELF)->thaw_ptr = (PMC**)value;
-}
+ VTABLE PMC *get_iter() {
+ return PARROT_IMAGEIO(SELF)->todo;
+ }
/*
@@ -371,9 +330,9 @@
*/
-VTABLE INTVAL get_integer() {
- return PARROT_IMAGEIO(SELF)->what;
-}
+ VTABLE INTVAL get_integer() {
+ return PARROT_IMAGEIO(SELF)->what;
+ }
/*
@@ -385,11 +344,11 @@
*/
-VTABLE void push_integer(INTVAL v) {
- size_t len = PF_size_integer() * sizeof (opcode_t);
- ensure_buffer_size(interp, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
-}
+ VTABLE void push_integer(INTVAL v) {
+ size_t len = PF_size_integer() * sizeof (opcode_t);
+ ensure_buffer_size(interp, SELF, len);
+ SET_VISIT_CURSOR(SELF, (char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
+ }
/*
@@ -402,12 +361,12 @@
*/
-VTABLE void push_float(FLOATVAL v)
-{
- size_t len = PF_size_number() * sizeof (opcode_t);
- ensure_buffer_size(interp, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
-}
+ VTABLE void push_float(FLOATVAL v)
+ {
+ size_t len = PF_size_number() * sizeof (opcode_t);
+ ensure_buffer_size(interp, SELF, len);
+ SET_VISIT_CURSOR(SELF, (char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
+ }
/*
@@ -420,12 +379,12 @@
*/
-VTABLE void push_string(STRING *v)
-{
- size_t len = PF_size_string(v) * sizeof (opcode_t);
- ensure_buffer_size(INTERP, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
-}
+ VTABLE void push_string(STRING *v)
+ {
+ size_t len = PF_size_string(v) * sizeof (opcode_t);
+ ensure_buffer_size(INTERP, SELF, len);
+ SET_VISIT_CURSOR(SELF, (char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
+ }
/*
@@ -438,10 +397,9 @@
*/
-VTABLE void push_pmc(PMC *v) {
- VTABLE_set_pointer(interp, SELF, &v);
- (PARROT_IMAGEIO(SELF)->visit_pmc_now)(INTERP, v, SELF);
-}
+ VTABLE void push_pmc(PMC *v) {
+ visit_todo_list_freeze(INTERP, v, SELF);
+ }
/*
@@ -453,14 +411,14 @@
*/
-VTABLE INTVAL shift_integer()
-{
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- const INTVAL i = PF_fetch_integer(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
- SET_VISIT_CURSOR(SELF, (char *)pos);
- BYTECODE_SHIFT_OK(SELF);
- return i;
-}
+ VTABLE INTVAL shift_integer()
+ {
+ opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ const INTVAL i = PF_fetch_integer(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
+ SET_VISIT_CURSOR(SELF, (char *)pos);
+ BYTECODE_SHIFT_OK(SELF);
+ return i;
+ }
/*
@@ -473,13 +431,13 @@
*/
-VTABLE FLOATVAL shift_float() {
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- const FLOATVAL f = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
- SET_VISIT_CURSOR(SELF, (char *)pos);
- BYTECODE_SHIFT_OK(SELF);
- return f;
-}
+ VTABLE FLOATVAL shift_float() {
+ opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ const FLOATVAL f = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
+ SET_VISIT_CURSOR(SELF, (char *)pos);
+ BYTECODE_SHIFT_OK(SELF);
+ return f;
+ }
/*
@@ -492,14 +450,15 @@
*/
-VTABLE STRING *shift_string()
-{
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- STRING * const s = PF_fetch_string(interp, PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
- SET_VISIT_CURSOR(SELF, (char *)pos);
- BYTECODE_SHIFT_OK(SELF);
- return s;
-}
+ VTABLE STRING *shift_string()
+ {
+ opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ STRING * const s = PF_fetch_string(interp, PARROT_IMAGEIO(SELF)->pf,
+ (const opcode_t **)&pos);
+ SET_VISIT_CURSOR(SELF, (char *)pos);
+ BYTECODE_SHIFT_OK(SELF);
+ return s;
+ }
/*
@@ -511,40 +470,35 @@
*/
-VTABLE PMC *shift_pmc() {
- PMC *result;
- VTABLE_set_pointer(interp, SELF, &result);
- (PARROT_IMAGEIO(SELF)->visit_pmc_now)(interp, NULL, SELF);
- return result;
-}
+ VTABLE PMC *shift_pmc() {
+ return visit_todo_list_thaw(INTERP, SELF);
+ }
-VTABLE void set_pmc(PMC *p)
-{
+ VTABLE void set_pmc(PMC *p)
+ {
UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
PARROT_IMAGEIO(SELF)->what = VISIT_FREEZE_NORMAL;
- PARROT_IMAGEIO(SELF)->visit_pmc_now = visit_todo_list_freeze;
create_buffer(INTERP, p, SELF);
ensure_buffer_size(INTERP, SELF, header_length);
mem_sys_memcopy(GET_VISIT_CURSOR(SELF),
PARROT_IMAGEIO(SELF)->pf->header, PACKFILE_HEADER_BYTES);
INC_VISIT_CURSOR(SELF, header_length);
- PARROT_IMAGEIO(SELF)->seen = pmc_new(INTERP, enum_class_Hash);
+ PARROT_IMAGEIO(SELF)->seen = Parrot_pmc_new(INTERP, enum_class_Hash);
VTABLE_set_pointer(INTERP, PARROT_IMAGEIO(SELF)->seen,
parrot_new_intval_hash(INTERP));
- visit_loop_todo_list(INTERP, p, SELF);
-}
+ visit_todo_list_freeze(INTERP, p, SELF);
+ Parrot_visit_loop_visit(INTERP, SELF);
+ }
-VTABLE void set_string_native(STRING *image) {
+ VTABLE void set_string_native(STRING *image) {
UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
int unpacked_length;
PARROT_IMAGEIO(SELF)->what = VISIT_THAW_NORMAL;
- PARROT_IMAGEIO(SELF)->visit_pmc_now = visit_todo_list_thaw;
PARROT_IMAGEIO(SELF)->buffer = (Buffer *)image;
- PARROT_IMAGEIO(SELF)->id_list = pmc_new(INTERP, enum_class_ResizablePMCArray);
PARROT_ASSERT(image->_bufstart == image->strstart);
@@ -564,8 +518,13 @@
INC_VISIT_CURSOR(SELF, header_length);
}
- visit_loop_todo_list(interp, pmc, SELF);
-}
+ visit_todo_list_thaw(INTERP, SELF);
+ Parrot_visit_loop_visit(INTERP, SELF);
+
+ /* we're done reading the image */
+ PARROT_ASSERT(!INFO_HAS_DATA(SELF));
+ Parrot_visit_loop_thawfinish(INTERP, SELF);
+ }
/*
Copied: branches/ops_pct/src/pmc/imageiosize.pmc (from r44740, trunk/src/pmc/imageiosize.pmc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/pmc/imageiosize.pmc Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/pmc/imageiosize.pmc)
@@ -0,0 +1,237 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/pmc/imageiosize.pmc - ImageIOSize PMC
+
+=head1 DESCRIPTION
+
+Gets the size of an ImageIO image without the allocation costs.
+
+=cut
+
+*/
+
+#define GROW_TO_16_BYTE_BOUNDARY(size) ((size) + ((size) % 16 ? 16 - (size) % 16 : 0))
+
+static void
+visit_todo_list_freeze(PARROT_INTERP, PMC* pmc, PMC* info) {
+ int is_new = 0;
+
+ if (!PMC_IS_NULL(pmc)) {
+ Hash *hash = (Hash *)VTABLE_get_pointer(interp, PARROT_IMAGEIOSIZE(info)->seen);
+ HashBucket * const b = parrot_hash_get_bucket(interp, hash, pmc);
+ is_new = !b;
+ }
+
+ VTABLE_push_integer(interp, info, 0);
+
+ if (is_new) {
+ Hash *hash = (Hash *)VTABLE_get_pointer(interp, PARROT_IMAGEIOSIZE(info)->seen);
+ parrot_hash_put(interp, hash, pmc, pmc);
+ VTABLE_push_integer(interp, info, pmc->vtable->base_type);
+ VTABLE_push_pmc(interp, PARROT_IMAGEIOSIZE(info)->todo, pmc);
+ VTABLE_freeze(interp, pmc, info);
+ }
+}
+
+pmclass ImageIOSize auto_attrs {
+ ATTR PMC *seen; /* seen hash */
+ ATTR PMC *todo; /* todo list */
+ ATTR struct PackFile *pf;
+ ATTR INTVAL size;
+
+/*
+
+=head1 VTABLES
+
+=over 4
+
+=cut
+
+*/
+
+/*
+
+=item C<void init()>
+
+Initializes the PMC.
+
+=cut
+
+*/
+ VTABLE void init() {
+ PARROT_IMAGEIOSIZE(SELF)->todo = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
+ PARROT_IMAGEIOSIZE(SELF)->pf = PackFile_new(INTERP, 0);
+ PARROT_IMAGEIOSIZE(SELF)->size = 0;
+
+ PARROT_IMAGEIOSIZE(SELF)->seen = Parrot_pmc_new(INTERP, enum_class_Hash);
+ VTABLE_set_pointer(INTERP, PARROT_IMAGEIOSIZE(SELF)->seen,
+ parrot_new_intval_hash(INTERP));
+
+ PObj_custom_mark_destroy_SETALL(SELF);
+ }
+
+
+/*
+
+=item C<void destroy()>
+
+Destroys the PMC.
+
+=cut
+
+*/
+ VTABLE void destroy() {
+ PackFile_destroy(INTERP, PARROT_IMAGEIOSIZE(SELF)->pf);
+ }
+
+/*
+
+=item C<void mark()>
+
+Marks the PMC as alive.
+
+=cut
+
+*/
+ VTABLE void mark() {
+ Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIOSIZE(SELF)->todo);
+ Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIOSIZE(SELF)->seen);
+ }
+
+/*
+
+=item C<VTABLE PMC *get_pmc()>
+
+Gets the result PMC after a thaw.
+
+=cut
+
+*/
+
+ VTABLE PMC *get_pmc() {
+ PMC *ret = Parrot_pmc_new(INTERP, enum_class_Integer);
+ VTABLE_set_integer_native(INTERP, ret, PARROT_IMAGEIOSIZE(SELF)->size);
+ return ret;
+ }
+
+/*
+
+=item C<VTABLE PMC *get_iter()>
+
+Get the C<todo> list for this freeze/thaw for iterating over.
+
+=cut
+
+*/
+
+ VTABLE PMC *get_iter() {
+ return PARROT_IMAGEIOSIZE(SELF)->todo;
+ }
+
+/*
+
+=item C<VTABLE INTVAL get_integer()>
+
+Returns the flags describing the visit action
+
+=cut
+
+*/
+
+ VTABLE INTVAL get_integer() {
+ return VISIT_FREEZE_NORMAL;
+ }
+
+/*
+
+=item C<VTABLE void push_integer(INTVAL v)>
+
+Pushes the integer C<v> onto the end of the image.
+
+=cut
+
+*/
+
+ VTABLE void push_integer(INTVAL v) {
+ size_t len = PF_size_integer() * sizeof (opcode_t);
+ PARROT_IMAGEIOSIZE(SELF)->size += len;
+ }
+
+
+/*
+
+=item C<VTABLE void push_float(FLOATVAL v)>
+
+Pushes the float C<v> onto the end of the image.
+
+=cut
+
+*/
+
+ VTABLE void push_float(FLOATVAL v)
+ {
+ size_t len = PF_size_number() * sizeof (opcode_t);
+ PARROT_IMAGEIOSIZE(SELF)->size += len;
+ }
+
+
+/*
+
+=item C<VTABLE void push_string(STRING *v)>
+
+Pushes the string C<*v> onto the end of the image.
+
+=cut
+
+*/
+
+ VTABLE void push_string(STRING *v)
+ {
+ size_t len = PF_size_string(v) * sizeof (opcode_t);
+ PARROT_IMAGEIOSIZE(SELF)->size += len;
+ }
+
+/*
+
+=item C<VTABLE void push_pmc(PMC *v)>
+
+Pushes a reference to pmc C<*v> onto the end of the image. If C<*v>
+hasn't been seen yet, it is also pushed onto the todo list.
+
+=cut
+
+*/
+
+ VTABLE void push_pmc(PMC *v) {
+ visit_todo_list_freeze(INTERP, v, SELF);
+ }
+
+ VTABLE void set_pmc(PMC *p)
+ {
+ UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
+ PARROT_IMAGEIOSIZE(SELF)->size += header_length;
+
+ visit_todo_list_freeze(INTERP, p, SELF);
+ Parrot_visit_loop_visit(INTERP, SELF);
+ }
+
+/*
+
+=back
+
+=cut
+
+*/
+
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/ops_pct/src/pmc/integer.pmc
==============================================================================
--- branches/ops_pct/src/pmc/integer.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/integer.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -38,7 +38,7 @@
/* Do an in-place upgrade to a Bignum of SELF and return a pointer
to it (which is probably redundant, but whatever). */
const INTVAL a = VTABLE_get_integer(interp, self);
- pmc_reuse(interp, self, enum_class_BigInt, 0);
+ Parrot_pmc_reuse(interp, self, enum_class_BigInt, 0);
VTABLE_set_integer_native(interp, self, a);
return self;
}
@@ -84,7 +84,7 @@
*/
VTABLE PMC *clone() {
- PMC * const clone = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const clone = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
VTABLE_set_integer_native(INTERP, clone, SELF.get_integer());
return clone;
}
@@ -179,24 +179,6 @@
/*
-=item C<PMC *get_bignum()>
-
-Return a new BigInt PMC with the value of C<SELF>.
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- const INTVAL val = SELF.get_integer();
- PMC * const ret = pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, ret, val);
- return ret;
- }
-
-
-/*
-
=item C<STRING *get_string()>
=item C<STRING *get_repr()>
@@ -239,10 +221,6 @@
Morphs the integer to a C<Boolean> and sets the value from C<value>.
-=item C<void set_bigint_int(INTVAL value)>
-
-Morphs the integer to a C<BigInt> and sets the value from C<value>.
-
=item C<void set_string_native(STRING *value)>
Morphs the integer to a C<String> and sets the value from C<value>.
@@ -252,25 +230,20 @@
*/
VTABLE void set_number_native(FLOATVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_Float, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Float, 0);
SELF.set_number_native(value);
}
VTABLE void set_bool(INTVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_Boolean, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Boolean, 0);
SELF.set_bool(value);
}
- VTABLE void set_bignum_int(INTVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_BigInt, 0);
- SELF.set_integer_native(value);
- }
-
VTABLE void set_string_native(STRING *value) {
- pmc_reuse(INTERP, SELF, enum_class_String, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_String, 0);
SELF.set_string_native(value);
}
@@ -292,7 +265,7 @@
const INTVAL c = a + b;
if ((c^a) >= 0 || (c^b) >= 0) {
- dest = pmc_new(INTERP, VTABLE_type(interp, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(interp, SELF));
/* need this for e.g. Undef PMC */
VTABLE_set_integer_native(INTERP, dest, c);
@@ -301,7 +274,8 @@
else {
PMC * temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_add(interp, temp, value, dest);
}
}
@@ -309,7 +283,7 @@
MULTI PMC *add(Complex value, PMC *dest) {
const INTVAL a = SELF.get_integer();
- dest = pmc_new(INTERP, VTABLE_type(INTERP, value));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value));
VTABLE_set_number_native(INTERP, dest,
a + VTABLE_get_number_keyed_int(INTERP, value, 0));
@@ -323,13 +297,14 @@
MULTI PMC *add(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_add(interp, temp, value, dest);
}
MULTI PMC *add(DEFAULT value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(interp, value));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(interp, value));
VTABLE_set_number_native(INTERP, dest,
SELF.get_integer() + VTABLE_get_number(INTERP, value));
@@ -342,7 +317,7 @@
const INTVAL c = a + b;
if ((c^a) >= 0 || (c^b) >= 0) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest, c);
return dest;
@@ -350,7 +325,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_add_int(interp, temp, b, dest);
}
}
@@ -378,7 +354,7 @@
MULTI void i_add(Complex value) {
const INTVAL a = SELF.get_integer();
- pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
VTABLE_set_number_native(INTERP, SELF,
SELF.get_integer() + VTABLE_get_number(INTERP, value));
}
@@ -399,8 +375,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
- VTABLE_i_add_int(interp, temp, b);
+ SELF = upgrade_self_to_bignum(interp, SELF);
+ VTABLE_i_add_int(interp, SELF, b);
}
}
@@ -431,7 +407,7 @@
const INTVAL c = a - b;
if ((c^a) >= 0 || (c^~b) >= 0) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest, c);
return dest;
@@ -439,7 +415,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_subtract(interp, temp, value, dest);
}
}
@@ -447,7 +424,7 @@
MULTI PMC *subtract(Complex value, PMC *dest) {
const INTVAL a = SELF.get_integer();
- dest = pmc_new(INTERP, VTABLE_type(INTERP, value));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value));
VTABLE_set_number_native(INTERP, dest,
a - VTABLE_get_number_keyed_int(INTERP, value, 0));
@@ -461,13 +438,14 @@
MULTI PMC *subtract(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_subtract(interp, temp, value, dest);
}
MULTI PMC *subtract(DEFAULT value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, value));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value));
VTABLE_set_number_native(INTERP, dest,
SELF.get_integer() - VTABLE_get_number(INTERP, value));
@@ -490,7 +468,7 @@
const INTVAL c = a - b;
if ((c^a) >= 0 || (c^~b) >= 0) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest, c);
return dest;
@@ -498,7 +476,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_subtract_int(interp, temp, b, dest);
}
}
@@ -536,7 +515,7 @@
MULTI void i_subtract(Complex value) {
const INTVAL a = SELF.get_integer();
- pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
VTABLE_set_number_native(INTERP, SELF,
(FLOATVAL)a - VTABLE_get_number_keyed_int(INTERP, value, 0));
VTABLE_set_number_keyed_int(INTERP, SELF, 1,
@@ -589,7 +568,7 @@
const double cf = (double)a * (double)b;
if ((double) c == cf) {
- dest = pmc_new(INTERP, VTABLE_type(interp, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(interp, SELF));
VTABLE_set_integer_native(INTERP, dest, c);
return dest;
@@ -597,7 +576,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_multiply(INTERP, temp, value, dest);
}
}
@@ -620,7 +600,7 @@
MULTI PMC *multiply(DEFAULT value, PMC *dest) {
const FLOATVAL valf = VTABLE_get_number(INTERP, value);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest, SELF.get_number() * valf);
return dest;
@@ -633,7 +613,7 @@
const double cf = (double)a * (double)b;
if ((double) c == cf) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest, c);
return dest;
@@ -641,7 +621,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_multiply_int(INTERP, temp, b, dest);
}
}
@@ -727,7 +708,8 @@
MULTI PMC *divide(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_divide(INTERP, temp, value, dest);
}
@@ -738,7 +720,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest, SELF.get_number() / d);
return dest;
}
@@ -787,7 +769,8 @@
MULTI PMC *floor_divide(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_floor_divide(INTERP, temp, value, dest);
}
@@ -800,7 +783,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
f = floor(SELF.get_number() / d);
VTABLE_set_integer_native(INTERP, dest, (INTVAL)f);
@@ -815,7 +798,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
f = floor(SELF.get_number() / value);
VTABLE_set_integer_native(INTERP, dest, (INTVAL)f);
@@ -830,7 +813,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
f = floor(SELF.get_number() / value);
VTABLE_set_integer_native(INTERP, dest, (INTVAL)f);
@@ -909,7 +892,8 @@
MULTI PMC *modulus(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = Parrot_pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_modulus(INTERP, temp, value, dest);
}
@@ -921,7 +905,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"int modulus by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest,
intval_mod(SELF.get_integer(), d));
@@ -934,7 +918,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"int modulus by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest,
intval_mod(SELF.get_integer(), value));
@@ -947,7 +931,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"int modulus by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest,
intval_mod(SELF.get_integer(), (INTVAL)value));
@@ -993,97 +977,6 @@
intval_mod(SELF.get_integer() , (INTVAL)value));
}
-
-/*
-
-=item C<PMC *pow(PMC *value, PMC *dest)>
-
-=item C<PMC *pow_int(INTVAL value, PMC *dest)>
-
-Returns SELF to the C<value>th power in C<dest>.
-
-=item C<void i_pow(PMC *value)>
-
-=item C<void i_pow_int(INTVAL value)>
-
-Raises SELF to the C<value>th power.
-
-TODO: TT #1228: Implement Complex and BigInt RHS values for the pow() functions
-
-=cut
-
-*/
-
- MULTI PMC *pow(Integer value, PMC *dest) {
- const INTVAL v = VTABLE_get_integer(INTERP, value);
- return STATICSELF.pow_int(v, dest);
- }
-
-
- MULTI PMC *pow(DEFAULT value, PMC *dest) {
- PMC * const auxval = pmc_new(INTERP, VTABLE_type(INTERP, value));
- FLOATVAL selfval = SELF.get_integer();
- VTABLE_set_number_native(INTERP, auxval, selfval);
- return VTABLE_pow(INTERP, auxval, value, dest);
- }
-
-
- VTABLE PMC *pow_int(INTVAL b, PMC *dest) {
- const INTVAL a = SELF.get_integer();
- const INTVAL orig_b = b;
- INTVAL r = 1;
-
- if (b < 0)
- return SUPER(b, dest);
-
- if (a) {
- INTVAL temp = a;
- while (b > 0) {
- INTVAL prev = r;
- if (b & 1) {
- r *= temp;
- if (r / temp != prev) {
- PMC *temp;
- maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
- return VTABLE_pow_int(INTERP, temp, orig_b, dest);
- }
- }
-
- b >>= 1;
- if (!b)
- break;
-
- prev = temp;
- temp *= temp;
-
- if (prev != 0 && temp / prev != prev) {
- PMC *temp;
- maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
- return VTABLE_pow_int(INTERP, temp, orig_b, dest);
- }
- }
- }
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, r);
- return dest;
-
- }
-
-
- VTABLE void i_pow(PMC *value) {
- SELF.pow(value, SELF);
- }
-
-
- VTABLE void i_pow_int(INTVAL value) {
- STATICSELF.pow_int(value, SELF);
- }
-
-
/*
=item C<INTVAL is_equal(PMC *value)>
@@ -1100,7 +993,7 @@
switch (value->vtable->base_type) {
case enum_class_BigInt:
- temp = pmc_new(INTERP, enum_class_BigInt);
+ temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
VTABLE_set_integer_native(INTERP, temp, SELF.get_integer());
Parrot_mmd_multi_dispatch_from_c_args(interp,
"is_equal", "PP->I", temp, value, &retval);
@@ -1214,7 +1107,7 @@
if ((c^a) >= 0 || (c^1) >= 0)
SET_ATTR_iv(interp, SELF, c);
else {
- pmc_reuse(interp, SELF, enum_class_BigInt, 0);
+ Parrot_pmc_reuse(interp, SELF, enum_class_BigInt, 0);
VTABLE_set_integer_native(interp, SELF, a);
VTABLE_increment(interp, SELF);
}
@@ -1238,7 +1131,7 @@
if ((c^a) >= 0 || (c^~1) >= 0)
VTABLE_set_integer_native(interp, SELF, c);
else {
- pmc_reuse(INTERP, SELF, enum_class_BigInt, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_BigInt, 0);
VTABLE_set_integer_native(interp, SELF, a);
VTABLE_decrement(interp, SELF);
}
@@ -1261,7 +1154,7 @@
const INTVAL a = abs(SELF.get_integer());
/* TT # 1245 overflow for -maxint */
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest, a);
return dest;
Modified: branches/ops_pct/src/pmc/key.pmc
==============================================================================
--- branches/ops_pct/src/pmc/key.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/key.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -54,7 +54,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
PMC *dkey = dest;
PMC *key = SELF;
Modified: branches/ops_pct/src/pmc/lexinfo.pmc
==============================================================================
--- branches/ops_pct/src/pmc/lexinfo.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/lexinfo.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -95,7 +95,7 @@
VTABLE PMC *inspect_str(STRING *what) {
if (Parrot_str_equal(interp, what, CONST_STRING(interp, "symbols"))) {
- PMC *result = pmc_new(interp, enum_class_ResizableStringArray);
+ PMC *result = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
Hash *hash = (Hash *)SELF.get_pointer();
UINTVAL entries = hash->entries;
UINTVAL found = 0;
Modified: branches/ops_pct/src/pmc/managedstruct.pmc
==============================================================================
--- branches/ops_pct/src/pmc/managedstruct.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/managedstruct.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -71,7 +71,7 @@
Destroys the struct, freeing the allocated memory.
If the "custom_free_func" attribute is set, it is called to free the pointer.
-Otherwise, mem_sys_free() is used.
+Otherwise, mem_gc_free() is used.
=cut
@@ -83,9 +83,9 @@
custom_free_func_t free_func = PARROT_MANAGEDSTRUCT(SELF)->custom_free_func;
if (free_func) {
void *free_data = PARROT_MANAGEDSTRUCT(SELF)->custom_free_priv;
- free_func(interp, ptr, free_data);
+ free_func(INTERP, ptr, free_data);
} else
- mem_sys_free(ptr);
+ mem_gc_free(INTERP, ptr);
}
}
@@ -100,20 +100,24 @@
*/
VTABLE void set_integer_native(INTVAL value) {
- if (PARROT_MANAGEDSTRUCT(SELF)->ptr && !value) {
- mem_sys_free(PARROT_MANAGEDSTRUCT(SELF)->ptr);
- PARROT_MANAGEDSTRUCT(SELF)->ptr = NULL;
- PARROT_MANAGEDSTRUCT(SELF)->size = 0;
+ Parrot_ManagedStruct_attributes * attrs = PARROT_MANAGEDSTRUCT(SELF);
+
+ if (attrs->ptr && !value) {
+ mem_gc_free(INTERP, attrs->ptr);
+ attrs->ptr = NULL;
+ attrs->size = 0;
}
- else if (value && !PARROT_MANAGEDSTRUCT(SELF)->ptr) {
- PARROT_MANAGEDSTRUCT(SELF)->ptr = mem_sys_allocate_zeroed((size_t)value);
- PARROT_MANAGEDSTRUCT(SELF)->size = value;
+ else if (value && !attrs->ptr) {
+ attrs->ptr = Parrot_gc_allocate_memory_chunk_with_interior_pointers(
+ INTERP, (size_t)value);
+ attrs->size = value;
}
- else if (value && PARROT_MANAGEDSTRUCT(SELF)->ptr) {
- if (PARROT_MANAGEDSTRUCT(SELF)->size != value) {
- PARROT_MANAGEDSTRUCT(SELF)->ptr =
- mem_sys_realloc(PARROT_MANAGEDSTRUCT(SELF)->ptr, (size_t)value);
- PARROT_MANAGEDSTRUCT(SELF)->size = value;
+ else if (value && attrs->ptr) {
+ if (attrs->size != value) {
+ attrs->ptr =
+ Parrot_gc_reallocate_memory_chunk_with_interior_pointers(INTERP,
+ attrs->ptr, (size_t)value, attrs->size);
+ attrs->size = value;
}
}
@@ -142,7 +146,7 @@
void *clone_data = PARROT_MANAGEDSTRUCT(SELF)->custom_clone_priv;
return clone_func(interp, SELF, clone_data);
}
- dest = pmc_new_init(interp, SELF->vtable->base_type,
+ dest = Parrot_pmc_new_init(interp, SELF->vtable->base_type,
PARROT_MANAGEDSTRUCT(SELF)->init);
if (PARROT_MANAGEDSTRUCT(SELF)->ptr)
Modified: branches/ops_pct/src/pmc/namespace.pmc
==============================================================================
--- branches/ops_pct/src/pmc/namespace.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/namespace.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -36,7 +36,7 @@
else {
/* If we don't have a place to hang methods, make one. */
if (PMC_IS_NULL(nsinfo->methods))
- nsinfo->methods = pmc_new(interp, enum_class_Hash);
+ nsinfo->methods = Parrot_pmc_new(interp, enum_class_Hash);
/* Insert it. */
VTABLE_set_pmc_keyed_str(interp, nsinfo->methods, key, value);
@@ -70,7 +70,7 @@
else {
/* If we don't have a place to hang vtable methods, make one. */
if (PMC_IS_NULL(vtable))
- nsinfo->vtable = vtable = pmc_new(interp, enum_class_Hash);
+ nsinfo->vtable = vtable = Parrot_pmc_new(interp, enum_class_Hash);
/* Insert it. */
VTABLE_set_pmc_keyed_int(interp, vtable, sub->vtable_index, value);
@@ -312,7 +312,7 @@
}
else {
/* create new tuple */
- new_tuple = pmc_new(INTERP, enum_class_FixedPMCArray);
+ new_tuple = Parrot_pmc_new(INTERP, enum_class_FixedPMCArray);
/* flag it as special */
PObj_get_FLAGS(new_tuple) |= FPA_is_ns_ext;
@@ -387,7 +387,8 @@
}
VTABLE PMC *get_pmc_keyed_str(STRING *key) {
- PMC *ns = (PMC *)parrot_hash_get(INTERP, (Hash *)SELF.get_pointer(), key);
+ Hash * const hash = (Hash *)SELF.get_pointer();
+ PMC *ns = (PMC *)parrot_hash_get(INTERP, hash, key);
if (!ns)
return PMCNULL;
@@ -400,8 +401,10 @@
}
VTABLE PMC *get_pmc_keyed(PMC *key) {
- /* PMC *ns = SUPER(key); */
+ PMC *ns = SUPER(key);
+ /* Is this equivalent?
PMC *ns = INTERP->vtables[enum_class_Hash]->get_pmc_keyed(INTERP, SELF, key);
+ */
if (!PMC_IS_NULL(ns))
return ns;
@@ -422,9 +425,29 @@
return VTABLE_get_pmc_keyed(INTERP, ns, key);
}
-
+ else if (VTABLE_does(INTERP, key, CONST_STRING(INTERP, "array"))) {
+ INTVAL i = 0;
+ while (!PMC_IS_NULL(ns) && VTABLE_elements(INTERP, key)) {
+ STRING * const name = VTABLE_get_string_keyed_int(INTERP, key, i);
+ if (name == NULL || name == STRINGNULL) {
+ ns = PMCNULL;
+ /* What to do here? Throw an exception or something? */
+ break;
+ }
+ ns = Parrot_get_namespace_keyed_str(INTERP, ns, name);
+ i++;
+ }
+ return ns;
+ }
+ else {
+ STRING * const name = VTABLE_get_string(INTERP, key);
+ ns = Parrot_get_namespace_keyed_str(INTERP, ns, name);
+ return ns;
+ }
+ /* If we get the wrong type, should we throw an exception?
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_GLOBAL_NOT_FOUND,
"Invalid namespace key in get_pmc_keyed_str");
+ */
}
VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
@@ -446,6 +469,7 @@
Return the given namespace item or PMCNULL. If the named item is either
a NameSpace or a var, the var is returned.
+TT #1472
TOTAL KLUDGE. ON THE CHOPPING BLOCK.
=cut
@@ -634,7 +658,7 @@
*/
METHOD get_name() {
- PMC * const ar = pmc_new(INTERP, enum_class_ResizableStringArray);
+ PMC * const ar = Parrot_pmc_new(INTERP, enum_class_ResizableStringArray);
INTVAL elements = 0;
PMC *ns = SELF;
Modified: branches/ops_pct/src/pmc/nci.pmc
==============================================================================
--- branches/ops_pct/src/pmc/nci.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/nci.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -28,7 +28,7 @@
char param_buf[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
char *param_sig = sig_length <= 7
? param_buf
- : mem_allocate_n_typed(sig_length, char);
+ : mem_gc_allocate_n_typed(interp, sig_length, char);
size_t j = 0;
size_t i;
@@ -78,7 +78,7 @@
break;
default:
if (sig_length > 7)
- mem_sys_free(param_sig);
+ mem_gc_free(interp, param_sig);
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_JIT_ERROR,
"Unknown param Signature %c\n", (char)c);
@@ -97,7 +97,7 @@
nci_info->pcc_params_signature = CONST_STRING(interp, "");
if (sig_length > 7)
- mem_sys_free(param_sig);
+ mem_gc_free(interp, param_sig);
}
/* actually build the NCI thunk */
@@ -254,7 +254,7 @@
Parrot_NCI_attributes *nci_info_ret;
void *orig_func;
- PMC * const ret = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const ret = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
nci_info_ret = PARROT_NCI(ret);
/* FIXME if data is malloced (JIT/i386!) then we need
Modified: branches/ops_pct/src/pmc/null.pmc
==============================================================================
--- branches/ops_pct/src/pmc/null.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/null.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -41,17 +41,21 @@
*/
VTABLE void init() {
+ UNUSED(interp)
}
VTABLE void *get_pointer() {
+ UNUSED(interp)
return PMCNULL;
}
VTABLE void set_pointer(void *p) {
+ UNUSED(interp)
PMCNULL = (PMC *)p;
}
VTABLE INTVAL does(STRING *what) {
+ UNUSED(interp)
UNUSED(what)
/* XXX maybe a hack to get TGE running again */
return 0;
Modified: branches/ops_pct/src/pmc/object.pmc
==============================================================================
--- branches/ops_pct/src/pmc/object.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/object.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -126,7 +126,7 @@
GETATTR_Class_meth_cache(interp, _class, cache);
if (PMC_IS_NULL(cache)) {
- cache = pmc_new(interp, enum_class_Hash);
+ cache = Parrot_pmc_new(interp, enum_class_Hash);
SETATTR_Class_meth_cache(interp, _class, cache);
}
@@ -812,7 +812,7 @@
UNLOCK_INTERPRETER(master);
ret = SELF;
- _true = pmc_new(INTERP, enum_class_Integer);
+ _true = Parrot_pmc_new(INTERP, enum_class_Integer);
/* Setting the '_ro' property switches to the read-only vtable */
VTABLE_set_integer_native(INTERP, _true, 1);
Copied: branches/ops_pct/src/pmc/opcode.pmc (from r44740, trunk/src/pmc/opcode.pmc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/pmc/opcode.pmc Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/pmc/opcode.pmc)
@@ -0,0 +1,144 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/pmc/opcode.pmc
+
+=head1 DESCRIPTION
+
+Implements opcode VTABLEs.
+
+=cut
+
+*/
+
+#include "parrot/parrot.h"
+
+pmclass Opcode auto_attrs {
+ ATTR op_info_t *info;
+ ATTR INTVAL op_number;
+ ATTR STRING *full_name_cache;
+
+ VTABLE void init() {
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Opcode must be created from OpLib.");
+ }
+
+ VTABLE void mark() {
+ Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
+ if (attrs->full_name_cache)
+ Parrot_gc_mark_STRING_alive(INTERP, attrs->full_name_cache);
+ }
+
+ VTABLE void set_pointer(void *i) {
+ Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
+ if (attrs->info)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Opcode has already been initialized");
+ attrs->info = (op_info_t *)i;
+ }
+
+ VTABLE void set_string_native(STRING *name) {
+ char * cstr = Parrot_str_to_cstring(INTERP, name);
+ const INTVAL num = INTERP->op_lib->op_code(INTERP, cstr, 1);
+ Parrot_str_free_cstring(cstr);
+ if (num == -1)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "Opcode: Opcode %S not found", name);
+ VTABLE_set_integer_native(INTERP, SELF, num);
+ }
+
+ VTABLE INTVAL get_integer() {
+ Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
+ if (!attrs->info)
+ return -1;
+ return attrs->op_number;
+ }
+
+ VTABLE void set_integer_native(INTVAL value) {
+ const INTVAL opcount = INTERP->op_lib->op_count;
+ Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
+ if (attrs->info)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Opcode has already been initialized");
+ if (value >= opcount || value < 0)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "Opcode: Opcode index %d out of bounds", value);
+ attrs->info = &(INTERP->op_info_table[value]);
+ attrs->op_number = value;
+ }
+
+ VTABLE STRING* get_string() {
+ Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
+ if (attrs->full_name_cache == NULL) {
+ const char * const name = attrs->info->full_name;
+ const INTVAL len = strlen(name);
+ STRING * const newstr = Parrot_str_new(INTERP, name, len);
+ attrs->full_name_cache = newstr;
+ }
+ return attrs->full_name_cache;
+ }
+
+ VTABLE INTVAL elements() {
+ Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
+ if (!attrs->info)
+ return -1;
+ return attrs->info->op_count - 1;
+ }
+
+ VTABLE INTVAL get_integer_keyed_int(INTVAL i) {
+ Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
+ return i < attrs->info->op_count - 1
+ ? (INTVAL)attrs->info->types[i]
+ : -1;
+ }
+
+ METHOD family_name() {
+ const char * const name = PARROT_OPCODE(SELF)->info->name;
+ const INTVAL len = strlen(name);
+ STRING * result = Parrot_str_new(INTERP, name, len);
+ RETURN(STRING *result);
+ }
+
+ METHOD jump() {
+ const op_info_t * const info = PARROT_OPCODE(SELF)->info;
+ const INTVAL jump = info->jump;
+ RETURN(INTVAL jump);
+ }
+
+ METHOD dirs() {
+ const op_info_t * const info = PARROT_OPCODE(SELF)->info;
+ PMC *result = Parrot_pmc_new(INTERP, enum_class_FixedIntegerArray);
+ INTVAL arg_count = info->op_count - 1;
+ if (arg_count > 0) {
+ INTVAL i;
+ VTABLE_set_integer_native(INTERP, result, arg_count);
+ for (i = 0; i < arg_count; ++i)
+ VTABLE_set_integer_keyed_int(INTERP, result, i, (INTVAL) info->dirs[i]);
+ }
+ RETURN(PMC *result);
+ }
+
+ METHOD labels() {
+ const op_info_t * const info = PARROT_OPCODE(SELF)->info;
+ PMC *result = Parrot_pmc_new(INTERP, enum_class_FixedIntegerArray);
+ INTVAL arg_count = info->op_count - 1;
+ if (arg_count > 0) {
+ INTVAL i;
+ VTABLE_set_integer_native(INTERP, result, arg_count);
+ for (i = 0; i < arg_count; ++i)
+ VTABLE_set_integer_keyed_int(INTERP, result, i, (INTVAL) info->labels[i]);
+ }
+ RETURN(PMC *result);
+ }
+
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/ops_pct/src/pmc/oplib.pmc (from r44740, trunk/src/pmc/oplib.pmc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/src/pmc/oplib.pmc Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/src/pmc/oplib.pmc)
@@ -0,0 +1,124 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/pmc/oplib.pmc
+
+=head1 DESCRIPTION
+
+Implements oplib VTABLEs.
+
+=cut
+
+*/
+
+#include "parrot/parrot.h"
+
+/* TODO: Since Opcode PMCs are essentially read-only after initialization
+ here, we should cache them. A FixedPMCArray would be okay, an
+ INTVAL->PMC HASH might be better, since it's unlikely that we will
+ need to cache even a majority of the ~1300 ops. */
+static PMC *OPLIB_PMC_INSTANCE;
+static PMC *OPLIB_OPCODE_CACHE;
+pmclass OpLib {
+ void class_init() {
+ OPLIB_PMC_INSTANCE = NULL;
+ OPLIB_OPCODE_CACHE = NULL;
+ }
+
+ VTABLE void *get_pointer() {
+ return OPLIB_PMC_INSTANCE;
+ }
+
+ VTABLE void set_pointer(void *ptr) {
+ OPLIB_PMC_INSTANCE = (PMC *)ptr;
+ }
+
+ VTABLE void init() {
+ if (OPLIB_OPCODE_CACHE == NULL)
+ OPLIB_OPCODE_CACHE = Parrot_pmc_new(INTERP, enum_class_Hash);
+ PObj_custom_mark_SET(SELF);
+ }
+
+ VTABLE void mark() {
+ if (OPLIB_OPCODE_CACHE != NULL)
+ Parrot_gc_mark_PMC_alive(INTERP, OPLIB_OPCODE_CACHE);
+ }
+
+ /* Look up an opnumber given the name of the op. First we look for the
+ specific name, then the more general short name. */
+ VTABLE INTVAL get_integer_keyed_str(STRING *name) {
+ char * cstr = Parrot_str_to_cstring(INTERP, name);
+ INTVAL num = INTERP->op_lib->op_code(INTERP, cstr, 1);
+ if (num == -1)
+ num = INTERP->op_lib->op_code(INTERP, cstr, 0);
+ Parrot_str_free_cstring(cstr);
+ return num;
+ }
+
+ VTABLE INTVAL get_integer_keyed(PMC *key) {
+ STRING *str_key = key_string(INTERP, key);
+ return SELF.get_integer_keyed_str(str_key);
+ }
+
+ VTABLE PMC* get_pmc_keyed_str(STRING *name) {
+ if (VTABLE_defined_keyed_str(INTERP, OPLIB_OPCODE_CACHE, name)) {
+ PMC * const op = VTABLE_get_pmc_keyed_str(INTERP, OPLIB_OPCODE_CACHE, name);
+ return op;
+ }
+ else {
+ PMC * const op = Parrot_pmc_new_noinit(INTERP, enum_class_Opcode);
+ VTABLE_set_string_native(INTERP, op, name);
+ PObj_custom_mark_SET(op);
+ VTABLE_set_pmc_keyed_str(INTERP, OPLIB_OPCODE_CACHE, name, op);
+ return op;
+ }
+ }
+
+ VTABLE PMC* get_pmc_keyed(PMC *key) {
+ STRING * const strkey = VTABLE_get_string(INTERP, key);
+ return VTABLE_get_pmc_keyed_str(INTERP, SELF, strkey);
+ }
+
+ VTABLE PMC* get_pmc_keyed_int(INTVAL value) {
+ if ((UINTVAL)value > interp->op_lib->op_count)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "OpLib: Opcode index %d out of bounds", value);
+ else {
+ const char * const name = interp->op_info_table[value].full_name;
+ STRING * const newstr = Parrot_str_new(INTERP, name, 0);
+ return VTABLE_get_pmc_keyed_str(INTERP, SELF, newstr);
+ }
+ }
+
+ VTABLE INTVAL get_integer() {
+ return INTERP->op_lib->op_count;
+ }
+
+ METHOD op_family(STRING *shortname)
+ {
+ char *sname = Parrot_str_to_cstring(INTERP, shortname);
+ const op_lib_t * const op_lib = INTERP->op_lib;
+ const op_info_t * const table = op_lib->op_info_table;
+ PMC *result = PMCNULL;
+ UINTVAL i;
+ for (i = 0; i < op_lib->op_count; ++i) {
+ if (strcmp(table[i].name, sname) == 0) {
+ if (PMC_IS_NULL(result))
+ result = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
+ VTABLE_push_pmc(INTERP, result, SELF.get_pmc_keyed_int(i));
+ }
+ }
+ Parrot_str_free_cstring(sname);
+ RETURN(PMC *result);
+ }
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/ops_pct/src/pmc/orderedhash.pmc
==============================================================================
--- branches/ops_pct/src/pmc/orderedhash.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/orderedhash.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -77,17 +77,6 @@
*/
-/* Create new stored item. FixedPMCArray of (key, value, prev, next). */
-static PMC*
-create_item(PARROT_INTERP, ARGIN(PMC *key), ARGIN(PMC *value)) {
- PMC *ret = pmc_new(interp, enum_class_FixedPMCArray);
- VTABLE_set_integer_native(interp, ret, ORDERED_HASH_ITEM_MAX);
-
- VTABLE_set_pmc_keyed_int(interp, ret, ORDERED_HASH_ITEM_KEY, key);
- VTABLE_set_pmc_keyed_int(interp, ret, ORDERED_HASH_ITEM_VALUE, value);
- return ret;
-}
-
/* Get list_item by index */
static PMC*
get_list_item(PARROT_INTERP, ARGIN(PMC *self), INTVAL idx) {
@@ -130,7 +119,7 @@
/* Helpers for boxing values */
static PMC*
box_string(PARROT_INTERP, STRING *str) {
- PMC * const ret = pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
+ PMC * const ret = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
enum_class_String));
VTABLE_set_string_native(interp, ret, str);
return ret;
@@ -138,7 +127,7 @@
static PMC*
box_integer(PARROT_INTERP, INTVAL val) {
- PMC * const ret = pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
+ PMC * const ret = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
enum_class_Integer));
VTABLE_set_integer_native(interp, ret, val);
return ret;
@@ -146,14 +135,14 @@
static PMC*
box_number(PARROT_INTERP, FLOATVAL val) {
- PMC * const ret = pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
+ PMC * const ret = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
enum_class_Float));
VTABLE_set_number_native(interp, ret, val);
return ret;
}
-pmclass OrderedHash need_ext provides array provides hash {
+pmclass OrderedHash need_ext provides array provides hash auto_attrs {
ATTR PMC *hash; /* key to item tuple */
ATTR PMC *first; /* Pointer to first inserted value */
ATTR PMC *last; /* Pointer to last inserted value */
@@ -170,10 +159,9 @@
VTABLE void init() {
Parrot_OrderedHash_attributes * const attrs =
- mem_allocate_zeroed_typed(Parrot_OrderedHash_attributes);
+ (Parrot_OrderedHash_attributes*) PMC_data(SELF);
- PMC_data(SELF) = attrs;
- attrs->hash = pmc_new(INTERP, enum_class_Hash);
+ attrs->hash = Parrot_pmc_new(INTERP, enum_class_Hash);
attrs->first = PMCNULL;
attrs->last = PMCNULL;
@@ -211,7 +199,7 @@
*/
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_OrderedHashIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_OrderedHashIterator, SELF);
}
/*
@@ -269,7 +257,7 @@
}
/* Create new entry */
- list_entry = pmc_new(INTERP, enum_class_FixedPMCArray);
+ list_entry = Parrot_pmc_new(INTERP, enum_class_FixedPMCArray);
VTABLE_set_integer_native(INTERP, list_entry, ORDERED_HASH_ITEM_MAX);
VTABLE_set_pmc_keyed_int(INTERP, list_entry, ORDERED_HASH_ITEM_VALUE, value);
VTABLE_set_pmc_keyed_int(INTERP, list_entry, ORDERED_HASH_ITEM_KEY, key);
@@ -337,7 +325,7 @@
/* Now we have chicken and egg problem during freeze/thaw */
/* When we try to thaw OrderedHash which stores HLL mapping */
/* Reported by François Perrad */
- PMC *pkey = pmc_new(INTERP, enum_class_String);
+ PMC *pkey = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_set_string_native(INTERP, pkey, key);
VTABLE_set_pmc_keyed(INTERP, SELF, pkey, value);
}
@@ -392,7 +380,7 @@
}
VTABLE PMC *get_pmc_keyed_str(STRING *key) {
- PMC *pkey = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ PMC *pkey = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
VTABLE_set_string_native(INTERP, pkey, key);
return STATICSELF.get_pmc_keyed(pkey);
}
@@ -506,21 +494,21 @@
}
VTABLE void set_integer_keyed_int(INTVAL idx, INTVAL value) {
- PMC * const v = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const v = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_Integer));
VTABLE_set_integer_native(INTERP, v, value);
SELF.set_pmc_keyed_int(idx, v);
}
VTABLE void set_number_keyed_int(INTVAL idx, FLOATVAL value) {
- PMC * const v = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const v = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_Float));
VTABLE_set_number_native(INTERP, v, value);
SELF.set_pmc_keyed_int(idx, v);
}
VTABLE void set_string_keyed_int(INTVAL idx, STRING *value) {
- PMC * const v = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
+ PMC * const v = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP,
enum_class_String));
VTABLE_set_string_native(INTERP, v, value);
SELF.set_pmc_keyed_int(idx, v);
@@ -715,7 +703,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
Parrot_OrderedHash_attributes *clone_attrs =
PARROT_ORDEREDHASH(dest);
Modified: branches/ops_pct/src/pmc/os.pmc
==============================================================================
--- branches/ops_pct/src/pmc/os.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/os.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -86,7 +86,7 @@
#endif
if (cwd) {
STRING * const scwd = Parrot_str_new(INTERP, cwd, strlen(cwd));
- mem_sys_free(cwd);
+ free(cwd);
RETURN(STRING *scwd);
}
else {
@@ -237,7 +237,7 @@
errmsg);
}
else {
- PMC * const array = pmc_new(INTERP, enum_class_FixedPMCArray);
+ PMC * const array = Parrot_pmc_new(INTERP, enum_class_FixedPMCArray);
VTABLE_set_integer_native(INTERP, array, 13);
VTABLE_set_integer_keyed_int(INTERP, array, 0,
@@ -315,7 +315,7 @@
errmsg);
}
else {
- PMC * const array = pmc_new(INTERP, enum_class_FixedPMCArray);
+ PMC * const array = Parrot_pmc_new(INTERP, enum_class_FixedPMCArray);
VTABLE_set_integer_native(INTERP, array, 13);
VTABLE_set_integer_keyed_int(INTERP, array, 0,
@@ -490,7 +490,7 @@
errmsg);
}
- array = pmc_new(INTERP, enum_class_ResizableStringArray);
+ array = Parrot_pmc_new(INTERP, enum_class_ResizableStringArray);
while ((dirent = readdir(dir)) != NULL) {
retval = Parrot_str_new(INTERP, dirent->d_name, 0) ;
Modified: branches/ops_pct/src/pmc/packfile.pmc
==============================================================================
--- branches/ops_pct/src/pmc/packfile.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/packfile.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -71,7 +71,7 @@
PackFile *pf;
attrs->uuid = Parrot_str_new_noinit(INTERP, enum_stringrep_one, 0);
- attrs->directory = pmc_new(INTERP, enum_class_PackfileDirectory);
+ attrs->directory = Parrot_pmc_new(INTERP, enum_class_PackfileDirectory);
/* Create dummy PackFile and copy default attributes to self */
pf = PackFile_new(interp, 0);
@@ -120,7 +120,7 @@
/* Calculate required memory */
length = PackFile_pack_size(interp, pf) * sizeof (opcode_t);
- ptr = (opcode_t*)mem_sys_allocate(length);
+ ptr = (opcode_t*)Parrot_gc_allocate_memory_chunk(INTERP, length);
/* Copy related attributes to header */
pf->header->major = attrs->version_major;
@@ -133,7 +133,7 @@
str = Parrot_str_new_init(interp, (const char*)ptr, length,
PARROT_FIXED_8_ENCODING, PARROT_BINARY_CHARSET, 0);
- mem_sys_free(ptr);
+ Parrot_gc_free_memory_chunk(INTERP, ptr);
PackFile_destroy(interp, pf);
return str;
Modified: branches/ops_pct/src/pmc/packfileannotations.pmc
==============================================================================
--- branches/ops_pct/src/pmc/packfileannotations.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/packfileannotations.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -49,7 +49,7 @@
Parrot_PackfileAnnotations_attributes * attrs =
PMC_data_typed(SELF, Parrot_PackfileAnnotations_attributes*);
- attrs->annotations = pmc_new(interp, enum_class_ResizablePMCArray);
+ attrs->annotations = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
/*
Don't initialize C<const_table>. It will be set to NULL bu auto_attrs
handling. And should be set to proper PMC in set_directory.
@@ -220,7 +220,7 @@
for (i = 0; i < a->num_entries; ++i) {
PackFile_Annotations_Entry *entry = a->entries[i];
PackFile_Annotations_Key *key = a->keys[entry->key];
- annotation = pmc_new(interp, enum_class_PackfileAnnotation);
+ annotation = Parrot_pmc_new(interp, enum_class_PackfileAnnotation);
/* Poke directly to annotation attributes. */
annotation_attrs = PARROT_PACKFILEANNOTATION(annotation);
@@ -260,7 +260,8 @@
VTABLE void *get_pointer() {
Parrot_PackfileAnnotations_attributes *attrs =
PARROT_PACKFILEANNOTATIONS(SELF);
- PackFile_Annotations *res = mem_allocate_zeroed_typed(PackFile_Annotations);
+ PackFile_Annotations *res = mem_gc_allocate_zeroed_typed(INTERP,
+ PackFile_Annotations);
INTVAL i, num;
INTVAL key_type;
PMC *keys; /* Temporary representation of Keys */
@@ -289,15 +290,15 @@
...
]
*/
- keys = pmc_new(interp, enum_class_Hash);
- names = pmc_new(interp, enum_class_ResizableIntegerArray);
- types = pmc_new(interp, enum_class_ResizableIntegerArray);
+ keys = Parrot_pmc_new(interp, enum_class_Hash);
+ names = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
+ types = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
last_key_id = -1;
/* Iterate over stored annotations and create Key if required. */
num = VTABLE_elements(interp, attrs->annotations);
res->num_entries = num;
- res->entries = mem_allocate_n_typed(num, PackFile_Annotations_Entry*);
+ 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);
@@ -306,7 +307,7 @@
PMC * key_array = VTABLE_get_pmc_keyed_str(interp, keys, entity_attrs->name);
if (PMC_IS_NULL(key_array)) {
/* Never see this name before. Create new FIA and add to keys. */
- key_array = pmc_new(interp, enum_class_FixedIntegerArray);
+ key_array = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
VTABLE_set_integer_native(interp, key_array, 3);
VTABLE_set_integer_keyed_int(interp, key_array, 0, -1);
VTABLE_set_integer_keyed_int(interp, key_array, 1, -1);
@@ -336,7 +337,8 @@
/* At this point we have create (if nesassary) key and name constant. */
/* Start storing real entity */
- res->entries[i] = mem_allocate_zeroed_typed(PackFile_Annotations_Entry);
+ res->entries[i] = mem_gc_allocate_zeroed_typed(INTERP,
+ PackFile_Annotations_Entry);
res->entries[i]->bytecode_offset = entity_attrs->offset;
res->entries[i]->key = key_id;
@@ -365,9 +367,10 @@
/* Time to pack keys */
num = VTABLE_elements(interp, types);
res->num_keys = num;
- res->keys = mem_allocate_n_typed(num, PackFile_Annotations_Key*);
+ res->keys = mem_gc_allocate_n_zeroed_typed(INTERP, num,
+ PackFile_Annotations_Key*);
for (i = 0; i < num; ++i) {
- res->keys[i] = mem_allocate_typed(PackFile_Annotations_Key);
+ res->keys[i] = mem_gc_allocate_typed(INTERP, PackFile_Annotations_Key);
res->keys[i]->name = VTABLE_get_integer_keyed_int(interp, names, i);
res->keys[i]->type = VTABLE_get_integer_keyed_int(interp, types, i);
}
Modified: branches/ops_pct/src/pmc/packfileconstanttable.pmc
==============================================================================
--- branches/ops_pct/src/pmc/packfileconstanttable.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/packfileconstanttable.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -45,8 +45,8 @@
Parrot_PackfileConstantTable_attributes * attrs =
PMC_data_typed(SELF, Parrot_PackfileConstantTable_attributes*);
- attrs->constants = pmc_new(interp, enum_class_ResizablePMCArray);
- attrs->types = pmc_new(interp, enum_class_ResizableIntegerArray);
+ attrs->constants = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ attrs->types = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
PObj_custom_mark_SET(SELF);
PMC_data(SELF) = attrs;
@@ -129,7 +129,7 @@
Parrot_PackfileConstantTable_attributes * attrs =
PARROT_PACKFILECONSTANTTABLE(SELF);
PackFile_ConstTable * pftable =
- mem_allocate_zeroed_typed(PackFile_ConstTable);
+ mem_gc_allocate_zeroed_typed(INTERP, PackFile_ConstTable);
PackFile_Constant * value;
opcode_t i;
@@ -137,8 +137,8 @@
/* Copy all constanst with respect of type */
pftable->const_count = VTABLE_get_integer(interp, attrs->constants);
- pftable->constants = mem_allocate_n_typed(pftable->const_count,
- PackFile_Constant*);
+ pftable->constants = mem_gc_allocate_n_typed(INTERP,
+ pftable->const_count, PackFile_Constant*);
for (i = 0; i < pftable->const_count; ++i) {
value = PackFile_Constant_new(interp);
@@ -323,6 +323,29 @@
/*
+=item C<void set_main(INTVAL index)>
+
+Set the :main flag in a Sub in the constant table.
+
+Experimental. Use with care. There is no way to set the
+private flags from PIR, so we need something like this.
+
+If something goes wrong, blame NotFound.
+
+=cut
+
+*/
+ METHOD set_main(INTVAL index) {
+ PMC *mainsub = SELF.get_pmc_keyed_int(index);
+ if (mainsub->vtable->base_type != enum_class_Sub)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Attempt to set main flag in a non Sub");
+ SUB_FLAG_flag_SET(PF_MAIN, mainsub);
+ }
+
+/*
+
=item C<INTVAL get_or_create_constant()>
Get or create constant for passed value.
Modified: branches/ops_pct/src/pmc/packfiledirectory.pmc
==============================================================================
--- branches/ops_pct/src/pmc/packfiledirectory.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/packfiledirectory.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -42,7 +42,7 @@
Parrot_PackfileDirectory_attributes * attrs =
PMC_data_typed(SELF, Parrot_PackfileDirectory_attributes*);
- attrs->hash = pmc_new(interp, enum_class_Hash);
+ attrs->hash = Parrot_pmc_new(interp, enum_class_Hash);
PObj_custom_mark_SET(SELF);
}
@@ -110,7 +110,7 @@
break;
}
- segment = pmc_new(interp, pmc_type);
+ segment = Parrot_pmc_new(interp, pmc_type);
name = pfseg->name;
VTABLE_set_pmc_keyed_str(interp, SELF, name, segment);
Modified: branches/ops_pct/src/pmc/packfilefixupentry.pmc
==============================================================================
--- branches/ops_pct/src/pmc/packfilefixupentry.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/packfilefixupentry.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -95,7 +95,7 @@
Parrot_PackfileFixupEntry_attributes * attrs =
PARROT_PACKFILEFIXUPENTRY(SELF);
PackFile_FixupEntry * entry =
- mem_allocate_zeroed_typed(PackFile_FixupEntry);
+ mem_gc_allocate_zeroed_typed(INTERP, PackFile_FixupEntry);
entry->type = attrs->type;
entry->name = strdup(Parrot_string_cstring(interp, attrs->name));
Modified: branches/ops_pct/src/pmc/packfilefixuptable.pmc
==============================================================================
--- branches/ops_pct/src/pmc/packfilefixuptable.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/packfilefixuptable.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -42,7 +42,7 @@
Parrot_PackfileFixupTable_attributes * attrs =
PMC_data_typed(SELF, Parrot_PackfileFixupTable_attributes*);
- attrs->entries = pmc_new(interp, enum_class_ResizablePMCArray);
+ attrs->entries = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
PObj_custom_mark_SET(SELF);
}
@@ -89,7 +89,7 @@
for (i = 0; i < table->fixup_count; ++i) {
val = table->fixups[i];
- entry = pmc_new(interp, enum_class_PackfileFixupEntry);
+ 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);
}
@@ -108,15 +108,15 @@
Parrot_PackfileFixupTable_attributes * attrs =
PARROT_PACKFILEFIXUPTABLE(SELF);
PackFile_FixupTable * pftable =
- mem_allocate_zeroed_typed(PackFile_FixupTable);
+ mem_gc_allocate_zeroed_typed(INTERP, PackFile_FixupTable);
PMC * entry;
PackFile_FixupEntry * val;
opcode_t i;
pftable->base.type = PF_FIXUP_SEG;
pftable->fixup_count = VTABLE_elements(interp, attrs->entries);
- pftable->fixups = mem_allocate_n_typed(pftable->fixup_count,
- PackFile_FixupEntry*);
+ pftable->fixups = mem_gc_allocate_n_typed(INTERP,
+ pftable->fixup_count, PackFile_FixupEntry*);
/* Copy all entries */
for (i = 0; i < pftable->fixup_count; ++i) {
Modified: branches/ops_pct/src/pmc/packfilerawsegment.pmc
==============================================================================
--- branches/ops_pct/src/pmc/packfilerawsegment.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/packfilerawsegment.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -44,7 +44,7 @@
Parrot_PackfileRawSegment_attributes * attrs =
PMC_data_typed(SELF, Parrot_PackfileRawSegment_attributes*);
- attrs->opcodes = pmc_new(interp, enum_class_ResizableIntegerArray);
+ attrs->opcodes = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
attrs->type = PF_BYTEC_SEG;
PObj_custom_mark_SET(SELF);
@@ -111,7 +111,7 @@
VTABLE void *get_pointer() {
PackFile_Segment * pfseg =
- (PackFile_Segment*)mem_allocate_zeroed_typed(PackFile_ByteCode);
+ (PackFile_Segment*)mem_gc_allocate_zeroed_typed(INTERP, PackFile_ByteCode);
Parrot_PackfileRawSegment_attributes * attrs =
PARROT_PACKFILERAWSEGMENT(SELF);
PMC * opcodes = attrs->opcodes;
@@ -119,7 +119,7 @@
pfseg->type = attrs->type;
pfseg->size = VTABLE_get_integer(interp, opcodes);
- pfseg->data = mem_allocate_n_typed(pfseg->size, opcode_t);
+ pfseg->data = mem_gc_allocate_n_typed(INTERP, pfseg->size, opcode_t);
/* Not very efficient... */
for (i = 0; i < pfseg->size; ++i) {
Modified: branches/ops_pct/src/pmc/parrotinterpreter.pmc
==============================================================================
--- branches/ops_pct/src/pmc/parrotinterpreter.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/parrotinterpreter.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -53,7 +53,7 @@
/* we block GC runs while cloning since C<d> is not yet running */
Parrot_block_GC_mark(d);
- d->scheduler = pmc_new(d, enum_class_Scheduler);
+ d->scheduler = Parrot_pmc_new(d, enum_class_Scheduler);
d->scheduler = VTABLE_share_ro(d, d->scheduler);
/* can't copy directly, unless you want double-frees */
@@ -176,17 +176,7 @@
new_interp->current_cont = NEED_CONTINUATION;
}
-static int
-recursion_limit(PARROT_INTERP, PMC *self, int l)
-{
- const int ret = interp->recursion_limit;
- UNUSED(self)
-
- interp->recursion_limit = l;
- return ret;
-}
-
-pmclass ParrotInterpreter no_ro {
+pmclass ParrotInterpreter no_ro manual_attrs {
ATTR struct parrot_interp_t *interp; /* this PMC's interpreter */
ATTR INTVAL tid; /* thread id */
ATTR PMC *args; /* args passed to this thread */
@@ -200,24 +190,28 @@
=over 4
-=item C<void class_init()>
+=item C<yield>
-Class initialization.
+Yield the current thread
+
+=item C<recursion_limit(INTVAL l :optional, INTVAL has_l :opt_flag )>
+
+Gets the recursion limit of the interpreter, optionally setting it to something
+new.
=cut
*/
- void class_init() {
- const int typ = enum_class_ParrotInterpreter;
-
- /* TODO unify and fix signatures */
- register_nci_method(INTERP, typ,
- F2DPTR(pt_thread_yield), "yield", "v");
+ METHOD yield() {
+ pt_thread_yield();
+ }
- /* misc functions */
- register_nci_method(INTERP, typ,
- F2DPTR(recursion_limit), "recursion_limit", "iJOi");
+ METHOD recursion_limit(INTVAL l :optional, INTVAL has_l :opt_flag) {
+ const INTVAL ret = INTERP->recursion_limit;
+ if (has_l)
+ INTERP->recursion_limit = l;
+ RETURN(INTVAL ret);
}
/*
@@ -238,7 +232,7 @@
*/
if (!PMC_data(SELF)) {
Parrot_ParrotInterpreter_attributes *attrs =
- mem_allocate_zeroed_typed(Parrot_ParrotInterpreter_attributes);
+ mem_gc_allocate_zeroed_typed(INTERP, Parrot_ParrotInterpreter_attributes);
PMC_data(SELF) = attrs;
}
if (!PMC_interp(SELF)) {
@@ -264,7 +258,7 @@
if (!PMC_data(SELF)) {
Parrot_ParrotInterpreter_attributes *attrs =
- mem_allocate_zeroed_typed(Parrot_ParrotInterpreter_attributes);
+ mem_gc_allocate_zeroed_typed(INTERP, Parrot_ParrotInterpreter_attributes);
PMC_data(SELF) = attrs;
}
if (!PMC_interp(SELF)) {
@@ -286,7 +280,7 @@
VTABLE void destroy() {
if (PMC_data(SELF)) {
- mem_sys_free(PMC_data(SELF));
+ mem_gc_free(INTERP, PMC_data(SELF));
PMC_data(SELF) = NULL;
}
}
@@ -305,11 +299,11 @@
VTABLE void set_pointer(void *value) {
/* XXX: init_world in src/global_setup.c needs to create a
- * ParrotInterpreter through pmc_new_noinit. If this PMC hasn't been
+ * ParrotInterpreter through Parrot_pmc_new_noinit. If this PMC hasn't been
* initialized, cheat by initializing instead. */
if (!PMC_data(SELF)) {
Parrot_ParrotInterpreter_attributes *attrs =
- mem_allocate_zeroed_typed(Parrot_ParrotInterpreter_attributes);
+ mem_gc_allocate_zeroed_typed(INTERP, Parrot_ParrotInterpreter_attributes);
PMC_data(SELF) = attrs;
PObj_custom_destroy_SET(SELF);
}
@@ -559,7 +553,7 @@
pc - seg->base.data, NULL);
}
- return pmc_new(interp, enum_class_Hash);
+ return Parrot_pmc_new(interp, enum_class_Hash);
}
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
@@ -621,7 +615,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
clone_interpreter(PMC_interp(dest),
PMC_interp(SELF), PARROT_CLONE_DEFAULT);
@@ -719,7 +713,7 @@
VTABLE void thaw(PMC *info) {
if (!PMC_data(SELF)) {
Parrot_ParrotInterpreter_attributes *attrs =
- mem_allocate_zeroed_typed(Parrot_ParrotInterpreter_attributes);
+ mem_gc_allocate_zeroed_typed(INTERP, Parrot_ParrotInterpreter_attributes);
PMC_data(SELF) = attrs;
PObj_custom_destroy_SET(SELF);
}
Modified: branches/ops_pct/src/pmc/parrotlibrary.pmc
==============================================================================
--- branches/ops_pct/src/pmc/parrotlibrary.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/parrotlibrary.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -77,7 +77,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
PMC_oplib_init(dest) = PMC_oplib_init(SELF);
PMC_dlhandle(dest) = PMC_dlhandle(SELF);
Modified: branches/ops_pct/src/pmc/parrotthread.pmc
==============================================================================
--- branches/ops_pct/src/pmc/parrotthread.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/parrotthread.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -71,7 +71,7 @@
interp->flags &= ~PARROT_THR_COPY_INTERP; /* XXX */
pt_thread_run(interp, thread, sub, args);
- pmc_reuse(interp, thread, enum_class_ParrotRunningThread, 0);
+ Parrot_pmc_reuse(interp, thread, enum_class_ParrotRunningThread, 0);
PObj_custom_mark_CLEAR(thread);
VTABLE_set_integer_native(interp, thread, tid);
@@ -79,12 +79,6 @@
return tid;
}
-static INTVAL do_thread_run_clone_default(PARROT_INTERP,
- PMC *thread, PMC *sub, PMC *args) {
- return do_thread_run(interp, thread, PARROT_CLONE_DEFAULT, sub, args);
-}
-
-
pmclass ParrotThread extends ParrotInterpreter no_ro {
/*
@@ -103,17 +97,17 @@
*/
- void class_init() {
- const int typ = enum_class_ParrotThread;
-
- register_nci_method(INTERP, typ,
- F2DPTR(do_thread_run), "run", "IJOIP@");
+ METHOD run(INTVAL clone_flags, PMC *sub, PMC *args :slurpy) {
+ const INTVAL retval = do_thread_run(INTERP, SELF, clone_flags, sub, args);
+ RETURN(INTVAL retval);
+ }
- /* XXX appropriate name given that this won't clone globals? */
- register_nci_method(INTERP, typ,
- F2DPTR(do_thread_run_clone_default), "run_clone", "IJOP@");
+ METHOD run_clone(PMC *sub, PMC *args :slurpy) {
+ const INTVAL retval = do_thread_run(INTERP, SELF, PARROT_CLONE_DEFAULT, sub, args);
+ RETURN(INTVAL retval)
}
+
/*
=item C<void init()>
Modified: branches/ops_pct/src/pmc/pmc.num
==============================================================================
--- branches/ops_pct/src/pmc/pmc.num Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/pmc.num Sun Mar 7 19:33:20 2010 (r44743)
@@ -79,3 +79,6 @@
os.pmc 51
file.pmc 52
+
+oplib.pmc 53
+opcode.pmc 54
Modified: branches/ops_pct/src/pmc/pmcproxy.pmc
==============================================================================
--- branches/ops_pct/src/pmc/pmcproxy.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/pmcproxy.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -79,7 +79,7 @@
VTABLE void init() {
Parrot_Class_attributes * const _pmc =
(Parrot_Class_attributes *) PMC_data(SELF);
- PMC * const new_attribute = pmc_new(interp, enum_class_Hash);
+ PMC * const new_attribute = Parrot_pmc_new(interp, enum_class_Hash);
STRING * const name = CONST_STRING(interp, "proxy");
/* Set flag for custom GC mark. */
@@ -89,16 +89,16 @@
_pmc->id = 0;
_pmc->name = CONST_STRING(interp, "");
_pmc->_namespace = PMCNULL;
- _pmc->parents = pmc_new(interp, enum_class_ResizablePMCArray);
- _pmc->all_parents = pmc_new(interp, enum_class_ResizablePMCArray);
- _pmc->roles = pmc_new(interp, enum_class_ResizablePMCArray);
- _pmc->methods = pmc_new(interp, enum_class_Hash);
- _pmc->vtable_overrides = pmc_new(interp, enum_class_Hash);
- _pmc->parent_overrides = pmc_new(interp, enum_class_Hash);
- _pmc->attrib_metadata = pmc_new(interp, enum_class_Hash);
+ _pmc->parents = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ _pmc->all_parents = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ _pmc->roles = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ _pmc->methods = Parrot_pmc_new(interp, enum_class_Hash);
+ _pmc->vtable_overrides = Parrot_pmc_new(interp, enum_class_Hash);
+ _pmc->parent_overrides = Parrot_pmc_new(interp, enum_class_Hash);
+ _pmc->attrib_metadata = Parrot_pmc_new(interp, enum_class_Hash);
_pmc->attrib_index = PMCNULL;
_pmc->attrib_cache = PMCNULL;
- _pmc->resolve_method = pmc_new(interp, enum_class_ResizablePMCArray);
+ _pmc->resolve_method = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
/* Set up the attribute storage for the proxy instance */
VTABLE_set_string_keyed_str(interp, new_attribute, CONST_STRING(interp, "name"), name);
@@ -194,9 +194,9 @@
Parrot_Class_attributes * const _pmc = PARROT_CLASS(SELF);
if (!PMC_IS_NULL(init))
- return pmc_new_init(interp, _pmc->id, init);
+ return Parrot_pmc_new_init(interp, _pmc->id, init);
- return pmc_new(interp, _pmc->id);
+ return Parrot_pmc_new(interp, _pmc->id);
}
/*
@@ -266,6 +266,7 @@
return 0;
}
+
/*
=item C<INTVAL isa(STRING *classname)>
@@ -315,7 +316,7 @@
VTABLE INTVAL does(STRING *role_name) {
Parrot_Class_attributes *_class = PARROT_CLASS(SELF);
INTVAL id = _class->id;
- PMC *proxied = pmc_new(interp, id);
+ PMC *proxied = Parrot_pmc_new(interp, id);
if (VTABLE_does(interp, proxied, role_name))
return 1;
@@ -359,7 +360,7 @@
STRING * const meth_str = CONST_STRING(interp, "methods");
STRING * const parents_str = CONST_STRING(interp, "parents");
- PMC * const metadata = pmc_new(interp, enum_class_Hash);
+ PMC * const metadata = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_pmc_keyed_str(interp, metadata, name_str,
VTABLE_inspect_str(interp, SELF, name_str));
@@ -382,6 +383,7 @@
=cut
*/
+
METHOD name() {
Parrot_Class_attributes * const _pmc = PARROT_CLASS(SELF);
STRING * const ret_name = _pmc->name;
@@ -397,6 +399,7 @@
=cut
*/
+
METHOD get_namespace() {
Parrot_Class_attributes * const _pmc = PARROT_CLASS(SELF);
PMC * const ret_namespace = _pmc->_namespace;
@@ -412,6 +415,7 @@
=cut
*/
+
METHOD new(PMC *args :optional, int got_args :opt_flag) {
PMC * const obj = VTABLE_instantiate(interp, SELF, args);
UNUSED(got_args);
@@ -427,6 +431,7 @@
=cut
*/
+
METHOD methods() {
PMC * const ret_methods = VTABLE_inspect_str(interp, SELF, CONST_STRING(interp, "methods"));
RETURN(PMC *ret_methods);
@@ -441,6 +446,7 @@
=cut
*/
+
METHOD parents() {
PMC * const ret_parents = VTABLE_inspect_str(interp, SELF, CONST_STRING(interp, "parents"));
RETURN(PMC *ret_parents);
@@ -456,6 +462,7 @@
=cut
*/
+
METHOD inspect(STRING *what :optional, int got_what :opt_flag) {
/* Just delegate to the appropriate vtable method. */
PMC * const found =
Modified: branches/ops_pct/src/pmc/pointer.pmc
==============================================================================
--- branches/ops_pct/src/pmc/pointer.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/pointer.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -67,7 +67,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new_noinit(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new_noinit(INTERP, SELF->vtable->base_type);
PObj_custom_mark_SET(dest);
PMC_data(dest) = PMC_data(SELF);
return dest;
Modified: branches/ops_pct/src/pmc/resizablebooleanarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/resizablebooleanarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/resizablebooleanarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -148,8 +148,9 @@
/* Nothing allocated yet */
GET_ATTR_bit_array(INTERP, SELF, bit_array);
if (!bit_array) {
- SET_ATTR_bit_array(INTERP, SELF,
- (unsigned char *)mem_sys_allocate_zeroed(new_size_in_bytes));
+ void *new_bit_array = Parrot_gc_allocate_memory_chunk(INTERP, new_size_in_bytes);
+ memset(new_bit_array, 0, new_size_in_bytes);
+ SET_ATTR_bit_array(INTERP, SELF, (unsigned char *)new_bit_array);
/* The size is different, and doesn't fit within the current
* allocation */
@@ -157,15 +158,16 @@
else if (new_size_in_bytes != old_size_in_bytes) {
unsigned char * old_store = bit_array;
unsigned char * new_store =
- (unsigned char *)mem_sys_allocate_zeroed(new_tail_pos);
+ (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, new_tail_pos);
size_t copy_size =
new_size_in_bytes < old_size_in_bytes ? new_size_in_bytes : old_size_in_bytes;
+ memset(new_store, 0, new_tail_pos);
/* Replace old array with new array, and free old array */
SET_ATTR_bit_array(INTERP, SELF,
(unsigned char *)mem_sys_memmove(
new_store, old_store, copy_size));
- mem_sys_free(old_store);
+ mem_gc_free(INTERP, old_store);
}
}
@@ -249,7 +251,8 @@
/* Allocate an extra allocation unit of space in new array */
new_mem_size = ROUND_BYTES(tail_pos+ MIN_ALLOC);
- new_bit_array = (unsigned char *)mem_sys_allocate_zeroed(new_mem_size);
+ new_bit_array = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, new_mem_size);
+ memset(new_bit_array, 0, new_mem_size);
/* Copy contents of old array to new array, moving the head
* position forward by one allocation unit (in bytes). */
@@ -259,7 +262,7 @@
/* Replace old array with new array, and free old array */
SET_ATTR_bit_array(INTERP, SELF, new_bit_array);
- mem_sys_free(old_bit_array);
+ mem_gc_free(INTERP, old_bit_array);
/* Added one allocation unit to the head position offset */
SET_ATTR_size(INTERP, SELF, tail_pos + MIN_ALLOC);
@@ -309,7 +312,8 @@
GET_ATTR_size(INTERP, SELF, tail_pos);
new_mem_size = ROUND_BYTES(tail_pos - MIN_ALLOC);
new_bit_array =
- (unsigned char *)mem_sys_allocate_zeroed(new_mem_size);
+ (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, new_mem_size);
+ memset(new_bit_array, 0, new_mem_size);
/* Copy contents of old array to new array, move the head position
* offset back by one allocation unit (in bytes) */
@@ -319,7 +323,7 @@
/* Replace old array with new array, and free old array */
SET_ATTR_bit_array(INTERP, SELF, new_bit_array);
- mem_sys_free(old_bit_array);
+ mem_gc_free(INTERP, old_bit_array);
/* Removed one allocation unit from the head position offset */
SET_ATTR_size(INTERP, SELF, tail_pos - MIN_ALLOC);
@@ -373,7 +377,7 @@
UINTVAL tail_pos, head_pos;
unsigned char * my_bit_array, * dest_bit_array;
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
GET_ATTR_bit_array(INTERP, SELF, my_bit_array);
GET_ATTR_size(INTERP, SELF, tail_pos);
@@ -384,7 +388,7 @@
if (my_bit_array) {
size_t size_in_bits = tail_pos / BITS_PER_CHAR + 1;
- dest_bit_array = (unsigned char *)mem_sys_allocate(size_in_bits);
+ dest_bit_array = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, size_in_bits);
mem_sys_memcopy(dest_bit_array, my_bit_array, size_in_bits);
}
else
Modified: branches/ops_pct/src/pmc/resizablefloatarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/resizablefloatarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/resizablefloatarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -130,8 +130,7 @@
cur &= ~0xfff;
}
SET_ATTR_float_array(INTERP, SELF,
- (FLOATVAL*)mem_sys_realloc(float_array,
- cur * sizeof (FLOATVAL)));
+ mem_gc_realloc_n_typed(INTERP, float_array, cur, FLOATVAL));
SET_ATTR_size(INTERP, SELF, size);
SET_ATTR_resize_threshold(INTERP, SELF, cur);
}
Modified: branches/ops_pct/src/pmc/resizableintegerarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/resizableintegerarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/resizableintegerarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -124,7 +124,7 @@
}
GET_ATTR_int_array(INTERP, SELF, int_array);
- mem_realloc_n_typed(int_array, cur, INTVAL);
+ int_array = mem_gc_realloc_n_typed(INTERP, int_array, cur, INTVAL);
SET_ATTR_int_array(INTERP, SELF, int_array);
SET_ATTR_size(INTERP, SELF, size);
SET_ATTR_resize_threshold(INTERP, SELF, cur);
Modified: branches/ops_pct/src/pmc/resizablepmcarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/resizablepmcarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/resizablepmcarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -92,7 +92,8 @@
if (cur < 8)
cur = 8;
- PMC_array(SELF) = mem_realloc_n_typed(PMC_array(SELF), cur, PMC *);
+ PMC_array(SELF) = mem_gc_realloc_n_typed_zeroed(INTERP,
+ PMC_array(SELF), cur, i, PMC *);
for (; i < cur; i++) {
(PMC_array(SELF))[i] = PMCNULL;
@@ -366,7 +367,7 @@
VTABLE void push_float(FLOATVAL value) {
INTVAL size = PMC_size(SELF);
- PMC *val = pmc_new(INTERP, enum_class_Float);
+ PMC *val = Parrot_pmc_new(INTERP, enum_class_Float);
VTABLE_set_number_native(INTERP, val, value);
SELF.set_pmc_keyed_int(size, val);
@@ -377,7 +378,7 @@
VTABLE void push_integer(INTVAL value) {
INTVAL size = PMC_size(SELF);
- PMC *val = pmc_new(INTERP, enum_class_Integer);
+ PMC *val = Parrot_pmc_new(INTERP, enum_class_Integer);
VTABLE_set_integer_native(INTERP, val, value);
SELF.set_pmc_keyed_int(size, val);
@@ -397,7 +398,7 @@
VTABLE void push_string(STRING *value) {
INTVAL size = PMC_size(SELF);
- PMC *val = pmc_new(INTERP, enum_class_String);
+ PMC *val = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_assign_string_native(INTERP, val, value);
SELF.set_pmc_keyed_int(size, val);
@@ -501,7 +502,7 @@
VTABLE void unshift_float(FLOATVAL value) {
INTVAL size = PMC_size(SELF);
- PMC *val = pmc_new(INTERP, enum_class_Float);
+ PMC *val = Parrot_pmc_new(INTERP, enum_class_Float);
PMC **data;
INTVAL i;
@@ -521,7 +522,7 @@
VTABLE void unshift_integer(INTVAL value) {
INTVAL size = PMC_size(SELF);
- PMC *val = pmc_new(INTERP, enum_class_Integer);
+ PMC *val = Parrot_pmc_new(INTERP, enum_class_Integer);
PMC **data;
INTVAL i;
@@ -559,7 +560,7 @@
VTABLE void unshift_string(STRING *value) {
INTVAL size = PMC_size(SELF);
- PMC *val = pmc_new(INTERP, enum_class_String);
+ PMC *val = Parrot_pmc_new(INTERP, enum_class_String);
PMC **data;
INTVAL i;
Modified: branches/ops_pct/src/pmc/resizablestringarray.pmc
==============================================================================
--- branches/ops_pct/src/pmc/resizablestringarray.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/resizablestringarray.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -144,7 +144,7 @@
VTABLE PMC *pop_pmc() {
STRING *strval = SELF.pop_string();
- PMC *value = pmc_new(INTERP, enum_class_String);
+ PMC *value = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_set_string_native(INTERP, value, strval);
@@ -241,8 +241,8 @@
}
SET_ATTR_str_array(INTERP, SELF,
- (STRING **)mem_sys_realloc(
- str_array, cur * sizeof (STRING*)));
+ mem_gc_realloc_n_typed_zeroed(INTERP, str_array,
+ cur, resize_threshold, STRING*));
GET_ATTR_str_array(INTERP, SELF, str_array);
for (; i < cur; i++)
@@ -308,7 +308,7 @@
VTABLE PMC *shift_pmc() {
STRING *strval = SELF.shift_string();
- PMC *value = pmc_new(INTERP, enum_class_String);
+ PMC *value = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_set_string_native(INTERP, value, strval);
@@ -374,7 +374,7 @@
*/
VTABLE void push_integer(INTVAL value) {
- PMC *ret = pmc_new(INTERP, enum_class_String);
+ PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_integer_native(INTERP, ret, value);
@@ -394,7 +394,7 @@
*/
VTABLE void push_float(FLOATVAL value) {
- PMC *ret = pmc_new(INTERP, enum_class_String);
+ PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_number_native(INTERP, ret, value);
@@ -424,7 +424,7 @@
"ResizableStringArray: Can't shift from an empty array!");
value = SELF.get_string_keyed_int(0);
- ret = pmc_new(INTERP, enum_class_String);
+ ret = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_set_string_native(INTERP, ret, value);
SELF.delete_keyed_int(0);
@@ -486,7 +486,7 @@
*/
VTABLE void unshift_integer(INTVAL value) {
- PMC *ret = pmc_new(INTERP, enum_class_String);
+ PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_integer_native(INTERP, ret, value);
@@ -506,7 +506,7 @@
*/
VTABLE void unshift_float(FLOATVAL value) {
- PMC *ret = pmc_new(INTERP, enum_class_String);
+ PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_number_native(INTERP, ret, value);
Modified: branches/ops_pct/src/pmc/role.pmc
==============================================================================
--- branches/ops_pct/src/pmc/role.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/role.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -230,9 +230,9 @@
/* Set up the object. */
role->name = CONST_STRING(interp, "");
role->_namespace = PMCNULL;
- role->roles = pmc_new(interp, enum_class_ResizablePMCArray);
- role->methods = pmc_new(interp, enum_class_Hash);
- role->attrib_metadata = pmc_new(interp, enum_class_Hash);
+ role->roles = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ role->methods = Parrot_pmc_new(interp, enum_class_Hash);
+ role->attrib_metadata = Parrot_pmc_new(interp, enum_class_Hash);
}
VTABLE void init_pmc(PMC *init_data) {
@@ -276,7 +276,7 @@
VTABLE void add_attribute(STRING *name, PMC *type) {
Parrot_Role_attributes * const role = PARROT_ROLE(SELF);
- PMC * const new_attribute = pmc_new(interp, enum_class_Hash);
+ PMC * const new_attribute = Parrot_pmc_new(interp, enum_class_Hash);
/* Set name and type. */
VTABLE_set_string_keyed_str(interp, new_attribute, CONST_STRING(interp, "name"), name);
@@ -388,7 +388,7 @@
PMC *found;
if (Parrot_str_equal(interp, what, CONST_STRING(interp, "name"))) {
- found = pmc_new(interp, enum_class_String);
+ found = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, found, role->name);
}
else if (Parrot_str_equal(interp, what, CONST_STRING(interp, "namespace"))) {
@@ -414,7 +414,7 @@
if (found->vtable->base_type == enum_class_Hash) {
/* for Hash return values, create and return a shallow
* clone because the VTABLE_clone does a deep clone */
- PMC * const hash = pmc_new(interp, enum_class_Hash);
+ PMC * const hash = Parrot_pmc_new(interp, enum_class_Hash);
PMC * const iter = VTABLE_get_iter(interp, found);
while (VTABLE_get_bool(interp, iter)) {
STRING * key = VTABLE_shift_string(interp, iter);
@@ -441,7 +441,7 @@
VTABLE PMC *inspect() {
/* Create a hash, then use inspect_str to get all of the data to
* fill it up with. */
- PMC * const metadata = pmc_new(interp, enum_class_Hash);
+ PMC * const metadata = Parrot_pmc_new(interp, enum_class_Hash);
STRING * const name = CONST_STRING(interp, "name");
STRING * const _namespace = CONST_STRING(interp, "namespace");
@@ -583,7 +583,7 @@
if (got_name) {
/* We'll build a hash just containing the name, then give this to
* init_role_from_hash - saves some code duplication. */
- PMC *naming_hash = pmc_new(interp, enum_class_Hash);
+ PMC *naming_hash = Parrot_pmc_new(interp, enum_class_Hash);
VTABLE_set_string_keyed_str(interp, naming_hash, CONST_STRING(interp, "name"), name);
init_role_from_hash(interp, SELF, naming_hash);
}
Modified: branches/ops_pct/src/pmc/scalar.pmc
==============================================================================
--- branches/ops_pct/src/pmc/scalar.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/scalar.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -20,68 +20,6 @@
#include "pmc/pmc_bigint.h"
-static PMC *
-bitwise_left_shift_internal(PARROT_INTERP, PMC *self,
- PMC *dest, INTVAL shift_amount)
-{
- /* This handles both left and right shifts; the sign of shift_amount
- controls the direction, shifting left if positive and right if negative.
- If we get an error (which can only happen for left shifts) and
- PARROT_ERRORS_OVERFLOW_FLAG is set, then we throw an error, else the
- destination is promoted to a BigInt before shifting. If dest == self,
- then the shift is done in place. */
- const INTVAL base = VTABLE_get_integer(interp, self);
- INTVAL result = 0;
- int overflow_p = 0;
-
- /* Compute the shift. */
- if (shift_amount >= 8*INTVAL_SIZE) {
- /* Extreme left shift; no need to do an integer shift first. */
- overflow_p = 1;
- }
- else if (shift_amount >= 0) {
- /* Left shift. */
- result = base << shift_amount;
- overflow_p = (result >> shift_amount) != base;
- }
- else if (shift_amount > -8*INTVAL_SIZE) {
- /* Right shift. By definition, this can never overflow. */
- result = base >> -shift_amount;
- }
- else {
- /* Extreme right shift. */
- result = 0;
- }
-
- /* Store the result. */
- if (! overflow_p) {
- /* If SELF is the destination, we won't want to create a
- new PMC, because then we won't have the result in SELF.
- Only create a new PMC if we aren't saving the result
- to SELF, or if they are both NULL */
- if (dest != self || dest == NULL)
- dest = pmc_new(interp, VTABLE_type(interp, self));
-
- VTABLE_set_integer_native(interp, dest, result);
- }
- else if (PARROT_ERRORS_test(interp, PARROT_ERRORS_OVERFLOW_FLAG)) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ERR_OVERFLOW,
- "Integer overflow");
- }
- else {
- /* Overflow; must promote dest to BigInt, and do a BigInt shift. */
- if (self == dest)
- pmc_reuse(interp, self, enum_class_BigInt, 0);
- else
- dest = pmc_new(interp, enum_class_BigInt);
-
- VTABLE_set_integer_native(interp, dest, base);
- VTABLE_i_bitwise_shl_int(interp, dest, shift_amount);
- }
-
- return dest;
-}
-
pmclass scalar {
/*
@@ -101,15 +39,15 @@
if (self_type == enum_class_Boolean)
/* doesn't morph */
- pmc_reuse(INTERP, SELF, val_type, 0);
+ Parrot_pmc_reuse(INTERP, SELF, val_type, 0);
if (val_type == enum_class_Undef) {
- pmc_reuse(INTERP, SELF, val_type, 0);
+ Parrot_pmc_reuse(INTERP, SELF, val_type, 0);
return;
}
if (VTABLE_isa(INTERP, value, CONST_STRING(INTERP, "Undef"))) {
- pmc_reuse(INTERP, SELF, enum_class_Undef, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Undef, 0);
return;
}
@@ -130,7 +68,7 @@
SELF.set_string_native(v);
return;
}
- pmc_reuse(INTERP, SELF, val_type, 0);
+ Parrot_pmc_reuse(INTERP, SELF, val_type, 0);
SELF.set_pmc(value);
}
@@ -174,7 +112,7 @@
MULTI PMC *add(Complex value, PMC *dest) {
const FLOATVAL a = SELF.get_number();
- dest = pmc_new(INTERP, VTABLE_type(INTERP, value));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value));
VTABLE_set_number_native(INTERP, dest,
a + VTABLE_get_number_keyed_int(INTERP, value, 0));
@@ -184,7 +122,7 @@
}
MULTI PMC *add(DEFAULT value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() + VTABLE_get_number(INTERP, value));
@@ -192,7 +130,7 @@
}
VTABLE PMC *add_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() + (FLOATVAL)value);
@@ -200,7 +138,7 @@
}
VTABLE PMC *add_float(FLOATVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() + value);
@@ -210,7 +148,7 @@
MULTI void i_add(Complex value) {
const FLOATVAL a = SELF.get_number();
- pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
VTABLE_set_number_native(INTERP, SELF,
a + VTABLE_get_number_keyed_int(INTERP, value, 0));
VTABLE_set_number_keyed_int(INTERP, SELF, 1,
@@ -257,7 +195,7 @@
MULTI PMC *subtract(Complex value, PMC *dest) {
const FLOATVAL a = SELF.get_number();
- dest = pmc_new(INTERP, VTABLE_type(INTERP, value));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value));
VTABLE_set_number_native(INTERP, dest,
a - VTABLE_get_number_keyed_int(INTERP, value, 0));
@@ -267,14 +205,14 @@
}
MULTI PMC *subtract(DEFAULT value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() - VTABLE_get_number(INTERP, value));
return dest;
}
VTABLE PMC *subtract_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() - (FLOATVAL)value);
@@ -282,7 +220,7 @@
}
VTABLE PMC *subtract_float(FLOATVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() - value);
@@ -292,7 +230,7 @@
MULTI void i_subtract(Complex value) {
const FLOATVAL a = SELF.get_number();
- pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
VTABLE_set_number_native(INTERP, SELF,
a - VTABLE_get_number_keyed_int(INTERP, value, 0));
VTABLE_set_number_keyed_int(INTERP, SELF, 1,
@@ -334,7 +272,7 @@
}
MULTI PMC *multiply(DEFAULT value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() * VTABLE_get_number(INTERP, value));
@@ -342,7 +280,7 @@
}
VTABLE PMC *multiply_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() * value);
@@ -350,7 +288,7 @@
}
VTABLE PMC *multiply_float(FLOATVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
SELF.get_number() * value);
@@ -406,7 +344,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest, SELF.get_number() / d);
return dest;
@@ -417,7 +355,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest, SELF.get_number() / value);
return dest;
@@ -428,7 +366,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest, SELF.get_number() / value);
return dest;
@@ -489,7 +427,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
d = floor(SELF.get_number() / d);
VTABLE_set_integer_native(INTERP, dest, (INTVAL)d);
@@ -501,7 +439,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
floor(SELF.get_number() / value));
@@ -513,7 +451,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
floor(SELF.get_number() / value));
@@ -579,7 +517,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float modulus by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
floatval_mod(SELF.get_number(), d));
@@ -591,7 +529,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float modulus by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
floatval_mod(SELF.get_number(), (FLOATVAL)value));
@@ -603,7 +541,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float modulus by zero");
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_number_native(INTERP, dest,
floatval_mod(SELF.get_number(), value));
@@ -641,72 +579,6 @@
/*
-=item C<PMC *pow(PMC *value, PMC *dest)>
-
-=item C<PMC *pow_int(INTVAL value, PMC *dest)>
-
-=item C<PMC *pow_float(FLOATVAL value, PMC *dest)>
-
-Calculates C<SELF pow value> and returns
-the result in C<dest>. See also ops/math.ops.
-
-=item C<void i_pow(PMC *value)>
-
-=item C<void i_pow_int(INTVAL value)>
-
-=item C<void i_pow_float(FLOATVAL value)>
-
-Calculates pow inplace
-
-=cut
-
-*/
-
- MULTI PMC *pow(PMC *value, PMC *dest) {
- const FLOATVAL d = VTABLE_get_number(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_number_native(INTERP, dest, pow(SELF.get_number(), d));
- return dest;
- }
-
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_number_native(INTERP, dest,
- pow(SELF.get_number(), (double)value));
-
- return dest;
- }
-
- VTABLE PMC *pow_float(FLOATVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_number_native(INTERP, dest,
- pow(SELF.get_number(), value));
- return dest;
- }
-
- VTABLE void i_pow(PMC *value) {
- const FLOATVAL d = VTABLE_get_number(INTERP, value);
-
- VTABLE_set_number_native(INTERP, SELF,
- pow(SELF.get_number(), d));
- }
-
- VTABLE void i_pow_int(INTVAL value) {
- VTABLE_set_number_native(INTERP, SELF,
- pow(SELF.get_number(), (float)value));
- }
-
- VTABLE void i_pow_float(FLOATVAL value) {
- VTABLE_set_number_native(INTERP, SELF,
- pow(SELF.get_number(), value));
- }
-
-/*
-
=item C<PMC *neg(PMC *dest)>
=item C<void i_neg()>
@@ -720,7 +592,7 @@
VTABLE PMC *neg(PMC *dest) {
const INTVAL a = -SELF.get_integer();
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, dest, a);
return dest;
@@ -734,311 +606,6 @@
=back
-=head2 Bitwise Methods
-
-=over 4
-
-=item C<PMC *bitwise_or(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_or_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the bitwise C<OR> of the scalar and C<value>.
-
-=item C<void i_bitwise_or(PMC *value)>
-
-=item C<void i_bitwise_or_int(INTVAL value)>
-
-Inplace bitwise or.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_or(PMC *value, PMC *dest) {
- const INTVAL result = SELF.get_integer() | VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
-
- VTABLE PMC *bitwise_or_int(INTVAL value, PMC *dest) {
- const INTVAL result = SELF.get_integer() | value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_or(PMC *value) {
- const INTVAL result =
- SELF.get_integer() | VTABLE_get_integer(INTERP, value);
-
- SELF.set_integer_native(result);
- }
-
-
- VTABLE void i_bitwise_or_int(INTVAL value) {
- const INTVAL result = SELF.get_integer() | value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<PMC *bitwise_and(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_and_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the bitwise C<AND> of the scalar and C<value>.
-
-=item C<void i_bitwise_and(PMC *value)>
-
-=item C<void i_bitwise_and_int(INTVAL value)>
-
-Inplace bitwise and.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_and(PMC *value, PMC *dest) {
- const INTVAL result =
- SELF.get_integer() & VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE PMC *bitwise_and_int(INTVAL value, PMC *dest) {
- const INTVAL result = SELF.get_integer() & value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_and(PMC *value) {
- const INTVAL result =
- SELF.get_integer() & VTABLE_get_integer(INTERP, value);
- SELF.set_integer_native(result);
- }
-
-
- VTABLE void i_bitwise_and_int(INTVAL value) {
- const INTVAL result = SELF.get_integer() & value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<void bitwise_xor(PMC *value, PMC *dest)>
-
-=item C<void bitwise_xor_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the bitwise C<XOR> of the scalar and C<*value>.
-
-=item C<void i_bitwise_xor(PMC *value)>
-
-=item C<void i_bitwise_xor_int(INTVAL value)>
-
-Inplace bitwise and.
-
-=cut
-
-*/
-
- MULTI PMC *bitwise_xor(PMC *value, PMC *dest) {
- const INTVAL result =
- SELF.get_integer() ^ VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE PMC *bitwise_xor_int(INTVAL value, PMC *dest) {
- const INTVAL result = SELF.get_integer() ^ value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_xor(PMC *value) {
- const INTVAL result =
- SELF.get_integer() ^ VTABLE_get_integer(INTERP, value);
- SELF.set_integer_native(result);
- }
-
- VTABLE void i_bitwise_xor_int(INTVAL value) {
- const INTVAL result = SELF.get_integer() ^ value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<PMC *bitwise_not(PMC *dest)>
-
-=item C<void i_bitwise_not()>
-
-Returns in C<*dest> the bitwise negation of the scalar and C<value>.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_not(PMC *dest) {
- const INTVAL a = ~SELF.get_integer();
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, a);
- return dest;
- }
-
- VTABLE void i_bitwise_not() {
- VTABLE_set_integer_native(INTERP, SELF, ~SELF.get_integer());
- }
-
-/*
-
-=item C<PMC *bitwise_shr(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shr_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the arithmetic shift right of the scalar by C<value>.
-A negative C<value> shifts left.
-The destination may become a C<BigInt> as a result (but only if the shift amount
-is less than zero).
-
-=item C<void i_bitwise_shr(PMC *value)>
-
-=item C<void i_bitwise_shr_int(INTVAL value)>
-
-Inplace shift right. A negative C<value> shifts left.
-SELF may become a C<BigInt> as a result (but only if the shift amount is less
-than zero).
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shr(PMC *value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest,
- -VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE PMC *bitwise_shr_int(INTVAL value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest, -value);
- }
-
- VTABLE void i_bitwise_shr(PMC *value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF,
- -VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE void i_bitwise_shr_int(INTVAL value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF, -value);
- }
-
-/*
-
-=item C<PMC *bitwise_lsr(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_lsr_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the logical shift right of the scalar by C<*value>.
-
-=item C<void i_bitwise_lsr(PMC *value)>
-
-=item C<void i_bitwise_lsr_int(INTVAL value)>
-
-Inplace shift right.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_lsr(PMC *value, PMC *dest) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >>
- VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE PMC *bitwise_lsr_int(INTVAL value, PMC *dest) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >> value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_lsr(PMC *value) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >>
- VTABLE_get_integer(INTERP, value);
- SELF.set_integer_native(result);
- }
-
- VTABLE void i_bitwise_lsr_int(INTVAL value) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >> value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<PMC *bitwise_shl(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shl_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the shift left of the scalar by C<*value>. A negative
-C<value> shifts right. The destination may become a C<BigInt> as a result.
-
-=item C<void i_bitwise_shl(PMC *value)>
-
-=item C<void i_bitwise_shl_int(INTVAL value)>
-
-Inplace shift left. A negative C<value> shifts right. SELF may become a
-C<BigInt> as a result.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shl(PMC *value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest,
- VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE PMC *bitwise_shl_int(INTVAL value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest, value);
- }
-
- VTABLE void i_bitwise_shl(PMC *value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF,
- VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE void i_bitwise_shl_int(INTVAL value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF, value);
- }
-
-/*
-
-=back
-
=head2 String Methods
=over 4
@@ -1063,7 +630,7 @@
STRING * const s = Parrot_str_concat(INTERP, SELF.get_string(),
VTABLE_get_string(INTERP, value), 0);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_string_native(INTERP, dest, s);
return dest;
@@ -1073,7 +640,7 @@
STRING * const s = Parrot_str_concat(INTERP,
SELF.get_string(), value, 0);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_string_native(INTERP, dest, s);
return dest;
@@ -1112,7 +679,7 @@
STRING * const s = SELF.get_string();
const UINTVAL n = (UINTVAL)VTABLE_get_integer(INTERP, value);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_string_native(INTERP, dest,
Parrot_str_repeat(INTERP, s, n));
@@ -1123,7 +690,7 @@
STRING * const s = SELF.get_string();
const UINTVAL n = value;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_string_native(INTERP, dest,
Parrot_str_repeat(INTERP, s, n));
@@ -1295,7 +862,7 @@
else if (value_bool && ! my_bool)
return value;
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_bool(INTERP, dest, 0);
return dest;
}
@@ -1316,7 +883,7 @@
VTABLE PMC *logical_not(PMC *dest) {
const INTVAL a = ! SELF.get_bool();
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_bool(INTERP, dest, a);
return dest;
@@ -1367,7 +934,7 @@
*/
VTABLE PMC *share_ro() {
PMC *ret = pt_shared_fixup(INTERP, SELF);
- PMC * const _true = pmc_new(INTERP, enum_class_Integer);
+ PMC * const _true = Parrot_pmc_new(INTERP, enum_class_Integer);
VTABLE_set_integer_native(INTERP, _true, 1);
Modified: branches/ops_pct/src/pmc/scheduler.pmc
==============================================================================
--- branches/ops_pct/src/pmc/scheduler.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/scheduler.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -57,11 +57,11 @@
/* Set up the core struct. */
core_struct->id = 0;
core_struct->max_tid = 0;
- core_struct->task_list = pmc_new(interp, enum_class_Hash);
- core_struct->task_index = pmc_new(interp, enum_class_ResizableIntegerArray);
- core_struct->wait_index = pmc_new(interp, enum_class_ResizablePMCArray);
- core_struct->handlers = pmc_new(interp, enum_class_ResizablePMCArray);
- core_struct->messages = pmc_new(interp, enum_class_ResizablePMCArray);
+ core_struct->task_list = Parrot_pmc_new(interp, enum_class_Hash);
+ core_struct->task_index = Parrot_pmc_new(interp, enum_class_ResizableIntegerArray);
+ core_struct->wait_index = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ core_struct->handlers = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
+ core_struct->messages = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
core_struct->interp = INTERP;
MUTEX_INIT(core_struct->msg_lock);
}
Modified: branches/ops_pct/src/pmc/sockaddr.pmc
==============================================================================
--- branches/ops_pct/src/pmc/sockaddr.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/sockaddr.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -46,7 +46,8 @@
Parrot_Sockaddr_attributes * const pdata_struct =
(Parrot_Sockaddr_attributes *) PMC_data(SELF);
- pdata_struct->pointer = mem_allocate_zeroed_typed(struct sockaddr_in);
+ pdata_struct->pointer = mem_gc_allocate_zeroed_typed(INTERP,
+ struct sockaddr_in);
PObj_custom_destroy_SET(SELF);
}
@@ -64,7 +65,7 @@
Parrot_Sockaddr_attributes * const data = PARROT_SOCKADDR(SELF);
if (data) {
- mem_sys_free(data->pointer);
+ mem_gc_free(INTERP, data->pointer);
data->pointer = NULL;
}
}
@@ -80,7 +81,7 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
memcpy(PARROT_SOCKADDR(dest)->pointer, PARROT_SOCKADDR(SELF)->pointer,
sizeof (struct sockaddr_in));
return dest;
Modified: branches/ops_pct/src/pmc/socket.pmc
==============================================================================
--- branches/ops_pct/src/pmc/socket.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/socket.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -20,7 +20,7 @@
#include "../src/io/io_private.h"
-pmclass Socket extends Handle auto_attrs {
+pmclass Socket extends Handle provides socket auto_attrs {
ATTR PMC *local; /* Local addr */
ATTR PMC *remote; /* Remote addr */
@@ -67,21 +67,6 @@
/*
-=item C<INTVAL does(STRING * role)>
-
-=cut
-
-*/
-
- VTABLE INTVAL does(STRING * role) {
- Parrot_Socket_attributes * const attrs = PARROT_SOCKET(SELF);
- if (Parrot_str_equal(interp, role, CONST_STRING(interp, "socket")))
- return 1;
- return SUPER(role);
- }
-
-/*
-
=item C<void mark()>
Mark active socket handle data as live.
Modified: branches/ops_pct/src/pmc/string.pmc
==============================================================================
--- branches/ops_pct/src/pmc/string.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/string.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2003-2009, Parrot Foundation.
+Copyright (C) 2003-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -71,8 +71,8 @@
*/
VTABLE PMC *clone() {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
- VTABLE_set_string_native(INTERP, dest, Parrot_str_copy(INTERP, SELF.get_string()));
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
+ VTABLE_set_string_native(INTERP, dest, SELF.get_string());
return dest;
}
@@ -87,8 +87,9 @@
*/
VTABLE INTVAL get_integer() {
- STRING * const s = SELF.get_string();
- return Parrot_str_to_int(INTERP, s);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_to_int(INTERP, str_val);
}
/*
@@ -102,25 +103,9 @@
*/
VTABLE FLOATVAL get_number() {
- STRING * const s = SELF.get_string();
- return Parrot_str_to_num(INTERP, s);
- }
-
-/*
-
-=item C<PMC *get_bignum()>
-
-Returns the big numbers representation of the string.
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- STRING * const s = SELF.get_string();
- PMC * const ret = pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_string_native(INTERP, ret, s);
- return ret;
+ STRING *str_val;
+ GET_ATTR_str_val(interp, SELF, str_val);
+ return Parrot_str_to_num(INTERP, str_val);
}
/*
@@ -136,6 +121,7 @@
VTABLE STRING *get_string() {
STRING *str_val;
GET_ATTR_str_val(INTERP, SELF, str_val);
+
return str_val ? Parrot_str_copy(INTERP, str_val) : NULL;
}
@@ -150,8 +136,9 @@
*/
VTABLE INTVAL get_bool() {
- STRING * const s = SELF.get_string();
- return Parrot_str_boolean(INTERP, s);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_boolean(INTERP, str_val);
}
/*
@@ -200,9 +187,8 @@
*/
VTABLE void set_string_native(STRING *value) {
- /* in lieu of a STRINGNULL, promote any NULL STRINGs to empty ones */
if (!value)
- value = Parrot_str_new(INTERP, NULL, 0);
+ value = STRINGNULL;
/* Only allow constant PMCs to embed constant strings */
if (PObj_constant_TEST(SELF) && !PObj_constant_TEST(value)) {
@@ -227,9 +213,10 @@
*/
VTABLE void assign_string_native(STRING *value) {
- if (!STRING_IS_NULL(value))
+ if (!STRING_IS_NULL(value)) {
SET_ATTR_str_val(INTERP, SELF,
- Parrot_str_set(INTERP, SELF.get_string(), value));
+ Parrot_str_set(INTERP, SELF.get_string(), value));
+ }
else
SET_ATTR_str_val(INTERP, SELF, NULL);
}
@@ -250,172 +237,6 @@
/*
-=item C<PMC *bitwise_ors(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_ors_str(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_ands(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_ands_str(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_xors(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_xors_str(PMC *value, PMC *dest)>
-
-=item C<void bitwise_nots(PMC *value)>
-
-These functions perform bitwise operations on entire
-strings, and place the result in C<dest>.
-
-=item C<void i_bitwise_ors(PMC *value)>
-
-=item C<void i_bitwise_ors_str(PMC *value)>
-
-=item C<void i_bitwise_ands(PMC *value)>
-
-=item C<void i_bitwise_ands_str(PMC *value)>
-
-=item C<void i_bitwise_xors(PMC *value)>
-
-=item C<void i_bitwise_xors_str(PMC *value)>
-
-=item C<void i_bitwise_nots(PMC *value)>
-
-These functions perform bitwise operations on entire
-strings in place.
-
-=cut
-
-*/
- VTABLE PMC *bitwise_ors(PMC *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_or(INTERP, s, v, NULL));
-
- return dest;
- }
-
- VTABLE PMC *bitwise_ors_str(STRING *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_or(INTERP, s, value, NULL));
-
- return dest;
- }
-
- VTABLE void i_bitwise_ors(PMC *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
- SELF.set_string_native(Parrot_str_bitwise_or(INTERP, s, v, &s));
- }
-
- VTABLE void i_bitwise_ors_str(STRING *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- SELF.set_string_native(Parrot_str_bitwise_or(INTERP, s, value, &s));
- }
-
- VTABLE PMC *bitwise_ands(PMC *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_and(INTERP, s, v, NULL));
-
- return dest;
- }
-
- VTABLE PMC *bitwise_ands_str(STRING *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_and(INTERP, s, value, NULL));
-
- return dest;
- }
-
-
- VTABLE void i_bitwise_ands(PMC *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
- SELF.set_string_native(Parrot_str_bitwise_and(INTERP, s, v, &s));
- }
-
- VTABLE void i_bitwise_ands_str(STRING *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- SELF.set_string_native(Parrot_str_bitwise_and(INTERP, s, value, &s));
- }
-
- VTABLE PMC *bitwise_xors(PMC *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_xor(INTERP, s, v, NULL));
-
- return dest;
- }
-
- VTABLE PMC *bitwise_xors_str(STRING *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_xor(INTERP, s, value, NULL));
-
- return dest;
- }
-
- VTABLE void i_bitwise_xors(PMC *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
- SELF.set_string_native(Parrot_str_bitwise_xor(INTERP, s, v, &s));
- }
-
- VTABLE void i_bitwise_xors_str(STRING *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- SELF.set_string_native(Parrot_str_bitwise_xor(INTERP, s, value, &s));
- }
-
- VTABLE PMC *bitwise_nots(PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_not(INTERP, s, NULL));
-
- return dest;
- }
-
- VTABLE void i_bitwise_nots() {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- VTABLE_set_string_native(
- INTERP, SELF, Parrot_str_bitwise_not(INTERP, s, &s));
- }
-
-/*
-
=item C<INTVAL is_equal(PMC *value)>
Compares the string with C<value>; returns true if
@@ -425,9 +246,10 @@
*/
VTABLE INTVAL is_equal(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return (INTVAL)(Parrot_str_equal(INTERP, s, v));
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return (INTVAL)(Parrot_str_equal(INTERP, str_val, v));
}
MULTI INTVAL is_equal(PMC *value) {
@@ -446,8 +268,13 @@
*/
VTABLE INTVAL is_equal_num(PMC *value) {
- const FLOATVAL sf = Parrot_str_to_num(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ FLOATVAL sf;
const FLOATVAL vf = VTABLE_get_number(INTERP, value);
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ sf = Parrot_str_to_num(INTERP, str_val);
+
return (INTVAL)(sf == vf);
}
@@ -462,9 +289,10 @@
*/
VTABLE INTVAL is_equal_string(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return Parrot_str_equal(INTERP, s, v);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_equal(INTERP, str_val, v);
}
/*
@@ -479,9 +307,10 @@
*/
VTABLE INTVAL cmp(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return Parrot_str_compare(INTERP, s, v);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_compare(INTERP, str_val, v);
}
/*
@@ -496,8 +325,11 @@
*/
VTABLE INTVAL cmp_num(PMC *value) {
- const FLOATVAL sf = Parrot_str_to_num(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ FLOATVAL sf;
const FLOATVAL vf = VTABLE_get_number(INTERP, value);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ sf = Parrot_str_to_num(INTERP, str_val);
if (sf < vf)
return (INTVAL)(-1);
@@ -520,9 +352,10 @@
*/
VTABLE INTVAL cmp_string(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return Parrot_str_compare(INTERP, s, v);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_compare(INTERP, str_val, v);
}
/*
@@ -536,8 +369,9 @@
*/
VTABLE void substr(INTVAL offset, INTVAL length, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const s2 = Parrot_str_substr(INTERP, s, offset, length, NULL, 0);
+ STRING *str_val, *s2;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ s2 = Parrot_str_substr(INTERP, str_val, offset, length, NULL, 0);
VTABLE_set_string_native(INTERP, dest, s2);
}
@@ -552,8 +386,9 @@
*/
VTABLE STRING *substr_str(INTVAL offset, INTVAL length) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- return Parrot_str_substr(INTERP, s, offset, length, NULL, 0);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_substr(INTERP, str_val, offset, length, NULL, 0);
}
/*
@@ -568,9 +403,14 @@
*/
VTABLE INTVAL exists_keyed(PMC *key) {
- const INTVAL n = Parrot_str_byte_length(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ INTVAL n;
const INTVAL k = VTABLE_get_integer(INTERP, key);
- return (INTVAL)((k>=0 && k<=n) || (k<0 && -k<=n));
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ n = Parrot_str_byte_length(INTERP, str_val);
+
+ return (INTVAL)((k >= 0 && k <= n) || (k < 0 && -k <= n));
}
/*
@@ -601,8 +441,9 @@
}
VTABLE STRING *get_string_keyed_int(INTVAL pos) {
- STRING * const s = SELF.get_string();
- return Parrot_str_substr(INTERP, s, pos, 1, NULL, 0);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_substr(INTERP, str_val, pos, 1, NULL, 0);
}
VTABLE INTVAL get_integer_keyed(PMC *key) {
@@ -610,8 +451,9 @@
}
VTABLE INTVAL get_integer_keyed_int(INTVAL pos) {
- STRING * const s = SELF.get_string();
- return string_ord(INTERP, s, pos);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return string_ord(INTERP, str_val, pos);
}
VTABLE PMC *get_pmc_keyed(PMC *key) {
@@ -619,7 +461,7 @@
}
VTABLE PMC *get_pmc_keyed_int(INTVAL pos) {
- PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
VTABLE_set_string_native(INTERP, dest, SELF.get_string_keyed_int(pos));
return dest;
}
@@ -629,10 +471,10 @@
}
VTABLE void set_string_keyed_int(INTVAL pos, STRING * const value) {
- STRING * const s = SELF.get_string();
- const INTVAL len = Parrot_str_byte_length(INTERP, value);
- Parrot_str_replace(INTERP, s, pos, len, value, NULL);
- VTABLE_set_string_native(INTERP, SELF, s);
+ STRING *str_val;
+ const INTVAL len = Parrot_str_byte_length(INTERP, value);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ Parrot_str_replace(INTERP, str_val, pos, len, value, &str_val);
}
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
@@ -640,10 +482,10 @@
}
VTABLE void set_integer_keyed_int(INTVAL pos, INTVAL value) {
- STRING * const s = SELF.get_string();
+ STRING *str_val;
STRING * const c = string_chr(INTERP, (UINTVAL) value);
- Parrot_str_replace(INTERP, s, pos, 1, c, NULL);
- VTABLE_set_string_native(INTERP, SELF, s);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ Parrot_str_replace(INTERP, str_val, pos, 1, c, &str_val);
}
VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
@@ -694,7 +536,7 @@
*/
METHOD to_int(INTVAL base) {
- PMC *result = pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp,
+ PMC *result = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp,
enum_class_Integer));
/* TODO verify encoding */
@@ -763,11 +605,13 @@
*/
VTABLE INTVAL elements() {
- return Parrot_str_byte_length(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_byte_length(INTERP, str_val);
}
VTABLE PMC *get_iter() {
- return pmc_new_init(INTERP, enum_class_StringIterator, SELF);
+ return Parrot_pmc_new_init(INTERP, enum_class_StringIterator, SELF);
}
/*
@@ -786,8 +630,10 @@
*/
VTABLE void freeze(PMC *info) {
+ STRING *str_val;
SUPER(info);
- VTABLE_push_string(INTERP, info, VTABLE_get_string(INTERP, SELF));
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ VTABLE_push_string(INTERP, info, str_val);
}
/*
@@ -820,8 +666,11 @@
*/
METHOD lower() {
- STRING * const s = Parrot_str_downcase(INTERP,
- VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ STRING *s;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ s = Parrot_str_downcase(INTERP, str_val);
RETURN(STRING *s);
}
Modified: branches/ops_pct/src/pmc/stringhandle.pmc
==============================================================================
--- branches/ops_pct/src/pmc/stringhandle.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/stringhandle.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -94,7 +94,7 @@
VTABLE PMC *clone() {
Parrot_StringHandle_attributes * const old_struct = PARROT_STRINGHANDLE(SELF);
- PMC * const copy = pmc_new(INTERP, enum_class_StringHandle);
+ PMC * const copy = Parrot_pmc_new(INTERP, enum_class_StringHandle);
Parrot_StringHandle_attributes * const data_struct = PARROT_STRINGHANDLE(copy);
if (old_struct->stringhandle != NULL)
Modified: branches/ops_pct/src/pmc/stringiterator.pmc
==============================================================================
--- branches/ops_pct/src/pmc/stringiterator.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/stringiterator.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -73,7 +73,7 @@
Parrot_StringIterator_attributes * const attrs =
PARROT_STRINGITERATOR(SELF);
PMC * const clone =
- pmc_new_init(INTERP, enum_class_StringIterator, attrs->string);
+ Parrot_pmc_new_init(INTERP, enum_class_StringIterator, attrs->string);
Parrot_StringIterator_attributes * const clone_attrs =
PARROT_STRINGITERATOR(clone);
@@ -184,7 +184,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
- ret = pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ ret = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String));
VTABLE_set_string_native(INTERP, ret,
VTABLE_get_string_keyed_int(INTERP, attrs->string, attrs->pos++));
return ret;
@@ -248,7 +248,7 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
- ret = pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ ret = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String));
VTABLE_set_string_native(INTERP, ret,
VTABLE_get_string_keyed_int(INTERP, attrs->string, --attrs->pos));
return ret;
Modified: branches/ops_pct/src/pmc/sub.pmc
==============================================================================
--- branches/ops_pct/src/pmc/sub.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/sub.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -184,7 +184,8 @@
if (VTABLE_exists_keyed_str(INTERP, init, field)) {
PMC *tmp = VTABLE_get_pmc_keyed_str(INTERP, init, field);
/* Allocate structure to store argument information in. */
- attrs->arg_info = mem_allocate_zeroed_typed(Parrot_sub_arginfo);
+ attrs->arg_info = mem_gc_allocate_zeroed_typed(INTERP,
+ Parrot_sub_arginfo);
/*
Hash.get_integer_keyed_str return 0 if key doesn't exists.
So, don't check existence of key, just use it.
@@ -222,7 +223,7 @@
if (sub) {
if (sub->arg_info)
- mem_sys_free(sub->arg_info);
+ mem_gc_free(INTERP, sub->arg_info);
}
}
@@ -388,7 +389,7 @@
* create new context, place it in interpreter */
context = Parrot_pcc_get_signature(INTERP, caller_ctx);
if (PMC_IS_NULL(context))
- context = pmc_new(INTERP, enum_class_CallContext);
+ context = Parrot_pmc_new(INTERP, enum_class_CallContext);
CURRENT_CONTEXT(INTERP) = context;
Parrot_pcc_set_caller_ctx(INTERP, context, caller_ctx);
Parrot_pcc_allocate_registers(INTERP, context, sub->n_regs_used);
@@ -425,7 +426,7 @@
* and factor out common code with coroutine pmc
*/
if (!PMC_IS_NULL(sub->lex_info)) {
- Parrot_pcc_set_lex_pad(interp, context, pmc_new_init(INTERP,
+ Parrot_pcc_set_lex_pad(interp, context, Parrot_pmc_new_init(INTERP,
Parrot_get_ctx_HLL_type(interp, enum_class_LexPad),
sub->lex_info));
VTABLE_set_pointer(INTERP, Parrot_pcc_get_lex_pad(interp, context), context);
@@ -458,7 +459,7 @@
Parrot_pcc_set_sub(interp, dummy, outer_pmc);
if (!PMC_IS_NULL(outer_sub->lex_info)) {
- Parrot_pcc_set_lex_pad(interp, dummy, pmc_new_init(INTERP,
+ Parrot_pcc_set_lex_pad(interp, dummy, Parrot_pmc_new_init(INTERP,
Parrot_get_ctx_HLL_type(interp, enum_class_LexPad),
outer_sub->lex_info));
VTABLE_set_pointer(INTERP, Parrot_pcc_get_lex_pad(interp, dummy), dummy);
@@ -506,7 +507,7 @@
*/
VTABLE PMC *clone() {
- PMC * const ret = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC * const ret = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
Parrot_Sub_attributes *dest_sub;
Parrot_Sub_attributes *sub;
@@ -761,7 +762,7 @@
{
/* Create a hash, then use inspect_str to get all of the data to
* fill it up with. */
- PMC * const metadata = pmc_new(interp, enum_class_Hash);
+ PMC * const metadata = Parrot_pmc_new(interp, enum_class_Hash);
STRING * const pos_required_str = CONST_STRING(interp, "pos_required");
STRING * const pos_optional_str = CONST_STRING(interp, "pos_optional");
STRING * const named_required_str = CONST_STRING(interp, "named_required");
@@ -843,7 +844,8 @@
const opcode_t *pc = sub->seg->base.data + sub->start_offs;
/* Allocate structure to store argument information in. */
- sub->arg_info = mem_allocate_zeroed_typed(Parrot_sub_arginfo);
+ sub->arg_info = mem_gc_allocate_zeroed_typed(INTERP,
+ Parrot_sub_arginfo);
/* If the first instruction is a get_params... */
if (*pc == PARROT_OP_get_params_pc) {
@@ -908,7 +910,7 @@
"Unknown introspection value '%S'", what);
}
- retval = pmc_new(INTERP, enum_class_Integer);
+ retval = Parrot_pmc_new(INTERP, enum_class_Integer);
VTABLE_set_integer_native(INTERP, retval, count_found);
return retval;
}
@@ -1064,7 +1066,7 @@
if (PMC_IS_NULL(sub->lex_info)) {
const INTVAL lex_info_id = Parrot_get_ctx_HLL_type(interp,
enum_class_LexInfo);
- sub->lex_info = pmc_new_init(interp, lex_info_id, SELF);
+ sub->lex_info = Parrot_pmc_new_init(interp, lex_info_id, SELF);
}
/* If we've got a context around for the outer sub, set it as the
Modified: branches/ops_pct/src/pmc/task.pmc
==============================================================================
--- branches/ops_pct/src/pmc/task.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/task.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -180,7 +180,7 @@
VTABLE PMC *clone() {
/* Create the new task PMC, of the same type of this one (we may
* have been subclassed). */
- PMC * const copy = pmc_new(interp, SELF->vtable->base_type);
+ PMC * const copy = Parrot_pmc_new(interp, SELF->vtable->base_type);
Parrot_Task_attributes * const new_struct = PARROT_TASK(copy);
Parrot_Task_attributes * const old_struct = PARROT_TASK(SELF);
@@ -206,27 +206,27 @@
PMC *value;
if (Parrot_str_equal(interp, name, CONST_STRING(interp, "id"))) {
- value = pmc_new(interp, enum_class_Integer);
+ value = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, value, core_struct->id);
}
else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "type"))) {
- value = pmc_new(interp, enum_class_String);
+ value = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, value, core_struct->type);
}
else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "subtype"))) {
- value = pmc_new(interp, enum_class_String);
+ value = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, value, core_struct->subtype);
}
else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "priority"))) {
- value = pmc_new(interp, enum_class_Integer);
+ value = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, value, core_struct->priority);
}
else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "status"))) {
- value = pmc_new(interp, enum_class_String);
+ value = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, value, core_struct->status);
}
else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "birthtime"))) {
- value = pmc_new(interp, enum_class_Float);
+ value = Parrot_pmc_new(interp, enum_class_Float);
VTABLE_set_number_native(interp, value, core_struct->birthtime);
}
else {
Modified: branches/ops_pct/src/pmc/undef.pmc
==============================================================================
--- branches/ops_pct/src/pmc/undef.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/undef.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -41,7 +41,7 @@
VTABLE void set_pmc(PMC *other) {
if (!PObj_is_object_TEST(other)) {
- pmc_reuse(INTERP, SELF, other->vtable->base_type, 0);
+ Parrot_pmc_reuse(INTERP, SELF, other->vtable->base_type, 0);
VTABLE_set_pmc(INTERP, SELF, other);
}
else {
@@ -127,7 +127,7 @@
*/
VTABLE void set_integer_native(INTVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_Integer, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Integer, 0);
VTABLE_set_integer_native(INTERP, SELF, value);
}
@@ -156,7 +156,7 @@
*/
VTABLE void set_number_native(FLOATVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_Float, 0);
+ Parrot_pmc_reuse(INTERP, SELF, enum_class_Float, 0);
VTABLE_set_number_native(INTERP, SELF, value);
}
@@ -188,7 +188,7 @@
*/
VTABLE void set_string_native(STRING *value) {
- pmc_reuse(interp, SELF, enum_class_String, 0);
+ Parrot_pmc_reuse(interp, SELF, enum_class_String, 0);
VTABLE_set_string_native(INTERP, SELF, value);
}
@@ -217,7 +217,7 @@
*/
VTABLE PMC *logical_not(PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_bool(INTERP, dest, 1);
return dest;
}
@@ -264,7 +264,7 @@
*/
VTABLE PMC *clone() {
- return pmc_new(INTERP, SELF->vtable->base_type);
+ return Parrot_pmc_new(INTERP, SELF->vtable->base_type);
}
/*
Modified: branches/ops_pct/src/pmc/unmanagedstruct.pmc
==============================================================================
--- branches/ops_pct/src/pmc/unmanagedstruct.pmc Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc/unmanagedstruct.pmc Sun Mar 7 19:33:20 2010 (r44743)
@@ -386,7 +386,7 @@
PMC *sig = VTABLE_getprop(interp, ptr, signature_str);
if (VTABLE_defined(interp, sig)) {
STRING *sig_str = VTABLE_get_string(interp, sig);
- ret = pmc_new(interp, enum_class_NCI);
+ ret = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, ret, sig_str,
*(PMC **)p);
}
@@ -703,7 +703,7 @@
*/
VTABLE PMC *clone() {
- PMC *clone = pmc_new(INTERP, enum_class_UnManagedStruct);
+ PMC *clone = Parrot_pmc_new(INTERP, enum_class_UnManagedStruct);
mem_sys_memmove(PMC_data(clone), PMC_data(SELF),
sizeof (Parrot_UnManagedStruct_attributes));
PARROT_UNMANAGEDSTRUCT(clone)->init =
Modified: branches/ops_pct/src/pmc_freeze.c
==============================================================================
--- branches/ops_pct/src/pmc_freeze.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/pmc_freeze.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -31,6 +31,8 @@
#define THAW_BLOCK_GC_SIZE 100000
+/* HEADERIZER HFILE: include/parrot/pmc_freeze.h */
+
/*
=head2 Public Interface
@@ -52,11 +54,39 @@
Parrot_freeze(PARROT_INTERP, ARGIN(PMC *pmc))
{
ASSERT_ARGS(Parrot_freeze)
- PMC *image = pmc_new(interp, enum_class_ImageIO);
+ PMC *image = Parrot_pmc_new(interp, enum_class_ImageIO);
VTABLE_set_pmc(interp, image, pmc);
return VTABLE_get_string(interp, image);
}
+/*
+
+=item C<UINTVAL Parrot_freeze_size(PARROT_INTERP, PMC *pmc)>
+
+Get the size of an image to be frozen without allocating a large buffer.
+
+Used in C<Packfile_Constant_pack_size>.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+UINTVAL
+Parrot_freeze_size(PARROT_INTERP, ARGIN(PMC *pmc))
+{
+ ASSERT_ARGS(Parrot_freeze_size)
+ UINTVAL int_result;
+ PMC *pmc_result;
+ PMC *visitor = Parrot_pmc_new(interp, enum_class_ImageIOSize);
+ VTABLE_set_pmc(interp, visitor, pmc);
+ pmc_result = VTABLE_get_pmc(interp, visitor);
+ int_result = VTABLE_get_integer(interp, pmc_result);
+ return int_result;
+}
+
/*
@@ -82,7 +112,7 @@
{
ASSERT_ARGS(Parrot_thaw)
- PMC *info = pmc_new(interp, enum_class_ImageIO);
+ PMC *info = Parrot_pmc_new(interp, enum_class_ImageIO);
int gc_block = 0;
PMC *result;
@@ -103,8 +133,8 @@
gc_block = 1;
}
- VTABLE_set_pointer(interp, info, &result);
VTABLE_set_string_native(interp, info, image);
+ result = VTABLE_get_pmc(interp, info);
if (gc_block) {
Parrot_unblock_GC_mark(interp);
@@ -158,6 +188,72 @@
return VTABLE_clone(interp, pmc);
}
+/*
+
+=item C<void Parrot_visit_loop_visit(PARROT_INTERP, PMC *info)>
+
+Iterate a visitor PMC visiting each encountered target PMC.
+
+=cut
+
+*/
+
+void
+Parrot_visit_loop_visit(PARROT_INTERP, ARGIN(PMC *info)) {
+ ASSERT_ARGS(Parrot_visit_loop_visit)
+
+ INTVAL i;
+ PMC * const todo = VTABLE_get_iter(interp, info);
+
+ /* can't cache upper limit, visit may append items */
+ for (i = 0; i < VTABLE_elements(interp, todo); i++) {
+ PMC *current = VTABLE_get_pmc_keyed_int(interp, todo, i);
+ if (!current)
+ Parrot_ex_throw_from_c_args(interp, NULL, 1,
+ "NULL current PMC in visit_loop_todo_list");
+
+ PARROT_ASSERT(current->vtable);
+
+ VTABLE_visit(interp, current, info);
+
+ VISIT_PMC(interp, info, PMC_metadata(current));
+ }
+}
+
+/*
+
+=item C<void Parrot_visit_loop_thawfinish(PARROT_INTERP, PMC *info)>
+
+Iterate a visitor PMC thawfinishing each encountered target PMC.
+
+=cut
+
+*/
+
+void
+Parrot_visit_loop_thawfinish(PARROT_INTERP, ARGIN(PMC *info)) {
+ ASSERT_ARGS(Parrot_visit_loop_thawfinish)
+
+ /* call thawfinish for each processed PMC */
+ /*
+ * Thaw in reverse order. We have to fully thaw younger PMCs
+ * before use them in older.
+ *
+ * XXX There are no younger or older pmcs in a directed graph
+ * that allows cycles. Any code that requires a specific
+ * order here is likely broken.
+ */
+
+ PMC * const todo = VTABLE_get_iter(interp, info);
+ const INTVAL n = VTABLE_elements(interp, todo);
+ int i;
+
+ for (i = n-1; i >= 0; --i) {
+ PMC *current = VTABLE_get_pmc_keyed_int(interp, todo, i);
+ if (!PMC_IS_NULL(current))
+ VTABLE_thawfinish(interp, current, info);
+ }
+}
/*
Modified: branches/ops_pct/src/runcore/cores.c
==============================================================================
--- branches/ops_pct/src/runcore/cores.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/runcore/cores.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -405,7 +405,7 @@
{
ASSERT_ARGS(Parrot_runcore_slow_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "slow");
coredata->id = PARROT_SLOW_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -435,7 +435,7 @@
{
ASSERT_ARGS(Parrot_runcore_fast_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "fast");
coredata->id = PARROT_FAST_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -465,7 +465,7 @@
{
ASSERT_ARGS(Parrot_runcore_switch_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *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;
@@ -495,7 +495,7 @@
{
ASSERT_ARGS(Parrot_runcore_exec_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "exec");
coredata->id = PARROT_EXEC_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -523,7 +523,7 @@
{
ASSERT_ARGS(Parrot_runcore_gc_debug_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "gc_debug");
coredata->id = PARROT_GC_DEBUG_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -553,7 +553,7 @@
{
ASSERT_ARGS(Parrot_runcore_debugger_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "debugger");
coredata->id = PARROT_DEBUGGER_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -585,7 +585,7 @@
{
ASSERT_ARGS(Parrot_runcore_cgp_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *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;
@@ -618,7 +618,7 @@
{
ASSERT_ARGS(Parrot_runcore_cgoto_init)
- Parrot_runcore_t *coredata = mem_allocate_typed(Parrot_runcore_t);
+ Parrot_runcore_t *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;
@@ -930,6 +930,7 @@
Parrot_pcc_set_pc(interp, CURRENT_CONTEXT(interp), pc);
DO_OP(pc, interp);
+ interp->pdb->cur_opcode = pc;
if (interp->pdb->state & PDB_STOPPED) {
Parrot_debugger_start(interp, pc);
@@ -999,16 +1000,8 @@
const size_t N = interp->code->base.size;
size_t i, n_pics;
-/* Parrot_memalign_if_possible in OpenBSD allocates 256 if you ask for 312
- -- Need to verify this, it may have been a bug elsewhere. If it works now,
- we can remove the mem_sys_allocate_zeroed line below. */
-
-#if 0
- void **temp = (void **)mem_sys_allocate_zeroed(N * sizeof (void *));
-#else
void **temp = (void **)Parrot_memalign_if_possible(256,
N * sizeof (void *));
-#endif
/* calc and remember pred_offset */
CONTEXT(interp)->pred_offset = pc - (opcode_t *)temp;
@@ -1057,10 +1050,10 @@
ASSERT_ARGS(load_prederef)
const oplib_init_f init_func = get_core_op_lib_init(interp, runcore);
- int (*get_op)(const char * name, int full);
+ int (*get_op)(PARROT_INTERP, const char * name, int full);
get_op = interp->op_lib->op_code;
- interp->op_lib = init_func(1);
+ interp->op_lib = init_func(interp, 1);
/* preserve the get_op function */
interp->op_lib->op_code = get_op;
Modified: branches/ops_pct/src/runcore/main.c
==============================================================================
--- branches/ops_pct/src/runcore/main.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/runcore/main.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -10,20 +10,6 @@
The runcore API handles running the operations.
-The predereferenced code chunk is pre-initialized with the opcode
-function pointers, addresses, or opnumbers of the C<prederef__>
-opcode. This opcode then calls the C<do_prederef()> function, which then
-fills in the real function, address or op number.
-
-Because the C<prederef__> opcode returns the same C<pc_prederef> it was
-passed, the runops loop will re-execute the same location, which will
-then have the pointer to the real C<prederef> opfunc and C<prederef>
-args.
-
-Pointer arithmetic is used to determine the index into the bytecode
-corresponding to the currect opcode. The bytecode and prederef arrays
-have the same number of elements because there is a one-to-one mapping.
-
=head2 Functions
=over 4
@@ -55,7 +41,9 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void dynop_register_switch(size_t n_old, size_t n_new);
+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,
@@ -74,24 +62,14 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void prederef_args(
- ARGMOD(void **pc_prederef),
- PARROT_INTERP,
- ARGIN(const opcode_t *pc),
- ARGIN(const op_info_t *opinfo))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- FUNC_MODIFIES(*pc_prederef);
-
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 = (0)
+#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 = (\
@@ -99,11 +77,6 @@
#define ASSERT_ARGS_notify_func_table __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(table))
-#define ASSERT_ARGS_prederef_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(pc_prederef) \
- , PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pc) \
- , PARROT_ASSERT_ARG(opinfo))
#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 = (\
@@ -166,11 +139,12 @@
Parrot_runcore_register(PARROT_INTERP, ARGIN(Parrot_runcore_t *coredata))
{
ASSERT_ARGS(Parrot_runcore_register)
- size_t num_cores = ++interp->num_cores;
+ size_t i = interp->num_cores++;
- mem_realloc_n_typed(interp->cores, num_cores, Parrot_runcore_t *);
+ interp->cores = mem_gc_realloc_n_typed_zeroed(interp, interp->cores,
+ interp->num_cores, i, Parrot_runcore_t *);
- interp->cores[num_cores - 1] = coredata;
+ interp->cores[i] = coredata;
return 1;
}
@@ -213,195 +187,6 @@
/*
-=item C<static void prederef_args(void **pc_prederef, PARROT_INTERP, const
-opcode_t *pc, const op_info_t *opinfo)>
-
-Called from C<do_prederef()> to deal with any arguments.
-
-C<pc_prederef> is the current opcode.
-
-=cut
-
-*/
-
-static void
-prederef_args(ARGMOD(void **pc_prederef), PARROT_INTERP,
- ARGIN(const opcode_t *pc), ARGIN(const op_info_t *opinfo))
-{
- ASSERT_ARGS(prederef_args)
- const PackFile_ConstTable * const const_table = interp->code->const_table;
-
- const int regs_n = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_NUM);
- const int regs_i = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT);
- const int regs_p = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_PMC);
- const int regs_s = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR);
-
- /* prederef var part too */
- const int m = opinfo->op_count;
- int n = opinfo->op_count;
- int i;
-
- ADD_OP_VAR_PART(interp, interp->code, pc, n);
- for (i = 1; i < n; i++) {
- const opcode_t arg = pc[i];
- int type;
- if (i >= m) {
- PMC * const sig = (PMC*) pc_prederef[1];
- type = VTABLE_get_integer_keyed_int(interp, sig, i - m);
- type &= (PARROT_ARG_TYPE_MASK | PARROT_ARG_CONSTANT);
- }
- else
- type = opinfo->types[i - 1];
-
- switch (type) {
-
- case PARROT_ARG_KI:
- case PARROT_ARG_I:
- if (arg < 0 || arg >= regs_i)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal register number");
-
- pc_prederef[i] = (void *)REG_OFFS_INT(arg);
- break;
-
- case PARROT_ARG_N:
- if (arg < 0 || arg >= regs_n)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal register number");
-
- pc_prederef[i] = (void *)REG_OFFS_NUM(arg);
- break;
-
- case PARROT_ARG_K:
- case PARROT_ARG_P:
- if (arg < 0 || arg >= regs_p)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal register number");
-
- pc_prederef[i] = (void *)REG_OFFS_PMC(arg);
- break;
-
- case PARROT_ARG_S:
- if (arg < 0 || arg >= regs_s)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal register number");
-
- pc_prederef[i] = (void *)REG_OFFS_STR(arg);
- break;
-
- case PARROT_ARG_KIC:
- case PARROT_ARG_IC:
- pc_prederef[i] = (void *)pc[i];
- break;
-
- case PARROT_ARG_NC:
- if (arg < 0 || arg >= const_table->const_count)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal constant number");
-
- pc_prederef[i] = (void *)&const_table->constants[arg]->u.number;
- break;
-
- case PARROT_ARG_SC:
- if (arg < 0 || arg >= const_table->const_count)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal constant number");
-
- pc_prederef[i] = (void *)const_table->constants[arg]->u.string;
- break;
-
- case PARROT_ARG_PC:
- case PARROT_ARG_KC:
- if (arg < 0 || arg >= const_table->const_count)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal constant number");
-
- pc_prederef[i] = (void *)const_table->constants[arg]->u.key;
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ARG_OP_NOT_HANDLED,
- "Unhandled argtype 0x%x\n", type);
- break;
- }
- }
-}
-
-
-/*
-
-=item C<void do_prederef(void **pc_prederef, PARROT_INTERP, Parrot_runcore_t
-*runcore)>
-
-This is called from within the run cores to predereference the current
-opcode.
-
-C<pc_prederef> is the current opcode, and C<type> is the run core type.
-
-=cut
-
-*/
-
-void
-do_prederef(ARGIN(void **pc_prederef), PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore))
-{
- ASSERT_ARGS(do_prederef)
- const size_t offset = pc_prederef - interp->code->prederef.code;
- opcode_t * const pc = ((opcode_t *)interp->code->base.data) + offset;
- const op_info_t *opinfo;
- size_t n;
-
- if (*pc < 0 || *pc >= (opcode_t)interp->op_count)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INTERP_ERROR,
- "Illegal opcode");
-
- opinfo = &interp->op_info_table[*pc];
-
- prederef_args(pc_prederef, interp, pc, opinfo);
-
- if (PARROT_RUNCORE_PREDEREF_OPS_TEST(runcore)) {
- *pc_prederef = PARROT_RUNCORE_CGOTO_OPS_TEST(runcore)
- ? ((void **)interp->op_lib->op_func_table)[*pc]
- : (void**)*pc;
- }
- else
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "Tried to prederef wrong core");
-
- /* now remember backward branches, invoke and similar opcodes */
- n = opinfo->op_count;
-
- if (((opinfo->jump & PARROT_JUMP_RELATIVE)
- && opinfo->types[n - 2] == PARROT_ARG_IC
- && pc[n - 1] < 0) /* relative backward branch */
- || (opinfo->jump & PARROT_JUMP_ADDRESS)) {
- Prederef * const pi = &interp->code->prederef;
-
- /* first time prederef.branches == NULL:
- * estimate size to 1/16th of opcodes */
- if (!pi->branches) {
- size_t nb = interp->code->base.size / 16;
- if (nb < 8)
- nb = (size_t)8;
-
- pi->branches = mem_allocate_n_typed(nb, Prederef_branch);
- pi->n_allocated = nb;
- pi->n_branches = 0;
- }
- else if (pi->n_branches >= pi->n_allocated) {
- pi->n_allocated = (size_t) (pi->n_allocated * 1.5);
- mem_realloc_n_typed(pi->branches, pi->n_allocated, Prederef_branch);
- }
-
- pi->branches[pi->n_branches].offs = offset;
- pi->branches[pi->n_branches].op = *pc_prederef;
-
- ++pi->n_branches;
- }
-}
-
-
-/*
-
=item C<static void turn_ev_check(PARROT_INTERP, int on)>
Turn on or off event checking for prederefed cores.
@@ -478,10 +263,10 @@
stop_prederef(PARROT_INTERP)
{
ASSERT_ARGS(stop_prederef)
- interp->op_func_table = PARROT_CORE_OPLIB_INIT(1)->op_func_table;
+ interp->op_func_table = PARROT_CORE_OPLIB_INIT(interp, 1)->op_func_table;
if (interp->evc_func_table) {
- mem_sys_free(interp->evc_func_table);
+ mem_gc_free(interp, interp->evc_func_table);
interp->evc_func_table = NULL;
}
@@ -577,7 +362,7 @@
ASSERT_ARGS(Parrot_setup_event_func_ptrs)
const size_t n = interp->op_count;
const oplib_init_f init_func = get_core_op_lib_init(interp, interp->run_core);
- op_lib_t * const lib = init_func(1);
+ op_lib_t * const lib = init_func(interp, 1);
/* remember op_func_table */
interp->save_func_table = lib->op_func_table;
@@ -589,7 +374,7 @@
if (!interp->evc_func_table) {
size_t i;
- interp->evc_func_table = mem_allocate_n_typed(n, op_func_t);
+ interp->evc_func_table = mem_gc_allocate_n_zeroed_typed(interp, n, op_func_t);
for (i = 0; i < n; ++i)
interp->evc_func_table[i] = (op_func_t)
@@ -623,11 +408,11 @@
if (destroy)
(*destroy)(interp, core);
- mem_sys_free(core);
+ mem_gc_free(interp, core);
}
if (interp->cores)
- mem_sys_free(interp->cores);
+ mem_gc_free(interp, interp->cores);
interp->cores = NULL;
interp->run_core = NULL;
@@ -637,20 +422,20 @@
return;
#ifdef HAVE_COMPUTED_GOTO
- cg_lib = PARROT_CORE_CGP_OPLIB_INIT(1);
+ cg_lib = PARROT_CORE_CGP_OPLIB_INIT(interp, 1);
if (cg_lib->op_func_table)
- mem_sys_free(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(1);
+ cg_lib = PARROT_CORE_CG_OPLIB_INIT(interp, 1);
if (cg_lib->op_func_table)
- mem_sys_free(cg_lib->op_func_table);
+ mem_gc_free(interp, cg_lib->op_func_table);
cg_lib->op_func_table = NULL;
#endif
- mem_sys_free(interp->op_info_table);
- mem_sys_free(interp->op_func_table);
+ mem_gc_free(interp, interp->op_info_table);
+ mem_gc_free(interp, interp->op_func_table);
interp->op_info_table = NULL;
interp->op_func_table = NULL;
}
@@ -697,14 +482,14 @@
}
if (!interp->all_op_libs)
- interp->all_op_libs = (op_lib_t **)mem_sys_allocate(
- sizeof (op_lib_t *) * (interp->n_libs + 1));
+ interp->all_op_libs = mem_gc_allocate_n_zeroed_typed(interp,
+ interp->n_libs + 1, op_lib_t*);
else
- mem_realloc_n_typed(interp->all_op_libs, interp->n_libs + 1,
- op_lib_t *);
+ interp->all_op_libs = mem_gc_realloc_n_typed_zeroed(interp, interp->all_op_libs,
+ interp->n_libs + 1, interp->n_libs, op_lib_t *);
init_func = get_dynamic_op_lib_init(interp, lib_pmc);
- lib = init_func(1);
+ lib = init_func(interp, 1);
interp->all_op_libs[interp->n_libs++] = lib;
@@ -722,22 +507,22 @@
n_old = interp->op_count;
n_new = lib->op_count;
n_tot = n_old + n_new;
- core = PARROT_CORE_OPLIB_INIT(1);
+ core = PARROT_CORE_OPLIB_INIT(interp, 1);
PARROT_ASSERT(interp->op_count == core->op_count);
- new_evc_func_table = (op_func_t *)mem_sys_realloc(interp->evc_func_table,
- sizeof (op_func_t) * n_tot);
+ new_evc_func_table = mem_gc_realloc_n_typed_zeroed(interp,
+ interp->evc_func_table, n_tot, n_old, op_func_t);
if (core->flags & OP_FUNC_IS_ALLOCATED) {
- new_func_table = (op_func_t *)mem_sys_realloc(core->op_func_table,
- sizeof (op_func_t) * n_tot);
- new_info_table = (op_info_t *)mem_sys_realloc(core->op_info_table,
- sizeof (op_info_t) * n_tot);
+ new_func_table = mem_gc_realloc_n_typed_zeroed(interp,
+ core->op_func_table, n_tot, n_old, op_func_t);
+ new_info_table = mem_gc_realloc_n_typed_zeroed(interp,
+ core->op_info_table, n_tot, n_old, op_info_t);
}
else {
/* allocate new op_func and info tables */
- new_func_table = mem_allocate_n_typed(n_tot, op_func_t);
- new_info_table = mem_allocate_n_typed(n_tot, op_info_t);
+ new_func_table = mem_gc_allocate_n_zeroed_typed(interp, n_tot, op_func_t);
+ new_info_table = mem_gc_allocate_n_zeroed_typed(interp, n_tot, op_info_t);
/* copy old */
for (i = 0; i < n_old; ++i) {
@@ -763,7 +548,7 @@
interp->save_func_table = new_func_table;
/* deinit core, so that it gets rehashed */
- (void) PARROT_CORE_OPLIB_INIT(0);
+ (void) PARROT_CORE_OPLIB_INIT(interp, 0);
/* set table */
core->op_func_table = interp->op_func_table = new_func_table;
@@ -777,7 +562,7 @@
dynop_register_xx(interp, n_old, n_new, PARROT_CORE_CG_OPLIB_INIT);
#endif
- dynop_register_switch(n_old, n_new);
+ dynop_register_switch(interp, n_old, n_new);
}
@@ -799,25 +584,24 @@
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(1);
- op_lib_t *new_lib;
+ 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;
-#endif
-
oplib_init_f new_init_func;
PMC *lib_variant;
+#endif
if (cg_lib->flags & OP_FUNC_IS_ALLOCATED) {
- ops_addr = (op_func_t *)mem_sys_realloc(cg_lib->op_func_table,
- n_tot * sizeof (op_func_t));
+ 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_allocate_n_typed(n_tot, op_func_t);
+ 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)
@@ -890,13 +674,14 @@
/* tell the cg_core about the new jump table */
cg_lib->op_func_table = ops_addr;
cg_lib->op_count = n_tot;
- init_func((long) ops_addr);
+ init_func(interp, (long) ops_addr);
}
/*
-=item C<static void dynop_register_switch(size_t n_old, size_t n_new)>
+=item C<static void dynop_register_switch(PARROT_INTERP, size_t n_old, size_t
+n_new)>
Used only at the end of dynop_register. Sums the old and new op_counts
storing the result into the operations count field of the interpreter
@@ -907,10 +692,10 @@
*/
static void
-dynop_register_switch(size_t n_old, size_t n_new)
+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(1);
+ op_lib_t * const lib = PARROT_CORE_SWITCH_OPLIB_INIT(interp, 1);
lib->op_count = n_old + n_new;
}
@@ -931,7 +716,7 @@
ASSERT_ARGS(notify_func_table)
const oplib_init_f init_func = get_core_op_lib_init(interp, interp->run_core);
- init_func((long) table);
+ init_func(interp, (long) table);
if (PARROT_RUNCORE_FUNC_TABLE_TEST(interp->run_core)) {
PARROT_ASSERT(table);
Modified: branches/ops_pct/src/runcore/profiling.c
==============================================================================
--- branches/ops_pct/src/runcore/profiling.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/runcore/profiling.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -34,7 +34,7 @@
#endif
#define PPROF_VERSION 2
-#define MAX_NAMESPACE_DEPTH 32
+#define MAX_NS_DEPTH 32
#define code_start interp->code->base.data
#define code_end (interp->code->base.data + interp->code->base.size)
@@ -44,6 +44,10 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+static void add_bogus_parent_runloop(
+ ARGIN(Parrot_profiling_runcore_t * runcore))
+ __attribute__nonnull__(1);
+
PARROT_CAN_RETURN_NULL
static void * init_profiling_core(PARROT_INTERP,
ARGIN(Parrot_profiling_runcore_t *runcore),
@@ -54,13 +58,17 @@
static void record_values_ascii_pprof(
ARGIN(Parrot_profiling_runcore_t * runcore),
+ ARGIN(PPROF_DATA *pprof_data),
ARGIN_NULLOK(Parrot_profiling_line type))
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void record_values_none(
ARGIN(Parrot_profiling_runcore_t * runcore),
+ ARGIN(PPROF_DATA *pprof_data),
ARGIN_NULLOK(Parrot_profiling_line type))
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
@@ -71,14 +79,18 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
+#define ASSERT_ARGS_add_bogus_parent_runloop __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(runcore))
#define ASSERT_ARGS_init_profiling_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(runcore) \
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_record_values_ascii_pprof __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(runcore))
+ PARROT_ASSERT_ARG(runcore) \
+ , PARROT_ASSERT_ARG(pprof_data))
#define ASSERT_ARGS_record_values_none __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(runcore))
+ PARROT_ASSERT_ARG(runcore) \
+ , PARROT_ASSERT_ARG(pprof_data))
#define ASSERT_ARGS_runops_profiling_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(runcore) \
@@ -103,7 +115,7 @@
ASSERT_ARGS(Parrot_runcore_profiling_init)
Parrot_profiling_runcore_t *coredata =
- mem_allocate_typed(Parrot_profiling_runcore_t);
+ mem_gc_allocate_zeroed_typed(interp, Parrot_profiling_runcore_t);
coredata->name = CONST_STRING(interp, "profiling");
coredata->id = PARROT_PROFILING_CORE;
@@ -148,7 +160,7 @@
runcore->level = 0;
runcore->time_size = 32;
runcore->line_cache = parrot_new_pointer_hash(interp);
- runcore->time = mem_allocate_n_typed(runcore->time_size,
+ runcore->time = mem_gc_allocate_n_typed(interp, runcore->time_size,
UHUGEINTVAL);
/* figure out what format the output should be in */
@@ -222,7 +234,7 @@
}
/* put profile_filename in the gc root set so it won't get collected */
- gc_register_pmc(interp, (PMC *) runcore->profile_filename);
+ Parrot_pmc_gc_register(interp, (PMC *) runcore->profile_filename);
Profiling_first_loop_SET(runcore);
@@ -250,10 +262,10 @@
{
ASSERT_ARGS(runops_profiling_core)
- PMC *preop_sub, *argv;
- opcode_t *preop_pc;
- STRING *unknown_file = CONST_STRING(interp, "<unknown file>");
- UHUGEINTVAL op_time;
+ PMC *argv;
+ opcode_t *preop_pc;
+ UHUGEINTVAL op_time;
+ PPROF_DATA pprof_data[PPROF_DATA_MAX + 1];
runcore->runcore_start = Parrot_hires_get_time();
@@ -262,9 +274,8 @@
if (runcore->level >= runcore->time_size) {
runcore->time_size *= 2;
- runcore->time =
- mem_realloc_n_typed(runcore->time, runcore->time_size + 1,
- UHUGEINTVAL);
+ runcore->time = mem_gc_realloc_n_typed(interp,
+ runcore->time, runcore->time_size + 1, UHUGEINTVAL);
}
/* store the time between DO_OP and the start of this runcore in this
@@ -278,22 +289,19 @@
/* argv isn't initialized until after :init (etc) subs are executed */
if (argv && !Profiling_have_printed_cli_TEST(runcore)) {
- PMC *iglobals = interp->iglobals;
- PMC *executable = VTABLE_get_pmc_keyed_int(interp, iglobals,
- IGLOBALS_EXECUTABLE);
- STRING *space = CONST_STRING(interp, " ");
- STRING *cli_args = Parrot_str_join(interp, space, argv);
- STRING *cli_str;
char *cli_cstr;
+ STRING *space, *cli_args, *cli_exe, *cli_str;
+ PMC *exe_name = VTABLE_get_pmc_keyed_int(interp, interp->iglobals, IGLOBALS_EXECUTABLE);
- cli_str = Parrot_str_concat(interp, VTABLE_get_string(interp,
- executable), space, 0);
- cli_str = Parrot_str_concat(interp, cli_str, cli_args, 0);
+ space = CONST_STRING(interp, " ");
+ cli_args = Parrot_str_join(interp, space, argv);
+ cli_exe = VTABLE_get_string(interp, exe_name);
+ cli_str = Parrot_sprintf_c(interp, "%Ss %Ss", cli_exe, cli_args);
cli_cstr = Parrot_str_to_cstring(interp, cli_str);
/* CLI line won't reflect any options passed to the parrot binary. */
- runcore->pprof_data[PPROF_DATA_CLI] = (PPROF_DATA) cli_cstr;
- runcore->output_fn(runcore, PPROF_LINE_CLI);
+ pprof_data[PPROF_DATA_CLI] = (PPROF_DATA) cli_cstr;
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_CLI);
Parrot_str_free_cstring(cli_cstr);
@@ -302,23 +310,12 @@
if (Profiling_first_loop_TEST(runcore)) {
- runcore->pprof_data[PPROF_DATA_VERSION] = (PPROF_DATA) PPROF_VERSION;
- runcore->output_fn(runcore, PPROF_LINE_VERSION);
+ Profiling_first_loop_CLEAR(runcore);
- /* make all separate runloops appear to come from a single source */
- runcore->pprof_data[PPROF_DATA_NAMESPACE] = (PPROF_DATA) "main";
- runcore->pprof_data[PPROF_DATA_FILENAME] = (PPROF_DATA) "no_file";
- runcore->pprof_data[PPROF_DATA_SUB_ADDR] = 1;
- runcore->pprof_data[PPROF_DATA_CTX_ADDR] = 1;
- runcore->output_fn(runcore, PPROF_LINE_CONTEXT_SWITCH);
-
- runcore->pprof_data[PPROF_DATA_LINE] = runcore->runloop_count;
- runcore->pprof_data[PPROF_DATA_TIME] = 0;
- runcore->pprof_data[PPROF_DATA_OPNAME] = (PPROF_DATA) "noop";
- runcore->output_fn(runcore, PPROF_LINE_OP);
+ pprof_data[PPROF_DATA_VERSION] = (PPROF_DATA) PPROF_VERSION;
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_VERSION);
- runcore->runloop_count++;
- Profiling_first_loop_CLEAR(runcore);
+ add_bogus_parent_runloop(runcore);
}
while (pc) {
@@ -333,7 +330,6 @@
preop_ctx_pmc = CURRENT_CONTEXT(interp);
preop_ctx = PMC_data_typed(preop_ctx_pmc, Parrot_Context*);
preop_ctx->current_pc = pc;
- preop_sub = preop_ctx->current_sub;
preop_pc = pc;
runcore->level++;
@@ -363,7 +359,7 @@
if (preop_ctx->current_sub) {
STRING *sub_name, *full_ns, *ns_separator, *preop_filename;
char *full_ns_cstr, *filename_cstr;
- STRING *ns_names[MAX_NAMESPACE_DEPTH];
+ STRING *ns_names[MAX_NS_DEPTH];
PMC *ns = preop_ctx->current_namespace;
INTVAL i;
@@ -376,7 +372,7 @@
full_ns = Parrot_str_new(interp, "", 0);
ns_separator = Parrot_str_new(interp, ";", 1);
- i = MAX_NAMESPACE_DEPTH - 1;
+ i = MAX_NS_DEPTH - 1;
for (;ns ; i--) {
if (i < 0) {
/* should probably warn about truncated namespace here */
@@ -388,7 +384,7 @@
i++;
i++; /* the root namespace has an empty name, so ignore it */
- for (;i < MAX_NAMESPACE_DEPTH; i++) {
+ for (;i < MAX_NS_DEPTH; i++) {
full_ns = Parrot_str_concat(interp, full_ns, ns_names[i], 0);
full_ns = Parrot_str_concat(interp, full_ns, ns_separator, 0);
}
@@ -397,11 +393,11 @@
full_ns = Parrot_str_concat(interp, full_ns, sub_name, 0);
full_ns_cstr = Parrot_str_to_cstring(interp, full_ns);
- runcore->pprof_data[PPROF_DATA_NAMESPACE] = (PPROF_DATA) full_ns_cstr;
- runcore->pprof_data[PPROF_DATA_FILENAME] = (PPROF_DATA) filename_cstr;
- runcore->pprof_data[PPROF_DATA_SUB_ADDR] = (PPROF_DATA) preop_ctx->current_sub;
- runcore->pprof_data[PPROF_DATA_CTX_ADDR] = (PPROF_DATA) preop_ctx;
- runcore->output_fn(runcore, PPROF_LINE_CONTEXT_SWITCH);
+ pprof_data[PPROF_DATA_NAMESPACE] = (PPROF_DATA) full_ns_cstr;
+ pprof_data[PPROF_DATA_FILENAME] = (PPROF_DATA) filename_cstr;
+ pprof_data[PPROF_DATA_SUB_ADDR] = (PPROF_DATA) preop_ctx->current_sub;
+ pprof_data[PPROF_DATA_CTX_ADDR] = (PPROF_DATA) preop_ctx;
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_CONTEXT_SWITCH);
Parrot_str_free_cstring(full_ns_cstr);
Parrot_str_free_cstring(filename_cstr);
@@ -429,7 +425,6 @@
if (!PMC_IS_NULL(annot)) {
- /* this is probably pessimal but it's just a poc at this point */
PMC *iter = VTABLE_get_iter(interp, annot);
while (VTABLE_get_bool(interp, iter)) {
@@ -438,9 +433,9 @@
char *key_cstr = Parrot_str_to_cstring(interp, key);
char *val_cstr = Parrot_str_to_cstring(interp, val);
- runcore->pprof_data[PPROF_DATA_ANNOTATION_NAME] = (PPROF_DATA) key_cstr;
- runcore->pprof_data[PPROF_DATA_ANNOTATION_VALUE] = (PPROF_DATA) val_cstr;
- runcore->output_fn(runcore, PPROF_LINE_ANNOTATION);
+ pprof_data[PPROF_DATA_ANNOTATION_NAME] = (PPROF_DATA) key_cstr;
+ pprof_data[PPROF_DATA_ANNOTATION_VALUE] = (PPROF_DATA) val_cstr;
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_ANNOTATION);
Parrot_str_free_cstring(key_cstr);
Parrot_str_free_cstring(val_cstr);
@@ -448,30 +443,18 @@
}
}
- runcore->pprof_data[PPROF_DATA_LINE] = preop_line;
- runcore->pprof_data[PPROF_DATA_TIME] = op_time;
- runcore->pprof_data[PPROF_DATA_OPNAME] =
- (PPROF_DATA)(interp->op_info_table)[*preop_pc].name;
- runcore->output_fn(runcore, PPROF_LINE_OP);
+ pprof_data[PPROF_DATA_LINE] = preop_line;
+ pprof_data[PPROF_DATA_TIME] = op_time;
+ pprof_data[PPROF_DATA_OPNAME] = (PPROF_DATA)(interp->op_info_table)[*preop_pc].name;
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_OP);
}
/* make it easy to tell separate runloops apart */
if (runcore->level == 0) {
- runcore->output_fn(runcore, PPROF_LINE_END_OF_RUNLOOP);
- /* make all separate runloops appear to come from a single source */
- runcore->pprof_data[PPROF_DATA_NAMESPACE] = (PPROF_DATA) "main";
- runcore->pprof_data[PPROF_DATA_FILENAME] = (PPROF_DATA) "no_file";
- runcore->pprof_data[PPROF_DATA_SUB_ADDR] = 1;
- runcore->pprof_data[PPROF_DATA_CTX_ADDR] = 1;
- runcore->output_fn(runcore, PPROF_LINE_CONTEXT_SWITCH);
-
- runcore->pprof_data[PPROF_DATA_LINE] = runcore->runloop_count;
- runcore->pprof_data[PPROF_DATA_TIME] = 0;
- runcore->pprof_data[PPROF_DATA_OPNAME] = (PPROF_DATA) "noop";
- runcore->output_fn(runcore, PPROF_LINE_OP);
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_END_OF_RUNLOOP);
- runcore->runloop_count++;
+ add_bogus_parent_runloop(runcore);
}
Profiling_exit_check_SET(runcore);
@@ -481,8 +464,45 @@
/*
+=item C<static void add_bogus_parent_runloop(Parrot_profiling_runcore_t *
+runcore)>
+
+Record profiling information for a bogus parent runloop. Parrot program
+generally have several runloops, so a little trickery is needed to profile them
+all as a single program. This is accomplished by having a fake sub named
+'main' which has no cost in itself but which appears to call all top-level
+runloops as children.
+
+=cut
+
+*/
+
+static void
+add_bogus_parent_runloop(ARGIN(Parrot_profiling_runcore_t * runcore))
+{
+ ASSERT_ARGS(add_bogus_parent_runloop)
+
+ PPROF_DATA pprof_data[PPROF_DATA_MAX+1];
+
+ /* make all separate runloops appear to come from a single source */
+ pprof_data[PPROF_DATA_NAMESPACE] = (PPROF_DATA) "main";
+ pprof_data[PPROF_DATA_FILENAME] = (PPROF_DATA) "no_file";
+ pprof_data[PPROF_DATA_SUB_ADDR] = 1;
+ pprof_data[PPROF_DATA_CTX_ADDR] = 1;
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_CONTEXT_SWITCH);
+
+ pprof_data[PPROF_DATA_LINE] = runcore->runloop_count;
+ pprof_data[PPROF_DATA_TIME] = 0;
+ pprof_data[PPROF_DATA_OPNAME] = (PPROF_DATA) "noop";
+ runcore->output_fn(runcore, pprof_data, PPROF_LINE_OP);
+
+ runcore->runloop_count++;
+}
+
+/*
+
=item C<static void record_values_ascii_pprof(Parrot_profiling_runcore_t *
-runcore, Parrot_profiling_line type)>
+runcore, PPROF_DATA *pprof_data, Parrot_profiling_line type)>
Record profiling data to a filehandle in a human-readable format.
@@ -492,17 +512,17 @@
static void
record_values_ascii_pprof(ARGIN(Parrot_profiling_runcore_t * runcore),
-ARGIN_NULLOK(Parrot_profiling_line type))
+ARGIN(PPROF_DATA *pprof_data), ARGIN_NULLOK(Parrot_profiling_line type))
{
ASSERT_ARGS(record_values_ascii_pprof)
switch (type) {
case PPROF_LINE_CONTEXT_SWITCH:
{
- char *pd_namespace = (char *) runcore->pprof_data[PPROF_DATA_NAMESPACE];
- char *pd_filename = (char *) runcore->pprof_data[PPROF_DATA_FILENAME];
- void *sub_addr = (void *) runcore->pprof_data[PPROF_DATA_SUB_ADDR];
- void *ctx_addr = (void *) runcore->pprof_data[PPROF_DATA_CTX_ADDR];
+ char *pd_namespace = (char *) pprof_data[PPROF_DATA_NAMESPACE];
+ char *pd_filename = (char *) pprof_data[PPROF_DATA_FILENAME];
+ void *sub_addr = (void *) pprof_data[PPROF_DATA_SUB_ADDR];
+ void *ctx_addr = (void *) pprof_data[PPROF_DATA_CTX_ADDR];
fprintf(runcore->profile_fd,
"CS:{x{ns:%s}x}{x{file:%s}x}{x{sub:%p}x}{x{ctx:%p}x}\n",
pd_namespace, pd_filename, sub_addr, ctx_addr);
@@ -511,9 +531,9 @@
case PPROF_LINE_OP:
{
- PPROF_DATA line = (PPROF_DATA) runcore->pprof_data[PPROF_DATA_LINE];
- PPROF_DATA time = (PPROF_DATA) runcore->pprof_data[PPROF_DATA_TIME];
- char *opname = (char *) runcore->pprof_data[PPROF_DATA_OPNAME];
+ PPROF_DATA line = (PPROF_DATA) pprof_data[PPROF_DATA_LINE];
+ PPROF_DATA time = (PPROF_DATA) pprof_data[PPROF_DATA_TIME];
+ char *opname = (char *) pprof_data[PPROF_DATA_OPNAME];
fprintf(runcore->profile_fd, "OP:{x{line:%d}x}{x{time:%d}x}{x{op:%s}x}\n",
(int) line, (int) time, opname);
}
@@ -521,21 +541,17 @@
case PPROF_LINE_ANNOTATION:
{
- char *name = (char *) runcore->pprof_data[PPROF_DATA_ANNOTATION_NAME];
- char *value = (char *) runcore->pprof_data[PPROF_DATA_ANNOTATION_VALUE];
+ char *name = (char *) pprof_data[PPROF_DATA_ANNOTATION_NAME];
+ char *value = (char *) pprof_data[PPROF_DATA_ANNOTATION_VALUE];
fprintf(runcore->profile_fd, "AN:{x{name:%s}x}{x{value:%s}x}\n", name, value);
}
case PPROF_LINE_CLI:
- {
- char *cli = (char *) runcore->pprof_data[PPROF_DATA_CLI];
- fprintf(runcore->profile_fd, "CLI: %s\n", cli);
- }
+ fprintf(runcore->profile_fd, "CLI: %s\n", (char *) pprof_data[PPROF_DATA_CLI]);
break;
case PPROF_LINE_VERSION:
- fprintf(runcore->profile_fd, "VERSION:%d\n",
- (int) runcore->pprof_data[PPROF_DATA_VERSION]);
+ fprintf(runcore->profile_fd, "VERSION:%d\n", (int) pprof_data[PPROF_DATA_VERSION]);
break;
case PPROF_LINE_END_OF_RUNLOOP:
@@ -550,7 +566,7 @@
/*
=item C<static void record_values_none(Parrot_profiling_runcore_t * runcore,
-Parrot_profiling_line type)>
+PPROF_DATA *pprof_data, Parrot_profiling_line type)>
Accept data but don't actually write it anywhere.
@@ -560,10 +576,11 @@
static void
record_values_none(ARGIN(Parrot_profiling_runcore_t * runcore),
-ARGIN_NULLOK(Parrot_profiling_line type))
+ARGIN(PPROF_DATA *pprof_data), ARGIN_NULLOK(Parrot_profiling_line type))
{
ASSERT_ARGS(record_values_none)
UNUSED(runcore);
+ UNUSED(pprof_data);
UNUSED(type);
}
@@ -596,7 +613,7 @@
if (runcore->output_fn != record_values_none)
fclose(runcore->profile_fd);
- mem_sys_free(runcore->time);
+ mem_gc_free(interp, runcore->time);
return NULL;
}
Modified: branches/ops_pct/src/scheduler.c
==============================================================================
--- branches/ops_pct/src/scheduler.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/scheduler.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -79,7 +79,7 @@
/* Add the very first interpreter to the list of interps. */
pt_add_to_interpreters(interp, NULL);
- scheduler = pmc_new(interp, enum_class_Scheduler);
+ scheduler = Parrot_pmc_new(interp, enum_class_Scheduler);
scheduler = VTABLE_share_ro(interp, scheduler);
interp->scheduler = scheduler;
@@ -290,7 +290,7 @@
INTVAL repeat, ARGIN_NULLOK(PMC *sub))
{
ASSERT_ARGS(Parrot_cx_schedule_timer)
- PMC * const timer = pmc_new(interp, enum_class_Timer);
+ PMC * const timer = Parrot_pmc_new(interp, enum_class_Timer);
VTABLE_set_number_keyed_int(interp, timer, PARROT_TIMER_NSEC, duration);
VTABLE_set_number_keyed_int(interp, timer, PARROT_TIMER_INTERVAL, interval);
@@ -356,7 +356,7 @@
ARGIN(PMC *user_data), ARGIN(char *ext_data))
{
ASSERT_ARGS(Parrot_cx_schedule_callback)
- PMC *callback = pmc_new(interp, enum_class_Task);
+ PMC *callback = Parrot_pmc_new(interp, enum_class_Task);
Parrot_Task_attributes * const task_struct = PARROT_TASK(callback);
task_struct->type = CONST_STRING(interp, "callback");
@@ -483,7 +483,8 @@
{
ASSERT_ARGS(Parrot_cx_add_handler_local)
if (PMC_IS_NULL(Parrot_pcc_get_handlers(interp, interp->ctx)))
- Parrot_pcc_set_handlers(interp, interp->ctx, pmc_new(interp, enum_class_ResizablePMCArray));
+ Parrot_pcc_set_handlers(interp, interp->ctx, Parrot_pmc_new(interp,
+ enum_class_ResizablePMCArray));
VTABLE_unshift_pmc(interp, Parrot_pcc_get_handlers(interp, interp->ctx), handler);
@@ -730,7 +731,7 @@
ASSERT_ARGS(Parrot_cx_send_message)
if (interp->scheduler) {
Parrot_Scheduler_attributes * sched_struct = PARROT_SCHEDULER(interp->scheduler);
- PMC *message = pmc_new(interp, enum_class_SchedulerMessage);
+ PMC *message = Parrot_pmc_new(interp, enum_class_SchedulerMessage);
VTABLE_set_string_native(interp, message, messagetype);
message = VTABLE_share_ro(interp, message);
Modified: branches/ops_pct/src/string/api.c
==============================================================================
--- branches/ops_pct/src/string/api.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/string/api.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -179,18 +179,6 @@
PObj_COW_SET(s);
STRUCT_COPY(d, s);
PObj_sysmem_CLEAR(d);
-#if 0
- /* XXX FIXME hack to avoid cross-interpreter issue until it
- * is fixed correctly. */
- if (n_interpreters > 1 && PObj_is_movable_TESTALL(s) &&
- !Parrot_gc_ptr_in_memory_pool(interp, Buffer_bufstart(s))) {
- Parrot_str_write_COW(interp, d);
- Parrot_io_eprintf(interp, "cross-interpreter copy of "
- "relocatable string '%Ss' into tid %d\n",
- d,
- interp->thread_data->tid);
- }
-#endif
}
return d;
}
@@ -288,7 +276,8 @@
if (interp->parent_interpreter) {
interp->hash_seed = interp->parent_interpreter->hash_seed;
}
- else {
+ /* interp is initialized from zeroed memory, so this is fine */
+ else if (interp->hash_seed == 0) {
/* TT #64 - use an entropy source once available */
Parrot_srand(Parrot_intval_time());
interp->hash_seed = Parrot_uint_rand(0);
@@ -313,7 +302,7 @@
PObj_constant_FLAG);
interp->const_cstring_table =
- mem_allocate_n_zeroed_typed(n_parrot_cstrings, STRING *);
+ mem_gc_allocate_n_zeroed_typed(interp, n_parrot_cstrings, STRING *);
for (i = 0; i < n_parrot_cstrings; ++i) {
DECL_CONST_CAST;
@@ -346,7 +335,7 @@
ASSERT_ARGS(Parrot_str_finish)
/* all are shared between interpreters */
if (!interp->parent_interpreter) {
- mem_sys_free(interp->const_cstring_table);
+ mem_internal_free(interp->const_cstring_table);
interp->const_cstring_table = NULL;
Parrot_charsets_encodings_deinit(interp);
parrot_hash_destroy(interp, interp->const_cstring_hash);
@@ -507,21 +496,9 @@
ASSERT_ARGS(Parrot_str_concat)
if (a && a->strlen) {
if (b && b->strlen) {
- const ENCODING *enc;
- const CHARSET *cs = string_rep_compatible(interp, a, b, &enc);
- STRING *result;
-
- if (!cs) {
- cs = a->charset;
- enc = a->encoding;
- }
- result = Parrot_str_new_init(interp, NULL, a->bufused + b->bufused,
- enc, cs, 0);
-
- result = Parrot_str_append(interp, result, a);
- result = Parrot_str_append(interp, result, b);
-
- return result;
+ STRING *result = Parrot_str_copy(interp, a);
+ Parrot_str_write_COW(interp, result);
+ return Parrot_str_append(interp, result, b);
}
return Parrot_str_copy(interp, a);
@@ -584,10 +561,10 @@
}
else {
/* upgrade strings for concatenation */
- enc = (a->encoding == Parrot_utf16_encoding_ptr ||
- b->encoding == Parrot_utf16_encoding_ptr ||
- a->encoding == Parrot_ucs2_encoding_ptr ||
- b->encoding == Parrot_ucs2_encoding_ptr)
+ enc = (a->encoding == Parrot_utf16_encoding_ptr
+ || b->encoding == Parrot_utf16_encoding_ptr
+ || a->encoding == Parrot_ucs2_encoding_ptr
+ || b->encoding == Parrot_ucs2_encoding_ptr)
? Parrot_utf16_encoding_ptr
: Parrot_utf8_encoding_ptr;
@@ -2506,7 +2483,7 @@
if (!s)
return NULL;
else {
- char * const p = (char *)mem_sys_allocate(s->bufused + 1);
+ char * const p = (char*)mem_internal_allocate(s->bufused + 1);
memcpy(p, s->strstart, s->bufused);
p[s->bufused] = '\0';
return p;
@@ -2532,7 +2509,7 @@
Parrot_str_free_cstring(ARGIN_NULLOK(char *p))
{
ASSERT_ARGS(Parrot_str_free_cstring)
- mem_sys_free((void *)p);
+ mem_internal_free((void *)p);
}
@@ -2561,7 +2538,7 @@
Parrot_str_write_COW(interp, s);
size = Buffer_buflen(s);
- memory = (char *)mem_sys_allocate(size);
+ memory = (char *)mem_internal_allocate(size);
mem_sys_memcopy(memory, Buffer_bufstart(s), size);
Buffer_bufstart(s) = memory;
@@ -2617,7 +2594,7 @@
PObj_sysmem_CLEAR(s);
/* Free up the memory */
- mem_sys_free(memory);
+ mem_internal_free(memory);
}
@@ -2845,9 +2822,6 @@
const CHARSET *charset;
const ENCODING *encoding = NULL;
- /* the default encoding is ascii */
- const char *enc_name = enc_char ? enc_char : "ascii";
-
/* does the encoding have a character set? */
const char *p = enc_char ? strchr(enc_char, ':') : NULL;
size_t clength = strlen(cstring);
@@ -3454,7 +3428,7 @@
if (STRING_IS_NULL(delim) || STRING_IS_NULL(str))
return PMCNULL;
- res = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_ResizableStringArray));
+ res = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_ResizableStringArray));
slen = Parrot_str_byte_length(interp, str);
if (!slen)
Modified: branches/ops_pct/src/string/charset.c
==============================================================================
--- branches/ops_pct/src/string/charset.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/string/charset.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -64,11 +64,12 @@
static void Parrot_str_internal_register_charset_names(PARROT_INTERP)
__attribute__nonnull__(1);
-static INTVAL register_charset(
+static INTVAL register_charset(PARROT_INTERP,
ARGIN(const char *charsetname),
ARGIN(CHARSET *charset))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void register_static_converters(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -77,7 +78,8 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_register_charset __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(charsetname) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(charsetname) \
, PARROT_ASSERT_ARG(charset))
#define ASSERT_ARGS_register_static_converters __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
@@ -98,10 +100,10 @@
PARROT_CAN_RETURN_NULL
PARROT_MALLOC
CHARSET *
-Parrot_new_charset(SHIM_INTERP)
+Parrot_new_charset(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_new_charset)
- return mem_allocate_typed(CHARSET);
+ return mem_gc_allocate_zeroed_typed(interp, CHARSET);
}
/*
@@ -117,7 +119,7 @@
PARROT_EXPORT
void
-Parrot_charsets_encodings_deinit(SHIM_INTERP)
+Parrot_charsets_encodings_deinit(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_charsets_encodings_deinit)
int i;
@@ -125,13 +127,13 @@
for (i = 0; i < n; ++i) {
if (all_charsets->set[i].n_converters)
- mem_sys_free(all_charsets->set[i].to_converters);
- mem_sys_free(all_charsets->set[i].charset);
+ mem_gc_free(interp, all_charsets->set[i].to_converters);
+ mem_gc_free(interp, all_charsets->set[i].charset);
}
- mem_sys_free(all_charsets->set);
- mem_sys_free(all_charsets);
+ mem_gc_free(interp, all_charsets->set);
+ mem_gc_free(interp, all_charsets);
all_charsets = NULL;
- parrot_deinit_encodings();
+ parrot_deinit_encodings(interp);
}
/*
@@ -311,8 +313,8 @@
/*
-=item C<static INTVAL register_charset(const char *charsetname, CHARSET
-*charset)>
+=item C<static INTVAL register_charset(PARROT_INTERP, const char *charsetname,
+CHARSET *charset)>
Adds a new charset C<charset> with name <charsetname> to the list of
all charsets. Returns 0 and does nothing if a charset with that name
@@ -323,7 +325,8 @@
*/
static INTVAL
-register_charset(ARGIN(const char *charsetname), ARGIN(CHARSET *charset))
+register_charset(PARROT_INTERP, ARGIN(const char *charsetname),
+ ARGIN(CHARSET *charset))
{
ASSERT_ARGS(register_charset)
int i;
@@ -339,10 +342,10 @@
* loading of charsets from inside threads
*/
if (!n)
- all_charsets->set = mem_allocate_typed(One_charset);
+ all_charsets->set = mem_gc_allocate_zeroed_typed(interp, One_charset);
else
- all_charsets->set = (One_charset *)mem_sys_realloc(all_charsets->set,
- (n + 1) * sizeof (One_charset));
+ all_charsets->set = mem_gc_realloc_n_typed_zeroed(interp,
+ all_charsets->set, n + 1, n, One_charset);
all_charsets->n_charsets++;
all_charsets->set[n].charset = charset;
@@ -429,29 +432,29 @@
PARROT_EXPORT
INTVAL
-Parrot_register_charset(SHIM_INTERP, ARGIN(const char *charsetname),
+Parrot_register_charset(PARROT_INTERP, ARGIN(const char *charsetname),
ARGIN(CHARSET *charset))
{
ASSERT_ARGS(Parrot_register_charset)
if (!all_charsets) {
- all_charsets = mem_allocate_typed(All_charsets);
+ all_charsets = mem_gc_allocate_zeroed_typed(interp, All_charsets);
all_charsets->set = NULL;
all_charsets->n_charsets = 0;
}
if (STREQ("binary", charsetname)) {
Parrot_binary_charset_ptr = charset;
- return register_charset(charsetname, charset);
+ return register_charset(interp, charsetname, charset);
}
if (STREQ("iso-8859-1", charsetname)) {
Parrot_iso_8859_1_charset_ptr = charset;
- return register_charset(charsetname, charset);
+ return register_charset(interp, charsetname, charset);
}
if (STREQ("unicode", charsetname)) {
Parrot_unicode_charset_ptr = charset;
- return register_charset(charsetname, charset);
+ return register_charset(interp, charsetname, charset);
}
if (STREQ("ascii", charsetname)) {
@@ -459,7 +462,7 @@
Parrot_default_charset_ptr = charset;
Parrot_ascii_charset_ptr = charset;
- return register_charset(charsetname, charset);
+ return register_charset(interp, charsetname, charset);
}
return 0;
@@ -594,7 +597,7 @@
PARROT_EXPORT
void
-Parrot_register_charset_converter(SHIM_INTERP,
+Parrot_register_charset_converter(PARROT_INTERP,
ARGIN(const CHARSET *lhs), ARGIN(CHARSET *rhs),
ARGIN(charset_converter_t func))
{
@@ -608,11 +611,11 @@
const int nc = left->n_converters++;
if (nc) {
- left->to_converters = (To_converter *)mem_sys_realloc(
- left->to_converters, sizeof (To_converter) * (nc + 1));
+ left->to_converters = mem_gc_realloc_n_typed_zeroed(interp,
+ left->to_converters, nc + 1, nc, To_converter);
}
else
- left->to_converters = (To_converter *)mem_sys_allocate(sizeof (To_converter));
+ left->to_converters = mem_gc_allocate_zeroed_typed(interp, To_converter);
left->to_converters[nc].to = rhs;
left->to_converters[nc].func = func;
}
Modified: branches/ops_pct/src/string/charset/ascii.c
==============================================================================
--- branches/ops_pct/src/string/charset/ascii.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/string/charset/ascii.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -596,31 +596,42 @@
{
ASSERT_ARGS(mixed_cs_index)
String_iter src_iter, search_iter;
- UINTVAL len;
- INTVAL start;
+ UINTVAL len, next_pos;
+ INTVAL found_at;
ENCODING_ITER_INIT(interp, src, &src_iter);
src_iter.set_position(interp, &src_iter, offs);
ENCODING_ITER_INIT(interp, search, &search_iter);
len = search->strlen;
- start = -1;
- for (; len && offs < src->strlen; ++offs) {
+ found_at = -1;
+ next_pos = offs;
+
+ for (; len && offs < src->strlen ;) {
const UINTVAL c1 = src_iter.get_and_advance(interp, &src_iter);
const UINTVAL c2 = search_iter.get_and_advance(interp, &search_iter);
+
if (c1 == c2) {
--len;
- if (start == -1)
- start = offs;
+ if (found_at == -1)
+ found_at = offs;
+ ++offs;
}
else {
len = search->strlen;
- start = -1;
+ ++offs;
+ ++next_pos;
+ if (offs != next_pos) {
+ src_iter.set_position(interp, &src_iter, next_pos);
+ offs = next_pos;
+ }
+
+ found_at = -1;
search_iter.set_position(interp, &search_iter, 0);
}
}
if (len == 0)
- return start;
+ return found_at;
return -1;
}
Modified: branches/ops_pct/src/string/encoding.c
==============================================================================
--- branches/ops_pct/src/string/encoding.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/string/encoding.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -24,14 +24,16 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static INTVAL register_encoding(SHIM_INTERP,
+static INTVAL register_encoding(PARROT_INTERP,
ARGIN(const char *encodingname),
ARGIN(ENCODING *encoding))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
#define ASSERT_ARGS_register_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(encodingname) \
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(encodingname) \
, PARROT_ASSERT_ARG(encoding))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -56,7 +58,7 @@
/*
-=item C<void parrot_deinit_encodings(void)>
+=item C<void parrot_deinit_encodings(PARROT_INTERP)>
Deinitialize encodings and free all memory used by them.
@@ -65,17 +67,17 @@
*/
void
-parrot_deinit_encodings(void)
+parrot_deinit_encodings(PARROT_INTERP)
{
ASSERT_ARGS(parrot_deinit_encodings)
const int n = all_encodings->n_encodings;
int i;
for (i = 0; i < n; ++i) {
- mem_sys_free(all_encodings->enc[i].encoding);
+ mem_gc_free(interp, all_encodings->enc[i].encoding);
}
- mem_sys_free(all_encodings->enc);
- mem_sys_free(all_encodings);
+ mem_gc_free(interp, all_encodings->enc);
+ mem_gc_free(interp, all_encodings);
all_encodings = NULL;
}
@@ -93,10 +95,10 @@
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
ENCODING *
-Parrot_new_encoding(SHIM_INTERP)
+Parrot_new_encoding(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_new_encoding)
- return mem_allocate_typed(ENCODING);
+ return mem_gc_allocate_typed(interp, ENCODING);
}
/*
@@ -298,7 +300,7 @@
*/
static INTVAL
-register_encoding(SHIM_INTERP, ARGIN(const char *encodingname),
+register_encoding(PARROT_INTERP, ARGIN(const char *encodingname),
ARGIN(ENCODING *encoding))
{
ASSERT_ARGS(register_encoding)
@@ -315,10 +317,10 @@
* loading of encodings from inside threads
*/
if (!n)
- all_encodings->enc = mem_allocate_typed(One_encoding);
+ all_encodings->enc = mem_gc_allocate_zeroed_typed(interp, One_encoding);
else
- all_encodings->enc = (One_encoding*)mem_sys_realloc(all_encodings->enc,
- (n + 1) * sizeof (One_encoding));
+ all_encodings->enc = mem_gc_realloc_n_typed_zeroed(interp,
+ all_encodings->enc, n + 1, n, One_encoding);
all_encodings->n_encodings++;
all_encodings->enc[n].encoding = encoding;
@@ -367,7 +369,7 @@
{
ASSERT_ARGS(Parrot_register_encoding)
if (!all_encodings) {
- all_encodings = mem_allocate_typed(All_encodings);
+ all_encodings = mem_gc_allocate_zeroed_typed(interp, All_encodings);
all_encodings->n_encodings = 0;
all_encodings->enc = NULL;
}
Modified: branches/ops_pct/src/string/encoding/utf16.c
==============================================================================
--- branches/ops_pct/src/string/encoding/utf16.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/string/encoding/utf16.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -298,7 +298,7 @@
#if PARROT_HAS_ICU
if (in_place) {
/* need intermediate memory */
- p = (UChar *)mem_sys_allocate(src_len * sizeof (UChar));
+ p = mem_gc_allocate_n_typed(interp, src_len, UChar);
}
else {
Parrot_gc_reallocate_string_storage(interp, dest, sizeof (UChar) * src_len);
@@ -319,7 +319,7 @@
* have to resize - required len in UChars is in dest_len
*/
if (in_place)
- p = (UChar *)mem_sys_realloc(p, dest_len * sizeof (UChar));
+ p = mem_gc_realloc_n_typed(interp, p, dest_len, UChar);
else {
result->bufused = dest_len * sizeof (UChar);
Parrot_gc_reallocate_string_storage(interp, dest,
@@ -335,7 +335,7 @@
if (in_place) {
Parrot_gc_reallocate_string_storage(interp, src, src->bufused);
memcpy(src->strstart, p, src->bufused);
- mem_sys_free(p);
+ mem_gc_free(interp, p);
}
result->charset = Parrot_unicode_charset_ptr;
result->encoding = Parrot_utf16_encoding_ptr;
Modified: branches/ops_pct/src/string/encoding/utf8.c
==============================================================================
--- branches/ops_pct/src/string/encoding/utf8.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/string/encoding/utf8.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -608,7 +608,7 @@
if (in_place) {
/* need intermediate memory */
- p = (unsigned char *)mem_sys_allocate(src_len);
+ p = mem_gc_allocate_n_typed(interp, src_len, unsigned char);
}
else {
Parrot_gc_reallocate_string_storage(interp, dest, src_len);
@@ -631,7 +631,7 @@
need = 16;
dest_len += need;
if (in_place)
- p = (unsigned char *)mem_sys_realloc(p, dest_len);
+ p = mem_gc_realloc_n_typed(interp, p, dest_len, unsigned char);
else {
result->bufused = dest_pos;
Parrot_gc_reallocate_string_storage(interp, dest, dest_len);
@@ -648,7 +648,7 @@
if (in_place) {
Parrot_gc_reallocate_string_storage(interp, src, src->bufused);
memcpy(src->strstart, p, src->bufused);
- mem_sys_free(p);
+ mem_gc_free(interp, p);
}
return result;
}
Modified: branches/ops_pct/src/string/primitives.c
==============================================================================
--- branches/ops_pct/src/string/primitives.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/string/primitives.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -357,7 +357,7 @@
/* 2 for the beginning and ending quote chars */
const size_t newlen = oldlen - 2;
- char * const copy = (char *)mem_sys_allocate(newlen);
+ char * const copy = (char *)mem_internal_allocate(newlen);
memcpy(copy, old + 1, newlen);
copy[newlen - 1] = 0;
Modified: branches/ops_pct/src/sub.c
==============================================================================
--- branches/ops_pct/src/sub.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/sub.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -64,7 +64,7 @@
new_ret_continuation_pmc(PARROT_INTERP, ARGIN_NULLOK(opcode_t *address))
{
ASSERT_ARGS(new_ret_continuation_pmc)
- PMC* const continuation = pmc_new(interp, enum_class_RetContinuation);
+ PMC* const continuation = Parrot_pmc_new(interp, enum_class_RetContinuation);
VTABLE_set_pointer(interp, continuation, address);
return continuation;
}
@@ -612,7 +612,7 @@
}
/* Get the Sub PMC itself. */
- key = pmc_new(interp, enum_class_String);
+ key = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, key, CONST_STRING(interp, "Sub"));
sub_pmc = VTABLE_get_attr_keyed(interp, subclass, key, CONST_STRING(interp, "proxy"));
if (sub_pmc->vtable->base_type == enum_class_Sub) {
Modified: branches/ops_pct/src/thread.c
==============================================================================
--- branches/ops_pct/src/thread.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/thread.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -97,10 +97,6 @@
__attribute__nonnull__(1);
PARROT_CAN_RETURN_NULL
-static QUEUE_ENTRY * remove_queued_suspend_gc(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_CAN_RETURN_NULL
static void* thread_func(ARGIN_NULLOK(void *arg));
#define ASSERT_ARGS_detach __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -140,8 +136,6 @@
, PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_pt_thread_wait __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_remove_queued_suspend_gc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_thread_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -188,7 +182,7 @@
else if (VTABLE_isa(from, arg, _multi_sub)) {
INTVAL i = 0;
const INTVAL n = VTABLE_elements(from, arg);
- ret_val = pmc_new(interp, enum_class_MultiSub);
+ ret_val = Parrot_pmc_new(interp, enum_class_MultiSub);
for (i = 0; i < n; ++i) {
PMC *const orig = VTABLE_get_pmc_keyed_int(from, arg, i);
@@ -257,7 +251,7 @@
if (shared_gc_info) {
COND_DESTROY(shared_gc_info->gc_cond);
PARROT_ATOMIC_INT_DESTROY(shared_gc_info->gc_block_level);
- mem_sys_free(shared_gc_info);
+ mem_internal_free(shared_gc_info);
shared_gc_info = NULL;
}
}
@@ -288,7 +282,7 @@
old_size = VTABLE_get_integer(old_interp, args);
/* XXX should this be a different type? */
- ret_val = pmc_new(interp, enum_class_FixedPMCArray);
+ ret_val = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
VTABLE_set_integer_native(interp, ret_val, old_size);
for (i = 0; i < old_size; ++i) {
@@ -620,7 +614,7 @@
PMC *sub_ns = VTABLE_get_pmc_keyed_str(d, dest_ns, key);
if (PMC_IS_NULL(sub_ns) || sub_ns->vtable->base_type !=
enum_class_NameSpace) {
- sub_ns = pmc_new(d, enum_class_NameSpace);
+ sub_ns = Parrot_pmc_new(d, enum_class_NameSpace);
VTABLE_set_pmc_keyed_str(d, dest_ns, key, sub_ns);
}
pt_ns_clone(s, d, sub_ns, s, val);
@@ -752,7 +746,7 @@
* XXX FIXME move this elsewhere? at least the set_pmc_keyed_int
*/
old_dest_interp = dest_interp;
- dest_interp = pmc_new_noinit(interpreter, enum_class_ParrotThread);
+ dest_interp = Parrot_pmc_new_noinit(interpreter, enum_class_ParrotThread);
/* so it's not accidentally deleted */
VTABLE_set_pointer(interp, old_dest_interp, NULL);
@@ -963,62 +957,6 @@
/*
-=item C<static QUEUE_ENTRY * remove_queued_suspend_gc(PARROT_INTERP)>
-
-Removes an event requesting that the interpreter suspend itself for a
-garbage-collection run from the event queue.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-static QUEUE_ENTRY *
-remove_queued_suspend_gc(PARROT_INTERP)
-{
- ASSERT_ARGS(remove_queued_suspend_gc)
- parrot_event *ev = NULL;
- QUEUE * const queue = interp->task_queue;
- QUEUE_ENTRY *prev = NULL;
- QUEUE_ENTRY *cur;
-
- queue_lock(queue);
- cur = queue->head;
-
- while (cur) {
- ev = (parrot_event *)cur->data;
-
- if (ev->type == EVENT_TYPE_SUSPEND_FOR_GC)
- break;
-
- prev = cur;
- cur = cur->next;
- }
-
- if (cur) {
- if (prev)
- prev->next = cur->next;
- else
- queue->head = cur->next;
-
- if (cur == queue->tail)
- queue->tail = prev;
-
- if (cur == queue->head)
- queue->head = cur->next;
-
- mem_sys_free(ev);
- mem_sys_free(cur);
- cur = NULL;
- DEBUG_ONLY(fprintf(stderr, "%p: remove_queued_suspend_gc: got one\n", interp));
- }
-
- queue_unlock(queue);
- return cur;
-}
-
-/*
-
=item C<static int pt_gc_count_threads(PARROT_INTERP)>
Returns the number of active threads in the system (running or suspended). Be
@@ -1364,7 +1302,7 @@
* dying interpreter, so register it in parent's GC registry
* XXX is this still needed?
*/
- gc_register_pmc(parent, parent_ret);
+ Parrot_pmc_gc_register(parent, parent_ret);
Parrot_unblock_GC_mark(parent);
retval = parent_ret;
}
@@ -1388,7 +1326,7 @@
* value, caller gets it now
*/
if (retval)
- gc_unregister_pmc(parent, retval);
+ Parrot_pmc_gc_unregister(parent, retval);
return retval;
}
@@ -1560,18 +1498,18 @@
PARROT_ASSERT(!interpreter_array);
PARROT_ASSERT(n_interpreters == 0);
- interpreter_array = mem_allocate_typed(Interp *);
+ interpreter_array = mem_internal_allocate_typed(Interp *);
interpreter_array[0] = interp;
n_interpreters = 1;
- shared_gc_info = (Shared_gc_info *)mem_sys_allocate_zeroed(sizeof (*shared_gc_info));
+ shared_gc_info = (Shared_gc_info *)mem_internal_allocate_zeroed(sizeof (*shared_gc_info));
COND_INIT(shared_gc_info->gc_cond);
PARROT_ATOMIC_INT_INIT(shared_gc_info->gc_block_level);
PARROT_ATOMIC_INT_SET(shared_gc_info->gc_block_level, 0);
/* XXX try to defer this until later */
PARROT_ASSERT(interp == interpreter_array[0]);
- interp->thread_data = mem_allocate_zeroed_typed(Thread_data);
+ interp->thread_data = mem_internal_allocate_zeroed_typed(Thread_data);
INTERPRETER_LOCK_INIT(interp);
interp->thread_data->tid = 0;
@@ -1579,7 +1517,7 @@
}
- new_interp->thread_data = mem_allocate_zeroed_typed(Thread_data);
+ new_interp->thread_data = mem_internal_allocate_zeroed_typed(Thread_data);
INTERPRETER_LOCK_INIT(new_interp);
running_threads++;
if (Interp_debug_TEST(interp, PARROT_THREAD_DEBUG_FLAG))
@@ -1596,7 +1534,7 @@
}
/* need to resize */
- interpreter_array = (Interp **)mem_sys_realloc(interpreter_array,
+ interpreter_array = (Interp **)mem_internal_realloc(interpreter_array,
(n_interpreters + 1) * sizeof (Interp *));
interpreter_array[n_interpreters] = new_interp;
Deleted: branches/ops_pct/src/tsq.c
==============================================================================
--- branches/ops_pct/src/tsq.c Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,426 +0,0 @@
-/*
-Copyright (C) 2001-2009, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/tsq.c - Thread-safe queues
-
-=head1 DESCRIPTION
-
-This file implements thread-safe queues for Parrot.
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/parrot.h"
-
-/* HEADERIZER HFILE: include/parrot/tsq.h */
-
-/*
-
-=item C<QUEUE_ENTRY * pop_entry(QUEUE *queue)>
-
-Does a synchronized removal of the head entry off the queue and returns it.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-QUEUE_ENTRY *
-pop_entry(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(pop_entry)
- QUEUE_ENTRY *returnval;
- queue_lock(queue);
- returnval = nosync_pop_entry(queue);
- queue_unlock(queue);
- return returnval;
-}
-
-/*
-
-=item C<QUEUE_ENTRY * peek_entry(const QUEUE *queue)>
-
-This does no locking, so the result might have changed by the time you
-get the entry, but a synchronized C<pop_entry()> will check again and
-return C<NULL> if the queue is empty.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-QUEUE_ENTRY *
-peek_entry(ARGIN(const QUEUE *queue))
-{
- ASSERT_ARGS(peek_entry)
- return queue->head;
-}
-
-/*
-
-=item C<QUEUE_ENTRY * nosync_pop_entry(QUEUE *queue)>
-
-Grab an entry off the queue with no synchronization. Internal only,
-because it's darned evil and shouldn't be used outside the module. It's
-in here so we don't have to duplicate pop code.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-QUEUE_ENTRY *
-nosync_pop_entry(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(nosync_pop_entry)
- QUEUE_ENTRY *returnval;
- if (!queue->head) {
- return NULL;
- }
- returnval = queue->head;
- if (queue->head == queue->tail) {
- queue->head = NULL;
- queue->tail = NULL;
- }
- else {
- queue->head = queue->head->next;
- }
- returnval->next = NULL;
- return returnval;
-}
-
-/*
-
-=item C<QUEUE_ENTRY * wait_for_entry(QUEUE *queue)>
-
-Does a synchronized removal of the head entry off the queue, waiting if
-necessary until there is an entry, and then returns it.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-QUEUE_ENTRY *
-wait_for_entry(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(wait_for_entry)
- QUEUE_ENTRY *returnval;
-
- queue_lock(queue);
- while (queue->head == NULL) {
- queue_wait(queue);
- }
- returnval = nosync_pop_entry(queue);
- queue_unlock(queue);
- return returnval;
-
-}
-
-/*
-
-=item C<void push_entry(QUEUE *queue, QUEUE_ENTRY *entry)>
-
-Does a synchronized insertion of C<entry> onto the tail of the queue.
-
-=cut
-
-*/
-
-void
-push_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
-{
- ASSERT_ARGS(push_entry)
- queue_lock(queue);
- /* Is there something in the queue? */
- if (queue->tail) {
- queue->tail->next = entry;
- queue->tail = entry;
- }
- else {
- queue->head = entry;
- queue->tail = entry;
- }
- queue_signal(queue); /* assumes only one waiter */
- queue_unlock(queue);
-}
-
-/*
-
-=item C<void unshift_entry(QUEUE *queue, QUEUE_ENTRY *entry)>
-
-Does a synchronized insertion of C<entry> into the head of the queue.
-
-=cut
-
-*/
-
-void
-unshift_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
-{
- ASSERT_ARGS(unshift_entry)
- QUEUE_ENTRY *cur;
-
- queue_lock(queue);
- cur = queue->head;
- if (!cur) {
- /* empty just set head */
- queue->head = entry;
- queue->tail = entry;
- }
- else {
- queue->head = entry;
- entry->next = cur;
- }
- queue_signal(queue);
- queue_unlock(queue);
-}
-
-/*
-
-=item C<void nosync_insert_entry(QUEUE *queue, QUEUE_ENTRY *entry)>
-
-Inserts a timed event according to C<abstime>. The caller has to hold the
-queue mutex.
-
-=cut
-
-*/
-
-void
-nosync_insert_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
-{
- ASSERT_ARGS(nosync_insert_entry)
- QUEUE_ENTRY *cur = queue->head;
- QUEUE_ENTRY *prev;
- parrot_event *event;
- FLOATVAL abs_time;
-
- PARROT_ASSERT(entry->type == QUEUE_ENTRY_TYPE_TIMED_EVENT);
- /*
- * empty queue - just insert
- */
- if (!cur) {
- queue->head = entry;
- queue->tail = entry;
- return;
- }
-
- prev = NULL;
- event = (parrot_event *)entry->data;
- abs_time = event->u.timer_event.abs_time;
-
- while (cur && cur->type == QUEUE_ENTRY_TYPE_TIMED_EVENT) {
- const parrot_event * const cur_event = (parrot_event *)cur->data;
- if (abs_time > cur_event->u.timer_event.abs_time) {
- prev = cur;
- cur = cur->next;
- }
- else
- break;
- }
- if (!prev)
- queue->head = entry;
- else {
- prev->next = entry;
- if (prev == queue->tail)
- queue->tail = entry;
- }
- entry->next = cur;
-}
-
-/*
-
-=item C<void insert_entry(QUEUE *queue, QUEUE_ENTRY *entry)>
-
-Does a synchronized insert of C<entry>.
-
-=cut
-
-*/
-
-void
-insert_entry(ARGMOD(QUEUE *queue), ARGIN(QUEUE_ENTRY *entry))
-{
- ASSERT_ARGS(insert_entry)
- queue_lock(queue);
- nosync_insert_entry(queue, entry);
- queue_signal(queue);
- queue_unlock(queue);
-}
-
-/*
-
-=item C<void queue_lock(QUEUE *queue)>
-
-Locks the queue's mutex.
-
-=cut
-
-*/
-
-void
-queue_lock(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(queue_lock)
- LOCK(queue->queue_mutex);
-}
-
-/*
-
-=item C<void queue_unlock(QUEUE *queue)>
-
-Unlocks the queue's mutex.
-
-=cut
-
-*/
-
-void
-queue_unlock(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(queue_unlock)
- UNLOCK(queue->queue_mutex);
-}
-
-/*
-
-=item C<void queue_broadcast(QUEUE *queue)>
-
-This function wakes up I<every> thread waiting on the queue.
-
-=cut
-
-*/
-
-void
-queue_broadcast(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(queue_broadcast)
- COND_BROADCAST(queue->queue_condition);
-}
-
-/*
-
-=item C<void queue_signal(QUEUE *queue)>
-
-=cut
-
-*/
-
-void
-queue_signal(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(queue_signal)
- COND_SIGNAL(queue->queue_condition);
-}
-
-/*
-
-=item C<void queue_wait(QUEUE *queue)>
-
-Instructs the queue to wait.
-
-=cut
-
-*/
-
-void
-queue_wait(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(queue_wait)
- COND_WAIT(queue->queue_condition, queue->queue_mutex);
-}
-
-/*
-
-=item C<void queue_timedwait(QUEUE *queue, const struct timespec *abs_time)>
-
-Instructs the queue to wait for C<abs_time> seconds (?).
-
-=cut
-
-*/
-
-void
-queue_timedwait(ARGMOD(QUEUE *queue), ARGIN(const struct timespec *abs_time))
-{
- ASSERT_ARGS(queue_timedwait)
- COND_TIMED_WAIT(queue->queue_condition, queue->queue_mutex, abs_time);
-}
-
-/*
-
-=item C<QUEUE* queue_init(UINTVAL prio)>
-
-Initializes the queue, setting C<prio> as the queue's priority.
-
-=cut
-
-*/
-
-PARROT_CAN_RETURN_NULL
-PARROT_MALLOC
-QUEUE*
-queue_init(UINTVAL prio)
-{
- ASSERT_ARGS(queue_init)
- QUEUE * const queue = mem_allocate_typed(QUEUE);
-
- queue->head = queue->tail = NULL;
- queue->max_prio = prio;
- COND_INIT(queue->queue_condition);
- MUTEX_INIT(queue->queue_mutex);
- return queue;
-}
-
-/*
-
-=item C<void queue_destroy(QUEUE *queue)>
-
-Destroys the queue, raising an exception if it is not empty.
-
-=cut
-
-*/
-
-void
-queue_destroy(ARGMOD(QUEUE *queue))
-{
- ASSERT_ARGS(queue_destroy)
- if (peek_entry(queue))
- exit_fatal(1, "Queue not empty on destroy");
-
- COND_DESTROY(queue->queue_condition);
- MUTEX_DESTROY(queue->queue_mutex);
- mem_sys_free(queue);
-}
-
-/*
-
-=back
-
-=head1 SEE ALSO
-
-F<include/parrot/tsq.h>.
-
-=cut
-
-*/
-
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/ops_pct/src/utils.c
==============================================================================
--- branches/ops_pct/src/utils.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/utils.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -412,9 +412,10 @@
=item C<FLOATVAL Parrot_float_rand(INTVAL how_random)>
-Returns a C<FLOATVAL> in the interval C<[0.0, 1.0)>.
+Returns a C<FLOATVAL> uniformly distributed in the in the interval
+C<[0.0, 1.0]>.
-C<how_random> is ignored.
+C<how_random> is currently ignored.
=cut
@@ -434,7 +435,7 @@
=item C<INTVAL Parrot_uint_rand(INTVAL how_random)>
-Returns an C<INTVAL> in the interval C<[0, 2^31)>.
+Returns an C<INTVAL> uniformly distributed in the interval C<[0, 2^31)>.
C<how_random> is ignored.
@@ -491,8 +492,11 @@
Parrot_range_rand(INTVAL from, INTVAL to, INTVAL how_random)
{
ASSERT_ARGS(Parrot_range_rand)
- return (INTVAL)(from + ((double)(to - from))
- * Parrot_float_rand(how_random));
+ const double spread = (double)(to - from + 1);
+ const double randpart = Parrot_float_rand(how_random);
+ const INTVAL raw = from + (INTVAL)(spread * randpart);
+
+ return raw;
}
/*
@@ -545,7 +549,7 @@
{
ASSERT_ARGS(tm_to_array)
- PMC * const Array = pmc_new(interp,
+ PMC * const Array = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_FixedIntegerArray));
VTABLE_set_integer_native(interp, Array, 9);
@@ -845,9 +849,9 @@
/* allocate space for data structures */
/* NOTA: data structures could be kept allocated somewhere waiting to get reused...*/
- c.nb_succ = nb_succ = mem_allocate_n_zeroed_typed(n_regs, int);
- c.backup = backup = mem_allocate_n_zeroed_typed(n_regs, int);
- c.reg_to_index = reg_to_index = mem_allocate_n_zeroed_typed(max_reg, int);
+ c.nb_succ = nb_succ = mem_gc_allocate_n_zeroed_typed(interp, n_regs, int);
+ c.backup = backup = mem_gc_allocate_n_zeroed_typed(interp, n_regs, int);
+ c.reg_to_index = reg_to_index = mem_gc_allocate_n_zeroed_typed(interp, max_reg, int);
/* init backup array */
for (i = 0; i < n_regs; i++)
@@ -883,9 +887,9 @@
}
}
- mem_sys_free(nb_succ);
- mem_sys_free(reg_to_index);
- mem_sys_free(backup);
+ mem_gc_free(interp, nb_succ);
+ mem_gc_free(interp, reg_to_index);
+ mem_gc_free(interp, backup);
}
typedef INTVAL (*sort_func_t)(PARROT_INTERP, void *, void *);
Modified: branches/ops_pct/src/vtable.tbl
==============================================================================
--- branches/ops_pct/src/vtable.tbl Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/vtable.tbl Sun Mar 7 19:33:20 2010 (r44743)
@@ -41,8 +41,6 @@
FLOATVAL get_number_keyed_int(INTVAL key)
FLOATVAL get_number_keyed_str(STRING* key)
-PMC* get_bignum()
-
STRING* get_string()
STRING* get_repr()
STRING* get_string_keyed(PMC* key)
@@ -72,10 +70,6 @@
void set_number_keyed_int(INTVAL key, FLOATVAL value)
void set_number_keyed_str(STRING* key, FLOATVAL value)
-void set_bignum_int(INTVAL value)
-void set_bignum_num(FLOATVAL value)
-void set_bignum_str(STRING* value)
-
void set_string_native(STRING* value)
void assign_string_native(STRING* value)
void set_string_keyed(PMC* key, STRING* value)
@@ -177,14 +171,6 @@
void i_modulus_int(INTVAL value) :write
void i_modulus_float(FLOATVAL value) :write
-PMC* pow(PMC* value, PMC* dest)
-PMC* pow_int(INTVAL value, PMC* dest)
-PMC* pow_float(FLOATVAL value, PMC* dest)
-
-void i_pow(PMC* value) :write
-void i_pow_int(INTVAL value) :write
-void i_pow_float(FLOATVAL value) :write
-
void increment() :write
void decrement() :write
@@ -194,67 +180,6 @@
PMC* neg(PMC* dest)
void i_neg() :write
-[BITWISE]
-PMC* bitwise_or(PMC* value, PMC* dest)
-PMC* bitwise_or_int(INTVAL value, PMC* dest)
-
-void i_bitwise_or(PMC* value) :write
-void i_bitwise_or_int(INTVAL value) :write
-
-PMC* bitwise_and(PMC* value, PMC* dest)
-PMC* bitwise_and_int(INTVAL value, PMC* dest)
-
-void i_bitwise_and(PMC* value) :write
-void i_bitwise_and_int(INTVAL value) :write
-
-PMC* bitwise_xor(PMC* value, PMC* dest)
-PMC* bitwise_xor_int(INTVAL value, PMC* dest)
-
-void i_bitwise_xor(PMC* value) :write
-void i_bitwise_xor_int(INTVAL value) :write
-
-PMC* bitwise_ors(PMC* value, PMC* dest)
-PMC* bitwise_ors_str(STRING* value, PMC* dest)
-
-void i_bitwise_ors(PMC* value) :write
-void i_bitwise_ors_str(STRING* value) :write
-
-PMC* bitwise_ands(PMC* value, PMC* dest)
-PMC* bitwise_ands_str(STRING* value, PMC* dest)
-
-void i_bitwise_ands(PMC* value) :write
-void i_bitwise_ands_str(STRING* value) :write
-
-PMC* bitwise_xors(PMC* value, PMC* dest)
-PMC* bitwise_xors_str(STRING* value, PMC* dest)
-
-void i_bitwise_xors(PMC* value) :write
-void i_bitwise_xors_str(STRING* value) :write
-
-PMC* bitwise_not(PMC* dest)
-void i_bitwise_not() :write
-
-PMC* bitwise_nots(PMC* dest)
-void i_bitwise_nots() :write
-
-PMC* bitwise_shl(PMC* value, PMC* dest)
-PMC* bitwise_shl_int(INTVAL value, PMC* dest)
-
-void i_bitwise_shl(PMC* value) :write
-void i_bitwise_shl_int(INTVAL value) :write
-
-PMC* bitwise_shr(PMC* value, PMC* dest)
-PMC* bitwise_shr_int(INTVAL value, PMC* dest)
-
-void i_bitwise_shr(PMC* value) :write
-void i_bitwise_shr_int(INTVAL value) :write
-
-PMC* bitwise_lsr(PMC* value, PMC* dest)
-PMC* bitwise_lsr_int(INTVAL value, PMC* dest)
-
-void i_bitwise_lsr(PMC* value) :write
-void i_bitwise_lsr_int(INTVAL value) :write
-
[CMP]
INTVAL is_equal(PMC* value)
INTVAL is_equal_num(PMC* value)
Modified: branches/ops_pct/src/vtables.c
==============================================================================
--- branches/ops_pct/src/vtables.c Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/src/vtables.c Sun Mar 7 19:33:20 2010 (r44743)
@@ -43,7 +43,7 @@
Parrot_new_vtable(SHIM_INTERP)
{
ASSERT_ARGS(Parrot_new_vtable)
- return mem_allocate_zeroed_typed(VTABLE);
+ return mem_internal_allocate_zeroed_typed(VTABLE);
}
/*
@@ -63,7 +63,7 @@
Parrot_clone_vtable(PARROT_INTERP, ARGIN(const VTABLE *base_vtable))
{
ASSERT_ARGS(Parrot_clone_vtable)
- VTABLE * const new_vtable = mem_allocate_typed(VTABLE);
+ VTABLE * const new_vtable = mem_internal_allocate_typed(VTABLE);
STRUCT_COPY(new_vtable, base_vtable);
@@ -108,7 +108,7 @@
ro_vtable->isa_hash = NULL;
}
- mem_sys_free(ro_vtable);
+ mem_internal_free(ro_vtable);
vtable->ro_variant_vtable = NULL;
}
@@ -117,7 +117,7 @@
vtable->isa_hash = NULL;
}
- mem_sys_free(vtable);
+ mem_internal_free(vtable);
}
/*
@@ -134,7 +134,7 @@
parrot_alloc_vtables(PARROT_INTERP)
{
ASSERT_ARGS(parrot_alloc_vtables)
- interp->vtables = mem_allocate_n_zeroed_typed(PARROT_MAX_CLASSES, VTABLE *);
+ interp->vtables = mem_internal_allocate_n_zeroed_typed(PARROT_MAX_CLASSES, VTABLE *);
interp->n_vtable_max = enum_class_core_max;
interp->n_vtable_alloced = PARROT_MAX_CLASSES - 1;
}
@@ -162,7 +162,7 @@
/* arrays start at zero, but we compare type numbers starting at 1 */
interp->n_vtable_alloced = new_max - 1;
- interp->vtables = (VTABLE **)mem_sys_realloc_zeroed(
+ interp->vtables = (VTABLE **)mem_internal_realloc_zeroed(
interp->vtables, new_size, old_size);
}
@@ -187,7 +187,7 @@
for (i = 0; i < interp->n_vtable_max; i++)
Parrot_destroy_vtable(interp, interp->vtables[i]);
- mem_sys_free(interp->vtables);
+ mem_internal_free(interp->vtables);
}
/*
Modified: branches/ops_pct/t/codingstd/c_arg_assert.t
==============================================================================
--- branches/ops_pct/t/codingstd/c_arg_assert.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/c_arg_assert.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
use strict;
@@ -51,7 +51,7 @@
if ( my ($func) = $line =~ m/^#define ASSERT_ARGS_([_a-zA-Z0-9]+)\s/s ) {
push @defines, [$func, $path];
}
-
+
if ( my ($func) = $line =~ m/^\s+ASSERT_ARGS\(([_a-zA-Z0-9]+)\)$/ ) {
$usages{$func} = 1;
Modified: branches/ops_pct/t/codingstd/c_cppcomments.t
==============================================================================
--- branches/ops_pct/t/codingstd/c_cppcomments.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/c_cppcomments.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -50,7 +50,7 @@
);
# TT # 414 (https://trac.parrot.org/parrot/ticket/414):
-# In the POD inside a C source code file, a hyperlink such as
+# In the POD inside a C source code file, a hyperlink such as
# https://trac.parrot.org will be inaccurately reported as a C++-style
# comment.
# Quick fix added
@@ -60,9 +60,9 @@
(?: ' (?: \\\\ | \\' | [^'] )* ' ) # remove ' string
| (?: " (?: \\\\ | \\" | [^"] )* " ) # remove " string
| /\* .*? \*/ # remove C comment
- | https?:\/\/ # TT # 414 quick fix
+ | https?:\/\/ # TT # 414 quick fix
)
- }{}gsx;
+ }{}gsx;
return $buf !~ m{ ( .*? // .* ) }x;
}
Modified: branches/ops_pct/t/codingstd/c_function_docs.t
==============================================================================
--- branches/ops_pct/t/codingstd/c_function_docs.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/c_function_docs.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
use strict;
@@ -99,44 +99,28 @@
compilers/imcc/reg_alloc.c
compilers/imcc/symreg.c
compilers/pirc/src/pircapi.c
-compilers/pirc/src/pircompiler.c
-compilers/pirc/src/piremit.c
-compilers/pirc/src/pirmacro.c
-compilers/pirc/src/pirpcc.c
-compilers/pirc/src/pirregalloc.c
-compilers/pirc/src/pirsymbol.c
config/gen/platform/ansi/dl.c
config/gen/platform/ansi/exec.c
config/gen/platform/ansi/time.c
config/gen/platform/darwin/dl.c
config/gen/platform/darwin/memalign.c
config/gen/platform/generic/dl.c
-config/gen/platform/generic/env.c
config/gen/platform/generic/exec.c
config/gen/platform/generic/math.c
config/gen/platform/generic/memalign.c
-config/gen/platform/generic/memexec.c
config/gen/platform/generic/stat.c
config/gen/platform/generic/time.c
config/gen/platform/netbsd/math.c
config/gen/platform/openbsd/math.c
-config/gen/platform/openbsd/memexec.c
config/gen/platform/solaris/math.c
config/gen/platform/solaris/time.c
-examples/c/nanoparrot.c
-examples/c/pbc_info.c
examples/compilers/japhc.c
-src/atomic/gcc_x86.c
-src/debug.c
src/gc/generational_ms.c
src/io/io_string.c
-src/pbc_dump.c
src/string/charset/ascii.c
src/string/charset/binary.c
src/string/charset/iso-8859-1.c
src/string/charset/unicode.c
-src/tsq.c
-include/parrot/atomic/gcc_pcc.h
# Local Variables:
# mode: cperl
Modified: branches/ops_pct/t/codingstd/c_indent.t
==============================================================================
--- branches/ops_pct/t/codingstd/c_indent.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/c_indent.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -183,7 +183,7 @@
my ($indent) = $line =~ /^(\s+)/ or next;
$indent = length($indent);
- # Ignore the indentation of the current line if the last
+ # Ignore the indentation of the current line if the last
# character of the was anything but a ';'.
#
# The indentation of the previous line is not considered.
@@ -198,7 +198,8 @@
. " apparent non-2 space outdenting ($indent spaces)\n";
$c_failed{"$path\n"} = 1
}
- } else {
+ }
+ else {
if ( $indent % 4 &&
!$state{in_comment} &&
$state{prev_last_char} eq ';'
Modified: branches/ops_pct/t/codingstd/c_macro_args.t
==============================================================================
--- branches/ops_pct/t/codingstd/c_macro_args.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/c_macro_args.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
#! perl
-# Copyright (C) 2008-2009, Parrot Foundation.
-# $Id $
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
use strict;
use warnings;
Modified: branches/ops_pct/t/codingstd/c_parens.t
==============================================================================
--- branches/ops_pct/t/codingstd/c_parens.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/c_parens.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
use strict;
@@ -92,7 +92,7 @@
for my $line (@lines) {
# skip #defines and typedefs
next if $line =~ m{(?:(#\s*define|^\s*typedef))};
- if ( $line =~ m{ ( (?<!\w) (?:$keywords) (?: \( | \ \s+ \( ) ) }xo ) {
+ if ( $line =~ m{ ( (?<!\w) (?:$keywords) (?: \( ) ) }xo ) {
my $paren = $1;
# ops use the same names as some C keywords, so skip
Modified: branches/ops_pct/t/codingstd/copyright.t
==============================================================================
--- branches/ops_pct/t/codingstd/copyright.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/copyright.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -135,10 +135,6 @@
reason => 'sample code used in testing',
},
{
- file => 'tools/build/nativecall.pl',
- reason => 'heredoc text for generated file',
- },
- {
file => 'tools/build/vtable_extend.pl',
reason => 'heredoc text for generated file',
},
Modified: branches/ops_pct/t/codingstd/cuddled_else.t
==============================================================================
--- branches/ops_pct/t/codingstd/cuddled_else.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/cuddled_else.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -23,7 +23,8 @@
=head1 DESCRIPTION
-Checks that files do not use cuddled else a.k.a C<} else {>.
+Checks that files do not use cuddled else, that is an else on the same
+line as the closing brace of the if part.
=head1 SEE ALSO
Modified: branches/ops_pct/t/codingstd/linelength.t
==============================================================================
--- branches/ops_pct/t/codingstd/linelength.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/linelength.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -125,5 +125,8 @@
compilers/pirc/macro/macroparser.h
compilers/pirc/src/hdocprep.l
compilers/pirc/src/hdocprep.c
+# generated by tools/dev/nci_thunk_gen.pir
+src/nci/core_thunks.c
+src/nci/extra_thunks.c
# these ones include long POD
docs/embed.pod
Modified: branches/ops_pct/t/codingstd/opcode_doc.t
==============================================================================
--- branches/ops_pct/t/codingstd/opcode_doc.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/opcode_doc.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2005, The Perl Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
Modified: branches/ops_pct/t/codingstd/perlcritic.t
==============================================================================
--- branches/ops_pct/t/codingstd/perlcritic.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/perlcritic.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -40,7 +40,13 @@
use Parrot::Distribution;
use Test::More;
-# There's no point in continuing if we're missing some certain modules.
+# There's no point in continuing if we're missing some certain modules, or
+# if the developer doesn't want to.
+
+if (exists $ENV{'PARROT_TEST_NO_PERLCRITIC'}) {
+ give_up('absence of PARROT_TEST_NO_PERLCRITIC environment variable');
+}
+
eval { require Test::Perl::Critic };
if ($@) {
give_up('Test::Perl::Critic');
@@ -80,7 +86,8 @@
map { $_->path }
grep { $_->read !~ m/use v6;/ }
$dist->get_perl_language_files();
-} else {
+}
+else {
@files = <@ARGV>;
}
Modified: branches/ops_pct/t/codingstd/pod_description.t
==============================================================================
--- branches/ops_pct/t/codingstd/pod_description.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/pod_description.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2009, The Perl Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
Modified: branches/ops_pct/t/codingstd/pod_syntax.t
==============================================================================
--- branches/ops_pct/t/codingstd/pod_syntax.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/pod_syntax.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2009, The Perl Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
Modified: branches/ops_pct/t/codingstd/trailing_space.t
==============================================================================
--- branches/ops_pct/t/codingstd/trailing_space.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/codingstd/trailing_space.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -9,6 +9,8 @@
use Parrot::Distribution;
use Test::More tests => 1;
use Parrot::Test::Util::Runloop;
+use Parrot::Config qw/ %PConfig /;
+use File::Spec;
=head1 NAME
@@ -34,7 +36,6 @@
=cut
my $DIST = Parrot::Distribution->new;
-
my @files = @ARGV ? <@ARGV> : (
$DIST->get_c_language_files(),
$DIST->get_make_language_files(),
@@ -42,9 +43,20 @@
$DIST->get_pir_language_files(),
);
+# skip files listed in the __DATA__ section
+my $build_dir = $PConfig{build_dir};
+my %skip_files;
+while (<DATA>) {
+ next if m{^#};
+ next if m{^\s*$};
+ chomp;
+ $_ = File::Spec->catfile($build_dir, $_);
+ $skip_files{$_}++;
+}
+
Parrot::Test::Util::Runloop->testloop(
name => 'no trailing whitespace',
- files => [@files],
+ files => [grep {not $skip_files{$_->path}} @files],
per_line => sub { $_[0] !~ m{[ \t]$}m },
diag_prefix => 'Trailing space or tab char found'
);
@@ -55,3 +67,13 @@
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4:
+
+__DATA__
+# generated by tools/dev/nci_thunk_gen.pir
+src/nci/core_thunks.c
+src/nci/extra_thunks.c
+t/examples/pir.t
+t/examples/tutorial.t
+t/library/getopt_obj.t
+t/perl/Parrot_Test.t
+t/run/options.t
Modified: branches/ops_pct/t/compilers/imcc/imcpasm/optc.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/imcpasm/optc.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/imcpasm/optc.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -307,22 +307,9 @@
i 1 j 3 k 2
OUT
-sub permute (&@) {
- my $code = shift;
- my @idx = 0 .. $#_;
- while ( $code->( @_[@idx] ) ) {
- my $p = $#idx;
- --$p while $idx[ $p - 1 ] > $idx[$p];
- my $q = $p or return;
- push @idx, reverse splice @idx, $p;
- ++$q while $idx[ $p - 1 ] > $idx[$q];
- @idx[ $p - 1, $q ] = @idx[ $q, $p - 1 ];
- }
-}
-
my @array = ( 'i', 'j', 'k' );
my @b;
-permute { push @b, "@_" } @array;
+my_permute( sub { push @b, "@_" }, @array );
my $x;
my $y;
foreach $x (@b) {
@@ -356,7 +343,7 @@
undef @b;
@array = ( 'i', 'j', 'k', 'l' );
-permute { push @b, "@_" } @array;
+my_permute( sub { push @b, "@_" }, @array );
foreach $x (@b) {
$x =~ tr/ /,/;
$y = $x;
@@ -392,7 +379,7 @@
undef @b;
@array = ( 'i', 'j' );
-permute { push @b, "@_" } @array;
+my_permute( sub { push @b, "@_" }, @array );
foreach $x (@b) {
$x =~ tr/ /,/;
$y = $x;
@@ -419,6 +406,18 @@
OUT
}
+sub my_permute {
+ my $code = shift;
+ my @idx = 0 .. $#_;
+ while ( $code->( @_[@idx] ) ) {
+ my $p = $#idx;
+ --$p while $idx[ $p - 1 ] > $idx[$p];
+ my $q = $p or return;
+ push @idx, reverse splice @idx, $p;
+ ++$q while $idx[ $p - 1 ] > $idx[$q];
+ @idx[ $p - 1, $q ] = @idx[ $q, $p - 1 ];
+ }
+}
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/ops_pct/t/compilers/imcc/reg/spill.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/reg/spill.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/reg/spill.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,718 +1,372 @@
-#!perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+#!parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Parrot::Test tests => 9;
+.sub main :main
+ .include 'test_more.pir'
+ plan(78)
+
+ test_allocate_1()
+ test_spill_1()
+ test_pcc_arg_overflow_1()
+ test_spill_4()
+.end
-pir_output_is( <<'CODE', <<'OUT', "allocate 1" );
+.sub test_allocate_1
#
# Test the ability of the register allocator to
# generate spills.
#
-.sub test :main
- $I0 = 0
- $I1 = 1
- $I2 = 2
- $I3 = 3
- $I4 = 4
- $I5 = 5
- $I6 = 6
- $I7 = 7
- $I8 = 8
- $I9 = 9
-
- $I10 = 10
- $I11 = 11
- $I12 = 12
- $I13 = 13
- $I14 = 14
- $I15 = 15
- $I16 = 16
- $I17 = 17
- $I18 = 18
- $I19 = 19
-
- $I20 = 20
- $I21 = 21
- $I22 = 22
- $I23 = 23
- $I24 = 24
- $I25 = 25
- $I26 = 26
- $I27 = 27
- $I28 = 28
- $I29 = 29
-
- $I30 = 30
- $I31 = 31
- $I32 = 32
- $I33 = 33
- $I34 = 34
- $I35 = 35
- $I36 = 36
- $I37 = 37
- $I38 = 38
- $I39 = 39
-
- $I40 = 40
-
- print $I0
- print "\n"
- print $I10
- print "\n"
- print $I20
- print "\n"
- print $I30
- print "\n"
- print $I40
- print "\n"
+ $I0 = 0
+ $I1 = 1
+ $I2 = 2
+ $I3 = 3
+ $I4 = 4
+ $I5 = 5
+ $I6 = 6
+ $I7 = 7
+ $I8 = 8
+ $I9 = 9
+
+ $I10 = 10
+ $I11 = 11
+ $I12 = 12
+ $I13 = 13
+ $I14 = 14
+ $I15 = 15
+ $I16 = 16
+ $I17 = 17
+ $I18 = 18
+ $I19 = 19
+
+ $I20 = 20
+ $I21 = 21
+ $I22 = 22
+ $I23 = 23
+ $I24 = 24
+ $I25 = 25
+ $I26 = 26
+ $I27 = 27
+ $I28 = 28
+ $I29 = 29
+
+ $I30 = 30
+ $I31 = 31
+ $I32 = 32
+ $I33 = 33
+ $I34 = 34
+ $I35 = 35
+ $I36 = 36
+ $I37 = 37
+ $I38 = 38
+ $I39 = 39
+
+ $I40 = 40
+
+ is($I0, 0, "allocate 1")
+ is($I10, 10, "allocate 1")
+ is($I20, 20, "allocate 1")
+ is($I30, 30, "allocate 1")
+ is($I40, 40, "allocate 1")
- end
.end
-CODE
-0
-10
-20
-30
-40
-OUT
-pir_output_is( <<'CODE', <<'OUT', "spill 1" );
+.sub test_spill_1
#
# Test the ability of the register allocator to
# generate spills.
#
-.sub test :main
- $I0 = 0
- $I1 = 1
- $I2 = 2
- $I3 = 3
- $I4 = 4
- $I5 = 5
- $I6 = 6
- $I7 = 7
- $I8 = 8
- $I9 = 9
-
- $I10 = 10
- $I11 = 11
- $I12 = 12
- $I13 = 13
- $I14 = 14
- $I15 = 15
- $I16 = 16
- $I17 = 17
- $I18 = 18
- $I19 = 19
-
- $I20 = 20
- $I21 = 21
- $I22 = 22
- $I23 = 23
- $I24 = 24
- $I25 = 25
- $I26 = 26
- $I27 = 27
- $I28 = 28
- $I29 = 29
-
- $I30 = 30
- $I31 = 31
- $I32 = 32
- $I33 = 33
- $I34 = 34
- $I35 = 35
- $I36 = 36
- $I37 = 37
- $I38 = 38
- $I39 = 39
-
- $I40 = $I0 + $I1
- $I41 = $I2 + $I3
- $I42 = $I4 + $I5
- $I43 = $I6 + $I7
- $I44 = $I8 + $I9
-
- $I50 = $I10 + $I11
- $I51 = $I12 + $I13
- $I52 = $I14 + $I15
- $I53 = $I16 + $I17
- $I54 = $I18 + $I19
-
- $I60 = $I20 + $I21
- $I61 = $I22 + $I23
- $I62 = $I24 + $I25
- $I63 = $I26 + $I27
- $I64 = $I28 + $I29
-
- $I70 = $I30 + $I31
- $I71 = $I32 + $I33
- $I72 = $I34 + $I35
- $I73 = $I36 + $I37
- $I74 = $I38 + $I39
-
- print $I0
- print $I1
- print $I2
- print $I3
- print $I4
- print $I5
- print $I6
- print $I7
- print $I8
- print $I9
- print "\n"
- print $I10
- print $I11
- print $I12
- print $I13
- print $I14
- print $I15
- print $I16
- print $I17
- print $I18
- print $I19
- print "\n"
- print $I20
- print $I21
- print $I22
- print $I23
- print $I24
- print $I25
- print $I26
- print $I27
- print $I28
- print $I29
- print "\n"
- print $I30
- print $I31
- print $I32
- print $I33
- print $I34
- print $I35
- print $I36
- print $I37
- print $I38
- print $I39
- print "\n"
- print $I40
- print $I41
- print $I42
- print $I43
- print $I44
- print "\n"
- print $I50
- print $I51
- print $I52
- print $I53
- print $I54
- print "\n"
- print $I60
- print $I61
- print $I62
- print $I63
- print $I64
- print "\n"
- print $I70
- print $I71
- print $I72
- print $I73
- print $I74
- print "\n"
- end
+ $I0 = 0
+ $I1 = 1
+ $I2 = 2
+ $I3 = 3
+ $I4 = 4
+ $I5 = 5
+ $I6 = 6
+ $I7 = 7
+ $I8 = 8
+ $I9 = 9
+
+ $I10 = 10
+ $I11 = 11
+ $I12 = 12
+ $I13 = 13
+ $I14 = 14
+ $I15 = 15
+ $I16 = 16
+ $I17 = 17
+ $I18 = 18
+ $I19 = 19
+
+ $I20 = 20
+ $I21 = 21
+ $I22 = 22
+ $I23 = 23
+ $I24 = 24
+ $I25 = 25
+ $I26 = 26
+ $I27 = 27
+ $I28 = 28
+ $I29 = 29
+
+ $I30 = 30
+ $I31 = 31
+ $I32 = 32
+ $I33 = 33
+ $I34 = 34
+ $I35 = 35
+ $I36 = 36
+ $I37 = 37
+ $I38 = 38
+ $I39 = 39
+
+ $I40 = $I0 + $I1
+ $I41 = $I2 + $I3
+ $I42 = $I4 + $I5
+ $I43 = $I6 + $I7
+ $I44 = $I8 + $I9
+
+ $I50 = $I10 + $I11
+ $I51 = $I12 + $I13
+ $I52 = $I14 + $I15
+ $I53 = $I16 + $I17
+ $I54 = $I18 + $I19
+
+ $I60 = $I20 + $I21
+ $I61 = $I22 + $I23
+ $I62 = $I24 + $I25
+ $I63 = $I26 + $I27
+ $I64 = $I28 + $I29
+
+ $I70 = $I30 + $I31
+ $I71 = $I32 + $I33
+ $I72 = $I34 + $I35
+ $I73 = $I36 + $I37
+ $I74 = $I38 + $I39
+
+ is($I0, 0, 'spill 1')
+ is($I1, 1, 'spill 1')
+ is($I2, 2, 'spill 1')
+ is($I3, 3, 'spill 1')
+ is($I4, 4, 'spill 1')
+ is($I5, 5, 'spill 1')
+ is($I6, 6, 'spill 1')
+ is($I7, 7, 'spill 1')
+ is($I8, 8, 'spill 1')
+ is($I9, 9, 'spill 1')
+ is($I10, 10, 'spill 1')
+ is($I11, 11, 'spill 1')
+ is($I12, 12, 'spill 1')
+ is($I13, 13, 'spill 1')
+ is($I14, 14, 'spill 1')
+ is($I15, 15, 'spill 1')
+ is($I16, 16, 'spill 1')
+ is($I17, 17, 'spill 1')
+ is($I18, 18, 'spill 1')
+ is($I19, 19, 'spill 1')
+ is($I20, 20, 'spill 1')
+ is($I21, 21, 'spill 1')
+ is($I22, 22, 'spill 1')
+ is($I23, 23, 'spill 1')
+ is($I24, 24, 'spill 1')
+ is($I25, 25, 'spill 1')
+ is($I26, 26, 'spill 1')
+ is($I27, 27, 'spill 1')
+ is($I28, 28, 'spill 1')
+ is($I29, 29, 'spill 1')
+ is($I30, 30, 'spill 1')
+ is($I31, 31, 'spill 1')
+ is($I32, 32, 'spill 1')
+ is($I33, 33, 'spill 1')
+ is($I34, 34, 'spill 1')
+ is($I35, 35, 'spill 1')
+ is($I36, 36, 'spill 1')
+ is($I37, 37, 'spill 1')
+ is($I38, 38, 'spill 1')
+ is($I39, 39, 'spill 1')
+ is($I40, 1, 'spill 1')
+ is($I41, 5, 'spill 1')
+ is($I42, 9, 'spill 1')
+ is($I43, 13, 'spill 1')
+ is($I44, 17, 'spill 1')
+ is($I50, 21, 'spill 1')
+ is($I51, 25, 'spill 1')
+ is($I52, 29, 'spill 1')
+ is($I53, 33, 'spill 1')
+ is($I54, 37, 'spill 1')
+ is($I60, 41, 'spill 1')
+ is($I61, 45, 'spill 1')
+ is($I62, 49, 'spill 1')
+ is($I63, 53, 'spill 1')
+ is($I64, 57, 'spill 1')
+ is($I70, 61, 'spill 1')
+ is($I71, 65, 'spill 1')
+ is($I72, 69, 'spill 1')
+ is($I73, 73, 'spill 1')
+ is($I74, 77, 'spill 1')
.end
-CODE
-0123456789
-10111213141516171819
-20212223242526272829
-30313233343536373839
-1591317
-2125293337
-4145495357
-6165697377
-OUT
-pir_output_is( <<'CODE', <<'OUT', "pcc arg overflow 1" );
+.sub test_pcc_arg_overflow_1
#
# Test the ability of the register allocator in
# combination with PCC calling convention and overflow arguments.
# Slightly redundant with tests in t/syn/pcc.t but please leave.
#
-.sub test :main
- _foo(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40)
- end
+ _foo(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40)
.end
+
.sub _foo
- .param int i1
- .param int i2
- .param int i3
- .param int i4
- .param int i5
- .param int i6
- .param int i7
- .param int i8
- .param int i9
- .param int i10
- .param int i11
- .param int i12
- .param int i13
- .param int i14
- .param int i15
- .param int i16
- .param int i17
- .param int i18
- .param int i19
- .param int i20
- .param int i21
- .param int i22
- .param int i23
- .param int i24
- .param int i25
- .param int i26
- .param int i27
- .param int i28
- .param int i29
- .param int i30
- .param int i31
- .param int i32
- .param int i33
- .param int i34
- .param int i35
- .param int i36
- .param int i37
- .param int i38
- .param int i39
- .param int i40
- print i1
- print "\n"
- print i2
- print "\n"
- print i3
- print "\n"
- print i4
- print "\n"
- print i5
- print "\n"
- print i10
- print "\n"
- print i15
- print "\n"
- print i20
- print "\n"
- print i25
- print "\n"
- print i30
- print "\n"
- print i35
- print "\n"
- print i40
- print "\n"
- end
+ .param int i1
+ .param int i2
+ .param int i3
+ .param int i4
+ .param int i5
+ .param int i6
+ .param int i7
+ .param int i8
+ .param int i9
+ .param int i10
+ .param int i11
+ .param int i12
+ .param int i13
+ .param int i14
+ .param int i15
+ .param int i16
+ .param int i17
+ .param int i18
+ .param int i19
+ .param int i20
+ .param int i21
+ .param int i22
+ .param int i23
+ .param int i24
+ .param int i25
+ .param int i26
+ .param int i27
+ .param int i28
+ .param int i29
+ .param int i30
+ .param int i31
+ .param int i32
+ .param int i33
+ .param int i34
+ .param int i35
+ .param int i36
+ .param int i37
+ .param int i38
+ .param int i39
+ .param int i40
+ is(i1, 1, 'pcc arg overflow 1')
+ is(i2, 2, 'pcc arg overflow 1')
+ is(i3, 3, 'pcc arg overflow 1')
+ is(i4, 4, 'pcc arg overflow 1')
+ is(i5, 5, 'pcc arg overflow 1')
+ is(i10, 10, 'pcc arg overflow 1')
+ is(i15, 15, 'pcc arg overflow 1')
+ is(i20, 20, 'pcc arg overflow 1')
+ is(i25, 25, 'pcc arg overflow 1')
+ is(i30, 30, 'pcc arg overflow 1')
+ is(i35, 35, 'pcc arg overflow 1')
+ is(i40, 40, 'pcc arg overflow 1')
.end
-CODE
-1
-2
-3
-4
-5
-10
-15
-20
-25
-30
-35
-40
-OUT
-pir_output_is( <<'CODE', <<'OUT', "spill 4" );
+.sub test_spill_4
#
# Another spill test
#
-.sub test :main
- $I0 = 0
- $I1 = 1
- $I2 = 2
- $I3 = 3
- $I4 = 4
- $I5 = 5
- $I6 = 6
- $I7 = 7
- $I8 = 8
- $I9 = 9
-
- $I10 = 10
- $I11 = 11
- $I12 = 12
- $I13 = 13
- $I14 = 14
- $I15 = 15
- $I16 = 16
- $I17 = 17
- $I18 = 18
- $I19 = 19
-
- $I20 = 20
- $I21 = 21
- $I22 = 22
- $I23 = 23
- $I24 = 24
- $I25 = 25
- $I26 = 26
- $I27 = 27
- $I28 = 28
- $I29 = 29
-
- $I30 = 30
- $I31 = 31
- $I32 = 32
- $I33 = 33
- $I34 = 34
- $I35 = 35
- $I36 = 36
- $I37 = 37
- $I38 = 38
- $I39 = 39
-
- if $I0 != 0 goto err
- if $I1 != 1 goto err
- if $I2 != 2 goto err
- if $I3 != 3 goto err
- if $I4 != 4 goto err
- if $I5 != 5 goto err
- if $I6 != 6 goto err
- if $I7 != 7 goto err
- if $I8 != 8 goto err
- if $I9 != 9 goto err
- if $I10 != 10 goto err
- if $I11 != 11 goto err
- if $I12 != 12 goto err
- if $I13 != 13 goto err
- if $I14 != 14 goto err
- if $I15 != 15 goto err
- if $I16 != 16 goto err
- if $I17 != 17 goto err
- if $I18 != 18 goto err
- if $I19 != 19 goto err
- if $I20 != 20 goto err
- if $I21 != 21 goto err
- if $I22 != 22 goto err
- if $I23 != 23 goto err
- if $I24 != 24 goto err
- if $I25 != 25 goto err
- if $I26 != 26 goto err
- if $I27 != 27 goto err
- if $I28 != 28 goto err
- if $I29 != 29 goto err
- if $I30 != 30 goto err
- if $I31 != 31 goto err
- if $I32 != 32 goto err
- if $I33 != 33 goto err
- if $I34 != 34 goto err
- if $I35 != 35 goto err
- if $I36 != 36 goto err
- if $I37 != 37 goto err
- if $I38 != 38 goto err
- if $I39 != 39 goto err
-
- print "ok\n"
- end
-err:
- print "nok\n"
- end
-.end
-CODE
-ok
-OUT
-
-pir_output_is( <<'CODE', <<'OUT', "bug #32996" );
-
-.namespace ["Foo"]
-
-.sub __biginit :main
- $S0 = "Foo"
- newclass $P0, $S0
- $P1 = new $S0
- $P1.'method1'()
- $P1.'method2'()
-
- $P2 = new $S0
- $P2.'method1'()
- $P2.'method2'()
-
- $P3 = new $S0
- $P3.'method1'()
- $P3.'method2'()
-
- $P4 = new $S0
- $P4.'method1'()
- $P4.'method2'()
-
- $P5 = new $S0
- $P5.'method1'()
- $P5.'method2'()
-
- $P6 = new $S0
- $P6.'method1'()
- $P6.'method2'()
-
- $P7 = new $S0
- $P7.'method1'()
- $P7.'method2'()
-
- $P8 = new $S0
- $P8.'method1'()
- $P8.'method2'()
-
- $P9 = new $S0
- $P9.'method1'()
- $P9.'method2'()
-
- $P10 = new $S0
- $P10.'method1'()
- $P10.'method2'()
-
- $P11 = new $S0
- $P11.'method1'()
- $P11.'method2'()
-
- $P12 = new $S0
- $P12.'method1'()
- $P12.'method2'()
-
- $P13 = new $S0
- $P13.'method1'()
- $P13.'method2'()
-
- $P14 = new $S0
- $P14.'method1'()
- $P14.'method2'()
-
- $P15 = new $S0
- $P15.'method1'()
- $P15.'method2'()
-
- $P1.'method1'()
- $P1.'method2'()
- $P2.'method1'()
- $P2.'method2'()
- $P3.'method1'()
- $P3.'method2'()
- $P4.'method1'()
- $P4.'method2'()
- $P5.'method1'()
- $P5.'method2'()
- $P6.'method1'()
- $P6.'method2'()
- $P7.'method1'()
- $P7.'method2'()
- $P8.'method1'()
- $P8.'method2'()
- $P9.'method1'()
- $P9.'method2'()
- $P10.'method1'()
- $P10.'method2'()
- $P11.'method1'()
- $P11.'method2'()
- $P12.'method1'()
- $P12.'method2'()
- $P13.'method1'()
- $P13.'method2'()
- $P14.'method1'()
- $P14.'method2'()
- $P15.'method1'()
- $P15.'method2'()
-
- end
-.end
+ $I0 = 0
+ $I1 = 1
+ $I2 = 2
+ $I3 = 3
+ $I4 = 4
+ $I5 = 5
+ $I6 = 6
+ $I7 = 7
+ $I8 = 8
+ $I9 = 9
+
+ $I10 = 10
+ $I11 = 11
+ $I12 = 12
+ $I13 = 13
+ $I14 = 14
+ $I15 = 15
+ $I16 = 16
+ $I17 = 17
+ $I18 = 18
+ $I19 = 19
+
+ $I20 = 20
+ $I21 = 21
+ $I22 = 22
+ $I23 = 23
+ $I24 = 24
+ $I25 = 25
+ $I26 = 26
+ $I27 = 27
+ $I28 = 28
+ $I29 = 29
+
+ $I30 = 30
+ $I31 = 31
+ $I32 = 32
+ $I33 = 33
+ $I34 = 34
+ $I35 = 35
+ $I36 = 36
+ $I37 = 37
+ $I38 = 38
+ $I39 = 39
+
+ if $I0 != 0 goto err
+ if $I1 != 1 goto err
+ if $I2 != 2 goto err
+ if $I3 != 3 goto err
+ if $I4 != 4 goto err
+ if $I5 != 5 goto err
+ if $I6 != 6 goto err
+ if $I7 != 7 goto err
+ if $I8 != 8 goto err
+ if $I9 != 9 goto err
+ if $I10 != 10 goto err
+ if $I11 != 11 goto err
+ if $I12 != 12 goto err
+ if $I13 != 13 goto err
+ if $I14 != 14 goto err
+ if $I15 != 15 goto err
+ if $I16 != 16 goto err
+ if $I17 != 17 goto err
+ if $I18 != 18 goto err
+ if $I19 != 19 goto err
+ if $I20 != 20 goto err
+ if $I21 != 21 goto err
+ if $I22 != 22 goto err
+ if $I23 != 23 goto err
+ if $I24 != 24 goto err
+ if $I25 != 25 goto err
+ if $I26 != 26 goto err
+ if $I27 != 27 goto err
+ if $I28 != 28 goto err
+ if $I29 != 29 goto err
+ if $I30 != 30 goto err
+ if $I31 != 31 goto err
+ if $I32 != 32 goto err
+ if $I33 != 33 goto err
+ if $I34 != 34 goto err
+ if $I35 != 35 goto err
+ if $I36 != 36 goto err
+ if $I37 != 37 goto err
+ if $I38 != 38 goto err
+ if $I39 != 39 goto err
-.sub method1 :method
- print "In method 1\n"
- .begin_return
- .end_return
-.end
-
-.sub method2 :method
- print "In method 2\n"
- .begin_return
- .end_return
-.end
-CODE
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-In method 1
-In method 2
-OUT
-
-sub repeat {
- my ( $template, $count, %substs ) = @_;
- my ( $code, $n, $start );
- foreach ( split( /\n/, $template ) ) {
- $n = $count;
- $start = 0;
- if (/^(.*)=(\w+)=(.*)/) {
- my ( $pre, $key, $post ) = ( $1, $2, $3 );
- if ( $key eq 'ARGS' ) {
- my @params;
- for my $i ( 0 .. $n - 1 ) {
- ( my $new = $substs{$key} ) =~ s/\<index\>/$i/g;
- push @params, $new;
- }
- $code .= $pre . join( ',', @params ) . "$post\n";
- next;
- }
- $start = $n / 2 if ( $key eq 'TESTS2' );
- for my $i ( $start .. $n - 1 ) {
- ( my $new = $substs{$key} ) =~ s/\<index\>/$i/g;
- $code .= "$pre$new$post\n";
- }
- }
- else {
- $code .= "$_\n";
- }
- }
-
- return $code;
-}
-my $template2 = <<'TEMPLATE';
-.sub _main
- =LOCALS=
- =INITS=
- _sub(=ARGS=)
- =TESTS2=
- end
-fail:
- print "failed\n"
- end
-.end
-.sub _sub
- =PARAMS=
- =TESTS=
- print "all params ok\n"
+ ok(1, 'spill 4')
.return()
-fail:
- print "failed\n"
- end
+ err:
+ ok(0, 'spill 4')
.end
-TEMPLATE
-
-my $code = repeat(
- $template2, 18,
- LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
- INITS => 'a<index> = <index>',
- ARGS => 'a<index>',
- PARAMS => '.param pmc a<index>',
- TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
- TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
-);
-
-pir_output_is( $code, <<'OUT', "overflow pmcs 18 spill" );
-all params ok
-OUT
-
-$code = repeat(
- $template2, 22,
- LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
- INITS => 'a<index> = <index>',
- ARGS => 'a<index>',
- PARAMS => '.param pmc a<index>',
- TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
- TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
-);
-
-pir_output_is( $code, <<'OUT', "overflow pmcs 22 spill" );
-all params ok
-OUT
-
-$code = repeat(
- $template2, 40,
- LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
- INITS => 'a<index> = <index>',
- ARGS => 'a<index>',
- PARAMS => '.param pmc a<index>',
- TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
- TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
-);
-
-pir_output_is( $code, <<'OUT', "overflow pmcs 40 spill" );
-all params ok
-OUT
-
-$code = repeat(
- $template2, 60,
- LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
- INITS => 'a<index> = <index>',
- ARGS => 'a<index>',
- PARAMS => '.param pmc a<index>',
- TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
- TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
-);
-
-pir_output_is( $code, <<'OUT', "overflow pmcs 60 spill" );
-all params ok
-OUT
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/ops_pct/t/compilers/imcc/reg/spill_old.t (from r44740, trunk/t/compilers/imcc/reg/spill_old.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/t/compilers/imcc/reg/spill_old.t Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/t/compilers/imcc/reg/spill_old.t)
@@ -0,0 +1,298 @@
+#!perl
+# Copyright (C) 2001-2008, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+use Parrot::Test tests => 5;
+
+pir_output_is( <<'CODE', <<'OUT', "bug #32996" );
+
+.namespace ["Foo"]
+
+.sub __biginit :main
+ $S0 = "Foo"
+ newclass $P0, $S0
+ $P1 = new $S0
+ $P1.'method1'()
+ $P1.'method2'()
+
+ $P2 = new $S0
+ $P2.'method1'()
+ $P2.'method2'()
+
+ $P3 = new $S0
+ $P3.'method1'()
+ $P3.'method2'()
+
+ $P4 = new $S0
+ $P4.'method1'()
+ $P4.'method2'()
+
+ $P5 = new $S0
+ $P5.'method1'()
+ $P5.'method2'()
+
+ $P6 = new $S0
+ $P6.'method1'()
+ $P6.'method2'()
+
+ $P7 = new $S0
+ $P7.'method1'()
+ $P7.'method2'()
+
+ $P8 = new $S0
+ $P8.'method1'()
+ $P8.'method2'()
+
+ $P9 = new $S0
+ $P9.'method1'()
+ $P9.'method2'()
+
+ $P10 = new $S0
+ $P10.'method1'()
+ $P10.'method2'()
+
+ $P11 = new $S0
+ $P11.'method1'()
+ $P11.'method2'()
+
+ $P12 = new $S0
+ $P12.'method1'()
+ $P12.'method2'()
+
+ $P13 = new $S0
+ $P13.'method1'()
+ $P13.'method2'()
+
+ $P14 = new $S0
+ $P14.'method1'()
+ $P14.'method2'()
+
+ $P15 = new $S0
+ $P15.'method1'()
+ $P15.'method2'()
+
+ $P1.'method1'()
+ $P1.'method2'()
+ $P2.'method1'()
+ $P2.'method2'()
+ $P3.'method1'()
+ $P3.'method2'()
+ $P4.'method1'()
+ $P4.'method2'()
+ $P5.'method1'()
+ $P5.'method2'()
+ $P6.'method1'()
+ $P6.'method2'()
+ $P7.'method1'()
+ $P7.'method2'()
+ $P8.'method1'()
+ $P8.'method2'()
+ $P9.'method1'()
+ $P9.'method2'()
+ $P10.'method1'()
+ $P10.'method2'()
+ $P11.'method1'()
+ $P11.'method2'()
+ $P12.'method1'()
+ $P12.'method2'()
+ $P13.'method1'()
+ $P13.'method2'()
+ $P14.'method1'()
+ $P14.'method2'()
+ $P15.'method1'()
+ $P15.'method2'()
+
+ end
+.end
+
+.sub method1 :method
+ print "In method 1\n"
+ .begin_return
+ .end_return
+.end
+
+.sub method2 :method
+ print "In method 2\n"
+ .begin_return
+ .end_return
+.end
+CODE
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+In method 1
+In method 2
+OUT
+
+sub repeat {
+ my ( $template, $count, %substs ) = @_;
+ my ( $code, $n, $start );
+ foreach ( split( /\n/, $template ) ) {
+ $n = $count;
+ $start = 0;
+ if (/^(.*)=(\w+)=(.*)/) {
+ my ( $pre, $key, $post ) = ( $1, $2, $3 );
+ if ( $key eq 'ARGS' ) {
+ my @params;
+ for my $i ( 0 .. $n - 1 ) {
+ ( my $new = $substs{$key} ) =~ s/\<index\>/$i/g;
+ push @params, $new;
+ }
+ $code .= $pre . join( ',', @params ) . "$post\n";
+ next;
+ }
+ $start = $n / 2 if ( $key eq 'TESTS2' );
+ for my $i ( $start .. $n - 1 ) {
+ ( my $new = $substs{$key} ) =~ s/\<index\>/$i/g;
+ $code .= "$pre$new$post\n";
+ }
+ }
+ else {
+ $code .= "$_\n";
+ }
+ }
+
+ return $code;
+}
+my $template2 = <<'TEMPLATE';
+.sub _main
+ =LOCALS=
+ =INITS=
+ _sub(=ARGS=)
+ =TESTS2=
+ end
+fail:
+ print "failed\n"
+ end
+.end
+.sub _sub
+ =PARAMS=
+ =TESTS=
+ print "all params ok\n"
+ .return()
+fail:
+ print "failed\n"
+ end
+.end
+TEMPLATE
+
+my $code = repeat(
+ $template2, 18,
+ LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
+ INITS => 'a<index> = <index>',
+ ARGS => 'a<index>',
+ PARAMS => '.param pmc a<index>',
+ TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
+ TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
+);
+
+pir_output_is( $code, <<'OUT', "overflow pmcs 18 spill" );
+all params ok
+OUT
+
+$code = repeat(
+ $template2, 22,
+ LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
+ INITS => 'a<index> = <index>',
+ ARGS => 'a<index>',
+ PARAMS => '.param pmc a<index>',
+ TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
+ TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
+);
+
+pir_output_is( $code, <<'OUT', "overflow pmcs 22 spill" );
+all params ok
+OUT
+
+$code = repeat(
+ $template2, 40,
+ LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
+ INITS => 'a<index> = <index>',
+ ARGS => 'a<index>',
+ PARAMS => '.param pmc a<index>',
+ TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
+ TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
+);
+
+pir_output_is( $code, <<'OUT', "overflow pmcs 40 spill" );
+all params ok
+OUT
+
+$code = repeat(
+ $template2, 60,
+ LOCALS => ".local pmc a<index>\n\ta<index> = new 'Integer'",
+ INITS => 'a<index> = <index>',
+ ARGS => 'a<index>',
+ PARAMS => '.param pmc a<index>',
+ TESTS => "set \$I0, a<index>\nne \$I0, <index>, fail",
+ TESTS2 => "set \$I0, a<index>\nne \$I0, <index>, fail"
+);
+
+pir_output_is( $code, <<'OUT', "overflow pmcs 60 spill" );
+all params ok
+OUT
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/t/compilers/imcc/syn/hll.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/syn/hll.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/syn/hll.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
use strict;
@@ -81,3 +81,10 @@
Stack
OUT
}
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/t/compilers/imcc/syn/labels.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/syn/labels.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/syn/labels.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
.sub main :main
@@ -41,9 +41,9 @@
.end
CODE
.end
+
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/imcc/syn/objects.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/syn/objects.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/syn/objects.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
.sub main :main
@@ -29,7 +29,7 @@
.namespace [ ]
.namespace []
-.sub test
+.sub test
$I0 = 42
.end
CODE
@@ -291,8 +291,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/imcc/syn/op.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/syn/op.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/syn/op.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
.sub test :main
@@ -320,8 +320,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/imcc/syn/scope.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/syn/scope.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/syn/scope.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
.sub main :main
@@ -20,8 +20,8 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
+
Modified: branches/ops_pct/t/compilers/imcc/syn/subflags.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/syn/subflags.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/syn/subflags.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,10 +1,10 @@
#!./parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
-t/compilers/imcc/syn/subflags.t
+t/compilers/imcc/syn/subflags.t
=head1 SYNOPSIS
@@ -185,3 +185,9 @@
.sub 'anon4' :subid('subid4')
.return ('anon4')
.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/imcc/syn/veracity.t
==============================================================================
--- branches/ops_pct/t/compilers/imcc/syn/veracity.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/imcc/syn/veracity.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
.sub test :main
@@ -21,7 +21,7 @@
ok(1, "1 is true")
.return()
not_one:
- ok(0, "1 is true")
+ ok(0, "1 is true")
.end
.sub test_negative_integers
@@ -88,7 +88,7 @@
goto neg_zero
not_zero:
ok(0, "0.0 is false")
- neg_zero:
+ neg_zero:
$N0 = -0.0
if $N0 goto not_neg_zero
ok(1, "-0.0 is false")
@@ -108,8 +108,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/json/from_parrot.t
==============================================================================
--- branches/ops_pct/t/compilers/json/from_parrot.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/json/from_parrot.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -452,8 +452,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/pct/past.t
==============================================================================
--- branches/ops_pct/t/compilers/pct/past.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/pct/past.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -72,9 +72,9 @@
}
OUT
-## TODO: test that return() is taken from the type of value when not specified
+## TT #1476: test that return() is taken from the type of value when not specified
-## TODO: check the rest of the PAST::Var attributes
+## TT #1476: check the rest of the PAST::Var attributes
pir_output_is( <<'CODE', <<'OUT', 'dump PAST::Var node in visual format' );
.sub _main :main
load_bytecode 'PCT.pbc'
Modified: branches/ops_pct/t/compilers/pge/00-basic.t
==============================================================================
--- branches/ops_pct/t/compilers/pge/00-basic.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/pge/00-basic.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,6 @@
#!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
=head1 NAME
Modified: branches/ops_pct/t/compilers/pge/02-match.t
==============================================================================
--- branches/ops_pct/t/compilers/pge/02-match.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/pge/02-match.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -56,8 +56,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/pge/03-optable.t
==============================================================================
--- branches/ops_pct/t/compilers/pge/03-optable.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/pge/03-optable.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,8 +1,7 @@
#!parrot
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
-# Copyright (C) 2006-2009, Parrot Foundation.
-
.sub main :main
.include 'test_more.pir'
plan(37)
@@ -184,8 +183,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/pge/04-compile.t
==============================================================================
--- branches/ops_pct/t/compilers/pge/04-compile.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/pge/04-compile.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,5 @@
#!parrot
+# Copyright (C) 2007-2009, Parrot Foundation.
# $Id$
# Copyright (C) 2007-2009, Parrot Foundation.
@@ -76,10 +77,8 @@
is($P3, 'ok 1', 'compile into a new grammar, 2x')
.end
-
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/pge/06-grammar.t
==============================================================================
--- branches/ops_pct/t/compilers/pge/06-grammar.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/pge/06-grammar.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,6 @@
#!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
=head1 NAME
Modified: branches/ops_pct/t/compilers/pge/pge-hs.t
==============================================================================
--- branches/ops_pct/t/compilers/pge/pge-hs.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/pge/pge-hs.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
-#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+#!parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -43,8 +43,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/tge/basic.t
==============================================================================
--- branches/ops_pct/t/compilers/tge/basic.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/tge/basic.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -70,15 +70,14 @@
.sub test_malformed_string_in_r11890_under_linux_i386
lives_ok(<<'CODE', '"Malformed string" in r11890 under Linux i386')
-.sub main
+.sub main
load_bytecode "TGE.pbc"
.end
CODE
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/compilers/tge/parser.t
==============================================================================
--- branches/ops_pct/t/compilers/tge/parser.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/compilers/tge/parser.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -59,7 +59,7 @@
.sub test_parse_failure
$S0 = "Syntax error at line 4, near \"transform \"\n"
throws_substring(<<'CODE', $S0, 'parse failure')
-.sub main
+.sub main
load_bytecode 'TGE.pbc'
.local string source
source = <<'GRAMMAR'
@@ -79,8 +79,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/configure/008-file_based_configuration.t
==============================================================================
--- branches/ops_pct/t/configure/008-file_based_configuration.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/configure/008-file_based_configuration.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# 008-file_based_configuration.t
@@ -20,17 +20,17 @@
my $configfile = q{examples/config/file/configwithfatalstep};
my ($args, $steps_list_ref) = _test_good_config_file($configfile);
- ok(! defined $args->{maintainer},
+ ok(! defined $args->{maintainer},
"Configuring from testfoobar: 'maintainer' not defined, as expected");
is($args->{'verbose-step'}, 'init::hints',
"Configuring from testfoobar: 'init::hints' is verbose step");
is($args->{'fatal-step'}, 'init::hints',
"Configuring from testfoobar: 'init::hints' is fatal step");
- ok($args->{nomanicheck},
+ ok($args->{nomanicheck},
"Configuring from testfoobar: will omit check of MANIFEST");
is($args->{file}, $configfile,
"Configuring from testfoobar: config file correctly stored");
- ok($args->{debugging},
+ ok($args->{debugging},
"Configuring from testfoobar: debugging turned on");
my %steps_seen = map {$_ => 1} @{ $steps_list_ref };
ok(exists $steps_seen{'init::manifest'},
@@ -42,18 +42,18 @@
{
my $configfile = q{examples/config/file/configcompiler};
my ($args, $steps_list_ref) = _test_good_config_file($configfile);
-
+
my $c_compiler = '/usr/bin/gcc';
my $cplusplus_compiler = '/usr/bin/g++';
- ok(! defined $args->{maintainer},
+ ok(! defined $args->{maintainer},
"Configuring from yourfoobar: 'maintainer' not defined as expected");
is($args->{'verbose-step'}, 'init::hints',
"Configuring from yourfoobar: 'init::hints' is verbose step");
- ok($args->{nomanicheck},
+ ok($args->{nomanicheck},
"Configuring from yourfoobar: will omit check of MANIFEST");
is($args->{file}, $configfile,
"Configuring from yourfoobar: config file correctly stored");
- ok($args->{debugging},
+ ok($args->{debugging},
"Configuring from yourfoobar: debugging turned on");
is($args->{cc}, $c_compiler,
"Configuring from yourfoobar: C compiler is $c_compiler");
@@ -76,13 +76,13 @@
my $configfile = q{t/configure/testlib/verbosefoobar};
my ($args, $steps_list_ref) = _test_good_config_file($configfile);
- ok(! defined $args->{maintainer},
+ ok(! defined $args->{maintainer},
"Configuring from verbosefoobar: 'maintainer' not defined as expected");
- ok($args->{nomanicheck},
+ ok($args->{nomanicheck},
"Configuring from verbosefoobar: will omit check of MANIFEST");
is($args->{file}, $configfile,
"Configuring from verbosefoobar: config file correctly stored");
- ok($args->{debugging},
+ ok($args->{debugging},
"Configuring from verbosefoobar: debugging turned on");
is($args->{verbose}, 1,
"Configuring from verbosefoobar: verbose output is on");
Modified: branches/ops_pct/t/configure/025-options_test.t
==============================================================================
--- branches/ops_pct/t/configure/025-options_test.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/configure/025-options_test.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -7,7 +7,6 @@
use warnings;
use Carp;
use Cwd;
-use Data::Dumper;
use File::Temp qw( tempdir );
use Test::More tests => 7;
use lib qw( lib );
Modified: branches/ops_pct/t/configure/026-options_test.t
==============================================================================
--- branches/ops_pct/t/configure/026-options_test.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/configure/026-options_test.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -7,7 +7,6 @@
use warnings;
use Carp;
use Cwd;
-use Data::Dumper;
use Test::More tests => 20;
use lib qw( lib );
use IO::CaptureOutput qw| capture |;
Modified: branches/ops_pct/t/configure/034-step.t
==============================================================================
--- branches/ops_pct/t/configure/034-step.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/configure/034-step.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -114,7 +114,7 @@
\$stderr
);
ok($rv, "genfile() returned true when warning expected" );
- like( $stderr, qr/value for 'foobar'/, "got expected warning" );
+ like( $stderr, qr/value for '\@foobar\@'/, "got expected warning" );
unlink $dummy or croak "Unable to delete file after testing";
chdir $cwd or croak "Unable to change back to starting directory";
Modified: branches/ops_pct/t/distro/meta_yml.t
==============================================================================
--- branches/ops_pct/t/distro/meta_yml.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/distro/meta_yml.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -30,3 +30,10 @@
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/ops_pct/t/dynoplibs/math.t
==============================================================================
--- branches/ops_pct/t/dynoplibs/math.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/dynoplibs/math.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -51,18 +51,18 @@
.end
.sub test_3_arg_int
- rand $I0, 5, 25
- lt $I0, 5, fail1
- ok(1, 'rand returns a number greater than or equal to 5')
+ rand $I0, 50, 75
+ lt $I0, 50, fail1
+ ok(1, 'rand returns a number greater than or equal to 50')
goto upper
fail1:
- ok(0, 'rand returns a number greater than or equal to 5')
+ ok(0, 'rand returns a number greater than or equal to 50')
upper:
- gt $I0, 25, fail2
- ok(1, 'rand returns a number less than or equal to 25')
+ gt $I0, 75, fail2
+ ok(1, 'rand returns a number less than or equal to 75')
goto finish
fail2:
- ok(0, 'rand returns a number less than or equal to 25')
+ ok(0, 'rand returns a number less than or equal to 75')
finish:
.end
@@ -99,18 +99,18 @@
.end
.sub test_3_arg_num
- rand $N0, 5, 25
- lt $N0, 5, fail1
- ok(1, 'rand returns a number greater than or equal to 5')
+ rand $N0, 50, 75
+ lt $N0, 25, fail1
+ ok(1, 'rand returns a number greater than or equal to 50')
goto upper
fail1:
- ok(0, 'rand returns a number greater than or equal to 5')
+ ok(0, 'rand returns a number greater than or equal to 50')
upper:
- gt $N0, 25, fail2
- ok(1, 'rand returns a number less than or equal to 25')
+ gt $N0, 75, fail2
+ ok(1, 'rand returns a number less than or equal to 75')
goto finish
fail2:
- ok(0, 'rand returns a number less than or equal to 25')
+ ok(0, 'rand returns a number less than or equal to 75')
finish:
.end
@@ -129,18 +129,18 @@
.sub test_local_nums_2_arg
.local num foo, bar
- foo = rand 5.0, 25.0
- lt foo, 5, fail1
- ok(1, 'rand returns a number greater than or equal to 5')
+ foo = rand 50.0, 75.0
+ lt foo, 50, fail1
+ ok(1, 'rand returns a number greater than or equal to 50')
goto upper
fail1:
- ok(0, 'rand returns a number greater than or equal to 5')
+ ok(0, 'rand returns a number greater than or equal to 50')
upper:
- gt foo, 25, fail2
- ok(1, 'rand returns a number less than or equal to 25')
+ gt foo, 75, fail2
+ ok(1, 'rand returns a number less than or equal to 75')
goto finish
fail2:
- ok(0, 'rand returns a number less than or equal to 25')
+ ok(0, 'rand returns a number less than or equal to 75')
finish:
.end
@@ -163,24 +163,23 @@
.sub test_local_ints
.local int foo, bar
- foo = rand 5, 25
- lt foo, 5, fail1
- ok(1, 'rand returns a number greater than or equal to 5')
+ foo = rand 50, 75
+ lt foo, 50, fail1
+ ok(1, 'rand returns a number greater than or equal to 50')
goto upper
fail1:
- ok(0, 'rand returns a number greater than or equal to 5')
+ ok(0, 'rand returns a number greater than or equal to 50')
upper:
- gt foo, 25, fail2
- ok(1, 'rand returns a number less than or equal to 25')
+ gt foo, 75, fail2
+ ok(1, 'rand returns a number less than or equal to 75')
goto finish
fail2:
- ok(0, 'rand returns a number less than or equal to 25')
+ ok(0, 'rand returns a number less than or equal to 75')
finish:
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/dynoplibs/obscure.t
==============================================================================
--- branches/ops_pct/t/dynoplibs/obscure.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/dynoplibs/obscure.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -99,8 +99,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/dynpmc/foo2.t
==============================================================================
--- branches/ops_pct/t/dynpmc/foo2.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/dynpmc/foo2.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -23,7 +23,7 @@
test_dynpmcs_can_use_super()
.end
-.sub test_dynpmcs_can_use_super
+.sub test_dynpmcs_can_use_super
$P0 = loadlib 'foo_group'
$P1 = new "Foo2"
@@ -32,8 +32,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4: filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/dynpmc/gdbmhash.t
==============================================================================
--- branches/ops_pct/t/dynpmc/gdbmhash.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/dynpmc/gdbmhash.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,21 +1,14 @@
-#! perl
-# Copyright (C) 2005-2008, Parrot Foundation.
+#! parrot
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test;
-use Parrot::Config;
-
=head1 NAME
t/dynpmc/gdbmhash.t - test the GDBMHash PMC
=head1 SYNOPSIS
- % prove t/dynpmc/gdbmhash.t
+ % parrot t/dynpmc/gdbmhash.t
=head1 DESCRIPTION
@@ -23,77 +16,95 @@
=cut
-if ( $PConfig{has_gdbm} ) {
- plan tests => 13;
-}
-else {
- plan skip_all => "No gdbm library available";
-}
+.sub main
+ .include 'test_more.pir'
+ .include 'iglobals.pasm'
+ .local pmc config_hash, interp
+
+ plan(48)
+ interp = getinterp
+ config_hash = interp[.IGLOBALS_CONFIG_HASH]
+ $S0 = config_hash['has_gdbm']
+ unless $S0 goto no_gdbm
+
+ test_typeof()
+ test_interface()
+ test_get_integer()
+ test_get_bool()
+ test_modify_an_entry()
+ test_exists_keyed()
+ test_set_string_with_string_key()
+ test_set_string_with_pmc_key()
+ test_set_pmc_with_string_key()
+ test_set_pmc_with_pmc_key()
+ test_set_intval_with_string_key()
+ test_set_floatval_with_pmc_key()
+ test_delete_keyed()
+ .return()
+ no_gdbm:
+ skip(48, 'No gdbm library available')
+.end
+
+.sub unlink
+ .param string filename
+ new $P0, 'OS'
+ push_eh _handler
+ $P0.'rm'(filename)
+ .return ()
+ _handler:
+ .local pmc e
+ .get_results (e)
+ printerr "# Cannot unlink "
+ printerr filename
+ printerr " ("
+ printerr e
+ printerr ")\n"
+.end
-# PIR fragment for setting up a GDBM Hash
-my $new_hash_1 = << 'CODE';
-.sub test :main
+.sub test_typeof
.local pmc gdbmhash_lib
gdbmhash_lib = loadlib "gdbmhash"
.local pmc hash_1
hash_1 = new "GDBMHash"
-CODE
-
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "typeof" );
-
.local string type
type = typeof hash_1
- print type
- print "\n"
+ is(type, 'GDBMHash', 'typeof')
.end
-CODE
-GDBMHash
-OUTPUT
-unlink('gdbm_hash_1');
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "check whether interface is done" );
+.sub test_interface
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
.local int bool1
does bool1, hash_1, "scalar"
- print bool1
- print "\n"
+ is(bool1, 0, 'check whether interface is done')
does bool1, hash_1, "hash"
- print bool1
- print "\n"
+ is(bool1, 1, 'check whether interface is done')
does bool1, hash_1, "no_interface"
- print bool1
- print "\n"
+ is(bool1, 0, 'check whether interface is done')
.end
-CODE
-0
-1
-0
-OUTPUT
-unlink('gdbm_hash_1');
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "get_integer" );
+.sub test_get_integer
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
.local int hash_size
hash_size = hash_1
- print "An unitialized GDBMHash has size "
- print hash_size
- print ".\n"
+ is(hash_size, 0, 'An unitialized GDBMHash has size 0')
hash_1 = "gdbm_hash_1"
hash_size = hash_1
- print "An GDBMHash for a new file has size "
- print hash_size
- print ".\n"
+ is(hash_size, 0, 'An GDBMHash for a new file has size 0')
hash_1["key1"] = "val1"
hash_size = hash_1
- print "After one assignment GDBMHash has size "
- print hash_size
- print ".\n"
+ is(hash_size, 1, 'After one assignment GDBMHash has size 1')
hash_1["key2"] = "val2"
hash_size = hash_1
- print "After two assignments GDBMHash has size "
- print hash_size
- print ".\n"
+ is(hash_size, 2, 'After two assignments GDBMHash has size 2')
hash_1["key3"] = "val3"
hash_1["key4"] = "val4"
@@ -109,225 +120,208 @@
hash_1["key14"] = "val14"
hash_1["key15"] = "val15"
hash_size = hash_1
- print "After 15 assignments GDBMHash has size "
- print hash_size
- print ".\n"
+ is(hash_size, 15, 'After 15 assignments GDBMHash has size 15')
delete hash_1["key7"]
delete hash_1["key9"]
hash_size = hash_1
- print "After 15 assignments and 2 deletes GDBMHash has size "
- print hash_size
- print ".\n"
-
+ is(hash_size, 13, 'After 15 assignments and 2 deletes GDBMHash has size 13')
+ hash_1."close"()
+ unlink('gdbm_hash_1')
.end
-CODE
-An unitialized GDBMHash has size 0.
-An GDBMHash for a new file has size 0.
-After one assignment GDBMHash has size 1.
-After two assignments GDBMHash has size 2.
-After 15 assignments GDBMHash has size 15.
-After 15 assignments and 2 deletes GDBMHash has size 13.
-OUTPUT
-unlink('gdbm_hash_1');
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "get_bool" );
- print "An uninitialized GDBMHash is"
+.sub test_get_bool
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
if hash_1 goto HASH1_IS_1
- print " not"
+ ok(1, 'An uninitialized GDBMHash is not')
HASH1_IS_1:
- print ".\n"
- hash_1 = "gdbm_hash_1"
- print "An GDBMHash for a new file is"
+ hash_1 = "gdbm_hash_2"
if hash_1 goto HASH1_IS_2
- print " not"
+ ok(1, 'A GDBMHash for a new file is not')
HASH1_IS_2:
- print ".\n"
hash_1["key1"] = "val1"
- print "After one insert the GDBMHash is"
if hash_1 goto HASH1_IS_3
- print " not"
+ ok(0, 'After one insert the GDBMHash is not')
HASH1_IS_3:
- print ".\n"
+ ok(1, 'After one insert the GDBMHash is')
+ hash_1."close"()
+ unlink('gdbm_hash_2')
.end
-CODE
-An uninitialized GDBMHash is not.
-An GDBMHash for a new file is not.
-After one insert the GDBMHash is.
-OUTPUT
-unlink('gdbm_hash_1');
# The value is a STRING, with umlaut
# The key used for insertion is a STRING.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "modify an entry" );
- hash_1 = "gdbm_hash_1"
+.sub test_modify_an_entry
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_3"
.local pmc val_pmc
- hash_1["Schluessel"] = "Wert urspruenglich\n"
+ hash_1["Schluessel"] = "Wert urspruenglich"
val_pmc = hash_1["Schluessel"]
- print val_pmc
- hash_1["Schluessel"] = "Wert geaendert\n"
+ is(val_pmc, 'Wert urspruenglich', 'modify an entry')
+ hash_1["Schluessel"] = "Wert geaendert"
val_pmc = hash_1["Schluessel"]
- print val_pmc
- hash_1["Schluessel"] = "Wert nocheinmal geaendert\n"
+ is(val_pmc, 'Wert geaendert', 'modify an entry')
+ hash_1["Schluessel"] = "Wert nocheinmal geaendert"
val_pmc = hash_1["Schluessel"]
- print val_pmc
- hash_1["Schluessel"] = "Wert urspruenglich\n"
+ is(val_pmc, 'Wert nocheinmal geaendert', 'modify an entry')
+ hash_1["Schluessel"] = "Wert urspruenglich"
val_pmc = hash_1["Schluessel"]
- print val_pmc
+ is(val_pmc, 'Wert urspruenglich', 'modify an entry')
+
+ hash_1."close"()
+ unlink('gdbm_hash_3')
.end
-CODE
-Wert urspruenglich
-Wert geaendert
-Wert nocheinmal geaendert
-Wert urspruenglich
-OUTPUT
-unlink('gdbm_hash_1');
# The value is a STRING.
# The key used for insertion is a STRING.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "exists_keyed" );
- hash_1 = "gdbm_hash_1"
+.sub test_exists_keyed
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_4"
- hash_1["Schluessel"] = "Wert\n"
+ hash_1["Schluessel"] = "Wert"
.local int exist_flag
exist_flag = exists hash_1["a"]
- print exist_flag
- print "\n"
+ is(exist_flag, 0, 'exists keyed')
exist_flag = exists hash_1["Schluessel"]
- print exist_flag
- print "\n"
+ is(exist_flag, 1, 'exists keyed')
.local pmc key_out
key_out = new 'String'
key_out = "b"
exist_flag = exists hash_1[key_out]
- print exist_flag
- print "\n"
+ is(exist_flag, 0, 'exists keyed')
key_out = "Schluessel"
exist_flag = exists hash_1[key_out]
- print exist_flag
- print "\n"
+ is(exist_flag, 1, 'exists keyed')
+
+ hash_1."close"()
+ unlink('gdbm_hash_4')
.end
-CODE
-0
-1
-0
-1
-OUTPUT
-unlink('gdbm_hash_1');
# The value is a STRING.
# The key used for insertion is a STRING.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "set STRING with STRING key" );
- hash_1 = "gdbm_hash_1"
+.sub test_set_string_with_string_key
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_5"
- hash_1["Schluessel"] = "Wert\n"
+ hash_1["Schluessel"] = "Wert"
.local pmc val_pmc
.local string val_string
val_string = hash_1["Schluessel"]
- print val_string
+ is(val_string, 'Wert', 'set string with string key')
val_pmc = hash_1["Schluessel"]
- print val_pmc
+ is(val_pmc, 'Wert', 'set string with string key')
.local pmc key_out
key_out = new 'String'
key_out = "Schluessel"
val_string = hash_1[key_out]
- print val_string
+ is(val_string, 'Wert', 'set string with string key')
val_pmc = hash_1[key_out]
- print val_pmc
+ is(val_pmc, 'Wert', 'set string with string key')
+
+ hash_1."close"()
+ unlink('gdbm_hash_5')
.end
-CODE
-Wert
-Wert
-Wert
-Wert
-OUTPUT
-unlink('gdbm_hash_1');
# The value is a STRING.
# The key used for insertion is a PMC.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "set STRING with a PMC key" );
- hash_1 = "gdbm_hash_1"
+.sub test_set_string_with_pmc_key
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_6"
.local pmc key_pmc
key_pmc = new 'String'
key_pmc = "Schluessel"
- hash_1[key_pmc] = "Wert\n"
+ hash_1[key_pmc] = "Wert"
.local pmc val_pmc
.local string val_string
val_string = hash_1["Schluessel"]
- print val_string
+ is(val_string, 'Wert', 'set string with pmc key')
val_pmc = hash_1["Schluessel"]
- print val_pmc
+ is(val_pmc, 'Wert', 'set string with pmc key')
.local pmc key2
key2 = new 'String'
key2 = "Schluessel"
val_string = hash_1[key2]
- print val_string
+ is(val_string, 'Wert', 'set string with pmc key')
val_pmc = hash_1[key2]
- print val_pmc
+ is(val_pmc, 'Wert', 'set string with pmc key')
+
+ hash_1."close"()
+ unlink('gdbm_hash_6')
.end
-CODE
-Wert
-Wert
-Wert
-Wert
-OUTPUT
-unlink('gdbm_hash_1');
# The value is a PMC.
# The key used for insertion is a STRING.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "set PMC with STRING key" );
- hash_1 = "gdbm_hash_1"
+.sub test_set_pmc_with_string_key
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_7"
.local pmc val
val = new 'String'
- val = "Wert\n"
+ val = "Wert"
hash_1["Schluessel"] = val
.local pmc val_pmc
.local string val_string
val_string = hash_1["Schluessel"]
- print val_string
+ is(val_string, 'Wert', 'set pmc with string key')
val_pmc = hash_1["Schluessel"]
- print val_pmc
+ is(val_pmc, 'Wert', 'set pmc with string key')
.local pmc key_out
key_out = new 'String'
key_out = "Schluessel"
val_string = hash_1[key_out]
- print val_string
+ is(val_string, 'Wert', 'set pmc with string key')
val_pmc = hash_1[key_out]
- print val_pmc
+ is(val_pmc, 'Wert', 'set pmc with string key')
+
+ hash_1."close"()
+ unlink('gdbm_hash_7')
.end
-CODE
-Wert
-Wert
-Wert
-Wert
-OUTPUT
-unlink('gdbm_hash_1');
# The value is a PMC.
# The key used for insertion is a PMC.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "set PMC with a PMC key" );
- hash_1 = "gdbm_hash_1"
+.sub test_set_pmc_with_pmc_key
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_8"
.local pmc val
val = new 'String'
- val = "Wert\n"
+ val = "Wert"
.local pmc key_pmc
key_pmc = new 'String'
key_pmc = "Schluessel"
@@ -337,29 +331,29 @@
.local string val_string
val_string = hash_1["Schluessel"]
- print val_string
+ is(val_string, 'Wert', 'set pmc with pmc key')
val_pmc = hash_1["Schluessel"]
- print val_pmc
+ is(val_pmc, 'Wert', 'set pmc with pmc key')
.local pmc key2
key2 = new 'String'
key2 = "Schluessel"
val_string = hash_1[key2]
- print val_string
+ is(val_string, 'Wert', 'set pmc with pmc key')
val_pmc = hash_1[key2]
- print val_pmc
+ is(val_pmc, 'Wert', 'set pmc with pmc key')
+
+ hash_1."close"()
+ unlink('gdbm_hash_8')
.end
-CODE
-Wert
-Wert
-Wert
-Wert
-OUTPUT
-unlink('gdbm_hash_1');
# The value is an INTVAL
# The key used for insertion is a STRING.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "set INTVAL with STRING key" );
- hash_1 = "gdbm_hash_1"
+.sub test_set_intval_with_string_key
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_9"
hash_1["Schluessel"] = -11012005
@@ -367,33 +361,29 @@
.local string val_string
val_string = hash_1["Schluessel"]
- print val_string
- print "\n"
+ is(val_string, -11012005, 'set intval with a string key')
val_pmc = hash_1["Schluessel"]
- print val_pmc
- print "\n"
+ is(val_pmc, -11012005, 'set intval with a string key')
.local pmc key_out
key_out = new 'String'
key_out = "Schluessel"
val_string = hash_1[key_out]
- print val_string
- print "\n"
+ is(val_string, -11012005, 'set intval with a string key')
val_pmc = hash_1[key_out]
- print val_pmc
- print "\n"
+ is(val_pmc, -11012005, 'set intval with a string key')
+
+ hash_1."close"()
+ unlink('gdbm_hash_9')
.end
-CODE
--11012005
--11012005
--11012005
--11012005
-OUTPUT
-unlink('gdbm_hash_1');
# The value is a FLOATVAL.
# The key used for insertion is a PMC.
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "set FLOATVAL with a PMC key" );
- hash_1 = "gdbm_hash_1"
+.sub test_set_floatval_with_pmc_key
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_10"
.local pmc key_pmc
key_pmc = new 'String'
@@ -404,62 +394,48 @@
.local string val_string
val_string = hash_1["Schluessel"]
- print val_string
- print "\n"
+ is(val_string, -1101.2005, 'set float with a pmc key')
val_pmc = hash_1["Schluessel"]
- print val_pmc
- print "\n"
+ is(val_pmc, -1101.2005, 'set float with a pmc key')
.local pmc key2
key2 = new 'String'
key2 = "Schluessel"
val_string = hash_1[key2]
- print val_string
- print "\n"
+ is(val_string, -1101.2005, 'set float with a pmc key')
val_pmc = hash_1[key2]
- print val_pmc
- print "\n"
+ is(val_pmc, -1101.2005, 'set float with a pmc key')
+
+ hash_1."close"()
+ unlink('gdbm_hash_10')
.end
-CODE
--1101.2005
--1101.2005
--1101.2005
--1101.2005
-OUTPUT
-unlink('gdbm_hash_1');
-pir_output_is( $new_hash_1 . << 'CODE', << 'OUTPUT', "delete_keyed" );
- hash_1 = "gdbm_hash_1"
+.sub test_delete_keyed
+ .local pmc gdbmhash_lib
+ gdbmhash_lib = loadlib "gdbmhash"
+ .local pmc hash_1
+ hash_1 = new "GDBMHash"
+ hash_1 = "gdbm_hash_11"
.local int exist_flag
.local int hash_size
exist_flag = exists hash_1["a"]
- print '"a" exists: '
- print exist_flag
- print "\n"
+ is(exist_flag, 0, 'delete keyed')
hash_1["a"] = "A"
exist_flag = exists hash_1["a"]
- print '"a" exists: '
- print exist_flag
- print "\n"
+ is(exist_flag, 1, 'delete keyed')
delete hash_1["a"]
exist_flag = exists hash_1["a"]
- print '"a" exists: '
- print exist_flag
- print "\n"
-.end
-CODE
-"a" exists: 0
-"a" exists: 1
-"a" exists: 0
-OUTPUT
-unlink('gdbm_hash_1');
+ is(exist_flag, 0, 'delete keyed')
+
+ hash_1."close"()
+ unlink('gdbm_hash_11')
+.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/dynpmc/rational.t
==============================================================================
--- branches/ops_pct/t/dynpmc/rational.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/dynpmc/rational.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
use strict;
@@ -658,3 +658,10 @@
-1
1
OUTPUT
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/t/dynpmc/subproxy.t
==============================================================================
--- branches/ops_pct/t/dynpmc/subproxy.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/dynpmc/subproxy.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -65,8 +65,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/examples/catchall.t
==============================================================================
--- branches/ops_pct/t/examples/catchall.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/examples/catchall.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2007-2008 Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
use strict;
@@ -30,7 +30,7 @@
my $manifest = maniread('MANIFEST');
my %files;
foreach my $file (keys %$manifest) {
- next unless $file =~ m{^examples/.*(pir|pasm)$};
+ next unless $file =~ m{^examples/.*(pir|pasm)$};
next if $file =~ m{^examples/tutorial}; # all are tested in tutorial.t
next if $file =~ m{^examples/pir/befunge}; # language, not testable here
next if $file =~ m{^examples/languages}; # language, not testable here
@@ -43,7 +43,7 @@
plan tests => scalar keys %files;
foreach my $file (sort keys %files) {
- my $cmd = File::Spec->curdir() . $PConfig{slash} .
+ my $cmd = File::Spec->curdir() . $PConfig{slash} .
$PConfig{test_prog} . " -o " . File::Spec->devnull() . " " .
$file;
Modified: branches/ops_pct/t/examples/pod.t
==============================================================================
--- branches/ops_pct/t/examples/pod.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/examples/pod.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2009, The Perl Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
use strict;
@@ -58,27 +58,27 @@
my $cmd = File::Spec->curdir() . $PConfig{slash} .
$PConfig{test_prog} . " -o " . File::Spec->devnull() . " " .
$tempfile . ' 2> ' . $err_tempfile;
-
+
my $description = join (':', map {$snippet->{$_}}
qw(file line type modifier));
my $rc = system($cmd);
open my $errout_fh, '<', $err_tempfile;
- my $error_output;
+ my $error_output;
{
undef local $/;
$error_output = <$errout_fh>;
}
-
+
my $todo = 0;
$todo = 1 if ($snippet->{modifier} =~ /TODO|INVALID/);
TODO: {
- # conditionally TODO the file.
+ # conditionally todo the file.
local $TODO = 'invalid code' if $todo;
is ($error_output,'',$description);
- }
+ }
}
sub get_samples {
@@ -112,7 +112,7 @@
$snippet->{line} = $.;
$snippet->{type} = $2;
$snippet->{modifier} = defined($4) ? $4 : '';
- $target = $1;
+ $target = $1;
}
}
@@ -152,7 +152,7 @@
C<PASM> and C<PIR> are both valid target languages.
-Additionally, you can add the following modifiers (prepending with an
+Additionally, you can add the following modifiers (prepending with an
underscore).
=over 4
@@ -173,7 +173,7 @@
to be updated:
=begin PIR_FRAGMENT_INVALID
-
+
find_type $I1, 'Integer'
=end PIR_FRAGMENT_INVALID
Modified: branches/ops_pct/t/examples/tutorial.t
==============================================================================
--- branches/ops_pct/t/examples/tutorial.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/examples/tutorial.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2007-2008 Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
use strict;
@@ -27,7 +27,7 @@
my $manifest = maniread('MANIFEST');
my %files;
foreach my $file (keys %$manifest) {
- next unless $file =~ m{examples/tutorial/.*pir$};
+ next unless $file =~ m{examples/tutorial/.*pir$};
$files{$file}=undef;
}
@@ -244,7 +244,8 @@
@todo = (todo => $reason) if defined $reason;
}
example_output_is( $tutorial, $expected, @todo );
- } else {
+ }
+ else {
fail($tutorial);
}
}
Modified: branches/ops_pct/t/harness
==============================================================================
--- branches/ops_pct/t/harness Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/harness Sun Mar 7 19:33:20 2010 (r44743)
@@ -4,7 +4,6 @@
use strict;
use warnings;
-use Data::Dumper;$Data::Dumper::Indent=1;
use lib qw( lib );
use Getopt::Std;
Modified: branches/ops_pct/t/library/cgi_query_hash.t
==============================================================================
--- branches/ops_pct/t/library/cgi_query_hash.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/cgi_query_hash.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,6 @@
#!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
=head1 NAME
Modified: branches/ops_pct/t/library/configure.t
==============================================================================
--- branches/ops_pct/t/library/configure.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/configure.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -159,8 +159,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/coroutine.t
==============================================================================
--- branches/ops_pct/t/library/coroutine.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/coroutine.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -145,9 +145,9 @@
.param pmc tree2
.local pmc coro_class
- coro_class = get_class 'Parrot::Coroutine'
+ coro_class = get_class ['Parrot'; 'Coroutine']
unless null coro_class goto found
- printerr "Bug: Can't find 'Parrot::Coroutine' class.\n"
+ printerr "Bug: Can't find ['Parrot'; 'Coroutine'] class.\n"
die 5, 1
found:
.local pmc coro1, coro2
Modified: branches/ops_pct/t/library/getopt_obj.t
==============================================================================
--- branches/ops_pct/t/library/getopt_obj.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/getopt_obj.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
Modified: branches/ops_pct/t/library/md5.t
==============================================================================
--- branches/ops_pct/t/library/md5.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/md5.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -682,8 +682,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/mime_base64.t
==============================================================================
--- branches/ops_pct/t/library/mime_base64.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/mime_base64.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,6 @@
#!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
=head1 NAME
Deleted: branches/ops_pct/t/library/mt19937ar.t
==============================================================================
--- branches/ops_pct/t/library/mt19937ar.t Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,129 +0,0 @@
-#!parrot
-# Copyright (C) 2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/library/mt19937ar.t
-
-=head1 DESCRIPTION
-
-Math::Random::MT tests
-
-=head1 SYNOPSIS
-
- % parrot t/library/mt19937ar.t
-
-=cut
-
-.sub 'main' :main
- load_bytecode 'Math/Random/mt19937ar.pbc'
-
- .include 'test_more.pir'
-
- plan(10)
-
- test_interfaces()
- test_output()
-.end
-
-.sub 'test_interfaces'
- .local pmc mt
- mt = new [ 'Math'; 'Random'; 'MT' ]
-
- $S0 = typeof mt
- is($S0, 'Math;Random;MT', "MT typeof")
-
- $I0 = can mt, 'init_genrand'
- ok($I0, "MT can init_genrand")
-
- $I0 = can mt, 'init_by_array'
- ok($I0, "MT can init_by_array")
-
- $I0 = can mt, 'genrand_int32'
- ok($I0, "MT can genrand_int32")
-
- $I0 = can mt, 'genrand_int31'
- ok($I0, "MT can genrand_int31")
-
- $I0 = can mt, 'genrand_real1'
- ok($I0, "MT can genrand_real1")
-
- $I0 = can mt, 'genrand_real2'
- ok($I0, "MT can genrand_real2")
-
- $I0 = can mt, 'genrand_real3'
- ok($I0, "MT can genrand_real3")
-
- $I0 = can mt, 'genrand_res53'
- ok($I0, "MT can genrand_res53")
-.end
-
-.sub 'generate_output' :anon
- .param pmc fh
- .local pmc mt
- mt = new [ 'Math'; 'Random'; 'MT' ]
- .local pmc init
- new init, 'FixedIntegerArray'
- set init, 4
- set init[0], 0x123
- set init[1], 0x234
- set init[2], 0x345
- set init[3], 0x456
- mt.'init_by_array'(init)
- fh.'puts'( "1000 outputs of genrand_int32()\n" )
- .local int i
- i = 0
- new $P0, 'FixedPMCArray'
- set $P0, 1
- L1:
- unless i < 1000 goto L2
- $I0 = mt.'genrand_int32'()
- $P0[0] = $I0
- $S0 = sprintf "%10lu ", $P0
- fh.'puts'( $S0 )
- $I0 = i % 5
- unless $I0 == 4 goto L3
- fh.'puts'( "\n" )
- L3:
- inc i
- goto L1
- L2:
- fh.'puts'( "\n1000 outputs of genrand_real2()\n" )
- i = 0
- L4:
- unless i < 1000 goto L5
- $N0 = mt.'genrand_real2'()
- $P0[0] = $N0
- $S0 = sprintf "%10.8f ", $P0
- fh.'puts'( $S0 )
- $I0 = i % 5
- unless $I0 == 4 goto L6
- fh.'puts'( "\n" )
- L6:
- inc i
- goto L4
- L5:
-.end
-
-.sub 'test_output'
- .local pmc fh
- fh = new 'FileHandle'
- .local string ref
- ref = fh.'readall'('t/library/mt19937ar.txt')
- $P0 = split "\r\n", ref # hack for Windows
- ref = join "\n", $P0
- fh = new 'StringHandle'
- fh.'open'('output', 'w')
- generate_output(fh)
- $S0 = fh.'readall'()
- fh.'close'()
- is($S0, ref, "mt19937ar output")
-.end
-
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Deleted: branches/ops_pct/t/library/mt19937ar.txt
==============================================================================
--- branches/ops_pct/t/library/mt19937ar.txt Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,403 +0,0 @@
-1000 outputs of genrand_int32()
-1067595299 955945823 477289528 4107218783 4228976476
-3344332714 3355579695 227628506 810200273 2591290167
-2560260675 3242736208 646746669 1479517882 4245472273
-1143372638 3863670494 3221021970 1773610557 1138697238
-1421897700 1269916527 2859934041 1764463362 3874892047
-3965319921 72549643 2383988930 2600218693 3237492380
-2792901476 725331109 605841842 271258942 715137098
-3297999536 1322965544 4229579109 1395091102 3735697720
-2101727825 3730287744 2950434330 1661921839 2895579582
-2370511479 1004092106 2247096681 2111242379 3237345263
-4082424759 219785033 2454039889 3709582971 835606218
-2411949883 2735205030 756421180 2175209704 1873865952
-2762534237 4161807854 3351099340 181129879 3269891896
- 776029799 2218161979 3001745796 1866825872 2133627728
- 34862734 1191934573 3102311354 2916517763 1012402762
-2184831317 4257399449 2899497138 3818095062 3030756734
-1282161629 420003642 2326421477 2741455717 1278020671
-3744179621 271777016 2626330018 2560563991 3055977700
-4233527566 1228397661 3595579322 1077915006 2395931898
-1851927286 3013683506 1999971931 3006888962 1049781534
-1488758959 3491776230 104418065 2448267297 3075614115
-3872332600 891912190 3936547759 2269180963 2633455084
-1047636807 2604612377 2709305729 1952216715 207593580
-2849898034 670771757 2210471108 467711165 263046873
-3569667915 1042291111 3863517079 1464270005 2758321352
-3790799816 2301278724 3106281430 7974801 2792461636
- 555991332 621766759 1322453093 853629228 686962251
-1455120532 957753161 1802033300 1021534190 3486047311
-1902128914 3701138056 4176424663 1795608698 560858864
-3737752754 3141170998 1553553385 3367807274 711546358
-2475125503 262969859 251416325 2980076994 1806565895
- 969527843 3529327173 2736343040 2987196734 1649016367
-2206175811 3048174801 3662503553 3138851612 2660143804
-1663017612 1816683231 411916003 3887461314 2347044079
-1015311755 1203592432 2170947766 2569420716 813872093
-1105387678 1431142475 220570551 4243632715 4179591855
-2607469131 3090613241 282341803 1734241730 1391822177
-1001254810 827927915 1886687171 3935097347 2631788714
-3905163266 110554195 2447955646 3717202975 3304793075
-3739614479 3059127468 953919171 2590123714 1132511021
-3795593679 2788030429 982155079 3472349556 859942552
-2681007391 2299624053 647443547 233600422 608168955
-3689327453 1849778220 1608438222 3968158357 2692977776
-2851872572 246750393 3582818628 3329652309 4036366910
-1012970930 950780808 3959768744 2538550045 191422718
-2658142375 3276369011 2927737484 1234200027 1920815603
-3536074689 1535612501 2184142071 3276955054 428488088
-2378411984 4059769550 3913744741 2732139246 64369859
-3755670074 842839565 2819894466 2414718973 1010060670
-1839715346 2410311136 152774329 3485009480 4102101512
-2852724304 879944024 1785007662 2748284463 1354768064
-3267784736 2269127717 3001240761 3179796763 895723219
- 865924942 4291570937 89355264 1471026971 4114180745
-3201939751 2867476999 2460866060 3603874571 2238880432
-3308416168 2072246611 2755653839 3773737248 1709066580
-4282731467 2746170170 2832568330 433439009 3175778732
- 26248366 2551382801 183214346 3893339516 1928168445
-1337157619 3429096554 3275170900 1782047316 4264403756
-1876594403 4289659572 3223834894 1728705513 4068244734
-2867840287 1147798696 302879820 1730407747 1923824407
-1180597908 1569786639 198796327 560793173 2107345620
-2705990316 3448772106 3678374155 758635715 884524671
- 486356516 1774865603 3881226226 2635213607 1181121587
-1508809820 3178988241 1594193633 1235154121 326117244
-2304031425 937054774 2687415945 3192389340 2003740439
-1823766188 2759543402 10067710 1533252662 4132494984
- 82378136 420615890 3467563163 541562091 3535949864
-2277319197 3330822853 3215654174 4113831979 4204996991
-2162248333 3255093522 2219088909 2978279037 255818579
-2859348628 3097280311 2569721123 1861951120 2907080079
-2719467166 998319094 2521935127 2404125338 259456032
-2086860995 1839848496 1893547357 2527997525 1489393124
-2860855349 76448234 2264934035 744914583 2586791259
-1385380501 66529922 1819103258 1899300332 2098173828
-1793831094 276463159 360132945 4178212058 595015228
- 177071838 2800080290 1573557746 1548998935 378454223
-1460534296 1116274283 3112385063 3709761796 827999348
-3580042847 1913901014 614021289 4278528023 1905177404
- 45407939 3298183234 1184848810 3644926330 3923635459
-1627046213 3677876759 969772772 1160524753 1522441192
- 452369933 1527502551 832490847 1003299676 1071381111
-2891255476 973747308 4086897108 1847554542 3895651598
-2227820339 1621250941 2881344691 3583565821 3510404498
- 849362119 862871471 797858058 2867774932 2821282612
-3272403146 3997979905 209178708 1805135652 6783381
-2823361423 792580494 4263749770 776439581 3798193823
-2853444094 2729507474 1071873341 1329010206 1289336450
-3327680758 2011491779 80157208 922428856 1158943220
-1667230961 2461022820 2608845159 387516115 3345351910
-1495629111 4098154157 3156649613 3525698599 4134908037
- 446713264 2137537399 3617403512 813966752 1157943946
-3734692965 1680301658 3180398473 3509854711 2228114612
-1008102291 486805123 863791847 3189125290 1050308116
-3777341526 4291726501 844061465 1347461791 2826481581
- 745465012 2055805750 4260209475 2386693097 2980646741
- 447229436 2077782664 1232942813 4023002732 1399011509
-3140569849 2579909222 3794857471 900758066 2887199683
-1720257997 3367494931 2668921229 955539029 3818726432
-1105704962 3889207255 2277369307 2746484505 1761846513
-2413916784 2685127085 4240257943 1166726899 4215215715
-3082092067 3960461946 1663304043 2087473241 4162589986
-2507310778 1579665506 767234210 970676017 492207530
-1441679602 1314785090 3262202570 3417091742 1561989210
-3011406780 1146609202 3262321040 1374872171 1634688712
-1280458888 2230023982 419323804 3262899800 39783310
-1641619040 1700368658 2207946628 2571300939 2424079766
- 780290914 2715195096 3390957695 163151474 2309534542
-1860018424 555755123 280320104 1604831083 2713022383
-1728987441 3639955502 623065489 3828630947 4275479050
-3516347383 2343951195 2430677756 635534992 3868699749
- 808442435 3070644069 4282166003 2093181383 2023555632
-1568662086 3422372620 4134522350 3016979543 3259320234
-2888030729 3185253876 4258779643 1267304371 1022517473
- 815943045 929020012 2995251018 3371283296 3608029049
-2018485115 122123397 2810669150 1411365618 1238391329
-1186786476 3155969091 2242941310 1765554882 279121160
-4279838515 1641578514 3796324015 13351065 103516986
-1609694427 551411743 2493771609 1316337047 3932650856
-4189700203 463397996 2937735066 1855616529 2626847990
- 55091862 3823351211 753448970 4045045500 1274127772
-1124182256 92039808 2126345552 425973257 386287896
-2589870191 1987762798 4084826973 2172456685 3366583455
-3602966653 2378803535 2901764433 3716929006 3710159000
-2653449155 3469742630 3096444476 3932564653 2595257433
- 318974657 3146202484 853571438 144400272 3768408841
- 782634401 2161109003 570039522 1886241521 14249488
-2230804228 1604941699 3928713335 3921942509 2155806892
- 134366254 430507376 1924011722 276713377 196481886
-3614810992 1610021185 1785757066 851346168 3761148643
-2918835642 3364422385 3012284466 3735958851 2643153892
-3778608231 1164289832 205853021 2876112231 3503398282
-3078397001 3472037921 1748894853 2740861475 316056182
-1660426908 168885906 956005527 3984354789 566521563
-1001109523 1216710575 2952284757 3834433081 3842608301
-2467352408 3974441264 3256601745 1409353924 1329904859
-2307560293 3125217879 3622920184 3832785684 3882365951
-2308537115 2659155028 1450441945 3532257603 3186324194
-1225603425 1124246549 175808705 3009142319 2796710159
-3651990107 160762750 1902254979 1698648476 1134980669
- 497144426 3302689335 4057485630 3603530763 4087252587
- 427812652 286876201 823134128 1627554964 3745564327
-2589226092 4202024494 62878473 3275585894 3987124064
-2791777159 1916869511 2585861905 1375038919 1403421920
- 60249114 3811870450 3021498009 2612993202 528933105
-2757361321 3341402964 2621861700 273128190 4015252178
-3094781002 1621621288 2337611177 1796718448 1258965619
-4241913140 2138560392 3022190223 4174180924 450094611
-3274724580 617150026 2704660665 1469700689 1341616587
- 356715071 1188789960 2278869135 1766569160 2795896635
- 57824704 2893496380 1235723989 1630694347 3927960522
- 428891364 1814070806 2287999787 4125941184 3968103889
-3548724050 1025597707 1404281500 2002212197 92429143
-2313943944 2403086080 3006180634 3561981764 1671860914
-1768520622 1803542985 844848113 3006139921 1410888995
-1157749833 2125704913 1789979528 1799263423 741157179
-2405862309 767040434 2655241390 3663420179 2172009096
-2511931187 1680542666 231857466 1154981000 157168255
-1454112128 3505872099 1929775046 2309422350 2143329496
-2960716902 407610648 2938108129 2581749599 538837155
-2342628867 430543915 740188568 1937713272 3315215132
-2085587024 4030765687 766054429 3517641839 689721775
-1294158986 1753287754 4202601348 1974852792 33459103
-3568087535 3144677435 1686130825 4134943013 3005738435
-3599293386 426570142 754104406 3660892564 1964545167
- 829466833 821587464 1746693036 1006492428 1595312919
-1256599985 1024482560 1897312280 2902903201 691790057
-1037515867 3176831208 1968401055 2173506824 1089055278
-1748401123 2941380082 968412354 1818753861 2973200866
-3875951774 1119354008 3988604139 1647155589 2232450826
-3486058011 3655784043 3759258462 847163678 1082052057
- 989516446 2871541755 3196311070 3929963078 658187585
-3664944641 2175149170 2203709147 2756014689 2456473919
-3890267390 1293787864 2830347984 3059280931 4158802520
-1561677400 2586570938 783570352 1355506163 31495586
-3789437343 3340549429 2092501630 896419368 671715824
-3530450081 3603554138 1055991716 3442308219 1499434728
-3130288473 3639507000 17769680 2259741420 487032199
-4227143402 3693771256 1880482820 3924810796 381462353
-4017855991 2452034943 2736680833 2209866385 2128986379
- 437874044 595759426 641721026 1636065708 3899136933
- 629879088 3591174506 351984326 2638783544 2348444281
-2341604660 2123933692 143443325 1525942256 364660499
- 599149312 939093251 1523003209 106601097 376589484
-1346282236 1297387043 764598052 3741218111 933457002
-1886424424 3219631016 525405256 3014235619 323149677
-2038881721 4100129043 2851715101 2984028078 1888574695
-2014194741 3515193880 4180573530 3461824363 2641995497
-3179230245 2902294983 2217320456 4040852155 1784656905
-3311906931 87498458 2752971818 2635474297 2831215366
-3682231106 2920043893 3772929704 2816374944 309949752
-2383758854 154870719 385111597 1191604312 1840700563
- 872191186 2925548701 1310412747 2102066999 1504727249
-3574298750 1191230036 3330575266 3180292097 3539347721
- 681369118 3305125752 3648233597 950049240 4173257693
-1760124957 512151405 681175196 580563018 1169662867
-4015033554 2687781101 699691603 2673494188 1137221356
- 123599888 472658308 1053598179 1012713758 3481064843
-3759461013 3981457956 3830587662 1877191791 3650996736
- 988064871 3515461600 4089077232 2225147448 1249609188
-2643151863 3896204135 2416995901 1397735321 3460025646
-
-1000 outputs of genrand_real2()
-0.76275443 0.99000644 0.98670464 0.10143112 0.27933125
-0.69867227 0.94218740 0.03427201 0.78842173 0.28180608
-0.92179002 0.20785655 0.54534773 0.69644020 0.38107718
-0.23978165 0.65286910 0.07514568 0.22765211 0.94872929
-0.74557914 0.62664415 0.54708246 0.90959343 0.42043116
-0.86334511 0.19189126 0.14718544 0.70259889 0.63426346
-0.77408121 0.04531601 0.04605807 0.88595519 0.69398270
-0.05377184 0.61711170 0.05565708 0.10133577 0.41500776
-0.91810699 0.22320679 0.23353705 0.92871862 0.98897234
-0.19786706 0.80558809 0.06961067 0.55840445 0.90479405
-0.63288060 0.95009721 0.54948447 0.20645042 0.45000959
-0.87050869 0.70806991 0.19406895 0.79286390 0.49332866
-0.78483914 0.75145146 0.12341941 0.42030252 0.16728160
-0.59906494 0.37575460 0.97815160 0.39815952 0.43595080
-0.04952478 0.33917805 0.76509902 0.61034321 0.90654701
-0.92915732 0.85365931 0.18812377 0.65913428 0.28814566
-0.59476081 0.27835931 0.60722542 0.68310435 0.69387186
-0.03699800 0.65897714 0.17527003 0.02889304 0.86777366
-0.12352068 0.91439461 0.32022990 0.44445731 0.34903686
-0.74639273 0.65918367 0.92492794 0.31872642 0.77749724
-0.85413832 0.76385624 0.32744211 0.91326300 0.27458185
-0.22190155 0.19865383 0.31227402 0.85321225 0.84243342
-0.78544200 0.71854080 0.92503892 0.82703064 0.88306297
-0.47284073 0.70059042 0.48003761 0.38671694 0.60465770
-0.41747204 0.47163243 0.72750808 0.65830223 0.10955369
-0.64215401 0.23456345 0.95944940 0.72822249 0.40888451
-0.69980355 0.26677428 0.57333635 0.39791582 0.85377858
-0.76962816 0.72004885 0.90903087 0.51376506 0.37732665
-0.12691640 0.71249738 0.81217908 0.37037313 0.32772374
-0.14238259 0.05614811 0.74363008 0.39773267 0.94859135
-0.31452454 0.11730313 0.62962618 0.33334237 0.45547255
-0.10089665 0.56550662 0.60539371 0.16027624 0.13245301
-0.60959939 0.04671662 0.99356286 0.57660859 0.40269560
-0.45274629 0.06699735 0.85064246 0.87742744 0.54508392
-0.87242982 0.29321385 0.67660627 0.68230715 0.79052073
-0.48592054 0.25186266 0.93769755 0.28565487 0.47219067
-0.99054882 0.13155240 0.47110470 0.98556600 0.84397623
-0.12875246 0.90953202 0.49129015 0.23792727 0.79481194
-0.44337770 0.96564297 0.67749118 0.55684872 0.27286897
-0.79538393 0.61965356 0.22487929 0.02226018 0.49248200
-0.42247006 0.91797788 0.99250134 0.23449967 0.52531508
-0.10246337 0.78685622 0.34310922 0.89892996 0.40454552
-0.68608407 0.30752487 0.83601319 0.54956031 0.63777550
-0.82199797 0.24890696 0.48801123 0.48661910 0.51223987
-0.32969635 0.31075073 0.21393155 0.73453207 0.15565705
-0.58584522 0.28976728 0.97621478 0.61498701 0.23891470
-0.28518540 0.46809591 0.18371914 0.37597910 0.13492176
-0.66849449 0.82811466 0.56240330 0.37548956 0.27562998
-0.27521910 0.74096121 0.77176757 0.13748143 0.99747138
-0.92504502 0.09175241 0.21389176 0.21766512 0.31183245
-0.23271221 0.21207367 0.57903312 0.77523344 0.13242613
-0.31037988 0.01204835 0.71652949 0.84487594 0.14982178
-0.57423142 0.45677888 0.48420169 0.53465428 0.52667473
-0.46880526 0.49849733 0.05670710 0.79022476 0.03872047
-0.21697212 0.20443086 0.28949326 0.81678186 0.87629474
-0.92297064 0.27373097 0.84625273 0.51505586 0.00582792
-0.33295971 0.91848412 0.92537226 0.91760033 0.07541125
-0.71745848 0.61158698 0.00941650 0.03135554 0.71527471
-0.24821915 0.63636652 0.86159918 0.26450229 0.60160194
-0.35557725 0.24477500 0.07186456 0.51757096 0.62120362
-0.97981062 0.69954667 0.21065616 0.13382753 0.27693186
-0.59644095 0.71500764 0.04110751 0.95730081 0.91600724
-0.47704678 0.26183479 0.34706971 0.07545431 0.29398385
-0.93236070 0.60486023 0.48015011 0.08870451 0.45548581
-0.91872718 0.38142712 0.10668643 0.01397541 0.04520355
-0.93822273 0.18011940 0.57577277 0.91427606 0.30911399
-0.95853475 0.23611214 0.69619891 0.69601980 0.76765372
-0.58515930 0.49479057 0.11288752 0.97187699 0.32095365
-0.57563608 0.40760618 0.78703383 0.43261152 0.90877651
-0.84686346 0.10599030 0.72872803 0.19315490 0.66152912
-0.10210518 0.06257876 0.47950688 0.47062066 0.72701157
-0.48915116 0.66110261 0.60170685 0.24516994 0.12726050
-0.03451185 0.90864994 0.83494878 0.94800035 0.91035206
-0.14480751 0.88458997 0.53498312 0.15963215 0.55378627
-0.35171349 0.28719791 0.09097957 0.00667896 0.32309622
-0.87561479 0.42534520 0.91748977 0.73908457 0.41793223
-0.99279792 0.87908370 0.28458072 0.59132853 0.98672190
-0.28547393 0.09452165 0.89910674 0.53681109 0.37931425
-0.62683489 0.56609740 0.24801549 0.52948179 0.98328855
-0.66403523 0.55523786 0.75886666 0.84784685 0.86829981
-0.71448906 0.84670080 0.43922919 0.20771016 0.64157936
-0.25664246 0.73055695 0.86395782 0.65852932 0.99061803
-0.40280575 0.39146298 0.07291005 0.97200603 0.20555729
-0.59616495 0.08138254 0.45796388 0.33681125 0.33989127
-0.18717090 0.53545811 0.60550838 0.86520709 0.34290701
-0.72743276 0.73023855 0.34195926 0.65019733 0.02765254
-0.72575740 0.32709576 0.03420866 0.26061893 0.56997511
-0.28439072 0.84422744 0.77637570 0.55982168 0.06720327
-0.58449067 0.71657369 0.15819609 0.58042821 0.07947911
-0.40193792 0.11376012 0.88762938 0.67532159 0.71223735
-0.27829114 0.04806073 0.21144026 0.58830274 0.04140071
-0.43215628 0.12952729 0.94668759 0.87391019 0.98382450
-0.27750768 0.90849647 0.90962737 0.59269720 0.96102026
-0.49544979 0.32007095 0.62585546 0.03119821 0.85953001
-0.22017528 0.05834068 0.80731217 0.53799961 0.74166948
-0.77426600 0.43938444 0.54862081 0.58575513 0.15886492
-0.73214332 0.11649057 0.77463977 0.85788827 0.17061997
-0.66838056 0.96076133 0.07949296 0.68521946 0.89986254
-0.05667410 0.12741385 0.83470977 0.63969104 0.46612929
-0.10200126 0.01194925 0.10476340 0.90285217 0.31221221
-0.32980614 0.46041971 0.52024973 0.05425470 0.28330912
-0.60426543 0.00598243 0.97244013 0.21135841 0.78561597
-0.78428734 0.63422849 0.32909934 0.44771136 0.27380750
-0.14966697 0.18156268 0.65686758 0.28726350 0.97074787
-0.63676171 0.96649494 0.24526295 0.08297372 0.54257548
-0.03166785 0.33735355 0.15946671 0.02102971 0.46228045
-0.11892296 0.33408336 0.29875681 0.29847692 0.73767569
-0.02080745 0.62980060 0.08082293 0.22993106 0.25031439
-0.87787525 0.45150053 0.13673441 0.63407612 0.97907688
-0.52241942 0.50580158 0.06273902 0.05270283 0.77031811
-0.05113352 0.24393329 0.75036441 0.37436336 0.22877652
-0.59975358 0.85707591 0.88691457 0.85547165 0.36641027
-0.58720133 0.45462835 0.09243817 0.32981586 0.07820411
-0.25421519 0.36004706 0.60092307 0.46192412 0.36758683
-0.98424170 0.08019934 0.68594024 0.45826386 0.29962317
-0.79365413 0.89231296 0.49478547 0.87645944 0.23590734
-0.28106737 0.75026285 0.08136314 0.79582424 0.76010628
-0.82792971 0.27947652 0.72482861 0.82191216 0.46171689
-0.79189752 0.96043686 0.51609668 0.88995725 0.28998963
-0.55191845 0.03934737 0.83033700 0.49553013 0.98009549
-0.19017594 0.98347750 0.33452066 0.87144372 0.72106301
-0.71272114 0.71465963 0.88361677 0.85571283 0.73782329
-0.20920458 0.34855153 0.46766817 0.02780062 0.74898344
-0.03680650 0.44866557 0.77426312 0.91025891 0.25195236
-0.87319953 0.63265037 0.25552148 0.27422476 0.95217406
-0.39281839 0.66441573 0.09158900 0.94515992 0.07800798
-0.02507888 0.39901462 0.17382573 0.12141278 0.85502334
-0.19902911 0.02160210 0.44460522 0.14688742 0.68020336
-0.71323733 0.60922473 0.95400380 0.99611159 0.90897777
-0.41073520 0.66206647 0.32064685 0.62805003 0.50677209
-0.52690101 0.87473387 0.73918362 0.39826974 0.43683919
-0.80459118 0.32422684 0.01958019 0.95319576 0.98326137
-0.83931735 0.69060863 0.33671416 0.68062550 0.65152380
-0.33392969 0.03451730 0.95227244 0.68200635 0.85074171
-0.64721009 0.51234433 0.73402047 0.00969637 0.93835057
-0.80803854 0.31485260 0.20089527 0.01323282 0.59933780
-0.31584602 0.20209563 0.33754800 0.68604181 0.24443049
-0.19952227 0.78162632 0.10336988 0.11360736 0.23536740
-0.23262256 0.67803776 0.48749791 0.74658435 0.92156640
-0.56706407 0.36683221 0.99157136 0.23421374 0.45183767
-0.91609720 0.85573315 0.37706276 0.77042618 0.30891908
-0.40709595 0.06944866 0.61342849 0.88817388 0.58734506
-0.98711323 0.14744128 0.63242656 0.87704136 0.68347125
-0.84446569 0.43265239 0.25146321 0.04130111 0.34259839
-0.92697368 0.40878778 0.56990338 0.76204273 0.19820348
-0.66314909 0.02482844 0.06669207 0.50205581 0.26084093
-0.65139159 0.41650223 0.09733904 0.56344203 0.62651696
-0.67332139 0.58037374 0.47258086 0.21010758 0.05713135
-0.89390629 0.10781246 0.32037450 0.07628388 0.34227964
-0.42190597 0.58201860 0.77363549 0.49595133 0.86031236
-0.83906769 0.81098161 0.26694195 0.14215941 0.88210306
-0.53634237 0.12090720 0.82480459 0.75930318 0.31847147
-0.92768077 0.01037616 0.56201727 0.88107122 0.35925856
-0.85860762 0.61109408 0.70408301 0.58434977 0.92192494
-0.62667915 0.75988365 0.06858761 0.36156496 0.58057195
-0.13636150 0.57719713 0.59340255 0.63530602 0.22976282
-0.71915530 0.41162531 0.63979565 0.09931342 0.79344045
-0.10893790 0.84450224 0.23122236 0.99485593 0.73637397
-0.17276368 0.13357764 0.74965804 0.64991737 0.61990341
-0.41523170 0.05878239 0.05687301 0.05497131 0.42868366
-0.42571090 0.25810502 0.89642955 0.30439758 0.39310223
-0.11357431 0.04288255 0.23397550 0.11200634 0.85621396
-0.89733974 0.37508865 0.42077265 0.68597384 0.72781399
-0.19296476 0.61699087 0.31667128 0.67756410 0.00177323
-0.05725176 0.79474693 0.18885238 0.06724856 0.68193156
-0.42202167 0.22082041 0.28554673 0.64995708 0.87851940
-0.29124547 0.61009521 0.87374537 0.05743712 0.69902994
-0.81925115 0.45653873 0.37236821 0.31118709 0.52734307
-0.39672836 0.38185294 0.30163915 0.17374510 0.04913278
-0.90404879 0.25742801 0.58266467 0.97663209 0.79823377
-0.36437958 0.15206043 0.26529938 0.22690047 0.05839021
-0.84721160 0.18622435 0.37809403 0.55706977 0.49828704
-0.47659049 0.24289680 0.88477595 0.07807463 0.56245739
-0.73490635 0.21099431 0.13164942 0.75840044 0.66877037
-0.28988183 0.44046090 0.24967434 0.80048356 0.26029740
-0.30416821 0.64151867 0.52067892 0.12880774 0.85465381
-0.02690525 0.19149288 0.49630295 0.79682619 0.43566145
-0.00288078 0.81484193 0.03763639 0.68529083 0.01339574
-0.38405386 0.30537067 0.22994703 0.44000045 0.27217985
-0.53831243 0.02870435 0.86282045 0.61831306 0.09164956
-0.25609707 0.07445781 0.72185784 0.90058883 0.30070608
-0.94476583 0.56822213 0.21933909 0.96772793 0.80063440
-0.26307906 0.31183306 0.16501252 0.55436179 0.68562285
-0.23829083 0.86511559 0.57868991 0.81888344 0.20126869
-0.93172350 0.66028129 0.21786948 0.78515828 0.10262106
-0.35390326 0.79303876 0.63427924 0.90479631 0.31024934
-0.60635447 0.56198079 0.63573813 0.91854197 0.99701497
-0.83085849 0.31692291 0.01925964 0.97446405 0.98751283
-0.60944293 0.13751018 0.69519957 0.68956636 0.56969015
-0.46440193 0.88341765 0.36754434 0.89223647 0.39786427
-0.85055280 0.12749961 0.79452122 0.89449784 0.14567830
-0.45716830 0.74822309 0.28200437 0.42546044 0.17464886
-0.68308746 0.65496587 0.52935411 0.12736159 0.61523955
-0.81590528 0.63107864 0.39786553 0.20102294 0.53292914
-0.75485590 0.59847044 0.32861691 0.12125866 0.58917183
-0.07638293 0.86845380 0.29192617 0.03989733 0.52180460
-0.32503407 0.64071852 0.69516575 0.74254998 0.54587026
-0.48713246 0.32920155 0.08719954 0.63497059 0.54328459
-0.64178757 0.45583809 0.70694291 0.85212760 0.86074305
-0.33163422 0.85739792 0.59908488 0.74566046 0.72157152
Modified: branches/ops_pct/t/library/p6object.t
==============================================================================
--- branches/ops_pct/t/library/p6object.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/p6object.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -165,7 +165,7 @@
jklobj = new ['Foo';'JKL']
$S0 = jklobj.'bar'()
is($S0, 'ABC::foo', 'JKL.bar via add_method')
-
+
.local pmc hll_tests
hll_tests = get_root_global ['myhll'], 'hll_tests'
hll_tests()
@@ -174,7 +174,7 @@
$P0 = p6meta.'new_class'('OMG::Lol')
omgproto = get_hll_global ['OMG'], 'Lol'
omgprotoexport = get_hll_global ['OMG';'EXPORT';'ALL'], 'Lol'
- is_same(omgproto,omgprotoexport,'protoobject added to ["EXPORT";"ALL"] subnamespace')
+ is_same(omgproto,omgprotoexport,'protoobject added to ["EXPORT";"ALL"] subnamespace')
.return ()
.end
@@ -496,7 +496,7 @@
p6obj_tests(wxyproto, 'WXY', 'isa'=>'WXY P6object', 'can'=>'foo', 'who'=>wxyns)
## build a Parrotclass
- .local pmc vwx_nsarray, vwx_ns, vwx_parrotclass, vwx_proto
+ .local pmc vwx_nsarray, vwx_ns, vwx_parrotclass, vwx_proto
vwx_nsarray = new 'ResizablePMCArray'
push vwx_nsarray, 'VWX'
vwx_ns = get_hll_namespace vwx_nsarray
@@ -523,3 +523,9 @@
=back
=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/parrotlib.t
==============================================================================
--- branches/ops_pct/t/library/parrotlib.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/parrotlib.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -107,8 +107,7 @@
=cut
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/pg.t
==============================================================================
--- branches/ops_pct/t/library/pg.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/pg.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -226,7 +226,7 @@
test.'ok'($I0, 'con is false after finish')
test.'finish'()
end
-no_pg:
+no_pg:
.local pmc ex
.local string msg
.get_results(ex)
Modified: branches/ops_pct/t/library/protoobject.t
==============================================================================
--- branches/ops_pct/t/library/protoobject.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/protoobject.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -146,8 +146,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/rand.t
==============================================================================
--- branches/ops_pct/t/library/rand.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/rand.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -55,8 +55,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/tcl_glob.t
==============================================================================
--- branches/ops_pct/t/library/tcl_glob.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/tcl_glob.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -106,3 +106,9 @@
.return(boolean)
.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/test_class.t
==============================================================================
--- branches/ops_pct/t/library/test_class.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/test_class.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,4 +1,6 @@
#! parrot
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
.sub 'init_test_builder_tester'
load_bytecode 'Test/Builder/Tester.pbc'
@@ -96,3 +98,9 @@
ok( 4, 'bar second' )
ok( 5, 'bar third' )
.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/library/test_more.t
==============================================================================
--- branches/ops_pct/t/library/test_more.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/test_more.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
.sub _main :main
@@ -15,14 +15,14 @@
.local pmc exports, curr_namespace, test_namespace
curr_namespace = get_namespace
test_namespace = get_namespace [ 'Test'; 'More' ]
- exports = split " ", "ok nok is diag like skip todo is_deeply isa_ok isnt throws_like lives_ok dies_ok"
+ exports = split " ", "ok nok is diag like skip todo is_deeply is_null isa_ok isnt throws_like lives_ok dies_ok"
test_namespace.'export_to'(curr_namespace, exports)
test_namespace = get_namespace [ 'Test'; 'Builder'; 'Tester' ]
exports = split " ", "plan test_out test_diag test_fail test_pass test_test"
test_namespace.'export_to'(curr_namespace, exports)
- plan( 108 )
+ plan( 117 )
test_skip()
test_todo()
@@ -32,6 +32,7 @@
test_isnt()
test_like()
test_is_deeply()
+ test_is_null()
test_diagnostics()
test_lives_ok()
test_dies_ok()
@@ -369,7 +370,62 @@
test_diag( 'Have: 1' )
test_diag( expected )
is( left, right, 'comparing two pmcs' )
- test_test( 'failing test is() for pmcs with description')
+ test_test( 'failing test is() for pmcs with description' )
+
+ test_pass( 'comparing two nulls' )
+ null left
+ null right
+ is( left, right, 'comparing two nulls' )
+ test_test( 'passing test is() for nulls')
+
+ test_fail('comparing null with Int')
+ null left
+ right = box 1
+ is( left, right, 'comparing null with Int')
+ test_diag( 'Have: null' )
+ test_diag( 'Want: 1' )
+ test_test('failing test is() for null vs. pmc 1')
+
+ test_fail('comparing Int with null')
+ left = box 10
+ null right
+ is( left, right, 'comparing Int with null')
+ test_diag( 'Have: 10' )
+ test_diag( 'Want: null' )
+ test_test('failing test is() for pmc 10 vs. null')
+
+ test_fail('comparing null with Float')
+ null left
+ right = box 1.01
+ is( left, right, 'comparing null with Float')
+ test_diag( 'Have: null' )
+ test_diag( 'Want: 1.01' )
+ test_test('failing test is() for null vs. pmc 1.01')
+
+ test_fail('comparing Float with null')
+ left = box 2.787
+ null right
+ is( left, right, 'comparing Float with null')
+ test_diag( 'Have: 2.787' )
+ test_diag( 'Want: null' )
+ test_test('failing test is() for pmc 2.787 vs. null')
+
+ test_fail('comparing null with String')
+ null left
+ right = box 'September, when it comes'
+ is( left, right, 'comparing null with String')
+ test_diag( 'Have: null' )
+ test_diag( 'Want: September, when it comes' )
+ test_test('failing test is() for null vs. String pmc')
+
+ test_fail('comparing String with null')
+ left = box 'I cannot move a mountain now'
+ null right
+ is( left, right, 'comparing String with null')
+ test_diag( 'Have: I cannot move a mountain now' )
+ test_diag( 'Want: null' )
+ test_test('failing test is() for String pmc vs. null')
+
.end
.sub test_isnt
@@ -803,6 +859,21 @@
test_test( 'failing test isnt() for PMC/string')
.end
+
+.sub test_is_null
+ test_pass( 'null is_null')
+ null $P0
+ is_null($P0, 'null is_null')
+ test_test( 'passing is_null with null')
+
+ test_fail( 'String is not null' )
+ $P0 = box 'Concerto'
+ is_null($P0, 'String is not null')
+ test_diag( "Have: Concerto" )
+ test_diag( "Want: null" )
+ test_test( 'failing test is_null for String pmc')
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/ops_pct/t/library/uuid.t
==============================================================================
--- branches/ops_pct/t/library/uuid.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/library/uuid.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -124,8 +124,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/manifest/01-basic.t
==============================================================================
--- branches/ops_pct/t/manifest/01-basic.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/manifest/01-basic.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# 01-basic.t
@@ -19,22 +19,22 @@
unless (-e 'DEVELOPING');
use_ok('Parrot::Manifest');
-
+
my $script = $0;
my $file = q{MANIFEST};
my $skip = q{MANIFEST.SKIP};
-
+
my $mani = Parrot::Manifest->new( { script => $script, } );
isa_ok( $mani, 'Parrot::Manifest' );
-
+
ok( scalar( @{ $mani->{dirs} } ),
"Parrot::Manifest constructor used 'status' command to find at least 1 directory." );
ok( scalar( @{ $mani->{versioned_files} } ),
"Parrot::Manifest constructor used 'status' command to find at least 1 versioned file." );
-
+
my $manifest_lines_ref = $mani->prepare_manifest();
is( ref($manifest_lines_ref), q{HASH}, "prepare_manifest() returned hash ref" );
-
+
my $cwd = cwd();
{
my $tdir = tempdir( CLEANUP => 1 );
@@ -46,10 +46,10 @@
chdir $cwd
or croak "Unable to change back from temporary directory after testing";
}
-
+
my $print_str = $mani->prepare_manifest_skip();
ok( $print_str, "prepare_manifest_skip() returned" );
-
+
{
my $tdir = tempdir( CLEANUP => 1 );
chdir $tdir
Modified: branches/ops_pct/t/manifest/02-regenerate_file.t
==============================================================================
--- branches/ops_pct/t/manifest/02-regenerate_file.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/manifest/02-regenerate_file.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# 02-regenerate_file.t
@@ -21,17 +21,17 @@
unless (-e 'DEVELOPING');
use_ok('Parrot::Manifest');
-
+
my $script = $0;
my $mani = Parrot::Manifest->new( { script => $script, } );
isa_ok( $mani, 'Parrot::Manifest' );
-
+
my $cwd = cwd();
my $f = q{MANIFEST};
-
+
my $manifest_lines_ref = $mani->prepare_manifest();
ok( $manifest_lines_ref, "prepare_manifest_skip() returned" );
-
+
# 1: Copy the real MANIFEST unaltered to the tempdir.
# Assuming the real MANIFEST was correct going in to this test, the
# absence of any change in it will mean that there will be no need to
@@ -49,7 +49,7 @@
or croak "Unable to change back from temporary directory after testing";
unlink qq{$tdir/$f} or croak "Unable to delete file from tempdir";
}
-
+
# 2: Copy the real MANIFEST to the tempdir but mangle it there.
# The alteration in the copied MANIFEST will be sufficient to require
# regeneration of MANIFEST. And for good measure, toss in a line of all
@@ -64,7 +64,7 @@
my @lines;
tie @lines, 'Tie::File', qq{$tdir/$f}
or croak "Unable to tie to $f in tempdir";
-
+
for ( 1 .. 10 ) {
if ( defined( $lines[-1] ) ) {
pop @lines;
@@ -81,7 +81,7 @@
chdir $cwd
or croak "Unable to change back from temporary directory after testing";
}
-
+
# 3: Go to a tempdir which lacks a MANIFEST. Confirm that you need to
# regenerate MANIFEST (but do not bother to actually do it there).
{
Modified: branches/ops_pct/t/manifest/03-regenerate_skip.t
==============================================================================
--- branches/ops_pct/t/manifest/03-regenerate_skip.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/manifest/03-regenerate_skip.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# 03-regenerate_skip.t
@@ -21,16 +21,16 @@
unless (-e 'DEVELOPING');
use_ok('Parrot::Manifest');
-
+
my $script = $0;
my $mani = Parrot::Manifest->new( { script => $script, } );
isa_ok( $mani, 'Parrot::Manifest' );
-
+
my $cwd = cwd();
my $sk = q{MANIFEST.SKIP};
my $print_str = $mani->prepare_manifest_skip();
ok( $print_str, "prepare_manifest_skip() returned" );
-
+
# 1: Copy the real MANIFEST.SKIP unaltered to the tempdir.
# Assuming the real MANIFEST.SKIP was correct going in to this test, the
# absence of any change in it will mean that there will be no need to
@@ -48,7 +48,7 @@
chdir $cwd
or croak "Unable to change back from temporary directory after testing";
}
-
+
# 2: Copy the real MANIFEST.SKIP to the tempdir but mangle it there.
# The alteration in the copied MANIFEST.SKIP will be sufficient to require
# regeneration of MANIFEST.SKIP.
@@ -62,7 +62,7 @@
my @lines;
tie @lines, 'Tie::File', qq{$tdir/$sk}
or croak "Unable to tie to $sk in tempdir";
-
+
for ( 1 .. 10 ) {
if ( defined( $lines[-1] ) ) {
pop @lines;
Modified: branches/ops_pct/t/manifest/04-alt_file.t
==============================================================================
--- branches/ops_pct/t/manifest/04-alt_file.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/manifest/04-alt_file.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# 04-alt_file.t
@@ -17,10 +17,10 @@
unless (-e 'DEVELOPING');
use_ok('Parrot::Manifest');
-
+
my $script = $0;
my $g = q{something_other_than_MANIFEST};
-
+
my $mani = Parrot::Manifest->new(
{
script => $script,
@@ -28,10 +28,10 @@
}
);
isa_ok( $mani, 'Parrot::Manifest' );
-
+
my $manifest_lines_ref = $mani->prepare_manifest();
ok( $manifest_lines_ref, "prepare_manifest_skip() returned" );
-
+
ok( !-f $g, "No $g found" );
my $need_for_file = $mani->determine_need_for_manifest($manifest_lines_ref);
ok( $need_for_file, "Need to regenerate $g" );
Modified: branches/ops_pct/t/manifest/05-alt_skip.t
==============================================================================
--- branches/ops_pct/t/manifest/05-alt_skip.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/manifest/05-alt_skip.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# 05-alt_skip.t
@@ -17,10 +17,10 @@
unless (-e 'DEVELOPING');
use_ok('Parrot::Manifest');
-
+
my $script = $0;
my $g = q{something_other_than_MANIFEST.SKIP};
-
+
my $mani = Parrot::Manifest->new(
{
script => $script,
@@ -28,10 +28,10 @@
}
);
isa_ok( $mani, 'Parrot::Manifest' );
-
+
my $print_str = $mani->prepare_manifest_skip();
ok( $print_str, "prepare_manifest_skip() returned" );
-
+
ok( !-f $g, "No $g found" );
my $need_for_skip = $mani->determine_need_for_manifest_skip($print_str);
ok( $need_for_skip, "Need to regenerate $g" );
Modified: branches/ops_pct/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/ops_pct/t/native_pbc/header.t
==============================================================================
--- branches/ops_pct/t/native_pbc/header.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/native_pbc/header.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2005, 2009 Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
Modified: branches/ops_pct/t/native_pbc/integer.t
==============================================================================
--- branches/ops_pct/t/native_pbc/integer.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/native_pbc/integer.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2005,2009 Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -90,7 +90,7 @@
. "_"
. (substr($PConfig{byteorder},0,2) eq '12' ? "le" : "be");
}
-sub bc_version($) {
+sub bc_version {
my $f = shift;
my $b;
open my $F, "<", "$f" or return "Can't open $f: $!";
Modified: branches/ops_pct/t/native_pbc/integer_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/ops_pct/t/native_pbc/number.t
==============================================================================
--- branches/ops_pct/t/native_pbc/number.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/native_pbc/number.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -132,7 +132,7 @@
. "_"
. (substr($PConfig{byteorder},0,2) eq '12' ? "le" : "be");
}
-sub bc_version($) {
+sub bc_version {
my $f = shift;
my $b;
open my $F, "<", "$f" or return "Can't open $f: $!";
Modified: branches/ops_pct/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/ops_pct/t/native_pbc/string.t
==============================================================================
--- branches/ops_pct/t/native_pbc/string.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/native_pbc/string.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2005,2009 Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -58,7 +58,7 @@
. "_"
. (substr($PConfig{byteorder},0,2) eq '12' ? "le" : "be");
}
-sub bc_version($) {
+sub bc_version {
my $f = shift;
my $b;
open my $F, "<", "$f" or return "Can't open $f: $!";
Modified: branches/ops_pct/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/ops_pct/t/oo/attributes.t
==============================================================================
--- branches/ops_pct/t/oo/attributes.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/attributes.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -71,3 +71,9 @@
is(message, "No such attribute 'data'", 'class attribute deleted')
.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/oo/composition.t
==============================================================================
--- branches/ops_pct/t/oo/composition.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/composition.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -173,7 +173,7 @@
eh = new 'ExceptionHandler'
eh.'handle_types'(.EXCEPTION_ROLE_COMPOSITION_METHOD_CONFLICT)
set_addr eh, catch
-
+
push_eh eh
$P1.'add_role'($P0)
$I0 = 1
Modified: branches/ops_pct/t/oo/inheritance.t
==============================================================================
--- branches/ops_pct/t/oo/inheritance.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/inheritance.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -121,3 +121,9 @@
ok( $I1, 'diamond')
fail:
.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/oo/metamodel.t
==============================================================================
--- branches/ops_pct/t/oo/metamodel.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/metamodel.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -71,9 +71,9 @@
unless $I0 goto FAILTAIL
is($P1, "long", "tail attribute has expected value")
goto NEXTTAIL
-FAILTAIL:
+FAILTAIL:
fail("no attribute")
-NEXTTAIL:
+NEXTTAIL:
$P1 = getattribute $P0, "bark"
$I0 = defined $P1
@@ -81,9 +81,9 @@
unless $I0 goto FAIL
is($P1, "Wooof", "bark attribute has expected value")
goto NEXT
-FAIL:
+FAIL:
fail("no attribute")
-NEXT:
+NEXT:
todo(0, "new opcode makes working objects", "not implemented")
# $P0 = new "Dog"
Modified: branches/ops_pct/t/oo/methods.t
==============================================================================
--- branches/ops_pct/t/oo/methods.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/methods.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007 - 2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
Modified: branches/ops_pct/t/oo/mro-c3.t
==============================================================================
--- branches/ops_pct/t/oo/mro-c3.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/mro-c3.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -19,12 +19,13 @@
.sub main :main
.include 'test_more.pir'
- plan(12)
+ plan(13)
single_parent()
grandparent()
multiple_inheritance()
diamond_inheritance()
+ merge_two_pairs()
.end
.sub method_A :method
@@ -94,24 +95,24 @@
.sub multiple_inheritance
.local pmc A, B, C
-
+
A = newclass 'MIA'
$P0 = get_global 'method_A'
A.'add_method'('foo', $P0)
A.'add_method'('bar', $P0)
A.'add_method'('baz', $P0)
-
+
B = newclass 'MIB'
$P0 = get_global 'method_B'
B.'add_method'('foo', $P0)
B.'add_method'('bar', $P0)
-
+
C = newclass 'MIC'
C.'add_parent'(B)
C.'add_parent'(A)
$P0 = get_global 'method_C'
C.'add_method'('foo', $P0)
-
+
$P0 = C.'new'()
$S0 = $P0.'foo'()
$S1 = $P0.'bar'()
@@ -161,6 +162,38 @@
is($S3, 'Method from A', 'Diamond Inheritance - Method wag inherited from A')
.end
+# See TT#1426
+.sub merge_two_pairs
+ .local pmc C, A, B
+
+ push_eh test_fail
+
+ C = newclass 'TPC'
+ $P0 = get_global 'method_C'
+ C.'add_method'('bar', $P0)
+
+ B = newclass 'TPB'
+ B.'add_parent'(C)
+ $P0 = get_global 'method_B'
+ B.'add_method'('bar', $P0)
+
+ A = newclass 'TPA'
+ A.'add_parent'(C)
+ A.'add_parent'(B)
+ $P0 = get_global 'method_A'
+ A.'add_method'('foo', $P0)
+
+
+ $P0 = A.'new'()
+ $S0 = $P0.'bar'()
+ is($S0, 'Method from B', 'Merge Two Pairs - Method A.bar added from B')
+
+ .return ()
+
+test_fail:
+ pop_eh
+ todo(0, 'Merge Two Pairs - Method A.bar added from B', 'See TT#1426')
+.end
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/ops_pct/t/oo/names.t
==============================================================================
--- branches/ops_pct/t/oo/names.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/names.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -46,12 +46,12 @@
$S0 = $P0
ok (1, 'HLL obj created w/ same name as parrot obj')
.return()
-OK_1:
+OK_1:
ok (0, 'HLL obj w/ same name as parrot obj not created')
.end
# Local Variables:
-# mode: pir
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/oo/new-old.t
==============================================================================
--- branches/ops_pct/t/oo/new-old.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/new-old.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
use strict;
@@ -19,7 +19,7 @@
=head1 DESCRIPTION
-Tests instantiation
+Tests instantiation
=cut
@@ -56,3 +56,10 @@
CODE
ok #test exception from init vtable
OUT
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/t/oo/new.t
==============================================================================
--- branches/ops_pct/t/oo/new.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/new.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007-2009, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -52,7 +52,7 @@
#
.sub _test_instance
.param pmc obj
- .param string in_str
+ .param string in_str
# Set up local variables
.local pmc key_pmc
@@ -467,7 +467,7 @@
$P0 = new [ 'Foo'; 'Bar'; 'Baz' ]
$I0 = 1
goto finally
-
+
catch:
.local pmc exception
.get_results(exception)
Modified: branches/ops_pct/t/oo/ops.t
==============================================================================
--- branches/ops_pct/t/oo/ops.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/ops.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -18,7 +18,7 @@
.sub main :main
.include 'except_types.pasm'
- .include 'test_more.pir'
+ .include 'test_more.pir'
plan(18)
@@ -91,7 +91,7 @@
.end
-.sub op_get_class_p_p
+.sub op_get_class_p_p
$P0 = new 'Hash'
$P4 = new 'String'
$P4 = 'Ape'
@@ -177,7 +177,7 @@
.namespace ["Baz"]
.sub bar :method
- .return (1)
+ .return (1)
.end
# Local Variables:
Modified: branches/ops_pct/t/oo/root_new.t
==============================================================================
--- branches/ops_pct/t/oo/root_new.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/root_new.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007-2009, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -33,7 +33,7 @@
#
.sub _test_instance
.param pmc obj
- .param string in_str
+ .param string in_str
# Set up local variables
.local pmc key_pmc
@@ -92,4 +92,10 @@
$P0 = root_new ['parrot';'Integer']
_test_instance($P0, 'Integer')
.end
-
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/oo/subclass.t
==============================================================================
--- branches/ops_pct/t/oo/subclass.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/oo/subclass.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -55,13 +55,13 @@
parent_class = newclass "PreFoo"
foo_class = subclass parent_class, "Foo"
- $S1 = typeof foo_class
+ $S1 = typeof foo_class
is ($S1, 'Class', 'created Foo as subclass of Pre')
$I3 = isa foo_class, "Class"
ok ($I3, 'Foo isa Class')
- foo_object = new foo_class
+ foo_object = new foo_class
$S1 = typeof foo_object
is ($S1, 'Foo', 'instance is typeof Foo')
@@ -142,7 +142,7 @@
.sub instance_from_class_object_method
# instantiate from class object method
- .local pmc parent_class, baz_class, baz_object
+ .local pmc parent_class, baz_class, baz_object
parent_class = newclass "PreBaz"
baz_class = subclass "PreBaz", "Baz"
baz_object = baz_class.'new'()
@@ -160,7 +160,7 @@
.sub instance_from_string_name
# instantiate from string name
- .local pmc parent_class, qux_class, qux_object
+ .local pmc parent_class, qux_class, qux_object
parent_class = newclass "PreQux"
qux_class = subclass "PreQux", "Qux"
qux_object = new 'Qux'
@@ -239,7 +239,7 @@
.end
-.sub instance_from_key_pmc_name
+.sub instance_from_key_pmc_name
# instantiate from key PMC name
.local pmc parent_class, barbaz_class, barbaz_object
parent_class = newclass "Snork"
Modified: branches/ops_pct/t/op/00ff-dos.t
==============================================================================
--- branches/ops_pct/t/op/00ff-dos.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/00ff-dos.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -42,8 +42,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/00ff-unix.t
==============================================================================
--- branches/ops_pct/t/op/00ff-unix.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/00ff-unix.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -32,8 +32,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/64bit.t
==============================================================================
--- branches/ops_pct/t/op/64bit.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/64bit.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -26,7 +26,7 @@
interp = getinterp
.local pmc config
config = interp[.IGLOBALS_CONFIG_HASH]
- .local int intvalsize
+ .local int intvalsize
intvalsize = config['intvalsize']
plan(5)
@@ -47,14 +47,14 @@
set $I0, 0xffffffffffffffff
is( $I0, -1, 'bitops64' )
-
+
set $I1, 0x00000000ffffffff
is( $I1, 4294967295, 'bitops64' )
-
+
set $I0, $I1
shl $I0, $I0, 32
is( $I0, -4294967296, 'bitops64' )
-
+
band $I2, $I0, $I1
is( $I2, 0, 'bitops64' )
@@ -64,7 +64,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/annotate.t
==============================================================================
--- branches/ops_pct/t/op/annotate.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/annotate.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -218,7 +218,7 @@
.get_results($P3)
pop_eh
$P3 = $P3.'backtrace'()
-
+
$P4 = $P3[0]
$P4 = $P4['annotations']
$S0 = $P4['file']
@@ -236,7 +236,7 @@
# Local Variables:
-# mode: pir
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/arithmetics.t
==============================================================================
--- branches/ops_pct/t/op/arithmetics.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/arithmetics.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -19,8 +19,9 @@
.sub main :main
.include 'test_more.pir'
+ .include 'iglobals.pasm'
- plan(129)
+ plan(130)
take_the_negative_of_a_native_integer()
take_the_absolute_of_a_native_integer()
@@ -44,6 +45,7 @@
lcm_test()
gcd_test()
integer_overflow_with_pow()
+ bnot_p_p_creates_destination()
# END_OF_TESTS
.end
@@ -152,18 +154,21 @@
# print -0.0 as -0
#
.sub negate_minus_zero_point_zero
- .include 'sysinfo.pasm'
- $S9 = sysinfo .SYSINFO_PARROT_OS
+ .local pmc interp, config_hash
+ .local string has_negative_zero
+ interp = getinterp
+ config_hash = interp[.IGLOBALS_CONFIG_HASH]
+ has_negative_zero = config_hash['has_negative_zero']
set $N0, 0
neg $N0
$S0 = $N0
- if $S9 == 'MSWin32' goto Todo_test1
+ unless has_negative_zero goto Todo_test1
is( $S0, "-0", '1' )
goto End_test1
Todo_test1:
$I0 = $S0 == "-0"
- todo($I0, 'Faulty on this platform')
+ todo($I0, 'negative zero, TT #313')
End_test1:
set $N0, -0.0
@@ -180,12 +185,12 @@
set $N1, 1
neg $N1, $N0
$S0 = $N1
- if $S9 == 'MSWin32' goto Todo_test4
+ unless has_negative_zero goto Todo_test4
is( $S0, "-0", '4' )
goto End_test4
Todo_test4:
$I0 = $S0 == "-0"
- todo($I0, 'Faulty on this platform')
+ todo($I0, 'negative zero, TT #313')
End_test4:
.end
@@ -558,9 +563,14 @@
end:
.end
+.sub 'bnot_p_p_creates_destination'
+ $P0 = box 3
+ $P1 = bnot $P0
+ is( $P1, -4, 'bnot_p_p_creates_destination')
+.end
+
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 ft=pir :
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/arithmetics_pmc.t
==============================================================================
--- branches/ops_pct/t/op/arithmetics_pmc.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/arithmetics_pmc.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -20,7 +20,7 @@
.include 'test_more.pir'
.include "iglobals.pasm"
- plan(68)
+ plan(44)
# Don't check BigInt or BigNum without gmp
.local pmc interp # a handle to our interpreter object.
@@ -34,8 +34,8 @@
run_tests_for('Float')
if gmp goto do_big_ones
- skip( 34, "will not test BigInt or BigNum without gmp" )
- goto end
+ skip( 22, "will not test BigInt or BigNum without gmp" )
+ goto end
do_big_ones:
run_tests_for('BigInt')
@@ -54,15 +54,9 @@
test_concatenate(type)
test_logical_xor(type)
test_logical_or(type)
- test_bitwise_shr(type)
- test_bitwise_or(type)
- test_bitwise_shl(type)
- test_bitwise_xor(type)
test_modulus(type)
test_pow(type)
test_subtract(type)
- test_bitwise_lsr(type)
- test_bitwise_and(type)
.end
.sub test_add
@@ -86,7 +80,7 @@
add $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -116,7 +110,7 @@
div $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -146,7 +140,7 @@
mul $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -176,7 +170,7 @@
fdiv $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -206,7 +200,7 @@
and $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -236,7 +230,7 @@
concat $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -266,7 +260,7 @@
xor $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -296,127 +290,7 @@
or $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_shr
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_shr for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- shr $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_or
- .param pmc type
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_or for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- bor $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_shl
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_shl for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- shl $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_xor
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_xor for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- bxor $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
is( $I0, 0, $S0 )
goto end
@@ -446,7 +320,7 @@
mod $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -476,7 +350,7 @@
pow $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -506,67 +380,7 @@
sub $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_lsr
- .param pmc type
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_lsr for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- lsr $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_and
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_and for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- band $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
is( $I0, 0, $S0 )
goto end
@@ -577,7 +391,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 ft=pir :
+# vim: expandtab shiftwidth=4 ft=pir:
Deleted: branches/ops_pct/t/op/bitwise.t
==============================================================================
--- branches/ops_pct/t/op/bitwise.t Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,474 +0,0 @@
-#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/op/bitwise.t - Bitwise Ops
-
-=head1 SYNOPSIS
-
- % prove t/op/bitwise.t
-
-=head1 DESCRIPTION
-
-Tests various bitwise logical operations.
-
-=cut
-
-.sub main :main
- .include 'test_more.pir'
-
- plan(68)
-
- test_shr_i_i_i_shift_rt_()
- test_shr_i_i_shift_rt_()
- test_shr_i_i_ic_shift_rt_()
- test_shr_i_ic_i_shift_rt_()
- test_shr_i_ic_ic_shift_rt_()
- test_lsr_i_ic_ic_shift_rt_()
- test_lsr_i_ic_shift_rt()
- test_lsr_i_i_i_shift_rt()
- test_lsr_i_i_ic_shift_rt()
- test_shr_i_i_ic_shift_rt_negative()
- test_shl_i_i_i_shift_lt()
- test_shl_i_i_ic_shift_lt()
- test_shl_i_ic_i_shift_lt()
- test_shl_i_ic_ic_shift_lt()
- test_shl_i_i_shift_lt()
- test_bxor_i_i_i_xor()
- test_bxor_i_i_ic_xor()
- test_bxor_i_ic_xor()
- test_band_i_i_i_and()
- test_band_i_i_ic_and()
- test_band_i_i_ic_and_2()
- test_bor_i_i_i()
- test_bor_i_i_ic()
- test_bor_i_i_ic_2()
- test_bnot_i_i_2()
- test_rot_i_i_ic_ic()
- test_i_reg_shl_and_pmc_shl_are_consistent()
- # END_OF_TESTS
-.end
-
-.macro exception_is ( M )
- .local pmc exception
- .local string message
- .get_results (exception)
-
- message = exception['message']
- is( message, .M, .M )
-.endm
-
-.sub test_shr_i_i_i_shift_rt_
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 1
- set $I3, 2
- shr $I4, $I0, $I2
- shr $I2, $I0, $I2
- shr $I1, $I1, $I3
- is( $I4, "6", 'shr_i_i_i (>>)' )
- is( $I2, "6", 'shr_i_i_i (>>)' )
- is( $I1, "5", 'shr_i_i_i (>>)' )
- is( $I0, "12", 'shr_i_i_i (>>)' )
-.end
-
-.sub test_shr_i_i_shift_rt_
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 1
- set $I3, 2
- shr $I0, $I2
- shr $I1, $I3
- is( $I0, "6", 'shr_i_i (>>)' )
- is( $I1, "5", 'shr_i_i (>>)' )
-.end
-
-.sub test_shr_i_i_ic_shift_rt_
- set $I0, 0b001100
- set $I1, 0b010100
- shr $I2, $I0, 1
- shr $I1, $I1, 2
- is( $I2, "6", 'shr_i_i_ic (>>)' )
- is( $I1, "5", 'shr_i_i_ic (>>)' )
- is( $I0, "12", 'shr_i_i_ic (>>)' )
-.end
-
-.sub test_shr_i_ic_i_shift_rt_
- set $I0, 1
- set $I1, 2
- shr $I2, 0b001100, $I0
- shr $I1, 0b010100, $I1
- is( $I2, "6", 'shr_i_ic_i (>>)' )
- is( $I1, "5", 'shr_i_ic_i (>>)' )
-.end
-
-.sub test_shr_i_ic_ic_shift_rt_
- shr $I2, 0b001100, 1
- shr $I1, 0b010100, 2
- is( $I2, "6", 'shr_i_ic_ic (>>)' )
- is( $I1, "5", 'shr_i_ic_ic (>>)' )
-.end
-
-# The crux of this test is that a proper logical right shift
-# will clear the most significant bit, so the shifted value
-# will be a positive value on any 2's or 1's complement CPU
-.sub test_lsr_i_ic_ic_shift_rt_
- lsr $I2, -40, 1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_ic_ic (>>)' )
- goto END
- BAD:
- ok( 0, 'lsr_i_ic_ic (>>)' )
- END:
-.end
-
-.sub test_lsr_i_ic_shift_rt
- set $I2, -100
- lsr $I2, 1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_ic (>>) OK')
- goto END
- BAD:
- ok( 0, 'lsr_i_ic (>>)')
- END:
-.end
-
-.sub test_lsr_i_i_i_shift_rt
- set $I0, -40
- set $I1, 1
- lsr $I2, $I0, $I1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_i_i (>>) OK')
- goto END
- BAD:
- ok( 0, 'lsr_i_i_i (>>)')
- END:
-.end
-
-# ... and the missing op signature was untested and wrong in JIT/i386
-.sub test_lsr_i_i_ic_shift_rt
- set $I0, -40
- lsr $I2, $I0, 1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_i_ic (>>) OK')
- goto END
- BAD:
- ok( 0, 'lsr_i_i_ic (>>)')
- END:
-.end
-
-.sub test_shr_i_i_ic_shift_rt_negative
- set $I0, -40
- shr $I2, $I0, 1
- ge $I2, 0, BAD
- ok( 1, 'shr_i_i_ic (>>) negative OK')
- goto END
- BAD:
- ok( 0, 'shr_i_i_ic (>>) negative')
- END:
-.end
-
-.sub test_shl_i_i_i_shift_lt
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 2
- set $I3, 1
- shl $I4, $I0, $I2
- shl $I2, $I0, $I2
- shl $I1, $I1, $I3
- is( $I4, "48", 'shl_i_i_i (<<)' )
- is( $I2, "48", 'shl_i_i_i (<<)' )
- is( $I1, "40", 'shl_i_i_i (<<)' )
- is( $I0, "12", 'shl_i_i_i (<<)' )
-.end
-
-.sub test_shl_i_i_ic_shift_lt
- set $I0, 0b001100
- set $I1, 0b010100
- shl $I2, $I0, 2
- shl $I1, $I1, 1
- is( $I2, "48", 'shl_i_i_ic (<<)' )
- is( $I1, "40", 'shl_i_i_ic (<<)' )
- is( $I0, "12", 'shl_i_i_ic (<<)' )
-.end
-
-.sub test_shl_i_ic_i_shift_lt
- set $I0, 2
- set $I1, 1
- shl $I2, 0b001100, $I0
- shl $I1, 0b010100, $I1
- is( $I2, "48", 'shl_i_ic_i (<<)' )
- is( $I1, "40", 'shl_i_ic_i (<<)' )
-.end
-
-.sub test_shl_i_ic_ic_shift_lt
- shl $I2, 0b001100, 2
- shl $I1, 0b010100, 1
- is( $I2, "48", 'shl_i_ic_ic (<<)' )
- is( $I1, "40", 'shl_i_ic_ic (<<)' )
-.end
-
-.sub test_shl_i_i_shift_lt
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 1
- set $I3, 2
- shl $I0, $I2
- shl $I1, $I3
- is( $I0, "24", 'shl_i_i (<<)' )
- is( $I1, "80", 'shl_i_i (<<)' )
-.end
-
-.sub test_bxor_i_i_i_xor
- set $I0, 0b001100
- set $I1, 0b100110
- bxor $I2, $I0, $I1
- is( $I2, "42", 'bxor_i_i_i (^)' )
- bxor $I1, $I0, $I1
- is( $I1, "42", 'bxor_i_i_i (^)' )
- is( $I0, "12", 'bxor_i_i_i (^)' )
-.end
-
-.sub test_bxor_i_i_ic_xor
- set $I0, 0b001100
- bxor $I2, $I0, 0b100110
- is( $I2, "42", 'bxor_i_i_ic (^)' )
- is( $I0, "12", 'bxor_i_i_ic (^)' )
- bxor $I0, $I0, 0b100110
- is( $I0, "42", 'bxor_i_i_ic (^)' )
-.end
-
-.sub test_bxor_i_ic_xor
- set $I0, 0b001100
- set $I2, 0b000011
- bxor $I2, $I0
- is( $I2, "15", 'bxor_i|ic (^)' )
- set $I2, 0b001100
- bxor $I2, $I0
- is( $I2, "0", 'bxor_i|ic (^)' )
- set $I2, 0b101010
- bxor $I2, $I2
- is( $I2, "0", 'bxor_i|ic (^)' )
- set $I2, 0b010101
- bxor $I2, 0b000011
- is( $I2, "22", 'bxor_i|ic (^)' )
-.end
-
-.sub test_band_i_i_i_and
- set $I0, 0b001100
- set $I1, 0b010110
- band $I2, $I0,$I1
- is( $I2, "4", 'band_i_i_i (&)' )
- band $I1,$I0,$I1
- is( $I1, "4", 'band_i_i_i (&)' )
- is( $I0, "12", 'band_i_i_i (&)' )
-.end
-
-.sub test_band_i_i_ic_and
- set $I0, 0b001100
- band $I2, $I0,0b010110
- is( $I2, "4", 'band_i_i_ic (&)' )
- is( $I0, "12", 'band_i_i_ic (&)' )
- band $I0,$I0,0b010110
- is( $I0, "4", 'band_i_i_ic (&)' )
-.end
-
-.sub test_band_i_i_ic_and_2
- set $I0, 0b001100
- set $I2, 0b000011
- band $I2, $I0
- is( $I2, "0", 'band_i_i|ic (&)' )
-
- set $I2, 0b001100
- band $I2, $I0
- is( $I2, "12", 'band_i_i|ic (&)' )
-
- set $I2, 0b101010
- band $I2, $I2
- is( $I2, "42", 'band_i_i|ic (&)' )
-
- set $I2, 0b010101
- band $I2, 0b000011
- is( $I2, "1", 'band_i_i|ic (&)' )
-.end
-
-.sub test_bor_i_i_i
- set $I0, 0b001100
- set $I1, 0b010110
- bor $I2, $I0,$I1
- is( $I2, "30", 'bor_i_i_i (|)' )
- bor $I1,$I0,$I1
- is( $I1, "30", 'bor_i_i_i (|)' )
- is( $I0, "12", 'bor_i_i_i (|)' )
-.end
-
-.sub test_bor_i_i_ic
- set $I0, 0b001100
- bor $I2, $I0,0b010110
- is( $I2, "30", 'bor_i_i_ic (|)' )
- is( $I0, "12", 'bor_i_i_ic (|)' )
- bor $I0,$I0,0b010110
- is( $I0, "30", 'bor_i_i_ic (|)' )
-.end
-
-.sub test_bor_i_i_ic_2
- set $I0, 0b001100
- set $I2, 0b000011
- bor $I2, $I0
- is( $I2, "15", 'bor_i_i|ic (|) 2' )
- set $I2, 0b001100
- bor $I2, $I0
- is( $I2, "12", 'bor_i_i|ic (|) 2' )
- set $I2, 0b101010
- bor $I2, $I2
- is( $I2, "42", 'bor_i_i|ic (|) 2' )
- set $I2, 0b010101
- bor $I2, 0b000011
- is( $I2, "23", 'bor_i_i|ic (|) 2' )
-.end
-
-.sub test_bnot_i_i_2
- set $I0, 0b001100
- set $I1, 0b001100
- set $I31, 0b111111
- bnot $I2, $I0
- band $I2, $I2, $I31
- is( $I2, "51", 'bnot_i_i (~) 2' )
- bnot $I1, $I1
- band $I1, $I1, $I31
- is( $I1, "51", 'bnot_i_i (~) 2' )
- is( $I0, "12", 'bnot_i_i (~) 2' )
-.end
-
-.sub test_rot_i_i_ic_ic
- .include "iglobals.pasm"
- .local pmc interp # a handle to our interpreter object.
- interp = getinterp
- .local pmc config
- config = interp[.IGLOBALS_CONFIG_HASH]
- .local int intvalsize
- intvalsize = config['intvalsize']
-
- .local int int_bits
- int_bits = intvalsize * 8
-
- set $I0, 0b001100
-
- gt intvalsize, 4, do64bit
-
- rot $I1, $I0, 1, 32 # 1 left
- is( $I1, "24", 'rot_i_i_ic_ic' )
- rot $I1, $I0, -1, 32 # 1 right
- is( $I1, "6", 'rot_i_i_ic_ic' )
- goto END
-
- do64bit:
- rot $I1, $I0, 1, 64 # 1 left
- is( $I1, "24", 'rot_i_i_ic_ic' )
- rot $I1, $I0, -1, 64 # 1 right
- is( $I1, "6", 'rot_i_i_ic_ic' )
-
- END:
-.end
-
-## The PMC shl op will promote Integer to Bigint when needed. We can't stuff a
-## BigInt in an I register, but we can produce the same result modulo wordsize.
-## [Only we cheat by using the word size minus one, so that we don't have to
-## deal with negative numbers. -- rgr, 2-Jun-07.]
-.sub test_i_reg_shl_and_pmc_shl_are_consistent
-
- .include "iglobals.pasm"
- .local pmc interp # a handle to our interpreter object.
- interp = getinterp
- .local pmc config
- config = interp[.IGLOBALS_CONFIG_HASH]
- .local int gmp
- gmp = config['gmp']
-
- if gmp, runtest
- skip( 2, 'no BigInt lib found' )
- goto END
-
- runtest:
-
- ## Figure out the wordsize. We need integer_modulus because assigning a
- ## too-big BigInt throws an error otherwise.
- .include 'sysinfo.pasm'
- .local int i_bytes_per_word, i_bits_per_word_minus_one
- .local pmc bits_per_word_minus_one, integer_modulus
- i_bytes_per_word = sysinfo .SYSINFO_PARROT_INTSIZE
- i_bits_per_word_minus_one = 8 * i_bytes_per_word
- dec i_bits_per_word_minus_one
- bits_per_word_minus_one = new 'Integer'
- bits_per_word_minus_one = i_bits_per_word_minus_one
- integer_modulus = new 'BigInt'
- integer_modulus = 1
- integer_modulus <<= bits_per_word_minus_one
-
- ## Test shifting a positive number.
- new $P0, 'Integer'
- set $P0, 1000001
- test_shift($P0, integer_modulus)
-
- ## Test shifting a negative number.
- set $P0, -1000001
- test_shift($P0, integer_modulus)
- END:
-.end
-
-.sub test_shift
- .param pmc number
- .param pmc integer_modulus
- new $P1, 'Integer'
- set $P1, 1
- .local int i_number
- i_number = number
-
- ## Start the loop.
- loop:
- if $P1 > 100 goto done
- ## shift number and i_number into $P2 and $I2.
- shl $P2, number, $P1
- $I1 = $P1
- shl $I2, i_number, $I1
- ## compare in I registers.
- $P3 = mod $P2, integer_modulus
- $I3 = $P3
- if $I2 >= 0 goto pos_check
- ## The register op gave a negative result, but the modulus will always be
- ## positive. If the truncated result is correct, then the difference will
- ## be the most negative INTVAL, which is the only number for which -x==x.
- $I4 = $I3 - $I2
- $I5 = - $I4
- if $I4 == $I5 goto ok
- goto bad
- pos_check:
- if $I2 == $I3 goto ok
- bad:
- ok( 0, "oops; not ok: " )
- diag( i_number )
- diag( ' << ' )
- diag( $I1 )
- diag( ' gives I ' )
- diag( $I2 )
- diag( ' vs. P ' )
- diag( $P3 )
- diag( ".\n" )
- diag( $I5 )
- diag( "\n" )
- ok:
- ## set up for the next one
- inc $P1
- goto loop
- done:
- ok( 1, 'finished ok' )
-.end
-
-# Local Variables:
-# mode: pir
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/box.t
==============================================================================
--- branches/ops_pct/t/op/box.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/box.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -176,8 +176,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/calling.t
==============================================================================
--- branches/ops_pct/t/op/calling.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/calling.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1406,9 +1406,14 @@
ok
OUTPUT
-my @todo = ( todo => 'broken with JIT (TT #983)' )
- if ( defined $ENV{TEST_PROG_ARGS} and
- $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/ );
+my @todo = (
+ defined $ENV{TEST_PROG_ARGS}
+ and
+ $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/
+)
+ ? ( todo => 'broken with JIT (TT #983)' )
+ : ();
+
pir_output_is( <<'CODE', <<'OUTPUT', "clone_key_arg", @todo );
.sub main :main
foo()
@@ -2461,7 +2466,7 @@
OUTPUT
# See Rakudo queue http://rt.perl.org/rt3/Ticket/Display.html?id=62730
-pir_output_is( <<'CODE', <<'OUTPUT', "Handling :flat of emtpy arguments" );
+pir_output_is( <<'CODE', <<'OUTPUT', "Handling :flat of empty arguments" );
.sub 'main'
$P0 = new ['Undef']
($P0) = foo()
Modified: branches/ops_pct/t/op/cc_params.t
==============================================================================
--- branches/ops_pct/t/op/cc_params.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/cc_params.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -67,7 +67,7 @@
.namespace ['OMGClass']
.sub 'lolmethod' :method
.param pmc sig :call_sig
-
+
# Self is set up correctly.
$S0 = typeof self
is('OMGClass', $S0)
@@ -88,7 +88,7 @@
.sub 'wtfmethod' :method
.param pmc sig :call_sig
-
+
# Self is set up correctly.
$S0 = typeof self
is('OMGClass', $S0)
@@ -120,7 +120,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/comp.t
==============================================================================
--- branches/ops_pct/t/op/comp.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/comp.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -160,8 +160,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/ops_pct/t/op/errorson.t (from r44740, trunk/t/op/errorson.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/t/op/errorson.t Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/t/op/errorson.t)
@@ -0,0 +1,47 @@
+#!parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/errorson.t - Test the errorson opcode
+
+=head1 SYNOPSIS
+
+% prove t/op/errorson.t
+
+=head1 DESCRIPTION
+
+Tests that the errorson opcode turns exception-throwing on and off correctly.
+
+=cut
+
+.sub test_main :main
+ .include 'test_more.pir'
+ .include 'errors.pasm'
+
+ plan(1)
+ test_find_name()
+.end
+
+.sub test_find_name
+ errorson .PARROT_ERRORS_GLOBALS_FLAG
+ push_eh myhandler
+ $P0 = find_name "i_better_not_exist_or_this_thing_is_crazy"
+ pop_eh
+ if null $P0 goto wasnull
+ ok(0, "variable not null, must have existed somehow. inconceivable!")
+ .return()
+wasnull:
+ todo(0,'errorson did not throw an exception for calling find_name on an unbound variable with PARROT_ERRORS_GLOBALS_FLAG')
+ .return()
+myhandler:
+ pop_eh
+ ok(1,'errorson threw an exception for calling find_name on an unbound variable with PARROT_ERRORS_GLOBALS_FLAG')
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/exit.t
==============================================================================
--- branches/ops_pct/t/op/exit.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/exit.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
use strict;
@@ -65,6 +65,7 @@
pbc_exit_code_is($pbc, 0, 'pbc exits with 0 by default');
}
+# Local Variables:
# mode: cperl
# cperl-indent-level: 4
# fill-column: 100
Modified: branches/ops_pct/t/op/fetch.t
==============================================================================
--- branches/ops_pct/t/op/fetch.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/fetch.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -102,7 +102,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 ft=pir :
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/ops_pct/t/op/gc-leaky.t (from r44740, trunk/t/op/gc-leaky.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/t/op/gc-leaky.t Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/t/op/gc-leaky.t)
@@ -0,0 +1,73 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/gc-leaky.t - test for memory leaks in the Garbage Collector
+
+=head1 SYNOPSIS
+
+ % prove t/op/gc-leaky.t
+
+=head1 DESCRIPTION
+
+Tests that we actually do a GC mark and sweep after a large number of PMC's have
+been created. Test suggested by chromatic++ . More tests are needed to close
+TT1465 - http://trac.parrot.org/parrot/ticket/1465 .
+
+=cut
+
+# 20:57 <chromatic> For every million PMCs allocated, see that the GC has performed a mark/sweep.
+
+.include 'interpinfo.pasm'
+
+.sub _main :main
+ .include 'test_more.pir'
+
+ plan(2)
+
+ $S0 = interpinfo .INTERPINFO_GC_SYS_NAME
+ if $S0 == "inf" goto dont_run_hanging_tests
+
+ test_gc_mark_sweep()
+
+ goto test_end
+ dont_run_hanging_tests:
+ ok(1, "#TODO - Test disabled on gc_inf")
+ ok(1, "#TODO - Test disabled on gc_inf")
+ test_end:
+.end
+
+.sub test_gc_mark_sweep
+ .local int counter
+ counter = 0
+ loop:
+ $P0 = box 0
+ inc counter
+ if counter > 1e6 goto done
+ goto loop
+ done:
+ say ""
+ $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS
+ $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS
+
+ $I3 = isge $I1, 1
+ $I4 = isge $I2, 1
+
+ $S1 = $I1
+ $S0 = "performed " . $S1
+ $S0 .= " (which should be >=1) GC collect runs"
+ ok($I2,$S0)
+
+ $S1 = $I2
+ $S0 = "performed " . $S1
+ $S0 .= " (which should be >=1) GC mark runs"
+ ok($I2,$S0)
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/gc.t
==============================================================================
--- branches/ops_pct/t/op/gc.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/gc.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -200,22 +200,22 @@
#Fail if regsave is not marked
-.namespace ["Source"]
+.namespace ['Source']
.sub get_string :method :vtable # buffer
$P4 = self
$P2 = getprop "buffer", $P4
sweep 1
unless_null $P2, buffer_ok
- $P2 = new "Source::Buffer"
- $P3 = new "String"
- $P3 = "hello"
- $P2 = setprop "buf", $P3
- $P4 = setprop "buffer", $P2
+ $P2 = new ['Source'; 'Buffer']
+ $P3 = new 'String'
+ $P3 = 'hello'
+ $P2 = setprop 'buf', $P3
+ $P4 = setprop 'buffer', $P2
buffer_ok:
.return($P2)
.end
-.namespace ["Source::Buffer"]
+.namespace ['Source'; 'Buffer']
.sub get_string :method :vtable
$P4 = self
sweep 1
@@ -227,9 +227,9 @@
.namespace [ ]
.sub regsave_marked
- $P0 = newclass "Source"
- $P1 = newclass "Source::Buffer"
- $P2 = new "Source"
+ $P0 = newclass 'Source'
+ $P1 = newclass ['Source'; 'Buffer']
+ $P2 = new 'Source'
$S1 = $P2
is($S1, "hello")
@@ -542,8 +542,7 @@
F<examples/benchmarks/primes2.py>.
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/inf_nan.t
==============================================================================
--- branches/ops_pct/t/op/inf_nan.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/inf_nan.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -500,8 +500,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/integer.t
==============================================================================
--- branches/ops_pct/t/op/integer.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/integer.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -691,7 +691,7 @@
$I2 = xor $I1, $I1
is($I2, 0, 'xor - nilpotent on 2')
-
+
$I2 = xor $I2, $I2
is($I2, 0, 'xor - nilpotent on other')
.end
Modified: branches/ops_pct/t/op/literal.t
==============================================================================
--- branches/ops_pct/t/op/literal.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/literal.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2005, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -33,7 +33,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/number.t
==============================================================================
--- branches/ops_pct/t/op/number.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/number.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -935,7 +935,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/sprintf.t
==============================================================================
--- branches/ops_pct/t/op/sprintf.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/sprintf.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -106,8 +106,6 @@
skip_tests = 'set_skip_info'()
# how many tests to run?
- # XXX: this should be summed automatically from test_files data
- # until then, it's set to no plan
test.'plan'(TESTS)
outer_loop:
Modified: branches/ops_pct/t/op/sprintf2.t
==============================================================================
--- branches/ops_pct/t/op/sprintf2.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/sprintf2.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -120,7 +120,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/string.t
==============================================================================
--- branches/ops_pct/t/op/string.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/string.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(411)
+ plan(412)
set_s_s_sc()
test_clone()
@@ -98,6 +98,7 @@
index_three_arg_form()
index_four_arg_form()
index_four_arg_form_bug_twenty_two_thousand_seven_hundred_and_eighteen()
+ index_trac_1482()
index_null_strings()
index_embedded_nulls()
index_big_strings()
@@ -182,25 +183,25 @@
.sub set_s_s_sc
set $S4, "JAPH"
set $S5, $S4
-
+
is( $S4, "JAPH", '' )
is( $S5, "JAPH", '' )
.end
-
+
.sub test_clone
set $S0, "Foo1"
clone $S1, $S0
-
+
is( $S0, "Foo1", '' )
is( $S1, "Foo1", '' )
-
+
clone $S1, "Bar1"
is( $S1, "Bar1", '' )
- chopn $S1, 1
+ chopn $S1, 1
is( $S1, "Bar", 'the contents of $S1 are no longer constant' )
.end
-
+
.sub clone_null
null $S0
clone $S1, $S0
@@ -235,7 +236,7 @@
is( $S5, "japh", '' )
is( $S3, "JAPHxyzw", '' )
.end
-
+
.sub chopn_with_set
set $S4, "JAPHxyzw"
set $S5, "japhXYZW"
@@ -265,44 +266,44 @@
chopn $S1, 1000
is( $S1, "", '' )
.end
-
+
.sub three_argument_chopn
set $S1, "Parrot"
chopn $S2, $S1, 0
is( $S1, "Parrot", '' )
is( $S2, "Parrot", '' )
-
+
chopn $S2, $S1, 1
is( $S1, "Parrot", '' )
is( $S2, "Parro", '' )
-
+
set $I0, 2
chopn $S2, $S1, $I0
is( $S1, "Parrot", '' )
is( $S2, "Parr", '' )
-
+
chopn $S2, "Parrot", 3
is( $S2, "Par", '' )
-
+
chopn $S1, $S1, 5
is( $S1, "P", '' )
-
+
set $S1, "Parrot"
set $S3, $S1
chopn $S2, $S1, 3
is( $S3, "Parrot", '' )
-
+
set $S3, $S1
chopn $S1, 3
is( $S3, "Par", '' )
.end
-#
+#
.sub three_argument_chopn__oob_values
set $S1, "Parrot"
chopn $S2, $S1, 7
is( $S1, "Parrot", '' )
is( $S2, "", '' )
-
+
chopn $S2, $S1, -1
is( $S1, "Parrot", '' )
is( $S2, "P", '' )
@@ -347,7 +348,7 @@
is( $S0, "A string of length 21", '' )
is( $S1, "length", '' )
.end
-
+
# This asks for substring that shouldn't be allowed...
.sub exception_substr_oob
set $S0, "A string of length 21"
@@ -389,7 +390,7 @@
is( $S0, "A string of length 21", '' )
is( $S1, "length 21", '' )
.end
-
+
.sub five_arg_substr_w_rep_eq_length
set $S0, "abcdefghijk"
set $S1, "xyz"
@@ -890,20 +891,20 @@
repeat $S1, $S0, 12
is( $S0, "x", 'repeat_s_s|sc_i|ic' )
is( $S1, "xxxxxxxxxxxx", 'repeat_s_s|sc_i|ic' )
-
+
set $I0, 12
set $S2, "X"
repeat $S3, $S2, $I0
is( $S2, "X", 'repeat_s_s|sc_i|ic' )
is( $S3, "XXXXXXXXXXXX", 'repeat_s_s|sc_i|ic' )
-
+
repeat $S4, "~", 12
is( $S4, "~~~~~~~~~~~~", 'repeat_s_s|sc_i|ic' )
-
+
repeat $S5, "~", $I0
is( $S5, "~~~~~~~~~~~~", 'repeat_s_s|sc_i|ic' )
-
-
+
+
repeat $S6, "***", 0
is( $S6, "", 'repeat_s_s|sc_i|ic' )
.end
@@ -951,7 +952,7 @@
set $S1, "rot"
index $I1, $S0, $S1
is( $I1, "3", 'index, 3-arg form' )
-
+
set $S1, "bar"
index $I1, $S0, $S1
is( $I1, "-1", 'index, 3-arg form' )
@@ -962,10 +963,10 @@
set $S1, "ar"
index $I1, $S0, $S1, 0
is( $I1, "1", 'index, 4-arg form' )
-
+
index $I1, $S0, $S1, 2
is( $I1, "4", 'index, 4-arg form' )
-
+
set $S1, "qwx"
index $I1, $S0, $S1, 0
is( $I1, "-1", 'index, 4-arg form' )
@@ -976,40 +977,48 @@
set $S0, " is "
index $I0, $S1, $S0, 0
is( $I0, "4", 'index, 4-arg form, bug 22718' )
-
+
set $S0, "is"
index $I0, $S1, $S0, 0
is( $I0, "2", 'index, 4-arg form, bug 22718' )
.end
+.sub index_trac_1482
+ $S0 = unicode:"bubuc"
+ $S1 = unicode:"buc"
+
+ $I0 = index $S0, $S1, 0
+ is ($I0, 2, 'index, 4-arg, partial-match causes failure: TT #1482')
+.end
+
.sub index_null_strings
set $S0, "Parrot"
set $S1, ""
index $I1, $S0, $S1
is( $I1, "-1", 'index, null strings' )
-
+
index $I1, $S0, $S1, 0
is( $I1, "-1", 'index, null strings' )
-
+
index $I1, $S0, $S1, 5
is( $I1, "-1", 'index, null strings' )
-
+
index $I1, $S0, $S1, 6
is( $I1, "-1", 'index, null strings' )
-
+
set $S0, ""
set $S1, "a"
index $I1, $S0, $S1
is( $I1, "-1", 'index, null strings' )
-
+
index $I1, $S0, $S1, 0
is( $I1, "-1", 'index, null strings' )
-
+
set $S0, "Parrot"
null $S1
index $I1, $S0, $S1
is( $I1, "-1", 'index, null strings' )
-
+
null $S0
null $S1
index $I1, $S0, $S1
@@ -1021,7 +1030,7 @@
set $S1, "\0"
index $I1, $S0, $S1
is( $I1, "3", 'index, embedded nulls' )
-
+
index $I1, $S0, $S1, 4
is( $I1, "4", 'index, embedded nulls' )
.end
@@ -1033,10 +1042,10 @@
repeat $S1, $S1, 500
index $I1, $S0, $S1
is( $I1, "0", 'index, big strings' )
-
+
index $I1, $S0, $S1, 1234
is( $I1, "1234", 'index, big strings' )
-
+
index $I1, $S0, $S1, 9501
is( $I1, "-1", 'index, big strings' )
.end
@@ -1148,15 +1157,15 @@
set $S0, " 1"
set $I0, $S0
is( $I0, "1", 'string to int' )
-
+
set $S0, "-1"
set $I0, $S0
is( $I0, "-1", 'string to int' )
-
+
set $S0, "Not a number"
set $I0, $S0
is( $I0, "0", 'string to int' )
-
+
set $S0, ""
set $I0, $S0
is( $I0, "0", 'string to int' )
@@ -1169,7 +1178,7 @@
concat $S2, $S2, $S0
concat $S2, $S2, $S1
is( $S2, "<JAPH>", 'concat/substr (COW)' )
-
+
substr $S0, $S2, 1, 4
is( $S0, "JAPH", 'concat/substr (COW)' )
.end
@@ -1422,7 +1431,7 @@
interp = getinterp
.local pmc config
config = interp[.IGLOBALS_CONFIG_HASH]
- .local int intvalsize
+ .local int intvalsize
intvalsize = config['intvalsize']
$S0 = ''
@@ -1436,7 +1445,7 @@
concat $S0, ' '
inc $I0
le $I0, 20, padding_loop
-
+
# Now see what sprintf comes up with
$P0 = new 'ResizablePMCArray'
$P0[0] = -1
@@ -1450,7 +1459,7 @@
exchange $S0, $S1
is( $S0, "String #1", 'exchange' )
is( $S1, "String #0", 'exchange' )
-
+
set $S2, "String #2"
exchange $S2, $S2
is( $S2, "String #2", 'exchange' )
@@ -1529,13 +1538,13 @@
set $S1, ""
bands $S1, $S2
nok( $S1, 'ok2' )
-
+
null $S2
set $S1, "abc"
bands $S1, $S2
null $S3
is( $S1, $S3, 'ok3' )
-
+
set $S2, ""
bands $S1, $S2
nok( $S1, 'ok4' )
@@ -1577,7 +1586,7 @@
bors $S1, $S2
null $S3
is( $S1, $S3, 'bors NULL string' )
-
+
bors $S2, $S1
is( $S2, $S3, 'bors NULL string' )
@@ -1687,7 +1696,7 @@
bxors $S1, $S2
is( $S1, "%Ec", 'bxors 2' )
is( $S2, "Dw", 'bxors 2' )
-
+
set $S1, "abc"
set $S2, " X"
bxors $S1, $S2
@@ -1702,7 +1711,7 @@
is( $S0, "%Ec", 'bxors 3' )
is( $S1, "a2c", 'bxors 3' )
is( $S2, "Dw", 'bxors 3' )
-
+
set $S1, "abc"
set $S2, " Y"
bxors $S0, $S1, $S2
@@ -1730,7 +1739,7 @@
bnots $S1, $S2
null $S3
is( $S1, $S3, 'bnots NULL string' )
-
+
bnots $S2, $S1
is( $S2, $S3, 'bnots NULL string' )
.end
@@ -1744,10 +1753,10 @@
# bnots $S2, $S1
# is( $S1, "a2c", 'bnots 2' )
# is( $S2, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
- #
+ #
# bnots $S1, $S1
# is( $S1, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
- #
+ #
# bnots $S1, $S1
# is( $S1, "a2c", 'bnots 2' )
.end
@@ -1782,14 +1791,14 @@
split $P1, "", ""
set $I1, $P1
is( $I1, "0", 'split on empty string' )
-
+
split $P0, "", "ab"
set $I0, $P0
is( $I0, "2", 'split on empty string' )
-
+
set $S0, $P0[0]
is( $S0, "a", 'split on empty string' )
-
+
set $S0, $P0[1]
is( $S0, "b", 'split on empty string' )
.end
@@ -1798,7 +1807,7 @@
split $P0, "a", "afooabara"
set $I0, $P0
is( $I0, "5", 'split on non-empty string' )
-
+
set $S0, $P0[0]
is( $S0, "", 'split on non-empty string' )
set $S0, $P0[1]
@@ -1819,7 +1828,7 @@
push $P0, "a"
join $S0, "--", $P0
is( $S0, "a", 'join' )
-
+
new $P0, 'ResizablePMCArray'
push $P0, "a"
push $P0, "b"
@@ -1883,21 +1892,21 @@
if_null $S0, ERROR
$I99 = 1
ERROR:
- ok($I99, 'if_null s_ic' )
+ ok($I99, 'if_null s_ic' )
null $S0
$I99 = 1
if_null $S0, OK
$I99 = 0
- OK:
- ok($I99, 'if_null s_ic' )
+ OK:
+ ok($I99, 'if_null s_ic' )
.end
.sub test_upcase
set $S0, "abCD012yz"
upcase $S1, $S0
is( $S1, "ABCD012YZ", 'upcase' )
-
+
upcase $S0
is( $S0, "ABCD012YZ", 'upcase inplace' )
@@ -1932,7 +1941,7 @@
set $S0, "ABcd012YZ"
downcase $S1, $S0
is( $S1, "abcd012yz", 'downcase' )
-
+
downcase $S0
is( $S0, "abcd012yz", 'downcase inplace' )
@@ -1967,7 +1976,7 @@
set $S0, "aBcd012YZ"
titlecase $S1, $S0
is( $S1, "Abcd012yz", 'titlecase' )
-
+
titlecase $S0
is( $S0, "Abcd012yz", 'titlecase inplace' )
@@ -2111,7 +2120,7 @@
is( s, "Foo/Bar", 'bug 60030' )
.end
.sub constant_string_and_modify_in_situ_op_rt_bug_60030
-
+
doit_sub_for_but_60030('Foo::Bar')
# repeat to prove that the constant 'Foo4::Bar4' remains unchanged
doit_sub_for_but_60030('Foo::Bar')
@@ -2177,7 +2186,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 ft=pir :
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/string_cmp.t
==============================================================================
--- branches/ops_pct/t/op/string_cmp.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/string_cmp.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -98,7 +98,7 @@
ok( 1, 'eq_s_s_ic' )
goto END
ERROR:
- ok( 0, 'eq_s_s_ic' )
+ ok( 0, 'eq_s_s_ic' )
END:
.end
@@ -141,7 +141,7 @@
ok( 1, 'eq_sc_s_ic' )
goto END
ERROR:
- ok( 0, 'eq_sc_s_ic' )
+ ok( 0, 'eq_sc_s_ic' )
END:
.end
@@ -184,7 +184,7 @@
ok( 1, 'eq_s_sc_ic' )
goto END
ERROR:
- ok( 0, 'eq_s_sc_ic' )
+ ok( 0, 'eq_s_sc_ic' )
END:
.end
@@ -216,7 +216,7 @@
ok( 1, 'eq_sc_sc_ic' )
goto END
ERROR:
- ok( 0, 'eq_sc_sc_ic' )
+ ok( 0, 'eq_sc_sc_ic' )
END:
.end
@@ -277,7 +277,7 @@
ok( 1, 'ne_s_s_ic' )
goto END
ERROR:
- ok( 0, 'ne_s_s_ic' )
+ ok( 0, 'ne_s_s_ic' )
END:
.end
@@ -327,7 +327,7 @@
ok( 1, 'ne_sc_s_ic' )
goto END
ERROR:
- ok( 0, 'ne_sc_s_ic' )
+ ok( 0, 'ne_sc_s_ic' )
END:
.end
@@ -377,7 +377,7 @@
ok( 1, 'ne_s_sc_ic' )
goto END
ERROR:
- ok( 0, 'ne_s_sc_ic' )
+ ok( 0, 'ne_s_sc_ic' )
END:
.end
@@ -416,7 +416,7 @@
ok( 1, 'ne_sc_sc_ic' )
goto END
ERROR:
- ok( 0, 'ne_sc_sc_ic' )
+ ok( 0, 'ne_sc_sc_ic' )
END:
.end
@@ -472,7 +472,7 @@
ok( 1, 'lt_s_s_ic' )
goto END
ERROR:
- ok( 0, 'lt_s_s_ic' )
+ ok( 0, 'lt_s_s_ic' )
END:
.end
@@ -517,7 +517,7 @@
ok( 1, 'lt_sc_s_ic' )
goto END
ERROR:
- ok( 0, 'lt_sc_s_ic' )
+ ok( 0, 'lt_sc_s_ic' )
END:
.end
@@ -562,7 +562,7 @@
ok( 1, 'lt_s_sc_ic' )
goto END
ERROR:
- ok( 0, 'lt_s_sc_ic' )
+ ok( 0, 'lt_s_sc_ic' )
END:
.end
@@ -596,7 +596,7 @@
ok( 1, 'lt_sc_sc_ic' )
goto END
ERROR:
- ok( 0, 'lt_sc_sc_ic' )
+ ok( 0, 'lt_sc_sc_ic' )
END:
.end
@@ -654,7 +654,7 @@
ok( 1, 'le_s_s_ic' )
goto END
ERROR:
- ok( 0, 'le_s_s_ic' )
+ ok( 0, 'le_s_s_ic' )
END:
.end
@@ -701,7 +701,7 @@
ok( 1, 'le_sc_s_ic' )
goto END
ERROR:
- ok( 0, 'le_sc_s_ic' )
+ ok( 0, 'le_sc_s_ic' )
END:
.end
@@ -748,7 +748,7 @@
ok( 1, 'le_s_sc_ic' )
goto END
ERROR:
- ok( 0, 'le_s_sc_ic' )
+ ok( 0, 'le_s_sc_ic' )
END:
.end
@@ -784,7 +784,7 @@
ok( 1, 'le_sc_sc_ic' )
goto END
ERROR:
- ok( 0, 'le_sc_sc_ic' )
+ ok( 0, 'le_sc_sc_ic' )
END:
.end
@@ -841,7 +841,7 @@
ok( 1, 'gt_s_s_ic' )
goto END
ERROR:
- ok( 0, 'gt_s_s_ic' )
+ ok( 0, 'gt_s_s_ic' )
END:
.end
@@ -887,7 +887,7 @@
ok( 1, 'gt_sc_s_ic' )
goto END
ERROR:
- ok( 0, 'gt_sc_s_ic' )
+ ok( 0, 'gt_sc_s_ic' )
END:
.end
@@ -933,7 +933,7 @@
ok( 1, 'gt_s_sc_ic' )
goto END
ERROR:
- ok( 0, 'gt_s_sc_ic' )
+ ok( 0, 'gt_s_sc_ic' )
END:
.end
@@ -968,7 +968,7 @@
ok( 1, 'gt_sc_sc_ic' )
goto END
ERROR:
- ok( 0, 'gt_sc_sc_ic' )
+ ok( 0, 'gt_sc_sc_ic' )
END:
.end
@@ -1027,7 +1027,7 @@
ok( 1, 'ge_s_s_ic' )
goto END
ERROR:
- ok( 0, 'ge_s_s_ic' )
+ ok( 0, 'ge_s_s_ic' )
END:
.end
@@ -1075,7 +1075,7 @@
ok( 1, 'ge_sc_s_ic' )
goto END
ERROR:
- ok( 0, 'ge_sc_s_ic' )
+ ok( 0, 'ge_sc_s_ic' )
END:
.end
@@ -1123,7 +1123,7 @@
ok( 1, 'ge_s_sc_ic' )
goto END
ERROR:
- ok( 0, 'ge_s_sc_ic' )
+ ok( 0, 'ge_s_sc_ic' )
END:
.end
@@ -1166,7 +1166,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 ft=pir :
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/string_mem.t
==============================================================================
--- branches/ops_pct/t/op/string_mem.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/string_mem.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -37,11 +37,40 @@
.sub _main :main
.include 'test_more.pir'
- .local pmc _
plan(TESTS)
test_stringinfo()
+ $S0 = interpinfo .INTERPINFO_GC_SYS_NAME
+ if $S0 == "inf" goto dont_run_hanging_tests
test_pin_unpin()
+ goto test_end
+ dont_run_hanging_tests:
+ ok(1, "#TODO - Test disabled on gc_inf")
+ ok(1, "#TODO - Test disabled on gc_inf")
+ test_end:
+.end
+
+.sub test_stringinfo
+
+ $S1 = "Hello, world"
+ $S0 = $S1
+ $I0 = stringinfo $S0, .STRINGINFO_STRSTART
+ $I1 = stringinfo $S1, .STRINGINFO_STRSTART
+ is($I0, $I1, "stringinfo - test STRSTART can see COW in action")
+
+ $I0 = stringinfo $S0, .STRINGINFO_HEADER
+ $I1 = stringinfo $S1, .STRINGINFO_HEADER
+ is($I0, $I1, "stringinfo - STRHEADER on full COW strings keeps same value")
+
+ $S2 = substr $S0, 7
+ is($S2, "world", "sanity check")
+ $I4 = stringinfo $S0, .STRINGINFO_STRSTART
+ $I2 = stringinfo $S2, .STRINGINFO_STRSTART
+ $I3 = $I2 - $I4
+ is($I3, 7, "stringinfo - STRSTART can see COW in action")
+
+ $I2 = stringinfo $S2, .STRINGINFO_HEADER
+ isnt($I0, $I2, "stringinfo - STRHEADER on different COW strings same value")
.end
.sub test_pin_unpin
@@ -106,30 +135,6 @@
ok( $I0, "location of string changed by unpin/collect" )
.end
-.sub test_stringinfo
- .local pmc _
-
- $S1 = "Hello, world"
- $S0 = $S1
- $I0 = stringinfo $S0, .STRINGINFO_STRSTART
- $I1 = stringinfo $S1, .STRINGINFO_STRSTART
- is($I0, $I1, "stringinfo - test STRSTART can see COW in action")
-
- $I0 = stringinfo $S0, .STRINGINFO_HEADER
- $I1 = stringinfo $S1, .STRINGINFO_HEADER
- is($I0, $I1, "stringinfo - STRHEADER on full COW strings keeps same value")
-
- $S2 = substr $S0, 7
- is($S2, "world", "sanity check")
- $I4 = stringinfo $S0, .STRINGINFO_STRSTART
- $I2 = stringinfo $S2, .STRINGINFO_STRSTART
- $I3 = $I2 - $I4
- is($I3, 7, "stringinfo - STRSTART can see COW in action")
-
- $I2 = stringinfo $S2, .STRINGINFO_HEADER
- isnt($I0, $I2, "stringinfo - STRHEADER on different COW strings same value")
-.end
-
#.constant STRINGINFO_STRSTART 2
#.constant STRINGINFO_BUFLEN 3
#.constant STRINGINFO_FLAGS 4
@@ -140,4 +145,4 @@
# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/stringu.t
==============================================================================
--- branches/ops_pct/t/op/stringu.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/stringu.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -96,7 +96,7 @@
print $S0
print "\n"
end
-.end
+.end
CODE
aaaaaa\xf0\x9d\x90\x80-aaaaaa
OUTPUT
Modified: branches/ops_pct/t/op/sysinfo.t
==============================================================================
--- branches/ops_pct/t/op/sysinfo.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/sysinfo.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
# initial work by Brad Gilbert b2gills <at> gmail <dot> com
@@ -55,31 +55,31 @@
my @setup = (
{ pconfig_key => 'intvalsize',
pasm_key => 1,
- pir_key => 'SYSINFO_PARROT_INTSIZE',
+ pir_key => 'SYSINFO_PARROT_INTSIZE',
desc => 'integer size',
reg_type => 'I',
},
{ pconfig_key => 'doublesize',
pasm_key => 2,
- pir_key => 'SYSINFO_PARROT_FLOATSIZE',
+ pir_key => 'SYSINFO_PARROT_FLOATSIZE',
desc => 'float size',
reg_type => 'I',
},
{ pconfig_key => 'ptrsize',
pasm_key => 3,
- pir_key => 'SYSINFO_PARROT_POINTERSIZE',
+ pir_key => 'SYSINFO_PARROT_POINTERSIZE',
desc => 'pointer size',
reg_type => 'I',
},
{ pconfig_key => 'osname',
pasm_key => 4,
- pir_key => 'SYSINFO_PARROT_OS',
+ pir_key => 'SYSINFO_PARROT_OS',
desc => 'osname',
reg_type => 'S',
},
{ pconfig_key => 'cpuarch',
pasm_key => 7,
- pir_key => 'SYSINFO_CPU_ARCH',
+ pir_key => 'SYSINFO_CPU_ARCH',
desc => 'CPU Arch Family',
reg_type => 'S',
},
@@ -142,7 +142,7 @@
print S1
end
CODE
- } # END TODO block
+ } # END todo block
} # END inner SKIP block
} # END outer SKIP block
@@ -174,3 +174,10 @@
.end
CODE
}
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/t/op/time.t
==============================================================================
--- branches/ops_pct/t/op/time.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/time.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -165,8 +165,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/trans.t
==============================================================================
--- branches/ops_pct/t/op/trans.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/trans.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -4,7 +4,7 @@
=head1 NAME
-t/op/bitwise.t - Bitwise Ops
+t/op/trans.t - Bitwise Ops
=head1 SYNOPSIS
@@ -12,7 +12,7 @@
=head1 DESCRIPTION
-Tests various bitwise logical operations.
+Tests various transcendental operations
=cut
@@ -20,7 +20,7 @@
.include 'test_more.pir'
plan(16)
-
+
test_sin_n()
test_sin_i()
test_cos_n()
@@ -44,17 +44,17 @@
.sub test_sin_n
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = sin 0.0
is($N0, 0.0, "sin(0.0)", epsilon)
-
+
$N0 = sin 1.0
is($N0, 0.841471, "sin(1.0)", epsilon)
-
+
$N1 = _pi()
$N0 = sin $N1
is($N0, 0.0, "sin(pi)", epsilon)
-
+
$N1 = _pi()
$N1 = $N1 / 2
$N0 = sin $N1
@@ -64,10 +64,10 @@
.sub test_sin_i
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = sin 0
is($N0, 0.0, "sin(0)", epsilon)
-
+
$N0 = sin 1
is($N0, 0.841471, "sin(1)", epsilon)
.end
@@ -75,17 +75,17 @@
.sub test_cos_n
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = cos 0.0
is($N0, 1.0, "cos(0.0)", epsilon)
-
+
$N0 = cos 1.0
is($N0, 0.540302, "cos(1.0)", epsilon)
-
+
$N1 = _pi()
$N0 = cos $N1
is($N0, -1.0, "cos(pi)", epsilon)
-
+
$N1 = _pi()
$N1 = $N1 / 2
$N0 = cos $N1
@@ -95,10 +95,10 @@
.sub test_cos_i
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = cos 0
is($N0, 1.0, "cos(0)", epsilon)
-
+
$N0 = cos 1
is($N0, 0.540302, "cos(1)", epsilon)
.end
@@ -106,22 +106,28 @@
.sub test_tan_n
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = tan 0.0
is($N0, 0.0, "tan(0.0)", epsilon)
-
+
$N0 = tan 1.0
is($N0, 1.557408, "tan(1.0)", epsilon)
-.end
+.end
.sub test_tan_i
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = tan 0
is($N0, 0.0, "tan(0)", epsilon)
-
+
$N0 = tan 1
is($N0, 1.557408, "tan(1)", epsilon)
-.end
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/op/trans_old.t
==============================================================================
--- branches/ops_pct/t/op/trans_old.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/trans_old.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -334,7 +334,6 @@
atan N4, -0.0, -0.0
.fp_eq_pasm (N4, -3.1415926, EQ1)
print "not "
- print N4
EQ1: print "ok 1\\n"
end
CODE
Modified: branches/ops_pct/t/op/vivify.t
==============================================================================
--- branches/ops_pct/t/op/vivify.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/op/vivify.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -134,7 +134,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 ft=pir :
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/perl/Parrot_IO.t
==============================================================================
--- branches/ops_pct/t/perl/Parrot_IO.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/perl/Parrot_IO.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -40,9 +40,9 @@
BEGIN { use_ok('Parrot::IO::Path') }
my $file_temp_work_path = tempdir(
- 'PARROT_IO_XXXX',
- TMPDIR => 1,
- CLEANUP => 1
+ 'PARROT_IO_XXXX',
+ TMPDIR => 1,
+ CLEANUP => 1
);
# you can sort of count on the var below being the unique part of the temp dir
my $file_temp_dir = (splitdir($file_temp_work_path))[-1];
@@ -89,7 +89,7 @@
ok( !$r->parent(), 'root has no parent' );
my $d = Parrot::IO::Directory->tmp_directory(
- catfile($file_temp_dir, 't')
+ catfile($file_temp_dir, 't')
);
ok( $d, 'tmp_directory' );
Modified: branches/ops_pct/t/perl/Parrot_Test.t
==============================================================================
--- branches/ops_pct/t/perl/Parrot_Test.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/perl/Parrot_Test.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -286,11 +286,12 @@
test_test($desc);
$desc = 'pir_error_output_like: todo';
-$line = line_num(+21);
+$line = line_num(+22);
my $location;
if ($Test::Builder::VERSION <= eval '0.33') {
$location = "in $0 at line $line";
-} else {
+}
+else {
$location = "at $0 line $line";
}
test_out("not ok 1 - $desc # TODO foo");
@@ -316,7 +317,8 @@
OUTPUT
if($Test::Builder::VERSION == 0.84) {
test_test(title => $desc, skip_err => 1);
-} else {
+}
+else {
test_test($desc);
}
Modified: branches/ops_pct/t/pir/macro.t
==============================================================================
--- branches/ops_pct/t/pir/macro.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pir/macro.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -36,8 +36,8 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
+
Modified: branches/ops_pct/t/pmc/arrayiterator.t
==============================================================================
--- branches/ops_pct/t/pmc/arrayiterator.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/arrayiterator.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -132,10 +132,8 @@
DONE:
.end
-
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/bigint.t
==============================================================================
--- branches/ops_pct/t/pmc/bigint.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/bigint.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -20,7 +20,7 @@
.include 'test_more.pir'
- plan(45)
+ plan(34)
check_libgmp_good()
set_and_get()
@@ -35,8 +35,6 @@
interface()
boolean()
pi()
- left_shift()
- right_shift()
bugfixes()
.end
@@ -79,14 +77,14 @@
NoLibGMP:
say 'No BigInt Lib configured'
- skip(45)
+ skip(34)
exit 0
OldLibGMP:
print 'Buggy GMP version ['
print $S3
say '] with huge digit multiply - please upgrade'
- skip(45)
+ skip(34)
exit 0
ret:
@@ -935,348 +933,6 @@
ret:
.end
-.sub left_shift
- $I1 = 1
-
- $P0 = new ['BigInt']
- $P1 = new ['BigInt']
-
-# shl with a positive shift
- $P0 = 2
- $P1 = 2
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '8', OK1
- $I1 = 0
- say 'shl(bigint 2,bigint 2) did not return 8'
-OK1:
- $P0 = '100000000000'
- $P1 = 10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK2
- $I1 = 0
- say 'shl(bigint 100000000000,bigint 10) did not return 102400000000000'
-OK2:
-
-# shl with a negative shift
- $P0 = 8
- $P1 = -2
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- is($S0, '2', 'shl(bigint, -bigint)')
- $P0 = '102400000000000'
- $P1 = -10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK3
- $I1 = 0
- say 'shl(bigint 102400000000000,bigint -10) did not return 100000000000'
-OK3:
-
- ok($I1, 'shl(bigint, +bigint)')
- $I1 = 1
-
-# shl_int with a positive shift
- $P0 = 2
- $P1 = 1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '4', OK4
- $I1 = 0
- say 'shl(bigint 2,integer 1) did not return 4'
-OK4:
- $P0 = '100000000000'
- $P1 = 1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '200000000000', OK5
- $I1 = 0
- say 'shl(bigint 100000000000,integer 1) did not return 200000000000'
-OK5:
- $P0 = '100000000000'
- $P1 = 10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK6
- $I1 = 0
- say 'shl(bigint 100000000000,integer 10) did not return 102400000000000'
-OK6:
-
-# shl_int with a negative shift
-
- $P0 = 4
- $P1 = -1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '2', OK7
- $I1 = 0
- say 'shl(bigint 4,integer -1) did not return 2'
-OK7:
- $P0 = '200000000000'
- $P1 = -1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK8
- $I1 = 0
- say 'shl(bigint 200000000000,integer -1) did not return 100000000000'
-OK8:
- $P0 = '102400000000000'
- $P1 = -10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK9
- $I1 = 0
- say 'shl(bigint 102400000000000,integer -10) did not return 100000000000'
-OK9:
- ok($I1, 'shl(bigint,integer)')
- $I1 = 1
-
-# shl_int throws an error when promotion is disabled
-
- errorson .PARROT_ERRORS_OVERFLOW_FLAG
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = 10
-
- ## shift by 10 bits . . .
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'Integer', OK11
- $I1 = 0
- print 'shl(integer 1000001,integer 10) did not return an Integer PMC; got a '
- print $S2
- say ' instead.'
-
-OK11:
- eq $S1,'1024001024', OK12
- $I1 = 0
- print 'shl(integer 1000001,integer 10) did not return 1024001024; got '
- print $S1
- say ' instead.'
-OK12:
-
- ## then by 60 bits.
- $P0 = 1000001
- $P1 = 60
- push_eh E1
- $I1 = 1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $I1 = 0
- $S1 = $P2
- $S2 = typeof $P2
- print 'Failed to throw exception; return type '
- print $S2
- print ', return value '
- say $P1
-E1:
- pop_eh
- get_results '0', $P2
- $S0 = $P2
- eq $S0, 'Integer overflow', OK13
- $I1 = 0
- say 'shl(integer 1000001, integer 60) throws exception, but wrong type'
-OK13:
- ok($I1, 'shl(integer 1000001, integer 60) throws "Integer overflow" exception')
- $I1 = 1
-
-# shl_int and i_shl_int promote Integer to Bigint
-
- errorsoff .PARROT_ERRORS_OVERFLOW_FLAG
- ## shift left by 20 bits ...
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = 20
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- ## ... then by another 40 bits (total 60) in place.
- $P1 = 40
- $P2 = shl $P2, $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'BigInt', OK14
- $S1 = ''
-OK14:
- is($S1, '1152922657528351582846976', 'shl(shl(integer 1000001, 20), 40) => bigint 1152922657528351582846976')
-
-# shl_int by 64 bits also promotes to Bigint
-## The C << and >> ops take the right arg modulo the word size in bits (at least
-## on all the systems I have available), so both 32- and 64-bit systems treat
-## shifting by 64 bits as shifting by zero.
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = 64
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'BigInt', OK15
- $S1 = ''
-OK15:
- is($S1, '18446762520453625325551616', 'shl(integer 1000001, 64) => bigint 18446762520453625325551616')
-.end
-
-.sub right_shift
- $I1 = 1
-#shr_int and i_shr_int with a neg shift promote Integer to Bigint
-
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = -10
- $P2 = new ['Integer']
- ## shift by 10 bits . . .
- $P2 = shr $P0, $P1
-# $S2 = typeof $P2
-# ne $S2, 'Integer', OK2
-
- ## then by another 50 bits (total 60) in place.
- $P1 = -50
- $P2 = shr $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'BigInt', OK2
- $S1 = ''
-OK2:
- is($S1, '1152922657528351582846976', 'shr(shr(integer 1000001, integer -10), -50) => bigint 1152922657528351582846976')
-
-# shr_bigint
- $P0 = new ['BigInt']
- $P0 = 8
- $P1 = new ['BigInt']
- $P1 = 2
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '2', OK3
- $I1 = 0
- say 'shr(bigint 8, bigint 2) did not return 2'
-OK3:
-
- $P0 = '102400000000000'
- $P1 = 10
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK4
- $I1 = 0
- say 'shr(bigint 102400000000000, bigint 10) did not return 100000000000'
-OK4:
- ok($I1, 'shr(bigint, +bigint)')
- $I1 = 1
-
-# shr_bigint with a negative shift
-## cf the shl_bigint case.
-
- $P0 = new ['BigInt']
- $P0 = 2
- $P1 = new['BigInt']
- $P1 = -2
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '8', OK5
- $I1 = 0
- say 'shr(bigint 2, bigint -2) did not return 8'
-OK5:
-
- $P0 = '100000000000'
- $P1 = -10
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK6
- $I1 = 0
- say 'shr(bigint 100000000000, bigint -10) did not return 102400000000000'
-OK6:
- ok($I1, 'shr(bigint, -bigint)')
- $I1 = 1
-
-# shr_int
- $P0 = new ['BigInt']
- $P0 = 4
- $P1 = new ['Integer']
- $P1 = 1
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '2', OK7
- $I1 = 0
- say 'shr(bigint 4, integer 1) did not return 2'
-OK7:
-
- $P0 = '200000000000'
- $P1 = 1
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK8
- $I1 = 0
- say 'shr(bigint 200000000000, integer 1) did not return 100000000000'
-OK8:
-
- $P0 = '102400000000000'
- $P1 = 10
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK9
- $I1 = 0
- say 'shr(bigint 102400000000000, integer 10) did not return 100000000000'
-OK9:
-
- ok($I1,'shr(bigint, +integer)')
- $I1 = 1
-
-# shr_int with a negative shift
-## cf the shl_int case.
-
- $P0 = new ['BigInt']
- $P0 = 2
- $P1 = new ['Integer']
- $P1 = -1
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '4', OK10
- $I1 = 0
- say 'shr(bigint 2, int -1) did not return 4'
-OK10:
-
- $P0 = '100000000000'
- $P1 = -1
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '200000000000', OK11
- $I1 = 0
- say 'shr(bigint 100000000000, int -1) did not return 200000000000'
-OK11:
-
- $P1 = -10
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK12
- $I1 = 0
- say 'shr(bigint 100000000000,int -10) did not return 102400000000000'
-OK12:
-
- ok($I1,'shr(bigint, -integer)')
-.end
-
.sub bugfixes
$P0 = new ['BigInt']
@@ -1331,7 +987,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/capture.t
==============================================================================
--- branches/ops_pct/t/pmc/capture.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/capture.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -79,7 +79,7 @@
$I0 = capt[11]
is($I0, 7, 'get_integer_keyed_int')
-
+
$P0 = capt[10]
is($P0, 'six', 'get_pmc_keyed_int')
@@ -106,13 +106,13 @@
$I0 = shift capt
is($I0, 11, 'shift an integer')
-
+
$P0 = shift capt
is($P0, 'ten', 'shift a PMC')
-
+
$N0 = shift capt
is($N0, 9.5, 'shift a number')
-
+
$S0 = shift capt
is($S0, '8', 'shift a string')
@@ -136,7 +136,7 @@
$P0 = capt['gamma']
is($P0, 'fourteen', 'get_pmc_keyed_str')
-
+
$N0 = capt['beta']
is($N0, 13.5, 'get_number_keyed_str')
Modified: branches/ops_pct/t/pmc/class.t
==============================================================================
--- branches/ops_pct/t/pmc/class.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/class.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -17,7 +17,7 @@
=cut
-.const int TESTS = 63
+.const int TESTS = 63
.sub 'main' :main
Modified: branches/ops_pct/t/pmc/complex.t
==============================================================================
--- branches/ops_pct/t/pmc/complex.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/complex.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -21,7 +21,7 @@
.include 'fp_equality.pasm'
.include "iglobals.pasm"
- plan(467)
+ plan(458)
string_parsing()
exception_malformed_string__real_part()
@@ -53,7 +53,6 @@
test_sub()
test_i_sub()
sprintf_with_a_complex()
- pow_with_complex_numbers()
e_raised_pi_time_i__plus_1_equal_0()
ln_of_complex_numbers()
exp_of_complex_numbers()
@@ -641,33 +640,6 @@
.sprintf_is( "%.3f%+.3fi", "0+i", "0.000+1.000i" )
.end
-.macro pow_test_is(base, power, message)
- c = .base
- c2 = .power
- c3 = pow c, c2
- $S0 = sprintf "%.6f%+.6fi", c3
- $S1 = .message
- is( $S0, $S1, $S1 )
-.endm
-
-.sub pow_with_complex_numbers
- .local pmc c, c2, c3
- c = new ['Complex']
- c2 = new ['Complex']
- c3 = new ['Complex']
- .pow_test_is( "i", "i", "0.207880+0.000000i" )
- .pow_test_is( "i", "2", "-1.000000+0.000000i" )
- .pow_test_is( "2i", "2", "-4.000000+0.000000i" )
- .pow_test_is( "2+2i", "2+2i", "-1.452505-0.809890i" )
- .pow_test_is( "i", "0.5i", "0.455938+0.000000i" )
- .pow_test_is( 2, "2i", "0.183457+0.983028i" )
- c2 = new ['Integer']
- .pow_test_is( "2i", 2, "-4.000000+0.000000i" )
- .pow_test_is( "2", 4, "16.000000+0.000000i" )
- c2 = new ['Float']
- .pow_test_is( "2i", 0.5, "1.000000+1.000000i" )
-.end
-
.sub e_raised_pi_time_i__plus_1_equal_0
.local pmc c, c2, c3
c = new ['Complex']
@@ -1206,8 +1178,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/continuation.t
==============================================================================
--- branches/ops_pct/t/pmc/continuation.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/continuation.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2006-2007, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -45,7 +45,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/default.t
==============================================================================
--- branches/ops_pct/t/pmc/default.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/default.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -45,8 +45,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/env.t
==============================================================================
--- branches/ops_pct/t/pmc/env.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/env.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -184,7 +184,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/eventhandler.t
==============================================================================
--- branches/ops_pct/t/pmc/eventhandler.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/eventhandler.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,6 +1,6 @@
#! parrot
-# Copyright (C) 2007-2008, Parrot Foundation.
-# $Id $
+# Copyright (C) 2007-2010, Parrot Foundation.
+# $Id$
=head1 NAME
Modified: branches/ops_pct/t/pmc/exception.t
==============================================================================
--- branches/ops_pct/t/pmc/exception.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/exception.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -172,8 +172,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/exporter.t
==============================================================================
--- branches/ops_pct/t/pmc/exporter.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/exporter.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -405,7 +405,7 @@
ok 1
OUT
-# TODO: Test exporting mmd subs: TT #1205
+# Test exporting mmd subs: TT #1205
# https://trac.parrot.org/parrot/ticket/1205
# Local Variables:
Modified: branches/ops_pct/t/pmc/filehandle.t
==============================================================================
--- branches/ops_pct/t/pmc/filehandle.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/filehandle.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
use strict;
@@ -258,7 +258,7 @@
counter = 0
read_loop:
- inc counter
+ inc counter
# read in the file one line at a time...
\$I0 = filehandle.'eof'()
if \$I0 goto end_read_loop
@@ -444,7 +444,7 @@
\$P0.'print'(1234567890)
\$P0.'print'("\\n")
- \$S0 = iso-8859-1:"TÖTSCH"
+ \$S0 = iso-8859-1:"TÖTSCH"
\$P0.'print'(\$S0)
\$P0.'close'()
@@ -551,7 +551,7 @@
.local pmc ifh
ifh = new ['FileHandle']
ifh.'encoding'('utf8')
-
+
\$S0 = ifh.'readall'('$temp_file')
\$I0 = encoding \$S0
Modified: branches/ops_pct/t/pmc/fixedbooleanarray.t
==============================================================================
--- branches/ops_pct/t/pmc/fixedbooleanarray.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/fixedbooleanarray.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -17,7 +17,7 @@
=cut
-.const int TESTS = 36
+.const int TESTS = 37
.sub 'test' :main
.include 'test_more.pir'
@@ -292,18 +292,17 @@
size = 1564
$P0 = size
- $P0.'fill'(0)
+ # Fresh array is empty.
i = 0
result = 0
- $I1 = 0
- fill_false_loop:
- unless i < size goto fill_false_end
+ initial_false_loop:
+ unless i < size goto initial_false_end
$I0 = $P0[i]
result = or result, $I0
inc i
- goto fill_false_loop
- fill_false_end:
- nok(result, "Fill with 0")
+ goto initial_false_loop
+ initial_false_end:
+ nok(result, "Fresh array filled with 0")
$P0.'fill'(1)
i = 0
@@ -317,12 +316,25 @@
goto fill_true_loop
fill_true_end:
ok(result, "Fill with 1")
+
+ $P0.'fill'(0)
+ i = 0
+ result = 0
+ $I1 = 0
+ fill_false_loop:
+ unless i < size goto fill_false_end
+ $I0 = $P0[i]
+ result = or result, $I0
+ inc i
+ goto fill_false_loop
+ fill_false_end:
+ nok(result, "Fill with 0")
+
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/fixedintegerarray.t
==============================================================================
--- branches/ops_pct/t/pmc/fixedintegerarray.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/fixedintegerarray.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -164,7 +164,7 @@
$P0[1023] = $P1
$P2 = new ['Key']
-
+
$P2 = 25
$I0 = $P0[$P2]
is($I0, 125, "Get INTVAL via Key works")
@@ -218,7 +218,7 @@
a2 = new ['FixedIntegerArray']
is(a1, a2, "Empty arrays are equal")
-
+
a1 = 3
isnt(a1, a2, "Different size arrays aren't equal")
@@ -230,15 +230,14 @@
a1[1] = 84
isnt(a1, a2, "Not equal when second element differ")
-
+
a2[1] = 84
is(a1, a2, "Equal when second element same")
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/fixedpmcarray.t
==============================================================================
--- branches/ops_pct/t/pmc/fixedpmcarray.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/fixedpmcarray.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(76)
+ plan(78)
test_setting_array_size()
test_assign_from_another()
test_assign_self()
@@ -27,6 +27,7 @@
test_resize_exception()
test_truthiness()
test_tt991()
+ test_tt1039()
test_setting_first_elem()
test_setting_second_elem()
test_negative_index()
@@ -555,6 +556,48 @@
CODE
.end
+.sub test_tt1039
+ .local pmc arr
+ arr = new 'FixedPMCArray'
+ arr = 4
+ arr[0] = 'just'
+ arr[1] = 'another'
+ arr[2] = 'perl'
+ arr[3] = 'hacker'
+
+ .local pmc sorted_arr
+ sorted_arr = new 'FixedPMCArray'
+ sorted_arr = 4
+ sorted_arr[0] = 'another'
+ sorted_arr[1] = 'hacker'
+ sorted_arr[2] = 'just'
+ sorted_arr[3] = 'perl'
+
+ $P0 = get_global 'cmpfn1'
+ $P1 = clone arr
+ $P1.'sort'($P0)
+ is_deeply($P1, sorted_arr, 'fpa.sort called with normal Sub')
+
+ $P0 = get_global 'cmpfn2'
+ $P1 = clone arr
+ $P1.'sort'($P0)
+ is_deeply($P1, sorted_arr, 'fpa.sort called with MultiSub')
+.end
+
+.sub 'cmpfn1'
+ .param pmc a
+ .param pmc b
+ $I0 = cmp_str a, b
+ .return ($I0)
+.end
+
+.sub 'cmpfn2' :multi(_, _)
+ .param pmc a
+ .param pmc b
+ $I0 = cmp_str a, b
+ .return ($I0)
+.end
+
.sub test_resize_exception
throws_substring(<<'CODE',"FixedPMCArray: Can't resize",'cannot resize FixedPMCArray')
.sub main
@@ -624,8 +667,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/fixedstringarray.t
==============================================================================
--- branches/ops_pct/t/pmc/fixedstringarray.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/fixedstringarray.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -19,7 +19,7 @@
.sub 'main' :main
.include 'test_more.pir'
- plan(44)
+ plan(46)
'test_set_size'() # 2 tests
'test_reset_size'() # 1 test
@@ -37,6 +37,7 @@
'test_get_string'() # 1 test
'test_equality'() # 5 tests
'test_gc'() # 4 tests
+ 'test_number'() # 2 tests
.end
.sub 'test_set_size'
@@ -364,9 +365,20 @@
.end
+.sub 'test_number'
+ .local pmc fsa
+ fsa = new ['FixedStringArray']
+ fsa = 3
+
+ $I0 = fsa
+ is($I0, 3, "get_integer returns correct size")
+ $N0 = fsa
+ is($N0, 3.0, "get_number returns correct size")
+.end
+
+
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/handle.t
==============================================================================
--- branches/ops_pct/t/pmc/handle.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/handle.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -29,8 +29,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/hash.t
==============================================================================
--- branches/ops_pct/t/pmc/hash.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/hash.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -678,7 +678,7 @@
s1 = get_repr h
s2 = get_repr cloned
if s1 != s2 goto fail
-
+
goto end
fail:
all_ok = 0
@@ -755,7 +755,7 @@
s1 = get_repr h
s2 = get_repr cloned
if s1 != s2 goto fail
-
+
goto end
fail:
all_ok = 0
@@ -1437,7 +1437,7 @@
types[$S0] = 1
goto loop
done:
-
+
$I0 = elements types
is($I0, 3, "Got 3 different types of PMC keys")
$I0 = types['ResizableStringArray']
Modified: branches/ops_pct/t/pmc/hashiterator.t
==============================================================================
--- branches/ops_pct/t/pmc/hashiterator.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/hashiterator.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
Modified: branches/ops_pct/t/pmc/hashiteratorkey.t
==============================================================================
--- branches/ops_pct/t/pmc/hashiteratorkey.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/hashiteratorkey.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -37,8 +37,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/ops_pct/t/pmc/imageio.t (from r44740, trunk/t/pmc/imageio.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/t/pmc/imageio.t Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/t/pmc/imageio.t)
@@ -0,0 +1,79 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/pmc/imageio.t - test ImageIO PMC
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/imagio.t
+
+=head1 DESCRIPTION
+
+Tests the ImageIO PMC.
+
+=cut
+
+.sub main :main
+ .include 'test_more.pir'
+
+ plan(11)
+
+ .local pmc imageio
+ imageio = new ['ImageIO']
+ ok(1, 'instantiated ImageIO')
+
+ .local pmc test_pmc
+ test_pmc = 'get_test_simple'()
+ setref imageio, test_pmc
+ $S0 = imageio
+ ok($S0, 'frozen PMC is true (simple)')
+ $S1 = freeze test_pmc
+ is($S0, $S1, 'freeze gives same image as ImageIO (simple)')
+
+ imageio = new ['ImageIO']
+ imageio = $S0
+ $P0 = deref imageio
+ ok($P0, 'thawed PMC is true (simple)')
+ $P1 = thaw $S1
+ is($P0, $P1, 'thaw gives same PMC as ImageIO (simple)')
+ is($P0, test_pmc, 'round trip gives same PMC (simple)')
+
+ imageio = new ['ImageIO']
+ test_pmc = 'get_test_aggregate'()
+ setref imageio, test_pmc
+ $S0 = imageio
+ ok($S0, 'frozen PMC is true (aggregate)')
+ $S1 = freeze test_pmc
+ is($S0, $S1, 'freeze gives same image as ImageIO (aggregate)')
+
+ imageio = new ['ImageIO']
+ imageio = $S0
+ $P0 = deref imageio
+ ok($P0, 'thawed PMC is true (aggregate)')
+ $P1 = thaw $S1
+ is_deeply($P0, $P1, 'thaw gives same PMC as ImageIO (aggregate)')
+ is_deeply($P0, test_pmc, 'round trip gives same PMC (aggregate)')
+.end
+
+.sub get_test_simple
+ $P0 = new ['Integer']
+ $P0 = -99
+ .return ($P0)
+.end
+
+.sub get_test_aggregate
+ $P0 = new ['ResizableStringArray']
+ $P0[0] = 'parrot'
+ $P0[1] = '???'
+ $P0[2] = 'profit'
+ .return ($P0)
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/ops_pct/t/pmc/imageiosize.t (from r44740, trunk/t/pmc/imageiosize.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/t/pmc/imageiosize.t Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/t/pmc/imageiosize.t)
@@ -0,0 +1,74 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/pmc/imageiosize.t - test ImageIOSize PMC
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/imagiosize.t
+
+=head1 DESCRIPTION
+
+Tests the ImageIOSize PMC.
+
+=cut
+
+.sub main :main
+ .include 'test_more.pir'
+
+ plan(4)
+
+ .local pmc iios
+ iios = new ['ImageIOSize']
+ ok(1, 'instantiated ImageIOSize')
+
+ .local pmc test_pmc
+ test_pmc = null
+ setref iios, test_pmc
+ $P0 = deref iios
+ $S0 = freeze test_pmc
+ $I0 = $P0
+ $I1 = length $S0
+ is($I0, $I1, 'gets the same size as freeze (null)')
+
+ iios = new ['ImageIOSize']
+ test_pmc = 'get_test_simple'()
+ setref iios, test_pmc
+ $P0 = deref iios
+ $S0 = freeze test_pmc
+ $I0 = $P0
+ $I1 = length $S0
+ is($I0, $I1, 'gets the same size as freeze (simple)')
+
+ iios = new ['ImageIOSize']
+ test_pmc = 'get_test_aggregate'()
+ setref iios, test_pmc
+ $P0 = deref iios
+ $S0 = freeze test_pmc
+ $I0 = $P0
+ $I1 = length $S0
+ is($I0, $I1, 'gets the same size as freeze (aggregate)')
+.end
+
+.sub get_test_simple
+ $P0 = new ['Integer']
+ $P0 = -99
+ .return ($P0)
+.end
+
+.sub get_test_aggregate
+ $P0 = new ['ResizableStringArray']
+ $P0[0] = 'parrot'
+ $P0[1] = '???'
+ $P0[2] = 'profit'
+ .return ($P0)
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/integer.t
==============================================================================
--- branches/ops_pct/t/pmc/integer.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/integer.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -416,8 +416,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/iterator.t
==============================================================================
--- branches/ops_pct/t/pmc/iterator.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/iterator.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -23,7 +23,7 @@
=cut
-# XXX Split this test into aggregate specific one.
+# TT #1478: Split this test into aggregate specific one.
pasm_output_is( <<'CODE', <<'OUTPUT', "new iter" );
new P2, ['ResizablePMCArray']
Modified: branches/ops_pct/t/pmc/lexinfo.t
==============================================================================
--- branches/ops_pct/t/pmc/lexinfo.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/lexinfo.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2006-2007, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -39,7 +39,7 @@
.sub inspect_test
.lex "$a", $P0
.lex "$b", $P1
-
+
$P2 = new 'ParrotInterpreter'
$P2 = $P2['sub']
$P2 = $P2.'get_lexinfo'()
@@ -72,7 +72,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/lexpad.t
==============================================================================
--- branches/ops_pct/t/pmc/lexpad.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/lexpad.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2006-2007, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -70,7 +70,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/multidispatch.t
==============================================================================
--- branches/ops_pct/t/pmc/multidispatch.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/multidispatch.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -9,7 +9,7 @@
use Test::More;
use Parrot::Test::Util 'create_tempfile';
-use Parrot::Test tests => 48;
+use Parrot::Test tests => 46;
=head1 NAME
@@ -239,88 +239,6 @@
42
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "PASM INTVAL - new result", todo => 'TT #452' );
-.include "datatypes.pasm"
- get_global P10, "Integer_bxor_Intval"
- add_multi "bitwise_xor_int", "Integer,INTVAL,PMC", P10
-
- new P1, ['Integer']
- set P1, 3
- bxor P9, P1, 2
- print P9
- print "\n"
- end
-.pcc_sub Integer_bxor_Intval:
- get_params "0,0,0", P5, I5, P6
- print "ok\n"
- set I10, P5
- bxor I11, I10, I5
- new P6, ['Integer']
- set P6, I11
- set_returns "0", P6
- returncc
-CODE
-ok
-1
-OUTPUT
-
-pasm_output_is( <<'CODE', <<'OUTPUT', "PASM INTVAL - existing result", todo => 'TT #452' );
-.include "datatypes.pasm"
- get_global P10, "Integer_bxor_Intval"
- add_multi "bitwise_xor_int", "Integer,INTVAL,PMC", P10
-
- new P0, ['Integer']
- new P1, ['Integer']
- set P1, 3
- bxor P0, P1, 2
- print P0
- print "\n"
- end
-.pcc_sub Integer_bxor_Intval:
- get_params "0,0,0", P5, I5, P6
- print "ok\n"
- set I10, P5
- bxor I11, I10, I5
- set P6, I11
- set_returns "0", P6
- returncc
-CODE
-ok
-1
-OUTPUT
-
-pasm_output_is( <<'CODE', <<'OUTPUT', "PASM INTVAL - mixed", todo => 'TT #452' );
-.include "datatypes.pasm"
- get_global P10, "Integer_bxor_Intval"
- add_multi "bitwise_xor_int", "Integer,INTVAL,PMC", P10
-
- new P0, ['Integer']
- new P1, ['Integer']
- set P1, 3
- bxor P0, P1, 2
- print P0
- print "\n"
- bxor P9, P1, 2
- print P9
- print "\n"
- end
-.pcc_sub Integer_bxor_Intval:
- get_params "0,0,0", P5, I5, P6
- print "ok\n"
- set I10, P5
- bxor I11, I10, I5
- new P6, ['Integer']
- set P6, I11
- set_returns "0", P6
- returncc
-
-CODE
-ok
-1
-ok
-1
-OUTPUT
-
pir_output_is( <<'CODE', <<'OUT', "first dynamic MMD call" );
.sub main :main
@@ -1575,6 +1493,29 @@
77.788.899.9
OUTPUT
+pir_output_is( <<'CODE', <<'OUTPUT', 'Integer subclass and MMD - TT #784' );
+.sub main :main
+ .local pmc int_c
+ int_c = get_class "Integer"
+
+ .local pmc sub_c
+ sub_c = subclass int_c, "MyInt"
+
+ $P1 = new 'Integer'
+ $P1 = 4
+ $P1 -= 3
+ say $P1
+
+ $P1 = new 'MyInt'
+ $P1 = 4
+ $P1 -= 3
+ say $P1
+.end
+CODE
+1
+1
+OUTPUT
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/ops_pct/t/pmc/namespace.t
==============================================================================
--- branches/ops_pct/t/pmc/namespace.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/namespace.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2006-2007, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -56,11 +56,12 @@
.sub main :main
.include 'test_more.pir'
- plan(70)
+ plan(74)
create_namespace_pmc()
verify_namespace_type()
get_namespace_class()
+ keyed_namespace_lookup()
get_global_opcode()
get_sub_from_namespace_hash()
access_sub_in_namespace()
@@ -167,6 +168,40 @@
.end
+.sub keyed_namespace_lookup
+ # Tests to verify behavior of TT #1449
+ $P0 = get_root_namespace
+
+ # Keyed lookup
+ $P1 = $P0["parrot";"Foo";"Bar"]
+ $I0 = isnull $P1
+ is($I0, 0, "can lookup nested namespace by Key")
+ # TODO: Get the function from this namespace and call it to verify we have
+ # the correct one.
+
+ # Array lookup
+ $P1 = new ['ResizableStringArray']
+ $P1[0] = "parrot"
+ $P1[1] = "Foo"
+ $P1[2] = "Bar"
+ $P1[3] = "Baz"
+ $P2 = $P0[$P1]
+ $I0 = isnull $P1
+ is($I0, 0, "can lookup nested namespace by RSA")
+ # TODO: Get the function from this namespace and call it to verify we have
+ # the correct one.
+
+ # String lookup
+ $P1 = $P0["parrot"]
+ $P2 = $P1["Foo"]
+ $I0 = isnull $P1
+ is($I0, 0, "can lookup namespace by string")
+ $I0 = isnull $P2
+ is($I0, 0, "can lookup namespace by string")
+ # TODO: Get the function from this namespace and call it to verify we have
+ # the correct one.
+.end
+
# L<PDD21//>
.sub 'get_global_opcode'
test1:
@@ -486,7 +521,7 @@
# ...now we do!
$P1 = $P0.'make_namespace'("NewNamespace1")
- $P2 = $P1["baz"]
+ $P2 = $P1["baz"]
$I0 = isnull $P2
is($I0, 1, "make_namespace also creates new namespaces")
@@ -632,6 +667,12 @@
.return("Foo::Bar")
.end
+# Namespace "Foo";"Bar";"Baz". Nested namespace
+.namespace ["Foo";"Bar";"Baz"]
+.sub 'widget'
+ .return("Foo::Bar::Baz")
+.end
+
# Namespace specified in ISO-8859-1
.namespace [ iso-8859-1:"Fran\x{E7}ois" ]
.sub 'baz'
@@ -660,3 +701,9 @@
.sub 'baz'
.return("MyHLL")
.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/objects.t
==============================================================================
--- branches/ops_pct/t/pmc/objects.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/objects.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -1790,8 +1790,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/ops_pct/t/pmc/opcode.t (from r44740, trunk/t/pmc/opcode.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/t/pmc/opcode.t Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/t/pmc/opcode.t)
@@ -0,0 +1,35 @@
+#! parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/pmc/opcode.t - Opcode PMC
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/opcode.t
+
+=cut
+
+.sub main :main
+ .include 'test_more.pir'
+ plan(1)
+ cannot_create_directly()
+.end
+
+.sub cannot_create_directly
+ push_eh cannot_create
+ $P0 = new ['Opcode']
+ ok(0, "shouldn't be able to create new opcode")
+ goto create_end
+ cannot_create:
+ ok(1)
+ create_end:
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/ops_pct/t/pmc/oplib.t (from r44740, trunk/t/pmc/oplib.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/t/pmc/oplib.t Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/t/pmc/oplib.t)
@@ -0,0 +1,70 @@
+#! parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/pmc/oplib.t - OpLib PMC
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/oplib.t
+
+=cut
+
+.sub main :main
+ .include 'test_more.pir'
+ plan(5)
+ new_oplib()
+ get_end()
+ get_no_opcode()
+ family_end()
+ family_no_opcode()
+.end
+
+.sub new_oplib
+ $P0 = new ['OpLib']
+ $I0 = isnull $P0
+ nok($I0, "new OpLib")
+.end
+
+.sub get_end
+ $P0 = new ['OpLib']
+ # Assumption: we'll always have an end opcode.
+ $I1 = $P0['end']
+ $I0 = isne $I1, -1
+ ok($I0, "got end opcode")
+.end
+
+.sub get_no_opcode
+ $P0 = new ['OpLib']
+ $I1 = $P0['hopeweneverhaveopcodesnamedlikethis']
+ $I0 = iseq $I1, -1
+ ok($I0, "get non existent opcode fails")
+.end
+
+.sub family_end
+ $P0 = new ['OpLib']
+ # Assumption: we'll always have an end opcode.
+ $P1 = $P0.'op_family'('end')
+ $I0 = isnull $P1
+ dec $I0
+ unless $I0 goto done
+ $I0 = elements $P1
+done:
+ is($I0, 1, "'end' family is not null and has 1 element")
+.end
+
+.sub family_no_opcode
+ $P0 = new ['OpLib']
+ $P1 = $P0.'op_family'('hopeweneverhaveopcodesnamedlikethis')
+ $I0 = isnull $P1
+ ok($I0, "non existent opcode family is null")
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+
Modified: branches/ops_pct/t/pmc/orderedhashiterator.t
==============================================================================
--- branches/ops_pct/t/pmc/orderedhashiterator.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/orderedhashiterator.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -41,8 +41,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/os.t
==============================================================================
--- branches/ops_pct/t/pmc/os.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/os.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -238,7 +238,8 @@
end
.end
CODE
-} else {
+}
+else {
SKIP: {
skip 'broken test TT #457', 1 if $solaris;
Modified: branches/ops_pct/t/pmc/packfile.t
==============================================================================
--- branches/ops_pct/t/pmc/packfile.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfile.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -308,8 +308,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfileannotation.t
==============================================================================
--- branches/ops_pct/t/pmc/packfileannotation.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfileannotation.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,6 @@
#!parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
=head1 NAME
@@ -49,8 +50,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfileannotations.t
==============================================================================
--- branches/ops_pct/t/pmc/packfileannotations.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfileannotations.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,6 @@
#!parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
=head1 NAME
@@ -149,8 +150,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfileconstanttable.t
==============================================================================
--- branches/ops_pct/t/pmc/packfileconstanttable.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfileconstanttable.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -195,8 +195,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfiledirectory.t
==============================================================================
--- branches/ops_pct/t/pmc/packfiledirectory.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfiledirectory.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -143,8 +143,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfilefixupentry.t
==============================================================================
--- branches/ops_pct/t/pmc/packfilefixupentry.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfilefixupentry.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -82,8 +82,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfilefixuptable.t
==============================================================================
--- branches/ops_pct/t/pmc/packfilefixuptable.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfilefixuptable.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -62,8 +62,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfilerawsegment.t
==============================================================================
--- branches/ops_pct/t/pmc/packfilerawsegment.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfilerawsegment.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -110,8 +110,7 @@
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/packfilesegment.t
==============================================================================
--- branches/ops_pct/t/pmc/packfilesegment.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/packfilesegment.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -26,8 +26,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/parrotinterpreter.t
==============================================================================
--- branches/ops_pct/t/pmc/parrotinterpreter.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/parrotinterpreter.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -83,11 +83,11 @@
$P0 = interp['namespace';0]
$I0 = isa $P0, 'NameSpace'
ok($I0, 'Got ParrotInterp.namespace')
-
+
$P0 = interp['continuation';0]
$I0 = isa $P0, 'Continuation'
ok($I0, 'Got ParrotInterp.continuation')
-
+
$P0 = interp['annotations';1]
$S0 = $P0['foo']
is($S0, 'bar', 'Got ParrotInterp.annotations')
@@ -116,8 +116,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/pmc.t
==============================================================================
--- branches/ops_pct/t/pmc/pmc.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/pmc.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -51,7 +51,7 @@
my $checkTypes;
my %types_we_cant_test
= map { $_ => 1; } ( # These require initializers.
- qw(default Null Iterator ArrayIterator HashIterator StringIterator OrderedHashIterator Enumerate ParrotObject ParrotThread BigInt LexInfo LexPad Object Handle),
+ qw(default Null Iterator ArrayIterator HashIterator StringIterator OrderedHashIterator Enumerate ParrotObject ParrotThread BigInt LexInfo LexPad Object Handle Opcode),
# Instances of these appear to have other types.
qw(PMCProxy Class) );
Modified: branches/ops_pct/t/pmc/prop.t
==============================================================================
--- branches/ops_pct/t/pmc/prop.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/prop.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2005, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -134,7 +134,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/ro.t
==============================================================================
--- branches/ops_pct/t/pmc/ro.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/ro.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2006-2007, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -225,7 +225,7 @@
=pod
-TT #1036: should this work?
+TT #1036: should this work?
.sub resizablepmcarray_recursive
.local pmc foo
Modified: branches/ops_pct/t/pmc/scalar.t
==============================================================================
--- branches/ops_pct/t/pmc/scalar.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/scalar.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2006-2007, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -26,8 +26,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/scheduler.t
==============================================================================
--- branches/ops_pct/t/pmc/scheduler.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/scheduler.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -116,7 +116,6 @@
# Local Variables:
# mode: pir
-# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/signal.t
==============================================================================
--- branches/ops_pct/t/pmc/signal.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/signal.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -22,8 +22,7 @@
=cut
-# actually more platforms should work - all POSIX compliant ones - but
-# signals are currently not enabled for all in src/events.c
+# actually more platforms should work - all POSIX compliant ones
# a second problem is to get the test doing the right thing: mainly figuring
# out what PID to kill. The "ps" command isn't one of the portable ones.
Modified: branches/ops_pct/t/pmc/string.t
==============================================================================
--- branches/ops_pct/t/pmc/string.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/string.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -230,7 +230,7 @@
new $P1, ['Float']
set $P1, 6.5
repeat $P2, $P0, $P1
- is( $P2, 'yyyyyy', 'Float arg to repeat' )
+ is( $P2, 'yyyyyy', 'Float arg to repeat' )
set $P0, "z"
new $P1, ['String']
@@ -256,7 +256,7 @@
new $P1, ['Float']
set $P1, 6.5
repeat $P3, $P0, $P1
- is( $P3, 'yyyyyy', 'Float arg to repeat' )
+ is( $P3, 'yyyyyy', 'Float arg to repeat' )
set $P0, "z"
new $P1, ['String']
@@ -1026,11 +1026,11 @@
# Get
$S0 = s[0]
is($S0, 'B', 'Get string by index')
-
+
$I0 = s[1]
$I1 = ord 'A'
is($I0, $I1, 'Get integer by index')
-
+
$P0 = s[2]
is($P0, 'R', 'Get PMC by index')
@@ -1052,8 +1052,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/stringhandle.t
==============================================================================
--- branches/ops_pct/t/pmc/stringhandle.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/stringhandle.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
use strict;
@@ -255,7 +255,7 @@
counter = 0
write_loop:
- inc counter
+ inc counter
if counter > 10000 goto end_write_loop
stringhandle.'print'(counter)
@@ -268,7 +268,7 @@
counter = 0
read_loop:
- inc counter
+ inc counter
# read in the file one line at a time...
$I0 = stringhandle.'eof'()
if $I0 goto end_read_loop
@@ -448,7 +448,7 @@
\$P0.'print'(1234567890)
\$P0.'print'("\\n")
- \$S0 = iso-8859-1:"TÖTSCH"
+ \$S0 = iso-8859-1:"TÖTSCH"
\$P0.'print'(\$S0)
\$P0.'close'()
@@ -549,7 +549,7 @@
.local pmc ifh
ifh = new ['StringHandle']
ifh.'encoding'('utf8')
-
+
\$S0 = ifh.'readall'('temp_file')
\$I0 = encoding \$S0
Modified: branches/ops_pct/t/pmc/stringiterator.t
==============================================================================
--- branches/ops_pct/t/pmc/stringiterator.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/stringiterator.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -97,8 +97,7 @@
.end
# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
+# mode: pir
# fill-column: 100
# End:
-# vim: expandtab shiftwidth=4 filetype=pir:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/ops_pct/t/pmc/sub.t
==============================================================================
--- branches/ops_pct/t/pmc/sub.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/pmc/sub.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -27,6 +27,8 @@
=cut
+my @todo;
+
pasm_output_is( <<'CODE', <<'OUTPUT', "PASM subs - invokecc" );
.const 'Sub' P0 = "func"
@@ -835,9 +837,14 @@
main
OUTPUT
-my @todo = ( todo => 'broken with JIT (TT #983)' )
- if ( defined $ENV{TEST_PROG_ARGS} and
- $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/ );
+ at todo = (
+ defined $ENV{TEST_PROG_ARGS}
+ and
+ $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/
+)
+ ? ( todo => 'broken with JIT (TT #983)' )
+ : ();
+
pir_output_is( <<'CODE', <<'OUTPUT', "caller introspection via interp", @todo );
.sub main :main
.include "interpinfo.pasm"
@@ -1425,12 +1432,12 @@
PIR
$P1 = compreg 'PIR'
$P1 = $P1($S1)
-
+
$P3 = new 'ParrotInterpreter'
$P3 = $P3['sub']
$P2 = $P1[0]
$P2.'set_outer'($P3)
-
+
$P1()
.end
CODE
@@ -1637,11 +1644,11 @@
pir_output_is( <<'CODE', <<'OUTPUT', 'init_pmc' );
.sub 'main'
.local pmc init, s, regs, arg_info
-
+
init = new ['Hash']
init['start_offs'] = 42
init['end_offs'] = 115200
-
+
regs = new ['FixedIntegerArray']
regs = 4
regs[0] = 1
@@ -1694,7 +1701,7 @@
$P0 = inspect s, 'pos_optional'
print 'pos_optional '
say $P0
-
+
$P0 = inspect s, 'pos_slurpy'
print 'pos_slurpy '
say $P0
Modified: branches/ops_pct/t/run/options.t
==============================================================================
--- branches/ops_pct/t/run/options.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/run/options.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2005-2007, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -20,7 +20,7 @@
use warnings;
use lib qw( lib . ../lib ../../lib );
-use Test::More tests => 26;
+use Test::More tests => 27;
use Parrot::Config;
use File::Temp 0.13 qw/tempfile/;
use File::Spec;
@@ -80,7 +80,7 @@
for my $val (qw/ slow fast bounds trace /) {
for my $opt ( '-R ', '--runcore ', '--runcore=' ) {
$cmd = qq{"$PARROT" $opt$val "$second_pir_file" $redir};
- is( qx{$cmd}, "second\n", "<$opt$val> option" );
+ is( qx{$cmd}, "second\n", "<$opt$val> option)" ) or diag $cmd;
}
}
@@ -93,6 +93,9 @@
## TT #1150 test remaining options
+# Test --runtime-prefix
+like( qx{$PARROT --runtime-prefix}, qr/^.+$/, "--runtime-prefix" );
+
# clean up temporary files
unlink $first_pir_file;
unlink $second_pir_file;
Modified: branches/ops_pct/t/src/embed.t
==============================================================================
--- branches/ops_pct/t/src/embed.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/src/embed.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -93,7 +93,7 @@
"\n",
&errstr
);
- Parrot_call_sub(interp, code, "v");
+ Parrot_ext_call(interp, code, "->");
Parrot_destroy(interp);
return 0;
@@ -160,7 +160,7 @@
subname = Parrot_new_string(interp, "hello", 5, (const char *)NULL, 0);
sub = Parrot_PMC_get_pmc_strkey(interp, parrotns, subname);
/* Execute it */
- Parrot_call_sub(interp, sub, "v");
+ Parrot_ext_call(interp, sub, "->");
Parrot_destroy(interp);
return 0;
@@ -216,7 +216,7 @@
&errstr
);
hellosub = Parrot_sub_new_from_c_func(interp, (void (*)())& hello, "vJ");
- Parrot_call_sub(interp, code, "vP", hellosub);
+ Parrot_ext_call(interp, code, "P->", hellosub);
Parrot_destroy(interp);
return 0;
@@ -285,7 +285,7 @@
Parrot_PMC_set_pmc_strkey(interp, parrotns, helloname, hellosub);
/* Call it */
- discard = Parrot_call_sub(interp, code, "v");
+ Parrot_ext_call(interp, code, "->");
Parrot_destroy(interp);
return 0;
Modified: branches/ops_pct/t/src/extend.t
==============================================================================
--- branches/ops_pct/t/src/extend.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/src/extend.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -446,7 +446,7 @@
Parrot_pbc_load(interp, pf);
sub = Parrot_find_global_cur(interp, name);
- Parrot_call_sub(interp, sub, "v");
+ Parrot_ext_call(interp, sub, "->");
Parrot_eprintf(interp, "back\\n");
/* win32 seems to buffer stderr ? */
@@ -454,12 +454,12 @@
name = Parrot_str_new_constant(interp, "_sub2");
sub = Parrot_find_global_cur(interp, name);
- arg = pmc_new(interp, enum_class_String);
+ arg = Parrot_pmc_new(interp, enum_class_String);
Parrot_PMC_set_string_native(interp, arg,
Parrot_str_new(interp, "hello ", 0));
- Parrot_call_sub(interp, sub, "vP", arg);
+ Parrot_ext_call(interp, sub, "P->", arg);
Parrot_eprintf(interp, "back\\n");
return NULL;
@@ -512,7 +512,7 @@
name = Parrot_str_new_constant(interp, "_sub2");
sub = Parrot_find_global_cur(interp, name);
- arg = pmc_new(interp, enum_class_String);
+ arg = Parrot_pmc_new(interp, enum_class_String);
Parrot_PMC_set_string_native(interp, arg,
Parrot_str_new(interp, "hello ", 0));
@@ -581,7 +581,7 @@
Parrot_pbc_load(interp, pf);
sub = Parrot_find_global_cur(interp, name);
- arg = pmc_new(interp, enum_class_String);
+ arg = Parrot_pmc_new(interp, enum_class_String);
Parrot_PMC_set_string_native(interp, arg,
Parrot_str_new(interp, "hello ", 0));
@@ -657,7 +657,7 @@
interp->current_runloop_id++;
Parrot_ex_add_c_handler(interp, &jump_point);
- Parrot_call_sub(interp, sub, "v");
+ Parrot_ext_call(interp, sub, "->");
}
Parrot_eprintf(interp, "back\\n");
@@ -781,7 +781,7 @@
foo_name = Parrot_str_new_constant( interp, "foo" );
sub = Parrot_find_global_cur( interp, foo_name );
- retval = (PMC *) Parrot_call_sub( interp, sub, "V", "" );
+ Parrot_ext_call(interp, sub, "->");
Parrot_exit(interp, 0);
return 0;
@@ -812,7 +812,7 @@
Parrot_pbc_load( interp, pf );
sub = Parrot_find_global_cur( interp, Parrot_str_new_constant( interp, "add" ) );
- result = Parrot_call_sub_ret_int( interp, sub, "III", 100, 200 );
+ Parrot_ext_call(interp, sub, "II->I", 100, 200, &result);
printf( "Result is %d.\\n", result );
Parrot_exit(interp, 0);
Modified: branches/ops_pct/t/steps/auto/cgoto-01.t
==============================================================================
--- branches/ops_pct/t/steps/auto/cgoto-01.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/steps/auto/cgoto-01.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 45;
+use Test::More tests => 25;
use Carp;
use lib qw( lib t/configure/testlib );
use_ok('config::auto::cgoto');
@@ -37,10 +37,6 @@
my $ret = $step->runstep($conf);
ok( $ret, "runstep() returned true value" );
ok(defined($step->result()), "A result was defined");
-ok(defined($conf->data->get('TEMP_cg_h')), "An attribute has been defined");
-ok(defined($conf->data->get('TEMP_cg_c')), "An attribute has been defined");
-ok(defined($conf->data->get('TEMP_cg_o')), "An attribute has been defined");
-ok(defined($conf->data->get('TEMP_cg_r')), "An attribute has been defined");
ok(defined($conf->data->get('cg_flag')), "An attribute has been defined");
$conf->replenish($serialized);
@@ -68,18 +64,10 @@
########### _evaluate_cgoto() ###########
$step->_evaluate_cgoto($conf, 1);
-ok($conf->data->get('TEMP_cg_h'), "An attribute was set to true value");
-ok($conf->data->get('TEMP_cg_c'), "An attribute was set to true value");
-ok($conf->data->get('TEMP_cg_o'), "An attribute was set to true value");
-ok($conf->data->get('TEMP_cg_r'), "An attribute was set to true value");
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('TEMP_cg_h'), q{}, "An attribute was set to empty string");
-is($conf->data->get('TEMP_cg_c'), q{}, "An attribute was set to empty string");
-is($conf->data->get('TEMP_cg_o'), q{}, "An attribute was set to empty string");
-is($conf->data->get('TEMP_cg_r'), q{}, "An attribute was set to empty string");
is($conf->data->get('cg_flag'), q{}, "An attribute was set to empty string");
is($step->result(), q{no}, "Expected result was set");
@@ -99,10 +87,6 @@
sub { $step->_evaluate_cgoto($conf, 1) },
\$stdout
);
- ok($conf->data->get('TEMP_cg_h'), "An attribute was set to true value");
- ok($conf->data->get('TEMP_cg_c'), "An attribute was set to true value");
- ok($conf->data->get('TEMP_cg_o'), "An attribute was set to true value");
- ok($conf->data->get('TEMP_cg_r'), "An attribute was set to true value");
ok($conf->data->get('cg_flag'), "An attribute was set to true value");
is($step->result(), q{yes}, "Expected result was set");
}
@@ -113,14 +97,6 @@
sub { $step->_evaluate_cgoto($conf, 0) },
\$stdout
);
- is($conf->data->get('TEMP_cg_h'), q{},
- "An attribute was set to empty string");
- is($conf->data->get('TEMP_cg_c'), q{},
- "An attribute was set to empty string");
- is($conf->data->get('TEMP_cg_o'), q{},
- "An attribute was set to empty string");
- is($conf->data->get('TEMP_cg_r'), q{},
- "An attribute was set to empty string");
is($conf->data->get('cg_flag'), q{},
"An attribute was set to empty string");
is($step->result(), q{no}, "Expected result was set");
Modified: branches/ops_pct/t/steps/auto/snprintf-01.t
==============================================================================
--- branches/ops_pct/t/steps/auto/snprintf-01.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/steps/auto/snprintf-01.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -35,24 +35,6 @@
$conf->options->set(%{$args});
my $step = test_step_constructor_and_description($conf);
-# The test of runstep() below will need to be TODO-ed until such time as
-# we can test with all the data which the Parrot::Configure object would
-# normally have during regular configuration at the onset of this step.
-# That's because runstep() consists almost solely of calls to C
-# programs. We can't refactor runstep()'s guts out into internal
-# subroutines and test them explicitly as we've been able to do for
-# other configuration steps. We won't lose any coverage by commenting
-# out the TODO block for the time being, as the coverage analysis will,
-# at the very least, pick up runstep() while running the step itself.
-#
-#TODO: {
-# # http://rt.perl.org/rt3/Ticket/Display.html?id=47391
-# local $TODO =
-# q<Reported failing where vendor-supplied Perl 5 Config.pm does not match true state of system available for Parrot configuration>;
-# ok($step->runstep($conf), "runstep() returned true value");
-#} #'
-
-
$conf->replenish($serialized);
########## _evaluate_snprintf() ##########
Modified: branches/ops_pct/t/steps/auto/warnings-01.t
==============================================================================
--- branches/ops_pct/t/steps/auto/warnings-01.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/steps/auto/warnings-01.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 41;
+use Test::More qw(no_plan); # tests => 26;
use Carp;
use lib qw( lib t/configure/testlib );
use_ok('config::auto::warnings');
@@ -31,111 +31,59 @@
$conf->add_steps($pkg);
my $serialized = $conf->pcfreeze();
+my $step;
-$conf->options->set( %{$args} );
SKIP: {
skip 'Tests not yet passing on Sun/Solaris',
- 39
+ 23
if $^O =~ m/sun|solaris/i;
-my $step = test_step_constructor_and_description($conf);
-
-my %potential_warnings_seen;
-$conf->options->set(cage => 1);
-$step->_add_cage_warnings($conf);
-%potential_warnings_seen = map { $_, 1 } @{ $step->{potential_warnings} };
-ok($potential_warnings_seen{'-std=c89'}, "Cage warning added");
-
-$conf->replenish($serialized);
+# Simulate the case where C compiler is not gcc.
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
-$conf->options->set(maintainer => 1);
-$step->_add_maintainer_warnings($conf);
-%potential_warnings_seen = map { $_, 1 } @{ $step->{potential_warnings} };
-ok($potential_warnings_seen{'-Wlarger-than-4096'}, "Maintainer warning added");
-
-$conf->replenish($serialized);
-
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my $warning = q{-Wphony_warning};
-auto::warnings::_set_warning($conf, $warning, 1, undef);
-ok(! $conf->data->get($warning),
- "Got expected setting for warning");
-
-$conf->replenish($serialized);
-
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-{
- my $warning = q{-Wphony_warning};
- my $stdout;
- capture(
- sub { auto::warnings::_set_warning($conf, $warning, 1, 1); },
- \$stdout,
- );
- ok(! $conf->data->get($warning),
- "Got expected setting for warning");
- like($stdout, qr/exit code:\s+1/, "Got expected verbose output");
-}
-
-$conf->replenish($serialized);
-
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my $output = q{some string};
-my $tryflags = q{some flag};
-my $rv = auto::warnings::_set_ccflags($conf, $output, $tryflags, undef);
-is($rv, 1, "_set_ccflags() returned 1 as expected");
-is($conf->data->get("ccflags"), $tryflags, "ccflags changed as expected");
-
-$conf->replenish($serialized);
-
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-{
- my $output = q{some string};
- my $tryflags = q{some flag};
- my ($rv, $stdout);
- capture(
- sub { $rv = auto::warnings::_set_ccflags($conf, $output, $tryflags, 1); },
- \$stdout,
- );
- is($rv, 1, "_set_ccflags() returned 1 as expected");
- is($conf->data->get("ccflags"), $tryflags, "ccflags changed as expected");
- like($stdout, qr/ccflags:\s+$tryflags/, "Got expected verbose output");
-}
-
-$conf->replenish($serialized);
-
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-# Mock case where C compiler is not gcc.
$conf->data->set( gccversion => undef );
ok($step->runstep($conf), "runstep() returned true value");
is($step->result(), q{skipped}, "Got expected result");
+$step->set_result( undef );
$conf->replenish($serialized);
-$conf->options->set( %{$args} );
+# Simulate the case where C compiler is not gcc: verbose
+$conf->options->set( verbose => 1 );
$step = test_step_constructor_and_description($conf);
+$conf->data->set( gccversion => undef );
{
- my ($stdout, $rv);
- # Mock case where C compiler is not gcc.
- $conf->data->set( gccversion => undef );
- $conf->options->set( verbose => 1 );
+ my ($stdout, $stderr, $rv);
capture(
sub { $rv = $step->runstep($conf); },
\$stdout,
+ \$stderr,
);
ok($rv, "runstep() returned true value");
is($step->result(), q{skipped}, "Got expected result");
- like($stdout,
- qr/Currently we only set warnings/,
- "Got expected verbose output"
- );
+ like($stdout, qr/We do not \(yet\) probe for warnings for your compiler/s,
+ "Got expected verbose output: compiler with warnings not yet supported" );
}
+$step->set_result( undef );
+$conf->replenish($serialized);
+
+# Simulate case where --cage warnings are requested
+$conf->options->set( verbose => undef );
+$step = test_step_constructor_and_description($conf);
+$conf->data->set( gccversion => 'defined' );
+$conf->data->set( 'g++' => undef );
+$conf->options->set( cage => 1 );
+ok($step->runstep($conf), "runstep() returned true value");
+
+# This test is fragile, as it depends on the current state of --cage,
+# which changes over time, and on the compiler, which may not support
+# this option.
+like($conf->data->get( 'ccwarn' ),
+ qr/-Wunreachable-code/,
+ "'cage' warning set as expected"
+);
+
} # End SKIP block for Sun/Solaris
$conf->cc_clean();
Deleted: branches/ops_pct/t/steps/gen/call_list-01.t
==============================================================================
--- branches/ops_pct/t/steps/gen/call_list-01.t Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,73 +0,0 @@
-#! perl
-# Copyright (C) 2007-2008, Parrot Foundation.
-# $Id$
-# gen/call_list-01.t
-
-use strict;
-use warnings;
-use Test::More tests => 6;
-use Carp;
-use lib qw( lib );
-use_ok('config::gen::call_list');
-use Parrot::Configure::Options qw( process_options );
-use Parrot::Configure::Step::Test;
-use Parrot::Configure::Test qw(
- test_step_constructor_and_description
-);
-
-########## 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 $pkg = q{gen::call_list};
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
-my $missing_files = 0;
-foreach my $f ( @{ $step->{fragment_files} } ) {
- $missing_files++ unless (-f $f);
-}
-is($missing_files, 0, "No needed source files are missing");
-
-pass("Completed all tests in $0");
-
-################### DOCUMENTATION ###################
-
-=head1 NAME
-
- gen/call_list-01.t - test gen::call_list
-
-=head1 SYNOPSIS
-
- % prove t/steps/gen/call_list-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test gen::call_list.
-
-=head1 AUTHOR
-
-Geoffrey Broadwell; modified from a similar file by James E Keenan.
-
-=head1 SEE ALSO
-
-config::gen::call_list, F<Configure.pl>.
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/t/steps/gen/makefiles-01.t
==============================================================================
--- branches/ops_pct/t/steps/gen/makefiles-01.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/steps/gen/makefiles-01.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -68,16 +68,10 @@
#["IF(value == xx)", 0], # invalid op error
#["IF(value = xx)", 0], # invalid op error
["IF(value=xx)", 0], # also invalid, no warning. checks for key value=xx
-
- # Legacy syntax true or false
- ["CONDITIONED_LINE(true)", 1],
- ["INVERSE_CONDITIONED_LINE(true)", 0],
- ["CONDITIONED_LINE(false)", 0],
- ["INVERSE_CONDITIONED_LINE(false)", 1],
);
}
-use Test::More tests => (8 + @cond_tests);
+use Test::More tests => (7 + @cond_tests);
use Carp;
use lib qw( . lib );
@@ -114,7 +108,6 @@
}
is($missing_SOURCE, 0, "No Makefile source file missing");
-ok(-f $step->{CFLAGS_source}, "CFLAGS source file located");
my $index = undef;
sub result {
Modified: branches/ops_pct/t/steps/init/hints/darwin-01.t
==============================================================================
--- branches/ops_pct/t/steps/init/hints/darwin-01.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/steps/init/hints/darwin-01.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -96,7 +96,7 @@
$defaults{architectures}, $stored, $flagsref, $flag
);
like(
- $flagsref->{$flag},
+ $flagsref->{$flag},
qr{-someflag -someotherflag},
"_strip_arch_flags_engine(): '-arch' flags and extra whitespace removed",
);
@@ -162,7 +162,7 @@
like($flagsref->{$flag},
qr/-someflag -someotherflag/,
"_strip_arch_flags(): '-arch' flags and extra whitespace removed",
- );
+ );
my ($stdout, $stderr);
capture(
Modified: branches/ops_pct/t/tools/dev/pmctree.t
==============================================================================
--- branches/ops_pct/t/tools/dev/pmctree.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/dev/pmctree.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 202007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# pmctree.t
Modified: branches/ops_pct/t/tools/install/02-install_files.t
==============================================================================
--- branches/ops_pct/t/tools/install/02-install_files.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/install/02-install_files.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -30,7 +30,7 @@
{
my ( $stdout, $stderr, $rv );
-
+
eval {
capture(
sub { $rv = install_files($tdir, 1); },
@@ -60,8 +60,8 @@
\$stderr,
);
like($stderr, qr/Bad reference passed in \$files/, "Catches non-HASH files");
-
- like( $stdout, qr/Installing \.\.\./,
+
+ like( $stdout, qr/Installing \.\.\./,
'Got expected installation message' );
}
}
@@ -87,7 +87,7 @@
\$stderr,
);
ok( $rv, 'install_files() completed successfully in dry-run case' );
-
+
my $files_created = 0;
foreach my $el (@$files_ref) {
$files_created++ if -f $tdir . $el->{Dest};
@@ -107,7 +107,7 @@
\$stderr,
);
ok( $rv, 'install_files() completed successfully in production case' );
-
+
my $files_created = 0;
foreach my $el (@$files_ref) {
$files_created++ if -f "$tdir$el->{Dest}";
@@ -152,7 +152,7 @@
\$stderr,
);
ok( $rv, 'install_files() completed successfully in mock-Cygwin case' );
-
+
my $files_created = 0;
foreach my $el (@$files_ref) {
$files_created++ if -f "$tdir$el->{Dest}";
@@ -202,7 +202,7 @@
\$stderr,
);
ok( $rv, 'install_files() completed successfully in mock-Cygwin case' );
-
+
my $files_created = 0;
foreach my $el (@$files_ref) {
$files_created++ if -f "$tdir$el->{Dest}";
@@ -240,8 +240,8 @@
\$stderr,
);
ok( $rv, 'install_files() handled non-existent file as expected' );
-
- like( $stdout, qr/Installing \.\.\./,
+
+ like( $stdout, qr/Installing \.\.\./,
'Got expected installation message' );
}
}
Modified: branches/ops_pct/t/tools/install/03-lines_to_files.t
==============================================================================
--- branches/ops_pct/t/tools/install/03-lines_to_files.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/install/03-lines_to_files.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -232,7 +232,7 @@
__END__
-# Can't safely run lines_to_files() more than once in a program until it's been fixed,
+# Can't safely run lines_to_files() more than once in a program until it's been fixed,
# and we can't fix it until its tested, so I've commented most of these out until we've
# fixed lines_to_files() not to use @ARGV
@@ -254,8 +254,8 @@
#
# # Second lines_to_files test
## eval { lines_to_files(
-## $metatransforms, $transformorder,
-## [qw(MANIFEST MANIFEST.generated)],
+## $metatransforms, $transformorder,
+## [qw(MANIFEST MANIFEST.generated)],
## $options, $parrotdir
## ); };
## ok($@ =~ /^Unknown install location in MANIFEST for file/, 'fails for install locations not specified in transforms');
@@ -282,8 +282,8 @@
# };
#
# ($files, $installable_exe, $directories) = lines_to_files(
-# $metatransforms, $othertransforms,
-# [qw(MANIFEST MANIFEST.generated)],
+# $metatransforms, $othertransforms,
+# [qw(MANIFEST MANIFEST.generated)],
# { packages => 'main' }, $parrotdir
# );
# ok((ref($files) and ref($installable_exe) and ref($directories)), 'lines_to_files returns something vaguely sensible');
Modified: branches/ops_pct/t/tools/ops2pm/05-renum_op_map_file.t
==============================================================================
--- branches/ops_pct/t/tools/ops2pm/05-renum_op_map_file.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/ops2pm/05-renum_op_map_file.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
# 05-renum_op_map_file.t
@@ -127,3 +127,10 @@
return ($lastcode, $lastnumber);
}
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
+
Modified: branches/ops_pct/t/tools/ops2pm/08-sort_ops.t
==============================================================================
--- branches/ops_pct/t/tools/ops2pm/08-sort_ops.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/ops2pm/08-sort_ops.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -177,17 +177,12 @@
\$stderr
);
ok($ret, "sort_ops returned successfully" );
-# TODO: {
-# local $TODO = 'broken warning about experimental ops';
- like(
- $stderr,
- qr|experimental, not in ops\.num|,
- "Got expected warning about experimental ops"
- );
-# }
-
- # To do: Test that the sorting was correct.
+ like(
+ $stderr,
+ qr|experimental, not in ops\.num|,
+ "Got expected warning about experimental ops"
+ );
ok( chdir $cwd, 'changed back to starting directory after testing' );
}
Modified: branches/ops_pct/t/tools/pbc_disassemble.t
==============================================================================
--- branches/ops_pct/t/tools/pbc_disassemble.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/pbc_disassemble.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2009, Parrot Foundation
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
Modified: branches/ops_pct/t/tools/pmc2cutils/03-dump_vtable.t
==============================================================================
--- branches/ops_pct/t/tools/pmc2cutils/03-dump_vtable.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/pmc2cutils/03-dump_vtable.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -23,7 +23,6 @@
use_ok('Parrot::Pmc2c::Pmc2cMain');
use_ok('File::Basename');
use_ok( 'File::Temp', qw| tempdir | );
-use Data::Dumper;
my ( %opt, @include, @args );
my $self;
Modified: branches/ops_pct/t/tools/pmc2cutils/04-dump_pmc.t
==============================================================================
--- branches/ops_pct/t/tools/pmc2cutils/04-dump_pmc.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/pmc2cutils/04-dump_pmc.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -23,7 +23,6 @@
use File::Basename;
use File::Copy;
use FindBin;
-use Data::Dumper;
use_ok('Parrot::Pmc2c::Pmc2cMain');
use_ok('Cwd');
use_ok( 'File::Temp', qw| tempdir | );
@@ -111,7 +110,7 @@
#create a dump for default.pmc
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[qq{$temppmcdir/default.pmc}],
bin=>$Bin
@@ -215,7 +214,7 @@
#create a dump for default.pmc
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[qq{$temppmcdir/default.pmc}],
bin=>$Bin
@@ -272,7 +271,7 @@
for my $pmc ( qq{$temppmcdir/default.pmc}, qq{$temppmcdir/scalar.pmc}, qq{$temppmcdir/integer.pmc} ) {
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[$pmc],
bin=>$Bin
@@ -376,7 +375,7 @@
#create a dump for default.pmc
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[qq{$temppmcdir/default.pmc}],
bin=>$Bin
@@ -470,7 +469,7 @@
#create a dump for default.pmc
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[qq{$temppmcdir/default.pmc}],
bin=>$Bin
@@ -538,7 +537,7 @@
#create a dump for default.pmc
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[qq{$temppmcdir/default.pmc}],
bin=>$Bin
Modified: branches/ops_pct/t/tools/pmc2cutils/05-gen_c.t
==============================================================================
--- branches/ops_pct/t/tools/pmc2cutils/05-gen_c.t Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/t/tools/pmc2cutils/05-gen_c.t Sun Mar 7 19:33:20 2010 (r44743)
@@ -119,7 +119,7 @@
#create a dump for default.pmc
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[qq{$temppmcdir/default.pmc}],
bin=>$Bin
@@ -228,7 +228,7 @@
for my $pmc ( qq{$temppmcdir/default.pmc}, qq{$temppmcdir/class.pmc} ) {
Parrot::Pmc2c::Pmc2cMain->new(
{
- include => \@include,
+ include => \@include,
opt=>\%opt,
args=>[$pmc],
bin=>$Bin
Deleted: branches/ops_pct/tools/build/cc_flags.pl
==============================================================================
--- branches/ops_pct/tools/build/cc_flags.pl Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,131 +0,0 @@
-#! perl
-################################################################################
-# Copyright (C) 2001-2003, Parrot Foundation.
-# $Id$
-################################################################################
-
-=head1 NAME
-
-tools/build/cc_flags.pl - Process compiler flags
-
-=head1 SYNOPSIS
-
- % perl tools/build/cc_flags.pl transform compiler flags
-
-=head1 DESCRIPTION
-
-This script is used in a F<Makefile> to process the flags to pass to the
-compiler for each C file.
-
-See F<config/gen/makefiles/CFLAGS.in> for the transformation file format.
-
-=cut
-
-################################################################################
-
-use strict;
-use warnings;
-
-my $cflags = shift;
-
-open my $F, '<', $cflags or die "open $cflags: $!\n";
-
-my @options;
-
-while (<$F>) {
- chomp;
- s/#.*//;
- next unless /\S/;
-
- my $regex;
- if (s/^\{(.*?)\}\s*//) {
- next unless $1;
- $regex = qr/$1/;
- }
- elsif (s/^(\S+)\s*//) {
- $regex = qr/^\Q$1\E$/;
- }
- else {
- die "syntax error in $cflags: line $., $_\n";
- }
-
- for ( ; ; ) {
- if (s/^([-+])\{(.*?)\}\s*//) {
- next unless $2;
- my ( $sign, $options ) = ( $1, $2 );
- foreach my $option ( split ' ', $options ) {
- push @options, [ $regex, $sign, $option ];
- }
- }
- elsif (s{s(.)(.*?)\1(.*?)\1([imsx]*)\s*}{}) {
- my $mod = "";
- $mod = "(?$4)" if $4;
-
- push @options, [ $regex, 's', "$mod$2", $3 ];
- }
- elsif (/\S/) {
- die "syntax error in $cflags: line $., $_\n";
- }
- else {
- last;
- }
- }
-}
-
-my ($cfile) = grep /\.c$/, @ARGV;
-
-my ( $inject_point, $where );
-
-foreach (@ARGV) {
- last if $_ eq '';
- ++$where;
-}
-if ($where) {
-
- # Found a "" - remove it
- splice @ARGV, $where, 1;
- $inject_point = $where;
-}
-else {
- $inject_point = 1;
-}
-
-if ($cfile) {
- foreach my $option (@options) {
- if ( $cfile =~ $option->[0] ) {
- if ( $option->[1] eq '+' ) {
- splice @ARGV, $inject_point, 0, $option->[2];
- }
- elsif ( $option->[1] eq '-' ) {
- @ARGV = grep { $_ ne $option->[2] } @ARGV;
- }
- else {
- foreach my $arg (@ARGV) {
- $arg =~ s/$option->[2]/$option->[3]/;
- }
- }
- }
- }
-
- # Visual C++ already prints the source file name...
- if ( $ARGV[0] =~ /cl(?:\.exe)?/i ) {
-
- # ...but only the file name, so we print the path
- # to the directory first
- if ( $cfile =~ /(.*[\/\\])/ ) {
- print $1;
- }
- }
- else {
- print "$cfile\n";
- }
-}
-
-exit system(@ARGV) / 256;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/ops_pct/tools/build/nativecall.pir
==============================================================================
--- branches/ops_pct/tools/build/nativecall.pir Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,891 +0,0 @@
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-tools/build/nativecall.pir - Build up the native call routines
-
-=head1 SYNOPSIS
-
- % ./parrot tools/build/nativecall.pir <src/call_list.txt >src/nci.c
-
-=head1 DESCRIPTION
-
-This script creates the Native Call Interface file F<src/nci.c>. It
-parses a file of function signatures of the form:
-
- <return-type-specifier><ws><parameter-type-specifiers>[<ws>][#<comment>]
- ...
-Empty lines and lines containing only whitespace or comment are ignored.
-The types specifiers are documented in F<src/call_list.txt>.
-
-=head1 SEE ALSO
-
-F<src/call_list.txt>.
-F<docs/pdds/pdd16_native_call.pod>.
-
-=cut
-
-.sub 'main' :main
- .local pmc sig_table, sigs
- sig_table = 'gen_sigtable'()
- sigs = 'read_sigs'()
-
- $S0 = 'get_head'(sig_table, sigs)
- say $S0
- $S0 = 'get_thunks'(sig_table, sigs)
- say $S0
- $S0 = 'get_loader'(sig_table, sigs)
- say $S0
- $S0 = 'get_coda'(sig_table, sigs)
- say $S0
-.end
-
-# get_{head,thunks,loader,coda} {{{
-
-.sub 'get_head'
- .param pmc ignored :slurpy
- .return (<<'HEAD')
-/* ex: set ro ft=c:
- * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- *
- * This file is generated automatically by tools/build/nativecall.pir
- *
- * Any changes made here will be lost!
- *
- */
-
-/* nci.c
- * Copyright (C) 2001-2009, Parrot Foundation.
- * SVN Info
- * $Id$
- * Overview:
- * Native Call Interface routines. The code needed to build a
- * parrot to C call frame is in here
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * References:
- */
-#include "parrot/parrot.h"
-#include "parrot/hash.h"
-#include "parrot/oplib/ops.h"
-#include "pmc/pmc_managedstruct.h"
-#include "pmc/pmc_nci.h"
-#include "pmc/pmc_pointer.h"
-#include "pmc/pmc_callcontext.h"
-#include "nci.str"
-
-/* HEADERIZER HFILE: none */
-/* HEADERIZER STOP */
-
-/*
- * if the architecture can build some or all of these signatures
- * enable the define below
- * - the JITed function will be called first
- * - if it returns NULL, the hardcoded version will do the job
- */
-
-#include "frame_builder.h"
-
-/* All our static functions that call in various ways. Yes, terribly
- hackish, but that is just fine */
-
-HEAD
-.end
-
-.sub 'get_thunks'
- .param pmc sig_table
- .param pmc sigs
- .local string code
- .local int i, n
- code = ''
- i = 0
- n = sigs
- loop:
- if i >= n goto end_loop
-
- .local pmc sig
- sig = sigs[i]
- $S0 = 'sig_to_fn_code'(sig_table, sig :flat)
- code = concat code, $S0
-
- inc i
- goto loop
- end_loop:
- .return (code)
-.end
-
-.sub 'get_loader'
- .param pmc sig_table
- .param pmc sigs
- .local string code
- .local int i, n
- code = <<'FN_HEADER'
-
-
-/* This function serves a single purpose. It takes the function
- signature for a C function we want to call and returns a pointer
- to a function that can call it. */
-void *
-build_call_func(PARROT_INTERP,
-#if defined(CAN_BUILD_CALL_FRAMES)
-PMC *pmc_nci, NOTNULL(STRING *signature), NOTNULL(int *jitted))
-#else
-SHIM(PMC *pmc_nci), NOTNULL(STRING *signature), SHIM(int *jitted))
-#endif
-{
- char *c;
- STRING *ns, *message;
- PMC *b;
- PMC *iglobals;
- PMC *temp_pmc;
-
- PMC *HashPointer = NULL;
-
- /* And in here is the platform-independent way. Which is to say
- "here there be hacks" */
-
- /* fixup empty signatures */
- if (STRING_IS_EMPTY(signature))
- signature = CONST_STRING(interp, "v");
-
- iglobals = interp->iglobals;
-
- if (PMC_IS_NULL(iglobals))
- PANIC(interp, "iglobals isn't created yet");
- HashPointer = VTABLE_get_pmc_keyed_int(interp, iglobals,
- IGLOBALS_NCI_FUNCS);
-
- if (!HashPointer) {
- HashPointer = pmc_new(interp, enum_class_Hash);
- VTABLE_set_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FUNCS,
- HashPointer);
- }
-
-#if defined(CAN_BUILD_CALL_FRAMES)
- /* Try if JIT code can build that signature. If yes, we are done */
- b = VTABLE_get_pmc_keyed_str(interp, HashPointer, signature);
-
- PARROT_ASSERT(PMC_IS_NULL(b) || b->vtable);
-
- if ((!PMC_IS_NULL(b)) && b->vtable->base_type == enum_class_ManagedStruct) {
- *jitted = 1;
- return F2DPTR(VTABLE_get_pointer(interp, b));
- }
- else {
- int jit_size;
- void * const result = Parrot_jit_build_call_func(interp, pmc_nci, signature, &jit_size);
- if (result) {
- struct jit_buffer_private_data *priv;
- *jitted = 1;
- temp_pmc = pmc_new(interp, enum_class_ManagedStruct);
- VTABLE_set_pointer(interp, temp_pmc, (void *)result);
-#ifdef PARROT_HAS_EXEC_PROTECT
- priv = (struct jit_buffer_private_data *)
- mem_sys_allocate(sizeof(struct jit_buffer_private_data));
- priv->size = jit_size;
- SETATTR_ManagedStruct_custom_free_func(interp, temp_pmc, Parrot_jit_free_buffer);
- SETATTR_ManagedStruct_custom_free_priv(interp, temp_pmc, priv);
- SETATTR_ManagedStruct_custom_clone_func(interp, temp_pmc, Parrot_jit_clone_buffer);
- SETATTR_ManagedStruct_custom_clone_priv(interp, temp_pmc, priv);
-#endif /* PARROT_HAS_EXEC_PROTECT */
- VTABLE_set_pmc_keyed_str(interp, HashPointer, signature, temp_pmc);
- return result;
- }
- }
-
-#endif
-
- b = VTABLE_get_pmc_keyed_str(interp, HashPointer, signature);
-
- if (PMC_IS_NULL(b)) {
-FN_HEADER
-
- i = 0
- n = sigs
- loop:
- if i >= n goto end_loop
-
- .local pmc sig
- sig = shift sigs
-
- .local string fn_name
- fn_name = 'sig_to_fn_name'(sig_table, sig :flat)
-
- .local string key
- key = join '', sig
-
- $S0 = 'sprintf'(<<'TEMPLATE', fn_name, key)
- temp_pmc = pmc_new(interp, enum_class_UnManagedStruct);
- VTABLE_set_pointer(interp, temp_pmc, (void *)%s);
- VTABLE_set_pmc_keyed_str(interp, HashPointer, CONST_STRING(interp, "%s"), temp_pmc);
-TEMPLATE
- code = concat code, $S0
-
- inc i
- goto loop
- end_loop:
-
- code = concat code, <<'FN_FOOTER'
-
- b = VTABLE_get_pmc_keyed_str(interp, HashPointer, signature);
- }
-
- PARROT_ASSERT(PMC_IS_NULL(b) || b->vtable);
-
- if ((!PMC_IS_NULL(b)) && b->vtable->base_type == enum_class_UnManagedStruct)
- return F2DPTR(VTABLE_get_pointer(interp, b));
-
- /*
- These three lines have been added to aid debugging. I want to be able to
- see which signature has an unknown type. I am sure someone can come up
- with a neater way to do this.
- */
- ns = string_make(interp, " is an unknown signature type", 29, "ascii", 0);
- message = Parrot_str_concat(interp, signature, ns, 0);
-
-#if defined(CAN_BUILD_CALL_FRAMES)
- ns = string_make(interp, ".\\nCAN_BUILD_CALL_FRAMES is enabled, this should not happen", 58, "ascii", 0);
-#else
- ns = string_make(interp, ".\\nCAN_BUILD_CALL_FRAMES is disabled, add the signature to src/call_list.txt", 75, "ascii", 0);
-#endif
- message = Parrot_str_concat(interp, message, ns, 0);
-
- /*
- * I think there may be memory issues with this but if we get to here we are
- * aborting.
- */
- c = Parrot_str_to_cstring(interp, message);
- PANIC(interp, c);
-}
-
-FN_FOOTER
- .return (code)
-.end
-
-.sub 'get_coda'
- .param pmc ignored :slurpy
- .return (<<'CODA')
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-CODA
-.end
-
-# }}}
-
-# sig_to_* {{{
-
-.sub 'sig_to_fn_code'
- .param pmc args :slurpy
-
- .local string fn_decl
- fn_decl = 'sig_to_fn_decl'(args :flat)
-
- .local string var_decls
- var_decls = 'sig_to_var_decls'(args :flat)
-
- .local string preamble
- preamble = 'sig_to_preamble'(args :flat)
-
- .local string call
- call = 'sig_to_call'(args :flat)
-
- .local string postamble
- postamble = 'sig_to_postamble'(args :flat)
-
- .local string fn_code
- fn_code = 'sprintf'("%s{\n%s%s%s%s}\n", fn_decl, var_decls, preamble, call, postamble)
- .return (fn_code)
-.end
-
-.sub 'sig_to_postamble'
- .param pmc sig_table
- .param string ret
- .param string params
-
- .local string final_assign
- $P0 = 'map_from_sig_table'(sig_table, ret, 'ret_assign')
- final_assign = $P0[0]
-
- .local string extra_postamble
- $P0 = 'map_from_sig_table'(sig_table, params, 'postamble_tmpl')
- 'fill_tmpls_ascending_ints'($P0)
- extra_postamble = join "\n", $P0
-
- .local string postamble
- postamble = 'sprintf'(<<'TEMPLATE', final_assign, extra_postamble)
- %s
- %s
-TEMPLATE
- .return (postamble)
-.end
-
-.sub 'sig_to_call'
- .param pmc sig_table
- .param string ret
- .param string params
-
- .local string return_assign
- $P0 = 'map_from_sig_table'(sig_table, ret, 'func_call_assign')
- return_assign = $P0[0]
-
- .local string ret_cast
- $P0 = 'map_from_sig_table'(sig_table, ret, 'as_return')
- ret_cast = $P0[0]
- if ret_cast == 'void' goto void_fn
- ret_cast = 'sprintf'('(%s)', ret_cast)
- goto end_ret_cast
- void_fn:
- ret_cast = ''
- end_ret_cast:
-
- .local string call_params
- $P0 = 'map_from_sig_table'(sig_table, params, 'call_param_tmpl')
- 'fill_tmpls_ascending_ints'($P0)
- call_params = join ', ', $P0
-
- .local string call
- call = 'sprintf'(<<'TEMPLATE', return_assign, ret_cast, call_params)
- GETATTR_NCI_orig_func(interp, self, orig_func);
- fn_pointer = (func_t)D2FPTR(orig_func);
- %s %s(*fn_pointer)(%s);
-TEMPLATE
- .return (call)
-.end
-
-.sub 'sig_to_preamble'
- .param pmc sig_table
- .param string ret
- .param string params
-
- unless params goto return
-
- .local string sig
- $P0 = 'map_from_sig_table'(sig_table, params, 'sig_char')
- sig = join "", $P0
-
- .local string fill_params
- $P0 = 'map_from_sig_table'(sig_table, params, 'fill_params_tmpl')
- 'fill_tmpls_ascending_ints'($P0)
- fill_params = join "", $P0
-
- .local string extra_preamble
- $P0 = 'map_from_sig_table'(sig_table, params, 'preamble_tmpl')
- 'fill_tmpls_ascending_ints'($P0)
- extra_preamble = join "", $P0
-
- .local string preamble
- preamble = 'sprintf'(<<'TEMPLATE', sig, fill_params, extra_preamble)
- Parrot_pcc_fill_params_from_c_args(interp, call_object, "%s" %s);
- %s
-TEMPLATE
-
- return:
- .return (preamble)
-.end
-
-.sub 'sig_to_var_decls'
- .param pmc sig_table
- .param string ret
- .param string params
-
- .local string ret_csig
- $P0 = 'map_from_sig_table'(sig_table, ret, 'as_return')
- ret_csig = $P0[0]
-
- .local string params_csig
- $P0 = 'map_from_sig_table'(sig_table, params, 'as_proto')
- params_csig = join ', ', $P0
-
- .local string ret_tdecl
- ret_tdecl = ""
- $P0 = 'map_from_sig_table'(sig_table, ret, 'return_type')
- $S0 = $P0[0]
- unless $S0 goto end_ret_type
- if $S0 == 'void' goto end_ret_type
- $S0 = 'sprintf'("%s return_data;\n", $S0)
- ret_tdecl = concat ret_tdecl, $S0
- end_ret_type:
- $P0 = 'map_from_sig_table'(sig_table, ret, 'final_dest')
- $S0 = $P0[0]
- unless $S0 goto end_final_dest
- $S0 = concat $S0, "\n"
- ret_tdecl = concat ret_tdecl, $S0
- end_final_dest:
-
- .local string params_tdecl
- $P0 = 'map_from_sig_table'(sig_table, params, 'temp_tmpl')
- 'fill_tmpls_ascending_ints'($P0)
- $P0 = 'grep_for_true'($P0)
- params_tdecl = join ";\n ", $P0
-
- .local string var_decls
- var_decls = 'sprintf'(<<'TEMPLATE', ret_csig, params_csig, ret_tdecl, params_tdecl)
- typedef %s(* func_t)(%s);
- func_t fn_pointer;
- void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
- %s
- %s;
-TEMPLATE
-
- .return (var_decls)
-.end
-
-.sub 'sig_to_fn_decl'
- .param pmc sig_table
- .param pmc sig :slurpy
- .local string fn_name, fn_decl
- fn_name = 'sig_to_fn_name'(sig_table, sig :flat)
- fn_decl = 'sprintf'(<<'TEMPLATE', fn_name)
-static void
-%s(PARROT_INTERP, PMC *self)
-TEMPLATE
- .return (fn_decl)
-.end
-
-.sub 'sig_to_fn_name'
- .param pmc sig_table
- .param string ret
- .param string params
-
- .local string fix_params
- $P0 = 'map_from_sig_table'(sig_table, params, 'cname')
- fix_params = join '', $P0
-
- $S0 = 'sprintf'('pcf_%s_%s', ret, fix_params)
- .return ($S0)
-.end
-
-.sub 'map_from_sig_table'
- .param pmc sig_table
- .param string sig
- .param string field_name
-
- $P0 = split '', sig
-
- .local pmc result
- result = new ['ResizableStringArray']
- $I0 = $P0
- result = $I0
-
- $I0 = $P0
- $I1 = 0
- loop:
- if $I1 >= $I0 goto end_loop
- $S0 = $P0[$I1]
- $S1 = sig_table[$S0; field_name]
- result[$I1] = $S1
- inc $I1
- goto loop
- end_loop:
-
- .return (result)
-.end
-
-# }}}
-
-# read_sigs {{{
-
-.sub 'read_sigs'
- .local pmc stdin, seen, sigs
- stdin = getstdin
- seen = new ['Hash']
- sigs = new ['ResizablePMCArray']
-
- .local int lineno
- lineno = 0
- read_loop:
- unless stdin goto end_read_loop
-
- .local string ret_sig, param_sig, full_sig
- (ret_sig, param_sig) = 'read_one_sig'(stdin)
- inc lineno
- full_sig = concat ret_sig, param_sig
-
- # filter out empty sigs (and empty lines)
- unless full_sig goto read_loop
-
- # de-dup sigs
- $I0 = seen[full_sig]
- unless $I0 goto unseen
- $S0 = 'sprintf'("Ignored signature '%s' on line %d (previously seen on line %d)\n", full_sig, lineno, $I0)
- printerr $S0
- goto read_loop
- unseen:
- seen[full_sig] = lineno
-
- .local pmc sig
- sig = new ['ResizableStringArray']
- sig = 2
- sig[0] = ret_sig
- sig[1] = param_sig
- push sigs, sig
-
- goto read_loop
- end_read_loop:
-
- .return (sigs)
-.end
-
-.sub 'read_one_sig'
- .param pmc fh
-
- .local string line
- line = readline fh
-
- # handle comments
- $I0 = index line, '#'
- if $I0 < 0 goto end_comment
- line = substr line, 0, $I0
- end_comment:
-
- # convert whitespace into spaces
- $S0 = '\t'
- whitespace_loop:
- $I0 = index line, $S0
- if $I0 < 0 goto end_whitespace_loop
- substr line, $I0, 1, ' '
- goto whitespace_loop
- end_whitespace_loop:
-
- if $S0 == "\n" goto end_whitespace
- $S0 = "\n"
- goto whitespace_loop
- end_whitespace:
-
- # turn multiple spaces into a single space
- multispace_loop:
- $I0 = index line, ' '
- if $I0 < 0 goto end_multispace_loop
- $S0 = substr 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, ''
- end_leading:
-
- # handle empty (or whitespace only) lines
- if line == '' goto ret
- if line == ' ' goto ret
-
- # remove trailing whitespace
- $S0 = substr line, -1, 1
- unless $S0 == ' ' goto end_trailing
- $S0 = substr line, -1, 1, ''
- end_trailing:
-
- # read the signature
- .local string ret_sig, param_sig
- $P0 = split ' ', line
- ret_sig = $P0[0]
- param_sig = $P0[1]
-
- ret:
- .return (ret_sig, param_sig)
-.end
-
-#}}}
-
-# gen_sigtable {{{
-
-.sub 'gen_sigtable'
- $S0 = 'sigtable_json'()
- $P0 = 'decode_table'($S0)
- 'fixup_table'($P0)
- .return ($P0)
-.end
-
-.sub 'decode_table'
- .param string json
-
- .local pmc compiler
- load_bytecode 'data_json.pbc'
- compiler = compreg 'data_json'
-
- .local pmc table
- $P0 = compiler.'compile'(json)
- table = $P0()
-
- .return (table)
-.end
-
-.sub 'fixup_table'
- .param pmc table
-
- .local pmc table_iter
- table_iter = iter table
- iter_loop:
- unless table_iter goto iter_end
-
- .local string k
- .local pmc v
- k = shift table_iter
- v = table[k]
-
- $I0 = exists v['cname']
- if $I0 goto has_cname
- v['cname'] = k
- has_cname:
-
- $I0 = exists v['as_return']
- if $I0 goto has_as_return
- $S0 = v['as_proto']
- v['as_return'] = $S0
- has_as_return:
-
- $I0 = exists v['return_type']
- if $I0 goto has_return_type
- $S0 = v['as_proto']
- v['return_type'] = $S0
- has_return_type:
-
- $I0 = exists v['ret_assign']
- $I1 = exists v['sig_char']
- $I1 = !$I1
- $I0 = $I0 || $I1 # not (not exists v[ret_assign] and exists v[sig_char])
- if $I0 goto has_ret_assign
- $S0 = 'Parrot_pcc_fill_returns_from_c_args(interp, call_object, "'
- $S1 = v['sig_char']
- $S0 = concat $S0, $S1
- $S0 = concat $S0, '", return_data);'
- v['ret_assign'] = $S0
- has_ret_assign:
-
- $I0 = exists v['func_call_assign']
- if $I0 goto has_func_call_assign
- v['func_call_assign'] = 'return_data = '
- has_func_call_assign:
-
- $I0 = exists v['temp_tmpl']
- if $I0 goto has_temp_tmpl
- $S0 = v['return_type']
- $S0 = concat $S0, " t_%i"
- v['temp_tmpl'] = $S0
- has_temp_tmpl:
-
- $I0 = exists v['fill_params_tmpl']
- if $I0 goto has_fill_params_tmpl
- v['fill_params_tmpl'] = ', &t_%i'
- has_fill_params_tmpl:
-
- $I0 = exists v['call_param_tmpl']
- if $I0 goto has_call_param_tmpl
- v['call_param_tmpl'] = 't_%i'
- has_call_param_tmpl:
-
- goto iter_loop
- iter_end:
-
- .return ()
-.end
-
-.sub 'sigtable_json'
- .const string retv = <<'JSON'
-{
- "p": { "as_proto": "void *",
- "final_dest": "PMC * final_destination = PMCNULL;",
- "temp_tmpl": "PMC *t_%i",
- "sig_char": "P",
- "call_param_tmpl": "PMC_IS_NULL((PMC*)t_%i) ? (void *)NULL : VTABLE_get_pointer(interp, t_%i)",
- "ret_assign": "if (return_data != NULL) {
- final_destination = pmc_new(interp, enum_class_UnManagedStruct);
- VTABLE_set_pointer(interp, final_destination, return_data);
- }
- Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"P\", final_destination);" },
- "i": { "as_proto": "int", "sig_char": "I",
- "return_type": "INTVAL" },
- "l": { "as_proto": "long", "sig_char": "I", "return_type": "INTVAL" },
- "c": { "as_proto": "char", "sig_char": "I", "return_type": "INTVAL" },
- "s": { "as_proto": "short", "sig_char": "I", "return_type": "INTVAL" },
- "f": { "as_proto": "float", "sig_char": "N", "return_type": "FLOATVAL" },
- "d": { "as_proto": "double", "sig_char": "N", "return_type": "FLOATVAL" },
- "t": { "as_proto": "char *",
- "final_dest": "STRING *final_destination;",
- "ret_assign": "final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"S\", final_destination);",
- "sig_char": "S",
- "temp_tmpl": "char *t_%i; STRING *ts_%i",
- "fill_params_tmpl": ", &ts_%i",
- "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *)NULL;",
- "postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
- "v": { "as_proto": "void",
- "return_type": "void *",
- "sig_char": "v",
- "ret_assign": "",
- "func_call_assign": "" },
- "P": { "as_proto": "PMC *", "sig_char": "P" },
- "O": { "as_proto": "PMC *", "returns": "", "sig_char": "Pi" },
- "J": { "as_proto": "PARROT_INTERP",
- "returns": "",
- "fill_params_tmpl": "",
- "call_param_tmpl": "interp",
- "temp_tmpl": "",
- "sig_char": "" },
- "S": { "as_proto": "STRING *", "sig_char": "S" },
- "I": { "as_proto": "INTVAL", "sig_char": "I" },
- "N": { "as_proto": "FLOATVAL", "sig_char": "N" },
- "b": { "as_proto": "void *",
- "as_return": "",
- "sig_char": "S",
- "temp_tmpl":"STRING *t_%i",
- "call_param_tmpl": "Buffer_bufstart(t_%i)" },
- "B": { "as_proto": "char **",
- "as_return": "",
- "sig_char": "S",
- "fill_params_tmpl": ", &ts_%i",
- "temp_tmpl": "char *t_%i; STRING *ts_%i",
- "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *) NULL;",
- "call_param_tmpl": "&t_%i",
- "postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
- "2": { "as_proto": "short *",
- "sig_char": "P",
- "return_type": "short",
- "ret_assign": "Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"I\", return_data);",
- "temp_tmpl": "PMC *t_%i; short i_%i",
- "preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
- "call_param_tmpl": "&i_%i",
- "postamble_tmpl": "VTABLE_set_integer_native(interp, t_%i, i_%i);" },
- "3": { "as_proto": "int *",
- "sig_char": "P",
- "return_type": "int",
- "ret_assign": "Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"I\", return_data);",
- "temp_tmpl": "PMC *t_%i; int i_%i",
- "preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
- "call_param_tmpl": "&i_%i",
- "postamble_tmpl": "VTABLE_set_integer_native(interp, t_%i, i_%i);" },
- "4": { "as_proto": "long *",
- "sig_char": "P",
- "return_type": "long",
- "ret_assign": "Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"I\", return_data);",
- "temp_tmpl": "PMC *t_%i; long i_%i",
- "preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
- "call_param_tmpl": "&i_%i",
- "postamble_tmpl": "VTABLE_set_integer_native(interp, t_%i, i_%i);" },
- "L": { "as_proto": "long *", "as_return": "" },
- "T": { "as_proto": "char **", "as_return": "" },
- "V": { "as_proto": "void **",
- "as_return": "",
- "sig_char": "P",
- "temp_tmpl": "PMC *t_%i; void *v_%i",
- "preamble_tmpl": "v_%i = VTABLE_get_pointer(interp, t_%i);",
- "call_param_tmpl": "&v_%i",
- "postamble_tmpl": "VTABLE_set_pointer(interp, t_%i, v_%i);" },
- "@": { "as_proto": "PMC *", "as_return": "", "cname": "xAT_", "sig_char": "Ps" }
-}
-JSON
- .return (retv)
-.end
-
-# }}}
-
-# utility fn's {{{
-
-.sub 'sprintf'
- .param string tmpl
- .param pmc args :slurpy
- $S0 = sprintf tmpl, args
- .return ($S0)
-.end
-
-.sub 'fill_tmpls_ascending_ints'
- .param pmc tmpls
- .local int idx, n
-
- idx = 0
- n = tmpls
- loop:
- if idx >= n goto end_loop
- $S0 = tmpls[idx]
- $I0 = 'printf_arity'($S0)
- $P0 = 'xtimes'(idx, $I0)
- $S1 = sprintf $S0, $P0
- tmpls[idx] = $S1
- inc idx
- goto loop
- end_loop:
-.end
-
-.sub 'printf_arity'
- .param string tmpl
-
- .local int count, idx
- idx = 0
- count = 0
-
- loop:
- idx = index tmpl, '%', idx
- if idx < 0 goto end_loop
-
- # check against '%%' escapes
- $I0 = idx + 1
- $S0 = substr tmpl, $I0, 1
- unless $S0 == '%' goto is_valid_placeholder
- idx = idx + 2 # skip both '%'s
- goto loop
- is_valid_placeholder:
-
- inc idx
- inc count
- goto loop
- end_loop:
-
- .return (count)
-.end
-
-.sub 'xtimes'
- .param pmc what
- .param int times
-
- .local pmc retv
- retv = new ['ResizablePMCArray']
- retv = times
-
- $I0 = 0
- loop:
- if $I0 >= times goto end_loop
- retv[$I0] = what
- inc $I0
- goto loop
- end_loop:
-
- .return (retv)
-.end
-
-.sub 'grep_for_true'
- .param pmc input
- .local pmc output
- .local int i, n
- output = new ['ResizableStringArray']
- i = 0
- n = input
- loop:
- if i >= n goto end_loop
- $S0 = input[i]
- unless $S0 goto end_cond
- push output, $S0
- end_cond:
- inc i
- goto loop
- end_loop:
- .return (output)
-.end
-
-# }}}
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-
Deleted: branches/ops_pct/tools/build/nativecall.pl
==============================================================================
--- branches/ops_pct/tools/build/nativecall.pl Sun Mar 7 19:33:20 2010 (r44742)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,560 +0,0 @@
-#! perl
-# Copyright (C) 2001-2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-tools/build/nativecall.pl - Build up the native call routines
-
-=head1 SYNOPSIS
-
- % perl tools/build/nativecall.pl src/call_list.txt
-
-=head1 DESCRIPTION
-
-This script creates the Native Call Interface file F<src/nci.c>. It
-parses a file of function signatures of the form:
-
- <return-type-specifier><ws><parameter-type-specifiers>[<ws>][#<comment>]
- ...
-Empty lines and lines containing only whitespace or comment are ignored.
-The types specifiers are documented in F<src/call_list.txt>.
-
-=head1 SEE ALSO
-
-F<src/call_list.txt>.
-F<docs/pdds/pdd16_native_call.pod>.
-
-=cut
-
-use strict;
-use warnings;
-
-my $opt_warndups = 0;
-
-# This file will eventually be compiled
-open my $NCI, '>', 'src/nci.c' or die "Can't create nci.c: $!";
-
-print_head( \@ARGV );
-
-
-my %sig_table = (
- p => {
- as_proto => "void *",
- final_dest => "PMC * final_destination = PMCNULL;",
- sig_char => "P",
- ret_assign => "if (return_data != NULL) {\n" .
- " final_destination = pmc_new(interp, enum_class_UnManagedStruct);\n" .
- " VTABLE_set_pointer(interp, final_destination, return_data);\n" .
- " }\n" .
- " Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"P\", final_destination);",
- },
- i => { as_proto => "int", sig_char => "I", return_type => "INTVAL" },
- l => { as_proto => "long", sig_char => "I", return_type => "INTVAL" },
- c => { as_proto => "char", sig_char => "I", return_type => "INTVAL" },
- s => { as_proto => "short", sig_char => "I", return_type => "INTVAL" },
- f => { as_proto => "float", sig_char => "N", return_type => "FLOATVAL" },
- d => { as_proto => "double", sig_char => "N", return_type => "FLOATVAL" },
- t => { as_proto => "char *",
- final_dest => "STRING *final_destination;",
- ret_assign => "final_destination = Parrot_str_new(interp, return_data, 0);\n Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"S\", final_destination);",
- sig_char => "S" },
- v => { as_proto => "void",
- return_type => "void *",
- sig_char => "v",
- ret_assign => "",
- func_call_assign => ""
- },
- P => { as_proto => "PMC *", sig_char => "P" },
- O => { as_proto => "PMC *", returns => "", sig_char => "Pi" },
- J => { as_proto => "PARROT_INTERP", returns => "", sig_char => "" },
- S => { as_proto => "STRING *", sig_char => "S" },
- I => { as_proto => "INTVAL", sig_char => "I" },
- N => { as_proto => "FLOATVAL", sig_char => "N" },
- b => { as_proto => "void *", as_return => "", sig_char => "S" },
- B => { as_proto => "char **", as_return => "", sig_char => "S" },
- # These should be replaced by modifiers in the future
- 2 => { as_proto => "short *", sig_char => "P", return_type => "short",
- ret_assign => 'Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);' },
- 3 => { as_proto => "int *", sig_char => "P", return_type => "int",
- ret_assign => 'Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);' },
- 4 => { as_proto => "long *", sig_char => "P", return_type => "long",
- ret_assign => 'Parrot_pcc_fill_returns_from_c_args(interp, call_object, "I", return_data);' },
- L => { as_proto => "long *", as_return => "" },
- T => { as_proto => "char **", as_return => "" },
- V => { as_proto => "void **", as_return => "", sig_char => "P" },
- '@' => { as_proto => "PMC *", as_return => "", cname => "xAT_", sig_char => 'Ps' },
-);
-
-for (values %sig_table) {
- if (not exists $_->{as_return}) { $_->{as_return} = $_->{as_proto} }
- if (not exists $_->{return_type}) { $_->{return_type} = $_->{as_proto} }
- if (not exists $_->{ret_assign} and exists $_->{sig_char}) {
- $_->{ret_assign} = 'Parrot_pcc_fill_returns_from_c_args(interp, call_object, "'
- . $_->{sig_char} . '", return_data);';
- }
- if (not exists $_->{func_call_assign}) {
- $_->{func_call_assign} = "return_data = "
- }
-}
-
-
-my $temp_cnt = 0;
-my (@put_pointer, @put_pointer_nci_too, @nci_defs);
-my %seen;
-
-while (<>) {
- chomp;
- s/#.*$//; # comment till end of line
- s/^\s*//;
- s/\s*$//;
- next unless $_;
-
- my ( $ret, $args ) = split m/\s+/, $_;
-
- $args = '' if not defined $args;
-
- die "Invalid return signature char '$ret' on line $. of $ARGV\n"
- unless exists $sig_table{$ret}{ret_assign};
-
- if ( ( $seen{"$ret$args"} ||= $. ) != $. ) {
- warn sprintf "Ignored signature '%s' on line %d (previously seen on line %d) of $ARGV",
- "$ret$args", $., $seen{"$ret$args"}
- if $opt_warndups;
- next;
- }
-
- my @fill_params;
- my @extra_preamble;
- my @extra_postamble;
- my @temps;
- my @arg;
- my $reg_num = 0;
- my $sig = '';
-
- if ( defined $args and not $args =~ m/^\s*$/ ) {
- foreach ( split m//, $args ) {
- die "Invalid argument signature char '$_' on line $. of $ARGV"
- unless exists $sig_table{$_}{sig_char};
- push @arg,
- make_arg( $_, $reg_num++, \$temp_cnt, \@temps, \@fill_params,
- \@extra_preamble, \@extra_postamble );
- $sig .= $sig_table{$_}{sig_char};
- $_ eq 'J' && $reg_num--;
- }
- }
-
- my $ret_sig = $sig_table{$ret};
-
- if ($args =~ /[234V]/) {
- push @nci_defs, create_function(
- $sig, $ret,
- $args, [@arg],
- $ret_sig->{as_return}, $ret_sig->{return_type},
- $ret_sig->{func_call_assign}, $ret_sig->{final_dest},
- $ret_sig->{ret_assign}, \@temps,
- \@fill_params, \@extra_preamble, \@extra_postamble,
- \@put_pointer_nci_too,
- );
- }
- else {
- print {$NCI} create_function(
- $sig, $ret,
- $args, [@arg],
- $ret_sig->{as_return}, $ret_sig->{return_type},
- $ret_sig->{func_call_assign}, $ret_sig->{final_dest},
- $ret_sig->{ret_assign}, \@temps,
- \@fill_params, \@extra_preamble, \@extra_postamble,
- \@put_pointer,
- );
- }
-}
-
-print {$NCI} <<"END_FUNCS";
-
-#endif
- at nci_defs
-
-END_FUNCS
-
-print_tail( \@put_pointer, \@put_pointer_nci_too );
-
-# append the C code coda
-print $NCI <<"EOC";
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-EOC
-
-close $NCI;
-
-sub print_head {
- my ($definitions) = @_;
- print $NCI <<"HEAD";
-/* ex: set ro ft=c:
- * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- *
- * This file is generated automatically by tools/build/nativecall.pl
- * from definitions in @$definitions
- *
- * Any changes made here will be lost!
- *
- */
-
-/* nci.c
- * Copyright (C) 2001-2009, Parrot Foundation.
- * SVN Info
- * \$Id\$
- * Overview:
- * Native Call Interface routines. The code needed to build a
- * parrot to C call frame is in here
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * References:
- */
-#include "parrot/parrot.h"
-#include "parrot/hash.h"
-#include "parrot/oplib/ops.h"
-#include "pmc/pmc_managedstruct.h"
-#include "pmc/pmc_nci.h"
-#include "pmc/pmc_pointer.h"
-#include "pmc/pmc_callcontext.h"
-#include "nci.str"
-
-/* HEADERIZER HFILE: none */
-/* HEADERIZER STOP */
-
-/*
- * if the architecture can build some or all of these signatures
- * enable the define below
- * - the JITed function will be called first
- * - if it returns NULL, the hardcoded version will do the job
- */
-
-#include "frame_builder.h"
-
-#ifndef CAN_BUILD_CALL_FRAMES
-/* All our static functions that call in various ways. Yes, terribly
- hackish, but that is just fine */
-
-HEAD
- return;
-}
-
-sub make_arg {
-
- #
- # we have to fetch all to temps, so that the call code
- # can operate in sequence
- #
- my ( $argtype, $reg_num, $temp_cnt_ref, $temps_ref, $fill_params_ref, $extra_preamble_ref, $extra_postamble_ref )
- = @_;
-
- local $_ = $argtype;
- my $temp_num = ${$temp_cnt_ref}++;
- /[ilcsfdINSOP\@]/ && do {
- my $ret_type = $sig_table{$_}{return_type};
- push @{$temps_ref}, "$ret_type t_$temp_num;";
- push @{$fill_params_ref}, "&t_$temp_num";
- return "t_$temp_num";
- };
- /p/ && do {
- push @{$temps_ref}, "PMC *t_$temp_num;";
- push @{$fill_params_ref}, "&t_$temp_num";
- return "PMC_IS_NULL((PMC*)t_$temp_num)? (void*)NULL:VTABLE_get_pointer(interp, t_$temp_num)";
- };
- /V/ && do {
- push @{$temps_ref}, "PMC *t_$temp_num;";
- push @{$temps_ref}, "void *v_$temp_num;";
- push @{$fill_params_ref}, "&t_$temp_num";
- push @{$extra_preamble_ref}, "v_$temp_num = VTABLE_get_pointer(interp, t_$temp_num);";
- push @{$extra_postamble_ref}, "VTABLE_set_pointer(interp, t_$temp_num, v_$temp_num);";
- return "&v_$temp_num";
- };
- /[234]/ && do {
- my $ret_type = $sig_table{$_}{return_type};
- push @{$temps_ref}, "PMC *t_$temp_num;";
- push @{$temps_ref}, "$ret_type i_$temp_num;";
- push @{$fill_params_ref}, "&t_$temp_num";
- push @{$extra_preamble_ref}, "i_$temp_num = ($ret_type) VTABLE_get_integer(interp, t_$temp_num);";
- push @{$extra_postamble_ref}, "VTABLE_set_integer_native(interp, t_$temp_num, i_$temp_num);";
- return "&i_$temp_num";
- };
- /t/ && do {
- push @{$temps_ref}, "char *t_$temp_num;";
- push @{$temps_ref}, "STRING *ts_$temp_num;";
- push @{$fill_params_ref}, "&ts_$temp_num";
- push @{$extra_preamble_ref},
- "t_$temp_num = ts_$temp_num ? Parrot_str_to_cstring(interp, ts_$temp_num) : (char *) NULL;";
- push @{$extra_postamble_ref}, "do { if (t_$temp_num) Parrot_str_free_cstring(t_$temp_num); } while (0);";
- return "t_$temp_num";
- };
- /b/ && do {
- push @{$temps_ref}, "STRING *t_$temp_num;";
- push @{$fill_params_ref}, "&t_$temp_num";
- return "Buffer_bufstart(t_$temp_num)";
- };
- /B/ && do {
- push @{$temps_ref}, "char *t_$temp_num;";
- push @{$temps_ref}, "char** v_$temp_num = &t_$temp_num;";
- push @{$temps_ref}, "STRING *ts_$temp_num;";
- push @{$fill_params_ref}, "&ts_$temp_num";
- push @{$extra_preamble_ref},
- "t_$temp_num = ts_$temp_num ? Parrot_str_to_cstring(interp, ts_$temp_num) : (char *) NULL;";
- push @{$extra_postamble_ref}, "do { if (t_$temp_num) Parrot_str_free_cstring(t_$temp_num); } while (0);";
- return "v_$temp_num";
- };
- /J/ && do {
- return "interp";
- };
- return;
-}
-
-sub create_function {
- my (
- $sig, $return, $params, $args,
- $ret_type, $ret_type_decl, $return_assign, $final_dest,
- $final_assign, $temps_ref, $fill_params_ref, $extra_preamble_ref,
- $extra_postamble_ref, $put_pointer_ref,
- ) = @_;
-
- my $func = '';
-
- $final_dest ||= "";
-
- my $other_decl .= join( "\n ", $final_dest, @{$temps_ref} );
- my $call_object_decl = <<"CALLOBJECT";
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
-CALLOBJECT
- my $extra_preamble = join( "\n ", @{$extra_preamble_ref} );
- my $extra_postamble = join( "\n ", @{$extra_postamble_ref} );
- my $return_data_decl =
- "$return_assign $final_assign" =~ /return_data/
- ? qq{$ret_type_decl return_data;}
- : q{};
- my $fix_params = join '', map { $sig_table{$_}{cname} || $_ } split m//, $params;
-
- if ( length $params ) {
- my $proto = join ', ', map { $sig_table{$_}{as_proto} } split( m//, $params );
-
- my $call_params = join( ",", @$args );
- my $fill_params = join( ", ", @$fill_params_ref );
- $fill_params = ", " . $fill_params if($fill_params);
-
- $func = <<"HEADER";
-static void
-pcf_${return}_$fix_params(PARROT_INTERP, PMC *self)
-{
- typedef $ret_type (*func_t)($proto);
- func_t pointer;
- void *orig_func;
- $call_object_decl
- $return_data_decl
- $other_decl
- Parrot_pcc_fill_params_from_c_args(interp, call_object, \"$sig\"$fill_params);
- $extra_preamble
-
- GETATTR_NCI_orig_func(interp, self, orig_func);
- pointer = (func_t)D2FPTR(orig_func);
- $return_assign ($ret_type)(*pointer)($call_params);
- $final_assign
- $extra_postamble
-}
-HEADER
- }
- else {
-
- # Things are more simple, when there are no params
- $func = <<"HEADER";
-static void
-pcf_${return}_(PARROT_INTERP, PMC *self)
-{
- $ret_type (*pointer)(void);
- void *orig_func;
- $return_data_decl
- $other_decl
- $call_object_decl
- $extra_preamble
-
- GETATTR_NCI_orig_func(interp, self, orig_func);
- pointer = ($ret_type (*)(void))D2FPTR(orig_func);
- $return_assign ($ret_type)(*pointer)();
- $final_assign
- $extra_postamble
-}
-HEADER
- }
-
- my ( $key, $value ) = (
- defined $params
- ? ( "$return$params", "pcf_${return}_$fix_params" )
- : ( "$return", "pcf_${return}" )
- );
-
- push @{$put_pointer_ref}, <<"PUT_POINTER";
- temp_pmc = pmc_new(interp, enum_class_UnManagedStruct);
- VTABLE_set_pointer(interp, temp_pmc, (void *)$value);
- VTABLE_set_pmc_keyed_str(interp, HashPointer, CONST_STRING(interp, "$key"), temp_pmc);
-PUT_POINTER
-
- # qq| parrot_hash_put( interp, known_frames, const_cast("$key"), $value );|;
-
- return $func;
-}
-
-sub print_tail {
- my ($put_pointer_ref, $put_pointer_nci_ref) = @_;
-
- my $put_pointer = join( "\n", @{$put_pointer_ref} );
- my $put_pointer_nci = join( "\n", @{$put_pointer_nci_ref} );
- print $NCI <<"TAIL";
-
-
-/* This function serves a single purpose. It takes the function
- signature for a C function we want to call and returns a pointer
- to a function that can call it. */
-void *
-build_call_func(PARROT_INTERP,
-#if defined(CAN_BUILD_CALL_FRAMES)
-PMC *pmc_nci, NOTNULL(STRING *signature), NOTNULL(int *jitted))
-#else
-SHIM(PMC *pmc_nci), NOTNULL(STRING *signature), SHIM(int *jitted))
-#endif
-{
- char *c;
- STRING *ns, *message;
- PMC *b;
- PMC *iglobals;
- PMC *temp_pmc;
-
- PMC *HashPointer = NULL;
-
- /* And in here is the platform-independent way. Which is to say
- "here there be hacks" */
-
- /* fixup empty signatures */
- if (STRING_IS_EMPTY(signature))
- signature = CONST_STRING(interp, "v");
-
- iglobals = interp->iglobals;
-
- if (PMC_IS_NULL(iglobals))
- PANIC(interp, "iglobals isn't created yet");
- HashPointer = VTABLE_get_pmc_keyed_int(interp, iglobals,
- IGLOBALS_NCI_FUNCS);
-
- if (!HashPointer) {
- HashPointer = pmc_new(interp, enum_class_Hash);
- VTABLE_set_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FUNCS,
- HashPointer);
- }
-
-#if defined(CAN_BUILD_CALL_FRAMES)
- /* Try if JIT code can build that signature. If yes, we are done */
- b = VTABLE_get_pmc_keyed_str(interp, HashPointer, signature);
-
- PARROT_ASSERT(PMC_IS_NULL(b) || b->vtable);
-
- if ((!PMC_IS_NULL(b)) && b->vtable->base_type == enum_class_ManagedStruct) {
- *jitted = 1;
- return F2DPTR(VTABLE_get_pointer(interp, b));
- }
- else {
- int jit_size;
- void * const result = Parrot_jit_build_call_func(interp, pmc_nci, signature, &jit_size);
- if (result) {
- struct jit_buffer_private_data *priv;
- *jitted = 1;
- temp_pmc = pmc_new(interp, enum_class_ManagedStruct);
- VTABLE_set_pointer(interp, temp_pmc, (void *)result);
-#ifdef PARROT_HAS_EXEC_PROTECT
- priv = (struct jit_buffer_private_data *)
- mem_sys_allocate(sizeof(struct jit_buffer_private_data));
- priv->size = jit_size;
- SETATTR_ManagedStruct_custom_free_func(interp, temp_pmc, Parrot_jit_free_buffer);
- SETATTR_ManagedStruct_custom_free_priv(interp, temp_pmc, priv);
- SETATTR_ManagedStruct_custom_clone_func(interp, temp_pmc, Parrot_jit_clone_buffer);
- SETATTR_ManagedStruct_custom_clone_priv(interp, temp_pmc, priv);
-#endif /* PARROT_HAS_EXEC_PROTECT */
- VTABLE_set_pmc_keyed_str(interp, HashPointer, signature, temp_pmc);
- return result;
- }
- }
-
-#endif
-
- b = VTABLE_get_pmc_keyed_str(interp, HashPointer, signature);
-
- if (PMC_IS_NULL(b)) {
-$put_pointer_nci
-#ifndef CAN_BUILD_CALL_FRAMES
-$put_pointer
-#endif
-
- b = VTABLE_get_pmc_keyed_str(interp, HashPointer, signature);
- }
-
- PARROT_ASSERT(PMC_IS_NULL(b) || b->vtable);
-
- if ((!PMC_IS_NULL(b)) && b->vtable->base_type == enum_class_UnManagedStruct)
- return F2DPTR(VTABLE_get_pointer(interp, b));
-
- /*
- These three lines have been added to aid debugging. I want to be able to
- see which signature has an unknown type. I am sure someone can come up
- with a neater way to do this.
- */
- ns = string_make(interp, " is an unknown signature type", 29, "ascii", 0);
- message = Parrot_str_concat(interp, signature, ns, 0);
-
-#if defined(CAN_BUILD_CALL_FRAMES)
- ns = string_make(interp, ".\\nCAN_BUILD_CALL_FRAMES is enabled, this should not happen", 58, "ascii", 0);
-#else
- ns = string_make(interp, ".\\nCAN_BUILD_CALL_FRAMES is disabled, add the signature to src/call_list.txt", 75, "ascii", 0);
-#endif
- message = Parrot_str_concat(interp, message, ns, 0);
-
- /*
- * I think there may be memory issues with this but if we get to here we are
- * aborting.
- */
- c = Parrot_str_to_cstring(interp, message);
- PANIC(interp, c);
-}
-
-TAIL
- return;
-}
-
-=begin example
-
-This is the template thing
-
-static void pcf_$funcname(PARROT_INTERP, PMC *self) {
- $ret_type (*pointer)();
- $ret_type return_data;
-
- return_data = ($ret_type)(*pointer)($params);
- $ret_reg = return_data;
- REG_INT(interp, 0) = $stack_returns;
- REG_INT(interp, 1) = $int_returns;
- REG_INT(interp, 2) = $string_returns;
- REG_INT(interp, 3) = $pmc_returns;
- REG_INT(interp, 4) = $num_returns;
- return;
-}
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/ops_pct/tools/dev/checkdepend.pl
==============================================================================
--- branches/ops_pct/tools/dev/checkdepend.pl Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/tools/dev/checkdepend.pl Sun Mar 7 19:33:20 2010 (r44743)
@@ -11,6 +11,7 @@
use File::Spec;
use Test::More;
use Test::Harness;
+use Test::Differences;
=head1 NAME
@@ -29,8 +30,9 @@
=head1 REQUIREMENTS
A built parrot (Configure and make) to generate all files so we can analyze
-them. Ack is used to find the files. We are not currently requiring ack
-for development, so this is an optional test.
+them. App::Ack is used to find the files, and Test::Differences is used to
+make the test output usable - these non standard modules make this an
+optional test.
=head1 BUGS
@@ -262,10 +264,10 @@
$extra_info = "($active_makefile: line $active_line_num)";
}
- $rule_deps = join ' ', sort split /\s+/, $rule_deps;
- my $expected_deps = join ' ', sort (get_deps($file));
+ $rule_deps = join "\n", sort split /\s+/, $rule_deps;
+ my $expected_deps = join "\n", sort (get_deps($file));
- is($rule_deps, $expected_deps, "$file has correct dependencies $extra_info.");
+ eq_or_diff_text($rule_deps, $expected_deps, "$file has correct dependencies $extra_info.", {context => 0});
}
}
Modified: branches/ops_pct/tools/dev/mk_language_shell.pl
==============================================================================
--- branches/ops_pct/tools/dev/mk_language_shell.pl Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/tools/dev/mk_language_shell.pl Sun Mar 7 19:33:20 2010 (r44743)
@@ -1,10 +1,10 @@
#! perl
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
-tools/dev/mk_language_shell.pl -- create initial files for a new language
+tools/dev/mk_language_shell.pl -- create initial files for a new language implementation
=head1 SYNOPSIS
@@ -19,8 +19,8 @@
=head1 DESCRIPTION
This script populates a directory with files for building a
-new language translator in Parrot. The first argument is the
-name of the language to be built. The C<path> argument
+new language translator in Parrot. The first argument is the
+name of the language to be built. The C<path> argument
says where to populate the directory, if no C<path> is specified
then it is taken to be a subdirectory of the current directory
with the same name as the language (converted to lowercase).
@@ -61,12 +61,15 @@
use strict;
use warnings;
-use File::Path;
-use File::Spec;
-use Getopt::Long;
+
use FindBin qw($Bin);
use lib "$Bin/../lib"; # install location
use lib "$Bin/../../lib"; # build location
+
+use File::Path;
+use File::Spec;
+use Getopt::Long;
+
use Parrot::Config qw/ %PConfig /;
my ($with_doc, $with_ops, $with_pmc);
@@ -96,8 +99,7 @@
## get the path from the command line, or if not supplied then
## use $lclang.
-my $path = $ARGV[1] ||
- "$lclang";
+my $path = $ARGV[1] || $lclang;
## now loop through the file information (see below), substituting
## any instances of @lang@, @lclang@, @UCLANG@, and @Id@ with
@@ -163,6 +165,8 @@
}
print "creating $filepath\n";
open $fh, '>', $filepath;
+
+ return;
}
@@ -665,10 +669,10 @@
* specify it?
*/
/*
- array_t = pmc_type(INTERP,
+ array_t = Parrot_pmc_get_type_str(INTERP,
string_from_literal(INTERP, "@lang@"));
*/
- property = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ property = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
VTABLE_set_integer_native(INTERP, property, 1);
VTABLE_set_integer_keyed_int(INTERP, property, 0,
Copied: branches/ops_pct/tools/dev/mk_nci_thunks.pl (from r44740, trunk/tools/dev/mk_nci_thunks.pl)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/tools/dev/mk_nci_thunks.pl Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/tools/dev/mk_nci_thunks.pl)
@@ -0,0 +1,41 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+tools/dev/mk_nci_thunks.pl - (re)generate core NCI thunk files
+
+=head1 SYNOPSIS
+
+ > perl tools/dev/mk_nci_thunks.pl
+
+=head1 DESCRIPTION
+
+This script generates the core NCI thunk C files from lists of signatures
+provided in accompanying C<.nci> files.
+
+=cut
+
+use strict;
+use warnings;
+
+foreach (qw( core_thunks extra_thunks )) {
+ my $c_file = "src/nci/$_.c";
+ my $nci_file = "src/nci/$_.nci";
+ my $loader_name = "Parrot_nci_load_$_";
+ print "$nci_file > $c_file\n";
+ system("./parrot tools/dev/nci_thunk_gen.pir " .
+ "--core " .
+ "--loader-name=$loader_name " .
+ "--output=$c_file " .
+ "<$nci_file "
+ );
+}
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/ops_pct/tools/dev/nci_thunk_gen.pir (from r44740, trunk/tools/dev/nci_thunk_gen.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/tools/dev/nci_thunk_gen.pir Sun Mar 7 19:33:20 2010 (r44743, copy of r44740, trunk/tools/dev/nci_thunk_gen.pir)
@@ -0,0 +1,1144 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+tools/dev/nci_thunk_gen.pir - Build up native call thunk routines
+
+=head1 SYNOPSIS
+
+ % ./parrot tools/dev/nci_thunk_gen.pir -o src/nci/extra_thunks.c <src/nci/extra_thunks.nci
+
+=head1 DESCRIPTION
+
+This script creates Native Call Interface files. It parses a file of function
+signatures of the form:
+
+ <return-type-specifier><ws><parameter-type-specifiers>[<ws>][#<comment>]
+ ...
+Empty lines and lines containing only whitespace or comment are ignored.
+The types specifiers are documented in F<src/nci/extra_thunks.nci>.
+
+=head1 SEE ALSO
+
+F<src/nci/extra_thunks.nci>.
+F<docs/pdds/pdd16_native_call.pod>.
+
+=cut
+
+.macro_const VERSION 0.01
+
+.macro_const SIG_TABLE_GLOBAL_NAME 'signature_table'
+.macro_const OPTS_GLOBAL_NAME 'options'
+
+.sub 'main' :main
+ .param pmc argv
+
+ # initialize global variables
+ 'gen_sigtable'()
+ 'get_options'(argv)
+
+ .local string targ
+ targ = 'read_from_opts'('target')
+
+ .local pmc sigs
+ sigs = 'read_sigs'()
+
+ $S0 = 'read_from_opts'('output')
+ $P0 = open $S0, 'w'
+ setstdout $P0
+
+ if targ == 'head' goto get_targ
+ if targ == 'thunks' goto get_targ
+ if targ == 'loader' goto get_targ
+ if targ == 'loader-dynext' goto get_dynext_loader
+ if targ == 'coda' goto get_targ
+ if targ == 'all' goto all
+ if targ == 'all-dynext' goto all_dynext
+ if targ == 'names' goto names
+ if targ == 'signatures' goto signatures
+
+ # unknown target
+ $S0 = 'sprintf'("Unknown target type '%s'", targ)
+ die $S0
+
+ all:
+ $S0 = 'get_head'(sigs)
+ say $S0
+ $S0 = 'get_thunks'(sigs)
+ say $S0
+ $S0 = 'get_loader'(sigs)
+ say $S0
+ $S0 = 'get_coda'(sigs)
+ say $S0
+ exit 0
+
+ all_dynext:
+ $S0 = 'get_head'(sigs)
+ say $S0
+ $S0 = 'get_thunks'(sigs)
+ say $S0
+ $S0 = 'get_dynext_loader'(sigs)
+ say $S0
+ $S0 = 'get_coda'(sigs)
+ say $S0
+ exit 0
+
+ get_dynext_loader:
+ $S0 = 'get_dynext_loader'(sigs)
+ say $S0
+ exit 0
+
+ get_targ:
+ $S0 = concat 'get_', targ
+ $P0 = get_global $S0
+ $S1 = $P0(sigs)
+ say $S1
+ exit 0
+
+ names:
+ die "names not yet implemented"
+ signatures:
+ die "signatures not yet implemented"
+.end
+
+# getopt stuff {{{
+
+.macro_const OUTPUT 'output'
+.macro_const THUNK_STORAGE_CLASS 'thunk-storage-class'
+.macro_const THUNK_NAME_PROTO 'thunk-name-proto'
+.macro_const LOADER_STORAGE_CLASS 'loader-storage-class'
+.macro_const LOADER_NAME 'loader-name'
+.macro_const CORE 'core'
+.macro_const NO_WARN_DUPS 'no-warn-dups'
+
+.sub 'get_options'
+ .param pmc argv
+
+ load_bytecode 'Getopt/Obj.pbc'
+
+ .local pmc getopt
+ getopt = new ['Getopt';'Obj']
+ push getopt, 'help|h'
+ push getopt, 'version|v'
+ push getopt, 'no-warn-dups|f'
+ push getopt, 'core'
+ push getopt, 'dynext'
+ push getopt, 'output|o=s'
+ push getopt, 'target=s'
+ push getopt, 'thunk-storage-class=s'
+ push getopt, 'thunk-name-proto=s'
+ push getopt, 'loader-storage-class=s'
+ push getopt, 'loader-name=s'
+
+ .local string prog_name
+ prog_name = shift argv
+
+ .local pmc opt
+ opt = getopt.'get_options'(argv)
+
+ $I0 = opt['help']
+ if $I0 goto print_help
+
+ $I0 = opt['version']
+ if $I0 goto print_version
+
+ 'fixup_opts'(opt)
+
+ set_global .OPTS_GLOBAL_NAME, opt
+ .return()
+
+ print_help:
+ 'usage'(prog_name)
+ print_version:
+ 'version'(prog_name)
+.end
+
+.sub 'usage'
+ .param string prog_name
+ print prog_name
+ say ' - Parrot NCI thunk library creation utility'
+ say <<'USAGE'
+
+Creates a C file of routines suitable for use as Parrot NCI thunks.
+
+Usage ./parrot nci_thunk_gen.pir [options] -o output_c_file.c <input_signature_list.nci
+
+Options
+ --help print this message and exit
+ --version print the version number of this utility
+ -f --no-warn-dups don't complain about duplicated signatures. Default is to warn.
+ --core output a thunks file suitable for inclusion in Parrot core. Default is no.
+ --dynext use default values for loader-name, loader-storage-class, and target
+ suitable for use in a Parrot dynext library.
+ -o --output <file> specify output file to use.
+ --target <target> select what to output (valid options are 'head', 'thunks',
+ 'loader', 'loader-dynext', 'coda', 'all', 'all-dynext', 'names', and
+ 'signatures'). Default value is 'all'
+ --thunk-storage-class <storage class>
+ set the storage class used for the thunks. Default value is 'static'.
+ --thunk-name-proto <printf prototype>
+ set the prototype used for the thunk function names. Must be a printf
+ format with arity 1. Default value is 'pcf_%s'
+ --loader-storage-class
+ set the storage class used for the loader function. Default value is none.
+ --loader-name set the name used for the loader function. Default value is
+ 'Parrot_load_nci_thunks'.
+USAGE
+ exit 0
+.end
+
+.sub 'version'
+ .param string prog_name
+ print prog_name
+ print ' version '
+ say .VERSION
+ exit 0
+.end
+
+.sub 'fixup_opts'
+ .param pmc opts
+
+ $I0 = defined opts['no-warn-dups']
+ if $I0 goto end_no_warn_dups
+ opts['no-warn-dups'] = ''
+ end_no_warn_dups:
+
+ $I0 = defined opts['core']
+ if $I0 goto in_core
+ opts['core'] = ''
+ goto end_core
+ in_core:
+ opts['core'] = 'true'
+ end_core:
+
+ $I0 = defined opts['dynext']
+ if $I0 goto is_dynext
+ opts['dynext'] = ''
+ goto end_dynext
+ is_dynext:
+ $I0 = defined opts['target']
+ if $I0 goto end_dynext_target
+ opts['target'] = 'all-dynext'
+ end_dynext_target:
+
+ $I0 = defined opts['loader-storage-class']
+ if $I0 goto end_dynext_loader_storage_class
+ opts['loader-storage-class'] = 'PARROT_DYNEXT_EXPORT'
+ end_dynext_loader_storage_class:
+
+ $I0 = defined opts['loader-name']
+ if $I0 goto end_dynext_loader_name
+ $S0 = opts['output']
+ ($S0, $S1, $S0) = 'file_basename'($S0, '.c')
+ $S0 = 'sprintf'('Parrot_lib_%s_init', $S1)
+ opts['loader-name'] = $S0
+ end_dynext_loader_name:
+ end_dynext:
+
+ $I0 = defined opts['target']
+ if $I0 goto end_target
+ opts['target'] = 'all'
+ end_target:
+
+ $I0 = defined opts['thunk-storage-class']
+ if $I0 goto end_thunk_storage_class
+ opts['thunk-storage-class'] = 'static'
+ end_thunk_storage_class:
+
+ $I0 = defined opts['thunk-name-proto']
+ if $I0 goto end_thunk_name_proto
+ opts['thunk-name-proto'] = 'pcf_%s'
+ end_thunk_name_proto:
+
+ $S0 = opts['thunk-name-proto']
+ $I0 = 'printf_arity'($S0)
+ if $I0 == 1 goto end_thunk_name_proto_printf_arity
+ 'sprintf'("Provided proto for 'thunk-name-proto' is of incorrect arity %i (expected 1)", $I0)
+ die $S0
+ end_thunk_name_proto_printf_arity:
+
+ $I0 = defined opts['loader-storage-class']
+ if $I0 goto end_loader_storage_class
+ opts['loader-storage-class'] = ''
+ end_loader_storage_class:
+
+ $I0 = defined opts['loader-name']
+ if $I0 goto end_loader_name
+ opts['loader-name'] = 'Parrot_load_nci_thunks'
+ end_loader_name:
+.end
+
+.sub 'read_from_opts'
+ .param string key
+
+ .local pmc opts
+ opts = get_global .OPTS_GLOBAL_NAME
+
+ $I0 = defined opts[key]
+ unless $I0 goto not_present
+
+ $S0 = opts[key]
+ .return ($S0)
+
+ not_present:
+ $S0 = 'sprintf'("Parameter '%s' required but not provided", key)
+ die $S0
+.end
+
+# }}}
+
+# get_{head,thunks,loader,dynext_loader,coda} {{{
+
+.sub 'get_head'
+ .param pmc ignored :slurpy
+
+ .local string in_core
+ in_core = 'read_from_opts'(.CORE)
+
+ .local string ext_defn
+ ext_defn = ''
+ if in_core goto end_ext_defn
+ ext_defn = '#define PARROT_IN_EXTENSION'
+ end_ext_defn:
+
+ .local string c_file
+ c_file = 'read_from_opts'(.OUTPUT)
+
+ .local string str_file
+ ($S0, str_file, $S0) = 'file_basename'(c_file, '.c')
+ str_file = concat str_file, '.str'
+
+ .local string head
+ head = 'sprintf'(<<'HEAD', c_file, ext_defn, str_file)
+/* ex: set ro ft=c:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically by tools/dev/nci_thunk_gen.pir
+ *
+ * Any changes made here will be lost!
+ *
+ */
+
+/* %s
+ * Copyright (C) 2010, Parrot Foundation.
+ * SVN Info
+ * $Id$
+ * Overview:
+ * Native Call Interface routines. The code needed to build a
+ * parrot to C call frame is in here
+ * Data Structure and Algorithms:
+ * History:
+ * Notes:
+ * References:
+ */
+
+%s
+#include "parrot/parrot.h"
+#include "pmc/pmc_nci.h"
+
+
+#ifdef PARROT_IN_EXTENSION
+/* external libraries can't have strings statically compiled into parrot */
+# define CONST_STRING(i, s) Parrot_str_new_constant((i), (s))
+#else
+# include "%s"
+#endif
+
+/* HEADERIZER HFILE: none */
+/* HEADERIZER STOP */
+
+/* All our static functions that call in various ways. Yes, terribly
+ hackish, but that is just fine */
+
+HEAD
+ .return (head)
+.end
+
+.sub 'get_thunks'
+ .param pmc sigs
+ .local string code
+ .local int i, n
+ code = ''
+ i = 0
+ n = sigs
+ loop:
+ if i >= n goto end_loop
+
+ .local pmc sig
+ sig = sigs[i]
+ $S0 = 'sig_to_fn_code'(sig :flat)
+ code = concat code, $S0
+
+ inc i
+ goto loop
+ end_loop:
+ .return (code)
+.end
+
+.sub 'get_loader'
+ .param pmc sigs
+
+ $S0 = 'get_loader_decl'(sigs)
+ $S1 = 'get_loader_body'(sigs)
+ $S2 = 'sprintf'(<<'LOADER', $S0, $S0, $S1)
+%s;
+%s {
+%s
+}
+LOADER
+ .return ($S2)
+.end
+
+.sub 'get_loader_decl'
+ .param pmc sigs
+ $S0 = 'read_from_opts'(.LOADER_STORAGE_CLASS)
+ $S1 = 'read_from_opts'(.LOADER_NAME)
+ $S2 = 'sprintf'(<<'DECL', $S0, $S1)
+%s void
+%s(PARROT_INTERP)
+DECL
+ .return ($S2)
+.end
+
+.sub 'get_dynext_loader'
+ .param pmc sigs
+
+ $S0 = 'get_dynext_loader_decl'(sigs)
+ $S1 = 'get_loader_body'(sigs)
+ $S2 = 'sprintf'(<<'LOADER', $S0, $S0, $S1)
+%s;
+%s {
+%s
+}
+LOADER
+ .return ($S2)
+.end
+
+.sub 'get_dynext_loader_decl'
+ .param pmc sigs
+
+ $S0 = 'read_from_opts'(.LOADER_STORAGE_CLASS)
+ $S1 = 'read_from_opts'(.LOADER_NAME)
+ $S2 = 'sprintf'(<<'DECL', $S0, $S1)
+%s void
+%s(PARROT_INTERP, SHIM(PMC *lib))
+DECL
+ .return ($S2)
+.end
+
+.sub 'get_loader_body'
+ .param pmc sigs
+ .local string code
+ code = 'sprintf'(<<'HEADER', $S0, $S1)
+ PMC *iglobals;
+ PMC *nci_funcs;
+ PMC *temp_pmc;
+
+ iglobals = interp->iglobals;
+ PARROT_ASSERT(!(PMC_IS_NULL(iglobals)));
+
+ nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals,
+ IGLOBALS_NCI_FUNCS);
+ PARROT_ASSERT(!(PMC_IS_NULL(nci_funcs)));
+
+HEADER
+
+ .local int i, n
+ i = 0
+ n = sigs
+ loop:
+ if i >= n goto end_loop
+
+ .local pmc sig
+ sig = shift sigs
+
+ .local string fn_name
+ fn_name = 'sig_to_fn_name'(sig :flat)
+
+ .local string key
+ key = join '', sig
+
+ $S0 = 'sprintf'(<<'TEMPLATE', fn_name, key)
+ temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, temp_pmc, (void *)%s);
+ VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "%s"), temp_pmc);
+
+TEMPLATE
+ code = concat code, $S0
+
+ inc i
+ goto loop
+ end_loop:
+
+ .return (code)
+.end
+
+.sub 'get_coda'
+ .param pmc ignored :slurpy
+ .return (<<'CODA')
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+CODA
+.end
+
+# }}}
+
+# sig_to_* {{{
+
+.sub 'sig_to_fn_code'
+ .param pmc args :slurpy
+
+ .local string fn_decl
+ fn_decl = 'sig_to_fn_decl'(args :flat)
+
+ .local string var_decls
+ var_decls = 'sig_to_var_decls'(args :flat)
+
+ .local string preamble
+ preamble = 'sig_to_preamble'(args :flat)
+
+ .local string call
+ call = 'sig_to_call'(args :flat)
+
+ .local string postamble
+ postamble = 'sig_to_postamble'(args :flat)
+
+ .local string fn_code
+ fn_code = 'sprintf'("%s{\n%s%s%s%s}\n", fn_decl, var_decls, preamble, call, postamble)
+
+ .return (fn_code)
+.end
+
+.sub 'sig_to_postamble'
+ .param string ret
+ .param string params
+
+ .local string final_assign
+ $P0 = 'map_from_sig_table'(ret, 'ret_assign')
+ final_assign = $P0[0]
+
+ .local string extra_postamble
+ $P0 = 'map_from_sig_table'(params, 'postamble_tmpl')
+ 'fill_tmpls_ascending_ints'($P0)
+ extra_postamble = join "\n", $P0
+
+ .local string postamble
+ postamble = 'sprintf'(<<'TEMPLATE', final_assign, extra_postamble)
+ %s
+ %s
+TEMPLATE
+ .return (postamble)
+.end
+
+.sub 'sig_to_call'
+ .param string ret
+ .param string params
+
+ .local string return_assign
+ $P0 = 'map_from_sig_table'(ret, 'func_call_assign')
+ return_assign = $P0[0]
+
+ .local string ret_cast
+ $P0 = 'map_from_sig_table'(ret, 'as_return')
+ ret_cast = $P0[0]
+ if ret_cast == 'void' goto void_fn
+ ret_cast = 'sprintf'('(%s)', ret_cast)
+ goto end_ret_cast
+ void_fn:
+ ret_cast = ''
+ end_ret_cast:
+
+ .local string call_params
+ $P0 = 'map_from_sig_table'(params, 'call_param_tmpl')
+ 'fill_tmpls_ascending_ints'($P0)
+ call_params = join ', ', $P0
+
+ .local string call
+ call = 'sprintf'(<<'TEMPLATE', return_assign, ret_cast, call_params)
+ GETATTR_NCI_orig_func(interp, self, orig_func);
+ fn_pointer = (func_t)D2FPTR(orig_func);
+ %s %s(*fn_pointer)(%s);
+TEMPLATE
+ .return (call)
+.end
+
+.sub 'sig_to_preamble'
+ .param string ret
+ .param string params
+
+ unless params goto return
+
+ .local string sig
+ $P0 = 'map_from_sig_table'(params, 'sig_char')
+ sig = join "", $P0
+
+ .local string fill_params
+ $P0 = 'map_from_sig_table'(params, 'fill_params_tmpl')
+ 'fill_tmpls_ascending_ints'($P0)
+ fill_params = join "", $P0
+
+ .local string extra_preamble
+ $P0 = 'map_from_sig_table'(params, 'preamble_tmpl')
+ 'fill_tmpls_ascending_ints'($P0)
+ extra_preamble = join "", $P0
+
+ .local string preamble
+ preamble = 'sprintf'(<<'TEMPLATE', sig, fill_params, extra_preamble)
+ Parrot_pcc_fill_params_from_c_args(interp, call_object, "%s"%s);
+ %s
+TEMPLATE
+
+ return:
+ .return (preamble)
+.end
+
+.sub 'sig_to_var_decls'
+ .param string ret
+ .param string params
+
+ .local string ret_csig
+ $P0 = 'map_from_sig_table'(ret, 'as_return')
+ ret_csig = $P0[0]
+
+ .local string params_csig
+ $P0 = 'map_from_sig_table'(params, 'as_proto')
+ params_csig = join ', ', $P0
+ if params_csig goto end_default_params_csig_to_void
+ params_csig = 'void'
+ end_default_params_csig_to_void:
+
+ .local string ret_tdecl
+ ret_tdecl = ""
+ $P0 = 'map_from_sig_table'(ret, 'return_type')
+ $S0 = $P0[0]
+ unless $S0 goto end_ret_type
+ if $S0 == 'void' goto end_ret_type
+ $S0 = 'sprintf'("%s return_data;\n", $S0)
+ ret_tdecl = concat ret_tdecl, $S0
+ end_ret_type:
+ $P0 = 'map_from_sig_table'(ret, 'final_dest')
+ $S0 = $P0[0]
+ unless $S0 goto end_final_dest
+ $S0 = concat $S0, "\n"
+ ret_tdecl = concat ret_tdecl, $S0
+ end_final_dest:
+
+ .local string params_tdecl
+ $P0 = 'map_from_sig_table'(params, 'temp_tmpl')
+ 'fill_tmpls_ascending_ints'($P0)
+ $P0 = 'grep_for_true'($P0)
+ params_tdecl = join ";\n ", $P0
+
+ .local string var_decls
+ var_decls = 'sprintf'(<<'TEMPLATE', ret_csig, params_csig, ret_tdecl, params_tdecl)
+ typedef %s(* func_t)(%s);
+ func_t fn_pointer;
+ void *orig_func;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ %s
+ %s;
+TEMPLATE
+
+ .return (var_decls)
+.end
+
+.sub 'sig_to_fn_decl'
+ .param pmc sig :slurpy
+ .local string storage_class, fn_name, fn_decl
+ storage_class = 'read_from_opts'(.THUNK_STORAGE_CLASS)
+ fn_name = 'sig_to_fn_name'(sig :flat)
+ fn_decl = 'sprintf'(<<'TEMPLATE', storage_class, fn_name)
+%s void
+%s(PARROT_INTERP, PMC *self)
+TEMPLATE
+ .return (fn_decl)
+.end
+
+.sub 'sig_to_fn_name'
+ .param string ret
+ .param string params
+
+ .local string fix_params
+ $P0 = 'map_from_sig_table'(params, 'cname')
+ fix_params = join '', $P0
+
+
+ $S0 = 'sprintf'('%s_%s', ret, fix_params)
+ $S1 = 'read_from_opts'(.THUNK_NAME_PROTO)
+ $S2 = 'sprintf'($S1, $S0)
+ .return ($S2)
+.end
+
+.sub 'map_from_sig_table'
+ .param string sig
+ .param string field_name
+
+ .local pmc sig_table
+ sig_table = get_global .SIG_TABLE_GLOBAL_NAME
+
+ $P0 = split '', sig
+
+ .local pmc result
+ result = new ['ResizableStringArray']
+ $I0 = $P0
+ result = $I0
+
+ $I0 = $P0
+ $I1 = 0
+ loop:
+ if $I1 >= $I0 goto end_loop
+ $S0 = $P0[$I1]
+ $S1 = sig_table[$S0; field_name]
+ result[$I1] = $S1
+ inc $I1
+ goto loop
+ end_loop:
+
+ .return (result)
+.end
+
+# }}}
+
+# read_sigs {{{
+
+.sub 'read_sigs'
+ .local pmc stdin, seen, sigs
+ stdin = getstdin
+ seen = new ['Hash']
+ sigs = new ['ResizablePMCArray']
+
+ .local int no_warn_dups
+ no_warn_dups = 'read_from_opts'(.NO_WARN_DUPS)
+
+ .local int lineno
+ lineno = 0
+ read_loop:
+ unless stdin goto end_read_loop
+
+ .local string ret_sig, param_sig, full_sig
+ (ret_sig, param_sig) = 'read_one_sig'(stdin)
+ inc lineno
+ full_sig = concat ret_sig, param_sig
+
+ # filter out empty sigs (and empty lines)
+ unless full_sig goto read_loop
+
+ # de-dup sigs
+ $I0 = seen[full_sig]
+ unless $I0 goto unseen
+ if no_warn_dups goto end_dup_warn
+ $S0 = 'sprintf'(<<'ERROR', full_sig, lineno, $I0)
+Ignored signature '%s' on line %d (previously seen on line %d)
+ERROR
+ printerr $S0
+ end_dup_warn:
+ goto read_loop
+ unseen:
+ seen[full_sig] = lineno
+
+ .local pmc sig
+ sig = new ['ResizableStringArray']
+ sig = 2
+ sig[0] = ret_sig
+ sig[1] = param_sig
+ push sigs, sig
+
+ goto read_loop
+ end_read_loop:
+
+ .return (sigs)
+.end
+
+.sub 'read_one_sig'
+ .param pmc fh
+
+ .local string line
+ line = readline fh
+
+ # handle comments
+ $I0 = index line, '#'
+ if $I0 < 0 goto end_comment
+ line = substr line, 0, $I0
+ end_comment:
+
+ # convert whitespace into spaces
+ .const 'Sub' $P0 = 'alternate_whitespaces'
+ $P1 = iter $P0
+ outer_whitespace_loop:
+ unless $P1 goto end_outer_whitespace_loop
+ $S0 = shift $P1
+
+ inner_whitespace_loop:
+ $I0 = index line, $S0
+ if $I0 < 0 goto end_inner_whitespace_loop
+ substr line, $I0, 1, ' '
+ goto inner_whitespace_loop
+ end_inner_whitespace_loop:
+
+ goto outer_whitespace_loop
+ end_outer_whitespace_loop:
+
+ # turn multiple spaces into a single space
+ multispace_loop:
+ $I0 = index line, ' '
+ if $I0 < 0 goto end_multispace_loop
+ $S0 = substr 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, ''
+ end_leading:
+
+ # handle empty (or whitespace only) lines
+ if line == '' goto ret
+ if line == ' ' goto ret
+
+ # remove trailing whitespace
+ $S0 = substr line, -1, 1
+ unless $S0 == ' ' goto end_trailing
+ $S0 = substr line, -1, 1, ''
+ end_trailing:
+
+ # read the signature
+ .local string ret_sig, param_sig
+ $P0 = split ' ', line
+ ret_sig = $P0[0]
+ param_sig = $P0[1]
+
+ ret:
+ .return (ret_sig, param_sig)
+.end
+
+#}}}
+
+# gen_sigtable {{{
+
+.sub 'gen_sigtable'
+ .const string json_table = <<'JSON'
+{
+ "p": { "as_proto": "void *",
+ "final_dest": "PMC * final_destination = PMCNULL;",
+ "temp_tmpl": "PMC *t_%i",
+ "sig_char": "P",
+ "call_param_tmpl": "PMC_IS_NULL((PMC*)t_%i) ? (void *)NULL : VTABLE_get_pointer(interp, t_%i)",
+ "ret_assign": "if (return_data != NULL) {
+ final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, final_destination, return_data);
+ }
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"P\", final_destination);" },
+ "i": { "as_proto": "int", "sig_char": "I",
+ "return_type": "INTVAL" },
+ "l": { "as_proto": "long", "sig_char": "I", "return_type": "INTVAL" },
+ "c": { "as_proto": "char", "sig_char": "I", "return_type": "INTVAL" },
+ "s": { "as_proto": "short", "sig_char": "I", "return_type": "INTVAL" },
+ "f": { "as_proto": "float", "sig_char": "N", "return_type": "FLOATVAL" },
+ "d": { "as_proto": "double", "sig_char": "N", "return_type": "FLOATVAL" },
+ "t": { "as_proto": "char *",
+ "final_dest": "STRING *final_destination;",
+ "ret_assign": "final_destination = Parrot_str_new(interp, return_data, 0);
+ Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"S\", final_destination);",
+ "sig_char": "S",
+ "temp_tmpl": "char *t_%i; STRING *ts_%i",
+ "fill_params_tmpl": ", &ts_%i",
+ "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *)NULL;",
+ "postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
+ "v": { "as_proto": "void",
+ "return_type": "void *",
+ "sig_char": "v",
+ "ret_assign": "",
+ "func_call_assign": "" },
+ "P": { "as_proto": "PMC *", "sig_char": "P" },
+ "O": { "as_proto": "PMC *", "returns": "", "sig_char": "Pi" },
+ "J": { "as_proto": "PARROT_INTERP",
+ "returns": "",
+ "fill_params_tmpl": "",
+ "call_param_tmpl": "interp",
+ "temp_tmpl": "",
+ "sig_char": "" },
+ "S": { "as_proto": "STRING *", "sig_char": "S" },
+ "I": { "as_proto": "INTVAL", "sig_char": "I" },
+ "N": { "as_proto": "FLOATVAL", "sig_char": "N" },
+ "b": { "as_proto": "void *",
+ "as_return": "",
+ "sig_char": "S",
+ "temp_tmpl":"STRING *t_%i",
+ "call_param_tmpl": "Buffer_bufstart(t_%i)" },
+ "B": { "as_proto": "char **",
+ "as_return": "",
+ "sig_char": "S",
+ "fill_params_tmpl": ", &ts_%i",
+ "temp_tmpl": "char *t_%i; STRING *ts_%i",
+ "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *) NULL;",
+ "call_param_tmpl": "&t_%i",
+ "postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
+ "2": { "as_proto": "short *",
+ "sig_char": "P",
+ "return_type": "short",
+ "ret_assign": "Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"I\", return_data);",
+ "temp_tmpl": "PMC *t_%i; short i_%i",
+ "preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
+ "call_param_tmpl": "&i_%i",
+ "postamble_tmpl": "VTABLE_set_integer_native(interp, t_%i, i_%i);" },
+ "3": { "as_proto": "int *",
+ "sig_char": "P",
+ "return_type": "int",
+ "ret_assign": "Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"I\", return_data);",
+ "temp_tmpl": "PMC *t_%i; int i_%i",
+ "preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
+ "call_param_tmpl": "&i_%i",
+ "postamble_tmpl": "VTABLE_set_integer_native(interp, t_%i, i_%i);" },
+ "4": { "as_proto": "long *",
+ "sig_char": "P",
+ "return_type": "long",
+ "ret_assign": "Parrot_pcc_fill_returns_from_c_args(interp, call_object, \"I\", return_data);",
+ "temp_tmpl": "PMC *t_%i; long i_%i",
+ "preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
+ "call_param_tmpl": "&i_%i",
+ "postamble_tmpl": "VTABLE_set_integer_native(interp, t_%i, i_%i);" },
+ "L": { "as_proto": "long *", "as_return": "" },
+ "T": { "as_proto": "char **", "as_return": "" },
+ "V": { "as_proto": "void **",
+ "as_return": "",
+ "sig_char": "P",
+ "temp_tmpl": "PMC *t_%i; void *v_%i",
+ "preamble_tmpl": "v_%i = VTABLE_get_pointer(interp, t_%i);",
+ "call_param_tmpl": "&v_%i",
+ "postamble_tmpl": "VTABLE_set_pointer(interp, t_%i, v_%i);" },
+ "@": { "as_proto": "PMC *", "as_return": "", "cname": "xAT_", "sig_char": "Ps" }
+}
+JSON
+
+ # decode table
+ .local pmc compiler
+ load_bytecode 'data_json.pbc'
+ compiler = compreg 'data_json'
+
+ .local pmc table
+ $P0 = compiler.'compile'(json_table)
+ table = $P0()
+
+ # fixup table
+ .local pmc table_iter
+ table_iter = iter table
+ iter_loop:
+ unless table_iter goto iter_end
+
+ .local string k
+ .local pmc v
+ k = shift table_iter
+ v = table[k]
+
+ $I0 = exists v['cname']
+ if $I0 goto has_cname
+ v['cname'] = k
+ has_cname:
+
+ $I0 = exists v['as_return']
+ if $I0 goto has_as_return
+ $S0 = v['as_proto']
+ v['as_return'] = $S0
+ has_as_return:
+
+ $I0 = exists v['return_type']
+ if $I0 goto has_return_type
+ $S0 = v['as_proto']
+ v['return_type'] = $S0
+ has_return_type:
+
+ $I0 = exists v['ret_assign']
+ $I1 = exists v['sig_char']
+ $I1 = !$I1
+ $I0 = $I0 || $I1 # not (not exists v[ret_assign] and exists v[sig_char])
+ if $I0 goto has_ret_assign
+ $S0 = 'Parrot_pcc_fill_returns_from_c_args(interp, call_object, "'
+ $S1 = v['sig_char']
+ $S0 = concat $S0, $S1
+ $S0 = concat $S0, '", return_data);'
+ v['ret_assign'] = $S0
+ has_ret_assign:
+
+ $I0 = exists v['func_call_assign']
+ if $I0 goto has_func_call_assign
+ v['func_call_assign'] = 'return_data = '
+ has_func_call_assign:
+
+ $I0 = exists v['temp_tmpl']
+ if $I0 goto has_temp_tmpl
+ $S0 = v['return_type']
+ $S0 = concat $S0, " t_%i"
+ v['temp_tmpl'] = $S0
+ has_temp_tmpl:
+
+ $I0 = exists v['fill_params_tmpl']
+ if $I0 goto has_fill_params_tmpl
+ v['fill_params_tmpl'] = ', &t_%i'
+ has_fill_params_tmpl:
+
+ $I0 = exists v['call_param_tmpl']
+ if $I0 goto has_call_param_tmpl
+ v['call_param_tmpl'] = 't_%i'
+ has_call_param_tmpl:
+
+ goto iter_loop
+ iter_end:
+
+ set_global .SIG_TABLE_GLOBAL_NAME, table
+.end
+
+# }}}
+
+# utility fn's {{{
+
+.sub 'sprintf'
+ .param string tmpl
+ .param pmc args :slurpy
+ $S0 = sprintf tmpl, args
+ .return ($S0)
+.end
+
+.sub 'fill_tmpls_ascending_ints'
+ .param pmc tmpls
+ .local int idx, n
+
+ idx = 0
+ n = tmpls
+ loop:
+ if idx >= n goto end_loop
+ $S0 = tmpls[idx]
+ $I0 = 'printf_arity'($S0)
+ $P0 = 'xtimes'(idx, $I0)
+ $S1 = sprintf $S0, $P0
+ tmpls[idx] = $S1
+ inc idx
+ goto loop
+ end_loop:
+.end
+
+.sub 'printf_arity'
+ .param string tmpl
+
+ .local int count, idx
+ idx = 0
+ count = 0
+
+ loop:
+ idx = index tmpl, '%', idx
+ if idx < 0 goto end_loop
+
+ # check against '%%' escapes
+ $I0 = idx + 1
+ $S0 = substr tmpl, $I0, 1
+ unless $S0 == '%' goto is_valid_placeholder
+ idx = idx + 2 # skip both '%'s
+ goto loop
+ is_valid_placeholder:
+
+ inc idx
+ inc count
+ goto loop
+ end_loop:
+
+ .return (count)
+.end
+
+.sub 'xtimes'
+ .param pmc what
+ .param int times
+
+ .local pmc retv
+ retv = new ['ResizablePMCArray']
+ retv = times
+
+ $I0 = 0
+ loop:
+ if $I0 >= times goto end_loop
+ retv[$I0] = what
+ inc $I0
+ goto loop
+ end_loop:
+
+ .return (retv)
+.end
+
+.sub 'grep_for_true'
+ .param pmc input
+ .local pmc output
+ .local int i, n
+ output = new ['ResizableStringArray']
+ i = 0
+ n = input
+ loop:
+ if i >= n goto end_loop
+ $S0 = input[i]
+ unless $S0 goto end_cond
+ push output, $S0
+ end_cond:
+ inc i
+ goto loop
+ end_loop:
+
+ .return (output)
+.end
+
+.sub 'file_basename'
+ .param string full_path
+ .param pmc extns :slurpy
+
+ .local string dir, file, extn
+
+ # replace native file separator with '/'
+ $S0 = 'native_file_separator'()
+ $P0 = split $S0, full_path
+ file = join "/", $P0
+
+ $P0 = split '/', file
+ file = pop $P0
+ dir = join '/', $P0
+
+ extn_loop:
+ unless extns goto end_extn_loop
+ $S0 = shift extns
+ $I0 = length $S0
+ $I1 = -$I0
+ $S1 = substr file, $I1, $I0
+ unless $S1 == $S0 goto extn_loop
+ extn = $S1
+ substr file, $I1, $I0, ''
+ end_extn_loop:
+
+ .return (dir, file, extn)
+.end
+
+.sub 'native_file_separator'
+ load_bytecode 'config.pbc'
+ $P0 = '_config'()
+ $S0 = $P0['slash']
+ .return ($S0)
+.end
+
+.sub 'alternate_whitespaces' :anon :immediate
+ $P0 = new ['ResizableStringArray']
+ push $P0, "\t"
+ push $P0, "\n"
+ push $P0, "\r"
+ .return ($P0)
+.end
+
+# }}}
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+
Modified: branches/ops_pct/tools/dev/vtablize.pl
==============================================================================
--- branches/ops_pct/tools/dev/vtablize.pl Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/tools/dev/vtablize.pl Sun Mar 7 19:33:20 2010 (r44743)
@@ -63,7 +63,6 @@
s/^(\s*)(PMC\s+\*get_pmc_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*get_bignum\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*slice\(PMC\s+\*\w*,\s+INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
@@ -157,58 +156,12 @@
s/^(\s*)(void\s+i_cmodulus\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_cmodulus_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_cmodulus_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*pow\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*pow_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*pow_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_pow\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_pow_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_pow_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+increment\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+decrement\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*absolute\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_absolute\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*neg\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_neg\(\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_or\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_or_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_or\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_or_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xor\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xor_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xor\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xor_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ors\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ors_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ors\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ors_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xors\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xors_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xors\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xors_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_and\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_and_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_and\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_and_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ands\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ands_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ands\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ands_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_not\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_not\(\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_nots\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_nots\(\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shl\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shl_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shl\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shl_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shr\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shr_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shr\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shr_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_lsr\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_lsr_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_lsr\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_lsr_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal_num\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal_string\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
Modified: branches/ops_pct/tools/util/release.json
==============================================================================
--- branches/ops_pct/tools/util/release.json Sun Mar 7 17:00:27 2010 (r44742)
+++ branches/ops_pct/tools/util/release.json Sun Mar 7 19:33:20 2010 (r44743)
@@ -2,8 +2,8 @@
"release.version" : "2.0.0",
"release.name" : "Inevitable",
"release.day" : "Tuesday",
- "release.date" : "19 January 2010",
- "release.nextdate" : "16 Februuary 2010",
+ "release.date" : "16 Februuary 2010",
+ "release.nextdate" : "16 March 2010",
"web.root" : "http://parrot.org/",
"web.source" : "download",
@@ -11,13 +11,13 @@
"web.repository" : "https://svn.parrot.org/parrot/trunk/",
"bugday.day" : "Saturday",
- "bugday.date" : "14 February 2010",
+ "bugday.date" : "13 March 2010",
"wiki.root" : "https://trac.parrot.org/parrot/wiki/",
- "wiki.bugday" : "bug_day_2010_02_14",
+ "wiki.bugday" : "bug_day_2010_03_13",
"cpan.search" : "http://search.cpan.org/dist/parrot",
- "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/stable/2.0.0/",
+ "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/devel/stable/2.1.0/",
"subversion.root" : "http://subversion.tigris.org/",
"svk.root" : "http://svk.bestpractical.com/"
}
More information about the parrot-commits
mailing list